@ceschiatti/redistail 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,110 @@
1
+ import{createRequire}from"node:module";var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:(newValue)=>all[name]=()=>newValue})};var __require=createRequire(import.meta.url);var isFunction=(input)=>typeof input==="function",dual=function(arity,body){if(typeof arity==="function")return function(){if(arity(arguments))return body.apply(this,arguments);return(self)=>body(self,...arguments)};switch(arity){case 0:case 1:throw RangeError(`Invalid arity ${arity}`);case 2:return function(a,b){if(arguments.length>=2)return body(a,b);return function(self){return body(self,a)}};case 3:return function(a,b,c){if(arguments.length>=3)return body(a,b,c);return function(self){return body(self,a,b)}};case 4:return function(a,b,c,d){if(arguments.length>=4)return body(a,b,c,d);return function(self){return body(self,a,b,c)}};case 5:return function(a,b,c,d,e){if(arguments.length>=5)return body(a,b,c,d,e);return function(self){return body(self,a,b,c,d)}};default:return function(){if(arguments.length>=arity)return body.apply(this,arguments);let args=arguments;return function(self){return body(self,...args)}}}};var identity=(a)=>a;var constant=(value)=>()=>value,constTrue=constant(!0),constFalse=constant(!1);var constUndefined=constant(void 0),constVoid=constUndefined;function pipe(a,ab,bc,cd,de,ef,fg,gh,hi){switch(arguments.length){case 1:return a;case 2:return ab(a);case 3:return bc(ab(a));case 4:return cd(bc(ab(a)));case 5:return de(cd(bc(ab(a))));case 6:return ef(de(cd(bc(ab(a)))));case 7:return fg(ef(de(cd(bc(ab(a))))));case 8:return gh(fg(ef(de(cd(bc(ab(a)))))));case 9:return hi(gh(fg(ef(de(cd(bc(ab(a))))))));default:{let ret=arguments[0];for(let i=1;i<arguments.length;i++)ret=arguments[i](ret);return ret}}}var make=(isEquivalent)=>(self,that)=>self===that||isEquivalent(self,that),isStrictEquivalent=(x,y)=>x===y,strict=()=>isStrictEquivalent;var number=strict();var mapInput=dual(2,(self,f)=>make((x,y)=>self(f(x),f(y))));var array=(item)=>make((self,that)=>{if(self.length!==that.length)return!1;for(let i=0;i<self.length;i++)if(!item(self[i],that[i]))return!1;return!0});var let_=(map)=>dual(3,(self,name,f)=>map(self,(a)=>({...a,[name]:f(a)}))),bindTo=(map)=>dual(2,(self,name)=>map(self,(a)=>({[name]:a}))),bind=(map,flatMap)=>dual(3,(self,name,f)=>flatMap(self,(a)=>map(f(a),(b)=>({...a,[name]:b}))));var globalStore,globalValue=(id,compute)=>{if(!globalStore)globalThis["effect/GlobalValue"]??=new Map,globalStore=globalThis["effect/GlobalValue"];if(!globalStore.has(id))globalStore.set(id,compute());return globalStore.get(id)};var isString=(input)=>typeof input==="string",isNumber=(input)=>typeof input==="number",isBoolean=(input)=>typeof input==="boolean",isBigInt=(input)=>typeof input==="bigint",isSymbol=(input)=>typeof input==="symbol";var isFunction2=isFunction;var isRecordOrArray=(input)=>typeof input==="object"&&input!==null,isObject=(input)=>isRecordOrArray(input)||isFunction2(input),hasProperty=dual(2,(self,property)=>isObject(self)&&(property in self)),isTagged=dual(2,(self,tag)=>hasProperty(self,"_tag")&&self._tag===tag),isNullable=(input)=>input===null||input===void 0;var isDate=(input)=>input instanceof Date,isIterable=(input)=>typeof input==="string"||hasProperty(input,Symbol.iterator);var isPromiseLike=(input)=>hasProperty(input,"then")&&isFunction2(input.then);var getBugErrorMessage=(message)=>`BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`;class SingleShotGen{self;called=!1;constructor(self){this.self=self}next(a){return this.called?{value:a,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(a){return{value:a,done:!0}}throw(e){throw e}[Symbol.iterator](){return new SingleShotGen(this.self)}}var defaultIncHi=335903614,defaultIncLo=4150755663,MUL_HI=1481765933,MUL_LO=1284865837,BIT_53=9007199254740992,BIT_27=134217728;class PCGRandom{_state;constructor(seedHi,seedLo,incHi,incLo){if(isNullable(seedLo)&&isNullable(seedHi))seedLo=Math.random()*4294967295>>>0,seedHi=0;else if(isNullable(seedLo))seedLo=seedHi,seedHi=0;if(isNullable(incLo)&&isNullable(incHi))incLo=this._state?this._state[3]:defaultIncLo,incHi=this._state?this._state[2]:defaultIncHi;else if(isNullable(incLo))incLo=incHi,incHi=0;return this._state=new Int32Array([0,0,incHi>>>0,((incLo||0)|1)>>>0]),this._next(),add64(this._state,this._state[0],this._state[1],seedHi>>>0,seedLo>>>0),this._next(),this}getState(){return[this._state[0],this._state[1],this._state[2],this._state[3]]}setState(state){this._state[0]=state[0],this._state[1]=state[1],this._state[2]=state[2],this._state[3]=state[3]|1}integer(max){return Math.round(this.number()*Number.MAX_SAFE_INTEGER)%max}number(){let hi=(this._next()&67108863)*1,lo=(this._next()&134217727)*1;return(hi*BIT_27+lo)/BIT_53}_next(){let oldHi=this._state[0]>>>0,oldLo=this._state[1]>>>0;mul64(this._state,oldHi,oldLo,MUL_HI,MUL_LO),add64(this._state,this._state[0],this._state[1],this._state[2],this._state[3]);let xsHi=oldHi>>>18,xsLo=(oldLo>>>18|oldHi<<14)>>>0;xsHi=(xsHi^oldHi)>>>0,xsLo=(xsLo^oldLo)>>>0;let xorshifted=(xsLo>>>27|xsHi<<5)>>>0,rot=oldHi>>>27,rot2=(-rot>>>0&31)>>>0;return(xorshifted>>>rot|xorshifted<<rot2)>>>0}}function mul64(out,aHi,aLo,bHi,bLo){let c1=(aLo>>>16)*(bLo&65535)>>>0,c0=(aLo&65535)*(bLo>>>16)>>>0,lo=(aLo&65535)*(bLo&65535)>>>0,hi=(aLo>>>16)*(bLo>>>16)+((c0>>>16)+(c1>>>16))>>>0;if(c0=c0<<16>>>0,lo=lo+c0>>>0,lo>>>0<c0>>>0)hi=hi+1>>>0;if(c1=c1<<16>>>0,lo=lo+c1>>>0,lo>>>0<c1>>>0)hi=hi+1>>>0;hi=hi+Math.imul(aLo,bHi)>>>0,hi=hi+Math.imul(aHi,bLo)>>>0,out[0]=hi,out[1]=lo}function add64(out,aHi,aLo,bHi,bLo){let hi=aHi+bHi>>>0,lo=aLo+bLo>>>0;if(lo>>>0<aLo>>>0)hi=hi+1|0;out[0]=hi,out[1]=lo}var YieldWrapTypeId=Symbol.for("effect/Utils/YieldWrap");class YieldWrap{#value;constructor(value){this.#value=value}[YieldWrapTypeId](){return this.#value}}function yieldWrapGet(self){if(typeof self==="object"&&self!==null&&YieldWrapTypeId in self)return self[YieldWrapTypeId]();throw Error(getBugErrorMessage("yieldWrapGet"))}var structuralRegionState=globalValue("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0}));var standard={effect_internal_function:(body)=>{return body()}},forced={effect_internal_function:(body)=>{try{return body()}finally{}}},isNotOptimizedAway=standard.effect_internal_function(()=>Error().stack)?.includes("effect_internal_function")===!0,internalCall=isNotOptimizedAway?standard.effect_internal_function:forced.effect_internal_function,genConstructor=function*(){}.constructor,isGeneratorFunction=(u)=>isObject(u)&&u.constructor===genConstructor;var randomHashCache=globalValue(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),symbol=Symbol.for("effect/Hash"),hash=(self)=>{if(structuralRegionState.enabled===!0)return 0;switch(typeof self){case"number":return number2(self);case"bigint":return string(self.toString(10));case"boolean":return string(String(self));case"symbol":return string(String(self));case"string":return string(self);case"undefined":return string("undefined");case"function":case"object":if(self===null)return string("null");else if(self instanceof Date)return hash(self.toISOString());else if(self instanceof URL)return hash(self.href);else if(isHash(self))return self[symbol]();else return random(self);default:throw Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},random=(self)=>{if(!randomHashCache.has(self))randomHashCache.set(self,number2(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)));return randomHashCache.get(self)},combine=(b)=>(self)=>self*53^b,optimize=(n)=>n&3221225471|n>>>1&1073741824,isHash=(u)=>hasProperty(u,symbol),number2=(n)=>{if(n!==n||n===1/0)return 0;let h=n|0;if(h!==n)h^=n*4294967295;while(n>4294967295)h^=n/=4294967295;return optimize(h)},string=(str)=>{let h=5381,i=str.length;while(i)h=h*33^str.charCodeAt(--i);return optimize(h)},structureKeys=(o,keys)=>{let h=12289;for(let i=0;i<keys.length;i++)h^=pipe(string(keys[i]),combine(hash(o[keys[i]])));return optimize(h)},structure=(o)=>structureKeys(o,Object.keys(o)),array2=(arr)=>{let h=6151;for(let i=0;i<arr.length;i++)h=pipe(h,combine(hash(arr[i])));return optimize(h)},cached=function(){if(arguments.length===1){let self2=arguments[0];return function(hash3){return Object.defineProperty(self2,symbol,{value(){return hash3},enumerable:!1}),hash3}}let self=arguments[0],hash2=arguments[1];return Object.defineProperty(self,symbol,{value(){return hash2},enumerable:!1}),hash2};var symbol2=Symbol.for("effect/Equal");function equals(){if(arguments.length===1)return(self)=>compareBoth(self,arguments[0]);return compareBoth(arguments[0],arguments[1])}function compareBoth(self,that){if(self===that)return!0;let selfType=typeof self;if(selfType!==typeof that)return!1;if(selfType==="object"||selfType==="function"){if(self!==null&&that!==null){if(isEqual(self)&&isEqual(that))if(hash(self)===hash(that)&&self[symbol2](that))return!0;else return structuralRegionState.enabled&&structuralRegionState.tester?structuralRegionState.tester(self,that):!1;else if(self instanceof Date&&that instanceof Date)return self.toISOString()===that.toISOString();else if(self instanceof URL&&that instanceof URL)return self.href===that.href}if(structuralRegionState.enabled){if(Array.isArray(self)&&Array.isArray(that))return self.length===that.length&&self.every((v,i)=>compareBoth(v,that[i]));if(Object.getPrototypeOf(self)===Object.prototype&&Object.getPrototypeOf(self)===Object.prototype){let keysSelf=Object.keys(self),keysThat=Object.keys(that);if(keysSelf.length===keysThat.length){for(let key of keysSelf)if(!((key in that)&&compareBoth(self[key],that[key])))return structuralRegionState.tester?structuralRegionState.tester(self,that):!1;return!0}}return structuralRegionState.tester?structuralRegionState.tester(self,that):!1}}return structuralRegionState.enabled&&structuralRegionState.tester?structuralRegionState.tester(self,that):!1}var isEqual=(u)=>hasProperty(u,symbol2),equivalence=()=>equals;var NodeInspectSymbol=Symbol.for("nodejs.util.inspect.custom"),toJSON=(x)=>{try{if(hasProperty(x,"toJSON")&&isFunction2(x.toJSON)&&x.toJSON.length===0)return x.toJSON();else if(Array.isArray(x))return x.map(toJSON)}catch{return{}}return redact(x)},CIRCULAR="[Circular]";function formatDate(date){try{return date.toISOString()}catch{return"Invalid Date"}}function safeToString(input){try{let s=input.toString();return typeof s==="string"?s:String(s)}catch{return"[toString threw]"}}function formatPropertyKey(name){return isString(name)?JSON.stringify(name):String(name)}function formatUnknown(input,options){let space=options?.space??0,seen=new WeakSet,gap=!space?"":isNumber(space)?" ".repeat(space):space,ind=(d)=>gap.repeat(d),wrap=(v,body)=>{let ctor=v?.constructor;return ctor&&ctor!==Object.prototype.constructor&&ctor.name?`${ctor.name}(${body})`:body},ownKeys=(o)=>{try{return Reflect.ownKeys(o)}catch{return["[ownKeys threw]"]}};function go(v,d=0){if(Array.isArray(v)){if(seen.has(v))return CIRCULAR;if(seen.add(v),!gap||v.length<=1)return`[${v.map((x)=>go(x,d)).join(",")}]`;let inner=v.map((x)=>go(x,d+1)).join(`,
2
+ `+ind(d+1));return`[
3
+ ${ind(d+1)}${inner}
4
+ ${ind(d)}]`}if(isDate(v))return formatDate(v);if(!options?.ignoreToString&&hasProperty(v,"toString")&&isFunction2(v.toString)&&v.toString!==Object.prototype.toString&&v.toString!==Array.prototype.toString){let s=safeToString(v);if(v instanceof Error&&v.cause)return`${s} (cause: ${go(v.cause,d)})`;return s}if(isString(v))return JSON.stringify(v);if(isNumber(v)||v==null||isBoolean(v)||isSymbol(v))return String(v);if(isBigInt(v))return String(v)+"n";if(v instanceof Set||v instanceof Map){if(seen.has(v))return CIRCULAR;return seen.add(v),`${v.constructor.name}(${go(Array.from(v),d)})`}if(isObject(v)){if(seen.has(v))return CIRCULAR;seen.add(v);let keys=ownKeys(v);if(!gap||keys.length<=1){let body2=`{${keys.map((k)=>`${formatPropertyKey(k)}:${go(v[k],d)}`).join(",")}}`;return wrap(v,body2)}let body=`{
5
+ ${keys.map((k)=>`${ind(d+1)}${formatPropertyKey(k)}: ${go(v[k],d+1)}`).join(`,
6
+ `)}
7
+ ${ind(d)}}`;return wrap(v,body)}return String(v)}return go(input,0)}var format=(x)=>JSON.stringify(x,null,2),BaseProto={toJSON(){return toJSON(this)},[NodeInspectSymbol](){return this.toJSON()},toString(){return format(this.toJSON())}};var toStringUnknown=(u,whitespace=2)=>{if(typeof u==="string")return u;try{return typeof u==="object"?stringifyCircular(u,whitespace):String(u)}catch{return String(u)}},stringifyCircular=(obj,whitespace)=>{let cache=[],retVal=JSON.stringify(obj,(_key,value)=>typeof value==="object"&&value!==null?cache.includes(value)?void 0:cache.push(value)&&(redactableState.fiberRefs!==void 0&&isRedactable(value)?value[symbolRedactable](redactableState.fiberRefs):value):value,whitespace);return cache=void 0,retVal},symbolRedactable=Symbol.for("effect/Inspectable/Redactable"),isRedactable=(u)=>typeof u==="object"&&u!==null&&(symbolRedactable in u),redactableState=globalValue("effect/Inspectable/redactableState",()=>({fiberRefs:void 0})),withRedactableContext=(context,f)=>{let prev=redactableState.fiberRefs;redactableState.fiberRefs=context;try{return f()}finally{redactableState.fiberRefs=prev}},redact=(u)=>{if(isRedactable(u)&&redactableState.fiberRefs!==void 0)return u[symbolRedactable](redactableState.fiberRefs);return u};var pipeArguments=(self,args)=>{switch(args.length){case 0:return self;case 1:return args[0](self);case 2:return args[1](args[0](self));case 3:return args[2](args[1](args[0](self)));case 4:return args[3](args[2](args[1](args[0](self))));case 5:return args[4](args[3](args[2](args[1](args[0](self)))));case 6:return args[5](args[4](args[3](args[2](args[1](args[0](self))))));case 7:return args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))));case 8:return args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self))))))));case 9:return args[8](args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))))));default:{let ret=self;for(let i=0,len=args.length;i<len;i++)ret=args[i](ret);return ret}}};var OP_ASYNC="Async",OP_COMMIT="Commit",OP_FAILURE="Failure",OP_ON_FAILURE="OnFailure",OP_ON_SUCCESS="OnSuccess",OP_ON_SUCCESS_AND_FAILURE="OnSuccessAndFailure",OP_SUCCESS="Success",OP_SYNC="Sync",OP_TAG="Tag",OP_UPDATE_RUNTIME_FLAGS="UpdateRuntimeFlags",OP_WHILE="While",OP_ITERATOR="Iterator",OP_WITH_RUNTIME="WithRuntime",OP_YIELD="Yield",OP_REVERT_FLAGS="RevertFlags";var moduleVersion="3.19.9",getCurrentVersion=()=>moduleVersion;var EffectTypeId=Symbol.for("effect/Effect"),StreamTypeId=Symbol.for("effect/Stream"),SinkTypeId=Symbol.for("effect/Sink"),ChannelTypeId=Symbol.for("effect/Channel"),effectVariance={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_,_V:getCurrentVersion()},sinkVariance={_A:(_)=>_,_In:(_)=>_,_L:(_)=>_,_E:(_)=>_,_R:(_)=>_},channelVariance={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutElem:(_)=>_,_OutDone:(_)=>_},EffectPrototype={[EffectTypeId]:effectVariance,[StreamTypeId]:effectVariance,[SinkTypeId]:sinkVariance,[ChannelTypeId]:channelVariance,[symbol2](that){return this===that},[symbol](){return cached(this,random(this))},[Symbol.iterator](){return new SingleShotGen(new YieldWrap(this))},pipe(){return pipeArguments(this,arguments)}},StructuralPrototype={[symbol](){return cached(this,structure(this))},[symbol2](that){let selfKeys=Object.keys(this),thatKeys=Object.keys(that);if(selfKeys.length!==thatKeys.length)return!1;for(let key of selfKeys)if(!((key in that)&&equals(this[key],that[key])))return!1;return!0}},CommitPrototype={...EffectPrototype,_op:OP_COMMIT},StructuralCommitPrototype={...CommitPrototype,...StructuralPrototype},Base=function(){function Base2(){}return Base2.prototype=CommitPrototype,Base2}();var TypeId=Symbol.for("effect/Option"),CommonProto={...EffectPrototype,[TypeId]:{_A:(_)=>_},[NodeInspectSymbol](){return this.toJSON()},toString(){return format(this.toJSON())}},SomeProto=Object.assign(Object.create(CommonProto),{_tag:"Some",_op:"Some",[symbol2](that){return isOption(that)&&isSome(that)&&equals(this.value,that.value)},[symbol](){return cached(this,combine(hash(this._tag))(hash(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:toJSON(this.value)}}}),NoneHash=hash("None"),NoneProto=Object.assign(Object.create(CommonProto),{_tag:"None",_op:"None",[symbol2](that){return isOption(that)&&isNone(that)},[symbol](){return NoneHash},toJSON(){return{_id:"Option",_tag:this._tag}}}),isOption=(input)=>hasProperty(input,TypeId),isNone=(fa)=>fa._tag==="None",isSome=(fa)=>fa._tag==="Some",none=Object.create(NoneProto),some=(value)=>{let a=Object.create(SomeProto);return a.value=value,a};var TypeId2=Symbol.for("effect/Either"),CommonProto2={...EffectPrototype,[TypeId2]:{_R:(_)=>_},[NodeInspectSymbol](){return this.toJSON()},toString(){return format(this.toJSON())}},RightProto=Object.assign(Object.create(CommonProto2),{_tag:"Right",_op:"Right",[symbol2](that){return isEither(that)&&isRight(that)&&equals(this.right,that.right)},[symbol](){return combine(hash(this._tag))(hash(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:toJSON(this.right)}}}),LeftProto=Object.assign(Object.create(CommonProto2),{_tag:"Left",_op:"Left",[symbol2](that){return isEither(that)&&isLeft(that)&&equals(this.left,that.left)},[symbol](){return combine(hash(this._tag))(hash(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:toJSON(this.left)}}}),isEither=(input)=>hasProperty(input,TypeId2),isLeft=(ma)=>ma._tag==="Left",isRight=(ma)=>ma._tag==="Right",left=(left2)=>{let a=Object.create(LeftProto);return a.left=left2,a},right=(right2)=>{let a=Object.create(RightProto);return a.right=right2,a};var fromOption=dual(2,(self,onNone)=>isNone(self)?left(onNone()):right(self.value));var right2=right;var left2=left;var fromOption2=fromOption,try_=(evaluate)=>{if(isFunction2(evaluate))try{return right2(evaluate())}catch(e){return left2(e)}else try{return right2(evaluate.try())}catch(e){return left2(evaluate.catch(e))}};var isLeft2=isLeft,isRight2=isRight;var mapLeft=dual(2,(self,f)=>isLeft2(self)?left2(f(self.left)):right2(self.right)),map=dual(2,(self,f)=>isRight2(self)?right2(f(self.right)):left2(self.left)),match=dual(2,(self,{onLeft,onRight})=>isLeft2(self)?onLeft(self.left):onRight(self.right)),liftPredicate=dual(3,(a,predicate,orLeftWith)=>predicate(a)?right2(a):left2(orLeftWith(a)));var merge=match({onLeft:identity,onRight:identity});var all=(input)=>{if(Symbol.iterator in input){let out2=[];for(let e of input){if(isLeft2(e))return e;out2.push(e.right)}return right2(out2)}let out={};for(let key of Object.keys(input)){let e=input[key];if(isLeft2(e))return e;out[key]=e.right}return right2(out)};var isNonEmptyArray=(self)=>self.length>0;var make2=(compare)=>(self,that)=>self===that?0:compare(self,that);var number3=make2((self,that)=>self<that?-1:1);var mapInput2=dual(2,(self,f)=>make2((b1,b2)=>self(f(b1),f(b2))));var lessThan=(O)=>dual(2,(self,that)=>O(self,that)===-1),greaterThan=(O)=>dual(2,(self,that)=>O(self,that)===1);var min=(O)=>dual(2,(self,that)=>self===that||O(self,that)<1?self:that),max=(O)=>dual(2,(self,that)=>self===that||O(self,that)>-1?self:that),clamp=(O)=>dual(2,(self,options)=>min(O)(options.maximum,max(O)(options.minimum,self))),between=(O)=>dual(2,(self,options)=>!lessThan(O)(self,options.minimum)&&!greaterThan(O)(self,options.maximum));var none2=()=>none,some2=some;var isNone2=isNone,isSome2=isSome,match2=dual(2,(self,{onNone,onSome})=>isNone2(self)?onNone():onSome(self.value));var getOrElse=dual(2,(self,onNone)=>isNone2(self)?onNone():self.value),orElse=dual(2,(self,that)=>isNone2(self)?that():self),orElseSome=dual(2,(self,onNone)=>isNone2(self)?some2(onNone()):self);var fromNullable=(nullableValue)=>nullableValue==null?none2():some2(nullableValue);var getOrUndefined=getOrElse(constUndefined),liftThrowable=(f)=>(...a)=>{try{return some2(f(...a))}catch{return none2()}},getOrThrowWith=dual(2,(self,onNone)=>{if(isSome2(self))return self.value;throw onNone()}),getOrThrow=getOrThrowWith(()=>Error("getOrThrow called on a None")),map2=dual(2,(self,f)=>isNone2(self)?none2():some2(f(self.value)));var flatMap=dual(2,(self,f)=>isNone2(self)?none2():f(self.value));var containsWith=(isEquivalent)=>dual(2,(self,a)=>isNone2(self)?!1:isEquivalent(self.value,a)),_equivalence=equivalence(),contains=containsWith(_equivalence);var mergeWith=(f)=>(o1,o2)=>{if(isNone2(o1))return o2;else if(isNone2(o2))return o1;return some2(f(o1.value,o2.value))};var make3=(...elements)=>elements;var findFirst=dual(2,(self,f)=>{let i=0;for(let a of self){let o=f(a,i);if(isBoolean(o)){if(o)return some2(a)}else if(isSome2(o))return o;i++}return none2()});var constEmpty={[Symbol.iterator](){return constEmptyIterator}},constEmptyIterator={next(){return{done:!0,value:void 0}}};var allocate=(n)=>Array(n),makeBy=dual(2,(n,f)=>{let max2=Math.max(1,Math.floor(n)),out=Array(max2);for(let i=0;i<max2;i++)out[i]=f(i);return out});var fromIterable=(collection)=>Array.isArray(collection)?collection:Array.from(collection),ensure=(self)=>Array.isArray(self)?self:[self];var prepend=dual(2,(self,head)=>[head,...self]);var append=dual(2,(self,last)=>[...self,last]),appendAll=dual(2,(self,that)=>fromIterable(self).concat(fromIterable(that)));var isEmptyArray=(self)=>self.length===0,isEmptyReadonlyArray=isEmptyArray,isNonEmptyArray2=isNonEmptyArray,isNonEmptyReadonlyArray=isNonEmptyArray;var isOutOfBounds=(i,as)=>i<0||i>=as.length,clamp2=(i,as)=>Math.floor(Math.min(Math.max(0,i),as.length)),get=dual(2,(self,index)=>{let i=Math.floor(index);return isOutOfBounds(i,self)?none2():some2(self[i])}),unsafeGet=dual(2,(self,index)=>{let i=Math.floor(index);if(isOutOfBounds(i,self))throw Error(`Index ${i} out of bounds`);return self[i]});var head=get(0),headNonEmpty=unsafeGet(0),last=(self)=>isNonEmptyReadonlyArray(self)?some2(lastNonEmpty(self)):none2(),lastNonEmpty=(self)=>self[self.length-1];var tailNonEmpty=(self)=>self.slice(1);var spanIndex=(self,predicate)=>{let i=0;for(let a of self){if(!predicate(a,i))break;i++}return i},span=dual(2,(self,predicate)=>splitAt(self,spanIndex(self,predicate))),drop=dual(2,(self,n)=>{let input=fromIterable(self);return input.slice(clamp2(n,input),input.length)});var findFirst2=findFirst;var reverse=(self)=>Array.from(self).reverse(),sort=dual(2,(self,O)=>{let out=Array.from(self);return out.sort(O),out});var zip=dual(2,(self,that)=>zipWith(self,that,make3)),zipWith=dual(3,(self,that,f)=>{let as=fromIterable(self),bs=fromIterable(that);if(isNonEmptyReadonlyArray(as)&&isNonEmptyReadonlyArray(bs)){let out=[f(headNonEmpty(as),headNonEmpty(bs))],len=Math.min(as.length,bs.length);for(let i=1;i<len;i++)out[i]=f(as[i],bs[i]);return out}return[]});var _equivalence2=equivalence();var splitAt=dual(2,(self,n)=>{let input=Array.from(self),_n=Math.floor(n);if(isNonEmptyReadonlyArray(input)){if(_n>=1)return splitNonEmptyAt(input,_n);return[[],input]}return[input,[]]}),splitNonEmptyAt=dual(2,(self,n)=>{let _n=Math.max(1,Math.floor(n));return _n>=self.length?[copy(self),[]]:[prepend(self.slice(1,_n),headNonEmpty(self)),self.slice(_n)]});var copy=(self)=>self.slice();var unionWith=dual(3,(self,that,isEquivalent)=>{let a=fromIterable(self),b=fromIterable(that);if(isNonEmptyReadonlyArray(a)){if(isNonEmptyReadonlyArray(b))return dedupeWith(isEquivalent)(appendAll(a,b));return a}return b}),union=dual(2,(self,that)=>unionWith(self,that,_equivalence2));var empty=()=>[],of=(a)=>[a],map3=dual(2,(self,f)=>self.map(f)),flatMap2=dual(2,(self,f)=>{if(isEmptyReadonlyArray(self))return[];let out=[];for(let i=0;i<self.length;i++){let inner=f(self[i],i);for(let j=0;j<inner.length;j++)out.push(inner[j])}return out}),flatten=flatMap2(identity),filterMap=dual(2,(self,f)=>{let as=fromIterable(self),out=[];for(let i=0;i<as.length;i++){let o=f(as[i],i);if(isSome2(o))out.push(o.value)}return out}),filterMapWhile=dual(2,(self,f)=>{let i=0,out=[];for(let a of self){let b=f(a,i);if(isSome2(b))out.push(b.value);else break;i++}return out}),partitionMap=dual(2,(self,f)=>{let left3=[],right3=[],as=fromIterable(self);for(let i=0;i<as.length;i++){let e=f(as[i],i);if(isLeft2(e))left3.push(e.left);else right3.push(e.right)}return[left3,right3]}),getSomes=filterMap(identity);var filter=dual(2,(self,predicate)=>{let as=fromIterable(self),out=[];for(let i=0;i<as.length;i++)if(predicate(as[i],i))out.push(as[i]);return out});var reduce=dual(3,(self,b,f)=>fromIterable(self).reduce((b2,a,i)=>f(b2,a,i),b)),reduceRight=dual(3,(self,b,f)=>fromIterable(self).reduceRight((b2,a,i)=>f(b2,a,i),b));var every=dual(2,(self,refinement)=>self.every(refinement));var unfold=(b,f)=>{let out=[],next=b,o;while(isSome2(o=f(next))){let[a,b2]=o.value;out.push(a),next=b2}return out};var getEquivalence=array;var dedupeWith=dual(2,(self,isEquivalent)=>{let input=fromIterable(self);if(isNonEmptyReadonlyArray(input)){let out=[headNonEmpty(input)],rest=tailNonEmpty(input);for(let r of rest)if(out.every((a)=>!isEquivalent(r,a)))out.push(r);return out}return[]}),dedupe=(self)=>dedupeWith(self,equivalence());var join=dual(2,(self,sep)=>fromIterable(self).join(sep)),mapAccum=dual(3,(self,s,f)=>{let i=0,s1=s,out=[];for(let a of self){let r=f(s1,a,i);s1=r[0],out.push(r[1]),i++}return[s1,out]});var TypeId3=Symbol.for("effect/Chunk");function copy2(src,srcPos,dest,destPos,len){for(let i=srcPos;i<Math.min(src.length,srcPos+len);i++)dest[destPos+i-srcPos]=src[i];return dest}var emptyArray=[],getEquivalence2=(isEquivalent)=>make((self,that)=>self.length===that.length&&toReadonlyArray(self).every((value,i)=>isEquivalent(value,unsafeGet2(that,i)))),_equivalence3=getEquivalence2(equals),ChunkProto={[TypeId3]:{_A:(_)=>_},toString(){return format(this.toJSON())},toJSON(){return{_id:"Chunk",values:toReadonlyArray(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},[symbol2](that){return isChunk(that)&&_equivalence3(this,that)},[symbol](){return cached(this,array2(toReadonlyArray(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return emptyArray[Symbol.iterator]();default:return toReadonlyArray(this)[Symbol.iterator]()}},pipe(){return pipeArguments(this,arguments)}},makeChunk=(backing)=>{let chunk=Object.create(ChunkProto);switch(chunk.backing=backing,backing._tag){case"IEmpty":{chunk.length=0,chunk.depth=0,chunk.left=chunk,chunk.right=chunk;break}case"IConcat":{chunk.length=backing.left.length+backing.right.length,chunk.depth=1+Math.max(backing.left.depth,backing.right.depth),chunk.left=backing.left,chunk.right=backing.right;break}case"IArray":{chunk.length=backing.array.length,chunk.depth=0,chunk.left=_empty,chunk.right=_empty;break}case"ISingleton":{chunk.length=1,chunk.depth=0,chunk.left=_empty,chunk.right=_empty;break}case"ISlice":{chunk.length=backing.length,chunk.depth=backing.chunk.depth+1,chunk.left=_empty,chunk.right=_empty;break}}return chunk},isChunk=(u)=>hasProperty(u,TypeId3),_empty=makeChunk({_tag:"IEmpty"}),empty2=()=>_empty,make4=(...as)=>unsafeFromNonEmptyArray(as),of2=(a)=>makeChunk({_tag:"ISingleton",a}),fromIterable2=(self)=>isChunk(self)?self:unsafeFromArray(fromIterable(self)),copyToArray=(self,array3,initial)=>{switch(self.backing._tag){case"IArray":{copy2(self.backing.array,0,array3,initial,self.length);break}case"IConcat":{copyToArray(self.left,array3,initial),copyToArray(self.right,array3,initial+self.left.length);break}case"ISingleton":{array3[initial]=self.backing.a;break}case"ISlice":{let i=0,j=initial;while(i<self.length)array3[j]=unsafeGet2(self,i),i+=1,j+=1;break}}},toArray_=(self)=>toReadonlyArray(self).slice(),toArray2=toArray_,toReadonlyArray_=(self)=>{switch(self.backing._tag){case"IEmpty":return emptyArray;case"IArray":return self.backing.array;default:{let arr=Array(self.length);return copyToArray(self,arr,0),self.backing={_tag:"IArray",array:arr},self.left=_empty,self.right=_empty,self.depth=0,arr}}},toReadonlyArray=toReadonlyArray_,reverseChunk=(self)=>{switch(self.backing._tag){case"IEmpty":case"ISingleton":return self;case"IArray":return makeChunk({_tag:"IArray",array:reverse(self.backing.array)});case"IConcat":return makeChunk({_tag:"IConcat",left:reverse2(self.backing.right),right:reverse2(self.backing.left)});case"ISlice":return unsafeFromArray(reverse(toReadonlyArray(self)))}},reverse2=reverseChunk,get2=dual(2,(self,index)=>index<0||index>=self.length?none2():some2(unsafeGet2(self,index))),unsafeFromArray=(self)=>self.length===0?empty2():self.length===1?of2(self[0]):makeChunk({_tag:"IArray",array:self}),unsafeFromNonEmptyArray=(self)=>unsafeFromArray(self),unsafeGet2=dual(2,(self,index)=>{switch(self.backing._tag){case"IEmpty":throw Error("Index out of bounds");case"ISingleton":{if(index!==0)throw Error("Index out of bounds");return self.backing.a}case"IArray":{if(index>=self.length||index<0)throw Error("Index out of bounds");return self.backing.array[index]}case"IConcat":return index<self.left.length?unsafeGet2(self.left,index):unsafeGet2(self.right,index-self.left.length);case"ISlice":return unsafeGet2(self.backing.chunk,index+self.backing.offset)}}),append2=dual(2,(self,a)=>appendAll2(self,of2(a))),prepend2=dual(2,(self,elem)=>appendAll2(of2(elem),self)),take=dual(2,(self,n)=>{if(n<=0)return _empty;else if(n>=self.length)return self;else switch(self.backing._tag){case"ISlice":return makeChunk({_tag:"ISlice",chunk:self.backing.chunk,length:n,offset:self.backing.offset});case"IConcat":{if(n>self.left.length)return makeChunk({_tag:"IConcat",left:self.left,right:take(self.right,n-self.left.length)});return take(self.left,n)}default:return makeChunk({_tag:"ISlice",chunk:self,offset:0,length:n})}}),drop2=dual(2,(self,n)=>{if(n<=0)return self;else if(n>=self.length)return _empty;else switch(self.backing._tag){case"ISlice":return makeChunk({_tag:"ISlice",chunk:self.backing.chunk,offset:self.backing.offset+n,length:self.backing.length-n});case"IConcat":{if(n>self.left.length)return drop2(self.right,n-self.left.length);return makeChunk({_tag:"IConcat",left:drop2(self.left,n),right:self.right})}default:return makeChunk({_tag:"ISlice",chunk:self,offset:n,length:self.length-n})}});var dropWhile=dual(2,(self,predicate)=>{let arr=toReadonlyArray(self),len=arr.length,i=0;while(i<len&&predicate(arr[i]))i++;return drop2(self,i)});var appendAll2=dual(2,(self,that)=>{if(self.backing._tag==="IEmpty")return that;if(that.backing._tag==="IEmpty")return self;let diff=that.depth-self.depth;if(Math.abs(diff)<=1)return makeChunk({_tag:"IConcat",left:self,right:that});else if(diff<-1)if(self.left.depth>=self.right.depth){let nr=appendAll2(self.right,that);return makeChunk({_tag:"IConcat",left:self.left,right:nr})}else{let nrr=appendAll2(self.right.right,that);if(nrr.depth===self.depth-3){let nr=makeChunk({_tag:"IConcat",left:self.right.left,right:nrr});return makeChunk({_tag:"IConcat",left:self.left,right:nr})}else{let nl=makeChunk({_tag:"IConcat",left:self.left,right:self.right.left});return makeChunk({_tag:"IConcat",left:nl,right:nrr})}}else if(that.right.depth>=that.left.depth){let nl=appendAll2(self,that.left);return makeChunk({_tag:"IConcat",left:nl,right:that.right})}else{let nll=appendAll2(self,that.left.left);if(nll.depth===that.depth-3){let nl=makeChunk({_tag:"IConcat",left:nll,right:that.left.right});return makeChunk({_tag:"IConcat",left:nl,right:that.right})}else{let nr=makeChunk({_tag:"IConcat",left:that.left.right,right:that.right});return makeChunk({_tag:"IConcat",left:nll,right:nr})}}}),filterMap2=dual(2,(self,f)=>unsafeFromArray(filterMap(self,f))),filter2=dual(2,(self,predicate)=>unsafeFromArray(filter(self,predicate))),filterMapWhile2=dual(2,(self,f)=>unsafeFromArray(filterMapWhile(self,f)));var flatMap3=dual(2,(self,f)=>{if(self.backing._tag==="ISingleton")return f(self.backing.a,0);let out=_empty,i=0;for(let k of self)out=appendAll2(out,f(k,i++));return out});var flatten2=flatMap3(identity);var isEmpty=(self)=>self.length===0,isNonEmpty=(self)=>self.length>0,head2=get2(0),unsafeHead=(self)=>unsafeGet2(self,0),headNonEmpty2=unsafeHead,last2=(self)=>get2(self,self.length-1),unsafeLast=(self)=>unsafeGet2(self,self.length-1);var map4=dual(2,(self,f)=>self.backing._tag==="ISingleton"?of2(f(self.backing.a,0)):unsafeFromArray(pipe(toReadonlyArray(self),map3((a,i)=>f(a,i))))),mapAccum2=dual(3,(self,s,f)=>{let[s1,as]=mapAccum(self,s,f);return[s1,unsafeFromArray(as)]});var splitAt2=dual(2,(self,n)=>[take(self,n),drop2(self,n)]);var splitWhere=dual(2,(self,predicate)=>{let i=0;for(let a of toReadonlyArray(self))if(predicate(a))break;else i++;return splitAt2(self,i)});var tailNonEmpty2=(self)=>drop2(self,1),takeRight=dual(2,(self,n)=>drop2(self,self.length-n)),takeWhile=dual(2,(self,predicate)=>{let out=[];for(let a of toReadonlyArray(self))if(predicate(a))out.push(a);else break;return unsafeFromArray(out)});var zipWith2=dual(3,(self,that,f)=>unsafeFromArray(zipWith(self,that,f)));var makeBy2=dual(2,(n,f)=>fromIterable2(makeBy(n,f))),range=(start,end)=>start<=end?makeBy2(end-start+1,(i)=>start+i):of2(start);var findFirst3=findFirst2;var reduce2=reduce,reduceRight2=reduceRight;var SIZE=5,BUCKET_SIZE=Math.pow(2,5),MASK=BUCKET_SIZE-1,MAX_INDEX_NODE=BUCKET_SIZE/2,MIN_ARRAY_NODE=BUCKET_SIZE/4;function popcount(x){return x-=x>>1&1431655765,x=(x&858993459)+(x>>2&858993459),x=x+(x>>4)&252645135,x+=x>>8,x+=x>>16,x&127}function hashFragment(shift,h){return h>>>shift&MASK}function toBitmap(x){return 1<<x}function fromBitmap(bitmap,bit){return popcount(bitmap&bit-1)}var make5=(value,previous)=>({value,previous});function arrayUpdate(mutate,at,v,arr){let out=arr;if(!mutate){let len=arr.length;out=Array(len);for(let i=0;i<len;++i)out[i]=arr[i]}return out[at]=v,out}function arraySpliceOut(mutate,at,arr){let newLen=arr.length-1,i=0,g=0,out=arr;if(mutate)i=g=at;else{out=Array(newLen);while(i<at)out[g++]=arr[i++]}++i;while(i<=newLen)out[g++]=arr[i++];if(mutate)out.length=newLen;return out}function arraySpliceIn(mutate,at,v,arr){let len=arr.length;if(mutate){let i2=len;while(i2>=at)arr[i2--]=arr[i2];return arr[at]=v,arr}let i=0,g=0,out=Array(len+1);while(i<at)out[g++]=arr[i++];out[at]=v;while(i<len)out[++g]=arr[i++];return out}class EmptyNode{_tag="EmptyNode";modify(edit,_shift,f,hash2,key,size){let v=f(none2());if(isNone2(v))return new EmptyNode;return++size.value,new LeafNode(edit,hash2,key,v)}}function isEmptyNode(a){return isTagged(a,"EmptyNode")}function isLeafNode(node){return isEmptyNode(node)||node._tag==="LeafNode"||node._tag==="CollisionNode"}function canEditNode(node,edit){return isEmptyNode(node)?!1:edit===node.edit}class LeafNode{edit;hash;key;value;_tag="LeafNode";constructor(edit,hash2,key,value){this.edit=edit,this.hash=hash2,this.key=key,this.value=value}modify(edit,shift,f,hash2,key,size){if(equals(key,this.key)){let v2=f(this.value);if(v2===this.value)return this;else if(isNone2(v2))return--size.value,new EmptyNode;if(canEditNode(this,edit))return this.value=v2,this;return new LeafNode(edit,hash2,key,v2)}let v=f(none2());if(isNone2(v))return this;return++size.value,mergeLeaves(edit,shift,this.hash,this,hash2,new LeafNode(edit,hash2,key,v))}}class CollisionNode{edit;hash;children;_tag="CollisionNode";constructor(edit,hash2,children){this.edit=edit,this.hash=hash2,this.children=children}modify(edit,shift,f,hash2,key,size){if(hash2===this.hash){let canEdit=canEditNode(this,edit),list=this.updateCollisionList(canEdit,edit,this.hash,this.children,f,key,size);if(list===this.children)return this;return list.length>1?new CollisionNode(edit,this.hash,list):list[0]}let v=f(none2());if(isNone2(v))return this;return++size.value,mergeLeaves(edit,shift,this.hash,this,hash2,new LeafNode(edit,hash2,key,v))}updateCollisionList(mutate,edit,hash2,list,f,key,size){let len=list.length;for(let i=0;i<len;++i){let child=list[i];if("key"in child&&equals(key,child.key)){let value=child.value,newValue2=f(value);if(newValue2===value)return list;if(isNone2(newValue2))return--size.value,arraySpliceOut(mutate,i,list);return arrayUpdate(mutate,i,new LeafNode(edit,hash2,key,newValue2),list)}}let newValue=f(none2());if(isNone2(newValue))return list;return++size.value,arrayUpdate(mutate,len,new LeafNode(edit,hash2,key,newValue),list)}}class IndexedNode{edit;mask;children;_tag="IndexedNode";constructor(edit,mask,children){this.edit=edit,this.mask=mask,this.children=children}modify(edit,shift,f,hash2,key,size){let mask=this.mask,children=this.children,frag=hashFragment(shift,hash2),bit=toBitmap(frag),indx=fromBitmap(mask,bit),exists=mask&bit,canEdit=canEditNode(this,edit);if(!exists){let _newChild=new EmptyNode().modify(edit,shift+SIZE,f,hash2,key,size);if(!_newChild)return this;return children.length>=MAX_INDEX_NODE?expand(edit,frag,_newChild,mask,children):new IndexedNode(edit,mask|bit,arraySpliceIn(canEdit,indx,_newChild,children))}let current=children[indx],child=current.modify(edit,shift+SIZE,f,hash2,key,size);if(current===child)return this;let bitmap=mask,newChildren;if(isEmptyNode(child)){if(bitmap&=~bit,!bitmap)return new EmptyNode;if(children.length<=2&&isLeafNode(children[indx^1]))return children[indx^1];newChildren=arraySpliceOut(canEdit,indx,children)}else newChildren=arrayUpdate(canEdit,indx,child,children);if(canEdit)return this.mask=bitmap,this.children=newChildren,this;return new IndexedNode(edit,bitmap,newChildren)}}class ArrayNode{edit;size;children;_tag="ArrayNode";constructor(edit,size,children){this.edit=edit,this.size=size,this.children=children}modify(edit,shift,f,hash2,key,size){let count=this.size,children=this.children,frag=hashFragment(shift,hash2),child=children[frag],newChild=(child||new EmptyNode).modify(edit,shift+SIZE,f,hash2,key,size);if(child===newChild)return this;let canEdit=canEditNode(this,edit),newChildren;if(isEmptyNode(child)&&!isEmptyNode(newChild))++count,newChildren=arrayUpdate(canEdit,frag,newChild,children);else if(!isEmptyNode(child)&&isEmptyNode(newChild)){if(--count,count<=MIN_ARRAY_NODE)return pack(edit,count,frag,children);newChildren=arrayUpdate(canEdit,frag,new EmptyNode,children)}else newChildren=arrayUpdate(canEdit,frag,newChild,children);if(canEdit)return this.size=count,this.children=newChildren,this;return new ArrayNode(edit,count,newChildren)}}function pack(edit,count,removed,elements){let children=Array(count-1),g=0,bitmap=0;for(let i=0,len=elements.length;i<len;++i)if(i!==removed){let elem=elements[i];if(elem&&!isEmptyNode(elem))children[g++]=elem,bitmap|=1<<i}return new IndexedNode(edit,bitmap,children)}function expand(edit,frag,child,bitmap,subNodes){let arr=[],bit=bitmap,count=0;for(let i=0;bit;++i){if(bit&1)arr[i]=subNodes[count++];bit>>>=1}return arr[frag]=child,new ArrayNode(edit,count+1,arr)}function mergeLeavesInner(edit,shift,h1,n1,h2,n2){if(h1===h2)return new CollisionNode(edit,h1,[n2,n1]);let subH1=hashFragment(shift,h1),subH2=hashFragment(shift,h2);if(subH1===subH2)return(child)=>new IndexedNode(edit,toBitmap(subH1)|toBitmap(subH2),[child]);else{let children=subH1<subH2?[n1,n2]:[n2,n1];return new IndexedNode(edit,toBitmap(subH1)|toBitmap(subH2),children)}}function mergeLeaves(edit,shift,h1,n1,h2,n2){let stack=void 0,currentShift=shift;while(!0){let res=mergeLeavesInner(edit,currentShift,h1,n1,h2,n2);if(typeof res==="function")stack=make5(res,stack),currentShift=currentShift+SIZE;else{let final=res;while(stack!=null)final=stack.value(final),stack=stack.previous;return final}}}var HashMapSymbolKey="effect/HashMap",HashMapTypeId=Symbol.for(HashMapSymbolKey),HashMapProto={[HashMapTypeId]:HashMapTypeId,[Symbol.iterator](){return new HashMapIterator(this,(k,v)=>[k,v])},[symbol](){let hash2=hash(HashMapSymbolKey);for(let item of this)hash2^=pipe(hash(item[0]),combine(hash(item[1])));return cached(this,hash2)},[symbol2](that){if(isHashMap(that)){if(that._size!==this._size)return!1;for(let item of this){let elem=pipe(that,getHash(item[0],hash(item[0])));if(isNone2(elem))return!1;else if(!equals(item[1],elem.value))return!1}return!0}return!1},toString(){return format(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},makeImpl=(editable,edit,root,size)=>{let map5=Object.create(HashMapProto);return map5._editable=editable,map5._edit=edit,map5._root=root,map5._size=size,map5};class HashMapIterator{map;f;v;constructor(map5,f){this.map=map5,this.f=f,this.v=visitLazy(this.map._root,this.f,void 0)}next(){if(isNone2(this.v))return{done:!0,value:void 0};let v0=this.v.value;return this.v=applyCont(v0.cont),{done:!1,value:v0.value}}[Symbol.iterator](){return new HashMapIterator(this.map,this.f)}}var applyCont=(cont)=>cont?visitLazyChildren(cont[0],cont[1],cont[2],cont[3],cont[4]):none2(),visitLazy=(node,f,cont=void 0)=>{switch(node._tag){case"LeafNode":{if(isSome2(node.value))return some2({value:f(node.key,node.value.value),cont});return applyCont(cont)}case"CollisionNode":case"ArrayNode":case"IndexedNode":{let children=node.children;return visitLazyChildren(children.length,children,0,f,cont)}default:return applyCont(cont)}},visitLazyChildren=(len,children,i,f,cont)=>{while(i<len){let child=children[i++];if(child&&!isEmptyNode(child))return visitLazy(child,f,[len,children,i,f,cont])}return applyCont(cont)},_empty2=makeImpl(!1,0,new EmptyNode,0),empty3=()=>_empty2;var fromIterable3=(entries)=>{let map5=beginMutation(empty3());for(let entry of entries)set(map5,entry[0],entry[1]);return endMutation(map5)},isHashMap=(u)=>hasProperty(u,HashMapTypeId),isEmpty2=(self)=>self&&isEmptyNode(self._root),get3=dual(2,(self,key)=>getHash(self,key,hash(key))),getHash=dual(3,(self,key,hash2)=>{let node=self._root,shift=0;while(!0)switch(node._tag){case"LeafNode":return equals(key,node.key)?node.value:none2();case"CollisionNode":{if(hash2===node.hash){let children=node.children;for(let i=0,len=children.length;i<len;++i){let child=children[i];if("key"in child&&equals(key,child.key))return child.value}}return none2()}case"IndexedNode":{let frag=hashFragment(shift,hash2),bit=toBitmap(frag);if(node.mask&bit){node=node.children[fromBitmap(node.mask,bit)],shift+=SIZE;break}return none2()}case"ArrayNode":{if(node=node.children[hashFragment(shift,hash2)],node){shift+=SIZE;break}return none2()}default:return none2()}});var has=dual(2,(self,key)=>isSome2(getHash(self,key,hash(key))));var set=dual(3,(self,key,value)=>modifyAt(self,key,()=>some2(value))),setTree=dual(3,(self,newRoot,newSize)=>{if(self._editable)return self._root=newRoot,self._size=newSize,self;return newRoot===self._root?self:makeImpl(self._editable,self._edit,newRoot,newSize)}),keys=(self)=>new HashMapIterator(self,(key)=>key);var size=(self)=>self._size;var beginMutation=(self)=>makeImpl(!0,self._edit+1,self._root,self._size),endMutation=(self)=>{return self._editable=!1,self},mutate=dual(2,(self,f)=>{let transient=beginMutation(self);return f(transient),endMutation(transient)}),modifyAt=dual(3,(self,key,f)=>modifyHash(self,key,hash(key),f)),modifyHash=dual(4,(self,key,hash2,f)=>{let size2={value:self._size},newRoot=self._root.modify(self._editable?self._edit:NaN,0,f,hash2,key,size2);return pipe(self,setTree(newRoot,size2.value))});var remove2=dual(2,(self,key)=>modifyAt(self,key,none2));var map5=dual(2,(self,f)=>reduce3(self,empty3(),(map6,value,key)=>set(map6,key,f(value,key))));var forEach=dual(2,(self,f)=>reduce3(self,void 0,(_,value,key)=>f(value,key))),reduce3=dual(3,(self,zero,f)=>{let root=self._root;if(root._tag==="LeafNode")return isSome2(root.value)?f(zero,root.value.value,root.key):zero;if(root._tag==="EmptyNode")return zero;let toVisit=[root.children],children;while(children=toVisit.pop())for(let i=0,len=children.length;i<len;){let child=children[i++];if(child&&!isEmptyNode(child))if(child._tag==="LeafNode"){if(isSome2(child.value))zero=f(zero,child.value.value,child.key)}else toVisit.push(child.children)}return zero});var HashSetSymbolKey="effect/HashSet",HashSetTypeId=Symbol.for(HashSetSymbolKey),HashSetProto={[HashSetTypeId]:HashSetTypeId,[Symbol.iterator](){return keys(this._keyMap)},[symbol](){return cached(this,combine(hash(this._keyMap))(hash(HashSetSymbolKey)))},[symbol2](that){if(isHashSet(that))return size(this._keyMap)===size(that._keyMap)&&equals(this._keyMap,that._keyMap);return!1},toString(){return format(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},makeImpl2=(keyMap)=>{let set2=Object.create(HashSetProto);return set2._keyMap=keyMap,set2},isHashSet=(u)=>hasProperty(u,HashSetTypeId),_empty3=makeImpl2(empty3()),empty4=()=>_empty3,fromIterable4=(elements)=>{let set2=beginMutation2(empty4());for(let value of elements)add(set2,value);return endMutation2(set2)},make6=(...elements)=>{let set2=beginMutation2(empty4());for(let value of elements)add(set2,value);return endMutation2(set2)},has2=dual(2,(self,value)=>has(self._keyMap,value));var size2=(self)=>size(self._keyMap),beginMutation2=(self)=>makeImpl2(beginMutation(self._keyMap)),endMutation2=(self)=>{return self._keyMap._editable=!1,self},mutate2=dual(2,(self,f)=>{let transient=beginMutation2(self);return f(transient),endMutation2(transient)}),add=dual(2,(self,value)=>self._keyMap._editable?(set(value,!0)(self._keyMap),self):makeImpl2(set(value,!0)(self._keyMap))),remove3=dual(2,(self,value)=>self._keyMap._editable?(remove2(value)(self._keyMap),self):makeImpl2(remove2(value)(self._keyMap))),difference2=dual(2,(self,that)=>mutate2(self,(set2)=>{for(let value of that)remove3(set2,value)}));var union2=dual(2,(self,that)=>mutate2(empty4(),(set2)=>{forEach2(self,(value)=>add(set2,value));for(let value of that)add(set2,value)}));var forEach2=dual(2,(self,f)=>forEach(self._keyMap,(_,k)=>f(k))),reduce4=dual(3,(self,zero,f)=>reduce3(self._keyMap,zero,(z,_,a)=>f(z,a)));var empty5=empty4,fromIterable5=fromIterable4,make7=make6,has3=has2;var size3=size2;var add2=add,remove4=remove3,difference3=difference2;var union3=union2;var forEach3=forEach2,reduce5=reduce4;var OP_DIE="Die",OP_EMPTY="Empty",OP_FAIL="Fail",OP_INTERRUPT="Interrupt",OP_PARALLEL="Parallel",OP_SEQUENTIAL="Sequential";var CauseSymbolKey="effect/Cause",CauseTypeId=Symbol.for(CauseSymbolKey),variance={_E:(_)=>_},proto={[CauseTypeId]:variance,[symbol](){return pipe(hash(CauseSymbolKey),combine(hash(flattenCause(this))),cached(this))},[symbol2](that){return isCause(that)&&causeEquals(this,that)},pipe(){return pipeArguments(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:toJSON(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:toJSON(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:toJSON(this.left),right:toJSON(this.right)}}},toString(){return pretty(this)},[NodeInspectSymbol](){return this.toJSON()}},empty6=(()=>{let o=Object.create(proto);return o._tag=OP_EMPTY,o})(),fail=(error)=>{let o=Object.create(proto);return o._tag=OP_FAIL,o.error=error,o},die=(defect)=>{let o=Object.create(proto);return o._tag=OP_DIE,o.defect=defect,o},interrupt=(fiberId)=>{let o=Object.create(proto);return o._tag=OP_INTERRUPT,o.fiberId=fiberId,o},parallel=(left3,right3)=>{let o=Object.create(proto);return o._tag=OP_PARALLEL,o.left=left3,o.right=right3,o},sequential=(left3,right3)=>{let o=Object.create(proto);return o._tag=OP_SEQUENTIAL,o.left=left3,o.right=right3,o},isCause=(u)=>hasProperty(u,CauseTypeId),isEmptyType=(self)=>self._tag===OP_EMPTY;var isDieType=(self)=>self._tag===OP_DIE;var isEmpty3=(self)=>{if(self._tag===OP_EMPTY)return!0;return reduce6(self,!0,(acc,cause)=>{switch(cause._tag){case OP_EMPTY:return some2(acc);case OP_DIE:case OP_FAIL:case OP_INTERRUPT:return some2(!1);default:return none2()}})};var isInterrupted=(self)=>isSome2(interruptOption(self)),isInterruptedOnly=(self)=>reduceWithContext(void 0,IsInterruptedOnlyCauseReducer)(self),failures=(self)=>reverse2(reduce6(self,empty2(),(list,cause)=>cause._tag===OP_FAIL?some2(pipe(list,prepend2(cause.error))):none2())),defects=(self)=>reverse2(reduce6(self,empty2(),(list,cause)=>cause._tag===OP_DIE?some2(pipe(list,prepend2(cause.defect))):none2())),interruptors=(self)=>reduce6(self,empty5(),(set2,cause)=>cause._tag===OP_INTERRUPT?some2(pipe(set2,add2(cause.fiberId))):none2()),failureOption=(self)=>find(self,(cause)=>cause._tag===OP_FAIL?some2(cause.error):none2()),failureOrCause=(self)=>{let option=failureOption(self);switch(option._tag){case"None":return right2(self);case"Some":return left2(option.value)}};var flipCauseOption=(self)=>match3(self,{onEmpty:some2(empty6),onFail:map2(fail),onDie:(defect)=>some2(die(defect)),onInterrupt:(fiberId)=>some2(interrupt(fiberId)),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)}),interruptOption=(self)=>find(self,(cause)=>cause._tag===OP_INTERRUPT?some2(cause.fiberId):none2()),keepDefects=(self)=>match3(self,{onEmpty:none2(),onFail:()=>none2(),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)}),keepDefectsAndElectFailures=(self)=>match3(self,{onEmpty:none2(),onFail:(failure)=>some2(die(failure)),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)});var stripFailures=(self)=>match3(self,{onEmpty:empty6,onFail:()=>empty6,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel}),electFailures=(self)=>match3(self,{onEmpty:empty6,onFail:die,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel});var map8=dual(2,(self,f)=>flatMap6(self,(e)=>fail(f(e)))),flatMap6=dual(2,(self,f)=>match3(self,{onEmpty:empty6,onFail:(error)=>f(error),onDie:(defect)=>die(defect),onInterrupt:(fiberId)=>interrupt(fiberId),onSequential:(left3,right3)=>sequential(left3,right3),onParallel:(left3,right3)=>parallel(left3,right3)})),flatten3=(self)=>flatMap6(self,identity);var causeEquals=(left3,right3)=>{let leftStack=of2(left3),rightStack=of2(right3);while(isNonEmpty(leftStack)&&isNonEmpty(rightStack)){let[leftParallel,leftSequential]=pipe(headNonEmpty2(leftStack),reduce6([empty5(),empty2()],([parallel2,sequential2],cause)=>{let[par,seq]=evaluateCause(cause);return some2([pipe(parallel2,union3(par)),pipe(sequential2,appendAll2(seq))])})),[rightParallel,rightSequential]=pipe(headNonEmpty2(rightStack),reduce6([empty5(),empty2()],([parallel2,sequential2],cause)=>{let[par,seq]=evaluateCause(cause);return some2([pipe(parallel2,union3(par)),pipe(sequential2,appendAll2(seq))])}));if(!equals(leftParallel,rightParallel))return!1;leftStack=leftSequential,rightStack=rightSequential}return!0},flattenCause=(cause)=>{return flattenCauseLoop(of2(cause),empty2())},flattenCauseLoop=(causes,flattened)=>{while(!0){let[parallel2,sequential2]=pipe(causes,reduce([empty5(),empty2()],([parallel3,sequential3],cause)=>{let[par,seq]=evaluateCause(cause);return[pipe(parallel3,union3(par)),pipe(sequential3,appendAll2(seq))]})),updated=size3(parallel2)>0?pipe(flattened,prepend2(parallel2)):flattened;if(isEmpty(sequential2))return reverse2(updated);causes=sequential2,flattened=updated}throw Error(getBugErrorMessage("Cause.flattenCauseLoop"))},find=dual(2,(self,pf)=>{let stack=[self];while(stack.length>0){let item=stack.pop(),option=pf(item);switch(option._tag){case"None":{switch(item._tag){case OP_SEQUENTIAL:case OP_PARALLEL:{stack.push(item.right),stack.push(item.left);break}}break}case"Some":return option}}return none2()});var evaluateCause=(self)=>{let cause=self,stack=[],_parallel=empty5(),_sequential=empty2();while(cause!==void 0)switch(cause._tag){case OP_EMPTY:{if(stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_FAIL:{if(_parallel=add2(_parallel,make4(cause._tag,cause.error)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_DIE:{if(_parallel=add2(_parallel,make4(cause._tag,cause.defect)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_INTERRUPT:{if(_parallel=add2(_parallel,make4(cause._tag,cause.fiberId)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_SEQUENTIAL:{switch(cause.left._tag){case OP_EMPTY:{cause=cause.right;break}case OP_SEQUENTIAL:{cause=sequential(cause.left.left,sequential(cause.left.right,cause.right));break}case OP_PARALLEL:{cause=parallel(sequential(cause.left.left,cause.right),sequential(cause.left.right,cause.right));break}default:{_sequential=prepend2(_sequential,cause.right),cause=cause.left;break}}break}case OP_PARALLEL:{stack.push(cause.right),cause=cause.left;break}}throw Error(getBugErrorMessage("Cause.evaluateCauseLoop"))};var IsInterruptedOnlyCauseReducer={emptyCase:constTrue,failCase:constFalse,dieCase:constFalse,interruptCase:constTrue,sequentialCase:(_,left3,right3)=>left3&&right3,parallelCase:(_,left3,right3)=>left3&&right3};var OP_SEQUENTIAL_CASE="SequentialCase",OP_PARALLEL_CASE="ParallelCase",match3=dual(2,(self,{onDie,onEmpty,onFail,onInterrupt,onParallel,onSequential})=>{return reduceWithContext(self,void 0,{emptyCase:()=>onEmpty,failCase:(_,error)=>onFail(error),dieCase:(_,defect)=>onDie(defect),interruptCase:(_,fiberId)=>onInterrupt(fiberId),sequentialCase:(_,left3,right3)=>onSequential(left3,right3),parallelCase:(_,left3,right3)=>onParallel(left3,right3)})}),reduce6=dual(3,(self,zero,pf)=>{let accumulator=zero,cause=self,causes=[];while(cause!==void 0){let option=pf(accumulator,cause);switch(accumulator=isSome2(option)?option.value:accumulator,cause._tag){case OP_SEQUENTIAL:{causes.push(cause.right),cause=cause.left;break}case OP_PARALLEL:{causes.push(cause.right),cause=cause.left;break}default:{cause=void 0;break}}if(cause===void 0&&causes.length>0)cause=causes.pop()}return accumulator}),reduceWithContext=dual(3,(self,context,reducer)=>{let input=[self],output=[];while(input.length>0){let cause=input.pop();switch(cause._tag){case OP_EMPTY:{output.push(right2(reducer.emptyCase(context)));break}case OP_FAIL:{output.push(right2(reducer.failCase(context,cause.error)));break}case OP_DIE:{output.push(right2(reducer.dieCase(context,cause.defect)));break}case OP_INTERRUPT:{output.push(right2(reducer.interruptCase(context,cause.fiberId)));break}case OP_SEQUENTIAL:{input.push(cause.right),input.push(cause.left),output.push(left2({_tag:OP_SEQUENTIAL_CASE}));break}case OP_PARALLEL:{input.push(cause.right),input.push(cause.left),output.push(left2({_tag:OP_PARALLEL_CASE}));break}}}let accumulator=[];while(output.length>0){let either=output.pop();switch(either._tag){case"Left":{switch(either.left._tag){case OP_SEQUENTIAL_CASE:{let left3=accumulator.pop(),right3=accumulator.pop(),value=reducer.sequentialCase(context,left3,right3);accumulator.push(value);break}case OP_PARALLEL_CASE:{let left3=accumulator.pop(),right3=accumulator.pop(),value=reducer.parallelCase(context,left3,right3);accumulator.push(value);break}}break}case"Right":{accumulator.push(either.right);break}}}if(accumulator.length===0)throw Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return accumulator.pop()}),pretty=(cause,options)=>{if(isInterruptedOnly(cause))return"All fibers interrupted without errors.";return prettyErrors(cause).map(function(e){if(options?.renderErrorCause!==!0||e.cause===void 0)return e.stack;return`${e.stack} {
8
+ ${renderErrorCause(e.cause," ")}
9
+ }`}).join(`
10
+ `)},renderErrorCause=(cause,prefix)=>{let lines=cause.stack.split(`
11
+ `),stack=`${prefix}[cause]: ${lines[0]}`;for(let i=1,len=lines.length;i<len;i++)stack+=`
12
+ ${prefix}${lines[i]}`;if(cause.cause)stack+=` {
13
+ ${renderErrorCause(cause.cause,`${prefix} `)}
14
+ ${prefix}}`;return stack};class PrettyError extends globalThis.Error{span=void 0;constructor(originalError){let originalErrorIsObject=typeof originalError==="object"&&originalError!==null,prevLimit=Error.stackTraceLimit;Error.stackTraceLimit=1;super(prettyErrorMessage(originalError),originalErrorIsObject&&"cause"in originalError&&typeof originalError.cause<"u"?{cause:new PrettyError(originalError.cause)}:void 0);if(this.message==="")this.message="An error has occurred";if(Error.stackTraceLimit=prevLimit,this.name=originalError instanceof Error?originalError.name:"Error",originalErrorIsObject){if(spanSymbol in originalError)this.span=originalError[spanSymbol];Object.keys(originalError).forEach((key)=>{if(!(key in this))this[key]=originalError[key]})}this.stack=prettyErrorStack(`${this.name}: ${this.message}`,originalError instanceof Error&&originalError.stack?originalError.stack:"",this.span)}}var prettyErrorMessage=(u)=>{if(typeof u==="string")return u;if(typeof u==="object"&&u!==null&&u instanceof Error)return u.message;try{if(hasProperty(u,"toString")&&isFunction2(u.toString)&&u.toString!==Object.prototype.toString&&u.toString!==globalThis.Array.prototype.toString)return u.toString()}catch{}return stringifyCircular(u)},locationRegex=/\((.*)\)/g,spanToTrace=globalValue("effect/Tracer/spanToTrace",()=>new WeakMap),prettyErrorStack=(message,stack,span2)=>{let out=[message],lines=stack.startsWith(message)?stack.slice(message.length).split(`
15
+ `):stack.split(`
16
+ `);for(let i=1;i<lines.length;i++){if(lines[i].includes(" at new BaseEffectError")||lines[i].includes(" at new YieldableError")){i++;continue}if(lines[i].includes("Generator.next"))break;if(lines[i].includes("effect_internal_function"))break;out.push(lines[i].replace(/at .*effect_instruction_i.*\((.*)\)/,"at $1").replace(/EffectPrimitive\.\w+/,"<anonymous>"))}if(span2){let current=span2,i=0;while(current&&current._tag==="Span"&&i<10){let stackFn=spanToTrace.get(current);if(typeof stackFn==="function"){let stack2=stackFn();if(typeof stack2==="string"){let locationMatchAll=stack2.matchAll(locationRegex),match4=!1;for(let[,location]of locationMatchAll)match4=!0,out.push(` at ${current.name} (${location})`);if(!match4)out.push(` at ${current.name} (${stack2.replace(/^at /,"")})`)}else out.push(` at ${current.name}`)}else out.push(` at ${current.name}`);current=getOrUndefined(current.parent),i++}}return out.join(`
17
+ `)},spanSymbol=Symbol.for("effect/SpanAnnotation"),prettyErrors=(cause)=>reduceWithContext(cause,void 0,{emptyCase:()=>[],dieCase:(_,unknownError)=>{return[new PrettyError(unknownError)]},failCase:(_,error)=>{return[new PrettyError(error)]},interruptCase:()=>[],parallelCase:(_,l,r)=>[...l,...r],sequentialCase:(_,l,r)=>[...l,...r]});var exports_Context={};__export(exports_Context,{unsafeMake:()=>unsafeMake,unsafeGet:()=>unsafeGet4,pick:()=>pick2,omit:()=>omit2,mergeAll:()=>mergeAll2,merge:()=>merge3,make:()=>make9,isTag:()=>isTag2,isReference:()=>isReference2,isContext:()=>isContext2,getOrElse:()=>getOrElse3,getOption:()=>getOption2,get:()=>get5,empty:()=>empty8,add:()=>add4,TagTypeId:()=>TagTypeId2,Tag:()=>Tag2,ReferenceTypeId:()=>ReferenceTypeId2,Reference:()=>Reference2,GenericTag:()=>GenericTag});var TagTypeId=Symbol.for("effect/Context/Tag"),ReferenceTypeId=Symbol.for("effect/Context/Reference"),STMSymbolKey="effect/STM",STMTypeId=Symbol.for(STMSymbolKey),TagProto={...EffectPrototype,_op:"Tag",[STMTypeId]:effectVariance,[TagTypeId]:{_Service:(_)=>_,_Identifier:(_)=>_},toString(){return format(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[NodeInspectSymbol](){return this.toJSON()},of(self){return self},context(self){return make8(this,self)}},ReferenceProto={...TagProto,[ReferenceTypeId]:ReferenceTypeId},makeGenericTag=(key)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;let tag=Object.create(TagProto);return Object.defineProperty(tag,"stack",{get(){return creationError.stack}}),tag.key=key,tag},Tag=(id)=>()=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function TagClass(){}return Object.setPrototypeOf(TagClass,TagProto),TagClass.key=id,Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}}),TagClass},Reference=()=>(id,options)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function ReferenceClass(){}return Object.setPrototypeOf(ReferenceClass,ReferenceProto),ReferenceClass.key=id,ReferenceClass.defaultValue=options.defaultValue,Object.defineProperty(ReferenceClass,"stack",{get(){return creationError.stack}}),ReferenceClass},TypeId4=Symbol.for("effect/Context"),ContextProto={[TypeId4]:{_Services:(_)=>_},[symbol2](that){if(isContext(that)){if(this.unsafeMap.size===that.unsafeMap.size){for(let k of this.unsafeMap.keys())if(!that.unsafeMap.has(k)||!equals(this.unsafeMap.get(k),that.unsafeMap.get(k)))return!1;return!0}}return!1},[symbol](){return cached(this,number2(this.unsafeMap.size))},pipe(){return pipeArguments(this,arguments)},toString(){return format(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()}},makeContext=(unsafeMap)=>{let context=Object.create(ContextProto);return context.unsafeMap=unsafeMap,context},serviceNotFoundError=(tag)=>{let error=Error(`Service not found${tag.key?`: ${String(tag.key)}`:""}`);if(tag.stack){let lines=tag.stack.split(`
18
+ `);if(lines.length>2){let afterAt=lines[2].match(/at (.*)/);if(afterAt)error.message=error.message+` (defined at ${afterAt[1]})`}}if(error.stack){let lines=error.stack.split(`
19
+ `);lines.splice(1,3),error.stack=lines.join(`
20
+ `)}return error},isContext=(u)=>hasProperty(u,TypeId4),isTag=(u)=>hasProperty(u,TagTypeId),isReference=(u)=>hasProperty(u,ReferenceTypeId),_empty4=makeContext(new Map),empty7=()=>_empty4,make8=(tag,service)=>makeContext(new Map([[tag.key,service]])),add3=dual(3,(self,tag,service)=>{let map9=new Map(self.unsafeMap);return map9.set(tag.key,service),makeContext(map9)}),defaultValueCache=globalValue("effect/Context/defaultValueCache",()=>new Map),getDefaultValue=(tag)=>{if(defaultValueCache.has(tag.key))return defaultValueCache.get(tag.key);let value=tag.defaultValue();return defaultValueCache.set(tag.key,value),value},unsafeGetReference=(self,tag)=>{return self.unsafeMap.has(tag.key)?self.unsafeMap.get(tag.key):getDefaultValue(tag)},unsafeGet3=dual(2,(self,tag)=>{if(!self.unsafeMap.has(tag.key)){if(ReferenceTypeId in tag)return getDefaultValue(tag);throw serviceNotFoundError(tag)}return self.unsafeMap.get(tag.key)}),get4=unsafeGet3,getOrElse2=dual(3,(self,tag,orElse2)=>{if(!self.unsafeMap.has(tag.key))return isReference(tag)?getDefaultValue(tag):orElse2();return self.unsafeMap.get(tag.key)}),getOption=dual(2,(self,tag)=>{if(!self.unsafeMap.has(tag.key))return isReference(tag)?some(getDefaultValue(tag)):none;return some(self.unsafeMap.get(tag.key))}),merge2=dual(2,(self,that)=>{let map9=new Map(self.unsafeMap);for(let[tag,s]of that.unsafeMap)map9.set(tag,s);return makeContext(map9)}),mergeAll=(...ctxs)=>{let map9=new Map;for(let i=0;i<ctxs.length;i++)ctxs[i].unsafeMap.forEach((value,key)=>{map9.set(key,value)});return makeContext(map9)},pick=(...tags)=>(self)=>{let tagSet=new Set(tags.map((_)=>_.key)),newEnv=new Map;for(let[tag,s]of self.unsafeMap.entries())if(tagSet.has(tag))newEnv.set(tag,s);return makeContext(newEnv)},omit=(...tags)=>(self)=>{let newEnv=new Map(self.unsafeMap);for(let tag of tags)newEnv.delete(tag.key);return makeContext(newEnv)};var TagTypeId2=TagTypeId,ReferenceTypeId2=ReferenceTypeId,GenericTag=makeGenericTag;var unsafeMake=makeContext,isContext2=isContext,isTag2=isTag,isReference2=isReference,empty8=empty7,make9=make8,add4=add3,get5=get4,getOrElse3=getOrElse2,unsafeGet4=unsafeGet3,getOption2=getOption,merge3=merge2,mergeAll2=mergeAll,pick2=pick,omit2=omit,Tag2=Tag,Reference2=Reference;var exports_Duration={};__export(exports_Duration,{zero:()=>zero,weeks:()=>weeks,unsafeToNanos:()=>unsafeToNanos,unsafeFormatIso:()=>unsafeFormatIso,unsafeDivide:()=>unsafeDivide,toWeeks:()=>toWeeks,toSeconds:()=>toSeconds,toNanos:()=>toNanos,toMinutes:()=>toMinutes,toMillis:()=>toMillis,toHrTime:()=>toHrTime,toHours:()=>toHours,toDays:()=>toDays,times:()=>times,sum:()=>sum,subtract:()=>subtract,seconds:()=>seconds,parts:()=>parts,nanos:()=>nanos,minutes:()=>minutes,min:()=>min2,millis:()=>millis,micros:()=>micros,max:()=>max2,matchWith:()=>matchWith,match:()=>match4,lessThanOrEqualTo:()=>lessThanOrEqualTo,lessThan:()=>lessThan2,isZero:()=>isZero,isFinite:()=>isFinite,isDuration:()=>isDuration,infinity:()=>infinity,hours:()=>hours,greaterThanOrEqualTo:()=>greaterThanOrEqualTo,greaterThan:()=>greaterThan2,fromIso:()=>fromIso,formatIso:()=>formatIso,format:()=>format2,equals:()=>equals2,divide:()=>divide,decodeUnknown:()=>decodeUnknown,decode:()=>decode,days:()=>days,clamp:()=>clamp3,between:()=>between2,Order:()=>Order,Equivalence:()=>Equivalence});var TypeId5=Symbol.for("effect/Duration"),bigint0=BigInt(0),bigint24=BigInt(24),bigint60=BigInt(60),bigint1e3=BigInt(1000),bigint1e6=BigInt(1e6),bigint1e9=BigInt(1e9),DURATION_REGEX=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,decode=(input)=>{if(isDuration(input))return input;else if(isNumber(input))return millis(input);else if(isBigInt(input))return nanos(input);else if(Array.isArray(input)&&input.length===2&&input.every(isNumber)){if(input[0]===-1/0||input[1]===-1/0||Number.isNaN(input[0])||Number.isNaN(input[1]))return zero;if(input[0]===1/0||input[1]===1/0)return infinity;return nanos(BigInt(Math.round(input[0]*1e9))+BigInt(Math.round(input[1])))}else if(isString(input)){let match4=DURATION_REGEX.exec(input);if(match4){let[_,valueStr,unit]=match4,value=Number(valueStr);switch(unit){case"nano":case"nanos":return nanos(BigInt(valueStr));case"micro":case"micros":return micros(BigInt(valueStr));case"milli":case"millis":return millis(value);case"second":case"seconds":return seconds(value);case"minute":case"minutes":return minutes(value);case"hour":case"hours":return hours(value);case"day":case"days":return days(value);case"week":case"weeks":return weeks(value)}}}throw Error("Invalid DurationInput")},decodeUnknown=liftThrowable(decode),zeroValue={_tag:"Millis",millis:0},infinityValue={_tag:"Infinity"},DurationProto={[TypeId5]:TypeId5,[symbol](){return cached(this,structure(this.value))},[symbol2](that){return isDuration(that)&&equals2(this,that)},toString(){return`Duration(${format2(this)})`},toJSON(){switch(this.value._tag){case"Millis":return{_id:"Duration",_tag:"Millis",millis:this.value.millis};case"Nanos":return{_id:"Duration",_tag:"Nanos",hrtime:toHrTime(this)};case"Infinity":return{_id:"Duration",_tag:"Infinity"}}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},make10=(input)=>{let duration=Object.create(DurationProto);if(isNumber(input))if(isNaN(input)||input<=0)duration.value=zeroValue;else if(!Number.isFinite(input))duration.value=infinityValue;else if(!Number.isInteger(input))duration.value={_tag:"Nanos",nanos:BigInt(Math.round(input*1e6))};else duration.value={_tag:"Millis",millis:input};else if(input<=bigint0)duration.value=zeroValue;else duration.value={_tag:"Nanos",nanos:input};return duration},isDuration=(u)=>hasProperty(u,TypeId5),isFinite=(self)=>self.value._tag!=="Infinity",isZero=(self)=>{switch(self.value._tag){case"Millis":return self.value.millis===0;case"Nanos":return self.value.nanos===bigint0;case"Infinity":return!1}},zero=make10(0),infinity=make10(1/0),nanos=(nanos2)=>make10(nanos2),micros=(micros2)=>make10(micros2*bigint1e3),millis=(millis2)=>make10(millis2),seconds=(seconds2)=>make10(seconds2*1000),minutes=(minutes2)=>make10(minutes2*60000),hours=(hours2)=>make10(hours2*3600000),days=(days2)=>make10(days2*86400000),weeks=(weeks2)=>make10(weeks2*604800000),toMillis=(self)=>match4(self,{onMillis:(millis2)=>millis2,onNanos:(nanos2)=>Number(nanos2)/1e6}),toSeconds=(self)=>match4(self,{onMillis:(millis2)=>millis2/1000,onNanos:(nanos2)=>Number(nanos2)/1e9}),toMinutes=(self)=>match4(self,{onMillis:(millis2)=>millis2/60000,onNanos:(nanos2)=>Number(nanos2)/60000000000}),toHours=(self)=>match4(self,{onMillis:(millis2)=>millis2/3600000,onNanos:(nanos2)=>Number(nanos2)/3600000000000}),toDays=(self)=>match4(self,{onMillis:(millis2)=>millis2/86400000,onNanos:(nanos2)=>Number(nanos2)/86400000000000}),toWeeks=(self)=>match4(self,{onMillis:(millis2)=>millis2/604800000,onNanos:(nanos2)=>Number(nanos2)/604800000000000}),toNanos=(self)=>{let _self=decode(self);switch(_self.value._tag){case"Infinity":return none2();case"Nanos":return some2(_self.value.nanos);case"Millis":return some2(BigInt(Math.round(_self.value.millis*1e6)))}},unsafeToNanos=(self)=>{let _self=decode(self);switch(_self.value._tag){case"Infinity":throw Error("Cannot convert infinite duration to nanos");case"Nanos":return _self.value.nanos;case"Millis":return BigInt(Math.round(_self.value.millis*1e6))}},toHrTime=(self)=>{let _self=decode(self);switch(_self.value._tag){case"Infinity":return[1/0,0];case"Nanos":return[Number(_self.value.nanos/bigint1e9),Number(_self.value.nanos%bigint1e9)];case"Millis":return[Math.floor(_self.value.millis/1000),Math.round(_self.value.millis%1000*1e6)]}},match4=dual(2,(self,options)=>{let _self=decode(self);switch(_self.value._tag){case"Nanos":return options.onNanos(_self.value.nanos);case"Infinity":return options.onMillis(1/0);case"Millis":return options.onMillis(_self.value.millis)}}),matchWith=dual(3,(self,that,options)=>{let _self=decode(self),_that=decode(that);if(_self.value._tag==="Infinity"||_that.value._tag==="Infinity")return options.onMillis(toMillis(_self),toMillis(_that));else if(_self.value._tag==="Nanos"||_that.value._tag==="Nanos"){let selfNanos=_self.value._tag==="Nanos"?_self.value.nanos:BigInt(Math.round(_self.value.millis*1e6)),thatNanos=_that.value._tag==="Nanos"?_that.value.nanos:BigInt(Math.round(_that.value.millis*1e6));return options.onNanos(selfNanos,thatNanos)}return options.onMillis(_self.value.millis,_that.value.millis)}),Order=make2((self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2<that2?-1:self2>that2?1:0,onNanos:(self2,that2)=>self2<that2?-1:self2>that2?1:0})),between2=between(mapInput2(Order,decode)),Equivalence=(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2===that2,onNanos:(self2,that2)=>self2===that2}),_min=min(Order),min2=dual(2,(self,that)=>_min(decode(self),decode(that))),_max=max(Order),max2=dual(2,(self,that)=>_max(decode(self),decode(that))),_clamp=clamp(Order),clamp3=dual(2,(self,options)=>_clamp(decode(self),{minimum:decode(options.minimum),maximum:decode(options.maximum)})),divide=dual(2,(self,by)=>match4(self,{onMillis:(millis2)=>{if(by===0||isNaN(by)||!Number.isFinite(by))return none2();return some2(make10(millis2/by))},onNanos:(nanos2)=>{if(isNaN(by)||by<=0||!Number.isFinite(by))return none2();try{return some2(make10(nanos2/BigInt(by)))}catch{return none2()}}})),unsafeDivide=dual(2,(self,by)=>match4(self,{onMillis:(millis2)=>make10(millis2/by),onNanos:(nanos2)=>{if(isNaN(by)||by<0||Object.is(by,-0))return zero;else if(Object.is(by,0)||!Number.isFinite(by))return infinity;return make10(nanos2/BigInt(by))}})),times=dual(2,(self,times2)=>match4(self,{onMillis:(millis2)=>make10(millis2*times2),onNanos:(nanos2)=>make10(nanos2*BigInt(times2))})),subtract=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>make10(self2-that2),onNanos:(self2,that2)=>make10(self2-that2)})),sum=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>make10(self2+that2),onNanos:(self2,that2)=>make10(self2+that2)})),lessThan2=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2<that2,onNanos:(self2,that2)=>self2<that2})),lessThanOrEqualTo=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2<=that2,onNanos:(self2,that2)=>self2<=that2})),greaterThan2=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2>that2,onNanos:(self2,that2)=>self2>that2})),greaterThanOrEqualTo=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2>=that2,onNanos:(self2,that2)=>self2>=that2})),equals2=dual(2,(self,that)=>Equivalence(decode(self),decode(that))),parts=(self)=>{let duration=decode(self);if(duration.value._tag==="Infinity")return{days:1/0,hours:1/0,minutes:1/0,seconds:1/0,millis:1/0,nanos:1/0};let nanos2=unsafeToNanos(duration),ms=nanos2/bigint1e6,sec=ms/bigint1e3,min3=sec/bigint60,hr=min3/bigint60,days2=hr/bigint24;return{days:Number(days2),hours:Number(hr%bigint24),minutes:Number(min3%bigint60),seconds:Number(sec%bigint60),millis:Number(ms%bigint1e3),nanos:Number(nanos2%bigint1e6)}},format2=(self)=>{let duration=decode(self);if(duration.value._tag==="Infinity")return"Infinity";if(isZero(duration))return"0";let fragments=parts(duration),pieces=[];if(fragments.days!==0)pieces.push(`${fragments.days}d`);if(fragments.hours!==0)pieces.push(`${fragments.hours}h`);if(fragments.minutes!==0)pieces.push(`${fragments.minutes}m`);if(fragments.seconds!==0)pieces.push(`${fragments.seconds}s`);if(fragments.millis!==0)pieces.push(`${fragments.millis}ms`);if(fragments.nanos!==0)pieces.push(`${fragments.nanos}ns`);return pieces.join(" ")},unsafeFormatIso=(self)=>{let duration=decode(self);if(!isFinite(duration))throw RangeError("Cannot format infinite duration");let fragments=[],{days:days2,hours:hours2,millis:millis2,minutes:minutes2,nanos:nanos2,seconds:seconds2}=parts(duration),rest=days2;if(rest>=365){let years=Math.floor(rest/365);rest%=365,fragments.push(`${years}Y`)}if(rest>=30){let months=Math.floor(rest/30);rest%=30,fragments.push(`${months}M`)}if(rest>=7){let weeks2=Math.floor(rest/7);rest%=7,fragments.push(`${weeks2}W`)}if(rest>0)fragments.push(`${rest}D`);if(hours2!==0||minutes2!==0||seconds2!==0||millis2!==0||nanos2!==0){if(fragments.push("T"),hours2!==0)fragments.push(`${hours2}H`);if(minutes2!==0)fragments.push(`${minutes2}M`);if(seconds2!==0||millis2!==0||nanos2!==0){let total=BigInt(seconds2)*bigint1e9+BigInt(millis2)*bigint1e6+BigInt(nanos2),str=(Number(total)/1e9).toFixed(9).replace(/\.?0+$/,"");fragments.push(`${str}S`)}}return`P${fragments.join("")||"T0S"}`},formatIso=(self)=>{let duration=decode(self);return isFinite(duration)?some2(unsafeFormatIso(duration)):none2()},fromIso=(iso)=>{let result=DURATION_ISO_REGEX.exec(iso);if(result==null)return none2();let[years,months,weeks2,days2,hours2,mins,secs]=result.slice(1,8).map((_)=>_?Number(_):0),value=years*365*24*60*60+months*30*24*60*60+weeks2*7*24*60*60+days2*24*60*60+hours2*60*60+mins*60+secs;return some2(seconds(value))},DURATION_ISO_REGEX=/^P(?!$)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)W)?(?:(\d+)D)?(?:T(?!$)(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/;var TypeId6=Symbol.for("effect/MutableRef"),MutableRefProto={[TypeId6]:TypeId6,toString(){return format(this.toJSON())},toJSON(){return{_id:"MutableRef",current:toJSON(this.current)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},make11=(value)=>{let ref=Object.create(MutableRefProto);return ref.current=value,ref},compareAndSet=dual(3,(self,oldValue,newValue)=>{if(equals(oldValue,self.current))return self.current=newValue,!0;return!1});var get6=(self)=>self.current;var set2=dual(2,(self,value)=>{return self.current=value,self});var FiberIdSymbolKey="effect/FiberId",FiberIdTypeId=Symbol.for(FiberIdSymbolKey),OP_NONE="None",OP_RUNTIME="Runtime",OP_COMPOSITE="Composite",emptyHash=string(`${FiberIdSymbolKey}-${OP_NONE}`);class None{[FiberIdTypeId]=FiberIdTypeId;_tag=OP_NONE;id=-1;startTimeMillis=-1;[symbol](){return emptyHash}[symbol2](that){return isFiberId(that)&&that._tag===OP_NONE}toString(){return format(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag}}[NodeInspectSymbol](){return this.toJSON()}}class Runtime{id;startTimeMillis;[FiberIdTypeId]=FiberIdTypeId;_tag=OP_RUNTIME;constructor(id,startTimeMillis){this.id=id,this.startTimeMillis=startTimeMillis}[symbol](){return cached(this,string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`))}[symbol2](that){return isFiberId(that)&&that._tag===OP_RUNTIME&&this.id===that.id&&this.startTimeMillis===that.startTimeMillis}toString(){return format(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,id:this.id,startTimeMillis:this.startTimeMillis}}[NodeInspectSymbol](){return this.toJSON()}}class Composite{left;right;[FiberIdTypeId]=FiberIdTypeId;_tag=OP_COMPOSITE;constructor(left3,right3){this.left=left3,this.right=right3}_hash;[symbol](){return pipe(string(`${FiberIdSymbolKey}-${this._tag}`),combine(hash(this.left)),combine(hash(this.right)),cached(this))}[symbol2](that){return isFiberId(that)&&that._tag===OP_COMPOSITE&&equals(this.left,that.left)&&equals(this.right,that.right)}toString(){return format(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,left:toJSON(this.left),right:toJSON(this.right)}}[NodeInspectSymbol](){return this.toJSON()}}var none3=new None;var isFiberId=(self)=>hasProperty(self,FiberIdTypeId);var combine2=dual(2,(self,that)=>{if(self._tag===OP_NONE)return that;if(that._tag===OP_NONE)return self;return new Composite(self,that)}),combineAll=(fiberIds)=>{return pipe(fiberIds,reduce5(none3,(a,b)=>combine2(b)(a)))};var ids=(self)=>{switch(self._tag){case OP_NONE:return empty5();case OP_RUNTIME:return make7(self.id);case OP_COMPOSITE:return pipe(ids(self.left),union3(ids(self.right)))}},_fiberCounter=globalValue(Symbol.for("effect/Fiber/Id/_fiberCounter"),()=>make11(0));var threadName=(self)=>{return Array.from(ids(self)).map((n)=>`#${n}`).join(",")};var unsafeMake2=()=>{let id=get6(_fiberCounter);return pipe(_fiberCounter,set2(id+1)),new Runtime(id,Date.now())};var none4=none3;var combine3=combine2,combineAll2=combineAll;var ids2=ids;var threadName2=threadName;var unsafeMake3=unsafeMake2;var empty9=empty3;var fromIterable6=fromIterable3,isEmpty4=isEmpty2,get7=get3;var set3=set,keys2=keys;var size4=size;var mutate3=mutate,modifyAt2=modifyAt;var map9=map5;var forEach4=forEach,reduce7=reduce3;var TypeId7=Symbol.for("effect/List"),toArray3=(self)=>fromIterable(self),getEquivalence3=(isEquivalent)=>mapInput(getEquivalence(isEquivalent),toArray3),_equivalence4=getEquivalence3(equals),ConsProto={[TypeId7]:TypeId7,_tag:"Cons",toString(){return format(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:toArray3(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},[symbol2](that){return isList(that)&&this._tag===that._tag&&_equivalence4(this,that)},[symbol](){return cached(this,array2(toArray3(this)))},[Symbol.iterator](){let done=!1,self=this;return{next(){if(done)return this.return();if(self._tag==="Nil")return done=!0,this.return();let value=self.head;return self=self.tail,{done,value}},return(value){if(!done)done=!0;return{done:!0,value}}}},pipe(){return pipeArguments(this,arguments)}},makeCons=(head3,tail)=>{let cons=Object.create(ConsProto);return cons.head=head3,cons.tail=tail,cons},NilHash=string("Nil"),NilProto={[TypeId7]:TypeId7,_tag:"Nil",toString(){return format(this.toJSON())},toJSON(){return{_id:"List",_tag:"Nil"}},[NodeInspectSymbol](){return this.toJSON()},[symbol](){return NilHash},[symbol2](that){return isList(that)&&this._tag===that._tag},[Symbol.iterator](){return{next(){return{done:!0,value:void 0}}}},pipe(){return pipeArguments(this,arguments)}},_Nil=Object.create(NilProto),isList=(u)=>hasProperty(u,TypeId7),isNil=(self)=>self._tag==="Nil",isCons=(self)=>self._tag==="Cons";var nil=()=>_Nil,cons=(head3,tail)=>makeCons(head3,tail),empty10=nil,of3=(value)=>makeCons(value,_Nil);var appendAll3=dual(2,(self,that)=>prependAll(that,self)),prepend3=dual(2,(self,element)=>cons(element,self)),prependAll=dual(2,(self,prefix)=>{if(isNil(self))return prefix;else if(isNil(prefix))return self;else{let result=makeCons(prefix.head,self),curr=result,that=prefix.tail;while(!isNil(that)){let temp=makeCons(that.head,self);curr.tail=temp,curr=temp,that=that.tail}return result}});var reduce8=dual(3,(self,zero2,f)=>{let acc=zero2,these=self;while(!isNil(these))acc=f(acc,these.head),these=these.tail;return acc});var reverse3=(self)=>{let result=empty10(),these=self;while(!isNil(these))result=prepend3(result,these.head),these=these.tail;return result};var ArrayProto=Object.assign(Object.create(Array.prototype),{[symbol](){return cached(this,array2(this))},[symbol2](that){if(Array.isArray(that)&&this.length===that.length)return this.every((v,i)=>equals(v,that[i]));else return!1}}),Structural=function(){function Structural2(args){if(args)Object.assign(this,args)}return Structural2.prototype=StructuralPrototype,Structural2}(),struct=(as)=>Object.assign(Object.create(StructuralPrototype),as);var ContextPatchTypeId=Symbol.for("effect/DifferContextPatch");function variance2(a){return a}var PatchProto={...Structural.prototype,[ContextPatchTypeId]:{_Value:variance2,_Patch:variance2}},EmptyProto=Object.assign(Object.create(PatchProto),{_tag:"Empty"}),_empty5=Object.create(EmptyProto),empty11=()=>_empty5,AndThenProto=Object.assign(Object.create(PatchProto),{_tag:"AndThen"}),makeAndThen=(first,second)=>{let o=Object.create(AndThenProto);return o.first=first,o.second=second,o},AddServiceProto=Object.assign(Object.create(PatchProto),{_tag:"AddService"}),makeAddService=(key,service)=>{let o=Object.create(AddServiceProto);return o.key=key,o.service=service,o},RemoveServiceProto=Object.assign(Object.create(PatchProto),{_tag:"RemoveService"}),makeRemoveService=(key)=>{let o=Object.create(RemoveServiceProto);return o.key=key,o},UpdateServiceProto=Object.assign(Object.create(PatchProto),{_tag:"UpdateService"}),makeUpdateService=(key,update)=>{let o=Object.create(UpdateServiceProto);return o.key=key,o.update=update,o},diff=(oldValue,newValue)=>{let missingServices=new Map(oldValue.unsafeMap),patch=empty11();for(let[tag,newService]of newValue.unsafeMap.entries())if(missingServices.has(tag)){let old=missingServices.get(tag);if(missingServices.delete(tag),!equals(old,newService))patch=combine4(makeUpdateService(tag,()=>newService))(patch)}else missingServices.delete(tag),patch=combine4(makeAddService(tag,newService))(patch);for(let[tag]of missingServices.entries())patch=combine4(makeRemoveService(tag))(patch);return patch},combine4=dual(2,(self,that)=>makeAndThen(self,that)),patch=dual(2,(self,context)=>{if(self._tag==="Empty")return context;let wasServiceUpdated=!1,patches=of2(self),updatedContext=new Map(context.unsafeMap);while(isNonEmpty(patches)){let head3=headNonEmpty2(patches),tail=tailNonEmpty2(patches);switch(head3._tag){case"Empty":{patches=tail;break}case"AddService":{updatedContext.set(head3.key,head3.service),patches=tail;break}case"AndThen":{patches=prepend2(prepend2(tail,head3.second),head3.first);break}case"RemoveService":{updatedContext.delete(head3.key),patches=tail;break}case"UpdateService":{updatedContext.set(head3.key,head3.update(updatedContext.get(head3.key))),wasServiceUpdated=!0,patches=tail;break}}}if(!wasServiceUpdated)return makeContext(updatedContext);let map10=new Map;for(let[tag]of context.unsafeMap)if(updatedContext.has(tag))map10.set(tag,updatedContext.get(tag)),updatedContext.delete(tag);for(let[tag,s]of updatedContext)map10.set(tag,s);return makeContext(map10)});var HashSetPatchTypeId=Symbol.for("effect/DifferHashSetPatch");function variance3(a){return a}var PatchProto2={...Structural.prototype,[HashSetPatchTypeId]:{_Value:variance3,_Key:variance3,_Patch:variance3}},EmptyProto2=Object.assign(Object.create(PatchProto2),{_tag:"Empty"}),_empty6=Object.create(EmptyProto2),empty12=()=>_empty6,AndThenProto2=Object.assign(Object.create(PatchProto2),{_tag:"AndThen"}),makeAndThen2=(first,second)=>{let o=Object.create(AndThenProto2);return o.first=first,o.second=second,o},AddProto=Object.assign(Object.create(PatchProto2),{_tag:"Add"}),makeAdd=(value)=>{let o=Object.create(AddProto);return o.value=value,o},RemoveProto=Object.assign(Object.create(PatchProto2),{_tag:"Remove"}),makeRemove=(value)=>{let o=Object.create(RemoveProto);return o.value=value,o},diff2=(oldValue,newValue)=>{let[removed,patch2]=reduce5([oldValue,empty12()],([set4,patch3],value)=>{if(has3(value)(set4))return[remove4(value)(set4),patch3];return[set4,combine5(makeAdd(value))(patch3)]})(newValue);return reduce5(patch2,(patch3,value)=>combine5(makeRemove(value))(patch3))(removed)},combine5=dual(2,(self,that)=>makeAndThen2(self,that)),patch2=dual(2,(self,oldValue)=>{if(self._tag==="Empty")return oldValue;let set4=oldValue,patches=of2(self);while(isNonEmpty(patches)){let head3=headNonEmpty2(patches),tail=tailNonEmpty2(patches);switch(head3._tag){case"Empty":{patches=tail;break}case"AndThen":{patches=prepend2(head3.first)(prepend2(head3.second)(tail));break}case"Add":{set4=add2(head3.value)(set4),patches=tail;break}case"Remove":set4=remove4(head3.value)(set4),patches=tail}}return set4});var ReadonlyArrayPatchTypeId=Symbol.for("effect/DifferReadonlyArrayPatch");function variance4(a){return a}var PatchProto3={...Structural.prototype,[ReadonlyArrayPatchTypeId]:{_Value:variance4,_Patch:variance4}},EmptyProto3=Object.assign(Object.create(PatchProto3),{_tag:"Empty"}),_empty7=Object.create(EmptyProto3),empty13=()=>_empty7,AndThenProto3=Object.assign(Object.create(PatchProto3),{_tag:"AndThen"}),makeAndThen3=(first,second)=>{let o=Object.create(AndThenProto3);return o.first=first,o.second=second,o},AppendProto=Object.assign(Object.create(PatchProto3),{_tag:"Append"}),makeAppend=(values3)=>{let o=Object.create(AppendProto);return o.values=values3,o},SliceProto=Object.assign(Object.create(PatchProto3),{_tag:"Slice"}),makeSlice=(from,until)=>{let o=Object.create(SliceProto);return o.from=from,o.until=until,o},UpdateProto=Object.assign(Object.create(PatchProto3),{_tag:"Update"}),makeUpdate=(index,patch3)=>{let o=Object.create(UpdateProto);return o.index=index,o.patch=patch3,o},diff3=(options)=>{let i=0,patch3=empty13();while(i<options.oldValue.length&&i<options.newValue.length){let oldElement=options.oldValue[i],newElement=options.newValue[i],valuePatch=options.differ.diff(oldElement,newElement);if(!equals(valuePatch,options.differ.empty))patch3=combine6(patch3,makeUpdate(i,valuePatch));i=i+1}if(i<options.oldValue.length)patch3=combine6(patch3,makeSlice(0,i));if(i<options.newValue.length)patch3=combine6(patch3,makeAppend(drop(i)(options.newValue)));return patch3},combine6=dual(2,(self,that)=>makeAndThen3(self,that)),patch3=dual(3,(self,oldValue,differ)=>{if(self._tag==="Empty")return oldValue;let readonlyArray=oldValue.slice(),patches=of(self);while(isNonEmptyArray2(patches)){let head3=headNonEmpty(patches),tail=tailNonEmpty(patches);switch(head3._tag){case"Empty":{patches=tail;break}case"AndThen":{tail.unshift(head3.first,head3.second),patches=tail;break}case"Append":{for(let value of head3.values)readonlyArray.push(value);patches=tail;break}case"Slice":{readonlyArray=readonlyArray.slice(head3.from,head3.until),patches=tail;break}case"Update":{readonlyArray[head3.index]=differ.patch(head3.patch,readonlyArray[head3.index]),patches=tail;break}}}return readonlyArray});var DifferTypeId=Symbol.for("effect/Differ"),DifferProto={[DifferTypeId]:{_P:identity,_V:identity},pipe(){return pipeArguments(this,arguments)}},make14=(params)=>{let differ=Object.create(DifferProto);return differ.empty=params.empty,differ.diff=params.diff,differ.combine=params.combine,differ.patch=params.patch,differ},environment=()=>make14({empty:empty11(),combine:(first,second)=>combine4(second)(first),diff:(oldValue,newValue)=>diff(oldValue,newValue),patch:(patch4,oldValue)=>patch(oldValue)(patch4)});var hashSet=()=>make14({empty:empty12(),combine:(first,second)=>combine5(second)(first),diff:(oldValue,newValue)=>diff2(oldValue,newValue),patch:(patch4,oldValue)=>patch2(oldValue)(patch4)});var readonlyArray=(differ)=>make14({empty:empty13(),combine:(first,second)=>combine6(first,second),diff:(oldValue,newValue)=>diff3({oldValue,newValue,differ}),patch:(patch4,oldValue)=>patch3(patch4,oldValue,differ)});var update=()=>updateWith((_,a)=>a),updateWith=(f)=>make14({empty:identity,combine:(first,second)=>{if(first===identity)return second;if(second===identity)return first;return(a)=>second(first(a))},diff:(oldValue,newValue)=>{if(equals(oldValue,newValue))return identity;return constant(newValue)},patch:(patch4,oldValue)=>f(oldValue,patch4(oldValue))});var BIT_MASK=255,BIT_SHIFT=8,active=(patch4)=>patch4&BIT_MASK,enabled=(patch4)=>patch4>>BIT_SHIFT&BIT_MASK,make15=(active2,enabled2)=>(active2&BIT_MASK)+((enabled2&active2&BIT_MASK)<<BIT_SHIFT),empty14=make15(0,0),enable=(flag)=>make15(flag,flag),disable=(flag)=>make15(flag,0);var exclude=dual(2,(self,flag)=>make15(active(self)&~flag,enabled(self)));var andThen=dual(2,(self,that)=>self|that);var invert=(n)=>~n>>>0&BIT_MASK;var None2=0,Interruption=1,OpSupervision=2,RuntimeMetrics=4,WindDown=16,CooperativeYielding=32;var cooperativeYielding=(self)=>isEnabled(self,CooperativeYielding),disable2=dual(2,(self,flag)=>self&~flag);var enable2=dual(2,(self,flag)=>self|flag);var interruptible=(self)=>interruption(self)&&!windDown(self),interruption=(self)=>isEnabled(self,Interruption);var isEnabled=dual(2,(self,flag)=>(self&flag)!==0),make16=(...flags)=>flags.reduce((a,b)=>a|b,0),none5=make16(None2);var runtimeMetrics=(self)=>isEnabled(self,RuntimeMetrics);var windDown=(self)=>isEnabled(self,WindDown);var diff4=dual(2,(self,that)=>make15(self^that,that)),patch4=dual(2,(self,patch5)=>self&(invert(active(patch5))|enabled(patch5))|active(patch5)&enabled(patch5));var differ=make14({empty:empty14,diff:(oldValue,newValue)=>diff4(oldValue,newValue),combine:(first,second)=>andThen(second)(first),patch:(_patch,oldValue)=>patch4(oldValue,_patch)});var empty15=empty14;var enable3=enable,disable3=disable;var exclude2=exclude;var empty16={_tag:"Empty"},par=(self,that)=>({_tag:"Par",left:self,right:that}),seq=(self,that)=>({_tag:"Seq",left:self,right:that}),single=(dataSource,blockedRequest)=>({_tag:"Single",dataSource,blockedRequest});var flatten4=(self)=>{let current=of3(self),updated=empty10();while(!0){let[parallel2,sequential2]=reduce8(current,[parallelCollectionEmpty(),empty10()],([parallel3,sequential3],blockedRequest)=>{let[par2,seq2]=step(blockedRequest);return[parallelCollectionCombine(parallel3,par2),appendAll3(sequential3,seq2)]});if(updated=merge4(updated,parallel2),isNil(sequential2))return reverse3(updated);current=sequential2}throw Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")},step=(requests)=>{let current=requests,parallel2=parallelCollectionEmpty(),stack=empty10(),sequential2=empty10();while(!0)switch(current._tag){case"Empty":{if(isNil(stack))return[parallel2,sequential2];current=stack.head,stack=stack.tail;break}case"Par":{stack=cons(current.right,stack),current=current.left;break}case"Seq":{let{left:left3,right:right3}=current;switch(left3._tag){case"Empty":{current=right3;break}case"Par":{let{left:l,right:r}=left3;current=par(seq(l,right3),seq(r,right3));break}case"Seq":{let{left:l,right:r}=left3;current=seq(l,seq(r,right3));break}case"Single":{current=left3,sequential2=cons(right3,sequential2);break}}break}case"Single":{if(parallel2=parallelCollectionAdd(parallel2,current),isNil(stack))return[parallel2,sequential2];current=stack.head,stack=stack.tail;break}}throw Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues")},merge4=(sequential2,parallel2)=>{if(isNil(sequential2))return of3(parallelCollectionToSequentialCollection(parallel2));if(parallelCollectionIsEmpty(parallel2))return sequential2;let seqHeadKeys=sequentialCollectionKeys(sequential2.head),parKeys=parallelCollectionKeys(parallel2);if(seqHeadKeys.length===1&&parKeys.length===1&&equals(seqHeadKeys[0],parKeys[0]))return cons(sequentialCollectionCombine(sequential2.head,parallelCollectionToSequentialCollection(parallel2)),sequential2.tail);return cons(parallelCollectionToSequentialCollection(parallel2),sequential2)},EntryTypeId=Symbol.for("effect/RequestBlock/Entry");class EntryImpl{request;result;listeners;ownerId;state;[EntryTypeId]=blockedRequestVariance;constructor(request,result,listeners,ownerId,state){this.request=request,this.result=result,this.listeners=listeners,this.ownerId=ownerId,this.state=state}}var blockedRequestVariance={_R:(_)=>_};var makeEntry=(options)=>new EntryImpl(options.request,options.result,options.listeners,options.ownerId,options.state),RequestBlockParallelTypeId=Symbol.for("effect/RequestBlock/RequestBlockParallel"),parallelVariance={_R:(_)=>_};class ParallelImpl{map;[RequestBlockParallelTypeId]=parallelVariance;constructor(map10){this.map=map10}}var parallelCollectionEmpty=()=>new ParallelImpl(empty9());var parallelCollectionAdd=(self,blockedRequest)=>new ParallelImpl(modifyAt2(self.map,blockedRequest.dataSource,(_)=>orElseSome(map2(_,append2(blockedRequest.blockedRequest)),()=>of2(blockedRequest.blockedRequest)))),parallelCollectionCombine=(self,that)=>new ParallelImpl(reduce7(self.map,that.map,(map10,value,key)=>set3(map10,key,match2(get7(map10,key),{onNone:()=>value,onSome:(other)=>appendAll2(value,other)})))),parallelCollectionIsEmpty=(self)=>isEmpty4(self.map),parallelCollectionKeys=(self)=>Array.from(keys2(self.map)),parallelCollectionToSequentialCollection=(self)=>sequentialCollectionMake(map9(self.map,(x)=>of2(x))),SequentialCollectionTypeId=Symbol.for("effect/RequestBlock/RequestBlockSequential"),sequentialVariance={_R:(_)=>_};class SequentialImpl{map;[SequentialCollectionTypeId]=sequentialVariance;constructor(map10){this.map=map10}}var sequentialCollectionMake=(map10)=>new SequentialImpl(map10),sequentialCollectionCombine=(self,that)=>new SequentialImpl(reduce7(that.map,self.map,(map10,value,key)=>set3(map10,key,match2(get7(map10,key),{onNone:()=>empty2(),onSome:(a)=>appendAll2(a,value)}))));var sequentialCollectionKeys=(self)=>Array.from(keys2(self.map)),sequentialCollectionToChunk=(self)=>Array.from(self.map);var OP_STATE_PENDING="Pending",OP_STATE_DONE="Done";var DeferredSymbolKey="effect/Deferred",DeferredTypeId=Symbol.for(DeferredSymbolKey),deferredVariance={_E:(_)=>_,_A:(_)=>_},pending=(joiners)=>{return{_tag:OP_STATE_PENDING,joiners}},done=(effect)=>{return{_tag:OP_STATE_DONE,effect}};class SingleShotGen2{self;called=!1;constructor(self){this.self=self}next(a){return this.called?{value:a,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(a){return{value:a,done:!0}}throw(e){throw e}[Symbol.iterator](){return new SingleShotGen2(this.self)}}var blocked=(blockedRequests,_continue)=>{let effect=new EffectPrimitive("Blocked");return effect.effect_instruction_i0=blockedRequests,effect.effect_instruction_i1=_continue,effect},runRequestBlock=(blockedRequests)=>{let effect=new EffectPrimitive("RunBlocked");return effect.effect_instruction_i0=blockedRequests,effect},EffectTypeId2=Symbol.for("effect/Effect");class RevertFlags{patch;op;_op=OP_REVERT_FLAGS;constructor(patch5,op){this.patch=patch5,this.op=op}}class EffectPrimitive{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId2]=effectVariance;constructor(_op){this._op=_op}[symbol2](that){return this===that}[symbol](){return cached(this,random(this))}pipe(){return pipeArguments(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:toJSON(this.effect_instruction_i0),effect_instruction_i1:toJSON(this.effect_instruction_i1),effect_instruction_i2:toJSON(this.effect_instruction_i2)}}toString(){return format(this.toJSON())}[NodeInspectSymbol](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen2(new YieldWrap(this))}}class EffectPrimitiveFailure{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId2]=effectVariance;constructor(_op){this._op=_op,this._tag=_op}[symbol2](that){return exitIsExit(that)&&that._op==="Failure"&&equals(this.effect_instruction_i0,that.effect_instruction_i0)}[symbol](){return pipe(string(this._tag),combine(hash(this.effect_instruction_i0)),cached(this))}get cause(){return this.effect_instruction_i0}pipe(){return pipeArguments(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return format(this.toJSON())}[NodeInspectSymbol](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen2(new YieldWrap(this))}}class EffectPrimitiveSuccess{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId2]=effectVariance;constructor(_op){this._op=_op,this._tag=_op}[symbol2](that){return exitIsExit(that)&&that._op==="Success"&&equals(this.effect_instruction_i0,that.effect_instruction_i0)}[symbol](){return pipe(string(this._tag),combine(hash(this.effect_instruction_i0)),cached(this))}get value(){return this.effect_instruction_i0}pipe(){return pipeArguments(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:toJSON(this.value)}}toString(){return format(this.toJSON())}[NodeInspectSymbol](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen2(new YieldWrap(this))}}var isEffect=(u)=>hasProperty(u,EffectTypeId2),withFiberRuntime=(withRuntime)=>{let effect=new EffectPrimitive(OP_WITH_RUNTIME);return effect.effect_instruction_i0=withRuntime,effect},acquireUseRelease=dual(3,(acquire,use,release)=>uninterruptibleMask((restore)=>flatMap8(acquire,(a)=>flatMap8(exit(suspend(()=>restore(use(a)))),(exit)=>{return suspend(()=>release(a,exit)).pipe(matchCauseEffect({onFailure:(cause)=>{switch(exit._tag){case OP_FAILURE:return failCause(sequential(exit.effect_instruction_i0,cause));case OP_SUCCESS:return failCause(cause)}},onSuccess:()=>exit}))})))),as=dual(2,(self,value)=>flatMap8(self,()=>succeed(value))),asVoid=(self)=>as(self,void 0),custom=function(){let wrapper=new EffectPrimitive(OP_COMMIT);switch(arguments.length){case 2:{wrapper.effect_instruction_i0=arguments[0],wrapper.commit=arguments[1];break}case 3:{wrapper.effect_instruction_i0=arguments[0],wrapper.effect_instruction_i1=arguments[1],wrapper.commit=arguments[2];break}case 4:{wrapper.effect_instruction_i0=arguments[0],wrapper.effect_instruction_i1=arguments[1],wrapper.effect_instruction_i2=arguments[2],wrapper.commit=arguments[3];break}default:throw Error(getBugErrorMessage("you're not supposed to end up here"))}return wrapper},unsafeAsync=(register,blockingOn=none4)=>{let effect=new EffectPrimitive(OP_ASYNC),cancelerRef=void 0;return effect.effect_instruction_i0=(resume)=>{cancelerRef=register(resume)},effect.effect_instruction_i1=blockingOn,onInterrupt(effect,(_)=>isEffect(cancelerRef)?cancelerRef:void_)},asyncInterrupt=(register,blockingOn=none4)=>suspend(()=>unsafeAsync(register,blockingOn)),async_=(resume,blockingOn=none4)=>{return custom(resume,function(){let backingResume=void 0,pendingEffect=void 0;function proxyResume(effect2){if(backingResume)backingResume(effect2);else if(pendingEffect===void 0)pendingEffect=effect2}let effect=new EffectPrimitive(OP_ASYNC);effect.effect_instruction_i0=(resume2)=>{if(backingResume=resume2,pendingEffect)resume2(pendingEffect)},effect.effect_instruction_i1=blockingOn;let cancelerRef=void 0,controllerRef=void 0;if(this.effect_instruction_i0.length!==1)controllerRef=new AbortController,cancelerRef=internalCall(()=>this.effect_instruction_i0(proxyResume,controllerRef.signal));else cancelerRef=internalCall(()=>this.effect_instruction_i0(proxyResume));return cancelerRef||controllerRef?onInterrupt(effect,(_)=>{if(controllerRef)controllerRef.abort();return cancelerRef??void_}):effect})};var catchAllCause=dual(2,(self,f)=>{let effect=new EffectPrimitive(OP_ON_FAILURE);return effect.effect_instruction_i0=self,effect.effect_instruction_i1=f,effect}),catchAll=dual(2,(self,f)=>matchEffect(self,{onFailure:f,onSuccess:succeed})),catchIf=dual(3,(self,predicate,f)=>catchAllCause(self,(cause)=>{let either2=failureOrCause(cause);switch(either2._tag){case"Left":return predicate(either2.left)?f(either2.left):failCause(cause);case"Right":return failCause(either2.right)}})),catchSome=dual(2,(self,pf)=>catchAllCause(self,(cause)=>{let either2=failureOrCause(cause);switch(either2._tag){case"Left":return pipe(pf(either2.left),getOrElse(()=>failCause(cause)));case"Right":return failCause(either2.right)}})),checkInterruptible=(f)=>withFiberRuntime((_,status)=>f(interruption(status.runtimeFlags))),originalSymbol=Symbol.for("effect/OriginalAnnotation");var capture=(obj,span2)=>{if(isSome2(span2))return new Proxy(obj,{has(target,p){return p===spanSymbol||p===originalSymbol||p in target},get(target,p){if(p===spanSymbol)return span2.value;if(p===originalSymbol)return obj;return target[p]}});return obj},die2=(defect)=>isObject(defect)&&!(spanSymbol in defect)?withFiberRuntime((fiber)=>failCause(die(capture(defect,currentSpanFromFiber(fiber))))):failCause(die(defect)),dieMessage=(message)=>failCauseSync(()=>die(new RuntimeException(message))),dieSync=(evaluate)=>flatMap8(sync(evaluate),die2),either2=(self)=>matchEffect(self,{onFailure:(e)=>succeed(left2(e)),onSuccess:(a)=>succeed(right2(a))}),exit=(self)=>matchCause(self,{onFailure:exitFailCause,onSuccess:exitSucceed}),fail2=(error)=>isObject(error)&&!(spanSymbol in error)?withFiberRuntime((fiber)=>failCause(fail(capture(error,currentSpanFromFiber(fiber))))):failCause(fail(error)),failSync=(evaluate)=>flatMap8(sync(evaluate),fail2),failCause=(cause)=>{let effect=new EffectPrimitiveFailure(OP_FAILURE);return effect.effect_instruction_i0=cause,effect},failCauseSync=(evaluate)=>flatMap8(sync(evaluate),failCause),fiberId=withFiberRuntime((state)=>succeed(state.id())),fiberIdWith=(f)=>withFiberRuntime((state)=>f(state.id())),flatMap8=dual(2,(self,f)=>{let effect=new EffectPrimitive(OP_ON_SUCCESS);return effect.effect_instruction_i0=self,effect.effect_instruction_i1=f,effect}),andThen2=dual(2,(self,f)=>flatMap8(self,(a)=>{let b=typeof f==="function"?f(a):f;if(isEffect(b))return b;else if(isPromiseLike(b))return unsafeAsync((resume)=>{b.then((a2)=>resume(succeed(a2)),(e)=>resume(fail2(new UnknownException(e,"An unknown error occurred in Effect.andThen"))))});return succeed(b)})),step2=(self)=>{let effect=new EffectPrimitive("OnStep");return effect.effect_instruction_i0=self,effect},flatten5=(self)=>flatMap8(self,identity),flip=(self)=>matchEffect(self,{onFailure:succeed,onSuccess:fail2}),matchCause=dual(2,(self,options)=>matchCauseEffect(self,{onFailure:(cause)=>succeed(options.onFailure(cause)),onSuccess:(a)=>succeed(options.onSuccess(a))})),matchCauseEffect=dual(2,(self,options)=>{let effect=new EffectPrimitive(OP_ON_SUCCESS_AND_FAILURE);return effect.effect_instruction_i0=self,effect.effect_instruction_i1=options.onFailure,effect.effect_instruction_i2=options.onSuccess,effect}),matchEffect=dual(2,(self,options)=>matchCauseEffect(self,{onFailure:(cause)=>{if(defects(cause).length>0)return failCause(electFailures(cause));let failures2=failures(cause);if(failures2.length>0)return options.onFailure(unsafeHead(failures2));return failCause(cause)},onSuccess:options.onSuccess})),forEachSequential=dual(2,(self,f)=>suspend(()=>{let arr=fromIterable(self),ret=allocate(arr.length),i=0;return as(whileLoop({while:()=>i<arr.length,body:()=>f(arr[i],i),step:(b)=>{ret[i++]=b}}),ret)})),forEachSequentialDiscard=dual(2,(self,f)=>suspend(()=>{let arr=fromIterable(self),i=0;return whileLoop({while:()=>i<arr.length,body:()=>f(arr[i],i),step:()=>{i++}})})),if_=dual((args)=>typeof args[0]==="boolean"||isEffect(args[0]),(self,options)=>isEffect(self)?flatMap8(self,(b)=>b?options.onTrue():options.onFalse()):self?options.onTrue():options.onFalse()),interrupt2=flatMap8(fiberId,(fiberId2)=>interruptWith(fiberId2)),interruptWith=(fiberId2)=>failCause(interrupt(fiberId2)),interruptible2=(self)=>{let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=enable3(Interruption),effect.effect_instruction_i1=()=>self,effect},interruptibleMask=(f)=>custom(f,function(){let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=enable3(Interruption),effect.effect_instruction_i1=(oldFlags)=>interruption(oldFlags)?internalCall(()=>this.effect_instruction_i0(interruptible2)):internalCall(()=>this.effect_instruction_i0(uninterruptible)),effect}),intoDeferred=dual(2,(self,deferred)=>uninterruptibleMask((restore)=>flatMap8(exit(restore(self)),(exit2)=>deferredDone(deferred,exit2)))),map10=dual(2,(self,f)=>flatMap8(self,(a)=>sync(()=>f(a)))),mapBoth=dual(2,(self,options)=>matchEffect(self,{onFailure:(e)=>failSync(()=>options.onFailure(e)),onSuccess:(a)=>sync(()=>options.onSuccess(a))})),mapError=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause)=>{let either3=failureOrCause(cause);switch(either3._tag){case"Left":return failSync(()=>f(either3.left));case"Right":return failCause(either3.right)}},onSuccess:succeed})),onError=dual(2,(self,cleanup)=>onExit(self,(exit2)=>exitIsSuccess(exit2)?void_:cleanup(exit2.effect_instruction_i0))),onExit=dual(2,(self,cleanup)=>uninterruptibleMask((restore)=>matchCauseEffect(restore(self),{onFailure:(cause1)=>{let result=exitFailCause(cause1);return matchCauseEffect(cleanup(result),{onFailure:(cause2)=>exitFailCause(sequential(cause1,cause2)),onSuccess:()=>result})},onSuccess:(success)=>{let result=exitSucceed(success);return zipRight(cleanup(result),result)}}))),onInterrupt=dual(2,(self,cleanup)=>onExit(self,exitMatch({onFailure:(cause)=>isInterruptedOnly(cause)?asVoid(cleanup(interruptors(cause))):void_,onSuccess:()=>void_}))),orElse2=dual(2,(self,that)=>attemptOrElse(self,that,succeed)),orDie=(self)=>orDieWith(self,identity),orDieWith=dual(2,(self,f)=>matchEffect(self,{onFailure:(e)=>die2(f(e)),onSuccess:succeed})),partitionMap2=partitionMap,runtimeFlags=withFiberRuntime((_,status)=>succeed(status.runtimeFlags)),succeed=(value)=>{let effect=new EffectPrimitiveSuccess(OP_SUCCESS);return effect.effect_instruction_i0=value,effect},suspend=(evaluate)=>{let effect=new EffectPrimitive(OP_COMMIT);return effect.commit=evaluate,effect},sync=(thunk)=>{let effect=new EffectPrimitive(OP_SYNC);return effect.effect_instruction_i0=thunk,effect},tap=dual((args)=>args.length===3||args.length===2&&!(isObject(args[1])&&("onlyEffect"in args[1])),(self,f)=>flatMap8(self,(a)=>{let b=typeof f==="function"?f(a):f;if(isEffect(b))return as(b,a);else if(isPromiseLike(b))return unsafeAsync((resume)=>{b.then((_)=>resume(succeed(a)),(e)=>resume(fail2(new UnknownException(e,"An unknown error occurred in Effect.tap"))))});return succeed(a)})),transplant=(f)=>withFiberRuntime((state)=>{let scopeOverride=state.getFiberRef(currentForkScopeOverride),scope=pipe(scopeOverride,getOrElse(()=>state.scope()));return f(fiberRefLocally(currentForkScopeOverride,some2(scope)))}),attemptOrElse=dual(3,(self,that,onSuccess)=>matchCauseEffect(self,{onFailure:(cause)=>{if(defects(cause).length>0)return failCause(getOrThrow(keepDefectsAndElectFailures(cause)));return that()},onSuccess})),uninterruptible=(self)=>{let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=disable3(Interruption),effect.effect_instruction_i1=()=>self,effect},uninterruptibleMask=(f)=>custom(f,function(){let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=disable3(Interruption),effect.effect_instruction_i1=(oldFlags)=>interruption(oldFlags)?internalCall(()=>this.effect_instruction_i0(interruptible2)):internalCall(()=>this.effect_instruction_i0(uninterruptible)),effect}),void_=succeed(void 0);var updateRuntimeFlags=(patch5)=>{let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=patch5,effect.effect_instruction_i1=void 0,effect},whenEffect=dual(2,(self,condition)=>flatMap8(condition,(b)=>{if(b)return pipe(self,map10(some2));return succeed(none2())})),whileLoop=(options)=>{let effect=new EffectPrimitive(OP_WHILE);return effect.effect_instruction_i0=options.while,effect.effect_instruction_i1=options.body,effect.effect_instruction_i2=options.step,effect},fromIterator=(iterator)=>suspend(()=>{let effect=new EffectPrimitive(OP_ITERATOR);return effect.effect_instruction_i0=iterator(),effect}),gen=function(){let f=arguments.length===1?arguments[0]:arguments[1].bind(arguments[0]);return fromIterator(()=>f(pipe))},fnUntraced=(body,...pipeables)=>Object.defineProperty(pipeables.length===0?function(...args){return fromIterator(()=>body.apply(this,args))}:function(...args){let effect=fromIterator(()=>body.apply(this,args));for(let x of pipeables)effect=x(effect,...args);return effect},"length",{value:body.length,configurable:!0}),withConcurrency=dual(2,(self,concurrency)=>fiberRefLocally(self,currentConcurrency,concurrency)),withRequestBatching=dual(2,(self,requestBatching)=>fiberRefLocally(self,currentRequestBatching,requestBatching)),withRuntimeFlags=dual(2,(self,update2)=>{let effect=new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS);return effect.effect_instruction_i0=update2,effect.effect_instruction_i1=()=>self,effect}),withTracerEnabled=dual(2,(effect,enabled2)=>fiberRefLocally(effect,currentTracerEnabled,enabled2)),withTracerTiming=dual(2,(effect,enabled2)=>fiberRefLocally(effect,currentTracerTimingEnabled,enabled2)),yieldNow=(options)=>{let effect=new EffectPrimitive(OP_YIELD);return typeof options?.priority<"u"?withSchedulingPriority(effect,options.priority):effect},zip2=dual(2,(self,that)=>flatMap8(self,(a)=>map10(that,(b)=>[a,b])));var zipLeft=dual(2,(self,that)=>flatMap8(self,(a)=>as(that,a))),zipRight=dual(2,(self,that)=>flatMap8(self,()=>that)),zipWith3=dual(3,(self,that,f)=>flatMap8(self,(a)=>map10(that,(b)=>f(a,b)))),never=asyncInterrupt(()=>{let interval=setInterval(()=>{},2147483647);return sync(()=>clearInterval(interval))}),interruptFiber=(self)=>flatMap8(fiberId,(fiberId2)=>pipe(self,interruptAsFiber(fiberId2))),interruptAsFiber=dual(2,(self,fiberId2)=>flatMap8(self.interruptAsFork(fiberId2),()=>self.await)),logLevelAll={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return pipeArguments(this,arguments)}},logLevelFatal={_tag:"Fatal",syslog:2,label:"FATAL",ordinal:50000,pipe(){return pipeArguments(this,arguments)}},logLevelError={_tag:"Error",syslog:3,label:"ERROR",ordinal:40000,pipe(){return pipeArguments(this,arguments)}},logLevelWarning={_tag:"Warning",syslog:4,label:"WARN",ordinal:30000,pipe(){return pipeArguments(this,arguments)}},logLevelInfo={_tag:"Info",syslog:6,label:"INFO",ordinal:20000,pipe(){return pipeArguments(this,arguments)}},logLevelDebug={_tag:"Debug",syslog:7,label:"DEBUG",ordinal:1e4,pipe(){return pipeArguments(this,arguments)}},logLevelTrace={_tag:"Trace",syslog:7,label:"TRACE",ordinal:0,pipe(){return pipeArguments(this,arguments)}},logLevelNone={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return pipeArguments(this,arguments)}},allLogLevels=[logLevelAll,logLevelTrace,logLevelDebug,logLevelInfo,logLevelWarning,logLevelError,logLevelFatal,logLevelNone],FiberRefSymbolKey="effect/FiberRef",FiberRefTypeId=Symbol.for(FiberRefSymbolKey),fiberRefVariance={_A:(_)=>_},fiberRefGet=(self)=>withFiberRuntime((fiber)=>exitSucceed(fiber.getFiberRef(self)));var fiberRefGetWith=dual(2,(self,f)=>flatMap8(fiberRefGet(self),f)),fiberRefSet=dual(2,(self,value)=>fiberRefModify(self,()=>[void 0,value]));var fiberRefModify=dual(2,(self,f)=>withFiberRuntime((state)=>{let[b,a]=f(state.getFiberRef(self));return state.setFiberRef(self,a),succeed(b)}));var fiberRefLocally=dual(3,(use,self,value)=>acquireUseRelease(zipLeft(fiberRefGet(self),fiberRefSet(self,value)),()=>use,(oldValue)=>fiberRefSet(self,oldValue))),fiberRefLocallyWith=dual(3,(use,self,f)=>fiberRefGetWith(self,(a)=>fiberRefLocally(use,self,f(a)))),fiberRefUnsafeMake=(initial,options)=>fiberRefUnsafeMakePatch(initial,{differ:update(),fork:options?.fork??identity,join:options?.join}),fiberRefUnsafeMakeHashSet=(initial)=>{let differ2=hashSet();return fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:differ2.empty})},fiberRefUnsafeMakeReadonlyArray=(initial)=>{let differ2=readonlyArray(update());return fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:differ2.empty})},fiberRefUnsafeMakeContext=(initial)=>{let differ2=environment();return fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:differ2.empty})},fiberRefUnsafeMakePatch=(initial,options)=>{return{...CommitPrototype,[FiberRefTypeId]:fiberRefVariance,initial,commit(){return fiberRefGet(this)},diff:(oldValue,newValue)=>options.differ.diff(oldValue,newValue),combine:(first,second)=>options.differ.combine(first,second),patch:(patch5)=>(oldValue)=>options.differ.patch(patch5,oldValue),fork:options.fork,join:options.join??((_,n)=>n)}},fiberRefUnsafeMakeRuntimeFlags=(initial)=>fiberRefUnsafeMakePatch(initial,{differ,fork:differ.empty}),currentContext=globalValue(Symbol.for("effect/FiberRef/currentContext"),()=>fiberRefUnsafeMakeContext(empty8())),currentSchedulingPriority=globalValue(Symbol.for("effect/FiberRef/currentSchedulingPriority"),()=>fiberRefUnsafeMake(0)),currentMaxOpsBeforeYield=globalValue(Symbol.for("effect/FiberRef/currentMaxOpsBeforeYield"),()=>fiberRefUnsafeMake(2048)),currentLogAnnotations=globalValue(Symbol.for("effect/FiberRef/currentLogAnnotation"),()=>fiberRefUnsafeMake(empty9())),currentLogLevel=globalValue(Symbol.for("effect/FiberRef/currentLogLevel"),()=>fiberRefUnsafeMake(logLevelInfo)),currentLogSpan=globalValue(Symbol.for("effect/FiberRef/currentLogSpan"),()=>fiberRefUnsafeMake(empty10())),withSchedulingPriority=dual(2,(self,scheduler)=>fiberRefLocally(self,currentSchedulingPriority,scheduler)),withMaxOpsBeforeYield=dual(2,(self,scheduler)=>fiberRefLocally(self,currentMaxOpsBeforeYield,scheduler)),currentConcurrency=globalValue(Symbol.for("effect/FiberRef/currentConcurrency"),()=>fiberRefUnsafeMake("unbounded")),currentRequestBatching=globalValue(Symbol.for("effect/FiberRef/currentRequestBatching"),()=>fiberRefUnsafeMake(!0)),currentUnhandledErrorLogLevel=globalValue(Symbol.for("effect/FiberRef/currentUnhandledErrorLogLevel"),()=>fiberRefUnsafeMake(some2(logLevelDebug))),currentVersionMismatchErrorLogLevel=globalValue(Symbol.for("effect/FiberRef/versionMismatchErrorLogLevel"),()=>fiberRefUnsafeMake(some2(logLevelWarning))),withUnhandledErrorLogLevel=dual(2,(self,level)=>fiberRefLocally(self,currentUnhandledErrorLogLevel,level)),currentMetricLabels=globalValue(Symbol.for("effect/FiberRef/currentMetricLabels"),()=>fiberRefUnsafeMakeReadonlyArray(empty())),metricLabels=fiberRefGet(currentMetricLabels),currentForkScopeOverride=globalValue(Symbol.for("effect/FiberRef/currentForkScopeOverride"),()=>fiberRefUnsafeMake(none2(),{fork:()=>none2(),join:(parent,_)=>parent})),currentInterruptedCause=globalValue(Symbol.for("effect/FiberRef/currentInterruptedCause"),()=>fiberRefUnsafeMake(empty6,{fork:()=>empty6,join:(parent,_)=>parent})),currentTracerEnabled=globalValue(Symbol.for("effect/FiberRef/currentTracerEnabled"),()=>fiberRefUnsafeMake(!0)),currentTracerTimingEnabled=globalValue(Symbol.for("effect/FiberRef/currentTracerTiming"),()=>fiberRefUnsafeMake(!0)),currentTracerSpanAnnotations=globalValue(Symbol.for("effect/FiberRef/currentTracerSpanAnnotations"),()=>fiberRefUnsafeMake(empty9())),currentTracerSpanLinks=globalValue(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>fiberRefUnsafeMake(empty2())),ScopeTypeId=Symbol.for("effect/Scope"),CloseableScopeTypeId=Symbol.for("effect/CloseableScope"),scopeAddFinalizer=(self,finalizer)=>self.addFinalizer(()=>asVoid(finalizer)),scopeAddFinalizerExit=(self,finalizer)=>self.addFinalizer(finalizer),scopeClose=(self,exit2)=>self.close(exit2),scopeFork=(self,strategy)=>self.fork(strategy),causeSquash=(self)=>{return causeSquashWith(identity)(self)},causeSquashWith=dual(2,(self,f)=>{let option=pipe(self,failureOption,map2(f));switch(option._tag){case"None":return pipe(defects(self),head2,match2({onNone:()=>{let interrupts=fromIterable(interruptors(self)).flatMap((fiberId2)=>fromIterable(ids2(fiberId2)).map((id)=>`#${id}`));return new InterruptedException(interrupts?`Interrupted by fibers: ${interrupts.join(", ")}`:void 0)},onSome:identity}));case"Some":return option.value}}),YieldableError=function(){class YieldableError2 extends globalThis.Error{commit(){return fail2(this)}toJSON(){let obj={...this};if(this.message)obj.message=this.message;if(this.cause)obj.cause=this.cause;return obj}[NodeInspectSymbol](){if(this.toString!==globalThis.Error.prototype.toString)return this.stack?`${this.toString()}
21
+ ${this.stack.split(`
22
+ `).slice(1).join(`
23
+ `)}`:this.toString();else if("Bun"in globalThis)return pretty(fail(this),{renderErrorCause:!0});return this}}return Object.assign(YieldableError2.prototype,StructuralCommitPrototype),YieldableError2}(),makeException=(proto2,tag)=>{class Base2 extends YieldableError{_tag=tag}return Object.assign(Base2.prototype,proto2),Base2.prototype.name=tag,Base2},RuntimeExceptionTypeId=Symbol.for("effect/Cause/errors/RuntimeException"),RuntimeException=makeException({[RuntimeExceptionTypeId]:RuntimeExceptionTypeId},"RuntimeException"),isRuntimeException=(u)=>hasProperty(u,RuntimeExceptionTypeId),InterruptedExceptionTypeId=Symbol.for("effect/Cause/errors/InterruptedException"),InterruptedException=makeException({[InterruptedExceptionTypeId]:InterruptedExceptionTypeId},"InterruptedException"),isInterruptedException=(u)=>hasProperty(u,InterruptedExceptionTypeId),IllegalArgumentExceptionTypeId=Symbol.for("effect/Cause/errors/IllegalArgument"),IllegalArgumentException=makeException({[IllegalArgumentExceptionTypeId]:IllegalArgumentExceptionTypeId},"IllegalArgumentException");var NoSuchElementExceptionTypeId=Symbol.for("effect/Cause/errors/NoSuchElement"),NoSuchElementException=makeException({[NoSuchElementExceptionTypeId]:NoSuchElementExceptionTypeId},"NoSuchElementException"),isNoSuchElementException=(u)=>hasProperty(u,NoSuchElementExceptionTypeId),InvalidPubSubCapacityExceptionTypeId=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),InvalidPubSubCapacityException=makeException({[InvalidPubSubCapacityExceptionTypeId]:InvalidPubSubCapacityExceptionTypeId},"InvalidPubSubCapacityException"),ExceededCapacityExceptionTypeId=Symbol.for("effect/Cause/errors/ExceededCapacityException"),ExceededCapacityException=makeException({[ExceededCapacityExceptionTypeId]:ExceededCapacityExceptionTypeId},"ExceededCapacityException");var TimeoutExceptionTypeId=Symbol.for("effect/Cause/errors/Timeout"),TimeoutException=makeException({[TimeoutExceptionTypeId]:TimeoutExceptionTypeId},"TimeoutException"),timeoutExceptionFromDuration=(duration)=>new TimeoutException(`Operation timed out after '${format2(duration)}'`);var UnknownExceptionTypeId=Symbol.for("effect/Cause/errors/UnknownException"),UnknownException=function(){class UnknownException2 extends YieldableError{_tag="UnknownException";error;constructor(cause,message){super(message??"An unknown error occurred",{cause});this.error=cause}}return Object.assign(UnknownException2.prototype,{[UnknownExceptionTypeId]:UnknownExceptionTypeId,name:"UnknownException"}),UnknownException2}();var exitIsExit=(u)=>isEffect(u)&&("_tag"in u)&&(u._tag==="Success"||u._tag==="Failure"),exitIsFailure=(self)=>self._tag==="Failure",exitIsSuccess=(self)=>self._tag==="Success";var exitAs=dual(2,(self,value)=>{switch(self._tag){case OP_FAILURE:return exitFailCause(self.effect_instruction_i0);case OP_SUCCESS:return exitSucceed(value)}}),exitAsVoid=(self)=>exitAs(self,void 0);var exitCollectAll=(exits,options)=>exitCollectAllInternal(exits,options?.parallel?parallel:sequential),exitDie=(defect)=>exitFailCause(die(defect));var exitFail=(error)=>exitFailCause(fail(error)),exitFailCause=(cause)=>{let effect=new EffectPrimitiveFailure(OP_FAILURE);return effect.effect_instruction_i0=cause,effect},exitFlatMap=dual(2,(self,f)=>{switch(self._tag){case OP_FAILURE:return exitFailCause(self.effect_instruction_i0);case OP_SUCCESS:return f(self.effect_instruction_i0)}});var exitFlatten=(self)=>pipe(self,exitFlatMap(identity));var exitInterrupt=(fiberId2)=>exitFailCause(interrupt(fiberId2)),exitMap=dual(2,(self,f)=>{switch(self._tag){case OP_FAILURE:return exitFailCause(self.effect_instruction_i0);case OP_SUCCESS:return exitSucceed(f(self.effect_instruction_i0))}}),exitMapBoth=dual(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE:return exitFailCause(pipe(self.effect_instruction_i0,map8(onFailure)));case OP_SUCCESS:return exitSucceed(onSuccess(self.effect_instruction_i0))}});var exitMatch=dual(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE:return onFailure(self.effect_instruction_i0);case OP_SUCCESS:return onSuccess(self.effect_instruction_i0)}}),exitMatchEffect=dual(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE:return onFailure(self.effect_instruction_i0);case OP_SUCCESS:return onSuccess(self.effect_instruction_i0)}}),exitSucceed=(value)=>{let effect=new EffectPrimitiveSuccess(OP_SUCCESS);return effect.effect_instruction_i0=value,effect},exitVoid=exitSucceed(void 0),exitZip=dual(2,(self,that)=>exitZipWith(self,that,{onSuccess:(a,a2)=>[a,a2],onFailure:sequential}));var exitZipRight=dual(2,(self,that)=>exitZipWith(self,that,{onSuccess:(_,a2)=>a2,onFailure:sequential}));var exitZipWith=dual(3,(self,that,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE:switch(that._tag){case OP_SUCCESS:return exitFailCause(self.effect_instruction_i0);case OP_FAILURE:return exitFailCause(onFailure(self.effect_instruction_i0,that.effect_instruction_i0))}case OP_SUCCESS:switch(that._tag){case OP_SUCCESS:return exitSucceed(onSuccess(self.effect_instruction_i0,that.effect_instruction_i0));case OP_FAILURE:return exitFailCause(that.effect_instruction_i0)}}}),exitCollectAllInternal=(exits,combineCauses)=>{let list=fromIterable2(exits);if(!isNonEmpty(list))return none2();return pipe(tailNonEmpty2(list),reduce(pipe(headNonEmpty2(list),exitMap(of2)),(accumulator,current)=>pipe(accumulator,exitZipWith(current,{onSuccess:(list2,value)=>pipe(list2,prepend2(value)),onFailure:combineCauses}))),exitMap(reverse2),exitMap((chunk)=>toReadonlyArray(chunk)),some2)},deferredUnsafeMake=(fiberId2)=>{return{...CommitPrototype,[DeferredTypeId]:deferredVariance,state:make11(pending([])),commit(){return deferredAwait(this)},blockingOn:fiberId2}},deferredMake=()=>flatMap8(fiberId,(id)=>deferredMakeAs(id)),deferredMakeAs=(fiberId2)=>sync(()=>deferredUnsafeMake(fiberId2)),deferredAwait=(self)=>asyncInterrupt((resume)=>{let state=get6(self.state);switch(state._tag){case OP_STATE_DONE:return resume(state.effect);case OP_STATE_PENDING:return state.joiners.push(resume),deferredInterruptJoiner(self,resume)}},self.blockingOn),deferredComplete=dual(2,(self,effect)=>intoDeferred(effect,self)),deferredCompleteWith=dual(2,(self,effect)=>sync(()=>{let state=get6(self.state);switch(state._tag){case OP_STATE_DONE:return!1;case OP_STATE_PENDING:{set2(self.state,done(effect));for(let i=0,len=state.joiners.length;i<len;i++)state.joiners[i](effect);return!0}}})),deferredDone=dual(2,(self,exit2)=>deferredCompleteWith(self,exit2)),deferredFail=dual(2,(self,error)=>deferredCompleteWith(self,fail2(error)));var deferredFailCause=dual(2,(self,cause)=>deferredCompleteWith(self,failCause(cause)));var deferredInterrupt=(self)=>flatMap8(fiberId,(fiberId2)=>deferredCompleteWith(self,interruptWith(fiberId2))),deferredInterruptWith=dual(2,(self,fiberId2)=>deferredCompleteWith(self,interruptWith(fiberId2))),deferredIsDone=(self)=>sync(()=>get6(self.state)._tag===OP_STATE_DONE),deferredPoll=(self)=>sync(()=>{let state=get6(self.state);switch(state._tag){case OP_STATE_DONE:return some2(state.effect);case OP_STATE_PENDING:return none2()}}),deferredSucceed=dual(2,(self,value)=>deferredCompleteWith(self,succeed(value)));var deferredUnsafeDone=(self,effect)=>{let state=get6(self.state);if(state._tag===OP_STATE_PENDING){set2(self.state,done(effect));for(let i=0,len=state.joiners.length;i<len;i++)state.joiners[i](effect)}},deferredInterruptJoiner=(self,joiner)=>sync(()=>{let state=get6(self.state);if(state._tag===OP_STATE_PENDING){let index=state.joiners.indexOf(joiner);if(index>=0)state.joiners.splice(index,1)}}),constContext=withFiberRuntime((fiber)=>exitSucceed(fiber.currentContext)),context=()=>constContext;var contextWithEffect=(f)=>flatMap8(context(),f),provideContext=dual(2,(self,context2)=>fiberRefLocally(currentContext,context2)(self)),provideSomeContext=dual(2,(self,context2)=>fiberRefLocallyWith(currentContext,(parent)=>merge3(parent,context2))(self)),mapInputContext=dual(2,(self,f)=>contextWithEffect((context2)=>provideContext(self,f(context2)))),filterEffectOrElse=dual(2,(self,options)=>flatMap8(self,(a)=>flatMap8(options.predicate(a),(pass)=>pass?succeed(a):options.orElse(a)))),filterEffectOrFail=dual(2,(self,options)=>filterEffectOrElse(self,{predicate:options.predicate,orElse:(a)=>fail2(options.orFailWith(a))})),currentSpanFromFiber=(fiber)=>{let span2=fiber.currentSpan;return span2!==void 0&&span2._tag==="Span"?some2(span2):none2()},NoopSpanProto={_tag:"Span",spanId:"noop",traceId:"noop",sampled:!1,status:{_tag:"Ended",startTime:BigInt(0),endTime:BigInt(0),exit:exitVoid},attributes:new Map,links:[],kind:"internal",attribute(){},event(){},end(){},addLinks(){}},noopSpan=(options)=>Object.assign(Object.create(NoopSpanProto),options);var fail3=fail,die3=die,interrupt3=interrupt;var isDieType2=isDieType;var isInterrupted2=isInterrupted,isInterruptedOnly2=isInterruptedOnly;var interruptors2=interruptors;var failureOrCause2=failureOrCause,flipCauseOption2=flipCauseOption;var map11=map8;var squash=causeSquash;var IllegalArgumentException2=IllegalArgumentException;var NoSuchElementException2=NoSuchElementException;var RuntimeException2=RuntimeException,isRuntimeException2=isRuntimeException;var exports_Effect={};__export(exports_Effect,{zipWith:()=>zipWith6,zipRight:()=>zipRight4,zipLeft:()=>zipLeft3,zip:()=>zip5,yieldNow:()=>yieldNow4,withUnhandledErrorLogLevel:()=>withUnhandledErrorLogLevel2,withTracerTiming:()=>withTracerTiming2,withTracerScoped:()=>withTracerScoped2,withTracerEnabled:()=>withTracerEnabled2,withTracer:()=>withTracer2,withSpanScoped:()=>withSpanScoped2,withSpan:()=>withSpan3,withSchedulingPriority:()=>withSchedulingPriority2,withScheduler:()=>withScheduler2,withRuntimeFlagsPatchScoped:()=>withRuntimeFlagsPatchScoped,withRuntimeFlagsPatch:()=>withRuntimeFlagsPatch,withRequestCaching:()=>withRequestCaching2,withRequestCache:()=>withRequestCache2,withRequestBatching:()=>withRequestBatching2,withRandomScoped:()=>withRandomScoped2,withRandomFixed:()=>withRandomFixed,withRandom:()=>withRandom2,withParentSpan:()=>withParentSpan3,withMetric:()=>withMetric2,withMaxOpsBeforeYield:()=>withMaxOpsBeforeYield2,withLogSpan:()=>withLogSpan2,withFiberRuntime:()=>withFiberRuntime2,withExecutionPlan:()=>withExecutionPlan2,withEarlyRelease:()=>withEarlyRelease2,withConsoleScoped:()=>withConsoleScoped2,withConsole:()=>withConsole2,withConfigProviderScoped:()=>withConfigProviderScoped2,withConfigProvider:()=>withConfigProvider2,withConcurrency:()=>withConcurrency2,withClockScoped:()=>withClockScoped2,withClock:()=>withClock2,whileLoop:()=>whileLoop2,whenRef:()=>whenRef2,whenLogLevel:()=>whenLogLevel2,whenFiberRef:()=>whenFiberRef2,whenEffect:()=>whenEffect2,when:()=>when2,void:()=>_void,validateWith:()=>validateWith2,validateFirst:()=>validateFirst2,validateAll:()=>validateAll2,validate:()=>validate2,using:()=>using2,useSpan:()=>useSpan2,updateService:()=>updateService2,updateFiberRefs:()=>updateFiberRefs2,unsandbox:()=>unsandbox2,unsafeMakeSemaphore:()=>unsafeMakeSemaphore2,unsafeMakeLatch:()=>unsafeMakeLatch2,unlessEffect:()=>unlessEffect2,unless:()=>unless2,uninterruptibleMask:()=>uninterruptibleMask3,uninterruptible:()=>uninterruptible2,tryPromise:()=>tryPromise2,tryMapPromise:()=>tryMapPromise2,tryMap:()=>tryMap2,try:()=>try_3,transposeOption:()=>transposeOption,transposeMapOption:()=>transposeMapOption,transplant:()=>transplant2,tracerWith:()=>tracerWith4,tracer:()=>tracer2,timeoutTo:()=>timeoutTo2,timeoutOption:()=>timeoutOption2,timeoutFailCause:()=>timeoutFailCause2,timeoutFail:()=>timeoutFail2,timeout:()=>timeout2,timedWith:()=>timedWith2,timed:()=>timed2,tapErrorTag:()=>tapErrorTag2,tapErrorCause:()=>tapErrorCause3,tapError:()=>tapError3,tapDefect:()=>tapDefect2,tapBoth:()=>tapBoth2,tap:()=>tap3,takeWhile:()=>takeWhile3,takeUntil:()=>takeUntil2,tagMetricsScoped:()=>tagMetricsScoped2,tagMetrics:()=>tagMetrics2,sync:()=>sync4,suspend:()=>suspend3,supervised:()=>supervised2,summarized:()=>summarized2,succeedSome:()=>succeedSome2,succeedNone:()=>succeedNone2,succeed:()=>succeed9,step:()=>step3,spanLinks:()=>spanLinks2,spanAnnotations:()=>spanAnnotations2,sleep:()=>sleep4,setFiberRefs:()=>setFiberRefs2,serviceOptional:()=>serviceOptional2,serviceOption:()=>serviceOption2,serviceMembers:()=>serviceMembers2,serviceFunctions:()=>serviceFunctions2,serviceFunctionEffect:()=>serviceFunctionEffect2,serviceFunction:()=>serviceFunction2,serviceConstants:()=>serviceConstants2,sequentialFinalizers:()=>sequentialFinalizers2,scopedWith:()=>scopedWith2,scoped:()=>scoped2,scopeWith:()=>scopeWith2,scope:()=>scope3,scheduleFrom:()=>scheduleFrom,scheduleForked:()=>scheduleForked2,schedule:()=>schedule,sandbox:()=>sandbox2,runtime:()=>runtime3,runSyncExit:()=>runSyncExit,runSync:()=>runSync,runRequestBlock:()=>runRequestBlock2,runPromiseExit:()=>runPromiseExit,runPromise:()=>runPromise,runFork:()=>runFork2,runCallback:()=>runCallback,retryOrElse:()=>retryOrElse,retry:()=>retry2,request:()=>request,replicateEffect:()=>replicateEffect2,replicate:()=>replicate2,repeatOrElse:()=>repeatOrElse,repeatN:()=>repeatN2,repeat:()=>repeat,reduceWhile:()=>reduceWhile2,reduceRight:()=>reduceRight4,reduceEffect:()=>reduceEffect3,reduce:()=>reduce11,randomWith:()=>randomWith2,random:()=>random3,raceWith:()=>raceWith2,raceFirst:()=>raceFirst2,raceAll:()=>raceAll2,race:()=>race2,provideServiceEffect:()=>provideServiceEffect2,provideService:()=>provideService3,provide:()=>provide2,promise:()=>promise2,patchRuntimeFlags:()=>patchRuntimeFlags,patchFiberRefs:()=>patchFiberRefs2,partition:()=>partition4,parallelFinalizers:()=>parallelFinalizers2,parallelErrors:()=>parallelErrors2,orElseSucceed:()=>orElseSucceed2,orElseFail:()=>orElseFail2,orElse:()=>orElse5,orDieWith:()=>orDieWith2,orDie:()=>orDie3,optionFromOptional:()=>optionFromOptional2,option:()=>option2,once:()=>once3,onInterrupt:()=>onInterrupt2,onExit:()=>onExit3,onError:()=>onError2,none:()=>none9,never:()=>never3,negate:()=>negate2,metricLabels:()=>metricLabels2,mergeAll:()=>mergeAll5,merge:()=>merge7,matchEffect:()=>matchEffect2,matchCauseEffect:()=>matchCauseEffect3,matchCause:()=>matchCause3,match:()=>match13,mapInputContext:()=>mapInputContext3,mapErrorCause:()=>mapErrorCause2,mapError:()=>mapError3,mapBoth:()=>mapBoth4,mapAccum:()=>mapAccum4,map:()=>map16,makeSpanScoped:()=>makeSpanScoped2,makeSpan:()=>makeSpan2,makeSemaphore:()=>makeSemaphore2,makeLatch:()=>makeLatch2,loop:()=>loop2,logWithLevel:()=>logWithLevel2,logWarning:()=>logWarning2,logTrace:()=>logTrace2,logInfo:()=>logInfo2,logFatal:()=>logFatal2,logError:()=>logError2,logDebug:()=>logDebug2,logAnnotations:()=>logAnnotations2,log:()=>log3,locallyWith:()=>locallyWith,locallyScopedWith:()=>locallyScopedWith,locallyScoped:()=>locallyScoped,locally:()=>locally,linkSpans:()=>linkSpans2,linkSpanCurrent:()=>linkSpanCurrent2,liftPredicate:()=>liftPredicate3,let:()=>let_3,labelMetricsScoped:()=>labelMetricsScoped2,labelMetrics:()=>labelMetrics2,iterate:()=>iterate2,isSuccess:()=>isSuccess3,isFailure:()=>isFailure4,isEffect:()=>isEffect2,intoDeferred:()=>intoDeferred2,interruptibleMask:()=>interruptibleMask2,interruptible:()=>interruptible4,interruptWith:()=>interruptWith2,interrupt:()=>interrupt7,inheritFiberRefs:()=>inheritFiberRefs2,ignoreLogged:()=>ignoreLogged2,ignore:()=>ignore2,if:()=>if_2,head:()=>head4,getRuntimeFlags:()=>getRuntimeFlags,getFiberRefs:()=>getFiberRefs,gen:()=>gen2,functionWithSpan:()=>functionWithSpan2,fromNullable:()=>fromNullable3,fromFiberEffect:()=>fromFiberEffect2,fromFiber:()=>fromFiber2,forkWithErrorHandler:()=>forkWithErrorHandler2,forkScoped:()=>forkScoped2,forkIn:()=>forkIn2,forkDaemon:()=>forkDaemon2,forkAll:()=>forkAll2,fork:()=>fork3,forever:()=>forever3,forEach:()=>forEach6,fnUntraced:()=>fnUntraced2,fn:()=>fn,flipWith:()=>flipWith2,flip:()=>flip2,flatten:()=>flatten8,flatMap:()=>flatMap11,firstSuccessOf:()=>firstSuccessOf2,findFirst:()=>findFirst6,finalizersMask:()=>finalizersMask2,filterOrFail:()=>filterOrFail2,filterOrElse:()=>filterOrElse2,filterOrDieMessage:()=>filterOrDieMessage2,filterOrDie:()=>filterOrDie2,filterMap:()=>filterMap5,filterEffectOrFail:()=>filterEffectOrFail2,filterEffectOrElse:()=>filterEffectOrElse2,filter:()=>filter7,fiberIdWith:()=>fiberIdWith2,fiberId:()=>fiberId2,failSync:()=>failSync3,failCauseSync:()=>failCauseSync3,failCause:()=>failCause8,fail:()=>fail9,exit:()=>exit2,exists:()=>exists2,every:()=>every6,eventually:()=>eventually2,ensuringChildren:()=>ensuringChildren2,ensuringChild:()=>ensuringChild2,ensuring:()=>ensuring3,ensureSuccessType:()=>ensureSuccessType,ensureRequirementsType:()=>ensureRequirementsType,ensureErrorType:()=>ensureErrorType,either:()=>either4,dropWhile:()=>dropWhile3,dropUntil:()=>dropUntil2,disconnect:()=>disconnect2,diffFiberRefs:()=>diffFiberRefs2,dieSync:()=>dieSync3,dieMessage:()=>dieMessage2,die:()=>die6,descriptorWith:()=>descriptorWith2,descriptor:()=>descriptor2,delay:()=>delay2,daemonChildren:()=>daemonChildren2,custom:()=>custom2,currentSpan:()=>currentSpan2,currentParentSpan:()=>currentParentSpan2,contextWithEffect:()=>contextWithEffect2,contextWith:()=>contextWith2,context:()=>context3,consoleWith:()=>consoleWith2,console:()=>console3,configProviderWith:()=>configProviderWith2,clockWith:()=>clockWith4,clock:()=>clock2,checkInterruptible:()=>checkInterruptible2,cause:()=>cause2,catchTags:()=>catchTags2,catchTag:()=>catchTag2,catchSomeDefect:()=>catchSomeDefect2,catchSomeCause:()=>catchSomeCause2,catchSome:()=>catchSome2,catchIf:()=>catchIf2,catchAllDefect:()=>catchAllDefect2,catchAllCause:()=>catchAllCause3,catchAll:()=>catchAll3,catch:()=>_catch2,cachedWithTTL:()=>cachedWithTTL,cachedInvalidateWithTTL:()=>cachedInvalidateWithTTL2,cachedFunction:()=>cachedFunction2,cached:()=>cached3,cacheRequestResult:()=>cacheRequestResult,blocked:()=>blocked2,bindTo:()=>bindTo3,bindAll:()=>bindAll2,bind:()=>bind3,awaitAllChildren:()=>awaitAllChildren2,asyncEffect:()=>asyncEffect2,async:()=>async,asVoid:()=>asVoid3,asSomeError:()=>asSomeError2,asSome:()=>asSome2,as:()=>as4,ap:()=>ap,annotateSpans:()=>annotateSpans3,annotateLogsScoped:()=>annotateLogsScoped2,annotateLogs:()=>annotateLogs3,annotateCurrentSpan:()=>annotateCurrentSpan2,andThen:()=>andThen5,allowInterrupt:()=>allowInterrupt2,allWith:()=>allWith2,allSuccesses:()=>allSuccesses2,all:()=>all5,addFinalizer:()=>addFinalizer3,acquireUseRelease:()=>acquireUseRelease2,acquireReleaseInterruptible:()=>acquireReleaseInterruptible2,acquireRelease:()=>acquireRelease2,Tag:()=>Tag3,Service:()=>Service,EffectTypeId:()=>EffectTypeId3,Do:()=>Do2});var ClockSymbolKey="effect/Clock",ClockTypeId=Symbol.for(ClockSymbolKey),clockTag=GenericTag("effect/Clock"),MAX_TIMER_MILLIS=2147483647,globalClockScheduler={unsafeSchedule(task,duration){let millis2=toMillis(duration);if(millis2>MAX_TIMER_MILLIS)return constFalse;let completed=!1,handle=setTimeout(()=>{completed=!0,task()},millis2);return()=>{return clearTimeout(handle),!completed}}},performanceNowNanos=function(){let bigint1e62=BigInt(1e6);if(typeof performance>"u")return()=>BigInt(Date.now())*bigint1e62;let origin;return()=>{if(origin===void 0)origin=BigInt(Date.now())*bigint1e62-BigInt(Math.round(performance.now()*1e6));return origin+BigInt(Math.round(performance.now()*1e6))}}(),processOrPerformanceNow=function(){let processHrtime=typeof process==="object"&&"hrtime"in process&&typeof process.hrtime.bigint==="function"?process.hrtime:void 0;if(!processHrtime)return performanceNowNanos;let origin=performanceNowNanos()-processHrtime.bigint();return()=>origin+processHrtime.bigint()}();class ClockImpl{[ClockTypeId]=ClockTypeId;unsafeCurrentTimeMillis(){return Date.now()}unsafeCurrentTimeNanos(){return processOrPerformanceNow()}currentTimeMillis=sync(()=>this.unsafeCurrentTimeMillis());currentTimeNanos=sync(()=>this.unsafeCurrentTimeNanos());scheduler(){return succeed(globalClockScheduler)}sleep(duration){return async_((resume)=>{let canceler=globalClockScheduler.unsafeSchedule(()=>resume(void_),duration);return asVoid(sync(canceler))})}}var make18=()=>new ClockImpl;var Order2=number3;var nextPow2=(n)=>{let nextPow=Math.ceil(Math.log(n)/Math.log(2));return Math.max(Math.pow(2,nextPow),2)};var escape=(string2)=>string2.replace(/[/\\^$*+?.()|[\]{}]/g,"\\$&");var OP_AND="And",OP_OR="Or",OP_INVALID_DATA="InvalidData",OP_MISSING_DATA="MissingData",OP_SOURCE_UNAVAILABLE="SourceUnavailable",OP_UNSUPPORTED="Unsupported";var ConfigErrorSymbolKey="effect/ConfigError",ConfigErrorTypeId=Symbol.for(ConfigErrorSymbolKey),proto2={_tag:"ConfigError",[ConfigErrorTypeId]:ConfigErrorTypeId},And=(self,that)=>{let error=Object.create(proto2);return error._op=OP_AND,error.left=self,error.right=that,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`${this.left} and ${this.right}`}}),Object.defineProperty(error,"message",{enumerable:!1,get(){return this.toString()}}),error},Or=(self,that)=>{let error=Object.create(proto2);return error._op=OP_OR,error.left=self,error.right=that,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`${this.left} or ${this.right}`}}),Object.defineProperty(error,"message",{enumerable:!1,get(){return this.toString()}}),error},InvalidData=(path,message,options={pathDelim:"."})=>{let error=Object.create(proto2);return error._op=OP_INVALID_DATA,error.path=path,error.message=message,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`(Invalid data at ${pipe(this.path,join(options.pathDelim))}: "${this.message}")`}}),error},MissingData=(path,message,options={pathDelim:"."})=>{let error=Object.create(proto2);return error._op=OP_MISSING_DATA,error.path=path,error.message=message,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`(Missing data at ${pipe(this.path,join(options.pathDelim))}: "${this.message}")`}}),error},SourceUnavailable=(path,message,cause,options={pathDelim:"."})=>{let error=Object.create(proto2);return error._op=OP_SOURCE_UNAVAILABLE,error.path=path,error.message=message,error.cause=cause,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`(Source unavailable at ${pipe(this.path,join(options.pathDelim))}: "${this.message}")`}}),error},Unsupported=(path,message,options={pathDelim:"."})=>{let error=Object.create(proto2);return error._op=OP_UNSUPPORTED,error.path=path,error.message=message,Object.defineProperty(error,"toString",{enumerable:!1,value(){return`(Unsupported operation at ${pipe(this.path,join(options.pathDelim))}: "${this.message}")`}}),error};var prefixed=dual(2,(self,prefix)=>{switch(self._op){case OP_AND:return And(prefixed(self.left,prefix),prefixed(self.right,prefix));case OP_OR:return Or(prefixed(self.left,prefix),prefixed(self.right,prefix));case OP_INVALID_DATA:return InvalidData([...prefix,...self.path],self.message);case OP_MISSING_DATA:return MissingData([...prefix,...self.path],self.message);case OP_SOURCE_UNAVAILABLE:return SourceUnavailable([...prefix,...self.path],self.message,self.cause);case OP_UNSUPPORTED:return Unsupported([...prefix,...self.path],self.message)}}),IsMissingDataOnlyReducer={andCase:(_,left3,right3)=>left3&&right3,orCase:(_,left3,right3)=>left3&&right3,invalidDataCase:constFalse,missingDataCase:constTrue,sourceUnavailableCase:constFalse,unsupportedCase:constFalse},reduceWithContext2=dual(3,(self,context2,reducer)=>{let input=[self],output=[];while(input.length>0){let error=input.pop();switch(error._op){case OP_AND:{input.push(error.right),input.push(error.left),output.push(left2({_op:"AndCase"}));break}case OP_OR:{input.push(error.right),input.push(error.left),output.push(left2({_op:"OrCase"}));break}case OP_INVALID_DATA:{output.push(right2(reducer.invalidDataCase(context2,error.path,error.message)));break}case OP_MISSING_DATA:{output.push(right2(reducer.missingDataCase(context2,error.path,error.message)));break}case OP_SOURCE_UNAVAILABLE:{output.push(right2(reducer.sourceUnavailableCase(context2,error.path,error.message,error.cause)));break}case OP_UNSUPPORTED:{output.push(right2(reducer.unsupportedCase(context2,error.path,error.message)));break}}}let accumulator=[];while(output.length>0){let either3=output.pop();switch(either3._op){case"Left":{switch(either3.left._op){case"AndCase":{let left3=accumulator.pop(),right3=accumulator.pop(),value=reducer.andCase(context2,left3,right3);accumulator.push(value);break}case"OrCase":{let left3=accumulator.pop(),right3=accumulator.pop(),value=reducer.orCase(context2,left3,right3);accumulator.push(value);break}}break}case"Right":{accumulator.push(either3.right);break}}}if(accumulator.length===0)throw Error("BUG: ConfigError.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return accumulator.pop()}),isMissingDataOnly=(self)=>reduceWithContext2(self,void 0,IsMissingDataOnlyReducer);var empty17={_tag:"Empty"};var patch5=dual(2,(path,patch6)=>{let input=of3(patch6),output=path;while(isCons(input)){let patch7=input.head;switch(patch7._tag){case"Empty":{input=input.tail;break}case"AndThen":{input=cons(patch7.first,cons(patch7.second,input.tail));break}case"MapName":{output=map3(output,patch7.f),input=input.tail;break}case"Nested":{output=prepend(output,patch7.name),input=input.tail;break}case"Unnested":{if(pipe(head(output),contains(patch7.name)))output=tailNonEmpty(output),input=input.tail;else return left2(MissingData(output,`Expected ${patch7.name} to be in path in ConfigProvider#unnested`));break}}}return right2(output)});var OP_CONSTANT="Constant",OP_FAIL2="Fail",OP_FALLBACK="Fallback",OP_DESCRIBED="Described",OP_LAZY="Lazy",OP_MAP_OR_FAIL="MapOrFail",OP_NESTED="Nested",OP_PRIMITIVE="Primitive",OP_SEQUENCE="Sequence",OP_HASHMAP="HashMap",OP_ZIP_WITH="ZipWith";var concat=(l,r)=>[...l,...r],ConfigProviderSymbolKey="effect/ConfigProvider",ConfigProviderTypeId=Symbol.for(ConfigProviderSymbolKey),configProviderTag=GenericTag("effect/ConfigProvider"),FlatConfigProviderSymbolKey="effect/ConfigProviderFlat",FlatConfigProviderTypeId=Symbol.for(FlatConfigProviderSymbolKey),make20=(options)=>({[ConfigProviderTypeId]:ConfigProviderTypeId,pipe(){return pipeArguments(this,arguments)},...options}),makeFlat=(options)=>({[FlatConfigProviderTypeId]:FlatConfigProviderTypeId,patch:options.patch,load:(path,config,split=!0)=>options.load(path,config,split),enumerateChildren:options.enumerateChildren}),fromFlat=(flat)=>make20({load:(config)=>flatMap8(fromFlatLoop(flat,empty(),config,!1),(chunk)=>match2(head(chunk),{onNone:()=>fail2(MissingData(empty(),`Expected a single value having structure: ${config}`)),onSome:succeed})),flattened:flat}),fromEnv=(options)=>{let{pathDelim,seqDelim}=Object.assign({},{pathDelim:"_",seqDelim:","},options),makePathString=(path)=>pipe(path,join(pathDelim)),unmakePathString=(pathString)=>pathString.split(pathDelim),getEnv=()=>typeof process<"u"&&("env"in process)&&typeof process.env==="object"?process.env:{};return fromFlat(makeFlat({load:(path,primitive,split=!0)=>{let pathString=makePathString(path),current=getEnv(),valueOpt=pathString in current?some2(current[pathString]):none2();return pipe(valueOpt,mapError(()=>MissingData(path,`Expected ${pathString} to exist in the process context`)),flatMap8((value)=>parsePrimitive(value,path,primitive,seqDelim,split)))},enumerateChildren:(path)=>sync(()=>{let current=getEnv(),filteredKeyPaths=Object.keys(current).map((value)=>unmakePathString(value.toUpperCase())).filter((keyPath)=>{for(let i=0;i<path.length;i++){let pathComponent=pipe(path,unsafeGet(i)),currentElement=keyPath[i];if(currentElement===void 0||pathComponent!==currentElement)return!1}return!0}).flatMap((keyPath)=>keyPath.slice(path.length,path.length+1));return fromIterable5(filteredKeyPaths)}),patch:empty17}))};var extend=(leftDef,rightDef,left3,right3)=>{let leftPad=unfold(left3.length,(index)=>index>=right3.length?none2():some2([leftDef(index),index+1])),rightPad=unfold(right3.length,(index)=>index>=left3.length?none2():some2([rightDef(index),index+1])),leftExtension=concat(left3,leftPad),rightExtension=concat(right3,rightPad);return[leftExtension,rightExtension]},appendConfigPath=(path,config)=>{let op=config;if(op._tag==="Nested"){let out=path.slice();while(op._tag==="Nested")out.push(op.name),op=op.config;return out}return path},fromFlatLoop=(flat,prefix,config,split)=>{let op=config;switch(op._tag){case OP_CONSTANT:return succeed(of(op.value));case OP_DESCRIBED:return suspend(()=>fromFlatLoop(flat,prefix,op.config,split));case OP_FAIL2:return fail2(MissingData(prefix,op.message));case OP_FALLBACK:return pipe(suspend(()=>fromFlatLoop(flat,prefix,op.first,split)),catchAll((error1)=>{if(op.condition(error1))return pipe(fromFlatLoop(flat,prefix,op.second,split),catchAll((error2)=>fail2(Or(error1,error2))));return fail2(error1)}));case OP_LAZY:return suspend(()=>fromFlatLoop(flat,prefix,op.config(),split));case OP_MAP_OR_FAIL:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.original,split),flatMap8(forEachSequential((a)=>pipe(op.mapOrFail(a),mapError(prefixed(appendConfigPath(prefix,op.original))))))));case OP_NESTED:return suspend(()=>fromFlatLoop(flat,concat(prefix,of(op.name)),op.config,split));case OP_PRIMITIVE:return pipe(patch5(prefix,flat.patch),flatMap8((prefix2)=>pipe(flat.load(prefix2,op,split),flatMap8((values3)=>{if(values3.length===0){let name=pipe(last(prefix2),getOrElse(()=>"<n/a>"));return fail2(MissingData([],`Expected ${op.description} with name ${name}`))}return succeed(values3)}))));case OP_SEQUENCE:return pipe(patch5(prefix,flat.patch),flatMap8((patchedPrefix)=>pipe(flat.enumerateChildren(patchedPrefix),flatMap8(indicesFrom),flatMap8((indices)=>{if(indices.length===0)return suspend(()=>map10(fromFlatLoop(flat,prefix,op.config,!0),of));return pipe(forEachSequential(indices,(index)=>fromFlatLoop(flat,append(prefix,`[${index}]`),op.config,!0)),map10((chunkChunk)=>{let flattened=flatten(chunkChunk);if(flattened.length===0)return of(empty());return of(flattened)}))}))));case OP_HASHMAP:return suspend(()=>pipe(patch5(prefix,flat.patch),flatMap8((prefix2)=>pipe(flat.enumerateChildren(prefix2),flatMap8((keys3)=>{return pipe(keys3,forEachSequential((key)=>fromFlatLoop(flat,concat(prefix2,of(key)),op.valueConfig,split)),map10((matrix)=>{if(matrix.length===0)return of(empty9());return pipe(transpose(matrix),map3((values3)=>fromIterable6(zip(fromIterable(keys3),values3))))}))})))));case OP_ZIP_WITH:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.left,split),either2,flatMap8((left3)=>pipe(fromFlatLoop(flat,prefix,op.right,split),either2,flatMap8((right3)=>{if(isLeft2(left3)&&isLeft2(right3))return fail2(And(left3.left,right3.left));if(isLeft2(left3)&&isRight2(right3))return fail2(left3.left);if(isRight2(left3)&&isLeft2(right3))return fail2(right3.left);if(isRight2(left3)&&isRight2(right3)){let path=pipe(prefix,join(".")),fail4=fromFlatLoopFail(prefix,path),[lefts,rights]=extend(fail4,fail4,pipe(left3.right,map3(right2)),pipe(right3.right,map3(right2)));return pipe(lefts,zip(rights),forEachSequential(([left4,right4])=>pipe(zip2(left4,right4),map10(([left5,right5])=>op.zip(left5,right5)))))}throw Error("BUG: ConfigProvider.fromFlatLoop - please report an issue at https://github.com/Effect-TS/effect/issues")})))))}},fromFlatLoopFail=(prefix,path)=>(index)=>left2(MissingData(prefix,`The element at index ${index} in a sequence at path "${path}" was missing`));var splitPathString=(text,delim)=>{return text.split(new RegExp(`\\s*${escape(delim)}\\s*`))},parsePrimitive=(text,path,primitive,delimiter,split)=>{if(!split)return pipe(primitive.parse(text),mapBoth({onFailure:prefixed(path),onSuccess:of}));return pipe(splitPathString(text,delimiter),forEachSequential((char)=>primitive.parse(char.trim())),mapError(prefixed(path)))},transpose=(array3)=>{return Object.keys(array3[0]).map((column)=>array3.map((row)=>row[column]))},indicesFrom=(quotedIndices)=>pipe(forEachSequential(quotedIndices,parseQuotedIndex),mapBoth({onFailure:()=>empty(),onSuccess:sort(Order2)}),either2,map10(merge));var QUOTED_INDEX_REGEX=/^(\[(\d+)\])$/,parseQuotedIndex=(str)=>{let match6=str.match(QUOTED_INDEX_REGEX);if(match6!==null){let matchedIndex=match6[2];return pipe(matchedIndex!==void 0&&matchedIndex.length>0?some2(matchedIndex):none2(),flatMap(parseInteger))}return none2()};var parseInteger=(str)=>{let parsedIndex=Number.parseInt(str);return Number.isNaN(parsedIndex)?none2():some2(parsedIndex)};var TypeId8=Symbol.for("effect/Console"),consoleTag=GenericTag("effect/Console"),defaultConsole={[TypeId8]:TypeId8,assert(condition,...args){return sync(()=>{console.assert(condition,...args)})},clear:sync(()=>{console.clear()}),count(label){return sync(()=>{console.count(label)})},countReset(label){return sync(()=>{console.countReset(label)})},debug(...args){return sync(()=>{console.debug(...args)})},dir(item,options){return sync(()=>{console.dir(item,options)})},dirxml(...args){return sync(()=>{console.dirxml(...args)})},error(...args){return sync(()=>{console.error(...args)})},group(options){return options?.collapsed?sync(()=>console.groupCollapsed(options?.label)):sync(()=>console.group(options?.label))},groupEnd:sync(()=>{console.groupEnd()}),info(...args){return sync(()=>{console.info(...args)})},log(...args){return sync(()=>{console.log(...args)})},table(tabularData,properties){return sync(()=>{console.table(tabularData,properties)})},time(label){return sync(()=>console.time(label))},timeEnd(label){return sync(()=>console.timeEnd(label))},timeLog(label,...args){return sync(()=>{console.timeLog(label,...args)})},trace(...args){return sync(()=>{console.trace(...args)})},warn(...args){return sync(()=>{console.warn(...args)})},unsafe:console};var RandomSymbolKey="effect/Random",RandomTypeId=Symbol.for(RandomSymbolKey),randomTag=GenericTag("effect/Random");class RandomImpl{seed;[RandomTypeId]=RandomTypeId;PRNG;constructor(seed){this.seed=seed,this.PRNG=new PCGRandom(seed)}get next(){return sync(()=>this.PRNG.number())}get nextBoolean(){return map10(this.next,(n)=>n>0.5)}get nextInt(){return sync(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(min3,max3){return map10(this.next,(n)=>(max3-min3)*n+min3)}nextIntBetween(min3,max3){return sync(()=>this.PRNG.integer(max3-min3)+min3)}shuffle(elements){return shuffleWith(elements,(n)=>this.nextIntBetween(0,n))}}var shuffleWith=(elements,nextIntBounded)=>{return suspend(()=>pipe(sync(()=>Array.from(elements)),flatMap8((buffer)=>{let numbers=[];for(let i=buffer.length;i>=2;i=i-1)numbers.push(i);return pipe(numbers,forEachSequentialDiscard((n)=>pipe(nextIntBounded(n),map10((k)=>swap(buffer,n-1,k)))),as(fromIterable2(buffer)))})))},swap=(buffer,index1,index2)=>{let tmp=buffer[index1];return buffer[index1]=buffer[index2],buffer[index2]=tmp,buffer},make21=(seed)=>new RandomImpl(hash(seed));class FixedRandomImpl{values;[RandomTypeId]=RandomTypeId;index=0;constructor(values3){if(this.values=values3,values3.length===0)throw Error("Requires at least one value")}getNextValue(){let value=this.values[this.index];return this.index=(this.index+1)%this.values.length,value}get next(){return sync(()=>{let value=this.getNextValue();if(typeof value==="number")return Math.max(0,Math.min(1,value));return hash(value)/2147483647})}get nextBoolean(){return sync(()=>{let value=this.getNextValue();if(typeof value==="boolean")return value;return hash(value)%2===0})}get nextInt(){return sync(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.round(value);return Math.abs(hash(value))})}nextRange(min3,max3){return map10(this.next,(n)=>(max3-min3)*n+min3)}nextIntBetween(min3,max3){return sync(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.max(min3,Math.min(max3-1,Math.round(value)));let hash2=Math.abs(hash(value));return min3+hash2%(max3-min3)})}shuffle(elements){return shuffleWith(elements,(n)=>this.nextIntBetween(0,n))}}var fixed=(values3)=>new FixedRandomImpl(values3);var TracerTypeId=Symbol.for("effect/Tracer"),make22=(options)=>({[TracerTypeId]:TracerTypeId,...options}),tracerTag=GenericTag("effect/Tracer"),spanTag=GenericTag("effect/ParentSpan"),randomHexString=function(){return function(length){let result="";for(let i=0;i<length;i++)result+="abcdef0123456789".charAt(Math.floor(Math.random()*16));return result}}();class NativeSpan{name;parent;context;startTime;kind;_tag="Span";spanId;traceId="native";sampled=!0;status;attributes;events=[];links;constructor(name,parent,context2,links,startTime,kind){this.name=name,this.parent=parent,this.context=context2,this.startTime=startTime,this.kind=kind,this.status={_tag:"Started",startTime},this.attributes=new Map,this.traceId=parent._tag==="Some"?parent.value.traceId:randomHexString(32),this.spanId=randomHexString(16),this.links=Array.from(links)}end(endTime,exit2){this.status={_tag:"Ended",endTime,exit:exit2,startTime:this.status.startTime}}attribute(key,value){this.attributes.set(key,value)}event(name,startTime,attributes){this.events.push([name,startTime,attributes??{}])}addLinks(links){this.links.push(...links)}}var nativeTracer=make22({span:(name,parent,context2,links,startTime,kind)=>new NativeSpan(name,parent,context2,links,startTime,kind),context:(f)=>f()});var addSpanStackTrace=(options)=>{if(options?.captureStackTrace===!1)return options;else if(options?.captureStackTrace!==void 0&&typeof options.captureStackTrace!=="boolean")return options;let limit=Error.stackTraceLimit;Error.stackTraceLimit=3;let traceError=Error();Error.stackTraceLimit=limit;let cache=!1;return{...options,captureStackTrace:()=>{if(cache!==!1)return cache;if(traceError.stack!==void 0){let stack=traceError.stack.split(`
24
+ `);if(stack[3]!==void 0)return cache=stack[3].trim(),cache}}}},DisablePropagation=Reference2()("effect/Tracer/DisablePropagation",{defaultValue:constFalse});var liveServices=pipe(empty8(),add4(clockTag,make18()),add4(consoleTag,defaultConsole),add4(randomTag,make21(Math.random())),add4(configProviderTag,fromEnv()),add4(tracerTag,nativeTracer)),currentServices=globalValue(Symbol.for("effect/DefaultServices/currentServices"),()=>fiberRefUnsafeMakeContext(liveServices)),sleep=(duration)=>{let decodedDuration=decode(duration);return clockWith((clock)=>clock.sleep(decodedDuration))},defaultServicesWith=(f)=>withFiberRuntime((fiber)=>f(fiber.currentDefaultServices)),clockWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(clockTag.key))),currentTimeMillis=clockWith((clock)=>clock.currentTimeMillis),currentTimeNanos=clockWith((clock)=>clock.currentTimeNanos),withClock=dual(2,(effect,c)=>fiberRefLocallyWith(currentServices,add4(clockTag,c))(effect)),withConfigProvider=dual(2,(self,provider)=>fiberRefLocallyWith(currentServices,add4(configProviderTag,provider))(self)),configProviderWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(configProviderTag.key))),config=(config2)=>configProviderWith((_)=>_.load(config2));var randomWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(randomTag.key))),withRandom=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add4(randomTag,value))(effect)),next=randomWith((random2)=>random2.next);var tracerWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(tracerTag.key))),withTracer=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add4(tracerTag,value))(effect));var not=(self)=>!self;var EffectPrototype2=EffectPrototype,CommitPrototype2=CommitPrototype;var Base2=Base;class Class extends Base2{}var OP_SEQUENTIAL2="Sequential",OP_PARALLEL2="Parallel",OP_PARALLEL_N="ParallelN",sequential2={_tag:OP_SEQUENTIAL2},parallel2={_tag:OP_PARALLEL2},parallelN=(parallelism)=>({_tag:OP_PARALLEL_N,parallelism}),isSequential=(self)=>self._tag===OP_SEQUENTIAL2,isParallel=(self)=>self._tag===OP_PARALLEL2;var sequential3=sequential2,parallel3=parallel2,parallelN2=parallelN;function unsafeMake4(fiberRefLocals){return new FiberRefsImpl(fiberRefLocals)}function empty18(){return unsafeMake4(new Map)}var FiberRefsSym=Symbol.for("effect/FiberRefs");class FiberRefsImpl{locals;[FiberRefsSym]=FiberRefsSym;constructor(locals){this.locals=locals}pipe(){return pipeArguments(this,arguments)}}var findAncestor=(_ref,_parentStack,_childStack,_childModified=!1)=>{let ref=_ref,parentStack=_parentStack,childStack=_childStack,childModified=_childModified,ret=void 0;while(ret===void 0)if(isNonEmptyReadonlyArray(parentStack)&&isNonEmptyReadonlyArray(childStack)){let parentFiberId=headNonEmpty(parentStack)[0],parentAncestors=tailNonEmpty(parentStack),childFiberId=headNonEmpty(childStack)[0],childRefValue=headNonEmpty(childStack)[1],childAncestors=tailNonEmpty(childStack);if(parentFiberId.startTimeMillis<childFiberId.startTimeMillis)childStack=childAncestors,childModified=!0;else if(parentFiberId.startTimeMillis>childFiberId.startTimeMillis)parentStack=parentAncestors;else if(parentFiberId.id<childFiberId.id)childStack=childAncestors,childModified=!0;else if(parentFiberId.id>childFiberId.id)parentStack=parentAncestors;else ret=[childRefValue,childModified]}else ret=[ref.initial,!0];return ret},joinAs=dual(3,(self,fiberId2,that)=>{let parentFiberRefs=new Map(self.locals);return that.locals.forEach((childStack,fiberRef)=>{let childValue=childStack[0][1];if(!childStack[0][0][symbol2](fiberId2)){if(!parentFiberRefs.has(fiberRef)){if(equals(childValue,fiberRef.initial))return;parentFiberRefs.set(fiberRef,[[fiberId2,fiberRef.join(fiberRef.initial,childValue)]]);return}let parentStack=parentFiberRefs.get(fiberRef),[ancestor,wasModified]=findAncestor(fiberRef,parentStack,childStack);if(wasModified){let patch6=fiberRef.diff(ancestor,childValue),oldValue=parentStack[0][1],newValue=fiberRef.join(oldValue,fiberRef.patch(patch6)(oldValue));if(!equals(oldValue,newValue)){let newStack,parentFiberId=parentStack[0][0];if(parentFiberId[symbol2](fiberId2))newStack=[[parentFiberId,newValue],...parentStack.slice(1)];else newStack=[[fiberId2,newValue],...parentStack];parentFiberRefs.set(fiberRef,newStack)}}}}),new FiberRefsImpl(parentFiberRefs)}),forkAs=dual(2,(self,childId)=>{let map12=new Map;return unsafeForkAs(self,map12,childId),new FiberRefsImpl(map12)}),unsafeForkAs=(self,map12,fiberId2)=>{self.locals.forEach((stack,fiberRef)=>{let oldValue=stack[0][1],newValue=fiberRef.patch(fiberRef.fork)(oldValue);if(equals(oldValue,newValue))map12.set(fiberRef,stack);else map12.set(fiberRef,[[fiberId2,newValue],...stack])})},fiberRefs=(self)=>fromIterable5(self.locals.keys()),setAll=(self)=>forEachSequentialDiscard(fiberRefs(self),(fiberRef)=>fiberRefSet(fiberRef,getOrDefault(self,fiberRef))),delete_=dual(2,(self,fiberRef)=>{let locals=new Map(self.locals);return locals.delete(fiberRef),new FiberRefsImpl(locals)}),get8=dual(2,(self,fiberRef)=>{if(!self.locals.has(fiberRef))return none2();return some2(headNonEmpty(self.locals.get(fiberRef))[1])}),getOrDefault=dual(2,(self,fiberRef)=>pipe(get8(self,fiberRef),getOrElse(()=>fiberRef.initial))),updateAs=dual(2,(self,{fiberId:fiberId2,fiberRef,value})=>{if(self.locals.size===0)return new FiberRefsImpl(new Map([[fiberRef,[[fiberId2,value]]]]));let locals=new Map(self.locals);return unsafeUpdateAs(locals,fiberId2,fiberRef,value),new FiberRefsImpl(locals)}),unsafeUpdateAs=(locals,fiberId2,fiberRef,value)=>{let oldStack=locals.get(fiberRef)??[],newStack;if(isNonEmptyReadonlyArray(oldStack)){let[currentId,currentValue]=headNonEmpty(oldStack);if(currentId[symbol2](fiberId2))if(equals(currentValue,value))return;else newStack=[[fiberId2,value],...oldStack.slice(1)];else newStack=[[fiberId2,value],...oldStack]}else newStack=[[fiberId2,value]];locals.set(fiberRef,newStack)},updateManyAs=dual(2,(self,{entries:entries2,forkAs:forkAs2})=>{if(self.locals.size===0)return new FiberRefsImpl(new Map(entries2));let locals=new Map(self.locals);if(forkAs2!==void 0)unsafeForkAs(self,locals,forkAs2);return entries2.forEach(([fiberRef,values3])=>{if(values3.length===1)unsafeUpdateAs(locals,values3[0][0],fiberRef,values3[0][1]);else values3.forEach(([fiberId2,value])=>{unsafeUpdateAs(locals,fiberId2,fiberRef,value)})}),new FiberRefsImpl(locals)});var get9=get8,getOrDefault2=getOrDefault,joinAs2=joinAs,setAll2=setAll,updateAs2=updateAs,updateManyAs2=updateManyAs;var empty19=empty18;var OP_EMPTY2="Empty",OP_ADD="Add",OP_REMOVE="Remove",OP_UPDATE="Update",OP_AND_THEN="AndThen",empty20={_tag:OP_EMPTY2},diff5=(oldValue,newValue)=>{let missingLocals=new Map(oldValue.locals),patch6=empty20;for(let[fiberRef,pairs]of newValue.locals.entries()){let newValue2=headNonEmpty(pairs)[1],old=missingLocals.get(fiberRef);if(old!==void 0){let oldValue2=headNonEmpty(old)[1];if(!equals(oldValue2,newValue2))patch6=combine7({_tag:OP_UPDATE,fiberRef,patch:fiberRef.diff(oldValue2,newValue2)})(patch6)}else patch6=combine7({_tag:OP_ADD,fiberRef,value:newValue2})(patch6);missingLocals.delete(fiberRef)}for(let[fiberRef]of missingLocals.entries())patch6=combine7({_tag:OP_REMOVE,fiberRef})(patch6);return patch6},combine7=dual(2,(self,that)=>({_tag:OP_AND_THEN,first:self,second:that})),patch6=dual(3,(self,fiberId2,oldValue)=>{let fiberRefs2=oldValue,patches=of(self);while(isNonEmptyReadonlyArray(patches)){let head3=headNonEmpty(patches),tail=tailNonEmpty(patches);switch(head3._tag){case OP_EMPTY2:{patches=tail;break}case OP_ADD:{fiberRefs2=updateAs(fiberRefs2,{fiberId:fiberId2,fiberRef:head3.fiberRef,value:head3.value}),patches=tail;break}case OP_REMOVE:{fiberRefs2=delete_(fiberRefs2,head3.fiberRef),patches=tail;break}case OP_UPDATE:{let value=getOrDefault(fiberRefs2,head3.fiberRef);fiberRefs2=updateAs(fiberRefs2,{fiberId:fiberId2,fiberRef:head3.fiberRef,value:head3.fiberRef.patch(head3.patch)(value)}),patches=tail;break}case OP_AND_THEN:{patches=prepend(head3.first)(prepend(head3.second)(tail));break}}}return fiberRefs2});var diff6=diff5;var patch7=patch6;var FiberStatusSymbolKey="effect/FiberStatus",FiberStatusTypeId=Symbol.for(FiberStatusSymbolKey),OP_DONE="Done",OP_RUNNING="Running",OP_SUSPENDED="Suspended",DoneHash=string(`${FiberStatusSymbolKey}-${OP_DONE}`);class Done{[FiberStatusTypeId]=FiberStatusTypeId;_tag=OP_DONE;[symbol](){return DoneHash}[symbol2](that){return isFiberStatus(that)&&that._tag===OP_DONE}}class Running{runtimeFlags;[FiberStatusTypeId]=FiberStatusTypeId;_tag=OP_RUNNING;constructor(runtimeFlags2){this.runtimeFlags=runtimeFlags2}[symbol](){return pipe(hash(FiberStatusSymbolKey),combine(hash(this._tag)),combine(hash(this.runtimeFlags)),cached(this))}[symbol2](that){return isFiberStatus(that)&&that._tag===OP_RUNNING&&this.runtimeFlags===that.runtimeFlags}}class Suspended{runtimeFlags;blockingOn;[FiberStatusTypeId]=FiberStatusTypeId;_tag=OP_SUSPENDED;constructor(runtimeFlags2,blockingOn){this.runtimeFlags=runtimeFlags2,this.blockingOn=blockingOn}[symbol](){return pipe(hash(FiberStatusSymbolKey),combine(hash(this._tag)),combine(hash(this.runtimeFlags)),combine(hash(this.blockingOn)),cached(this))}[symbol2](that){return isFiberStatus(that)&&that._tag===OP_SUSPENDED&&this.runtimeFlags===that.runtimeFlags&&equals(this.blockingOn,that.blockingOn)}}var done2=new Done,running=(runtimeFlags2)=>new Running(runtimeFlags2),suspended=(runtimeFlags2,blockingOn)=>new Suspended(runtimeFlags2,blockingOn),isFiberStatus=(u)=>hasProperty(u,FiberStatusTypeId),isDone=(self)=>self._tag===OP_DONE;var done3=done2,running2=running,suspended2=suspended;var isDone2=isDone;var All=logLevelAll,Fatal=logLevelFatal,Error2=logLevelError,Warning=logLevelWarning,Info=logLevelInfo,Debug=logLevelDebug,Trace=logLevelTrace,None3=logLevelNone;var Order3=pipe(Order2,mapInput2((level)=>level.ordinal));var greaterThan3=greaterThan(Order3);var fromLiteral=(literal)=>{switch(literal){case"All":return All;case"Debug":return Debug;case"Error":return Error2;case"Fatal":return Fatal;case"Info":return Info;case"Trace":return Trace;case"None":return None3;case"Warning":return Warning}};var TypeId9=Symbol.for("effect/Micro"),MicroExitTypeId=Symbol.for("effect/Micro/MicroExit");var MicroCauseTypeId=Symbol.for("effect/Micro/MicroCause");var microCauseVariance={_E:identity};class MicroCauseImpl extends globalThis.Error{_tag;traces;[MicroCauseTypeId];constructor(_tag,originalError,traces){let causeName=`MicroCause.${_tag}`,name,message,stack;if(originalError instanceof globalThis.Error){name=`(${causeName}) ${originalError.name}`,message=originalError.message;let messageLines=message.split(`
25
+ `).length;stack=originalError.stack?`(${causeName}) ${originalError.stack.split(`
26
+ `).slice(0,messageLines+3).join(`
27
+ `)}`:`${name}: ${message}`}else name=causeName,message=toStringUnknown(originalError,0),stack=`${name}: ${message}`;if(traces.length>0)stack+=`
28
+ ${traces.join(`
29
+ `)}`;super(message);this._tag=_tag,this.traces=traces,this[MicroCauseTypeId]=microCauseVariance,this.name=name,this.stack=stack}pipe(){return pipeArguments(this,arguments)}toString(){return this.stack}[NodeInspectSymbol](){return this.stack}}class Die extends MicroCauseImpl{defect;constructor(defect,traces=[]){super("Die",defect,traces);this.defect=defect}}var causeDie=(defect,traces=[])=>new Die(defect,traces);class Interrupt extends MicroCauseImpl{constructor(traces=[]){super("Interrupt","interrupted",traces)}}var causeInterrupt=(traces=[])=>new Interrupt(traces);var causeIsInterrupt=(self)=>self._tag==="Interrupt";var MicroFiberTypeId=Symbol.for("effect/Micro/MicroFiber"),fiberVariance={_A:identity,_E:identity};class MicroFiberImpl{context;interruptible;[MicroFiberTypeId];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(context2,interruptible3=!0){this.context=context2,this.interruptible=interruptible3,this[MicroFiberTypeId]=fiberVariance}getRef(ref){return unsafeGetReference(this.context,ref)}addObserver(cb){if(this._exit)return cb(this._exit),constVoid;return this._observers.push(cb),()=>{let index=this._observers.indexOf(cb);if(index>=0)this._observers.splice(index,1)}}_interrupted=!1;unsafeInterrupt(){if(this._exit)return;if(this._interrupted=!0,this.interruptible)this.evaluate(exitInterrupt2)}unsafePoll(){return this._exit}evaluate(effect){if(this._exit)return;else if(this._yielded!==void 0){let yielded=this._yielded;this._yielded=void 0,yielded()}let exit2=this.runLoop(effect);if(exit2===Yield)return;let interruptChildren=fiberMiddleware.interruptChildren&&fiberMiddleware.interruptChildren(this);if(interruptChildren!==void 0)return this.evaluate(flatMap9(interruptChildren,()=>exit2));this._exit=exit2;for(let i=0;i<this._observers.length;i++)this._observers[i](exit2);this._observers.length=0}runLoop(effect){let yielding=!1,current=effect;this.currentOpCount=0;try{while(!0){if(this.currentOpCount++,!yielding&&this.getRef(CurrentScheduler).shouldYield(this)){yielding=!0;let prev=current;current=flatMap9(yieldNow2,()=>prev)}if(current=current[evaluate](this),current===Yield){let yielded=this._yielded;if(MicroExitTypeId in yielded)return this._yielded=void 0,yielded;return Yield}}}catch(error){if(!hasProperty(current,evaluate))return exitDie2(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`);return exitDie2(error)}}getCont(symbol3){while(!0){let op=this._stack.pop();if(!op)return;let cont=op[ensureCont]&&op[ensureCont](this);if(cont)return{[symbol3]:cont};if(op[symbol3])return op}}_yielded=void 0;yieldWith(value){return this._yielded=value,Yield}children(){return this._children??=new Set}}var fiberMiddleware=globalValue("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0}));var identifier=Symbol.for("effect/Micro/identifier"),args=Symbol.for("effect/Micro/args"),evaluate=Symbol.for("effect/Micro/evaluate"),successCont=Symbol.for("effect/Micro/successCont"),failureCont=Symbol.for("effect/Micro/failureCont"),ensureCont=Symbol.for("effect/Micro/ensureCont"),Yield=Symbol.for("effect/Micro/Yield"),microVariance={_A:identity,_E:identity,_R:identity},MicroProto={...EffectPrototype2,_op:"Micro",[TypeId9]:microVariance,pipe(){return pipeArguments(this,arguments)},[Symbol.iterator](){return new SingleShotGen(new YieldWrap(this))},toJSON(){return{_id:"Micro",op:this[identifier],...args in this?{args:this[args]}:void 0}},toString(){return format(this)},[NodeInspectSymbol](){return format(this)}};function defaultEvaluate(_fiber){return exitDie2("Micro.evaluate: Not implemented")}var makePrimitiveProto=(options)=>({...MicroProto,[identifier]:options.op,[evaluate]:options.eval??defaultEvaluate,[successCont]:options.contA,[failureCont]:options.contE,[ensureCont]:options.ensure}),makePrimitive=(options)=>{let Proto=makePrimitiveProto(options);return function(){let self=Object.create(Proto);return self[args]=options.single===!1?arguments:arguments[0],self}},makeExit=(options)=>{let Proto={...makePrimitiveProto(options),[MicroExitTypeId]:MicroExitTypeId,_tag:options.op,get[options.prop](){return this[args]},toJSON(){return{_id:"MicroExit",_tag:options.op,[options.prop]:this[args]}},[symbol2](that){return isMicroExit(that)&&that._tag===options.op&&equals(this[args],that[args])},[symbol](){return cached(this,combine(string(options.op))(hash(this[args])))}};return function(value){let self=Object.create(Proto);return self[args]=value,self[successCont]=void 0,self[failureCont]=void 0,self[ensureCont]=void 0,self}},succeed2=makeExit({op:"Success",prop:"value",eval(fiber){let cont=fiber.getCont(successCont);return cont?cont[successCont](this[args],fiber):fiber.yieldWith(this)}}),failCause2=makeExit({op:"Failure",prop:"cause",eval(fiber){let cont=fiber.getCont(failureCont);while(causeIsInterrupt(this[args])&&cont&&fiber.interruptible)cont=fiber.getCont(failureCont);return cont?cont[failureCont](this[args],fiber):fiber.yieldWith(this)}});var yieldNowWith=makePrimitive({op:"Yield",eval(fiber){let resumed=!1;return fiber.getRef(CurrentScheduler).scheduleTask(()=>{if(resumed)return;fiber.evaluate(exitVoid2)},this[args]??0),fiber.yieldWith(()=>{resumed=!0})}}),yieldNow2=yieldNowWith(0);var void_2=succeed2(void 0);var withMicroFiber=makePrimitive({op:"WithMicroFiber",eval(fiber){return this[args](fiber)}});var flatMap9=dual(2,(self,f)=>{let onSuccess=Object.create(OnSuccessProto);return onSuccess[args]=self,onSuccess[successCont]=f,onSuccess}),OnSuccessProto=makePrimitiveProto({op:"OnSuccess",eval(fiber){return fiber._stack.push(this),this[args]}});var isMicroExit=(u)=>hasProperty(u,MicroExitTypeId),exitSucceed2=succeed2,exitFailCause2=failCause2,exitInterrupt2=exitFailCause2(causeInterrupt());var exitDie2=(defect)=>exitFailCause2(causeDie(defect));var exitVoid2=exitSucceed2(void 0);var setImmediate2="setImmediate"in globalThis?globalThis.setImmediate:(f)=>setTimeout(f,0);class MicroSchedulerDefault{tasks=[];running=!1;scheduleTask(task,_priority){if(this.tasks.push(task),!this.running)this.running=!0,setImmediate2(this.afterScheduled)}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){let tasks=this.tasks;this.tasks=[];for(let i=0,len=tasks.length;i<len;i++)tasks[i]()}shouldYield(fiber){return fiber.currentOpCount>=fiber.getRef(MaxOpsBeforeYield)}flush(){while(this.tasks.length>0)this.runTasks()}}var updateContext=dual(2,(self,f)=>withMicroFiber((fiber)=>{let prev=fiber.context;return fiber.context=f(prev),onExit2(self,()=>{return fiber.context=prev,void_2})}));var provideContext2=dual(2,(self,provided)=>updateContext(self,merge3(provided)));class MaxOpsBeforeYield extends Reference2()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048}){}class CurrentScheduler extends Reference2()("effect/Micro/currentScheduler",{defaultValue:()=>new MicroSchedulerDefault}){}var matchCauseEffect2=dual(2,(self,options)=>{let primitive=Object.create(OnSuccessAndFailureProto);return primitive[args]=self,primitive[successCont]=options.onSuccess,primitive[failureCont]=options.onFailure,primitive}),OnSuccessAndFailureProto=makePrimitiveProto({op:"OnSuccessAndFailure",eval(fiber){return fiber._stack.push(this),this[args]}});var onExit2=dual(2,(self,f)=>uninterruptibleMask2((restore)=>matchCauseEffect2(restore(self),{onFailure:(cause)=>flatMap9(f(exitFailCause2(cause)),()=>failCause2(cause)),onSuccess:(a)=>flatMap9(f(exitSucceed2(a)),()=>succeed2(a))})));var setInterruptible=makePrimitive({op:"SetInterruptible",ensure(fiber){if(fiber.interruptible=this[args],fiber._interrupted&&fiber.interruptible)return()=>exitInterrupt2}}),interruptible3=(self)=>withMicroFiber((fiber)=>{if(fiber.interruptible)return self;if(fiber.interruptible=!0,fiber._stack.push(setInterruptible(!1)),fiber._interrupted)return exitInterrupt2;return self}),uninterruptibleMask2=(f)=>withMicroFiber((fiber)=>{if(!fiber.interruptible)return f(identity);return fiber.interruptible=!1,fiber._stack.push(setInterruptible(!0)),f(interruptible3)});var runFork=(effect,options)=>{let fiber=new MicroFiberImpl(CurrentScheduler.context(options?.scheduler??new MicroSchedulerDefault));if(fiber.evaluate(effect),options?.signal)if(options.signal.aborted)fiber.unsafeInterrupt();else{let abort=()=>fiber.unsafeInterrupt();options.signal.addEventListener("abort",abort,{once:!0}),fiber.addObserver(()=>options.signal.removeEventListener("abort",abort))}return fiber};var TypeId10=Symbol.for("effect/Readable");var Proto={[TypeId10]:TypeId10,pipe(){return pipeArguments(this,arguments)}};var RefTypeId=Symbol.for("effect/Ref"),refVariance={_A:(_)=>_};class RefImpl extends Class{ref;commit(){return this.get}[RefTypeId]=refVariance;[TypeId10]=TypeId10;constructor(ref){super();this.ref=ref,this.get=sync(()=>get6(this.ref))}get;modify(f){return sync(()=>{let current=get6(this.ref),[b,a]=f(current);if(current!==a)set2(a)(this.ref);return b})}}var unsafeMake5=(value)=>new RefImpl(make11(value)),make23=(value)=>sync(()=>unsafeMake5(value)),get10=(self)=>self.get,set4=dual(2,(self,value)=>self.modify(()=>[void 0,value])),getAndSet=dual(2,(self,value)=>self.modify((a)=>[a,value]));var modify3=dual(2,(self,f)=>self.modify(f));var update2=dual(2,(self,f)=>self.modify((a)=>[void 0,f(a)]));var make24=make23,get11=get10,getAndSet2=getAndSet;var modify4=modify3;var set5=set4;var update3=update2;class PriorityBuckets{buckets=[];scheduleTask(task,priority){let length=this.buckets.length,bucket=void 0,index=0;for(;index<length;index++)if(this.buckets[index][0]<=priority)bucket=this.buckets[index];else break;if(bucket&&bucket[0]===priority)bucket[1].push(task);else if(index===length)this.buckets.push([priority,[task]]);else this.buckets.splice(index,0,[priority,[task]])}}class MixedScheduler{maxNextTickBeforeTimer;running=!1;tasks=new PriorityBuckets;constructor(maxNextTickBeforeTimer){this.maxNextTickBeforeTimer=maxNextTickBeforeTimer}starveInternal(depth){let tasks=this.tasks.buckets;this.tasks.buckets=[];for(let[_,toRun]of tasks)for(let i=0;i<toRun.length;i++)toRun[i]();if(this.tasks.buckets.length===0)this.running=!1;else this.starve(depth)}starve(depth=0){if(depth>=this.maxNextTickBeforeTimer)setTimeout(()=>this.starveInternal(0),0);else Promise.resolve(void 0).then(()=>this.starveInternal(depth+1))}shouldYield(fiber){return fiber.currentOpCount>fiber.getFiberRef(currentMaxOpsBeforeYield)?fiber.getFiberRef(currentSchedulingPriority):!1}scheduleTask(task,priority){if(this.tasks.scheduleTask(task,priority),!this.running)this.running=!0,this.starve()}}var defaultScheduler=globalValue(Symbol.for("effect/Scheduler/defaultScheduler"),()=>new MixedScheduler(2048));class SyncScheduler{tasks=new PriorityBuckets;deferred=!1;scheduleTask(task,priority){if(this.deferred)defaultScheduler.scheduleTask(task,priority);else this.tasks.scheduleTask(task,priority)}shouldYield(fiber){return fiber.currentOpCount>fiber.getFiberRef(currentMaxOpsBeforeYield)?fiber.getFiberRef(currentSchedulingPriority):!1}flush(){while(this.tasks.buckets.length>0){let tasks=this.tasks.buckets;this.tasks.buckets=[];for(let[_,toRun]of tasks)for(let i=0;i<toRun.length;i++)toRun[i]()}this.deferred=!0}}var currentScheduler=globalValue(Symbol.for("effect/FiberRef/currentScheduler"),()=>fiberRefUnsafeMake(defaultScheduler)),withScheduler=dual(2,(self,scheduler)=>fiberRefLocally(self,currentScheduler,scheduler));var currentRequestMap=globalValue(Symbol.for("effect/FiberRef/currentRequestMap"),()=>fiberRefUnsafeMake(new Map));var match7=(concurrency,sequential4,unbounded,bounded)=>{switch(concurrency){case void 0:return sequential4();case"unbounded":return unbounded();case"inherit":return fiberRefGetWith(currentConcurrency,(concurrency2)=>concurrency2==="unbounded"?unbounded():concurrency2>1?bounded(concurrency2):sequential4());default:return concurrency>1?bounded(concurrency):sequential4()}},matchSimple=(concurrency,sequential4,concurrent)=>{switch(concurrency){case void 0:return sequential4();case"unbounded":return concurrent();case"inherit":return fiberRefGetWith(currentConcurrency,(concurrency2)=>concurrency2==="unbounded"||concurrency2>1?concurrent():sequential4());default:return concurrency>1?concurrent():sequential4()}};var sleep2=sleep,currentTimeMillis2=currentTimeMillis,currentTimeNanos2=currentTimeNanos,clockWith2=clockWith,Clock=clockTag;var make25=(label,startTime)=>({label,startTime}),formatLabel=(key)=>key.replace(/[\s="]/g,"_"),render=(now)=>(self)=>{return`${formatLabel(self.label)}=${now-self.startTime}ms`};var make26=make25;var tracerWith2=tracerWith;var MetricLabelSymbolKey="effect/MetricLabel",MetricLabelTypeId=Symbol.for(MetricLabelSymbolKey);class MetricLabelImpl{key;value;[MetricLabelTypeId]=MetricLabelTypeId;_hash;constructor(key,value){this.key=key,this.value=value,this._hash=string(MetricLabelSymbolKey+this.key+this.value)}[symbol](){return this._hash}[symbol2](that){return isMetricLabel(that)&&this.key===that.key&&this.value===that.value}pipe(){return pipeArguments(this,arguments)}}var make27=(key,value)=>{return new MetricLabelImpl(key,value)},isMetricLabel=(u)=>hasProperty(u,MetricLabelTypeId);var annotateLogs=dual((args2)=>isEffect(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith(args2[0],currentLogAnnotations,typeof args2[1]==="string"?set3(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),asSome=(self)=>map10(self,some2),asSomeError=(self)=>mapError(self,some2),try_2=(arg)=>{let evaluate2,onFailure=void 0;if(typeof arg==="function")evaluate2=arg;else evaluate2=arg.try,onFailure=arg.catch;return suspend(()=>{try{return succeed(internalCall(evaluate2))}catch(error){return fail2(onFailure?internalCall(()=>onFailure(error)):new UnknownException(error,"An unknown error occurred in Effect.try"))}})},_catch=dual(3,(self,tag,options)=>catchAll(self,(e)=>{if(hasProperty(e,tag)&&e[tag]===options.failure)return options.onFailure(e);return fail2(e)})),catchAllDefect=dual(2,(self,f)=>catchAllCause(self,(cause)=>{let option=find(cause,(_)=>isDieType(_)?some2(_):none2());switch(option._tag){case"None":return failCause(cause);case"Some":return f(option.value.defect)}})),catchSomeCause=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause)=>{let option=f(cause);switch(option._tag){case"None":return failCause(cause);case"Some":return option.value}},onSuccess:succeed})),catchSomeDefect=dual(2,(self,pf)=>catchAllCause(self,(cause)=>{let option=find(cause,(_)=>isDieType(_)?some2(_):none2());switch(option._tag){case"None":return failCause(cause);case"Some":{let optionEffect=pf(option.value.defect);return optionEffect._tag==="Some"?optionEffect.value:failCause(cause)}}})),catchTag=dual((args2)=>isEffect(args2[0]),(self,...args2)=>{let f=args2[args2.length-1],predicate;if(args2.length===2)predicate=isTagged(args2[0]);else predicate=(e)=>{let tag=hasProperty(e,"_tag")?e._tag:void 0;if(!tag)return!1;for(let i=0;i<args2.length-1;i++)if(args2[i]===tag)return!0;return!1};return catchIf(self,predicate,f)}),catchTags=dual(2,(self,cases)=>{let keys3;return catchIf(self,(e)=>{return keys3??=Object.keys(cases),hasProperty(e,"_tag")&&isString(e._tag)&&keys3.includes(e._tag)},(e)=>cases[e._tag](e))}),cause=(self)=>matchCause(self,{onFailure:identity,onSuccess:()=>empty6}),clockWith3=clockWith2,clock=clockWith3(succeed),delay=dual(2,(self,duration)=>zipRight(sleep2(duration),self)),descriptorWith=(f)=>withFiberRuntime((state,status)=>f({id:state.id(),status,interruptors:interruptors(state.getFiberRef(currentInterruptedCause))})),allowInterrupt=descriptorWith((descriptor)=>size3(descriptor.interruptors)>0?interrupt2:void_),descriptor=descriptorWith(succeed),diffFiberRefs=(self)=>summarized(self,fiberRefs2,diff5),diffFiberRefsAndRuntimeFlags=(self)=>summarized(self,zip2(fiberRefs2,runtimeFlags),([refs,flags],[refsNew,flagsNew])=>[diff5(refs,refsNew),diff4(flags,flagsNew)]),Do=succeed({}),bind2=bind(map10,flatMap8),bindTo2=bindTo(map10),let_2=let_(map10),dropUntil=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next2,dropping=succeed(!1),i=0;while((next2=iterator.next())&&!next2.done){let a=next2.value,index=i++;dropping=flatMap8(dropping,(bool)=>{if(bool)return builder.push(a),succeed(!0);return predicate(a,index)})}return map10(dropping,()=>builder)})),dropWhile2=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next2,dropping=succeed(!0),i=0;while((next2=iterator.next())&&!next2.done){let a=next2.value,index=i++;dropping=flatMap8(dropping,(d)=>map10(d?predicate(a,index):succeed(!1),(b)=>{if(!b)builder.push(a);return b}))}return map10(dropping,()=>builder)})),contextWith=(f)=>map10(context(),f),eventually=(self)=>orElse2(self,()=>flatMap8(yieldNow(),()=>eventually(self))),filterMap4=dual(2,(elements,pf)=>map10(forEachSequential(elements,identity),filterMap(pf))),filterOrDie=dual(3,(self,predicate,orDieWith2)=>filterOrElse(self,predicate,(a)=>dieSync(()=>orDieWith2(a)))),filterOrDieMessage=dual(3,(self,predicate,message)=>filterOrElse(self,predicate,()=>dieMessage(message))),filterOrElse=dual(3,(self,predicate,orElse3)=>flatMap8(self,(a)=>predicate(a)?succeed(a):orElse3(a))),liftPredicate2=dual(3,(self,predicate,orFailWith)=>suspend(()=>predicate(self)?succeed(self):fail2(orFailWith(self)))),filterOrFail=dual((args2)=>isEffect(args2[0]),(self,predicate,orFailWith)=>filterOrElse(self,predicate,(a)=>orFailWith===void 0?fail2(new NoSuchElementException):failSync(()=>orFailWith(a)))),findFirst5=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),next2=iterator.next();if(!next2.done)return findLoop(iterator,0,predicate,next2.value);return succeed(none2())})),findLoop=(iterator,index,f,value)=>flatMap8(f(value,index),(result)=>{if(result)return succeed(some2(value));let next2=iterator.next();if(!next2.done)return findLoop(iterator,index+1,f,next2.value);return succeed(none2())}),firstSuccessOf=(effects)=>suspend(()=>{let list=fromIterable2(effects);if(!isNonEmpty(list))return dieSync(()=>new IllegalArgumentException("Received an empty collection of effects"));return pipe(tailNonEmpty2(list),reduce(headNonEmpty2(list),(left3,right3)=>orElse2(left3,()=>right3)))}),flipWith=dual(2,(self,f)=>flip(f(flip(self)))),match8=dual(2,(self,options)=>matchEffect(self,{onFailure:(e)=>succeed(options.onFailure(e)),onSuccess:(a)=>succeed(options.onSuccess(a))})),every5=dual(2,(elements,predicate)=>suspend(()=>forAllLoop(elements[Symbol.iterator](),0,predicate))),forAllLoop=(iterator,index,f)=>{let next2=iterator.next();return next2.done?succeed(!0):flatMap8(f(next2.value,index),(b)=>b?forAllLoop(iterator,index+1,f):succeed(b))},forever=(self)=>{let loop=flatMap8(flatMap8(self,()=>yieldNow()),()=>loop);return loop},fiberRefs2=withFiberRuntime((state)=>succeed(state.getFiberRefs())),head3=(self)=>flatMap8(self,(as3)=>{let next2=as3[Symbol.iterator]().next();if(next2.done)return fail2(new NoSuchElementException);return succeed(next2.value)}),ignore=(self)=>match8(self,{onFailure:constVoid,onSuccess:constVoid}),ignoreLogged=(self)=>matchCauseEffect(self,{onFailure:(cause2)=>logDebug(cause2,"An error was silently ignored because it is not anticipated to be useful"),onSuccess:()=>void_}),inheritFiberRefs=(childFiberRefs)=>updateFiberRefs((parentFiberId,parentFiberRefs)=>joinAs2(parentFiberRefs,parentFiberId,childFiberRefs)),isFailure2=(self)=>match8(self,{onFailure:constTrue,onSuccess:constFalse}),isSuccess=(self)=>match8(self,{onFailure:constFalse,onSuccess:constTrue}),iterate=(initial,options)=>suspend(()=>{if(options.while(initial))return flatMap8(options.body(initial),(z2)=>iterate(z2,options));return succeed(initial)}),logWithLevel=(level)=>(...message)=>{let levelOption=fromNullable(level),cause2=void 0;for(let i=0,len=message.length;i<len;i++){let msg=message[i];if(isCause(msg)){if(cause2!==void 0)cause2=sequential(cause2,msg);else cause2=msg;message=[...message.slice(0,i),...message.slice(i+1)],i--}}if(cause2===void 0)cause2=empty6;return withFiberRuntime((fiberState)=>{return fiberState.log(message,cause2,levelOption),void_})},log=logWithLevel(),logTrace=logWithLevel(Trace),logDebug=logWithLevel(Debug),logInfo=logWithLevel(Info),logWarning=logWithLevel(Warning),logError=logWithLevel(Error2),logFatal=logWithLevel(Fatal),withLogSpan=dual(2,(effect,label)=>flatMap8(currentTimeMillis2,(now)=>fiberRefLocallyWith(effect,currentLogSpan,prepend3(make26(label,now))))),logAnnotations=fiberRefGet(currentLogAnnotations),loop=(initial,options)=>options.discard?loopDiscard(initial,options.while,options.step,options.body):map10(loopInternal(initial,options.while,options.step,options.body),fromIterable),loopInternal=(initial,cont,inc,body)=>suspend(()=>cont(initial)?flatMap8(body(initial),(a)=>map10(loopInternal(inc(initial),cont,inc,body),prepend3(a))):sync(()=>empty10())),loopDiscard=(initial,cont,inc,body)=>suspend(()=>cont(initial)?flatMap8(body(initial),()=>loopDiscard(inc(initial),cont,inc,body)):void_),mapAccum3=dual(3,(elements,initial,f)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],result=succeed(initial),next2,i=0;while(!(next2=iterator.next()).done){let index=i++,value=next2.value;result=flatMap8(result,(state)=>map10(f(state,value,index),([z,b])=>{return builder.push(b),z}))}return map10(result,(z)=>[z,builder])})),mapErrorCause=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(c)=>failCauseSync(()=>f(c)),onSuccess:succeed})),memoize=(self)=>pipe(deferredMake(),flatMap8((deferred)=>pipe(diffFiberRefsAndRuntimeFlags(self),intoDeferred(deferred),once,map10((complete)=>zipRight(complete,pipe(deferredAwait(deferred),flatMap8(([patch8,a])=>as(zip2(patchFiberRefs(patch8[0]),updateRuntimeFlags(patch8[1])),a)))))))),merge5=(self)=>matchEffect(self,{onFailure:(e)=>succeed(e),onSuccess:succeed}),negate=(self)=>map10(self,(b)=>!b),none6=(self)=>flatMap8(self,(option)=>{switch(option._tag){case"None":return void_;case"Some":return fail2(new NoSuchElementException)}}),once=(self)=>map10(make24(!0),(ref)=>asVoid(whenEffect(self,getAndSet2(ref,!1)))),option=(self)=>matchEffect(self,{onFailure:()=>succeed(none2()),onSuccess:(a)=>succeed(some2(a))}),orElseFail=dual(2,(self,evaluate2)=>orElse2(self,()=>failSync(evaluate2))),orElseSucceed=dual(2,(self,evaluate2)=>orElse2(self,()=>sync(evaluate2))),parallelErrors=(self)=>matchCauseEffect(self,{onFailure:(cause2)=>{let errors=fromIterable(failures(cause2));return errors.length===0?failCause(cause2):fail2(errors)},onSuccess:succeed}),patchFiberRefs=(patch8)=>updateFiberRefs((fiberId2,fiberRefs3)=>pipe(patch8,patch6(fiberId2,fiberRefs3))),promise=(evaluate2)=>evaluate2.length>=1?async_((resolve,signal)=>{try{evaluate2(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}):async_((resolve)=>{try{evaluate2().then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}),provideService=dual(3,(self,tag,service)=>contextWithEffect((env)=>provideContext(self,add4(env,tag,service)))),provideServiceEffect=dual(3,(self,tag,effect)=>contextWithEffect((env)=>flatMap8(effect,(service)=>provideContext(self,pipe(env,add4(tag,service)))))),random2=randomWith(succeed),reduce9=dual(3,(elements,zero2,f)=>fromIterable(elements).reduce((acc,el,i)=>flatMap8(acc,(a)=>f(a,el,i)),succeed(zero2))),reduceRight3=dual(3,(elements,zero2,f)=>fromIterable(elements).reduceRight((acc,el,i)=>flatMap8(acc,(a)=>f(el,a,i)),succeed(zero2))),reduceWhile=dual(3,(elements,zero2,options)=>flatMap8(sync(()=>elements[Symbol.iterator]()),(iterator)=>reduceWhileLoop(iterator,0,zero2,options.while,options.body))),reduceWhileLoop=(iterator,index,state,predicate,f)=>{let next2=iterator.next();if(!next2.done&&predicate(state))return flatMap8(f(state,next2.value,index),(nextState)=>reduceWhileLoop(iterator,index+1,nextState,predicate,f));return succeed(state)},repeatN=dual(2,(self,n)=>suspend(()=>repeatNLoop(self,n))),repeatNLoop=(self,n)=>flatMap8(self,(a)=>n<=0?succeed(a):zipRight(yieldNow(),repeatNLoop(self,n-1))),sandbox=(self)=>matchCauseEffect(self,{onFailure:fail2,onSuccess:succeed}),setFiberRefs=(fiberRefs3)=>suspend(()=>setAll2(fiberRefs3)),sleep3=sleep2,succeedNone=succeed(none2()),succeedSome=(value)=>succeed(some2(value)),summarized=dual(3,(self,summary,f)=>flatMap8(summary,(start)=>flatMap8(self,(value)=>map10(summary,(end)=>[f(start,end),value])))),tagMetrics=dual((args2)=>isEffect(args2[0]),function(){return labelMetrics(arguments[0],typeof arguments[1]==="string"?[make27(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([k,v])=>make27(k,v)))}),labelMetrics=dual(2,(self,labels)=>fiberRefLocallyWith(self,currentMetricLabels,(old)=>union(old,labels))),takeUntil=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next2,effect=succeed(!1),i=0;while((next2=iterator.next())&&!next2.done){let a=next2.value,index=i++;effect=flatMap8(effect,(bool)=>{if(bool)return succeed(!0);return builder.push(a),predicate(a,index)})}return map10(effect,()=>builder)})),takeWhile2=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next2,taking=succeed(!0),i=0;while((next2=iterator.next())&&!next2.done){let a=next2.value,index=i++;taking=flatMap8(taking,(taking2)=>pipe(taking2?predicate(a,index):succeed(!1),map10((bool)=>{if(bool)builder.push(a);return bool})))}return map10(taking,()=>builder)})),tapBoth=dual(2,(self,{onFailure,onSuccess})=>matchCauseEffect(self,{onFailure:(cause2)=>{let either3=failureOrCause(cause2);switch(either3._tag){case"Left":return zipRight(onFailure(either3.left),failCause(cause2));case"Right":return failCause(cause2)}},onSuccess:(a)=>as(onSuccess(a),a)})),tapDefect=dual(2,(self,f)=>catchAllCause(self,(cause2)=>match2(keepDefects(cause2),{onNone:()=>failCause(cause2),onSome:(a)=>zipRight(f(a),failCause(cause2))}))),tapError=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause2)=>{let either3=failureOrCause(cause2);switch(either3._tag){case"Left":return zipRight(f(either3.left),failCause(cause2));case"Right":return failCause(cause2)}},onSuccess:succeed})),tapErrorTag=dual(3,(self,k,f)=>tapError(self,(e)=>{if(isTagged(e,k))return f(e);return void_})),tapErrorCause=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause2)=>zipRight(f(cause2),failCause(cause2)),onSuccess:succeed})),timed=(self)=>timedWith(self,currentTimeNanos2),timedWith=dual(2,(self,nanos2)=>summarized(self,nanos2,(start,end)=>nanos(end-start))),tracerWith3=tracerWith2,tracer=tracerWith3(succeed),tryPromise=(arg)=>{let evaluate2,catcher=void 0;if(typeof arg==="function")evaluate2=arg;else evaluate2=arg.try,catcher=arg.catch;let fail4=(e)=>catcher?failSync(()=>catcher(e)):fail2(new UnknownException(e,"An unknown error occurred in Effect.tryPromise"));if(evaluate2.length>=1)return async_((resolve,signal)=>{try{evaluate2(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(fail4(e)))}catch(e){resolve(fail4(e))}});return async_((resolve)=>{try{evaluate2().then((a)=>resolve(succeed(a)),(e)=>resolve(fail4(e)))}catch(e){resolve(fail4(e))}})},tryMap=dual(2,(self,options)=>flatMap8(self,(a)=>try_2({try:()=>options.try(a),catch:options.catch}))),tryMapPromise=dual(2,(self,options)=>flatMap8(self,(a)=>tryPromise({try:options.try.length>=1?(signal)=>options.try(a,signal):()=>options.try(a),catch:options.catch}))),unless=dual(2,(self,condition)=>suspend(()=>condition()?succeedNone:asSome(self))),unlessEffect=dual(2,(self,condition)=>flatMap8(condition,(b)=>b?succeedNone:asSome(self))),unsandbox=(self)=>mapErrorCause(self,flatten3),updateFiberRefs=(f)=>withFiberRuntime((state)=>{return state.setFiberRefs(f(state.id(),state.getFiberRefs())),void_}),updateService=dual(3,(self,tag,f)=>mapInputContext(self,(context2)=>add4(context2,tag,f(unsafeGet4(context2,tag))))),when=dual(2,(self,condition)=>suspend(()=>condition()?map10(self,some2):succeed(none2()))),whenFiberRef=dual(3,(self,fiberRef,predicate)=>flatMap8(fiberRefGet(fiberRef),(s)=>predicate(s)?map10(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),whenRef=dual(3,(self,ref,predicate)=>flatMap8(get11(ref),(s)=>predicate(s)?map10(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),withMetric=dual(2,(self,metric)=>metric(self)),serviceFunctionEffect=(getService,f)=>(...args2)=>flatMap8(getService,(a)=>f(a)(...args2)),serviceFunction=(getService,f)=>(...args2)=>map10(getService,(a)=>f(a)(...args2)),serviceFunctions=(getService)=>new Proxy({},{get(_target,prop,_receiver){return(...args2)=>flatMap8(getService,(s)=>s[prop](...args2))}}),serviceConstants=(getService)=>new Proxy({},{get(_target,prop,_receiver){return flatMap8(getService,(s)=>isEffect(s[prop])?s[prop]:succeed(s[prop]))}}),serviceMembers=(getService)=>({functions:serviceFunctions(getService),constants:serviceConstants(getService)}),serviceOption=(tag)=>map10(context(),getOption2(tag)),serviceOptional=(tag)=>flatMap8(context(),getOption2(tag)),annotateCurrentSpan=function(){let args2=arguments;return ignore(flatMap8(currentSpan,(span2)=>sync(()=>{if(typeof args2[0]==="string")span2.attribute(args2[0],args2[1]);else for(let key in args2[0])span2.attribute(key,args2[0][key])})))},linkSpanCurrent=function(){let args2=arguments,links=Array.isArray(args2[0])?args2[0]:[{_tag:"SpanLink",span:args2[0],attributes:args2[1]??{}}];return ignore(flatMap8(currentSpan,(span2)=>sync(()=>span2.addLinks(links))))},annotateSpans=dual((args2)=>isEffect(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith(args2[0],currentTracerSpanAnnotations,typeof args2[1]==="string"?set3(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),currentParentSpan=serviceOptional(spanTag),currentSpan=flatMap8(context(),(context2)=>{let span2=context2.unsafeMap.get(spanTag.key);return span2!==void 0&&span2._tag==="Span"?succeed(span2):fail2(new NoSuchElementException)}),linkSpans=dual((args2)=>isEffect(args2[0]),(self,span2,attributes)=>fiberRefLocallyWith(self,currentTracerSpanLinks,append2({_tag:"SpanLink",span:span2,attributes:attributes??{}}))),bigint02=BigInt(0),filterDisablePropagation=flatMap((span2)=>get5(span2.context,DisablePropagation)?span2._tag==="Span"?filterDisablePropagation(span2.parent):none2():some2(span2)),unsafeMakeSpan=(fiber,name,options)=>{let disablePropagation=!fiber.getFiberRef(currentTracerEnabled)||options.context&&get5(options.context,DisablePropagation),context2=fiber.getFiberRef(currentContext),parent=options.parent?some2(options.parent):options.root?none2():filterDisablePropagation(getOption2(context2,spanTag)),span2;if(disablePropagation)span2=noopSpan({name,parent,context:add4(options.context??empty8(),DisablePropagation,!0)});else{let services=fiber.getFiberRef(currentServices),tracer2=get5(services,tracerTag),clock2=get5(services,Clock),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),fiberRefs3=fiber.getFiberRefs(),annotationsFromEnv=get9(fiberRefs3,currentTracerSpanAnnotations),linksFromEnv=get9(fiberRefs3,currentTracerSpanLinks),links=linksFromEnv._tag==="Some"?options.links!==void 0?[...toReadonlyArray(linksFromEnv.value),...options.links??[]]:toReadonlyArray(linksFromEnv.value):options.links??empty();if(span2=tracer2.span(name,parent,options.context??empty8(),links,timingEnabled?clock2.unsafeCurrentTimeNanos():bigint02,options.kind??"internal",options),annotationsFromEnv._tag==="Some")forEach4(annotationsFromEnv.value,(value,key)=>span2.attribute(key,value));if(options.attributes!==void 0)Object.entries(options.attributes).forEach(([k,v])=>span2.attribute(k,v))}if(typeof options.captureStackTrace==="function")spanToTrace.set(span2,options.captureStackTrace);return span2},makeSpan=(name,options)=>{return options=addSpanStackTrace(options),withFiberRuntime((fiber)=>succeed(unsafeMakeSpan(fiber,name,options)))},spanAnnotations=fiberRefGet(currentTracerSpanAnnotations),spanLinks=fiberRefGet(currentTracerSpanLinks),endSpan=(span2,exit2,clock2,timingEnabled)=>sync(()=>{if(span2.status._tag==="Ended")return;if(exitIsFailure(exit2)&&spanToTrace.has(span2))span2.attribute("code.stacktrace",spanToTrace.get(span2)());span2.end(timingEnabled?clock2.unsafeCurrentTimeNanos():bigint02,exit2)}),useSpan=(name,...args2)=>{let options=addSpanStackTrace(args2.length===1?void 0:args2[0]),evaluate2=args2[args2.length-1];return withFiberRuntime((fiber)=>{let span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock2=get5(fiber.getFiberRef(currentServices),clockTag);return onExit(evaluate2(span2),(exit2)=>endSpan(span2,exit2,clock2,timingEnabled))})},withParentSpan=dual(2,(self,span2)=>provideService(self,spanTag,span2)),withSpan=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return useSpan(name,options,(span2)=>withParentSpan(self,span2))}return(self)=>useSpan(name,options,(span2)=>withParentSpan(self,span2))},functionWithSpan=(options)=>function(){let captureStackTrace=options.captureStackTrace??!1;if(options.captureStackTrace!==!1){let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let error=Error();Error.stackTraceLimit=limit;let cache=!1;captureStackTrace=()=>{if(cache!==!1)return cache;if(error.stack)return cache=error.stack.trim().split(`
30
+ `).slice(2).join(`
31
+ `).trim(),cache}}return suspend(()=>{let opts=typeof options.options==="function"?options.options.apply(null,arguments):options.options;return withSpan(suspend(()=>internalCall(()=>options.body.apply(this,arguments))),opts.name,{...opts,captureStackTrace})})},fromNullable2=(value)=>value==null?fail2(new NoSuchElementException):succeed(value),optionFromOptional=(self)=>catchAll(map10(self,some2),(error)=>isNoSuchElementException(error)?succeedNone:fail2(error));var isExit=exitIsExit,isFailure3=exitIsFailure,isSuccess2=exitIsSuccess;var all3=exitCollectAll,die4=exitDie;var fail4=exitFail,failCause3=exitFailCause;var flatten6=exitFlatten;var interrupt4=exitInterrupt,map12=exitMap,mapBoth2=exitMapBoth;var match9=exitMatch;var succeed3=exitSucceed,void_3=exitVoid;var zip3=exitZip;var zipRight2=exitZipRight;var OP_INTERRUPT_SIGNAL="InterruptSignal",OP_STATEFUL="Stateful",OP_RESUME="Resume",OP_YIELD_NOW="YieldNow",interruptSignal=(cause2)=>({_tag:"InterruptSignal",cause:cause2}),stateful=(onFiber)=>({_tag:"Stateful",onFiber}),resume=(effect)=>({_tag:"Resume",effect}),yieldNow3=()=>({_tag:"YieldNow"});var FiberScopeSymbolKey="effect/FiberScope",FiberScopeTypeId=Symbol.for(FiberScopeSymbolKey);class Global{[FiberScopeTypeId]=FiberScopeTypeId;fiberId=none4;roots=new Set;add(_runtimeFlags,child){this.roots.add(child),child.addObserver(()=>{this.roots.delete(child)})}}class Local{fiberId;parent;[FiberScopeTypeId]=FiberScopeTypeId;constructor(fiberId2,parent){this.fiberId=fiberId2,this.parent=parent}add(_runtimeFlags,child){this.parent.tell(stateful((parentFiber)=>{parentFiber.addChild(child),child.addObserver(()=>{parentFiber.removeChild(child)})}))}}var unsafeMake6=(fiber)=>{return new Local(fiber.id(),fiber)},globalScope=globalValue(Symbol.for("effect/FiberScope/Global"),()=>new Global);var FiberSymbolKey="effect/Fiber",FiberTypeId=Symbol.for(FiberSymbolKey),fiberVariance2={_E:(_)=>_,_A:(_)=>_},fiberProto={[FiberTypeId]:fiberVariance2,pipe(){return pipeArguments(this,arguments)}},RuntimeFiberSymbolKey="effect/Fiber",RuntimeFiberTypeId=Symbol.for(RuntimeFiberSymbolKey);var isRuntimeFiber=(self)=>(RuntimeFiberTypeId in self),_await=(self)=>self.await;var inheritAll=(self)=>self.inheritAll;var interruptAllAs=dual(2,fnUntraced(function*(fibers,fiberId2){for(let fiber of fibers){if(isRuntimeFiber(fiber)){fiber.unsafeInterruptAsFork(fiberId2);continue}yield*fiber.interruptAsFork(fiberId2)}for(let fiber of fibers){if(isRuntimeFiber(fiber)&&fiber.unsafePoll())continue;yield*fiber.await}})),interruptAsFork=dual(2,(self,fiberId2)=>self.interruptAsFork(fiberId2)),join2=(self)=>zipLeft(flatten5(self.await),self.inheritAll);var _never={...CommitPrototype,commit(){return join2(this)},...fiberProto,id:()=>none4,await:never,children:succeed([]),inheritAll:never,poll:succeed(none2()),interruptAsFork:()=>never};var poll=(self)=>self.poll;var currentFiberURI="effect/FiberCurrent";var LoggerSymbolKey="effect/Logger",LoggerTypeId=Symbol.for(LoggerSymbolKey),loggerVariance={_Message:(_)=>_,_Output:(_)=>_},makeLogger=(log2)=>({[LoggerTypeId]:loggerVariance,log:log2,pipe(){return pipeArguments(this,arguments)}});var none7={[LoggerTypeId]:loggerVariance,log:constVoid,pipe(){return pipeArguments(this,arguments)}};var textOnly=/^[^\s"=]*$/,format3=(quoteValue,whitespace)=>({annotations,cause:cause2,date,fiberId:fiberId2,logLevel,message,spans})=>{let formatValue=(value)=>value.match(textOnly)?value:quoteValue(value),format4=(label,value)=>`${formatLabel(label)}=${formatValue(value)}`,append3=(label,value)=>" "+format4(label,value),out=format4("timestamp",date.toISOString());out+=append3("level",logLevel.label),out+=append3("fiber",threadName(fiberId2));let messages=ensure(message);for(let i=0;i<messages.length;i++)out+=append3("message",toStringUnknown(messages[i],whitespace));if(!isEmptyType(cause2))out+=append3("cause",pretty(cause2,{renderErrorCause:!0}));for(let span2 of spans)out+=" "+render(date.getTime())(span2);for(let[label,value]of annotations)out+=append3(label,toStringUnknown(value,whitespace));return out},escapeDoubleQuotes=(s)=>`"${s.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`,stringLogger=makeLogger(format3(escapeDoubleQuotes));var structuredMessage=(u)=>{switch(typeof u){case"bigint":case"function":case"symbol":return String(u);default:return toJSON(u)}};var withColor=(text,...colors)=>{let out="";for(let i=0;i<colors.length;i++)out+=`\x1B[${colors[i]}m`;return out+text+"\x1B[0m"},withColorNoop=(text,..._colors)=>text,colors={bold:"1",red:"31",green:"32",yellow:"33",blue:"34",cyan:"36",white:"37",gray:"90",black:"30",bgBrightRed:"101"},logLevelColors={None:[],All:[],Trace:[colors.gray],Debug:[colors.blue],Info:[colors.green],Warning:[colors.yellow],Error:[colors.red],Fatal:[colors.bgBrightRed,colors.black]},logLevelStyle={None:"",All:"",Trace:"color:gray",Debug:"color:blue",Info:"color:green",Warning:"color:orange",Error:"color:red",Fatal:"background-color:red;color:white"},defaultDateFormat=(date)=>`${date.getHours().toString().padStart(2,"0")}:${date.getMinutes().toString().padStart(2,"0")}:${date.getSeconds().toString().padStart(2,"0")}.${date.getMilliseconds().toString().padStart(3,"0")}`,hasProcessStdout=typeof process==="object"&&process!==null&&typeof process.stdout==="object"&&process.stdout!==null,processStdoutIsTTY=hasProcessStdout&&process.stdout.isTTY===!0,hasProcessStdoutOrDeno=hasProcessStdout||"Deno"in globalThis,prettyLogger=(options)=>{let mode_=options?.mode??"auto",isBrowser=(mode_==="auto"?hasProcessStdoutOrDeno?"tty":"browser":mode_)==="browser",showColors=typeof options?.colors==="boolean"?options.colors:processStdoutIsTTY||isBrowser,formatDate2=options?.formatDate??defaultDateFormat;return isBrowser?prettyLoggerBrowser({colors:showColors,formatDate:formatDate2}):prettyLoggerTty({colors:showColors,formatDate:formatDate2,stderr:options?.stderr===!0})},prettyLoggerTty=(options)=>{let color=options.colors?withColor:withColorNoop;return makeLogger(({annotations,cause:cause2,context:context2,date,fiberId:fiberId2,logLevel,message:message_,spans})=>{let services=getOrDefault2(context2,currentServices),console2=get5(services,consoleTag).unsafe,log2=options.stderr===!0?console2.error:console2.log,message=ensure(message_),firstLine=color(`[${options.formatDate(date)}]`,colors.white)+` ${color(logLevel.label,...logLevelColors[logLevel._tag])} (${threadName(fiberId2)})`;if(isCons(spans)){let now=date.getTime(),render2=render(now);for(let span2 of spans)firstLine+=" "+render2(span2)}firstLine+=":";let messageIndex=0;if(message.length>0){let firstMaybeString=structuredMessage(message[0]);if(typeof firstMaybeString==="string")firstLine+=" "+color(firstMaybeString,colors.bold,colors.cyan),messageIndex++}if(log2(firstLine),console2.group(),!isEmpty3(cause2))log2(pretty(cause2,{renderErrorCause:!0}));if(messageIndex<message.length)for(;messageIndex<message.length;messageIndex++)log2(redact(message[messageIndex]));if(size4(annotations)>0)for(let[key,value]of annotations)log2(color(`${key}:`,colors.bold,colors.white),redact(value));console2.groupEnd()})},prettyLoggerBrowser=(options)=>{let color=options.colors?"%c":"";return makeLogger(({annotations,cause:cause2,context:context2,date,fiberId:fiberId2,logLevel,message:message_,spans})=>{let services=getOrDefault2(context2,currentServices),console2=get5(services,consoleTag).unsafe,message=ensure(message_),firstLine=`${color}[${options.formatDate(date)}]`,firstParams=[];if(options.colors)firstParams.push("color:gray");if(firstLine+=` ${color}${logLevel.label}${color} (${threadName(fiberId2)})`,options.colors)firstParams.push(logLevelStyle[logLevel._tag],"");if(isCons(spans)){let now=date.getTime(),render2=render(now);for(let span2 of spans)firstLine+=" "+render2(span2)}firstLine+=":";let messageIndex=0;if(message.length>0){let firstMaybeString=structuredMessage(message[0]);if(typeof firstMaybeString==="string"){if(firstLine+=` ${color}${firstMaybeString}`,options.colors)firstParams.push("color:deepskyblue");messageIndex++}}if(console2.groupCollapsed(firstLine,...firstParams),!isEmpty3(cause2))console2.error(pretty(cause2,{renderErrorCause:!0}));if(messageIndex<message.length)for(;messageIndex<message.length;messageIndex++)console2.log(redact(message[messageIndex]));if(size4(annotations)>0)for(let[key,value]of annotations){let redacted=redact(value);if(options.colors)console2.log(`%c${key}:`,"color:gray",redacted);else console2.log(`${key}:`,redacted)}console2.groupEnd()})},prettyLoggerDefault=globalValue("effect/Logger/prettyLoggerDefault",()=>prettyLogger());var MetricBoundariesSymbolKey="effect/MetricBoundaries",MetricBoundariesTypeId=Symbol.for(MetricBoundariesSymbolKey);class MetricBoundariesImpl{values;[MetricBoundariesTypeId]=MetricBoundariesTypeId;constructor(values3){this.values=values3,this._hash=pipe(string(MetricBoundariesSymbolKey),combine(array2(this.values)))}_hash;[symbol](){return this._hash}[symbol2](u){return isMetricBoundaries(u)&&equals(this.values,u.values)}pipe(){return pipeArguments(this,arguments)}}var isMetricBoundaries=(u)=>hasProperty(u,MetricBoundariesTypeId),fromIterable7=(iterable)=>{let values3=pipe(iterable,appendAll(of2(Number.POSITIVE_INFINITY)),dedupe);return new MetricBoundariesImpl(values3)};var exponential=(options)=>pipe(makeBy(options.count-1,(i)=>options.start*Math.pow(options.factor,i)),unsafeFromArray,fromIterable7);var MetricKeyTypeSymbolKey="effect/MetricKeyType",MetricKeyTypeTypeId=Symbol.for(MetricKeyTypeSymbolKey),CounterKeyTypeSymbolKey="effect/MetricKeyType/Counter",CounterKeyTypeTypeId=Symbol.for(CounterKeyTypeSymbolKey),FrequencyKeyTypeSymbolKey="effect/MetricKeyType/Frequency",FrequencyKeyTypeTypeId=Symbol.for(FrequencyKeyTypeSymbolKey),GaugeKeyTypeSymbolKey="effect/MetricKeyType/Gauge",GaugeKeyTypeTypeId=Symbol.for(GaugeKeyTypeSymbolKey),HistogramKeyTypeSymbolKey="effect/MetricKeyType/Histogram",HistogramKeyTypeTypeId=Symbol.for(HistogramKeyTypeSymbolKey),SummaryKeyTypeSymbolKey="effect/MetricKeyType/Summary",SummaryKeyTypeTypeId=Symbol.for(SummaryKeyTypeSymbolKey),metricKeyTypeVariance={_In:(_)=>_,_Out:(_)=>_};class CounterKeyType{incremental;bigint;[MetricKeyTypeTypeId]=metricKeyTypeVariance;[CounterKeyTypeTypeId]=CounterKeyTypeTypeId;constructor(incremental,bigint){this.incremental=incremental,this.bigint=bigint,this._hash=string(CounterKeyTypeSymbolKey)}_hash;[symbol](){return this._hash}[symbol2](that){return isCounterKey(that)}pipe(){return pipeArguments(this,arguments)}}class HistogramKeyType{boundaries;[MetricKeyTypeTypeId]=metricKeyTypeVariance;[HistogramKeyTypeTypeId]=HistogramKeyTypeTypeId;constructor(boundaries){this.boundaries=boundaries,this._hash=pipe(string(HistogramKeyTypeSymbolKey),combine(hash(this.boundaries)))}_hash;[symbol](){return this._hash}[symbol2](that){return isHistogramKey(that)&&equals(this.boundaries,that.boundaries)}pipe(){return pipeArguments(this,arguments)}}var counter=(options)=>new CounterKeyType(options?.incremental??!1,options?.bigint??!1);var histogram=(boundaries)=>{return new HistogramKeyType(boundaries)};var isCounterKey=(u)=>hasProperty(u,CounterKeyTypeTypeId),isFrequencyKey=(u)=>hasProperty(u,FrequencyKeyTypeTypeId),isGaugeKey=(u)=>hasProperty(u,GaugeKeyTypeTypeId),isHistogramKey=(u)=>hasProperty(u,HistogramKeyTypeTypeId),isSummaryKey=(u)=>hasProperty(u,SummaryKeyTypeTypeId);var MetricKeySymbolKey="effect/MetricKey",MetricKeyTypeId=Symbol.for(MetricKeySymbolKey),metricKeyVariance={_Type:(_)=>_},arrayEquivilence=getEquivalence(equals);class MetricKeyImpl{name;keyType;description;tags;[MetricKeyTypeId]=metricKeyVariance;constructor(name,keyType,description,tags=[]){this.name=name,this.keyType=keyType,this.description=description,this.tags=tags,this._hash=pipe(string(this.name+this.description),combine(hash(this.keyType)),combine(array2(this.tags)))}_hash;[symbol](){return this._hash}[symbol2](u){return isMetricKey(u)&&this.name===u.name&&equals(this.keyType,u.keyType)&&equals(this.description,u.description)&&arrayEquivilence(this.tags,u.tags)}pipe(){return pipeArguments(this,arguments)}}var isMetricKey=(u)=>hasProperty(u,MetricKeyTypeId),counter2=(name,options)=>new MetricKeyImpl(name,counter(options),fromNullable(options?.description));var histogram2=(name,boundaries,description)=>new MetricKeyImpl(name,histogram(boundaries),fromNullable(description));var taggedWithLabels=dual(2,(self,extraTags)=>extraTags.length===0?self:new MetricKeyImpl(self.name,self.keyType,self.description,union(self.tags,extraTags)));var TypeId11=Symbol.for("effect/MutableHashMap"),MutableHashMapProto={[TypeId11]:TypeId11,[Symbol.iterator](){return new MutableHashMapIterator(this)},toString(){return format(this.toJSON())},toJSON(){return{_id:"MutableHashMap",values:Array.from(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}};class MutableHashMapIterator{self;referentialIterator;bucketIterator;constructor(self){this.self=self,this.referentialIterator=self.referential[Symbol.iterator]()}next(){if(this.bucketIterator!==void 0)return this.bucketIterator.next();let result=this.referentialIterator.next();if(result.done)return this.bucketIterator=new BucketIterator(this.self.buckets.values()),this.next();return result}[Symbol.iterator](){return new MutableHashMapIterator(this.self)}}class BucketIterator{backing;constructor(backing){this.backing=backing}currentBucket;next(){if(this.currentBucket===void 0){let result2=this.backing.next();if(result2.done)return result2;this.currentBucket=result2.value[Symbol.iterator]()}let result=this.currentBucket.next();if(result.done)return this.currentBucket=void 0,this.next();return result}}var empty21=()=>{let self=Object.create(MutableHashMapProto);return self.referential=new Map,self.buckets=new Map,self.bucketsSize=0,self};var get12=dual(2,(self,key)=>{if(isEqual(key)===!1)return self.referential.has(key)?some2(self.referential.get(key)):none2();let hash2=key[symbol](),bucket=self.buckets.get(hash2);if(bucket===void 0)return none2();return getFromBucket(self,bucket,key)});var getFromBucket=(self,bucket,key,remove5=!1)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol2](bucket[i][0])){let value=bucket[i][1];if(remove5)bucket.splice(i,1),self.bucketsSize--;return some2(value)}return none2()},has4=dual(2,(self,key)=>isSome2(get12(self,key))),set6=dual(3,(self,key,value)=>{if(isEqual(key)===!1)return self.referential.set(key,value),self;let hash2=key[symbol](),bucket=self.buckets.get(hash2);if(bucket===void 0)return self.buckets.set(hash2,[[key,value]]),self.bucketsSize++,self;return removeFromBucket(self,bucket,key),bucket.push([key,value]),self.bucketsSize++,self}),removeFromBucket=(self,bucket,key)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol2](bucket[i][0])){bucket.splice(i,1),self.bucketsSize--;return}};var remove5=dual(2,(self,key)=>{if(isEqual(key)===!1)return self.referential.delete(key),self;let hash2=key[symbol](),bucket=self.buckets.get(hash2);if(bucket===void 0)return self;if(removeFromBucket(self,bucket,key),bucket.length===0)self.buckets.delete(hash2);return self});var size6=(self)=>{return self.referential.size+self.bucketsSize};var MetricStateSymbolKey="effect/MetricState",MetricStateTypeId=Symbol.for(MetricStateSymbolKey),CounterStateSymbolKey="effect/MetricState/Counter",CounterStateTypeId=Symbol.for(CounterStateSymbolKey),FrequencyStateSymbolKey="effect/MetricState/Frequency",FrequencyStateTypeId=Symbol.for(FrequencyStateSymbolKey),GaugeStateSymbolKey="effect/MetricState/Gauge",GaugeStateTypeId=Symbol.for(GaugeStateSymbolKey),HistogramStateSymbolKey="effect/MetricState/Histogram",HistogramStateTypeId=Symbol.for(HistogramStateSymbolKey),SummaryStateSymbolKey="effect/MetricState/Summary",SummaryStateTypeId=Symbol.for(SummaryStateSymbolKey),metricStateVariance={_A:(_)=>_};class CounterState{count;[MetricStateTypeId]=metricStateVariance;[CounterStateTypeId]=CounterStateTypeId;constructor(count){this.count=count}[symbol](){return pipe(hash(CounterStateSymbolKey),combine(hash(this.count)),cached(this))}[symbol2](that){return isCounterState(that)&&this.count===that.count}pipe(){return pipeArguments(this,arguments)}}var arrayEquals=getEquivalence(equals);class FrequencyState{occurrences;[MetricStateTypeId]=metricStateVariance;[FrequencyStateTypeId]=FrequencyStateTypeId;constructor(occurrences){this.occurrences=occurrences}_hash;[symbol](){return pipe(string(FrequencyStateSymbolKey),combine(array2(fromIterable(this.occurrences.entries()))),cached(this))}[symbol2](that){return isFrequencyState(that)&&arrayEquals(fromIterable(this.occurrences.entries()),fromIterable(that.occurrences.entries()))}pipe(){return pipeArguments(this,arguments)}}class GaugeState{value;[MetricStateTypeId]=metricStateVariance;[GaugeStateTypeId]=GaugeStateTypeId;constructor(value){this.value=value}[symbol](){return pipe(hash(GaugeStateSymbolKey),combine(hash(this.value)),cached(this))}[symbol2](u){return isGaugeState(u)&&this.value===u.value}pipe(){return pipeArguments(this,arguments)}}class HistogramState{buckets;count;min;max;sum;[MetricStateTypeId]=metricStateVariance;[HistogramStateTypeId]=HistogramStateTypeId;constructor(buckets,count,min3,max3,sum2){this.buckets=buckets,this.count=count,this.min=min3,this.max=max3,this.sum=sum2}[symbol](){return pipe(hash(HistogramStateSymbolKey),combine(hash(this.buckets)),combine(hash(this.count)),combine(hash(this.min)),combine(hash(this.max)),combine(hash(this.sum)),cached(this))}[symbol2](that){return isHistogramState(that)&&equals(this.buckets,that.buckets)&&this.count===that.count&&this.min===that.min&&this.max===that.max&&this.sum===that.sum}pipe(){return pipeArguments(this,arguments)}}class SummaryState{error;quantiles;count;min;max;sum;[MetricStateTypeId]=metricStateVariance;[SummaryStateTypeId]=SummaryStateTypeId;constructor(error,quantiles,count,min3,max3,sum2){this.error=error,this.quantiles=quantiles,this.count=count,this.min=min3,this.max=max3,this.sum=sum2}[symbol](){return pipe(hash(SummaryStateSymbolKey),combine(hash(this.error)),combine(hash(this.quantiles)),combine(hash(this.count)),combine(hash(this.min)),combine(hash(this.max)),combine(hash(this.sum)),cached(this))}[symbol2](that){return isSummaryState(that)&&this.error===that.error&&equals(this.quantiles,that.quantiles)&&this.count===that.count&&this.min===that.min&&this.max===that.max&&this.sum===that.sum}pipe(){return pipeArguments(this,arguments)}}var counter3=(count)=>new CounterState(count),frequency2=(occurrences)=>{return new FrequencyState(occurrences)},gauge2=(count)=>new GaugeState(count),histogram3=(options)=>new HistogramState(options.buckets,options.count,options.min,options.max,options.sum),summary2=(options)=>new SummaryState(options.error,options.quantiles,options.count,options.min,options.max,options.sum);var isCounterState=(u)=>hasProperty(u,CounterStateTypeId),isFrequencyState=(u)=>hasProperty(u,FrequencyStateTypeId),isGaugeState=(u)=>hasProperty(u,GaugeStateTypeId),isHistogramState=(u)=>hasProperty(u,HistogramStateTypeId),isSummaryState=(u)=>hasProperty(u,SummaryStateTypeId);var MetricHookSymbolKey="effect/MetricHook",MetricHookTypeId=Symbol.for(MetricHookSymbolKey),metricHookVariance={_In:(_)=>_,_Out:(_)=>_},make28=(options)=>({[MetricHookTypeId]:metricHookVariance,pipe(){return pipeArguments(this,arguments)},...options});var bigint03=BigInt(0),counter4=(key)=>{let sum2=key.keyType.bigint?bigint03:0,canUpdate=key.keyType.incremental?key.keyType.bigint?(value)=>value>=bigint03:(value)=>value>=0:(_value)=>!0,update4=(value)=>{if(canUpdate(value))sum2=sum2+value};return make28({get:()=>counter3(sum2),update:update4,modify:update4})},frequency3=(key)=>{let values3=new Map;for(let word of key.keyType.preregisteredWords)values3.set(word,0);let update4=(word)=>{let slotCount=values3.get(word)??0;values3.set(word,slotCount+1)};return make28({get:()=>frequency2(values3),update:update4,modify:update4})},gauge3=(_key,startAt)=>{let value=startAt;return make28({get:()=>gauge2(value),update:(v)=>{value=v},modify:(v)=>{value=value+v}})},histogram4=(key)=>{let bounds=key.keyType.boundaries.values,size7=bounds.length,values3=new Uint32Array(size7+1),boundaries=new Float64Array(size7),count=0,sum2=0,min3=Number.MAX_VALUE,max3=Number.MIN_VALUE;pipe(bounds,sort(Order2),map3((n,i)=>{boundaries[i]=n}));let update4=(value)=>{let from=0,to=size7;while(from!==to){let mid=Math.floor(from+(to-from)/2),boundary=boundaries[mid];if(value<=boundary)to=mid;else from=mid;if(to===from+1)if(value<=boundaries[from])to=from;else from=to}if(values3[from]=values3[from]+1,count=count+1,sum2=sum2+value,value<min3)min3=value;if(value>max3)max3=value},getBuckets=()=>{let builder=allocate(size7),cumulated=0;for(let i=0;i<size7;i++){let boundary=boundaries[i],value=values3[i];cumulated=cumulated+value,builder[i]=[boundary,cumulated]}return builder};return make28({get:()=>histogram3({buckets:getBuckets(),count,min:min3,max:max3,sum:sum2}),update:update4,modify:update4})},summary3=(key)=>{let{error,maxAge,maxSize,quantiles}=key.keyType,sortedQuantiles=pipe(quantiles,sort(Order2)),values3=allocate(maxSize),head4=0,count=0,sum2=0,min3=0,max3=0,snapshot=(now)=>{let builder=[],i=0;while(i!==maxSize-1){let item=values3[i];if(item!=null){let[t,v]=item,age=millis(now-t);if(greaterThanOrEqualTo(age,zero)&&lessThanOrEqualTo(age,maxAge))builder.push(v)}i=i+1}return calculateQuantiles(error,sortedQuantiles,sort(builder,Order2))},observe=(value,timestamp)=>{if(maxSize>0){head4=head4+1;let target=head4%maxSize;values3[target]=[timestamp,value]}min3=count===0?value:Math.min(min3,value),max3=count===0?value:Math.max(max3,value),count=count+1,sum2=sum2+value};return make28({get:()=>summary2({error,quantiles:snapshot(Date.now()),count,min:min3,max:max3,sum:sum2}),update:([value,timestamp])=>observe(value,timestamp),modify:([value,timestamp])=>observe(value,timestamp)})},calculateQuantiles=(error,sortedQuantiles,sortedSamples)=>{let sampleCount=sortedSamples.length;if(!isNonEmptyReadonlyArray(sortedQuantiles))return empty();let head4=sortedQuantiles[0],tail=sortedQuantiles.slice(1),resolvedHead=resolveQuantile(error,sampleCount,none2(),0,head4,sortedSamples),resolved=of(resolvedHead);return tail.forEach((quantile)=>{resolved.push(resolveQuantile(error,sampleCount,resolvedHead.value,resolvedHead.consumed,quantile,resolvedHead.rest))}),map3(resolved,(rq)=>[rq.quantile,rq.value])},resolveQuantile=(error,sampleCount,current,consumed,quantile,rest)=>{let error_1=error,sampleCount_1=sampleCount,current_1=current,consumed_1=consumed,quantile_1=quantile,rest_1=rest,error_2=error,sampleCount_2=sampleCount,current_2=current,consumed_2=consumed,quantile_2=quantile,rest_2=rest;while(!0){if(!isNonEmptyReadonlyArray(rest_1))return{quantile:quantile_1,value:none2(),consumed:consumed_1,rest:[]};if(quantile_1===1)return{quantile:quantile_1,value:some2(lastNonEmpty(rest_1)),consumed:consumed_1+rest_1.length,rest:[]};let headValue=headNonEmpty(rest_1),sameHead=span(rest_1,(n)=>n===headValue),desired=quantile_1*sampleCount_1,allowedError=error_1/2*desired,candConsumed=consumed_1+sameHead[0].length,candError=Math.abs(candConsumed-desired);if(candConsumed<desired-allowedError){error_2=error_1,sampleCount_2=sampleCount_1,current_2=head(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}if(candConsumed>desired+allowedError){let valueToReturn=isNone2(current_1)?some2(headValue):current_1;return{quantile:quantile_1,value:valueToReturn,consumed:consumed_1,rest:rest_1}}switch(current_1._tag){case"None":{error_2=error_1,sampleCount_2=sampleCount_1,current_2=head(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}case"Some":{let prevError=Math.abs(desired-current_1.value);if(candError<prevError){error_2=error_1,sampleCount_2=sampleCount_1,current_2=head(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}return{quantile:quantile_1,value:some2(current_1.value),consumed:consumed_1,rest:rest_1}}}}throw Error("BUG: MetricHook.resolveQuantiles - please report an issue at https://github.com/Effect-TS/effect/issues")};var MetricPairSymbolKey="effect/MetricPair",MetricPairTypeId=Symbol.for(MetricPairSymbolKey),metricPairVariance={_Type:(_)=>_};var unsafeMake7=(metricKey,metricState)=>{return{[MetricPairTypeId]:metricPairVariance,metricKey,metricState,pipe(){return pipeArguments(this,arguments)}}};var MetricRegistrySymbolKey="effect/MetricRegistry",MetricRegistryTypeId=Symbol.for(MetricRegistrySymbolKey);class MetricRegistryImpl{[MetricRegistryTypeId]=MetricRegistryTypeId;map=empty21();snapshot(){let result=[];for(let[key,hook]of this.map)result.push(unsafeMake7(key,hook.get()));return result}get(key){let hook=pipe(this.map,get12(key),getOrUndefined);if(hook==null){if(isCounterKey(key.keyType))return this.getCounter(key);if(isGaugeKey(key.keyType))return this.getGauge(key);if(isFrequencyKey(key.keyType))return this.getFrequency(key);if(isHistogramKey(key.keyType))return this.getHistogram(key);if(isSummaryKey(key.keyType))return this.getSummary(key);throw Error("BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues")}else return hook}getCounter(key){let value=pipe(this.map,get12(key),getOrUndefined);if(value==null){let counter5=counter4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set6(key,counter5));value=counter5}return value}getFrequency(key){let value=pipe(this.map,get12(key),getOrUndefined);if(value==null){let frequency4=frequency3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set6(key,frequency4));value=frequency4}return value}getGauge(key){let value=pipe(this.map,get12(key),getOrUndefined);if(value==null){let gauge4=gauge3(key,key.keyType.bigint?BigInt(0):0);if(!pipe(this.map,has4(key)))pipe(this.map,set6(key,gauge4));value=gauge4}return value}getHistogram(key){let value=pipe(this.map,get12(key),getOrUndefined);if(value==null){let histogram5=histogram4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set6(key,histogram5));value=histogram5}return value}getSummary(key){let value=pipe(this.map,get12(key),getOrUndefined);if(value==null){let summary4=summary3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set6(key,summary4));value=summary4}return value}}var make29=()=>{return new MetricRegistryImpl};var MetricSymbolKey="effect/Metric",MetricTypeId=Symbol.for(MetricSymbolKey),metricVariance={_Type:(_)=>_,_In:(_)=>_,_Out:(_)=>_},globalMetricRegistry=globalValue(Symbol.for("effect/Metric/globalMetricRegistry"),()=>make29()),make30=function(keyType,unsafeUpdate,unsafeValue,unsafeModify){let metric=Object.assign((effect)=>tap(effect,(a)=>update4(metric,a)),{[MetricTypeId]:metricVariance,keyType,unsafeUpdate,unsafeValue,unsafeModify,register(){return this.unsafeValue([]),this},pipe(){return pipeArguments(this,arguments)}});return metric};var counter5=(name,options)=>fromMetricKey(counter2(name,options));var fromMetricKey=(key)=>{let untaggedHook,hookCache=new WeakMap,hook=(extraTags)=>{if(extraTags.length===0){if(untaggedHook!==void 0)return untaggedHook;return untaggedHook=globalMetricRegistry.get(key),untaggedHook}let hook2=hookCache.get(extraTags);if(hook2!==void 0)return hook2;return hook2=globalMetricRegistry.get(taggedWithLabels(key,extraTags)),hookCache.set(extraTags,hook2),hook2};return make30(key.keyType,(input,extraTags)=>hook(extraTags).update(input),(extraTags)=>hook(extraTags).get(),(input,extraTags)=>hook(extraTags).modify(input))};var histogram5=(name,boundaries,description)=>fromMetricKey(histogram2(name,boundaries,description));var tagged=dual(3,(self,key,value)=>taggedWithLabels2(self,[make27(key,value)]));var taggedWithLabels2=dual(2,(self,extraTags)=>{return make30(self.keyType,(input,extraTags1)=>self.unsafeUpdate(input,union(extraTags,extraTags1)),(extraTags1)=>self.unsafeValue(union(extraTags,extraTags1)),(input,extraTags1)=>self.unsafeModify(input,union(extraTags,extraTags1)))});var update4=dual(2,(self,input)=>fiberRefGetWith(currentMetricLabels,(tags)=>sync(()=>self.unsafeUpdate(input,tags))));var RequestSymbolKey="effect/Request",RequestTypeId=Symbol.for(RequestSymbolKey),requestVariance={_E:(_)=>_,_A:(_)=>_},RequestPrototype={...StructuralPrototype,[RequestTypeId]:requestVariance},isRequest=(u)=>hasProperty(u,RequestTypeId);var complete=dual(2,(self,result)=>fiberRefGetWith(currentRequestMap,(map13)=>sync(()=>{if(map13.has(self)){let entry=map13.get(self);if(!entry.state.completed)entry.state.completed=!0,deferredUnsafeDone(entry.result,result)}})));class Listeners{count=0;observers=new Set;interrupted=!1;addObserver(f){this.observers.add(f)}removeObserver(f){this.observers.delete(f)}increment(){this.count++,this.observers.forEach((f)=>f(this.count))}decrement(){this.count--,this.observers.forEach((f)=>f(this.count))}}var SupervisorSymbolKey="effect/Supervisor",SupervisorTypeId=Symbol.for(SupervisorSymbolKey),supervisorVariance={_T:(_)=>_};class ProxySupervisor{underlying;value0;[SupervisorTypeId]=supervisorVariance;constructor(underlying,value0){this.underlying=underlying,this.value0=value0}get value(){return this.value0}onStart(context2,effect,parent,fiber){this.underlying.onStart(context2,effect,parent,fiber)}onEnd(value,fiber){this.underlying.onEnd(value,fiber)}onEffect(fiber,effect){this.underlying.onEffect(fiber,effect)}onSuspend(fiber){this.underlying.onSuspend(fiber)}onResume(fiber){this.underlying.onResume(fiber)}map(f){return new ProxySupervisor(this,pipe(this.value,map10(f)))}zip(right3){return new Zip(this,right3)}}class Zip{left;right;_tag="Zip";[SupervisorTypeId]=supervisorVariance;constructor(left3,right3){this.left=left3,this.right=right3}get value(){return zip2(this.left.value,this.right.value)}onStart(context2,effect,parent,fiber){this.left.onStart(context2,effect,parent,fiber),this.right.onStart(context2,effect,parent,fiber)}onEnd(value,fiber){this.left.onEnd(value,fiber),this.right.onEnd(value,fiber)}onEffect(fiber,effect){this.left.onEffect(fiber,effect),this.right.onEffect(fiber,effect)}onSuspend(fiber){this.left.onSuspend(fiber),this.right.onSuspend(fiber)}onResume(fiber){this.left.onResume(fiber),this.right.onResume(fiber)}map(f){return new ProxySupervisor(this,pipe(this.value,map10(f)))}zip(right3){return new Zip(this,right3)}}var isZip=(self)=>hasProperty(self,SupervisorTypeId)&&isTagged(self,"Zip");class Track{[SupervisorTypeId]=supervisorVariance;fibers=new Set;get value(){return sync(()=>Array.from(this.fibers))}onStart(_context,_effect,_parent,fiber){this.fibers.add(fiber)}onEnd(_value,fiber){this.fibers.delete(fiber)}onEffect(_fiber,_effect){}onSuspend(_fiber){}onResume(_fiber){}map(f){return new ProxySupervisor(this,pipe(this.value,map10(f)))}zip(right3){return new Zip(this,right3)}onRun(execution,_fiber){return execution()}}class Const{effect;[SupervisorTypeId]=supervisorVariance;constructor(effect){this.effect=effect}get value(){return this.effect}onStart(_context,_effect,_parent,_fiber){}onEnd(_value,_fiber){}onEffect(_fiber,_effect){}onSuspend(_fiber){}onResume(_fiber){}map(f){return new ProxySupervisor(this,pipe(this.value,map10(f)))}zip(right3){return new Zip(this,right3)}onRun(execution,_fiber){return execution()}}var unsafeTrack=()=>{return new Track},track=sync(unsafeTrack),fromEffect=(effect)=>{return new Const(effect)},none8=globalValue("effect/Supervisor/none",()=>fromEffect(void_));var make31=make14;var OP_EMPTY3="Empty",OP_ADD_SUPERVISOR="AddSupervisor",OP_REMOVE_SUPERVISOR="RemoveSupervisor",OP_AND_THEN2="AndThen",empty22={_tag:OP_EMPTY3},combine8=(self,that)=>{return{_tag:OP_AND_THEN2,first:self,second:that}},patch8=(self,supervisor)=>{return patchLoop(supervisor,of2(self))},patchLoop=(_supervisor,_patches)=>{let supervisor=_supervisor,patches=_patches;while(isNonEmpty(patches)){let head4=headNonEmpty2(patches);switch(head4._tag){case OP_EMPTY3:{patches=tailNonEmpty2(patches);break}case OP_ADD_SUPERVISOR:{supervisor=supervisor.zip(head4.supervisor),patches=tailNonEmpty2(patches);break}case OP_REMOVE_SUPERVISOR:{supervisor=removeSupervisor(supervisor,head4.supervisor),patches=tailNonEmpty2(patches);break}case OP_AND_THEN2:{patches=prepend2(head4.first)(prepend2(head4.second)(tailNonEmpty2(patches)));break}}}return supervisor},removeSupervisor=(self,that)=>{if(equals(self,that))return none8;else if(isZip(self))return removeSupervisor(self.left,that).zip(removeSupervisor(self.right,that));else return self},toSet2=(self)=>{if(equals(self,none8))return empty5();else if(isZip(self))return pipe(toSet2(self.left),union3(toSet2(self.right)));else return make7(self)},diff7=(oldValue,newValue)=>{if(equals(oldValue,newValue))return empty22;let oldSupervisors=toSet2(oldValue),newSupervisors=toSet2(newValue),added=pipe(newSupervisors,difference3(oldSupervisors),reduce5(empty22,(patch9,supervisor)=>combine8(patch9,{_tag:OP_ADD_SUPERVISOR,supervisor}))),removed=pipe(oldSupervisors,difference3(newSupervisors),reduce5(empty22,(patch9,supervisor)=>combine8(patch9,{_tag:OP_REMOVE_SUPERVISOR,supervisor})));return combine8(added,removed)},differ2=make31({empty:empty22,patch:patch8,combine:combine8,diff:diff7});var fiberStarted=counter5("effect_fiber_started",{incremental:!0}),fiberActive=counter5("effect_fiber_active"),fiberSuccesses=counter5("effect_fiber_successes",{incremental:!0}),fiberFailures=counter5("effect_fiber_failures",{incremental:!0}),fiberLifetimes=tagged(histogram5("effect_fiber_lifetimes",exponential({start:0.5,factor:2,count:35})),"time_unit","milliseconds"),EvaluationSignalContinue="Continue",EvaluationSignalDone="Done",EvaluationSignalYieldNow="Yield",runtimeFiberVariance={_E:(_)=>_,_A:(_)=>_},absurd=(_)=>{throw Error(`BUG: FiberRuntime - ${toStringUnknown(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`)},YieldedOp=Symbol.for("effect/internal/fiberRuntime/YieldedOp"),yieldedOpChannel=globalValue("effect/internal/fiberRuntime/yieldedOpChannel",()=>({currentOp:null})),contOpSuccess={[OP_ON_SUCCESS]:(_,cont,value)=>{return internalCall(()=>cont.effect_instruction_i1(value))},["OnStep"]:(_,_cont,value)=>{return exitSucceed(exitSucceed(value))},[OP_ON_SUCCESS_AND_FAILURE]:(_,cont,value)=>{return internalCall(()=>cont.effect_instruction_i2(value))},[OP_REVERT_FLAGS]:(self,cont,value)=>{if(self.patchRuntimeFlags(self.currentRuntimeFlags,cont.patch),interruptible(self.currentRuntimeFlags)&&self.isInterrupted())return exitFailCause(self.getInterruptedCause());else return exitSucceed(value)},[OP_WHILE]:(self,cont,value)=>{if(internalCall(()=>cont.effect_instruction_i2(value)),internalCall(()=>cont.effect_instruction_i0()))return self.pushStack(cont),internalCall(()=>cont.effect_instruction_i1());else return void_},[OP_ITERATOR]:(self,cont,value)=>{while(!0){let state=internalCall(()=>cont.effect_instruction_i0.next(value));if(state.done)return exitSucceed(state.value);let primitive=yieldWrapGet(state.value);if(!exitIsExit(primitive))return self.pushStack(cont),primitive;else if(primitive._tag==="Failure")return primitive;value=primitive.value}}},drainQueueWhileRunningTable={[OP_INTERRUPT_SIGNAL]:(self,runtimeFlags2,cur,message)=>{return self.processNewInterruptSignal(message.cause),interruptible(runtimeFlags2)?exitFailCause(message.cause):cur},[OP_RESUME]:(_self,_runtimeFlags,_cur,_message)=>{throw Error("It is illegal to have multiple concurrent run loops in a single fiber")},[OP_STATEFUL]:(self,runtimeFlags2,cur,message)=>{return message.onFiber(self,running2(runtimeFlags2)),cur},[OP_YIELD_NOW]:(_self,_runtimeFlags,cur,_message)=>{return flatMap8(yieldNow(),()=>cur)}},runBlockedRequests=(self)=>forEachSequentialDiscard(flatten4(self),(requestsByRequestResolver)=>forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver),([dataSource,sequential4])=>{let map13=new Map,arr=[];for(let block of sequential4){arr.push(toReadonlyArray(block));for(let entry of block)map13.set(entry.request,entry)}let flat=arr.flat();return fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr),flat,()=>flat.forEach((entry)=>{entry.listeners.interrupted=!0})),currentRequestMap,map13)},!1,!1)),_version=getCurrentVersion();class FiberRuntime extends Class{[FiberTypeId]=fiberVariance2;[RuntimeFiberTypeId]=runtimeFiberVariance;_fiberRefs;_fiberId;_queue=[];_children=null;_observers=[];_running=!1;_stack=[];_asyncInterruptor=null;_asyncBlockingOn=null;_exitValue=null;_steps=[];_isYielding=!1;currentRuntimeFlags;currentOpCount=0;currentSupervisor;currentScheduler;currentTracer;currentSpan;currentContext;currentDefaultServices;constructor(fiberId2,fiberRefs0,runtimeFlags0){super();if(this.currentRuntimeFlags=runtimeFlags0,this._fiberId=fiberId2,this._fiberRefs=fiberRefs0,runtimeMetrics(runtimeFlags0)){let tags=this.getFiberRef(currentMetricLabels);fiberStarted.unsafeUpdate(1,tags),fiberActive.unsafeUpdate(1,tags)}this.refreshRefCache()}commit(){return join2(this)}id(){return this._fiberId}resume(effect){this.tell(resume(effect))}get status(){return this.ask((_,status)=>status)}get runtimeFlags(){return this.ask((state,status)=>{if(isDone2(status))return state.currentRuntimeFlags;return status.runtimeFlags})}scope(){return unsafeMake6(this)}get children(){return this.ask((fiber)=>Array.from(fiber.getChildren()))}getChildren(){if(this._children===null)this._children=new Set;return this._children}getInterruptedCause(){return this.getFiberRef(currentInterruptedCause)}fiberRefs(){return this.ask((fiber)=>fiber.getFiberRefs())}ask(f){return suspend(()=>{let deferred=deferredUnsafeMake(this._fiberId);return this.tell(stateful((fiber,status)=>{deferredUnsafeDone(deferred,sync(()=>f(fiber,status)))})),deferredAwait(deferred)})}tell(message){if(this._queue.push(message),!this._running)this._running=!0,this.drainQueueLaterOnExecutor()}get await(){return async_((resume2)=>{let cb=(exit2)=>resume2(succeed(exit2));return this.tell(stateful((fiber,_)=>{if(fiber._exitValue!==null)cb(this._exitValue);else fiber.addObserver(cb)})),sync(()=>this.tell(stateful((fiber,_)=>{fiber.removeObserver(cb)})))},this.id())}get inheritAll(){return withFiberRuntime((parentFiber,parentStatus)=>{let parentFiberId=parentFiber.id(),parentFiberRefs=parentFiber.getFiberRefs(),parentRuntimeFlags=parentStatus.runtimeFlags,childFiberRefs=this.getFiberRefs(),updatedFiberRefs=joinAs(parentFiberRefs,parentFiberId,childFiberRefs);parentFiber.setFiberRefs(updatedFiberRefs);let updatedRuntimeFlags=parentFiber.getFiberRef(currentRuntimeFlags),patch9=pipe(diff4(parentRuntimeFlags,updatedRuntimeFlags),exclude2(Interruption),exclude2(WindDown));return updateRuntimeFlags(patch9)})}get poll(){return sync(()=>fromNullable(this._exitValue))}unsafePoll(){return this._exitValue}interruptAsFork(fiberId2){return sync(()=>this.tell(interruptSignal(interrupt(fiberId2))))}unsafeInterruptAsFork(fiberId2){this.tell(interruptSignal(interrupt(fiberId2)))}addObserver(observer){if(this._exitValue!==null)observer(this._exitValue);else this._observers.push(observer)}removeObserver(observer){this._observers=this._observers.filter((o)=>o!==observer)}getFiberRefs(){return this.setFiberRef(currentRuntimeFlags,this.currentRuntimeFlags),this._fiberRefs}unsafeDeleteFiberRef(fiberRef){this._fiberRefs=delete_(this._fiberRefs,fiberRef)}getFiberRef(fiberRef){if(this._fiberRefs.locals.has(fiberRef))return this._fiberRefs.locals.get(fiberRef)[0][1];return fiberRef.initial}setFiberRef(fiberRef,value){this._fiberRefs=updateAs(this._fiberRefs,{fiberId:this._fiberId,fiberRef,value}),this.refreshRefCache()}refreshRefCache(){this.currentDefaultServices=this.getFiberRef(currentServices),this.currentTracer=this.currentDefaultServices.unsafeMap.get(tracerTag.key),this.currentSupervisor=this.getFiberRef(currentSupervisor),this.currentScheduler=this.getFiberRef(currentScheduler),this.currentContext=this.getFiberRef(currentContext),this.currentSpan=this.currentContext.unsafeMap.get(spanTag.key)}setFiberRefs(fiberRefs3){this._fiberRefs=fiberRefs3,this.refreshRefCache()}addChild(child){this.getChildren().add(child)}removeChild(child){this.getChildren().delete(child)}transferChildren(scope){let children=this._children;if(this._children=null,children!==null&&children.size>0){for(let child of children)if(child._exitValue===null)scope.add(this.currentRuntimeFlags,child)}}drainQueueOnCurrentThread(){let recurse=!0;while(recurse){let evaluationSignal=EvaluationSignalContinue,prev=globalThis[currentFiberURI];globalThis[currentFiberURI]=this;try{while(evaluationSignal===EvaluationSignalContinue)evaluationSignal=this._queue.length===0?EvaluationSignalDone:this.evaluateMessageWhileSuspended(this._queue.splice(0,1)[0])}finally{this._running=!1,globalThis[currentFiberURI]=prev}if(this._queue.length>0&&!this._running)if(this._running=!0,evaluationSignal===EvaluationSignalYieldNow)this.drainQueueLaterOnExecutor(),recurse=!1;else recurse=!0;else recurse=!1}}drainQueueLaterOnExecutor(){this.currentScheduler.scheduleTask(this.run,this.getFiberRef(currentSchedulingPriority))}drainQueueWhileRunning(runtimeFlags2,cur0){let cur=cur0;while(this._queue.length>0){let message=this._queue.splice(0,1)[0];cur=drainQueueWhileRunningTable[message._tag](this,runtimeFlags2,cur,message)}return cur}isInterrupted(){return!isEmpty3(this.getFiberRef(currentInterruptedCause))}addInterruptedCause(cause2){let oldSC=this.getFiberRef(currentInterruptedCause);this.setFiberRef(currentInterruptedCause,sequential(oldSC,cause2))}processNewInterruptSignal(cause2){this.addInterruptedCause(cause2),this.sendInterruptSignalToAllChildren()}sendInterruptSignalToAllChildren(){if(this._children===null||this._children.size===0)return!1;let told=!1;for(let child of this._children)child.tell(interruptSignal(interrupt(this.id()))),told=!0;return told}interruptAllChildren(){if(this.sendInterruptSignalToAllChildren()){let it=this._children.values();this._children=null;let isDone3=!1;return whileLoop({while:()=>!isDone3,body:()=>{let next2=it.next();if(!next2.done)return asVoid(next2.value.await);else return sync(()=>{isDone3=!0})},step:()=>{}})}return null}reportExitValue(exit2){if(runtimeMetrics(this.currentRuntimeFlags)){let tags=this.getFiberRef(currentMetricLabels),startTimeMillis=this.id().startTimeMillis,endTimeMillis=Date.now();switch(fiberLifetimes.unsafeUpdate(endTimeMillis-startTimeMillis,tags),fiberActive.unsafeUpdate(-1,tags),exit2._tag){case OP_SUCCESS:{fiberSuccesses.unsafeUpdate(1,tags);break}case OP_FAILURE:{fiberFailures.unsafeUpdate(1,tags);break}}}if(exit2._tag==="Failure"){let level=this.getFiberRef(currentUnhandledErrorLogLevel);if(!isInterruptedOnly(exit2.cause)&&level._tag==="Some")this.log("Fiber terminated with an unhandled error",exit2.cause,level)}}setExitValue(exit2){this._exitValue=exit2,this.reportExitValue(exit2);for(let i=this._observers.length-1;i>=0;i--)this._observers[i](exit2);this._observers=[]}getLoggers(){return this.getFiberRef(currentLoggers)}log(message,cause2,overrideLogLevel){let logLevel=isSome2(overrideLogLevel)?overrideLogLevel.value:this.getFiberRef(currentLogLevel),minimumLogLevel=this.getFiberRef(currentMinimumLogLevel);if(greaterThan3(minimumLogLevel,logLevel))return;let spans=this.getFiberRef(currentLogSpan),annotations=this.getFiberRef(currentLogAnnotations),loggers=this.getLoggers(),contextMap=this.getFiberRefs();if(size3(loggers)>0){let clockService=get5(this.getFiberRef(currentServices),clockTag),date=new Date(clockService.unsafeCurrentTimeMillis());withRedactableContext(contextMap,()=>{for(let logger of loggers)logger.log({fiberId:this.id(),logLevel,message,cause:cause2,context:contextMap,spans,annotations,date})})}}evaluateMessageWhileSuspended(message){switch(message._tag){case OP_YIELD_NOW:return EvaluationSignalYieldNow;case OP_INTERRUPT_SIGNAL:{if(this.processNewInterruptSignal(message.cause),this._asyncInterruptor!==null)this._asyncInterruptor(exitFailCause(message.cause)),this._asyncInterruptor=null;return EvaluationSignalContinue}case OP_RESUME:return this._asyncInterruptor=null,this._asyncBlockingOn=null,this.evaluateEffect(message.effect),EvaluationSignalContinue;case OP_STATEFUL:return message.onFiber(this,this._exitValue!==null?done3:suspended2(this.currentRuntimeFlags,this._asyncBlockingOn)),EvaluationSignalContinue;default:return absurd(message)}}evaluateEffect(effect0){this.currentSupervisor.onResume(this);try{let effect=interruptible(this.currentRuntimeFlags)&&this.isInterrupted()?exitFailCause(this.getInterruptedCause()):effect0;while(effect!==null){let eff=effect,exit2=this.runLoop(eff);if(exit2===YieldedOp){let op=yieldedOpChannel.currentOp;if(yieldedOpChannel.currentOp=null,op._op===OP_YIELD)if(cooperativeYielding(this.currentRuntimeFlags))this.tell(yieldNow3()),this.tell(resume(exitVoid)),effect=null;else effect=exitVoid;else if(op._op===OP_ASYNC)effect=null}else{this.currentRuntimeFlags=pipe(this.currentRuntimeFlags,enable2(WindDown));let interruption2=this.interruptAllChildren();if(interruption2!==null)effect=flatMap8(interruption2,()=>exit2);else{if(this._queue.length===0)this.setExitValue(exit2);else this.tell(resume(exit2));effect=null}}}}finally{this.currentSupervisor.onSuspend(this)}}start(effect){if(!this._running){this._running=!0;let prev=globalThis[currentFiberURI];globalThis[currentFiberURI]=this;try{this.evaluateEffect(effect)}finally{if(this._running=!1,globalThis[currentFiberURI]=prev,this._queue.length>0)this.drainQueueLaterOnExecutor()}}else this.tell(resume(effect))}startFork(effect){this.tell(resume(effect))}patchRuntimeFlags(oldRuntimeFlags,patch9){let newRuntimeFlags=patch4(oldRuntimeFlags,patch9);return globalThis[currentFiberURI]=this,this.currentRuntimeFlags=newRuntimeFlags,newRuntimeFlags}initiateAsync(runtimeFlags2,asyncRegister){let alreadyCalled=!1,callback=(effect)=>{if(!alreadyCalled)alreadyCalled=!0,this.tell(resume(effect))};if(interruptible(runtimeFlags2))this._asyncInterruptor=callback;try{asyncRegister(callback)}catch(e){callback(failCause(die(e)))}}pushStack(cont){if(this._stack.push(cont),cont._op==="OnStep")this._steps.push({refs:this.getFiberRefs(),flags:this.currentRuntimeFlags})}popStack(){let item=this._stack.pop();if(item){if(item._op==="OnStep")this._steps.pop();return item}return}getNextSuccessCont(){let frame=this.popStack();while(frame){if(frame._op!==OP_ON_FAILURE)return frame;frame=this.popStack()}}getNextFailCont(){let frame=this.popStack();while(frame){if(frame._op!==OP_ON_SUCCESS&&frame._op!==OP_WHILE&&frame._op!==OP_ITERATOR)return frame;frame=this.popStack()}}[OP_TAG](op){return sync(()=>unsafeGet4(this.currentContext,op))}["Left"](op){return fail2(op.left)}["None"](_){return fail2(new NoSuchElementException)}["Right"](op){return exitSucceed(op.right)}["Some"](op){return exitSucceed(op.value)}["Micro"](op){return unsafeAsync((microResume)=>{let resume2=microResume,fiber=runFork(provideContext2(op,this.currentContext));return fiber.addObserver((exit2)=>{if(exit2._tag==="Success")return resume2(exitSucceed(exit2.value));switch(exit2.cause._tag){case"Interrupt":return resume2(exitFailCause(interrupt(none4)));case"Fail":return resume2(fail2(exit2.cause.error));case"Die":return resume2(die2(exit2.cause.defect))}}),unsafeAsync((abortResume)=>{resume2=(_)=>{abortResume(void_)},fiber.unsafeInterrupt()})})}[OP_SYNC](op){let value=internalCall(()=>op.effect_instruction_i0()),cont=this.getNextSuccessCont();if(cont!==void 0){if(!(cont._op in contOpSuccess))absurd(cont);return contOpSuccess[cont._op](this,cont,value)}else return yieldedOpChannel.currentOp=exitSucceed(value),YieldedOp}[OP_SUCCESS](op){let oldCur=op,cont=this.getNextSuccessCont();if(cont!==void 0){if(!(cont._op in contOpSuccess))absurd(cont);return contOpSuccess[cont._op](this,cont,oldCur.effect_instruction_i0)}else return yieldedOpChannel.currentOp=oldCur,YieldedOp}[OP_FAILURE](op){let cause2=op.effect_instruction_i0,cont=this.getNextFailCont();if(cont!==void 0)switch(cont._op){case OP_ON_FAILURE:case OP_ON_SUCCESS_AND_FAILURE:if(!(interruptible(this.currentRuntimeFlags)&&this.isInterrupted()))return internalCall(()=>cont.effect_instruction_i1(cause2));else return exitFailCause(stripFailures(cause2));case"OnStep":if(!(interruptible(this.currentRuntimeFlags)&&this.isInterrupted()))return exitSucceed(exitFailCause(cause2));else return exitFailCause(stripFailures(cause2));case OP_REVERT_FLAGS:if(this.patchRuntimeFlags(this.currentRuntimeFlags,cont.patch),interruptible(this.currentRuntimeFlags)&&this.isInterrupted())return exitFailCause(sequential(cause2,this.getInterruptedCause()));else return exitFailCause(cause2);default:absurd(cont)}else return yieldedOpChannel.currentOp=exitFailCause(cause2),YieldedOp}[OP_WITH_RUNTIME](op){return internalCall(()=>op.effect_instruction_i0(this,running2(this.currentRuntimeFlags)))}["Blocked"](op){let refs=this.getFiberRefs(),flags=this.currentRuntimeFlags;if(this._steps.length>0){let frames=[],snap=this._steps[this._steps.length-1],frame=this.popStack();while(frame&&frame._op!=="OnStep")frames.push(frame),frame=this.popStack();this.setFiberRefs(snap.refs),this.currentRuntimeFlags=snap.flags;let patchRefs=diff6(snap.refs,refs),patchFlags=diff4(snap.flags,flags);return exitSucceed(blocked(op.effect_instruction_i0,withFiberRuntime((newFiber)=>{while(frames.length>0)newFiber.pushStack(frames.pop());return newFiber.setFiberRefs(patch7(newFiber.id(),newFiber.getFiberRefs())(patchRefs)),newFiber.currentRuntimeFlags=patch4(patchFlags)(newFiber.currentRuntimeFlags),op.effect_instruction_i1})))}return uninterruptibleMask((restore)=>flatMap8(forkDaemon(runRequestBlock(op.effect_instruction_i0)),()=>restore(op.effect_instruction_i1)))}["RunBlocked"](op){return runBlockedRequests(op.effect_instruction_i0)}[OP_UPDATE_RUNTIME_FLAGS](op){let updateFlags=op.effect_instruction_i0,oldRuntimeFlags=this.currentRuntimeFlags,newRuntimeFlags=patch4(oldRuntimeFlags,updateFlags);if(interruptible(newRuntimeFlags)&&this.isInterrupted())return exitFailCause(this.getInterruptedCause());else if(this.patchRuntimeFlags(this.currentRuntimeFlags,updateFlags),op.effect_instruction_i1){let revertFlags=diff4(newRuntimeFlags,oldRuntimeFlags);return this.pushStack(new RevertFlags(revertFlags,op)),internalCall(()=>op.effect_instruction_i1(oldRuntimeFlags))}else return exitVoid}[OP_ON_SUCCESS](op){return this.pushStack(op),op.effect_instruction_i0}["OnStep"](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ON_FAILURE](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ON_SUCCESS_AND_FAILURE](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ASYNC](op){return this._asyncBlockingOn=op.effect_instruction_i1,this.initiateAsync(this.currentRuntimeFlags,op.effect_instruction_i0),yieldedOpChannel.currentOp=op,YieldedOp}[OP_YIELD](op){return this._isYielding=!1,yieldedOpChannel.currentOp=op,YieldedOp}[OP_WHILE](op){let{effect_instruction_i0:check,effect_instruction_i1:body}=op;if(check())return this.pushStack(op),body();else return exitVoid}[OP_ITERATOR](op){return contOpSuccess[OP_ITERATOR](this,op,void 0)}[OP_COMMIT](op){return internalCall(()=>op.commit())}runLoop(effect0){let cur=effect0;this.currentOpCount=0;while(!0){if((this.currentRuntimeFlags&OpSupervision)!==0)this.currentSupervisor.onEffect(this,cur);if(this._queue.length>0)cur=this.drainQueueWhileRunning(this.currentRuntimeFlags,cur);if(!this._isYielding){this.currentOpCount+=1;let shouldYield=this.currentScheduler.shouldYield(this);if(shouldYield!==!1){this._isYielding=!0,this.currentOpCount=0;let oldCur=cur;cur=flatMap8(yieldNow({priority:shouldYield}),()=>oldCur)}}try{if(cur=this.currentTracer.context(()=>{if(_version!==cur[EffectTypeId2]._V){let level=this.getFiberRef(currentVersionMismatchErrorLogLevel);if(level._tag==="Some"){let effectVersion=cur[EffectTypeId2]._V;this.log(`Executing an Effect versioned ${effectVersion} with a Runtime of version ${getCurrentVersion()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`,empty6,level)}}return this[cur._op](cur)},this),cur===YieldedOp){let op=yieldedOpChannel.currentOp;if(op._op===OP_YIELD||op._op===OP_ASYNC)return YieldedOp;return yieldedOpChannel.currentOp=null,op._op===OP_SUCCESS||op._op===OP_FAILURE?op:exitFailCause(die(op))}}catch(e){if(cur!==YieldedOp&&!hasProperty(cur,"_op")||!(cur._op in this))cur=dieMessage(`Not a valid effect: ${toStringUnknown(cur)}`);else if(isInterruptedException(e))cur=exitFailCause(sequential(die(e),interrupt(none4)));else cur=die2(e)}}}run=()=>{this.drainQueueOnCurrentThread()}}var currentMinimumLogLevel=globalValue("effect/FiberRef/currentMinimumLogLevel",()=>fiberRefUnsafeMake(fromLiteral("Info"))),loggerWithConsoleLog=(self)=>makeLogger((opts)=>{let services=getOrDefault2(opts.context,currentServices);get5(services,consoleTag).unsafe.log(self.log(opts))});var defaultLogger=globalValue(Symbol.for("effect/Logger/defaultLogger"),()=>loggerWithConsoleLog(stringLogger));var tracerLogger=globalValue(Symbol.for("effect/Logger/tracerLogger"),()=>makeLogger(({annotations,cause:cause2,context:context2,fiberId:fiberId2,logLevel,message})=>{let span2=getOption2(getOrDefault(context2,currentContext),spanTag);if(span2._tag==="None"||span2.value._tag==="ExternalSpan")return;let clockService=unsafeGet4(getOrDefault(context2,currentServices),clockTag),attributes={};for(let[key,value]of annotations)attributes[key]=value;if(attributes["effect.fiberId"]=threadName2(fiberId2),attributes["effect.logLevel"]=logLevel.label,cause2!==null&&cause2._tag!=="Empty")attributes["effect.cause"]=pretty(cause2,{renderErrorCause:!0});span2.value.event(toStringUnknown(Array.isArray(message)&&message.length===1?message[0]:message),clockService.unsafeCurrentTimeNanos(),attributes)}));var currentLoggers=globalValue(Symbol.for("effect/FiberRef/currentLoggers"),()=>fiberRefUnsafeMakeHashSet(make7(defaultLogger,tracerLogger)));var annotateLogsScoped=function(){if(typeof arguments[0]==="string")return fiberRefLocallyScopedWith(currentLogAnnotations,set3(arguments[0],arguments[1]));let entries2=Object.entries(arguments[0]);return fiberRefLocallyScopedWith(currentLogAnnotations,mutate3((annotations)=>{for(let i=0;i<entries2.length;i++){let[key,value]=entries2[i];set3(annotations,key,value)}return annotations}))},whenLogLevel=dual(2,(effect,level)=>{let requiredLogLevel=typeof level==="string"?fromLiteral(level):level;return withFiberRuntime((fiberState)=>{let minimumLogLevel=fiberState.getFiberRef(currentMinimumLogLevel);if(greaterThan3(minimumLogLevel,requiredLogLevel))return succeed(none2());return map10(effect,some2)})}),acquireRelease=dual((args2)=>isEffect(args2[0]),(acquire,release)=>uninterruptible(tap(acquire,(a)=>addFinalizer((exit2)=>release(a,exit2))))),acquireReleaseInterruptible=dual((args2)=>isEffect(args2[0]),(acquire,release)=>ensuring(acquire,addFinalizer((exit2)=>release(exit2)))),addFinalizer=(finalizer)=>withFiberRuntime((runtime2)=>{let acquireRefs=runtime2.getFiberRefs(),acquireFlags=disable2(runtime2.currentRuntimeFlags,Interruption);return flatMap8(scope,(scope)=>scopeAddFinalizerExit(scope,(exit2)=>withFiberRuntime((runtimeFinalizer)=>{let preRefs=runtimeFinalizer.getFiberRefs(),preFlags=runtimeFinalizer.currentRuntimeFlags,patchRefs=diff6(preRefs,acquireRefs),patchFlags=diff4(preFlags,acquireFlags),inverseRefs=diff6(acquireRefs,preRefs);return runtimeFinalizer.setFiberRefs(patch7(patchRefs,runtimeFinalizer.id(),acquireRefs)),ensuring(withRuntimeFlags(finalizer(exit2),patchFlags),sync(()=>{runtimeFinalizer.setFiberRefs(patch7(inverseRefs,runtimeFinalizer.id(),runtimeFinalizer.getFiberRefs()))}))})))}),daemonChildren=(self)=>{return fiberRefLocally(currentForkScopeOverride,some2(globalScope))(self)},_existsParFound=Symbol.for("effect/Effect/existsPar/found"),exists=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>matchSimple(options?.concurrency,()=>suspend(()=>existsLoop(elements[Symbol.iterator](),0,predicate)),()=>matchEffect(forEach5(elements,(a,i)=>if_(predicate(a,i),{onTrue:()=>fail2(_existsParFound),onFalse:()=>void_}),options),{onFailure:(e)=>e===_existsParFound?succeed(!0):fail2(e),onSuccess:()=>succeed(!1)}))),existsLoop=(iterator,index,f)=>{let next2=iterator.next();if(next2.done)return succeed(!1);return flatMap8(f(next2.value,index),(b)=>b?succeed(b):existsLoop(iterator,index+1,f))},filter6=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>{let predicate_=options?.negate?(a,i)=>map10(predicate(a,i),not):predicate;return matchSimple(options?.concurrency,()=>suspend(()=>fromIterable(elements).reduceRight((effect,a,i)=>zipWith3(effect,suspend(()=>predicate_(a,i)),(list,b)=>b?[a,...list]:list),sync(()=>[]))),()=>map10(forEach5(elements,(a,i)=>map10(predicate_(a,i),(b)=>b?some2(a):none2()),options),getSomes))}),allResolveInput=(input)=>{if(Array.isArray(input)||isIterable(input))return[input,none2()];let keys3=Object.keys(input),size7=keys3.length;return[keys3.map((k)=>input[k]),some2((values3)=>{let res={};for(let i=0;i<size7;i++)res[keys3[i]]=values3[i];return res})]},allValidate=(effects,reconcile,options)=>{let eitherEffects=[];for(let effect of effects)eitherEffects.push(either2(effect));return flatMap8(forEach5(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>{let none9=none2(),size7=eithers.length,errors=Array(size7),successes=Array(size7),errored=!1;for(let i=0;i<size7;i++){let either3=eithers[i];if(either3._tag==="Left")errors[i]=some2(either3.left),errored=!0;else successes[i]=either3.right,errors[i]=none9}if(errored)return reconcile._tag==="Some"?fail2(reconcile.value(errors)):fail2(errors);else if(options?.discard)return void_;return reconcile._tag==="Some"?succeed(reconcile.value(successes)):succeed(successes)})},allEither=(effects,reconcile,options)=>{let eitherEffects=[];for(let effect of effects)eitherEffects.push(either2(effect));if(options?.discard)return forEach5(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,discard:!0,concurrentFinalizers:options?.concurrentFinalizers});return map10(forEach5(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>reconcile._tag==="Some"?reconcile.value(eithers):eithers)},all4=(arg,options)=>{let[effects,reconcile]=allResolveInput(arg);if(options?.mode==="validate")return allValidate(effects,reconcile,options);else if(options?.mode==="either")return allEither(effects,reconcile,options);return options?.discard!==!0&&reconcile._tag==="Some"?map10(forEach5(effects,identity,options),reconcile.value):forEach5(effects,identity,options)},allWith=(options)=>(arg)=>all4(arg,options),allSuccesses=(elements,options)=>map10(all4(fromIterable(elements).map(exit),options),filterMap((exit2)=>exitIsSuccess(exit2)?some2(exit2.effect_instruction_i0):none2())),replicate=dual(2,(self,n)=>Array.from({length:n},()=>self)),replicateEffect=dual((args2)=>isEffect(args2[0]),(self,n,options)=>all4(replicate(self,n),options)),forEach5=dual((args2)=>isIterable(args2[0]),(self,f,options)=>withFiberRuntime((r)=>{let isRequestBatchingEnabled=options?.batching===!0||options?.batching==="inherit"&&r.getFiberRef(currentRequestBatching);if(options?.discard)return match7(options.concurrency,()=>finalizersMaskInternal(sequential3,options?.concurrentFinalizers)((restore)=>isRequestBatchingEnabled?forEachConcurrentDiscard(self,(a,i)=>restore(f(a,i)),!0,!1,1):forEachSequentialDiscard(self,(a,i)=>restore(f(a,i)))),()=>finalizersMaskInternal(parallel3,options?.concurrentFinalizers)((restore)=>forEachConcurrentDiscard(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled,!1)),(n)=>finalizersMaskInternal(parallelN2(n),options?.concurrentFinalizers)((restore)=>forEachConcurrentDiscard(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled,!1,n)));return match7(options?.concurrency,()=>finalizersMaskInternal(sequential3,options?.concurrentFinalizers)((restore)=>isRequestBatchingEnabled?forEachParN(self,1,(a,i)=>restore(f(a,i)),!0):forEachSequential(self,(a,i)=>restore(f(a,i)))),()=>finalizersMaskInternal(parallel3,options?.concurrentFinalizers)((restore)=>forEachParUnbounded(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled)),(n)=>finalizersMaskInternal(parallelN2(n),options?.concurrentFinalizers)((restore)=>forEachParN(self,n,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled)))})),forEachParUnbounded=(self,f,batching)=>suspend(()=>{let as3=fromIterable(self),array3=Array(as3.length);return zipRight(forEachConcurrentDiscard(as3,(a,i)=>flatMap8(f(a,i),(b)=>sync(()=>array3[i]=b)),batching,!1),succeed(array3))}),forEachConcurrentDiscard=(self,f,batching,processAll,n)=>uninterruptibleMask((restore)=>transplant((graft)=>withFiberRuntime((parent)=>{let todos=Array.from(self).reverse(),target=todos.length;if(target===0)return void_;let counter6=0,interrupted=!1,fibersCount=n?Math.min(todos.length,n):todos.length,fibers=new Set,results=[],interruptAll=()=>fibers.forEach((fiber)=>{fiber.currentScheduler.scheduleTask(()=>{fiber.unsafeInterruptAsFork(parent.id())},0)}),startOrder=[],joinOrder=[],residual=[],collectExits=()=>{let exits=results.filter(({exit:exit2})=>exit2._tag==="Failure").sort((a,b)=>a.index<b.index?-1:a.index===b.index?0:1).map(({exit:exit2})=>exit2);if(exits.length===0)exits.push(exitVoid);return exits},runFiber=(eff,interruptImmediately=!1)=>{let runnable=uninterruptible(graft(eff)),fiber=unsafeForkUnstarted(runnable,parent,parent.currentRuntimeFlags,globalScope);return parent.currentScheduler.scheduleTask(()=>{if(interruptImmediately)fiber.unsafeInterruptAsFork(parent.id());fiber.resume(runnable)},0),fiber},onInterruptSignal=()=>{if(!processAll)target-=todos.length,todos=[];interrupted=!0,interruptAll()},stepOrExit=batching?step2:exit,processingFiber=runFiber(async_((resume2)=>{let pushResult=(res,index)=>{if(res._op==="Blocked")residual.push(res);else if(results.push({index,exit:res}),res._op==="Failure"&&!interrupted)onInterruptSignal()},next2=()=>{if(todos.length>0){let a=todos.pop(),index=counter6++,returnNextElement=()=>{let a2=todos.pop();return index=counter6++,flatMap8(yieldNow(),()=>flatMap8(stepOrExit(restore(f(a2,index))),onRes))},onRes=(res)=>{if(todos.length>0){if(pushResult(res,index),todos.length>0)return returnNextElement()}return succeed(res)},todo=flatMap8(stepOrExit(restore(f(a,index))),onRes),fiber=runFiber(todo);if(startOrder.push(fiber),fibers.add(fiber),interrupted)fiber.currentScheduler.scheduleTask(()=>{fiber.unsafeInterruptAsFork(parent.id())},0);fiber.addObserver((wrapped)=>{let exit2;if(wrapped._op==="Failure")exit2=wrapped;else exit2=wrapped.effect_instruction_i0;if(joinOrder.push(fiber),fibers.delete(fiber),pushResult(exit2,index),results.length===target)resume2(succeed(getOrElse(exitCollectAll(collectExits(),{parallel:!0}),()=>exitVoid)));else if(residual.length+results.length===target){let exits=collectExits(),requests=residual.map((blocked2)=>blocked2.effect_instruction_i0).reduce(par);resume2(succeed(blocked(requests,forEachConcurrentDiscard([getOrElse(exitCollectAll(exits,{parallel:!0}),()=>exitVoid),...residual.map((blocked2)=>blocked2.effect_instruction_i1)],(i)=>i,batching,!0,n))))}else next2()})}};for(let i=0;i<fibersCount;i++)next2()}));return asVoid(onExit(flatten5(restore(join2(processingFiber))),exitMatch({onFailure:(cause2)=>{onInterruptSignal();let target2=residual.length+1,concurrency=Math.min(typeof n==="number"?n:residual.length,residual.length),toPop=Array.from(residual);return async_((cb)=>{let exits=[],count=0,index=0,check=(index2,hitNext)=>(exit2)=>{if(exits[index2]=exit2,count++,count===target2)cb(exitSucceed(exitFailCause(cause2)));if(toPop.length>0&&hitNext)next2()},next2=()=>{runFiber(toPop.pop(),!0).addObserver(check(index,!0)),index++};processingFiber.addObserver(check(index,!1)),index++;for(let i=0;i<concurrency;i++)next2()})},onSuccess:()=>forEachSequential(joinOrder,(f2)=>f2.inheritAll)})))}))),forEachParN=(self,n,f,batching)=>suspend(()=>{let as3=fromIterable(self),array3=Array(as3.length);return zipRight(forEachConcurrentDiscard(as3,(a,i)=>map10(f(a,i),(b)=>array3[i]=b),batching,!1,n),succeed(array3))}),fork=(self)=>withFiberRuntime((state,status)=>succeed(unsafeFork(self,state,status.runtimeFlags))),forkDaemon=(self)=>forkWithScopeOverride(self,globalScope),forkWithErrorHandler=dual(2,(self,handler)=>fork(onError(self,(cause2)=>{let either3=failureOrCause(cause2);switch(either3._tag){case"Left":return handler(either3.left);case"Right":return failCause(either3.right)}}))),unsafeFork=(effect,parentFiber,parentRuntimeFlags,overrideScope=null)=>{let childFiber=unsafeMakeChildFiber(effect,parentFiber,parentRuntimeFlags,overrideScope);return childFiber.resume(effect),childFiber},unsafeForkUnstarted=(effect,parentFiber,parentRuntimeFlags,overrideScope=null)=>{return unsafeMakeChildFiber(effect,parentFiber,parentRuntimeFlags,overrideScope)},unsafeMakeChildFiber=(effect,parentFiber,parentRuntimeFlags,overrideScope=null)=>{let childId=unsafeMake3(),parentFiberRefs=parentFiber.getFiberRefs(),childFiberRefs=forkAs(parentFiberRefs,childId),childFiber=new FiberRuntime(childId,childFiberRefs,parentRuntimeFlags),childContext=getOrDefault(childFiberRefs,currentContext),supervisor=childFiber.currentSupervisor;return supervisor.onStart(childContext,effect,some2(parentFiber),childFiber),childFiber.addObserver((exit2)=>supervisor.onEnd(exit2,childFiber)),(overrideScope!==null?overrideScope:pipe(parentFiber.getFiberRef(currentForkScopeOverride),getOrElse(()=>parentFiber.scope()))).add(parentRuntimeFlags,childFiber),childFiber},forkWithScopeOverride=(self,scopeOverride)=>withFiberRuntime((parentFiber,parentStatus)=>succeed(unsafeFork(self,parentFiber,parentStatus.runtimeFlags,scopeOverride))),mergeAll3=dual((args2)=>isFunction2(args2[2]),(elements,zero2,f,options)=>matchSimple(options?.concurrency,()=>fromIterable(elements).reduce((acc,a,i)=>zipWith3(acc,a,(acc2,a2)=>f(acc2,a2,i)),succeed(zero2)),()=>flatMap8(make24(zero2),(acc)=>flatMap8(forEach5(elements,(effect,i)=>flatMap8(effect,(a)=>update3(acc,(b)=>f(b,a,i))),options),()=>get11(acc))))),partition3=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>pipe(forEach5(elements,(a,i)=>either2(f(a,i)),options),map10((chunk2)=>partitionMap2(chunk2,identity)))),validateAll=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>flatMap8(partition3(elements,f,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([es,bs])=>isNonEmptyArray2(es)?fail2(es):options?.discard?void_:succeed(bs))),raceAll=(all5)=>withFiberRuntime((state,status)=>async_((resume2)=>{let fibers=new Set,winner,failures2=empty6,interruptAll=()=>{for(let fiber of fibers)fiber.unsafeInterruptAsFork(state.id())},latch=!1,empty23=!0;for(let self of all5){empty23=!1;let fiber=unsafeFork(interruptible2(self),state,status.runtimeFlags);if(fibers.add(fiber),fiber.addObserver((exit2)=>{if(fibers.delete(fiber),!winner)if(exit2._tag==="Success")latch=!0,winner=fiber,failures2=empty6,interruptAll();else failures2=parallel(exit2.cause,failures2);if(latch&&fibers.size===0)resume2(winner?zipRight(inheritAll(winner),winner.unsafePoll()):failCause(failures2))}),winner)break}if(empty23)return resume2(dieSync(()=>new IllegalArgumentException("Received an empty collection of effects")));return latch=!0,interruptAllAs(fibers,state.id())})),reduceEffect=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,zero2,f,options)=>matchSimple(options?.concurrency,()=>fromIterable(elements).reduce((acc,a,i)=>zipWith3(acc,a,(acc2,a2)=>f(acc2,a2,i)),zero2),()=>suspend(()=>pipe(mergeAll3([zero2,...elements],none2(),(acc,elem,i)=>{switch(acc._tag){case"None":return some2(elem);case"Some":return some2(f(acc.value,elem,i))}},options),map10((option2)=>{switch(option2._tag){case"None":throw Error("BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues");case"Some":return option2.value}}))))),parallelFinalizers=(self)=>contextWithEffect((context2)=>match2(getOption2(context2,scopeTag),{onNone:()=>self,onSome:(scope)=>{switch(scope.strategy._tag){case"Parallel":return self;case"Sequential":case"ParallelN":return flatMap8(scopeFork(scope,parallel3),(inner)=>scopeExtend(self,inner))}}})),parallelNFinalizers=(parallelism)=>(self)=>contextWithEffect((context2)=>match2(getOption2(context2,scopeTag),{onNone:()=>self,onSome:(scope)=>{if(scope.strategy._tag==="ParallelN"&&scope.strategy.parallelism===parallelism)return self;return flatMap8(scopeFork(scope,parallelN2(parallelism)),(inner)=>scopeExtend(self,inner))}})),finalizersMask=(strategy)=>(self)=>finalizersMaskInternal(strategy,!0)(self),finalizersMaskInternal=(strategy,concurrentFinalizers)=>(self)=>contextWithEffect((context2)=>match2(getOption2(context2,scopeTag),{onNone:()=>self(identity),onSome:(scope)=>{if(concurrentFinalizers===!0){let patch9=strategy._tag==="Parallel"?parallelFinalizers:strategy._tag==="Sequential"?sequentialFinalizers:parallelNFinalizers(strategy.parallelism);switch(scope.strategy._tag){case"Parallel":return patch9(self(parallelFinalizers));case"Sequential":return patch9(self(sequentialFinalizers));case"ParallelN":return patch9(self(parallelNFinalizers(scope.strategy.parallelism)))}}else return self(identity)}})),scopeWith=(f)=>flatMap8(scopeTag,f),scopedWith=(f)=>flatMap8(scopeMake(),(scope)=>onExit(f(scope),(exit2)=>scope.close(exit2))),scopedEffect=(effect)=>flatMap8(scopeMake(),(scope)=>scopeUse(effect,scope)),sequentialFinalizers=(self)=>contextWithEffect((context2)=>match2(getOption2(context2,scopeTag),{onNone:()=>self,onSome:(scope)=>{switch(scope.strategy._tag){case"Sequential":return self;case"Parallel":case"ParallelN":return flatMap8(scopeFork(scope,sequential3),(inner)=>scopeExtend(self,inner))}}})),tagMetricsScoped=(key,value)=>labelMetricsScoped([make27(key,value)]),labelMetricsScoped=(labels)=>fiberRefLocallyScopedWith(currentMetricLabels,(old)=>union(old,labels)),using=dual(2,(self,use)=>scopedWith((scope)=>flatMap8(scopeExtend(self,scope),use))),validate=dual((args2)=>isEffect(args2[1]),(self,that,options)=>validateWith(self,that,(a,b)=>[a,b],options)),validateWith=dual((args2)=>isEffect(args2[1]),(self,that,f,options)=>flatten5(zipWithOptions(exit(self),exit(that),(ea,eb)=>exitZipWith(ea,eb,{onSuccess:f,onFailure:(ca,cb)=>options?.concurrent?parallel(ca,cb):sequential(ca,cb)}),options)));var validateFirst=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>flip(forEach5(elements,(a,i)=>flip(f(a,i)),options))),withClockScoped=(c)=>fiberRefLocallyScopedWith(currentServices,add4(clockTag,c)),withRandomScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add4(randomTag,value)),withConfigProviderScoped=(provider)=>fiberRefLocallyScopedWith(currentServices,add4(configProviderTag,provider)),withEarlyRelease=(self)=>scopeWith((parent)=>flatMap8(scopeFork(parent,sequential2),(child)=>pipe(self,scopeExtend(child),map10((value)=>[fiberIdWith((fiberId2)=>scopeClose(child,exitInterrupt(fiberId2))),value])))),zipOptions=dual((args2)=>isEffect(args2[1]),(self,that,options)=>zipWithOptions(self,that,(a,b)=>[a,b],options)),zipLeftOptions=dual((args2)=>isEffect(args2[1]),(self,that,options)=>{if(options?.concurrent!==!0&&(options?.batching===void 0||options.batching===!1))return zipLeft(self,that);return zipWithOptions(self,that,(a,_)=>a,options)}),zipRightOptions=dual((args2)=>isEffect(args2[1]),(self,that,options)=>{if(options?.concurrent!==!0&&(options?.batching===void 0||options.batching===!1))return zipRight(self,that);return zipWithOptions(self,that,(_,b)=>b,options)}),zipWithOptions=dual((args2)=>isEffect(args2[1]),(self,that,f,options)=>map10(all4([self,that],{concurrency:options?.concurrent?2:1,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([a,a2])=>f(a,a2))),withRuntimeFlagsScoped=(update5)=>{if(update5===empty15)return void_;return pipe(runtimeFlags,flatMap8((runtimeFlags2)=>{let updatedRuntimeFlags=patch4(runtimeFlags2,update5),revertRuntimeFlags=diff4(updatedRuntimeFlags,runtimeFlags2);return pipe(updateRuntimeFlags(update5),zipRight(addFinalizer(()=>updateRuntimeFlags(revertRuntimeFlags))),asVoid)}),uninterruptible)},scopeTag=GenericTag("effect/Scope"),scope=scopeTag,scopeUnsafeAddFinalizer=(scope2,fin)=>{if(scope2.state._tag==="Open")scope2.state.finalizers.set({},fin)},ScopeImplProto={[ScopeTypeId]:ScopeTypeId,[CloseableScopeTypeId]:CloseableScopeTypeId,pipe(){return pipeArguments(this,arguments)},fork(strategy){return sync(()=>{let newScope=scopeUnsafeMake(strategy);if(this.state._tag==="Closed")return newScope.state=this.state,newScope;let key={},fin=(exit2)=>newScope.close(exit2);return this.state.finalizers.set(key,fin),scopeUnsafeAddFinalizer(newScope,(_)=>sync(()=>{if(this.state._tag==="Open")this.state.finalizers.delete(key)})),newScope})},close(exit2){return suspend(()=>{if(this.state._tag==="Closed")return void_;let finalizers=Array.from(this.state.finalizers.values()).reverse();if(this.state={_tag:"Closed",exit:exit2},finalizers.length===0)return void_;return isSequential(this.strategy)?pipe(forEachSequential(finalizers,(fin)=>exit(fin(exit2))),flatMap8((results)=>pipe(exitCollectAll(results),map2(exitAsVoid),getOrElse(()=>exitVoid)))):isParallel(this.strategy)?pipe(forEachParUnbounded(finalizers,(fin)=>exit(fin(exit2)),!1),flatMap8((results)=>pipe(exitCollectAll(results,{parallel:!0}),map2(exitAsVoid),getOrElse(()=>exitVoid)))):pipe(forEachParN(finalizers,this.strategy.parallelism,(fin)=>exit(fin(exit2)),!1),flatMap8((results)=>pipe(exitCollectAll(results,{parallel:!0}),map2(exitAsVoid),getOrElse(()=>exitVoid))))})},addFinalizer(fin){return suspend(()=>{if(this.state._tag==="Closed")return fin(this.state.exit);return this.state.finalizers.set({},fin),void_})}},scopeUnsafeMake=(strategy=sequential2)=>{let scope2=Object.create(ScopeImplProto);return scope2.strategy=strategy,scope2.state={_tag:"Open",finalizers:new Map},scope2},scopeMake=(strategy=sequential2)=>sync(()=>scopeUnsafeMake(strategy)),scopeExtend=dual(2,(effect,scope2)=>mapInputContext(effect,merge3(make9(scopeTag,scope2)))),scopeUse=dual(2,(effect,scope2)=>pipe(effect,scopeExtend(scope2),onExit((exit2)=>scope2.close(exit2)))),fiberRefUnsafeMakeSupervisor=(initial)=>fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:empty22}),fiberRefLocallyScoped=dual(2,(self,value)=>asVoid(acquireRelease(flatMap8(fiberRefGet(self),(oldValue)=>as(fiberRefSet(self,value),oldValue)),(oldValue)=>fiberRefSet(self,oldValue)))),fiberRefLocallyScopedWith=dual(2,(self,f)=>fiberRefGetWith(self,(a)=>fiberRefLocallyScoped(self,f(a))));var currentRuntimeFlags=fiberRefUnsafeMakeRuntimeFlags(none5),currentSupervisor=fiberRefUnsafeMakeSupervisor(none8),fiberAwaitAll=(fibers)=>forEach5(fibers,_await),fiberAll=(fibers)=>{return{...CommitPrototype2,commit(){return join2(this)},[FiberTypeId]:fiberVariance2,id:()=>fromIterable(fibers).reduce((id,fiber)=>combine3(id,fiber.id()),none4),await:exit(forEachParUnbounded(fibers,(fiber)=>flatten5(fiber.await),!1)),children:map10(forEachParUnbounded(fibers,(fiber)=>fiber.children,!1),flatten),inheritAll:forEachSequentialDiscard(fibers,(fiber)=>fiber.inheritAll),poll:map10(forEachSequential(fibers,(fiber)=>fiber.poll),reduceRight(some2(exitSucceed([])),(optionB,optionA)=>{switch(optionA._tag){case"None":return none2();case"Some":switch(optionB._tag){case"None":return none2();case"Some":return some2(exitZipWith(optionA.value,optionB.value,{onSuccess:(a,chunk2)=>[a,...chunk2],onFailure:parallel}))}}})),interruptAsFork:(fiberId2)=>forEachSequentialDiscard(fibers,(fiber)=>fiber.interruptAsFork(fiberId2))}};var raceWith=dual(3,(self,other,options)=>raceFibersWith(self,other,{onSelfWin:(winner,loser)=>flatMap8(winner.await,(exit2)=>{switch(exit2._tag){case OP_SUCCESS:return flatMap8(winner.inheritAll,()=>options.onSelfDone(exit2,loser));case OP_FAILURE:return options.onSelfDone(exit2,loser)}}),onOtherWin:(winner,loser)=>flatMap8(winner.await,(exit2)=>{switch(exit2._tag){case OP_SUCCESS:return flatMap8(winner.inheritAll,()=>options.onOtherDone(exit2,loser));case OP_FAILURE:return options.onOtherDone(exit2,loser)}})})),disconnect=(self)=>uninterruptibleMask((restore)=>fiberIdWith((fiberId2)=>flatMap8(forkDaemon(restore(self)),(fiber)=>pipe(restore(join2(fiber)),onInterrupt(()=>pipe(fiber,interruptAsFork(fiberId2))))))),race=dual(2,(self,that)=>fiberIdWith((parentFiberId)=>raceWith(self,that,{onSelfDone:(exit2,right3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join2(right3),mapErrorCause((cause22)=>parallel(cause2,cause22))),onSuccess:(value)=>pipe(right3,interruptAsFiber(parentFiberId),as(value))}),onOtherDone:(exit2,left3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join2(left3),mapErrorCause((cause22)=>parallel(cause22,cause2))),onSuccess:(value)=>pipe(left3,interruptAsFiber(parentFiberId),as(value))})}))),raceFibersWith=dual(3,(self,other,options)=>withFiberRuntime((parentFiber,parentStatus)=>{let parentRuntimeFlags=parentStatus.runtimeFlags,raceIndicator=make11(!0),leftFiber=unsafeMakeChildFiber(self,parentFiber,parentRuntimeFlags,options.selfScope),rightFiber=unsafeMakeChildFiber(other,parentFiber,parentRuntimeFlags,options.otherScope);return async_((cb)=>{leftFiber.addObserver(()=>completeRace(leftFiber,rightFiber,options.onSelfWin,raceIndicator,cb)),rightFiber.addObserver(()=>completeRace(rightFiber,leftFiber,options.onOtherWin,raceIndicator,cb)),leftFiber.startFork(self),rightFiber.startFork(other)},combine3(leftFiber.id(),rightFiber.id()))})),completeRace=(winner,loser,cont,ab,cb)=>{if(compareAndSet(!0,!1)(ab))cb(cont(winner,loser))},ensuring=dual(2,(self,finalizer)=>uninterruptibleMask((restore)=>matchCauseEffect(restore(self),{onFailure:(cause1)=>matchCauseEffect(finalizer,{onFailure:(cause2)=>failCause(sequential(cause1,cause2)),onSuccess:()=>failCause(cause1)}),onSuccess:(a)=>as(finalizer,a)}))),invokeWithInterrupt=(self,entries2,onInterrupt2)=>fiberIdWith((id)=>flatMap8(flatMap8(forkDaemon(interruptible2(self)),(processing)=>async_((cb)=>{let counts=entries2.map((_)=>_.listeners.count),checkDone=()=>{if(counts.every((count)=>count===0)){if(entries2.every((_)=>{if(_.result.state.current._tag==="Pending")return!0;else if(_.result.state.current._tag==="Done"&&exitIsExit(_.result.state.current.effect)&&_.result.state.current.effect._tag==="Failure"&&isInterrupted(_.result.state.current.effect.cause))return!0;else return!1}))cleanup.forEach((f)=>f()),onInterrupt2?.(),cb(interruptFiber(processing))}};processing.addObserver((exit2)=>{cleanup.forEach((f)=>f()),cb(exit2)});let cleanup=entries2.map((r,i)=>{let observer=(count)=>{counts[i]=count,checkDone()};return r.listeners.addObserver(observer),()=>r.listeners.removeObserver(observer)});return checkDone(),sync(()=>{cleanup.forEach((f)=>f())})})),()=>suspend(()=>{let residual=entries2.flatMap((entry)=>{if(!entry.state.completed)return[entry];return[]});return forEachSequentialDiscard(residual,(entry)=>complete(entry.request,exitInterrupt(id)))})));var makeSpanScoped=(name,options)=>{return options=addSpanStackTrace(options),uninterruptible(withFiberRuntime((fiber)=>{let scope2=unsafeGet4(fiber.getFiberRef(currentContext),scopeTag),span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock_=get5(fiber.getFiberRef(currentServices),clockTag);return as(scopeAddFinalizerExit(scope2,(exit2)=>endSpan(span2,exit2,clock_,timingEnabled)),span2)}))},withTracerScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add4(tracerTag,value)),withSpanScoped=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return flatMap8(makeSpanScoped(name,addSpanStackTrace(options)),(span2)=>provideService(self,spanTag,span2))}return(self)=>flatMap8(makeSpanScoped(name,addSpanStackTrace(options)),(span2)=>provideService(self,spanTag,span2))};var IntervalSymbolKey="effect/ScheduleInterval",IntervalTypeId=Symbol.for(IntervalSymbolKey),empty23={[IntervalTypeId]:IntervalTypeId,startMillis:0,endMillis:0},make32=(startMillis,endMillis)=>{if(startMillis>endMillis)return empty23;return{[IntervalTypeId]:IntervalTypeId,startMillis,endMillis}},lessThan3=dual(2,(self,that)=>min3(self,that)===self),min3=dual(2,(self,that)=>{if(self.endMillis<=that.startMillis)return self;if(that.endMillis<=self.startMillis)return that;if(self.startMillis<that.startMillis)return self;if(that.startMillis<self.startMillis)return that;if(self.endMillis<=that.endMillis)return self;return that});var isEmpty6=(self)=>{return self.startMillis>=self.endMillis};var intersect=dual(2,(self,that)=>{let start=Math.max(self.startMillis,that.startMillis),end=Math.min(self.endMillis,that.endMillis);return make32(start,end)}),size7=(self)=>{return millis(self.endMillis-self.startMillis)};var after=(startMilliseconds)=>{return make32(startMilliseconds,Number.POSITIVE_INFINITY)};var make33=make32,empty24=empty23,lessThan4=lessThan3;var isEmpty7=isEmpty6;var intersect2=intersect,size8=size7;var after2=after;var IntervalsSymbolKey="effect/ScheduleIntervals",IntervalsTypeId=Symbol.for(IntervalsSymbolKey),make34=(intervals)=>{return{[IntervalsTypeId]:IntervalsTypeId,intervals}};var union6=dual(2,(self,that)=>{if(!isNonEmpty(that.intervals))return self;if(!isNonEmpty(self.intervals))return that;if(headNonEmpty2(self.intervals).startMillis<headNonEmpty2(that.intervals).startMillis)return unionLoop(tailNonEmpty2(self.intervals),that.intervals,headNonEmpty2(self.intervals),empty2());return unionLoop(self.intervals,tailNonEmpty2(that.intervals),headNonEmpty2(that.intervals),empty2())}),unionLoop=(_self,_that,_interval,_acc)=>{let self=_self,that=_that,interval=_interval,acc=_acc;while(isNonEmpty(self)||isNonEmpty(that))if(!isNonEmpty(self)&&isNonEmpty(that))if(interval.endMillis<headNonEmpty2(that).startMillis)acc=pipe(acc,prepend2(interval)),interval=headNonEmpty2(that),that=tailNonEmpty2(that),self=empty2();else interval=make33(interval.startMillis,headNonEmpty2(that).endMillis),that=tailNonEmpty2(that),self=empty2();else if(isNonEmpty(self)&&isEmpty(that))if(interval.endMillis<headNonEmpty2(self).startMillis)acc=pipe(acc,prepend2(interval)),interval=headNonEmpty2(self),that=empty2(),self=tailNonEmpty2(self);else interval=make33(interval.startMillis,headNonEmpty2(self).endMillis),that=empty2(),self=tailNonEmpty2(self);else if(isNonEmpty(self)&&isNonEmpty(that))if(headNonEmpty2(self).startMillis<headNonEmpty2(that).startMillis)if(interval.endMillis<headNonEmpty2(self).startMillis)acc=pipe(acc,prepend2(interval)),interval=headNonEmpty2(self),self=tailNonEmpty2(self);else interval=make33(interval.startMillis,headNonEmpty2(self).endMillis),self=tailNonEmpty2(self);else if(interval.endMillis<headNonEmpty2(that).startMillis)acc=pipe(acc,prepend2(interval)),interval=headNonEmpty2(that),that=tailNonEmpty2(that);else interval=make33(interval.startMillis,headNonEmpty2(that).endMillis),that=tailNonEmpty2(that);else throw Error(getBugErrorMessage("Intervals.unionLoop"));return make34(pipe(acc,prepend2(interval),reverse2))},intersect3=dual(2,(self,that)=>intersectLoop(self.intervals,that.intervals,empty2())),intersectLoop=(_left,_right,_acc)=>{let left3=_left,right3=_right,acc=_acc;while(isNonEmpty(left3)&&isNonEmpty(right3)){let interval=pipe(headNonEmpty2(left3),intersect2(headNonEmpty2(right3))),intervals=isEmpty7(interval)?acc:pipe(acc,prepend2(interval));if(pipe(headNonEmpty2(left3),lessThan4(headNonEmpty2(right3))))left3=tailNonEmpty2(left3);else right3=tailNonEmpty2(right3);acc=intervals}return make34(reverse2(acc))},start=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty24)).startMillis},end=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty24)).endMillis},lessThan5=dual(2,(self,that)=>start(self)<start(that)),isNonEmpty3=(self)=>{return isNonEmpty(self.intervals)},max4=dual(2,(self,that)=>lessThan5(self,that)?that:self);var make35=make34;var union7=union6,intersect4=intersect3,start2=start,end2=end,lessThan6=lessThan5,isNonEmpty4=isNonEmpty3,max5=max4;var OP_CONTINUE="Continue",OP_DONE2="Done",_continue=(intervals)=>{return{_tag:OP_CONTINUE,intervals}},continueWith=(interval)=>{return{_tag:OP_CONTINUE,intervals:make35(of2(interval))}},done4={_tag:OP_DONE2},isContinue=(self)=>{return self._tag===OP_CONTINUE},isDone3=(self)=>{return self._tag===OP_DONE2};var _continue2=_continue;var continueWith2=continueWith,done5=done4,isContinue2=isContinue,isDone4=isDone3;var Scope=scopeTag,addFinalizer2=scopeAddFinalizer,addFinalizerExit=scopeAddFinalizerExit,close=scopeClose,extend2=scopeExtend,fork2=scopeFork;var make36=scopeMake;class Semaphore{permits;waiters=new Set;taken=0;constructor(permits){this.permits=permits}get free(){return this.permits-this.taken}take=(n)=>asyncInterrupt((resume2)=>{if(this.free<n){let observer=()=>{if(this.free<n)return;this.waiters.delete(observer),this.taken+=n,resume2(succeed(n))};return this.waiters.add(observer),sync(()=>{this.waiters.delete(observer)})}return this.taken+=n,resume2(succeed(n))});updateTakenUnsafe(fiber,f){if(this.taken=f(this.taken),this.waiters.size>0)fiber.getFiberRef(currentScheduler).scheduleTask(()=>{let iter=this.waiters.values(),item=iter.next();while(item.done===!1&&this.free>0)item.value(),item=iter.next()},fiber.getFiberRef(currentSchedulingPriority));return succeed(this.free)}updateTaken(f){return withFiberRuntime((fiber)=>this.updateTakenUnsafe(fiber,f))}resize=(permits)=>asVoid(withFiberRuntime((fiber)=>{if(this.permits=permits,this.free<0)return void_;return this.updateTakenUnsafe(fiber,(taken)=>taken)}));release=(n)=>this.updateTaken((taken)=>taken-n);releaseAll=this.updateTaken((_)=>0);withPermits=(n)=>(self)=>uninterruptibleMask((restore)=>flatMap8(restore(this.take(n)),(permits)=>ensuring(restore(self),this.release(permits))));withPermitsIfAvailable=(n)=>(self)=>uninterruptibleMask((restore)=>suspend(()=>{if(this.free<n)return succeedNone;return this.taken+=n,ensuring(restore(asSome(self)),this.release(n))}))}var unsafeMakeSemaphore=(permits)=>new Semaphore(permits),makeSemaphore=(permits)=>sync(()=>unsafeMakeSemaphore(permits));class Latch extends Class{isOpen;waiters=[];scheduled=!1;constructor(isOpen){super();this.isOpen=isOpen}commit(){return this.await}unsafeSchedule(fiber){if(this.scheduled||this.waiters.length===0)return void_;return this.scheduled=!0,fiber.currentScheduler.scheduleTask(this.flushWaiters,fiber.getFiberRef(currentSchedulingPriority)),void_}flushWaiters=()=>{this.scheduled=!1;let waiters=this.waiters;this.waiters=[];for(let i=0;i<waiters.length;i++)waiters[i](exitVoid)};open=withFiberRuntime((fiber)=>{if(this.isOpen)return void_;return this.isOpen=!0,this.unsafeSchedule(fiber)});unsafeOpen(){if(this.isOpen)return;this.isOpen=!0,this.flushWaiters()}release=withFiberRuntime((fiber)=>{if(this.isOpen)return void_;return this.unsafeSchedule(fiber)});await=asyncInterrupt((resume2)=>{if(this.isOpen)return resume2(void_);return this.waiters.push(resume2),sync(()=>{let index=this.waiters.indexOf(resume2);if(index!==-1)this.waiters.splice(index,1)})});unsafeClose(){this.isOpen=!1}close=sync(()=>{this.isOpen=!1});whenOpen=(self)=>{return zipRight(this.await,self)}}var unsafeMakeLatch=(open)=>new Latch(open??!1),makeLatch=(open)=>sync(()=>unsafeMakeLatch(open)),awaitAllChildren=(self)=>ensuringChildren(self,fiberAwaitAll),cached2=dual(2,(self,timeToLive)=>map10(cachedInvalidateWithTTL(self,timeToLive),(tuple)=>tuple[0])),cachedInvalidateWithTTL=dual(2,(self,timeToLive)=>{let duration=decode(timeToLive);return flatMap8(context(),(env)=>map10(makeSynchronized(none2()),(cache)=>[provideContext(getCachedValue(self,duration,cache),env),invalidateCache(cache)]))}),computeCachedValue=(self,timeToLive,start3)=>{let timeToLiveMillis=toMillis(decode(timeToLive));return pipe(deferredMake(),tap((deferred)=>intoDeferred(self,deferred)),map10((deferred)=>some2([start3+timeToLiveMillis,deferred])))},getCachedValue=(self,timeToLive,cache)=>uninterruptibleMask((restore)=>pipe(clockWith3((clock2)=>clock2.currentTimeMillis),flatMap8((time)=>updateSomeAndGetEffectSynchronized(cache,(option2)=>{switch(option2._tag){case"None":return some2(computeCachedValue(self,timeToLive,time));case"Some":{let[end3]=option2.value;return end3-time<=0?some2(computeCachedValue(self,timeToLive,time)):none2()}}})),flatMap8((option2)=>isNone2(option2)?dieMessage("BUG: Effect.cachedInvalidate - please report an issue at https://github.com/Effect-TS/effect/issues"):restore(deferredAwait(option2.value[1]))))),invalidateCache=(cache)=>set4(cache,none2()),ensuringChild=dual(2,(self,f)=>ensuringChildren(self,(children)=>f(fiberAll(children)))),ensuringChildren=dual(2,(self,children)=>flatMap8(track,(supervisor)=>pipe(supervised(self,supervisor),ensuring(flatMap8(supervisor.value,children))))),forkAll=dual((args2)=>isIterable(args2[0]),(effects,options)=>options?.discard?forEachSequentialDiscard(effects,fork):map10(forEachSequential(effects,fork),fiberAll)),forkIn=dual(2,(self,scope2)=>withFiberRuntime((parent,parentStatus)=>{let scopeImpl=scope2,fiber=unsafeFork(self,parent,parentStatus.runtimeFlags,globalScope);if(scopeImpl.state._tag==="Open"){let finalizer=()=>fiberIdWith((fiberId2)=>equals(fiberId2,fiber.id())?void_:asVoid(interruptFiber(fiber))),key={};scopeImpl.state.finalizers.set(key,finalizer),fiber.addObserver(()=>{if(scopeImpl.state._tag==="Closed")return;scopeImpl.state.finalizers.delete(key)})}else fiber.unsafeInterruptAsFork(parent.id());return succeed(fiber)})),forkScoped=(self)=>scopeWith((scope2)=>forkIn(self,scope2)),fromFiber=(fiber)=>join2(fiber),fromFiberEffect=(fiber)=>suspend(()=>flatMap8(fiber,join2)),memoKeySymbol=Symbol.for("effect/Effect/memoizeFunction.key");class Key{a;eq;[memoKeySymbol]=memoKeySymbol;constructor(a,eq){this.a=a,this.eq=eq}[symbol2](that){if(hasProperty(that,memoKeySymbol))if(this.eq)return this.eq(this.a,that.a);else return equals(this.a,that.a);return!1}[symbol](){return this.eq?0:cached(this,hash(this.a))}}var cachedFunction=(f,eq)=>{return pipe(sync(()=>empty21()),flatMap8(makeSynchronized),map10((ref)=>(a)=>pipe(ref.modifyEffect((map13)=>{let result=pipe(map13,get12(new Key(a,eq)));if(isNone2(result))return pipe(deferredMake(),tap((deferred)=>pipe(diffFiberRefs(f(a)),intoDeferred(deferred),fork)),map10((deferred)=>[deferred,pipe(map13,set6(new Key(a,eq),deferred))]));return succeed([result.value,map13])}),flatMap8(deferredAwait),flatMap8(([patch9,b])=>pipe(patchFiberRefs(patch9),as(b))))))},raceFirst=dual(2,(self,that)=>pipe(exit(self),race(exit(that)),(effect)=>flatten5(effect))),supervised=dual(2,(self,supervisor)=>{return fiberRefLocallyWith(currentSupervisor,(s)=>s.zip(supervisor))(self)}),timeout=dual(2,(self,duration)=>timeoutFail(self,{onTimeout:()=>timeoutExceptionFromDuration(duration),duration})),timeoutFail=dual(2,(self,{duration,onTimeout})=>flatten5(timeoutTo(self,{onTimeout:()=>failSync(onTimeout),onSuccess:succeed,duration}))),timeoutFailCause=dual(2,(self,{duration,onTimeout})=>flatten5(timeoutTo(self,{onTimeout:()=>failCauseSync(onTimeout),onSuccess:succeed,duration}))),timeoutOption=dual(2,(self,duration)=>timeoutTo(self,{duration,onSuccess:some2,onTimeout:none2})),timeoutTo=dual(2,(self,{duration,onSuccess,onTimeout})=>fiberIdWith((parentFiberId)=>uninterruptibleMask((restore)=>raceFibersWith(restore(self),interruptible2(sleep3(duration)),{onSelfWin:(winner,loser)=>flatMap8(winner.await,(exit2)=>{if(exit2._tag==="Success")return flatMap8(winner.inheritAll,()=>as(interruptAsFiber(loser,parentFiberId),onSuccess(exit2.value)));else return flatMap8(interruptAsFiber(loser,parentFiberId),()=>exitFailCause(exit2.cause))}),onOtherWin:(winner,loser)=>flatMap8(winner.await,(exit2)=>{if(exit2._tag==="Success")return flatMap8(winner.inheritAll,()=>as(interruptAsFiber(loser,parentFiberId),onTimeout()));else return flatMap8(interruptAsFiber(loser,parentFiberId),()=>exitFailCause(exit2.cause))}),otherScope:globalScope})))),SynchronizedSymbolKey="effect/Ref/SynchronizedRef",SynchronizedTypeId=Symbol.for(SynchronizedSymbolKey),synchronizedVariance={_A:(_)=>_};class SynchronizedImpl extends Class{ref;withLock;[SynchronizedTypeId]=synchronizedVariance;[RefTypeId]=refVariance;[TypeId10]=TypeId10;constructor(ref,withLock){super();this.ref=ref,this.withLock=withLock,this.get=get10(this.ref)}get;commit(){return this.get}modify(f){return this.modifyEffect((a)=>succeed(f(a)))}modifyEffect(f){return this.withLock(pipe(flatMap8(get10(this.ref),f),flatMap8(([b,a])=>as(set4(this.ref,a),b))))}}var makeSynchronized=(value)=>sync(()=>unsafeMakeSynchronized(value)),unsafeMakeSynchronized=(value)=>{let ref=unsafeMake5(value),sem=unsafeMakeSemaphore(1);return new SynchronizedImpl(ref,sem.withPermits(1))},updateSomeAndGetEffectSynchronized=dual(2,(self,pf)=>self.modifyEffect((value)=>{let result=pf(value);switch(result._tag){case"None":return succeed([value,value]);case"Some":return map10(result.value,(a)=>[a,a])}}));var bindAll=dual((args2)=>isEffect(args2[0]),(self,f,options)=>flatMap8(self,(a)=>all4(f(a),options).pipe(map10((record)=>Object.assign({},a,record)))));var TypeId12=Symbol.for("effect/ManagedRuntime");var OP_EXTEND_SCOPE="ExtendScope",OP_FOLD="Fold",OP_FRESH="Fresh",OP_FROM_EFFECT="FromEffect",OP_SCOPED="Scoped",OP_SUSPEND="Suspend",OP_PROVIDE="Provide",OP_PROVIDE_MERGE="ProvideMerge",OP_MERGE_ALL="MergeAll",OP_ZIP_WITH2="ZipWith";var _await2=_await;var inheritAll2=inheritAll,interrupt5=interruptFiber;var interruptAs=interruptAsFiber;var join3=join2;var poll2=poll;var makeDual=(f)=>function(){if(arguments.length===1){let runtime2=arguments[0];return(effect,...args2)=>f(runtime2,effect,...args2)}return f.apply(this,arguments)},unsafeFork2=makeDual((runtime2,self,options)=>{let fiberId2=unsafeMake3(),fiberRefUpdates=[[currentContext,[[fiberId2,runtime2.context]]]];if(options?.scheduler)fiberRefUpdates.push([currentScheduler,[[fiberId2,options.scheduler]]]);let fiberRefs3=updateManyAs2(runtime2.fiberRefs,{entries:fiberRefUpdates,forkAs:fiberId2});if(options?.updateRefs)fiberRefs3=options.updateRefs(fiberRefs3,fiberId2);let fiberRuntime=new FiberRuntime(fiberId2,fiberRefs3,runtime2.runtimeFlags),effect=self;if(options?.scope)effect=flatMap8(fork2(options.scope,sequential2),(closeableScope)=>zipRight(scopeAddFinalizer(closeableScope,fiberIdWith((id2)=>equals(id2,fiberRuntime.id())?void_:interruptAsFiber(fiberRuntime,id2))),onExit(self,(exit2)=>close(closeableScope,exit2))));let supervisor=fiberRuntime.currentSupervisor;if(supervisor!==none8)supervisor.onStart(runtime2.context,effect,none2(),fiberRuntime),fiberRuntime.addObserver((exit2)=>supervisor.onEnd(exit2,fiberRuntime));if(globalScope.add(runtime2.runtimeFlags,fiberRuntime),options?.immediate===!1)fiberRuntime.resume(effect);else fiberRuntime.start(effect);return fiberRuntime}),unsafeRunCallback=makeDual((runtime2,effect,options={})=>{let fiberRuntime=unsafeFork2(runtime2,effect,options);if(options.onExit)fiberRuntime.addObserver((exit2)=>{options.onExit(exit2)});return(id2,cancelOptions)=>unsafeRunCallback(runtime2)(pipe(fiberRuntime,interruptAs(id2??none4)),{...cancelOptions,onExit:cancelOptions?.onExit?(exit2)=>cancelOptions.onExit(flatten6(exit2)):void 0})}),unsafeRunSync=makeDual((runtime2,effect)=>{let result=unsafeRunSyncExit(runtime2)(effect);if(result._tag==="Failure")throw fiberFailure(result.effect_instruction_i0);return result.effect_instruction_i0});class AsyncFiberExceptionImpl extends Error{fiber;_tag="AsyncFiberException";constructor(fiber){super(`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`);this.fiber=fiber,this.name=this._tag,this.stack=this.message}}var asyncFiberException=(fiber)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=0;let error=new AsyncFiberExceptionImpl(fiber);return Error.stackTraceLimit=limit,error};var FiberFailureId=Symbol.for("effect/Runtime/FiberFailure"),FiberFailureCauseId=Symbol.for("effect/Runtime/FiberFailure/Cause");class FiberFailureImpl extends Error{[FiberFailureId];[FiberFailureCauseId];constructor(cause2){let head4=prettyErrors(cause2)[0];super(head4?.message||"An error has occurred");if(this[FiberFailureId]=FiberFailureId,this[FiberFailureCauseId]=cause2,this.name=head4?`(FiberFailure) ${head4.name}`:"FiberFailure",head4?.stack)this.stack=head4.stack}toJSON(){return{_id:"FiberFailure",cause:this[FiberFailureCauseId].toJSON()}}toString(){return"(FiberFailure) "+pretty(this[FiberFailureCauseId],{renderErrorCause:!0})}[NodeInspectSymbol](){return this.toString()}}var fiberFailure=(cause2)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=0;let error=new FiberFailureImpl(cause2);return Error.stackTraceLimit=limit,error};var fastPath=(effect)=>{let op=effect;switch(op._op){case"Failure":case"Success":return op;case"Left":return exitFail(op.left);case"Right":return exitSucceed(op.right);case"Some":return exitSucceed(op.value);case"None":return exitFail(NoSuchElementException())}},unsafeRunSyncExit=makeDual((runtime2,effect)=>{let op=fastPath(effect);if(op)return op;let scheduler=new SyncScheduler,fiberRuntime=unsafeFork2(runtime2)(effect,{scheduler});scheduler.flush();let result=fiberRuntime.unsafePoll();if(result)return result;return exitDie(capture(asyncFiberException(fiberRuntime),currentSpanFromFiber(fiberRuntime)))}),unsafeRunPromise=makeDual((runtime2,effect,options)=>unsafeRunPromiseExit(runtime2,effect,options).then((result)=>{switch(result._tag){case OP_SUCCESS:return result.effect_instruction_i0;case OP_FAILURE:throw fiberFailure(result.effect_instruction_i0)}})),unsafeRunPromiseExit=makeDual((runtime2,effect,options)=>new Promise((resolve)=>{let op=fastPath(effect);if(op)resolve(op);let fiber=unsafeFork2(runtime2)(effect);if(fiber.addObserver((exit2)=>{resolve(exit2)}),options?.signal!==void 0)if(options.signal.aborted)fiber.unsafeInterruptAsFork(fiber.id());else options.signal.addEventListener("abort",()=>{fiber.unsafeInterruptAsFork(fiber.id())},{once:!0})}));class RuntimeImpl{context;runtimeFlags;fiberRefs;constructor(context2,runtimeFlags2,fiberRefs3){this.context=context2,this.runtimeFlags=runtimeFlags2,this.fiberRefs=fiberRefs3}pipe(){return pipeArguments(this,arguments)}}var make37=(options)=>new RuntimeImpl(options.context,options.runtimeFlags,options.fiberRefs),runtime2=()=>withFiberRuntime((state,status2)=>succeed(new RuntimeImpl(state.getFiberRef(currentContext),status2.runtimeFlags,state.getFiberRefs()))),defaultRuntimeFlags=make16(Interruption,CooperativeYielding,RuntimeMetrics),defaultRuntime=make37({context:empty8(),runtimeFlags:defaultRuntimeFlags,fiberRefs:empty19()});var unsafeRunEffect=unsafeRunCallback(defaultRuntime),unsafeForkEffect=unsafeFork2(defaultRuntime),unsafeRunPromiseEffect=unsafeRunPromise(defaultRuntime),unsafeRunPromiseExitEffect=unsafeRunPromiseExit(defaultRuntime),unsafeRunSyncEffect=unsafeRunSync(defaultRuntime),unsafeRunSyncExitEffect=unsafeRunSyncExit(defaultRuntime),asyncEffect=(register)=>suspend(()=>{let cleanup=void 0;return flatMap8(deferredMake(),(deferred)=>flatMap8(runtime2(),(runtime3)=>uninterruptibleMask((restore)=>zipRight(fork(restore(matchCauseEffect(register((cb)=>unsafeRunCallback(runtime3)(intoDeferred(cb,deferred))),{onFailure:(cause2)=>deferredFailCause(deferred,cause2),onSuccess:(cleanup_)=>{return cleanup=cleanup_,void_}}))),restore(onInterrupt(deferredAwait(deferred),()=>cleanup??void_))))))});var modifyEffect=dual(2,(self,f)=>self.modifyEffect(f));var LayerSymbolKey="effect/Layer",LayerTypeId=Symbol.for(LayerSymbolKey),layerVariance={_RIn:(_)=>_,_E:(_)=>_,_ROut:(_)=>_},proto3={[LayerTypeId]:layerVariance,pipe(){return pipeArguments(this,arguments)}},MemoMapTypeIdKey="effect/Layer/MemoMap",MemoMapTypeId=Symbol.for(MemoMapTypeIdKey),CurrentMemoMap=Reference2()("effect/Layer/CurrentMemoMap",{defaultValue:()=>unsafeMakeMemoMap()}),isLayer=(u)=>hasProperty(u,LayerTypeId),isFresh=(self)=>{return self._op_layer===OP_FRESH};class MemoMapImpl{ref;[MemoMapTypeId];constructor(ref){this.ref=ref,this[MemoMapTypeId]=MemoMapTypeId}getOrElseMemoize(layer,scope2){return pipe(modifyEffect(this.ref,(map14)=>{let inMap=map14.get(layer);if(inMap!==void 0){let[acquire,release]=inMap,cached3=pipe(acquire,flatMap8(([patch9,b])=>pipe(patchFiberRefs(patch9),as(b))),onExit(exitMatch({onFailure:()=>void_,onSuccess:()=>scopeAddFinalizerExit(scope2,release)})));return succeed([cached3,map14])}return pipe(make23(0),flatMap8((observers)=>pipe(deferredMake(),flatMap8((deferred)=>pipe(make23(()=>void_),map10((finalizerRef)=>{let resource=uninterruptibleMask((restore)=>pipe(scopeMake(),flatMap8((innerScope)=>pipe(restore(flatMap8(makeBuilder(layer,innerScope,!0),(f)=>diffFiberRefs(f(this)))),exit,flatMap8((exit2)=>{switch(exit2._tag){case OP_FAILURE:return pipe(deferredFailCause(deferred,exit2.effect_instruction_i0),zipRight(scopeClose(innerScope,exit2)),zipRight(failCause(exit2.effect_instruction_i0)));case OP_SUCCESS:return pipe(set4(finalizerRef,(exit3)=>pipe(scopeClose(innerScope,exit3),whenEffect(modify3(observers,(n)=>[n===1,n-1])),asVoid)),zipRight(update2(observers,(n)=>n+1)),zipRight(scopeAddFinalizerExit(scope2,(exit3)=>pipe(sync(()=>map14.delete(layer)),zipRight(get10(finalizerRef)),flatMap8((finalizer)=>finalizer(exit3))))),zipRight(deferredSucceed(deferred,exit2.effect_instruction_i0)),as(exit2.effect_instruction_i0[1]))}}))))),memoized=[pipe(deferredAwait(deferred),onExit(exitMatchEffect({onFailure:()=>void_,onSuccess:()=>update2(observers,(n)=>n+1)}))),(exit2)=>pipe(get10(finalizerRef),flatMap8((finalizer)=>finalizer(exit2)))];return[resource,isFresh(layer)?map14:map14.set(layer,memoized)]}))))))}),flatten5)}}var makeMemoMap=suspend(()=>map10(makeSynchronized(new Map),(ref)=>new MemoMapImpl(ref))),unsafeMakeMemoMap=()=>new MemoMapImpl(unsafeMakeSynchronized(new Map)),build=(self)=>scopeWith((scope2)=>buildWithScope(self,scope2)),buildWithScope=dual(2,(self,scope2)=>flatMap8(makeMemoMap,(memoMap)=>buildWithMemoMap(self,memoMap,scope2))),buildWithMemoMap=dual(3,(self,memoMap,scope2)=>flatMap8(makeBuilder(self,scope2),(run)=>provideService(run(memoMap),CurrentMemoMap,memoMap))),makeBuilder=(self,scope2,inMemoMap=!1)=>{let op=self;switch(op._op_layer){case"Locally":return sync(()=>(memoMap)=>op.f(memoMap.getOrElseMemoize(op.self,scope2)));case"ExtendScope":return sync(()=>(memoMap)=>scopeWith((scope3)=>memoMap.getOrElseMemoize(op.layer,scope3)));case"Fold":return sync(()=>(memoMap)=>pipe(memoMap.getOrElseMemoize(op.layer,scope2),matchCauseEffect({onFailure:(cause2)=>memoMap.getOrElseMemoize(op.failureK(cause2),scope2),onSuccess:(value)=>memoMap.getOrElseMemoize(op.successK(value),scope2)})));case"Fresh":return sync(()=>(_)=>pipe(op.layer,buildWithScope(scope2)));case"FromEffect":return inMemoMap?sync(()=>(_)=>op.effect):sync(()=>(memoMap)=>memoMap.getOrElseMemoize(self,scope2));case"Provide":return sync(()=>(memoMap)=>pipe(memoMap.getOrElseMemoize(op.first,scope2),flatMap8((env)=>pipe(memoMap.getOrElseMemoize(op.second,scope2),provideContext(env)))));case"Scoped":return inMemoMap?sync(()=>(_)=>scopeExtend(op.effect,scope2)):sync(()=>(memoMap)=>memoMap.getOrElseMemoize(self,scope2));case"Suspend":return sync(()=>(memoMap)=>memoMap.getOrElseMemoize(op.evaluate(),scope2));case"ProvideMerge":return sync(()=>(memoMap)=>pipe(memoMap.getOrElseMemoize(op.first,scope2),zipWith3(memoMap.getOrElseMemoize(op.second,scope2),op.zipK)));case"ZipWith":return gen(function*(){let parallelScope=yield*scopeFork(scope2,parallel2),firstScope=yield*scopeFork(parallelScope,sequential2),secondScope=yield*scopeFork(parallelScope,sequential2);return(memoMap)=>pipe(memoMap.getOrElseMemoize(op.first,firstScope),zipWithOptions(memoMap.getOrElseMemoize(op.second,secondScope),op.zipK,{concurrent:!0}))});case"MergeAll":{let layers=op.layers;return map10(scopeFork(scope2,parallel2),(parallelScope)=>(memoMap)=>{let contexts=Array(layers.length);return map10(forEachConcurrentDiscard(layers,fnUntraced(function*(layer,i){let scope3=yield*scopeFork(parallelScope,sequential2),context2=yield*memoMap.getOrElseMemoize(layer,scope3);contexts[i]=context2}),!1,!1),()=>mergeAll2(...contexts))})}}},catchAll2=dual(2,(self,onFailure)=>match11(self,{onFailure,onSuccess:succeedContext})),catchAllCause2=dual(2,(self,onFailure)=>matchCause2(self,{onFailure,onSuccess:succeedContext})),die5=(defect)=>failCause5(die3(defect)),dieSync2=(evaluate2)=>failCauseSync2(()=>die3(evaluate2())),discard=(self)=>map14(self,()=>empty8()),context2=()=>fromEffectContext(context()),extendScope=(self)=>{let extendScope2=Object.create(proto3);return extendScope2._op_layer=OP_EXTEND_SCOPE,extendScope2.layer=self,extendScope2},fail6=(error)=>failCause5(fail3(error)),failSync2=(evaluate2)=>failCauseSync2(()=>fail3(evaluate2())),failCause5=(cause2)=>fromEffectContext(failCause(cause2)),failCauseSync2=(evaluate2)=>fromEffectContext(failCauseSync(evaluate2)),flatMap10=dual(2,(self,f)=>match11(self,{onFailure:fail6,onSuccess:f})),flatten7=dual(2,(self,tag)=>flatMap10(self,get5(tag))),fresh=(self)=>{let fresh2=Object.create(proto3);return fresh2._op_layer=OP_FRESH,fresh2.layer=self,fresh2},fromEffect3=dual(2,(a,b)=>{let tagFirst=isTag2(a),tag=tagFirst?a:b;return fromEffectContext(map10(tagFirst?b:a,(service)=>make9(tag,service)))}),fromEffectDiscard=(effect)=>fromEffectContext(map10(effect,()=>empty8()));function fromEffectContext(effect){let fromEffect4=Object.create(proto3);return fromEffect4._op_layer=OP_FROM_EFFECT,fromEffect4.effect=effect,fromEffect4}var fiberRefLocally2=dual(3,(self,ref,value)=>locallyEffect(self,fiberRefLocally(ref,value))),locallyEffect=dual(2,(self,f)=>{let locally=Object.create(proto3);return locally._op_layer="Locally",locally.self=self,locally.f=f,locally}),fiberRefLocallyWith2=dual(3,(self,ref,value)=>locallyEffect(self,fiberRefLocallyWith(ref,value))),fiberRefLocallyScoped2=(self,value)=>scopedDiscard(fiberRefLocallyScoped(self,value)),fiberRefLocallyScopedWith2=(self,value)=>scopedDiscard(fiberRefLocallyScopedWith(self,value)),fromFunction=(tagA,tagB,f)=>fromEffectContext(map10(tagA,(a)=>make9(tagB,f(a)))),launch=(self)=>scopedEffect(zipRight(scopeWith((scope2)=>pipe(self,buildWithScope(scope2))),never)),mock=function(){if(arguments.length===1)return(service)=>mockImpl(arguments[0],service);return mockImpl(arguments[0],arguments[1])},mockImpl=(tag,service)=>succeed5(tag,new Proxy({...service},{get(target,prop,_receiver){if(prop in target)return target[prop];let prevLimit=Error.stackTraceLimit;Error.stackTraceLimit=2;let error=Error(`${tag.key}: Unimplemented method "${prop.toString()}"`);return Error.stackTraceLimit=prevLimit,error.name="UnimplementedError",makeUnimplemented(error)},has:constTrue})),makeUnimplemented=(error)=>{let dead=die2(error);function unimplemented(){return dead}return Object.assign(unimplemented,dead),Object.setPrototypeOf(unimplemented,Object.getPrototypeOf(dead)),unimplemented},map14=dual(2,(self,f)=>flatMap10(self,(context3)=>succeedContext(f(context3)))),mapError2=dual(2,(self,f)=>catchAll2(self,(error)=>failSync2(()=>f(error)))),matchCause2=dual(2,(self,{onFailure,onSuccess})=>{let fold=Object.create(proto3);return fold._op_layer=OP_FOLD,fold.layer=self,fold.failureK=onFailure,fold.successK=onSuccess,fold}),match11=dual(2,(self,{onFailure,onSuccess})=>matchCause2(self,{onFailure:(cause2)=>{let failureOrCause3=failureOrCause2(cause2);switch(failureOrCause3._tag){case"Left":return onFailure(failureOrCause3.left);case"Right":return failCause5(failureOrCause3.right)}},onSuccess})),memoize2=(self)=>scopeWith((scope2)=>map10(memoize(buildWithScope(self,scope2)),fromEffectContext)),merge6=dual(2,(self,that)=>zipWith4(self,that,(a,b)=>merge3(a,b))),mergeAll4=(...layers)=>{let mergeAll5=Object.create(proto3);return mergeAll5._op_layer=OP_MERGE_ALL,mergeAll5.layers=layers,mergeAll5},orDie2=(self)=>catchAll2(self,(defect)=>die5(defect)),orElse4=dual(2,(self,that)=>catchAll2(self,that)),passthrough=(self)=>merge6(context2(),self),project=dual(4,(self,tagA,tagB,f)=>map14(self,(context3)=>make9(tagB,f(unsafeGet4(context3,tagA))))),retry=dual(2,(self,schedule)=>suspend2(()=>{let stateTag=GenericTag("effect/Layer/retry/{ state: unknown }");return pipe(succeed5(stateTag,{state:schedule.initial}),flatMap10((env)=>retryLoop(self,schedule,stateTag,pipe(env,get5(stateTag)).state)))})),retryLoop=(self,schedule,stateTag,state)=>{return pipe(self,catchAll2((error)=>pipe(retryUpdate(schedule,stateTag,error,state),flatMap10((env)=>fresh(retryLoop(self,schedule,stateTag,pipe(env,get5(stateTag)).state))))))},retryUpdate=(schedule,stateTag,error,state)=>{return fromEffect3(stateTag,pipe(currentTimeMillis2,flatMap8((now)=>pipe(schedule.step(now,error,state),flatMap8(([state2,_,decision])=>isDone4(decision)?fail2(error):pipe(sleep2(millis(start2(decision.intervals)-now)),as({state:state2})))))))},scoped=dual(2,(a,b)=>{let tagFirst=isTag2(a),tag=tagFirst?a:b;return scopedContext(map10(tagFirst?b:a,(service)=>make9(tag,service)))}),scopedDiscard=(effect)=>scopedContext(pipe(effect,as(empty8()))),scopedContext=(effect)=>{let scoped2=Object.create(proto3);return scoped2._op_layer=OP_SCOPED,scoped2.effect=effect,scoped2},scope2=scopedContext(map10(acquireRelease(scopeMake(),(scope3,exit2)=>scope3.close(exit2)),(scope3)=>make9(Scope,scope3))),service=(tag)=>fromEffect3(tag,tag),succeed5=dual(2,(a,b)=>{let tagFirst=isTag2(a);return fromEffectContext(succeed(make9(tagFirst?a:b,tagFirst?b:a)))}),succeedContext=(context3)=>{return fromEffectContext(succeed(context3))},empty26=succeedContext(empty8()),suspend2=(evaluate2)=>{let suspend3=Object.create(proto3);return suspend3._op_layer=OP_SUSPEND,suspend3.evaluate=evaluate2,suspend3},sync2=dual(2,(a,b)=>{let tagFirst=isTag2(a),tag=tagFirst?a:b,evaluate2=tagFirst?b:a;return fromEffectContext(sync(()=>make9(tag,evaluate2())))}),syncContext=(evaluate2)=>{return fromEffectContext(sync(evaluate2))},tap2=dual(2,(self,f)=>flatMap10(self,(context3)=>fromEffectContext(as(f(context3),context3)))),tapError2=dual(2,(self,f)=>catchAll2(self,(e)=>fromEffectContext(flatMap8(f(e),()=>fail2(e))))),tapErrorCause2=dual(2,(self,f)=>catchAllCause2(self,(cause2)=>fromEffectContext(flatMap8(f(cause2),()=>failCause(cause2))))),toRuntime=(self)=>pipe(scopeWith((scope3)=>buildWithScope(self,scope3)),flatMap8((context3)=>pipe(runtime2(),provideContext(context3)))),toRuntimeWithMemoMap=dual(2,(self,memoMap)=>flatMap8(scopeWith((scope3)=>buildWithMemoMap(self,memoMap,scope3)),(context3)=>pipe(runtime2(),provideContext(context3)))),provide=dual(2,(self,that)=>suspend2(()=>{let provideTo=Object.create(proto3);return provideTo._op_layer=OP_PROVIDE,provideTo.first=Object.create(proto3,{_op_layer:{value:OP_PROVIDE_MERGE,enumerable:!0},first:{value:context2(),enumerable:!0},second:{value:Array.isArray(that)?mergeAll4(...that):that},zipK:{value:(a,b)=>pipe(a,merge3(b))}}),provideTo.second=self,provideTo})),provideMerge=dual(2,(that,self)=>{let zipWith4=Object.create(proto3);return zipWith4._op_layer=OP_PROVIDE_MERGE,zipWith4.first=self,zipWith4.second=provide(that,self),zipWith4.zipK=(a,b)=>{return pipe(a,merge3(b))},zipWith4}),zipWith4=dual(3,(self,that,f)=>suspend2(()=>{let zipWith5=Object.create(proto3);return zipWith5._op_layer=OP_ZIP_WITH2,zipWith5.first=self,zipWith5.second=that,zipWith5.zipK=f,zipWith5})),unwrapEffect=(self)=>{let tag=GenericTag("effect/Layer/unwrapEffect/Layer.Layer<R1, E1, A>");return flatMap10(fromEffect3(tag,self),(context3)=>get5(context3,tag))},unwrapScoped=(self)=>{let tag=GenericTag("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>");return flatMap10(scoped(tag,self),(context3)=>get5(context3,tag))},annotateLogs2=dual((args2)=>isLayer(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith2(args2[0],currentLogAnnotations,typeof args2[1]==="string"?set3(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),annotateSpans2=dual((args2)=>isLayer(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith2(args2[0],currentTracerSpanAnnotations,typeof args2[1]==="string"?set3(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),withSpan2=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return unwrapScoped(map10(options?.onEnd?tap(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))}return(self)=>unwrapScoped(map10(options?.onEnd?tap(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))},withParentSpan2=dual(2,(self,span2)=>provide(self,succeedContext(make9(spanTag,span2)))),provideSomeLayer=dual(2,(self,layer)=>scopedWith((scope3)=>flatMap8(buildWithScope(layer,scope3),(context3)=>provideSomeContext(self,context3)))),provideSomeRuntime=dual(2,(self,rt)=>{let patchRefs=diff6(defaultRuntime.fiberRefs,rt.fiberRefs),patchFlags=diff4(defaultRuntime.runtimeFlags,rt.runtimeFlags);return uninterruptibleMask((restore)=>withFiberRuntime((fiber)=>{let oldContext=fiber.getFiberRef(currentContext),oldRefs=fiber.getFiberRefs(),newRefs=patch7(fiber.id(),oldRefs)(patchRefs),oldFlags=fiber.currentRuntimeFlags,newFlags=patch4(patchFlags)(oldFlags),rollbackRefs=diff6(newRefs,oldRefs),rollbackFlags=diff4(newFlags,oldFlags);return fiber.setFiberRefs(newRefs),fiber.currentRuntimeFlags=newFlags,ensuring(provideSomeContext(restore(self),merge3(oldContext,rt.context)),withFiberRuntime((fiber2)=>{return fiber2.setFiberRefs(patch7(fiber2.id(),fiber2.getFiberRefs())(rollbackRefs)),fiber2.currentRuntimeFlags=patch4(rollbackFlags)(fiber2.currentRuntimeFlags),void_}))}))}),effect_provide=dual(2,(self,source)=>{if(Array.isArray(source))return provideSomeLayer(self,mergeAll4(...source));else if(isLayer(source))return provideSomeLayer(self,source);else if(isContext2(source))return provideSomeContext(self,source);else if(TypeId12 in source)return flatMap8(source.runtimeEffect,(rt)=>provideSomeRuntime(self,rt));else return provideSomeRuntime(self,source)});var console2=map10(fiberRefGet(currentServices),get5(consoleTag)),consoleWith=(f)=>fiberRefGetWith(currentServices,(services)=>f(get5(services,consoleTag))),withConsole=dual(2,(effect,value)=>fiberRefLocallyWith(effect,currentServices,add4(consoleTag,value))),withConsoleScoped=(console3)=>fiberRefLocallyScopedWith(currentServices,add4(consoleTag,console3)),setConsole=(console3)=>scopedDiscard(fiberRefLocallyScopedWith(currentServices,add4(consoleTag,console3))),assert=(condition,...args2)=>consoleWith((_)=>_.assert(condition,...args2)),clear=consoleWith((_)=>_.clear),count=(label)=>consoleWith((_)=>_.count(label)),countReset=(label)=>consoleWith((_)=>_.countReset(label)),debug=(...args2)=>consoleWith((_)=>_.debug(...args2)),dir=(item,options)=>consoleWith((_)=>_.dir(item,options)),dirxml=(...args2)=>consoleWith((_)=>_.dirxml(...args2)),error=(...args2)=>consoleWith((_)=>_.error(...args2)),group=(options)=>consoleWith((_)=>acquireRelease(_.group(options),()=>_.groupEnd)),info=(...args2)=>consoleWith((_)=>_.info(...args2)),log2=(...args2)=>consoleWith((_)=>_.log(...args2)),table=(tabularData,properties)=>consoleWith((_)=>_.table(tabularData,properties)),time=(label)=>consoleWith((_)=>acquireRelease(_.time(label),()=>_.timeEnd(label))),timeLog=(label,...args2)=>consoleWith((_)=>_.timeLog(label,...args2)),trace=(...args2)=>consoleWith((_)=>_.trace(...args2)),warn=(...args2)=>consoleWith((_)=>_.warn(...args2)),withGroup=dual((args2)=>isEffect(args2[0]),(self,options)=>consoleWith((_)=>acquireUseRelease(_.group(options),()=>self,()=>_.groupEnd))),withTime=dual((args2)=>isEffect(args2[0]),(self,label)=>consoleWith((_)=>acquireUseRelease(_.time(label),()=>self,()=>_.timeEnd(label))));var exports_Data={};__export(exports_Data,{unsafeStruct:()=>unsafeStruct,unsafeArray:()=>unsafeArray,tuple:()=>tuple,taggedEnum:()=>taggedEnum,tagged:()=>tagged2,struct:()=>struct2,case:()=>_case,array:()=>array3,TaggedError:()=>TaggedError,TaggedClass:()=>TaggedClass,Structural:()=>Structural2,Error:()=>Error3,Class:()=>Class2});var struct2=struct,unsafeStruct=(as3)=>Object.setPrototypeOf(as3,StructuralPrototype),tuple=(...as3)=>unsafeArray(as3),array3=(as3)=>unsafeArray(as3.slice(0)),unsafeArray=(as3)=>Object.setPrototypeOf(as3,ArrayProto),_case=()=>(args2)=>args2===void 0?Object.create(StructuralPrototype):struct2(args2);var tagged2=(tag)=>(args2)=>{let value=args2===void 0?Object.create(StructuralPrototype):struct2(args2);return value._tag=tag,value},Class2=Structural,TaggedClass=(tag)=>{class Base3 extends Class2{_tag=tag}return Base3},Structural2=Structural,taggedEnum=()=>new Proxy({},{get(_target,tag,_receiver){if(tag==="$is")return isTagged;else if(tag==="$match")return taggedMatch;return tagged2(tag)}});function taggedMatch(){if(arguments.length===1){let cases2=arguments[0];return function(value2){return cases2[value2._tag](value2)}}let value=arguments[0];return arguments[1][value._tag](value)}var Error3=function(){let plainArgsSymbol=Symbol.for("effect/Data/Error/plainArgs");return{BaseEffectError:class extends YieldableError{constructor(args2){super(args2?.message,args2?.cause?{cause:args2.cause}:void 0);if(args2)Object.assign(this,args2),Object.defineProperty(this,plainArgsSymbol,{value:args2,enumerable:!1})}toJSON(){return{...this[plainArgsSymbol],...this}}}}.BaseEffectError}(),TaggedError=(tag)=>{let O={BaseEffectError:class extends Error3{_tag=tag}};return O.BaseEffectError.prototype.name=tag,O.BaseEffectError};var TypeId13=Symbol.for("effect/DateTime"),TimeZoneTypeId=Symbol.for("effect/DateTime/TimeZone"),Proto2={[TypeId13]:TypeId13,pipe(){return pipeArguments(this,arguments)},[NodeInspectSymbol](){return this.toString()},toJSON(){return toDateUtc(this).toJSON()}},ProtoUtc={...Proto2,_tag:"Utc",[symbol](){return cached(this,number2(this.epochMillis))},[symbol2](that){return isDateTime(that)&&that._tag==="Utc"&&this.epochMillis===that.epochMillis},toString(){return`DateTime.Utc(${toDateUtc(this).toJSON()})`}},ProtoZoned={...Proto2,_tag:"Zoned",[symbol](){return pipe(number2(this.epochMillis),combine(hash(this.zone)),cached(this))},[symbol2](that){return isDateTime(that)&&that._tag==="Zoned"&&this.epochMillis===that.epochMillis&&equals(this.zone,that.zone)},toString(){return`DateTime.Zoned(${formatIsoZoned(this)})`}},ProtoTimeZone={[TimeZoneTypeId]:TimeZoneTypeId,[NodeInspectSymbol](){return this.toString()}},ProtoTimeZoneNamed={...ProtoTimeZone,_tag:"Named",[symbol](){return cached(this,string(`Named:${this.id}`))},[symbol2](that){return isTimeZone(that)&&that._tag==="Named"&&this.id===that.id},toString(){return`TimeZone.Named(${this.id})`},toJSON(){return{_id:"TimeZone",_tag:"Named",id:this.id}}},ProtoTimeZoneOffset={...ProtoTimeZone,_tag:"Offset",[symbol](){return cached(this,string(`Offset:${this.offset}`))},[symbol2](that){return isTimeZone(that)&&that._tag==="Offset"&&this.offset===that.offset},toString(){return`TimeZone.Offset(${offsetToString(this.offset)})`},toJSON(){return{_id:"TimeZone",_tag:"Offset",offset:this.offset}}},makeZonedProto=(epochMillis,zone,partsUtc)=>{let self=Object.create(ProtoZoned);return self.epochMillis=epochMillis,self.zone=zone,Object.defineProperty(self,"partsUtc",{value:partsUtc,enumerable:!1,writable:!0}),Object.defineProperty(self,"adjustedEpochMillis",{value:void 0,enumerable:!1,writable:!0}),Object.defineProperty(self,"partsAdjusted",{value:void 0,enumerable:!1,writable:!0}),self},isDateTime=(u)=>hasProperty(u,TypeId13),isDateTimeArgs=(args2)=>isDateTime(args2[0]),isTimeZone=(u)=>hasProperty(u,TimeZoneTypeId);var isTimeZoneNamed=(u)=>isTimeZone(u)&&u._tag==="Named";var isZoned=(self)=>self._tag==="Zoned";var makeUtc=(epochMillis)=>{let self=Object.create(ProtoUtc);return self.epochMillis=epochMillis,Object.defineProperty(self,"partsUtc",{value:void 0,enumerable:!1,writable:!0}),self},unsafeFromDate=(date)=>{let epochMillis=date.getTime();if(Number.isNaN(epochMillis))throw new IllegalArgumentException2("Invalid date");return makeUtc(epochMillis)},unsafeMake8=(input)=>{if(isDateTime(input))return input;else if(input instanceof Date)return unsafeFromDate(input);else if(typeof input==="object"){let date=new Date(0);return setPartsDate(date,input),unsafeFromDate(date)}else if(typeof input==="string"&&!hasZone(input))return unsafeFromDate(new Date(input+"Z"));return unsafeFromDate(new Date(input))},hasZone=(input)=>/Z|[+-]\d{2}$|[+-]\d{2}:?\d{2}$|\]$/.test(input),minEpochMillis=-8639999956800000,maxEpochMillis=8639999949600000,unsafeMakeZoned=(input,options)=>{if(options?.timeZone===void 0&&isDateTime(input)&&isZoned(input))return input;let self=unsafeMake8(input);if(self.epochMillis<minEpochMillis||self.epochMillis>maxEpochMillis)throw RangeError(`Epoch millis out of range: ${self.epochMillis}`);let zone;if(options?.timeZone===void 0){let offset=new Date(self.epochMillis).getTimezoneOffset()*-60*1000;zone=zoneMakeOffset(offset)}else if(isTimeZone(options?.timeZone))zone=options.timeZone;else if(typeof options?.timeZone==="number")zone=zoneMakeOffset(options.timeZone);else{let parsedZone=zoneFromString(options.timeZone);if(isNone2(parsedZone))throw new IllegalArgumentException2(`Invalid time zone: ${options.timeZone}`);zone=parsedZone.value}if(options?.adjustForTimeZone!==!0)return makeZonedProto(self.epochMillis,zone,self.partsUtc);return makeZonedFromAdjusted(self.epochMillis,zone,options?.disambiguation??"compatible")};var validZoneCache=globalValue("effect/DateTime/validZoneCache",()=>new Map),formatOptions={day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"longOffset",fractionalSecondDigits:3,hourCycle:"h23"},zoneMakeIntl=(format4)=>{let zoneId=format4.resolvedOptions().timeZone;if(validZoneCache.has(zoneId))return validZoneCache.get(zoneId);let zone=Object.create(ProtoTimeZoneNamed);return zone.id=zoneId,zone.format=format4,validZoneCache.set(zoneId,zone),zone},zoneUnsafeMakeNamed=(zoneId)=>{if(validZoneCache.has(zoneId))return validZoneCache.get(zoneId);try{return zoneMakeIntl(new Intl.DateTimeFormat("en-US",{...formatOptions,timeZone:zoneId}))}catch{throw new IllegalArgumentException2(`Invalid time zone: ${zoneId}`)}},zoneMakeOffset=(offset)=>{let zone=Object.create(ProtoTimeZoneOffset);return zone.offset=offset,zone},zoneMakeNamed=liftThrowable(zoneUnsafeMakeNamed);var offsetZoneRegex=/^(?:GMT|[+-])/,zoneFromString=(zone)=>{if(offsetZoneRegex.test(zone)){let offset=parseOffset(zone);return offset===null?none2():some2(zoneMakeOffset(offset))}return zoneMakeNamed(zone)};var toDateUtc=(self)=>new Date(self.epochMillis),toDate=(self)=>{if(self._tag==="Utc")return new Date(self.epochMillis);else if(self.zone._tag==="Offset")return new Date(self.epochMillis+self.zone.offset);else if(self.adjustedEpochMillis!==void 0)return new Date(self.adjustedEpochMillis);let parts2=self.zone.format.formatToParts(self.epochMillis).filter((_)=>_.type!=="literal"),date=new Date(0);return date.setUTCFullYear(Number(parts2[2].value),Number(parts2[0].value)-1,Number(parts2[1].value)),date.setUTCHours(Number(parts2[3].value),Number(parts2[4].value),Number(parts2[5].value),Number(parts2[6].value)),self.adjustedEpochMillis=date.getTime(),date},zonedOffset=(self)=>{return toDate(self).getTime()-toEpochMillis(self)},offsetToString=(offset)=>{let abs=Math.abs(offset),hours2=Math.floor(abs/3600000),minutes2=Math.round(abs%3600000/60000);if(minutes2===60)hours2+=1,minutes2=0;return`${offset<0?"-":"+"}${String(hours2).padStart(2,"0")}:${String(minutes2).padStart(2,"0")}`},zonedOffsetIso=(self)=>offsetToString(zonedOffset(self)),toEpochMillis=(self)=>self.epochMillis;var dateToParts=(date)=>({millis:date.getUTCMilliseconds(),seconds:date.getUTCSeconds(),minutes:date.getUTCMinutes(),hours:date.getUTCHours(),day:date.getUTCDate(),weekDay:date.getUTCDay(),month:date.getUTCMonth()+1,year:date.getUTCFullYear()}),toParts=(self)=>{if(self._tag==="Utc")return toPartsUtc(self);else if(self.partsAdjusted!==void 0)return self.partsAdjusted;return self.partsAdjusted=withDate(self,dateToParts),self.partsAdjusted},toPartsUtc=(self)=>{if(self.partsUtc!==void 0)return self.partsUtc;return self.partsUtc=withDateUtc(self,dateToParts),self.partsUtc};var setPartsDate=(date,parts2)=>{if(parts2.year!==void 0)date.setUTCFullYear(parts2.year);if(parts2.month!==void 0)date.setUTCMonth(parts2.month-1);if(parts2.day!==void 0)date.setUTCDate(parts2.day);if(parts2.weekDay!==void 0){let diff8=parts2.weekDay-date.getUTCDay();date.setUTCDate(date.getUTCDate()+diff8)}if(parts2.hours!==void 0)date.setUTCHours(parts2.hours);if(parts2.minutes!==void 0)date.setUTCMinutes(parts2.minutes);if(parts2.seconds!==void 0)date.setUTCSeconds(parts2.seconds);if(parts2.millis!==void 0)date.setUTCMilliseconds(parts2.millis)};var constDayMillis=86400000,makeZonedFromAdjusted=(adjustedMillis,zone,disambiguation)=>{if(zone._tag==="Offset")return makeZonedProto(adjustedMillis-zone.offset,zone);let beforeOffset=calculateNamedOffset(adjustedMillis-constDayMillis,adjustedMillis,zone),afterOffset=calculateNamedOffset(adjustedMillis+constDayMillis,adjustedMillis,zone);if(beforeOffset===afterOffset)return makeZonedProto(adjustedMillis-beforeOffset,zone);let isForwards=beforeOffset<afterOffset,transitionMillis=beforeOffset-afterOffset;if(isForwards){if(calculateNamedOffset(adjustedMillis-afterOffset,adjustedMillis,zone)===afterOffset)return makeZonedProto(adjustedMillis-afterOffset,zone);let before2=makeZonedProto(adjustedMillis-beforeOffset,zone),beforeAdjustedMillis=toDate(before2).getTime();if(adjustedMillis!==beforeAdjustedMillis)switch(disambiguation){case"reject":{let formatted=new Date(adjustedMillis).toISOString();throw RangeError(`Gap time: ${formatted} does not exist in time zone ${zone.id}`)}case"earlier":return makeZonedProto(adjustedMillis-afterOffset,zone);case"compatible":case"later":return before2}return before2}if(calculateNamedOffset(adjustedMillis-beforeOffset,adjustedMillis,zone)===beforeOffset){if(disambiguation==="earlier"||disambiguation==="compatible")return makeZonedProto(adjustedMillis-beforeOffset,zone);if(calculateNamedOffset(adjustedMillis-beforeOffset+transitionMillis,adjustedMillis+transitionMillis,zone)===beforeOffset)return makeZonedProto(adjustedMillis-beforeOffset,zone);if(disambiguation==="reject"){let formatted=new Date(adjustedMillis).toISOString();throw RangeError(`Ambiguous time: ${formatted} occurs twice in time zone ${zone.id}`)}}return makeZonedProto(adjustedMillis-afterOffset,zone)},offsetRegex=/([+-])(\d{2}):(\d{2})$/,parseOffset=(offset)=>{let match12=offsetRegex.exec(offset);if(match12===null)return null;let[,sign,hours2,minutes2]=match12;return(sign==="+"?1:-1)*(Number(hours2)*60+Number(minutes2))*60*1000},calculateNamedOffset=(utcMillis,adjustedMillis,zone)=>{let offset=zone.format.formatToParts(utcMillis).find((_)=>_.type==="timeZoneName")?.value??"";if(offset==="GMT")return 0;let result=parseOffset(offset);if(result===null)return zonedOffset(makeZonedProto(adjustedMillis,zone));return result},mutate4=dual(isDateTimeArgs,(self,f,options)=>{if(self._tag==="Utc"){let date=toDateUtc(self);return f(date),makeUtc(date.getTime())}let adjustedDate=toDate(self),newAdjustedDate=new Date(adjustedDate.getTime());return f(newAdjustedDate),makeZonedFromAdjusted(newAdjustedDate.getTime(),self.zone,options?.disambiguation??"compatible")});var withDate=dual(2,(self,f)=>f(toDate(self))),withDateUtc=dual(2,(self,f)=>f(toDateUtc(self)));var formatIsoOffset=(self)=>{let date=toDate(self);return self._tag==="Utc"?date.toISOString():`${date.toISOString().slice(0,-1)}${zonedOffsetIso(self)}`},formatIsoZoned=(self)=>self.zone._tag==="Offset"?formatIsoOffset(self):`${formatIsoOffset(self)}[${self.zone.id}]`;var isNonEmpty5=(self)=>self.length>0;var TypeId14=Symbol.for("effect/Cron"),CronProto={[TypeId14]:TypeId14,[symbol2](that){return isCron(that)&&equals3(this,that)},[symbol](){return pipe(hash(this.tz),combine(array2(fromIterable(this.seconds))),combine(array2(fromIterable(this.minutes))),combine(array2(fromIterable(this.hours))),combine(array2(fromIterable(this.days))),combine(array2(fromIterable(this.months))),combine(array2(fromIterable(this.weekdays))),cached(this))},toString(){return format(this.toJSON())},toJSON(){return{_id:"Cron",tz:this.tz,seconds:fromIterable(this.seconds),minutes:fromIterable(this.minutes),hours:fromIterable(this.hours),days:fromIterable(this.days),months:fromIterable(this.months),weekdays:fromIterable(this.weekdays)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},isCron=(u)=>hasProperty(u,TypeId14),make38=(values3)=>{let o=Object.create(CronProto);o.seconds=new Set(sort(values3.seconds??[0],Order2)),o.minutes=new Set(sort(values3.minutes,Order2)),o.hours=new Set(sort(values3.hours,Order2)),o.days=new Set(sort(values3.days,Order2)),o.months=new Set(sort(values3.months,Order2)),o.weekdays=new Set(sort(values3.weekdays,Order2)),o.tz=fromNullable(values3.tz);let seconds2=Array.from(o.seconds),minutes2=Array.from(o.minutes),hours2=Array.from(o.hours),days2=Array.from(o.days),months=Array.from(o.months),weekdays=Array.from(o.weekdays);return o.first={second:seconds2[0]??0,minute:minutes2[0]??0,hour:hours2[0]??0,day:days2[0]??1,month:(months[0]??1)-1,weekday:weekdays[0]??0},o.next={second:nextLookupTable(seconds2,60),minute:nextLookupTable(minutes2,60),hour:nextLookupTable(hours2,24),day:nextLookupTable(days2,32),month:nextLookupTable(months,13),weekday:nextLookupTable(weekdays,7)},o},nextLookupTable=(values3,size9)=>{let result=Array(size9).fill(void 0);if(values3.length===0)return result;let current=void 0,index=values3.length-1;for(let i=size9-1;i>=0;i--){while(index>=0&&values3[index]>=i)current=values3[index--];result[i]=current}return result},ParseErrorTypeId=Symbol.for("effect/Cron/errors/ParseError");class ParseError extends TaggedError("CronParseError"){[ParseErrorTypeId]=ParseErrorTypeId}var parse=(cron,tz)=>{let segments=cron.split(" ").filter(isNonEmpty5);if(segments.length!==5&&segments.length!==6)return left2(new ParseError({message:"Invalid number of segments in cron expression",input:cron}));if(segments.length===5)segments.unshift("0");let[seconds2,minutes2,hours2,days2,months,weekdays]=segments,zone=tz===void 0||isTimeZone(tz)?right2(tz):fromOption2(zoneFromString(tz),()=>new ParseError({message:"Invalid time zone in cron expression",input:tz}));return all({tz:zone,seconds:parseSegment(seconds2,secondOptions),minutes:parseSegment(minutes2,minuteOptions),hours:parseSegment(hours2,hourOptions),days:parseSegment(days2,dayOptions),months:parseSegment(months,monthOptions),weekdays:parseSegment(weekdays,weekdayOptions)}).pipe(map(make38))};var match12=(cron,date)=>{let parts2=unsafeMakeZoned(date,{timeZone:getOrUndefined(cron.tz)}).pipe(toParts);if(cron.seconds.size!==0&&!cron.seconds.has(parts2.seconds))return!1;if(cron.minutes.size!==0&&!cron.minutes.has(parts2.minutes))return!1;if(cron.hours.size!==0&&!cron.hours.has(parts2.hours))return!1;if(cron.months.size!==0&&!cron.months.has(parts2.month))return!1;if(cron.days.size===0&&cron.weekdays.size===0)return!0;if(cron.weekdays.size===0)return cron.days.has(parts2.day);if(cron.days.size===0)return cron.weekdays.has(parts2.weekDay);return cron.days.has(parts2.day)||cron.weekdays.has(parts2.weekDay)},daysInMonth=(date)=>new Date(Date.UTC(date.getUTCFullYear(),date.getUTCMonth()+1,0)).getUTCDate(),next2=(cron,startFrom)=>{let tz=getOrUndefined(cron.tz),zoned=unsafeMakeZoned(startFrom??new Date,{timeZone:tz}),adjustDst=tz!==void 0&&isTimeZoneNamed(tz)&&tz.id==="UTC"?constVoid:(current)=>{let adjusted=unsafeMakeZoned(current,{timeZone:zoned.zone,adjustForTimeZone:!0}).pipe(toDate),drift=current.getTime()-adjusted.getTime();if(drift>0)current.setTime(current.getTime()+drift)},result=mutate4(zoned,(current)=>{current.setUTCSeconds(current.getUTCSeconds()+1,0);for(let i=0;i<1e4;i++){if(cron.seconds.size!==0){let currentSecond=current.getUTCSeconds(),nextSecond=cron.next.second[currentSecond];if(nextSecond===void 0){current.setUTCMinutes(current.getUTCMinutes()+1,cron.first.second),adjustDst(current);continue}if(nextSecond>currentSecond){current.setUTCSeconds(nextSecond),adjustDst(current);continue}}if(cron.minutes.size!==0){let currentMinute=current.getUTCMinutes(),nextMinute=cron.next.minute[currentMinute];if(nextMinute===void 0){current.setUTCHours(current.getUTCHours()+1,cron.first.minute,cron.first.second),adjustDst(current);continue}if(nextMinute>currentMinute){current.setUTCMinutes(nextMinute,cron.first.second),adjustDst(current);continue}}if(cron.hours.size!==0){let currentHour=current.getUTCHours(),nextHour=cron.next.hour[currentHour];if(nextHour===void 0){current.setUTCDate(current.getUTCDate()+1),current.setUTCHours(cron.first.hour,cron.first.minute,cron.first.second),adjustDst(current);continue}if(nextHour>currentHour){current.setUTCHours(nextHour,cron.first.minute,cron.first.second),adjustDst(current);continue}}if(cron.weekdays.size!==0||cron.days.size!==0){let a=1/0,b=1/0;if(cron.weekdays.size!==0){let currentWeekday=current.getUTCDay(),nextWeekday=cron.next.weekday[currentWeekday];a=nextWeekday===void 0?7-currentWeekday+cron.first.weekday:nextWeekday-currentWeekday}if(cron.days.size!==0&&a!==0){let currentDay=current.getUTCDate(),nextDay=cron.next.day[currentDay];b=nextDay===void 0?daysInMonth(current)-currentDay+cron.first.day:nextDay-currentDay}let addDays=Math.min(a,b);if(addDays!==0){current.setUTCDate(current.getUTCDate()+addDays),current.setUTCHours(cron.first.hour,cron.first.minute,cron.first.second),adjustDst(current);continue}}if(cron.months.size!==0){let currentMonth=current.getUTCMonth()+1,nextMonth=cron.next.month[currentMonth];if(nextMonth===void 0){current.setUTCFullYear(current.getUTCFullYear()+1),current.setUTCMonth(cron.first.month,cron.first.day),current.setUTCHours(cron.first.hour,cron.first.minute,cron.first.second),adjustDst(current);continue}if(nextMonth>currentMonth){current.setUTCMonth(nextMonth-1,cron.first.day),current.setUTCHours(cron.first.hour,cron.first.minute,cron.first.second),adjustDst(current);continue}}return}throw Error("Unable to find next cron date")});return toDateUtc(result)};var Equivalence2=make((self,that)=>restrictionsEquals(self.seconds,that.seconds)&&restrictionsEquals(self.minutes,that.minutes)&&restrictionsEquals(self.hours,that.hours)&&restrictionsEquals(self.days,that.days)&&restrictionsEquals(self.months,that.months)&&restrictionsEquals(self.weekdays,that.weekdays)),restrictionsArrayEquals=array(number),restrictionsEquals=(self,that)=>restrictionsArrayEquals(fromIterable(self),fromIterable(that)),equals3=dual(2,(self,that)=>Equivalence2(self,that)),secondOptions={min:0,max:59},minuteOptions={min:0,max:59},hourOptions={min:0,max:23},dayOptions={min:1,max:31},monthOptions={min:1,max:12,aliases:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}},weekdayOptions={min:0,max:6,aliases:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}},parseSegment=(input,options)=>{let capacity=options.max-options.min+1,values3=new Set,fields=input.split(",");for(let field of fields){let[raw,step3]=splitStep(field);if(raw==="*"&&step3===void 0)return right2(new Set);if(step3!==void 0){if(!Number.isInteger(step3))return left2(new ParseError({message:"Expected step value to be a positive integer",input}));if(step3<1)return left2(new ParseError({message:"Expected step value to be greater than 0",input}));if(step3>options.max)return left2(new ParseError({message:`Expected step value to be less than ${options.max}`,input}))}if(raw==="*")for(let i=options.min;i<=options.max;i+=step3??1)values3.add(i);else{let[left3,right3]=splitRange(raw,options.aliases);if(!Number.isInteger(left3))return left2(new ParseError({message:"Expected a positive integer",input}));if(left3<options.min||left3>options.max)return left2(new ParseError({message:`Expected a value between ${options.min} and ${options.max}`,input}));if(right3===void 0)values3.add(left3);else{if(!Number.isInteger(right3))return left2(new ParseError({message:"Expected a positive integer",input}));if(right3<options.min||right3>options.max)return left2(new ParseError({message:`Expected a value between ${options.min} and ${options.max}`,input}));if(left3>right3)return left2(new ParseError({message:"Invalid value range",input}));for(let i=left3;i<=right3;i+=step3??1)values3.add(i)}}if(values3.size>=capacity)return right2(new Set)}return right2(values3)},splitStep=(input)=>{let seperator=input.indexOf("/");if(seperator!==-1)return[input.slice(0,seperator),Number(input.slice(seperator+1))];return[input,void 0]},splitRange=(input,aliases)=>{let seperator=input.indexOf("-");if(seperator!==-1)return[aliasOrValue(input.slice(0,seperator),aliases),aliasOrValue(input.slice(seperator+1),aliases)];return[aliasOrValue(input,aliases),void 0]};function aliasOrValue(field,aliases){return aliases?.[field.toLocaleLowerCase()]??Number(field)}var next3=next;var fixed2=fixed;var ScheduleSymbolKey="effect/Schedule",ScheduleTypeId=Symbol.for(ScheduleSymbolKey),isSchedule=(u)=>hasProperty(u,ScheduleTypeId),ScheduleDriverSymbolKey="effect/ScheduleDriver",ScheduleDriverTypeId=Symbol.for(ScheduleDriverSymbolKey),defaultIterationMetadata={start:0,now:0,input:void 0,output:void 0,elapsed:zero,elapsedSincePrevious:zero,recurrence:0},CurrentIterationMetadata=Reference2()("effect/Schedule/CurrentIterationMetadata",{defaultValue:()=>defaultIterationMetadata}),scheduleVariance={_Out:(_)=>_,_In:(_)=>_,_R:(_)=>_},scheduleDriverVariance={_Out:(_)=>_,_In:(_)=>_,_R:(_)=>_};class ScheduleImpl{initial;step;[ScheduleTypeId]=scheduleVariance;constructor(initial,step3){this.initial=initial,this.step=step3}pipe(){return pipeArguments(this,arguments)}}var updateInfo=(iterationMetaRef,now,input,output)=>update2(iterationMetaRef,(prev)=>prev.recurrence===0?{now,input,output,recurrence:prev.recurrence+1,elapsed:zero,elapsedSincePrevious:zero,start:now}:{now,input,output,recurrence:prev.recurrence+1,elapsed:millis(now-prev.start),elapsedSincePrevious:millis(now-prev.now),start:prev.start});class ScheduleDriverImpl{schedule;ref;[ScheduleDriverTypeId]=scheduleDriverVariance;constructor(schedule,ref){this.schedule=schedule,this.ref=ref}get state(){return map10(get10(this.ref),(tuple2)=>tuple2[1])}get last(){return flatMap8(get10(this.ref),([element,_])=>{switch(element._tag){case"None":return failSync(()=>new NoSuchElementException);case"Some":return succeed(element.value)}})}iterationMeta=unsafeMake5(defaultIterationMetadata);get reset(){return set4(this.ref,[none2(),this.schedule.initial]).pipe(zipLeft(set4(this.iterationMeta,defaultIterationMetadata)))}next(input){return pipe(map10(get10(this.ref),(tuple2)=>tuple2[1]),flatMap8((state)=>pipe(currentTimeMillis2,flatMap8((now)=>pipe(suspend(()=>this.schedule.step(now,input,state)),flatMap8(([state2,out,decision])=>{let setState=set4(this.ref,[some2(out),state2]);if(isDone4(decision))return setState.pipe(zipRight(fail2(none2())));let millis2=start2(decision.intervals)-now;if(millis2<=0)return setState.pipe(zipRight(updateInfo(this.iterationMeta,now,input,out)),as(out));let duration=millis(millis2);return pipe(setState,zipRight(updateInfo(this.iterationMeta,now,input,out)),zipRight(sleep3(duration)),as(out))}))))))}}var makeWithState=(initial,step3)=>new ScheduleImpl(initial,step3),addDelay=dual(2,(self,f)=>addDelayEffect(self,(out)=>sync(()=>f(out)))),addDelayEffect=dual(2,(self,f)=>modifyDelayEffect(self,(out,duration)=>map10(f(out),(delay2)=>sum(duration,decode(delay2))))),andThen4=dual(2,(self,that)=>map15(andThenEither(self,that),merge)),andThenEither=dual(2,(self,that)=>makeWithState([self.initial,that.initial,!0],(now,input,state)=>state[2]?flatMap8(self.step(now,input,state[0]),([lState,out,decision])=>{if(isDone4(decision))return map10(that.step(now,input,state[1]),([rState,out2,decision2])=>[[lState,rState,!1],right2(out2),decision2]);return succeed([[lState,state[1],!0],left2(out),decision])}):map10(that.step(now,input,state[1]),([rState,out,decision])=>[[state[0],rState,!1],right2(out),decision]))),as3=dual(2,(self,out)=>map15(self,()=>out)),asVoid2=(self)=>map15(self,constVoid),bothInOut=dual(2,(self,that)=>makeWithState([self.initial,that.initial],(now,[in1,in2],state)=>zipWith3(self.step(now,in1,state[0]),that.step(now,in2,state[1]),([lState,out,lDecision],[rState,out2,rDecision])=>{if(isContinue2(lDecision)&&isContinue2(rDecision)){let interval=pipe(lDecision.intervals,union7(rDecision.intervals));return[[lState,rState],[out,out2],_continue2(interval)]}return[[lState,rState],[out,out2],done5]}))),check=dual(2,(self,test)=>checkEffect(self,(input,out)=>sync(()=>test(input,out)))),checkEffect=dual(2,(self,test)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>{if(isDone4(decision))return succeed([state2,out,done5]);return map10(test(input,out),(cont)=>cont?[state2,out,decision]:[state2,out,done5])}))),collectAllInputs=()=>collectAllOutputs(identity2()),collectAllOutputs=(self)=>reduce10(self,empty2(),(outs,out)=>pipe(outs,append2(out))),collectUntil=(f)=>collectAllOutputs(recurUntil(f)),collectUntilEffect=(f)=>collectAllOutputs(recurUntilEffect(f)),collectWhile=(f)=>collectAllOutputs(recurWhile(f)),collectWhileEffect=(f)=>collectAllOutputs(recurWhileEffect(f)),compose=dual(2,(self,that)=>makeWithState([self.initial,that.initial],(now,input,state)=>flatMap8(self.step(now,input,state[0]),([lState,out,lDecision])=>map10(that.step(now,out,state[1]),([rState,out2,rDecision])=>isDone4(lDecision)?[[lState,rState],out2,done5]:isDone4(rDecision)?[[lState,rState],out2,done5]:[[lState,rState],out2,_continue2(pipe(lDecision.intervals,max5(rDecision.intervals)))])))),mapInput3=dual(2,(self,f)=>mapInputEffect(self,(input2)=>sync(()=>f(input2)))),mapInputContext2=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>mapInputContext(self.step(now,input,state),f))),mapInputEffect=dual(2,(self,f)=>makeWithState(self.initial,(now,input2,state)=>flatMap8(f(input2),(input)=>self.step(now,input,state)))),cron=(expression,tz)=>{let parsed=isCron(expression)?right2(expression):parse(expression,tz);return makeWithState([!0,[Number.MIN_SAFE_INTEGER,0,0]],(now,_,[initial,previous])=>{if(now<previous[0])return succeed([[!1,previous],[previous[1],previous[2]],continueWith2(make33(previous[1],previous[2]))]);if(isLeft2(parsed))return die2(parsed.left);let cron2=parsed.right,date=new Date(now),next4;if(initial&&match12(cron2,date))next4=now;next4=next2(cron2,date).getTime();let start3=beginningOfSecond(next4),end3=endOfSecond(next4);return succeed([[!1,[next4,start3,end3]],[start3,end3],continueWith2(make33(start3,end3))])})},dayOfMonth=(day)=>{return makeWithState([Number.NEGATIVE_INFINITY,0],(now,_,state)=>{if(!Number.isInteger(day)||day<1||31<day)return dieSync(()=>new IllegalArgumentException(`Invalid argument in: dayOfMonth(${day}). Must be in range 1...31`));let n=state[1],day0=nextDayOfMonth(now,day,n===0),start3=beginningOfDay(day0),end3=endOfDay(day0),interval=make33(start3,end3);return succeed([[end3,n+1],n,continueWith2(interval)])})},dayOfWeek=(day)=>{return makeWithState([Number.MIN_SAFE_INTEGER,0],(now,_,state)=>{if(!Number.isInteger(day)||day<1||7<day)return dieSync(()=>new IllegalArgumentException(`Invalid argument in: dayOfWeek(${day}). Must be in range 1 (Monday)...7 (Sunday)`));let n=state[1],day0=nextDay(now,day,n===0),start3=beginningOfDay(day0),end3=endOfDay(day0),interval=make33(start3,end3);return succeed([[end3,n+1],n,continueWith2(interval)])})},delayed=dual(2,(self,f)=>delayedEffect(self,(duration)=>sync(()=>f(duration)))),delayedEffect=dual(2,(self,f)=>modifyDelayEffect(self,(_,delay2)=>f(delay2))),delayedSchedule=(schedule)=>addDelay(schedule,(x)=>x),delays=(self)=>makeWithState(self.initial,(now,input,state)=>pipe(self.step(now,input,state),flatMap8(([state2,_,decision])=>{if(isDone4(decision))return succeed([state2,zero,decision]);return succeed([state2,millis(start2(decision.intervals)-now),decision])}))),mapBoth3=dual(2,(self,{onInput,onOutput})=>map15(mapInput3(self,onInput),onOutput)),mapBothEffect=dual(2,(self,{onInput,onOutput})=>mapEffect2(mapInputEffect(self,onInput),onOutput)),driver=(self)=>pipe(make23([none2(),self.initial]),map10((ref)=>new ScheduleDriverImpl(self,ref))),duration=(durationInput)=>{let duration2=decode(durationInput),durationMillis=toMillis(duration2);return makeWithState(!0,(now,_,state)=>succeed(state?[!1,duration2,continueWith2(after2(now+durationMillis))]:[!1,zero,done5]))},either3=dual(2,(self,that)=>union8(self,that)),eitherWith=dual(3,(self,that,f)=>unionWith2(self,that,f)),ensuring2=dual(2,(self,finalizer)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>isDone4(decision)?as(finalizer,[state2,out,decision]):succeed([state2,out,decision])))),exponential2=(baseInput,factor=2)=>{let base=decode(baseInput);return delayedSchedule(map15(forever2,(i)=>times(base,Math.pow(factor,i))))},fibonacci=(oneInput)=>{let one=decode(oneInput);return delayedSchedule(pipe(unfold2([one,one],([a,b])=>[b,sum(a,b)]),map15((out)=>out[0])))},fixed3=(intervalInput)=>{let interval=decode(intervalInput),intervalMillis=toMillis(interval);return makeWithState([none2(),0],(now,_,[option2,n])=>sync(()=>{switch(option2._tag){case"None":return[[some2([now,now+intervalMillis]),n+1],n,continueWith2(after2(now+intervalMillis))];case"Some":{let[startMillis,lastRun]=option2.value,runningBehind=now>lastRun+intervalMillis,boundary=equals(interval,zero)?interval:millis(intervalMillis-(now-startMillis)%intervalMillis),sleepTime=equals(boundary,zero)?interval:boundary,nextRun=runningBehind?now:now+toMillis(sleepTime);return[[some2([startMillis,nextRun]),n+1],n,continueWith2(after2(nextRun))]}}}))},fromDelay=(delay2)=>duration(delay2),fromDelays=(delay2,...delays2)=>makeWithState([[delay2,...delays2].map((_)=>decode(_)),!0],(now,_,[durations,cont])=>sync(()=>{if(cont){let x=durations[0],interval=after2(now+toMillis(x));if(durations.length>=2)return[[durations.slice(1),!0],x,continueWith2(interval)];let y=durations.slice(1);return[[[x,...y],!1],x,continueWith2(interval)]}return[[durations,!1],zero,done5]})),fromFunction2=(f)=>map15(identity2(),f),hourOfDay=(hour)=>makeWithState([Number.NEGATIVE_INFINITY,0],(now,_,state)=>{if(!Number.isInteger(hour)||hour<0||23<hour)return dieSync(()=>new IllegalArgumentException(`Invalid argument in: hourOfDay(${hour}). Must be in range 0...23`));let n=state[1],hour0=nextHour(now,hour,n===0),start3=beginningOfHour(hour0),end3=endOfHour(hour0),interval=make33(start3,end3);return succeed([[end3,n+1],n,continueWith2(interval)])}),identity2=()=>makeWithState(void 0,(now,input,state)=>succeed([state,input,continueWith2(after2(now))])),intersect5=dual(2,(self,that)=>intersectWith(self,that,intersect4)),intersectWith=dual(3,(self,that,f)=>makeWithState([self.initial,that.initial],(now,input,state)=>pipe(zipWith3(self.step(now,input,state[0]),that.step(now,input,state[1]),(a,b)=>[a,b]),flatMap8(([[lState,out,lDecision],[rState,out2,rDecision]])=>{if(isContinue2(lDecision)&&isContinue2(rDecision))return intersectWithLoop(self,that,input,lState,out,lDecision.intervals,rState,out2,rDecision.intervals,f);return succeed([[lState,rState],[out,out2],done5])})))),intersectWithLoop=(self,that,input,lState,out,lInterval,rState,out2,rInterval,f)=>{let combined=f(lInterval,rInterval);if(isNonEmpty4(combined))return succeed([[lState,rState],[out,out2],_continue2(combined)]);if(pipe(lInterval,lessThan6(rInterval)))return flatMap8(self.step(end2(lInterval),input,lState),([lState2,out3,decision])=>{if(isDone4(decision))return succeed([[lState2,rState],[out3,out2],done5]);return intersectWithLoop(self,that,input,lState2,out3,decision.intervals,rState,out2,rInterval,f)});return flatMap8(that.step(end2(rInterval),input,rState),([rState2,out22,decision])=>{if(isDone4(decision))return succeed([[lState,rState2],[out,out22],done5]);return intersectWithLoop(self,that,input,lState,out,lInterval,rState2,out22,decision.intervals,f)})},jittered=(self)=>jitteredWith(self,{min:0.8,max:1.2}),jitteredWith=dual(2,(self,options)=>{let{max:max6,min:min4}=Object.assign({min:0.8,max:1.2},options);return delayedEffect(self,(duration2)=>map10(next3,(random3)=>{let d=toMillis(duration2),jittered2=d*min4*(1-random3)+d*max6*random3;return millis(jittered2)}))}),linear=(baseInput)=>{let base=decode(baseInput);return delayedSchedule(map15(forever2,(i)=>times(base,i+1)))},map15=dual(2,(self,f)=>mapEffect2(self,(out)=>sync(()=>f(out)))),mapEffect2=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>map10(f(out),(out2)=>[state2,out2,decision])))),minuteOfHour=(minute)=>makeWithState([Number.MIN_SAFE_INTEGER,0],(now,_,state)=>{if(!Number.isInteger(minute)||minute<0||59<minute)return dieSync(()=>new IllegalArgumentException(`Invalid argument in: minuteOfHour(${minute}). Must be in range 0...59`));let n=state[1],minute0=nextMinute(now,minute,n===0),start3=beginningOfMinute(minute0),end3=endOfMinute(minute0),interval=make33(start3,end3);return succeed([[end3,n+1],n,continueWith2(interval)])}),modifyDelay=dual(2,(self,f)=>modifyDelayEffect(self,(out,duration2)=>sync(()=>f(out,duration2)))),modifyDelayEffect=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>{if(isDone4(decision))return succeed([state2,out,decision]);let intervals=decision.intervals,delay2=size8(make33(now,start2(intervals)));return map10(f(out,delay2),(durationInput)=>{let duration2=decode(durationInput),oldStart=start2(intervals),newStart=now+toMillis(duration2),delta=newStart-oldStart,newEnd=Math.max(0,end2(intervals)+delta),newInterval=make33(newStart,newEnd);return[state2,out,continueWith2(newInterval)]})}))),onDecision=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>as(f(out,decision),[state2,out,decision])))),passthrough2=(self)=>makeWithState(self.initial,(now,input,state)=>pipe(self.step(now,input,state),map10(([state2,_,decision])=>[state2,input,decision]))),provideContext3=dual(2,(self,context3)=>makeWithState(self.initial,(now,input,state)=>provideContext(self.step(now,input,state),context3))),provideService2=dual(3,(self,tag,service2)=>makeWithState(self.initial,(now,input,state)=>contextWithEffect((env)=>provideContext(self.step(now,input,state),add4(env,tag,service2))))),recurUntil=(f)=>untilInput(identity2(),f),recurUntilEffect=(f)=>untilInputEffect(identity2(),f),recurUntilOption=(pf)=>untilOutput(map15(identity2(),pf),isSome2),recurUpTo=(durationInput)=>{let duration2=decode(durationInput);return whileOutput(elapsed,(elapsed)=>lessThan2(elapsed,duration2))},recurWhile=(f)=>whileInput(identity2(),f),recurWhileEffect=(f)=>whileInputEffect(identity2(),f),recurs=(n)=>whileOutput(forever2,(out)=>out<n),reduce10=dual(3,(self,zero2,f)=>reduceEffect2(self,zero2,(z,out)=>sync(()=>f(z,out)))),reduceEffect2=dual(3,(self,zero2,f)=>makeWithState([self.initial,zero2],(now,input,[s,z])=>flatMap8(self.step(now,input,s),([s2,out,decision])=>isDone4(decision)?succeed([[s2,z],z,decision]):map10(f(z,out),(z2)=>[[s2,z2],z,decision]))));var repetitions=(self)=>reduce10(self,0,(n,_)=>n+1),resetAfter=dual(2,(self,durationInput)=>{let duration2=decode(durationInput);return pipe(self,intersect5(elapsed),resetWhen(([,time2])=>greaterThanOrEqualTo(time2,duration2)),map15((out)=>out[0]))}),resetWhen=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>f(out)?self.step(now,input,self.initial):succeed([state2,out,decision])))),run=dual(3,(self,now,input)=>pipe(runLoop(self,now,fromIterable2(input),self.initial,empty2()),map10((list)=>reverse2(list)))),runLoop=(self,now,inputs,state,acc)=>{if(!isNonEmpty(inputs))return succeed(acc);let input=headNonEmpty2(inputs),nextInputs=tailNonEmpty2(inputs);return flatMap8(self.step(now,input,state),([state2,out,decision])=>{if(isDone4(decision))return sync(()=>pipe(acc,prepend2(out)));return runLoop(self,start2(decision.intervals),nextInputs,state2,prepend2(acc,out))})},secondOfMinute=(second)=>makeWithState([Number.NEGATIVE_INFINITY,0],(now,_,state)=>{if(!Number.isInteger(second)||second<0||59<second)return dieSync(()=>new IllegalArgumentException(`Invalid argument in: secondOfMinute(${second}). Must be in range 0...59`));let n=state[1],second0=nextSecond(now,second,n===0),start3=beginningOfSecond(second0),end3=endOfSecond(second0),interval=make33(start3,end3);return succeed([[end3,n+1],n,continueWith2(interval)])}),spaced=(duration2)=>addDelay(forever2,()=>duration2),succeed6=(value)=>map15(forever2,()=>value),sync3=(evaluate2)=>map15(forever2,evaluate2),tapInput=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>zipRight(f(input),self.step(now,input,state)))),tapOutput=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>tap(self.step(now,input,state),([,out])=>f(out)))),unfold2=(initial,f)=>makeWithState(initial,(now,_,state)=>sync(()=>[f(state),state,continueWith2(after2(now))])),union8=dual(2,(self,that)=>unionWith2(self,that,union7)),unionWith2=dual(3,(self,that,f)=>makeWithState([self.initial,that.initial],(now,input,state)=>zipWith3(self.step(now,input,state[0]),that.step(now,input,state[1]),([lState,l,lDecision],[rState,r,rDecision])=>{if(isDone4(lDecision)&&isDone4(rDecision))return[[lState,rState],[l,r],done5];if(isDone4(lDecision)&&isContinue2(rDecision))return[[lState,rState],[l,r],_continue2(rDecision.intervals)];if(isContinue2(lDecision)&&isDone4(rDecision))return[[lState,rState],[l,r],_continue2(lDecision.intervals)];if(isContinue2(lDecision)&&isContinue2(rDecision)){let combined=f(lDecision.intervals,rDecision.intervals);return[[lState,rState],[l,r],_continue2(combined)]}throw Error("BUG: Schedule.unionWith - please report an issue at https://github.com/Effect-TS/effect/issues")}))),untilInput=dual(2,(self,f)=>check(self,(input,_)=>!f(input))),untilInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>negate(f(input)))),untilOutput=dual(2,(self,f)=>check(self,(_,out)=>!f(out))),untilOutputEffect=dual(2,(self,f)=>checkEffect(self,(_,out)=>negate(f(out)))),upTo=dual(2,(self,duration2)=>zipLeft2(self,recurUpTo(duration2))),whileInput=dual(2,(self,f)=>check(self,(input,_)=>f(input))),whileInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>f(input))),whileOutput=dual(2,(self,f)=>check(self,(_,out)=>f(out))),whileOutputEffect=dual(2,(self,f)=>checkEffect(self,(_,out)=>f(out))),windowed=(intervalInput)=>{let interval=decode(intervalInput),millis2=toMillis(interval);return makeWithState([none2(),0],(now,_,[option2,n])=>{switch(option2._tag){case"None":return succeed([[some2(now),n+1],n,continueWith2(after2(now+millis2))]);case"Some":return succeed([[some2(option2.value),n+1],n,continueWith2(after2(now+(millis2-(now-option2.value)%millis2)))])}})},zipLeft2=dual(2,(self,that)=>map15(intersect5(self,that),(out)=>out[0])),zipRight3=dual(2,(self,that)=>map15(intersect5(self,that),(out)=>out[1])),zipWith5=dual(3,(self,that,f)=>map15(intersect5(self,that),([out,out2])=>f(out,out2))),beginningOfSecond=(now)=>{let date=new Date(now);return new Date(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds(),0).getTime()},endOfSecond=(now)=>{let date=new Date(beginningOfSecond(now));return date.setSeconds(date.getSeconds()+1)},nextSecond=(now,second,initial)=>{let date=new Date(now);if(date.getSeconds()===second&&initial)return now;if(date.getSeconds()<second)return date.setSeconds(second);let newDate=new Date(date.setSeconds(second));return newDate.setTime(newDate.getTime()+60000)},beginningOfMinute=(now)=>{let date=new Date(now);return new Date(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),0,0).getTime()},endOfMinute=(now)=>{let date=new Date(beginningOfMinute(now));return date.setMinutes(date.getMinutes()+1)},nextMinute=(now,minute,initial)=>{let date=new Date(now);if(date.getMinutes()===minute&&initial)return now;if(date.getMinutes()<minute)return date.setMinutes(minute);let newDate=new Date(date.setMinutes(minute));return newDate.setTime(newDate.getTime()+3600000)},beginningOfHour=(now)=>{let date=new Date(now);return new Date(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),0,0,0).getTime()},endOfHour=(now)=>{let date=new Date(beginningOfHour(now));return date.setHours(date.getHours()+1)},nextHour=(now,hour,initial)=>{let date=new Date(now);if(date.getHours()===hour&&initial)return now;if(date.getHours()<hour)return date.setHours(hour);let newDate=new Date(date.setHours(hour));return newDate.setTime(newDate.getTime()+86400000)},beginningOfDay=(now)=>{let date=new Date(now);return new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0,0).getTime()},endOfDay=(now)=>{let date=new Date(beginningOfDay(now));return date.setDate(date.getDate()+1)},nextDay=(now,dayOfWeek2,initial)=>{let date=new Date(now);if(date.getDay()===dayOfWeek2&&initial)return now;let nextDayOfWeek=(7+dayOfWeek2-date.getDay())%7;return date.setDate(date.getDate()+(nextDayOfWeek===0?7:nextDayOfWeek))},nextDayOfMonth=(now,day,initial)=>{let date=new Date(now);if(date.getDate()===day&&initial)return now;if(date.getDate()<day)return date.setDate(day);return findNextMonth(now,day,1)},findNextMonth=(now,day,months)=>{let d=new Date(now),tmp1=new Date(d.setDate(day));if(new Date(tmp1.setMonth(tmp1.getMonth()+months)).getDate()===day){let d2=new Date(now),tmp3=new Date(d2.setDate(day));return tmp3.setMonth(tmp3.getMonth()+months)}return findNextMonth(now,day,months+1)},ScheduleDefectTypeId=Symbol.for("effect/Schedule/ScheduleDefect");class ScheduleDefect{error;[ScheduleDefectTypeId];constructor(error2){this.error=error2,this[ScheduleDefectTypeId]=ScheduleDefectTypeId}}var isScheduleDefect=(u)=>hasProperty(u,ScheduleDefectTypeId),scheduleDefectWrap=(self)=>catchAll(self,(e)=>die2(new ScheduleDefect(e))),scheduleDefectRefailCause=(cause2)=>match2(find(cause2,(_)=>isDieType(_)&&isScheduleDefect(_.defect)?some2(_.defect):none2()),{onNone:()=>cause2,onSome:(error2)=>fail(error2.error)}),scheduleDefectRefail=(effect)=>catchAllCause(effect,(cause2)=>failCause(scheduleDefectRefailCause(cause2))),repeat_Effect=dual(2,(self,schedule)=>repeatOrElse_Effect(self,schedule,(e,_)=>fail2(e))),repeat_combined=dual(2,(self,options)=>{if(isSchedule(options))return repeat_Effect(self,options);let base=options.schedule??passthrough2(forever2),withWhile=options.while?whileInputEffect(base,(a)=>{let applied=options.while(a);if(typeof applied==="boolean")return succeed(applied);return scheduleDefectWrap(applied)}):base,withUntil=options.until?untilInputEffect(withWhile,(a)=>{let applied=options.until(a);if(typeof applied==="boolean")return succeed(applied);return scheduleDefectWrap(applied)}):withWhile,withTimes=options.times?intersect5(withUntil,recurs(options.times)).pipe(map15((intersectionPair)=>intersectionPair[0])):withUntil;return scheduleDefectRefail(repeat_Effect(self,withTimes))}),repeatOrElse_Effect=dual(3,(self,schedule,orElse5)=>flatMap8(driver(schedule),(driver2)=>matchEffect(self,{onFailure:(error2)=>orElse5(error2,none2()),onSuccess:(value)=>repeatOrElseEffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get10(driver2.iterationMeta)),driver2,(error2,option2)=>provideServiceEffect(orElse5(error2,option2),CurrentIterationMetadata,get10(driver2.iterationMeta)),value)}))),repeatOrElseEffectLoop=(self,driver2,orElse5,value)=>matchEffect(driver2.next(value),{onFailure:()=>orDie(driver2.last),onSuccess:(b)=>matchEffect(self,{onFailure:(error2)=>orElse5(error2,some2(b)),onSuccess:(value2)=>repeatOrElseEffectLoop(self,driver2,orElse5,value2)})}),retry_Effect=dual(2,(self,policy)=>retryOrElse_Effect(self,policy,(e,_)=>fail2(e))),retry_combined=dual(2,(self,options)=>{if(isSchedule(options))return retry_Effect(self,options);return scheduleDefectRefail(retry_Effect(self,fromRetryOptions(options)))}),fromRetryOptions=(options)=>{let base=options.schedule??forever2,withWhile=options.while?whileInputEffect(base,(e)=>{let applied=options.while(e);if(typeof applied==="boolean")return succeed(applied);return scheduleDefectWrap(applied)}):base,withUntil=options.until?untilInputEffect(withWhile,(e)=>{let applied=options.until(e);if(typeof applied==="boolean")return succeed(applied);return scheduleDefectWrap(applied)}):withWhile;return options.times?intersect5(withUntil,recurs(options.times)):withUntil},retryOrElse_Effect=dual(3,(self,policy,orElse5)=>flatMap8(driver(policy),(driver2)=>retryOrElse_EffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get10(driver2.iterationMeta)),driver2,(e,out)=>provideServiceEffect(orElse5(e,out),CurrentIterationMetadata,get10(driver2.iterationMeta))))),retryOrElse_EffectLoop=(self,driver2,orElse5)=>{return catchAll(self,(e)=>matchEffect(driver2.next(e),{onFailure:()=>pipe(driver2.last,orDie,flatMap8((out)=>orElse5(e,out))),onSuccess:()=>retryOrElse_EffectLoop(self,driver2,orElse5)}))},schedule_Effect=dual(2,(self,schedule)=>scheduleFrom_Effect(self,void 0,schedule)),scheduleFrom_Effect=dual(3,(self,initial,schedule)=>flatMap8(driver(schedule),(driver2)=>scheduleFrom_EffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get10(driver2.iterationMeta)),initial,driver2))),scheduleFrom_EffectLoop=(self,initial,driver2)=>matchEffect(driver2.next(initial),{onFailure:()=>orDie(driver2.last),onSuccess:()=>flatMap8(self,(a)=>scheduleFrom_EffectLoop(self,a,driver2))}),count2=unfold2(0,(n)=>n+1),elapsed=makeWithState(none2(),(now,_,state)=>{switch(state._tag){case"None":return succeed([some2(now),zero,continueWith2(after2(now))]);case"Some":return succeed([some2(state.value),millis(now-state.value),continueWith2(after2(now))])}}),forever2=unfold2(0,(n)=>n+1),once2=asVoid2(recurs(1)),stop=asVoid2(recurs(0)),scheduleForked=dual(2,(self,schedule)=>forkScoped(schedule_Effect(self,schedule)));var withExecutionPlan=dual(2,(effect,plan)=>suspend(()=>{let i=0,result;return flatMap8(whileLoop({while:()=>i<plan.steps.length&&(result===void 0||isLeft2(result)),body:()=>{let step3=plan.steps[i],nextEffect=effect_provide(effect,step3.provide);if(result){let attempted=!1,wrapped=nextEffect;nextEffect=suspend(()=>{if(attempted)return wrapped;return attempted=!0,result}),nextEffect=scheduleDefectRefail(retry_Effect(nextEffect,scheduleFromStep(step3,!1)))}else{let schedule=scheduleFromStep(step3,!0);nextEffect=schedule?scheduleDefectRefail(retry_Effect(nextEffect,schedule)):nextEffect}return either2(nextEffect)},step:(either4)=>{result=either4,i++}}),()=>result)})),scheduleFromStep=(step3,first)=>{if(!first)return fromRetryOptions({schedule:step3.schedule?step3.schedule:step3.attempts?void 0:once2,times:step3.attempts,while:step3.while});else if(step3.attempts===1||!(step3.schedule||step3.attempts))return;return fromRetryOptions({schedule:step3.schedule,while:step3.while,times:step3.attempts?step3.attempts-1:void 0})};var make39=deferredMake;var _await3=deferredAwait;var done7=deferredDone,fail7=deferredFail;var failCause6=deferredFailCause;var interrupt6=deferredInterrupt;var isDone5=deferredIsDone,poll3=deferredPoll,succeed7=deferredSucceed;var unsafeMake9=deferredUnsafeMake,unsafeDone=deferredUnsafeDone;var TypeId15=Symbol.for("effect/MutableList"),MutableListProto={[TypeId15]:TypeId15,[Symbol.iterator](){let done8=!1,head4=this.head;return{next(){if(done8)return this.return();if(head4==null)return done8=!0,this.return();let value=head4.value;return head4=head4.next,{done:done8,value}},return(value){if(!done8)done8=!0;return{done:!0,value}}}},toString(){return format(this.toJSON())},toJSON(){return{_id:"MutableList",values:Array.from(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},makeNode=(value)=>({value,removed:!1,prev:void 0,next:void 0}),empty27=()=>{let list=Object.create(MutableListProto);return list.head=void 0,list.tail=void 0,list._length=0,list};var isEmpty8=(self)=>length(self)===0,length=(self)=>self._length;var append3=dual(2,(self,value)=>{let node=makeNode(value);if(self.head===void 0)self.head=node;if(self.tail===void 0)self.tail=node;else self.tail.next=node,node.prev=self.tail,self.tail=node;return self._length+=1,self}),shift=(self)=>{let head4=self.head;if(head4!==void 0)return remove6(self,head4),head4.value;return};var remove6=(self,node)=>{if(node.removed)return;if(node.removed=!0,node.prev!==void 0&&node.next!==void 0)node.prev.next=node.next,node.next.prev=node.prev;else if(node.prev!==void 0)self.tail=node.prev,node.prev.next=void 0;else if(node.next!==void 0)self.head=node.next,node.next.prev=void 0;else self.tail=void 0,self.head=void 0;if(self._length>0)self._length-=1};var TypeId16=Symbol.for("effect/MutableQueue"),EmptyMutableQueue=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto={[TypeId16]:TypeId16,[Symbol.iterator](){return Array.from(this.queue)[Symbol.iterator]()},toString(){return format(this.toJSON())},toJSON(){return{_id:"MutableQueue",values:Array.from(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},pipe(){return pipeArguments(this,arguments)}},make40=(capacity)=>{let queue=Object.create(MutableQueueProto);return queue.queue=empty27(),queue.capacity=capacity,queue},bounded=(capacity)=>make40(capacity),unbounded=()=>make40(void 0),length2=(self)=>length(self.queue),isEmpty9=(self)=>isEmpty8(self.queue);var capacity=(self)=>self.capacity===void 0?1/0:self.capacity,offer=dual(2,(self,value)=>{let queueLength=length(self.queue);if(self.capacity!==void 0&&queueLength===self.capacity)return!1;return append3(value)(self.queue),!0}),offerAll=dual(2,(self,values3)=>{let iterator=values3[Symbol.iterator](),next4,remainder=empty2(),offering=!0;while(offering&&(next4=iterator.next())&&!next4.done)offering=offer(next4.value)(self);while(next4!=null&&!next4.done)remainder=prepend2(next4.value)(remainder),next4=iterator.next();return reverse2(remainder)}),poll4=dual(2,(self,def)=>{if(isEmpty8(self.queue))return def;return shift(self.queue)}),pollUpTo=dual(2,(self,n)=>{let result=empty2(),count3=0;while(count3<n){let element=poll4(EmptyMutableQueue)(self);if(element===EmptyMutableQueue)break;result=prepend2(element)(result),count3+=1}return reverse2(result)});var complete2=(key,exit2,entryStats,timeToLiveMillis)=>struct({_tag:"Complete",key,exit:exit2,entryStats,timeToLiveMillis}),pending2=(key,deferred)=>struct({_tag:"Pending",key,deferred}),refreshing=(deferred,complete3)=>struct({_tag:"Refreshing",deferred,complete:complete3}),MapKeyTypeId=Symbol.for("effect/Cache/MapKey");class MapKeyImpl{current;[MapKeyTypeId]=MapKeyTypeId;previous=void 0;next=void 0;constructor(current){this.current=current}[symbol](){return pipe(hash(this.current),combine(hash(this.previous)),combine(hash(this.next)),cached(this))}[symbol2](that){if(this===that)return!0;return isMapKey(that)&&equals(this.current,that.current)&&equals(this.previous,that.previous)&&equals(this.next,that.next)}}var makeMapKey=(current)=>new MapKeyImpl(current),isMapKey=(u)=>hasProperty(u,MapKeyTypeId);class KeySetImpl{head=void 0;tail=void 0;add(key){if(key!==this.tail)if(this.tail===void 0)this.head=key,this.tail=key;else{let{previous,next:next4}=key;if(next4!==void 0)if(key.next=void 0,previous!==void 0)previous.next=next4,next4.previous=previous;else this.head=next4,this.head.previous=void 0;this.tail.next=key,key.previous=this.tail,this.tail=key}}remove(){let key=this.head;if(key!==void 0){let next4=key.next;if(next4!==void 0)key.next=void 0,this.head=next4,this.head.previous=void 0;else this.head=void 0,this.tail=void 0}return key}}var makeKeySet=()=>new KeySetImpl,makeCacheState=(map16,keys3,accesses,updating,hits,misses)=>({map:map16,keys:keys3,accesses,updating,hits,misses}),initialCacheState=()=>makeCacheState(empty21(),makeKeySet(),unbounded(),make11(!1),0,0),CacheSymbolKey="effect/Cache",CacheTypeId=Symbol.for(CacheSymbolKey),cacheVariance={_Key:(_)=>_,_Error:(_)=>_,_Value:(_)=>_},ConsumerCacheSymbolKey="effect/ConsumerCache",ConsumerCacheTypeId=Symbol.for(ConsumerCacheSymbolKey),consumerCacheVariance={_Key:(_)=>_,_Error:(_)=>_,_Value:(_)=>_},makeCacheStats=(options)=>options,makeEntryStats=(loadedMillis)=>({loadedMillis});class CacheImpl{capacity;context;fiberId;lookup;timeToLive;[CacheTypeId]=cacheVariance;[ConsumerCacheTypeId]=consumerCacheVariance;cacheState;constructor(capacity2,context3,fiberId2,lookup,timeToLive){this.capacity=capacity2,this.context=context3,this.fiberId=fiberId2,this.lookup=lookup,this.timeToLive=timeToLive,this.cacheState=initialCacheState()}get(key){return map10(this.getEither(key),merge)}get cacheStats(){return sync(()=>makeCacheStats({hits:this.cacheState.hits,misses:this.cacheState.misses,size:size6(this.cacheState.map)}))}getOption(key){return suspend(()=>match2(get12(this.cacheState.map,key),{onNone:()=>{let mapKey=makeMapKey(key);return this.trackAccess(mapKey),this.trackMiss(),succeed(none2())},onSome:(value)=>this.resolveMapValue(value)}))}getOptionComplete(key){return suspend(()=>match2(get12(this.cacheState.map,key),{onNone:()=>{let mapKey=makeMapKey(key);return this.trackAccess(mapKey),this.trackMiss(),succeed(none2())},onSome:(value)=>this.resolveMapValue(value,!0)}))}contains(key){return sync(()=>has4(this.cacheState.map,key))}entryStats(key){return sync(()=>{let option2=get12(this.cacheState.map,key);if(isSome2(option2))switch(option2.value._tag){case"Complete":{let loaded=option2.value.entryStats.loadedMillis;return some2(makeEntryStats(loaded))}case"Pending":return none2();case"Refreshing":{let loaded=option2.value.complete.entryStats.loadedMillis;return some2(makeEntryStats(loaded))}}return none2()})}getEither(key){return suspend(()=>{let k=key,mapKey=void 0,deferred=void 0,value=getOrUndefined(get12(this.cacheState.map,k));if(value===void 0)if(deferred=unsafeMake9(this.fiberId),mapKey=makeMapKey(k),has4(this.cacheState.map,k))value=getOrUndefined(get12(this.cacheState.map,k));else set6(this.cacheState.map,k,pending2(mapKey,deferred));if(value===void 0)return this.trackAccess(mapKey),this.trackMiss(),map10(this.lookupValueOf(key,deferred),right2);else return flatMap8(this.resolveMapValue(value),match2({onNone:()=>this.getEither(key),onSome:(value2)=>succeed(left2(value2))}))})}invalidate(key){return sync(()=>{remove5(this.cacheState.map,key)})}invalidateWhen(key,when2){return sync(()=>{let value=get12(this.cacheState.map,key);if(isSome2(value)&&value.value._tag==="Complete"){if(value.value.exit._tag==="Success"){if(when2(value.value.exit.value))remove5(this.cacheState.map,key)}}})}get invalidateAll(){return sync(()=>{this.cacheState.map=empty21()})}refresh(key){return clockWith3((clock2)=>suspend(()=>{let k=key,deferred=unsafeMake9(this.fiberId),value=getOrUndefined(get12(this.cacheState.map,k));if(value===void 0)if(has4(this.cacheState.map,k))value=getOrUndefined(get12(this.cacheState.map,k));else set6(this.cacheState.map,k,pending2(makeMapKey(k),deferred));if(value===void 0)return asVoid(this.lookupValueOf(key,deferred));else switch(value._tag){case"Complete":{if(this.hasExpired(clock2,value.timeToLiveMillis)){let found=getOrUndefined(get12(this.cacheState.map,k));if(equals(found,value))remove5(this.cacheState.map,k);return asVoid(this.get(key))}return pipe(this.lookupValueOf(key,deferred),when(()=>{let current=getOrUndefined(get12(this.cacheState.map,k));if(equals(current,value)){let mapValue=refreshing(deferred,value);return set6(this.cacheState.map,k,mapValue),!0}return!1}),asVoid)}case"Pending":return _await3(value.deferred);case"Refreshing":return _await3(value.deferred)}}))}set(key,value){return clockWith3((clock2)=>sync(()=>{let now=clock2.unsafeCurrentTimeMillis(),k=key,lookupResult=succeed3(value),mapValue=complete2(makeMapKey(k),lookupResult,makeEntryStats(now),now+toMillis(decode(this.timeToLive(lookupResult))));set6(this.cacheState.map,k,mapValue)}))}get size(){return sync(()=>{return size6(this.cacheState.map)})}get values(){return sync(()=>{let values3=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")values3.push(entry[1].exit.value);return values3})}get entries(){return sync(()=>{let values3=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")values3.push([entry[0],entry[1].exit.value]);return values3})}get keys(){return sync(()=>{let keys3=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")keys3.push(entry[0]);return keys3})}resolveMapValue(value,ignorePending=!1){return clockWith3((clock2)=>{switch(value._tag){case"Complete":{if(this.trackAccess(value.key),this.hasExpired(clock2,value.timeToLiveMillis))return remove5(this.cacheState.map,value.key.current),succeed(none2());return this.trackHit(),map10(value.exit,some2)}case"Pending":{if(this.trackAccess(value.key),this.trackHit(),ignorePending)return succeed(none2());return map10(_await3(value.deferred),some2)}case"Refreshing":{if(this.trackAccess(value.complete.key),this.trackHit(),this.hasExpired(clock2,value.complete.timeToLiveMillis)){if(ignorePending)return succeed(none2());return map10(_await3(value.deferred),some2)}return map10(value.complete.exit,some2)}}})}trackHit(){this.cacheState.hits=this.cacheState.hits+1}trackMiss(){this.cacheState.misses=this.cacheState.misses+1}trackAccess(key){if(offer(this.cacheState.accesses,key),compareAndSet(this.cacheState.updating,!1,!0)){let loop2=!0;while(loop2){let key2=poll4(this.cacheState.accesses,EmptyMutableQueue);if(key2===EmptyMutableQueue)loop2=!1;else this.cacheState.keys.add(key2)}let size9=size6(this.cacheState.map);loop2=size9>this.capacity;while(loop2){let key2=this.cacheState.keys.remove();if(key2!==void 0){if(has4(this.cacheState.map,key2.current))remove5(this.cacheState.map,key2.current),size9=size9-1,loop2=size9>this.capacity}else loop2=!1}set2(this.cacheState.updating,!1)}}hasExpired(clock2,timeToLiveMillis){return clock2.unsafeCurrentTimeMillis()>timeToLiveMillis}lookupValueOf(input,deferred){return clockWith3((clock2)=>suspend(()=>{let key=input;return pipe(this.lookup(input),provideContext(this.context),exit,flatMap8((exit2)=>{let now=clock2.unsafeCurrentTimeMillis(),stats=makeEntryStats(now),value=complete2(makeMapKey(key),exit2,stats,now+toMillis(decode(this.timeToLive(exit2))));return set6(this.cacheState.map,key,value),zipRight(done7(deferred,exit2),exit2)}),onInterrupt(()=>zipRight(interrupt6(deferred),sync(()=>{remove5(this.cacheState.map,key)}))))}))}}var unsafeMakeWith=(capacity2,lookup,timeToLive)=>new CacheImpl(capacity2,empty8(),none3,lookup,(exit2)=>decode(timeToLive(exit2)));var currentCache=globalValue(Symbol.for("effect/FiberRef/currentCache"),()=>fiberRefUnsafeMake(unsafeMakeWith(65536,()=>map10(deferredMake(),(handle)=>({listeners:new Listeners,handle})),()=>seconds(60)))),currentCacheEnabled=globalValue(Symbol.for("effect/FiberRef/currentCacheEnabled"),()=>fiberRefUnsafeMake(!1)),fromRequest=(request,dataSource)=>flatMap8(isEffect(dataSource)?dataSource:succeed(dataSource),(ds)=>fiberIdWith((id2)=>{let proxy=new Proxy(request,{});return fiberRefGetWith(currentCacheEnabled,(cacheEnabled)=>{if(cacheEnabled){let cached3=fiberRefGetWith(currentCache,(cache)=>flatMap8(cache.getEither(proxy),(orNew)=>{switch(orNew._tag){case"Left":{if(orNew.left.listeners.interrupted)return flatMap8(cache.invalidateWhen(proxy,(entry)=>entry.handle===orNew.left.handle),()=>cached3);return orNew.left.listeners.increment(),uninterruptibleMask((restore)=>flatMap8(exit(blocked(empty16,restore(deferredAwait(orNew.left.handle)))),(exit2)=>{return orNew.left.listeners.decrement(),exit2}))}case"Right":return orNew.right.listeners.increment(),uninterruptibleMask((restore)=>flatMap8(exit(blocked(single(ds,makeEntry({request:proxy,result:orNew.right.handle,listeners:orNew.right.listeners,ownerId:id2,state:{completed:!1}})),restore(deferredAwait(orNew.right.handle)))),()=>{return orNew.right.listeners.decrement(),deferredAwait(orNew.right.handle)}))}}));return cached3}let listeners=new Listeners;return listeners.increment(),flatMap8(deferredMake(),(ref)=>ensuring(blocked(single(ds,makeEntry({request:proxy,result:ref,listeners,ownerId:id2,state:{completed:!1}})),deferredAwait(ref)),sync(()=>listeners.decrement())))})})),cacheRequest=(request,result)=>{return fiberRefGetWith(currentCacheEnabled,(cacheEnabled)=>{if(cacheEnabled)return fiberRefGetWith(currentCache,(cache)=>flatMap8(cache.getEither(request),(orNew)=>{switch(orNew._tag){case"Left":return void_;case"Right":return deferredComplete(orNew.right.handle,result)}}));return void_})},withRequestCaching=dual(2,(self,strategy)=>fiberRefLocally(self,currentCacheEnabled,strategy)),withRequestCache=dual(2,(self,cache)=>fiberRefLocally(self,currentCache,cache));var isRequest2=isRequest;var EffectTypeId3=EffectTypeId2,isEffect2=isEffect,cachedWithTTL=cached2,cachedInvalidateWithTTL2=cachedInvalidateWithTTL,cached3=memoize,cachedFunction2=cachedFunction,once3=once,all5=all4,allWith2=allWith,allSuccesses2=allSuccesses,dropUntil2=dropUntil,dropWhile3=dropWhile2,takeUntil2=takeUntil,takeWhile3=takeWhile2,every6=every5,exists2=exists,filter7=filter6,filterMap5=filterMap4,findFirst6=findFirst5,forEach6=forEach5,head4=head3,mergeAll5=mergeAll3,partition4=partition3,reduce11=reduce9,reduceWhile2=reduceWhile,reduceRight4=reduceRight3,reduceEffect3=reduceEffect,replicate2=replicate,replicateEffect2=replicateEffect,validateAll2=validateAll,validateFirst2=validateFirst,async=async_,asyncEffect2=asyncEffect,custom2=custom,withFiberRuntime2=withFiberRuntime,fail9=fail2,failSync3=failSync,failCause8=failCause,failCauseSync3=failCauseSync,die6=die2,dieMessage2=dieMessage,dieSync3=dieSync,gen2=gen,never3=never,none9=none6,promise2=promise,succeed9=succeed,succeedNone2=succeedNone,succeedSome2=succeedSome,suspend3=suspend,sync4=sync,_void=void_;var yieldNow4=yieldNow,_catch2=_catch;var catchAll3=catchAll,catchAllCause3=catchAllCause,catchAllDefect2=catchAllDefect,catchIf2=catchIf,catchSome2=catchSome,catchSomeCause2=catchSomeCause,catchSomeDefect2=catchSomeDefect,catchTag2=catchTag,catchTags2=catchTags,cause2=cause,eventually2=eventually,ignore2=ignore,ignoreLogged2=ignoreLogged,parallelErrors2=parallelErrors,sandbox2=sandbox,retry2=retry_combined,withExecutionPlan2=withExecutionPlan,retryOrElse=retryOrElse_Effect,try_3=try_2;var tryMap2=tryMap,tryMapPromise2=tryMapPromise,tryPromise2=tryPromise,unsandbox2=unsandbox,allowInterrupt2=allowInterrupt,checkInterruptible2=checkInterruptible,disconnect2=disconnect,interrupt7=interrupt2,interruptWith2=interruptWith,interruptible4=interruptible2,interruptibleMask2=interruptibleMask,onInterrupt2=onInterrupt,uninterruptible2=uninterruptible,uninterruptibleMask3=uninterruptibleMask,liftPredicate3=liftPredicate2,as4=as,asSome2=asSome,asSomeError2=asSomeError,asVoid3=asVoid,flip2=flip,flipWith2=flipWith,map16=map10,mapAccum4=mapAccum3,mapBoth4=mapBoth,mapError3=mapError,mapErrorCause2=mapErrorCause,merge7=merge5,negate2=negate,acquireRelease2=acquireRelease,acquireReleaseInterruptible2=acquireReleaseInterruptible,acquireUseRelease2=acquireUseRelease,addFinalizer3=addFinalizer,ensuring3=ensuring,onError2=onError,onExit3=onExit,parallelFinalizers2=parallelFinalizers,sequentialFinalizers2=sequentialFinalizers,finalizersMask2=finalizersMask,scope3=scope,scopeWith2=scopeWith,scopedWith2=scopedWith,scoped2=scopedEffect,using2=using,withEarlyRelease2=withEarlyRelease,awaitAllChildren2=awaitAllChildren,daemonChildren2=daemonChildren,descriptor2=descriptor,descriptorWith2=descriptorWith,diffFiberRefs2=diffFiberRefs,ensuringChild2=ensuringChild,ensuringChildren2=ensuringChildren,fiberId2=fiberId,fiberIdWith2=fiberIdWith,fork3=fork,forkDaemon2=forkDaemon,forkAll2=forkAll,forkIn2=forkIn,forkScoped2=forkScoped,forkWithErrorHandler2=forkWithErrorHandler,fromFiber2=fromFiber,fromFiberEffect2=fromFiberEffect,supervised2=supervised,transplant2=transplant,withConcurrency2=withConcurrency,withScheduler2=withScheduler,withSchedulingPriority2=withSchedulingPriority,withMaxOpsBeforeYield2=withMaxOpsBeforeYield,clock2=clock,clockWith4=clockWith3,withClockScoped2=withClockScoped,withClock2=withClock,console3=console2,consoleWith2=consoleWith,withConsoleScoped2=withConsoleScoped,withConsole2=withConsole,delay2=delay,sleep4=sleep3,timed2=timed,timedWith2=timedWith,timeout2=timeout,timeoutOption2=timeoutOption,timeoutFail2=timeoutFail,timeoutFailCause2=timeoutFailCause,timeoutTo2=timeoutTo,configProviderWith2=configProviderWith,withConfigProvider2=withConfigProvider,withConfigProviderScoped2=withConfigProviderScoped,context3=context,contextWith2=contextWith,contextWithEffect2=contextWithEffect,mapInputContext3=mapInputContext,provide2=effect_provide,provideService3=provideService,provideServiceEffect2=provideServiceEffect,serviceFunction2=serviceFunction,serviceFunctionEffect2=serviceFunctionEffect,serviceFunctions2=serviceFunctions,serviceConstants2=serviceConstants,serviceMembers2=serviceMembers,serviceOption2=serviceOption,serviceOptional2=serviceOptional,updateService2=updateService,Do2=Do,bind3=bind2,bindAll2=bindAll,bindTo3=bindTo2,let_3=let_2;var option2=option,either4=either2,exit2=exit,intoDeferred2=intoDeferred,if_2=if_;var filterOrDie2=filterOrDie,filterOrDieMessage2=filterOrDieMessage,filterOrElse2=filterOrElse,filterOrFail2=filterOrFail,filterEffectOrElse2=filterEffectOrElse,filterEffectOrFail2=filterEffectOrFail,unless2=unless,unlessEffect2=unlessEffect,when2=when,whenEffect2=whenEffect,whenFiberRef2=whenFiberRef,whenRef2=whenRef,flatMap11=flatMap8,andThen5=andThen2,flatten8=flatten5,race2=race,raceAll2=raceAll,raceFirst2=raceFirst,raceWith2=raceWith,summarized2=summarized,tap3=tap,tapBoth2=tapBoth,tapDefect2=tapDefect,tapError3=tapError,tapErrorTag2=tapErrorTag,tapErrorCause3=tapErrorCause,forever3=forever,iterate2=iterate,loop2=loop,repeat=repeat_combined,repeatN2=repeatN,repeatOrElse=repeatOrElse_Effect,schedule=schedule_Effect,scheduleForked2=scheduleForked,scheduleFrom=scheduleFrom_Effect,whileLoop2=whileLoop,getFiberRefs=fiberRefs2,inheritFiberRefs2=inheritFiberRefs,locally=fiberRefLocally,locallyWith=fiberRefLocallyWith,locallyScoped=fiberRefLocallyScoped,locallyScopedWith=fiberRefLocallyScopedWith,patchFiberRefs2=patchFiberRefs,setFiberRefs2=setFiberRefs,updateFiberRefs2=updateFiberRefs,isFailure4=isFailure2,isSuccess3=isSuccess,match13=match8,matchCause3=matchCause,matchCauseEffect3=matchCauseEffect,matchEffect2=matchEffect,log3=log,logWithLevel2=(level,...message)=>logWithLevel(level)(...message),logTrace2=logTrace,logDebug2=logDebug,logInfo2=logInfo,logWarning2=logWarning,logError2=logError,logFatal2=logFatal,withLogSpan2=withLogSpan,annotateLogs3=annotateLogs,annotateLogsScoped2=annotateLogsScoped,logAnnotations2=logAnnotations,withUnhandledErrorLogLevel2=withUnhandledErrorLogLevel,whenLogLevel2=whenLogLevel,orDie3=orDie,orDieWith2=orDieWith,orElse5=orElse2,orElseFail2=orElseFail,orElseSucceed2=orElseSucceed,firstSuccessOf2=firstSuccessOf,random3=random2,randomWith2=randomWith,withRandom2=withRandom,withRandomFixed=dual(2,(effect,values3)=>withRandom2(effect,fixed2(values3))),withRandomScoped2=withRandomScoped,runtime3=runtime2,getRuntimeFlags=runtimeFlags,patchRuntimeFlags=updateRuntimeFlags,withRuntimeFlagsPatch=withRuntimeFlags,withRuntimeFlagsPatchScoped=withRuntimeFlagsScoped,tagMetrics2=tagMetrics,labelMetrics2=labelMetrics,tagMetricsScoped2=tagMetricsScoped,labelMetricsScoped2=labelMetricsScoped,metricLabels2=metricLabels,withMetric2=withMetric,unsafeMakeSemaphore2=unsafeMakeSemaphore,makeSemaphore2=makeSemaphore,unsafeMakeLatch2=unsafeMakeLatch,makeLatch2=makeLatch,runFork2=unsafeForkEffect,runCallback=unsafeRunEffect,runPromise=unsafeRunPromiseEffect,runPromiseExit=unsafeRunPromiseExitEffect,runSync=unsafeRunSyncEffect,runSyncExit=unsafeRunSyncExitEffect,validate2=validate,validateWith2=validateWith,zip5=zipOptions,zipLeft3=zipLeftOptions,zipRight4=zipRightOptions,zipWith6=zipWithOptions,ap=dual(2,(self,that)=>zipWith6(self,that,(f,a)=>f(a))),blocked2=blocked,runRequestBlock2=runRequestBlock,step3=step2,request=dual((args2)=>isRequest2(args2[0]),fromRequest),cacheRequestResult=cacheRequest,withRequestBatching2=withRequestBatching,withRequestCaching2=withRequestCaching,withRequestCache2=withRequestCache,tracer2=tracer,tracerWith4=tracerWith,withTracer2=withTracer,withTracerScoped2=withTracerScoped,withTracerEnabled2=withTracerEnabled,withTracerTiming2=withTracerTiming,annotateSpans3=annotateSpans,annotateCurrentSpan2=annotateCurrentSpan,currentSpan2=currentSpan,currentParentSpan2=currentParentSpan,spanAnnotations2=spanAnnotations,spanLinks2=spanLinks,linkSpans2=linkSpans,linkSpanCurrent2=linkSpanCurrent,makeSpan2=makeSpan,makeSpanScoped2=makeSpanScoped,useSpan2=useSpan,withSpan3=withSpan,functionWithSpan2=functionWithSpan,withSpanScoped2=withSpanScoped,withParentSpan3=withParentSpan,fromNullable3=fromNullable2,optionFromOptional2=optionFromOptional,transposeOption=(self)=>{return isNone(self)?succeedNone2:map16(self.value,some)},transposeMapOption=dual(2,(self,f)=>isNone(self)?succeedNone2:map16(f(self.value),some)),makeTagProxy=(TagClass)=>{let cache=new Map;return new Proxy(TagClass,{get(target,prop,receiver){if(prop in target)return Reflect.get(target,prop,receiver);if(cache.has(prop))return cache.get(prop);let fn=(...args2)=>andThen2(target,(s)=>{if(typeof s[prop]==="function")return cache.set(prop,(...args3)=>andThen2(target,(s2)=>s2[prop](...args3))),s[prop](...args2);return cache.set(prop,andThen2(target,(s2)=>s2[prop])),s[prop]}),cn=andThen2(target,(s)=>s[prop]);Object.assign(fn,cn);let{apply,bind:bind4,call}=fn,proto4=Object.setPrototypeOf({},Object.getPrototypeOf(cn));return proto4.apply=apply,proto4.bind=bind4,proto4.call=call,Object.setPrototypeOf(fn,proto4),cache.set(prop,fn),fn}})},Tag3=(id2)=>()=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function TagClass(){}return Object.setPrototypeOf(TagClass,TagProto),TagClass.key=id2,Object.defineProperty(TagClass,"use",{get(){return(body)=>andThen2(this,body)}}),Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}}),makeTagProxy(TagClass)},Service=function(){return function(){let[id2,maker]=arguments,proxy="accessors"in maker?maker.accessors:!1,limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;let patchState="unchecked",TagClass=function(service2){if(patchState==="unchecked"){let proto4=Object.getPrototypeOf(service2);if(proto4===Object.prototype||proto4===null)patchState="plain";else{let selfProto=Object.getPrototypeOf(this);Object.setPrototypeOf(selfProto,proto4),patchState="patched"}}if(patchState==="plain")Object.assign(this,service2);else if(patchState==="patched")return Object.setPrototypeOf(service2,Object.getPrototypeOf(this)),service2};TagClass.prototype._tag=id2,Object.defineProperty(TagClass,"make",{get(){return(service2)=>new this(service2)}}),Object.defineProperty(TagClass,"use",{get(){return(body)=>andThen2(this,body)}}),TagClass.key=id2,Object.assign(TagClass,TagProto),Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}});let hasDeps="dependencies"in maker&&maker.dependencies.length>0,layerName=hasDeps?"DefaultWithoutDependencies":"Default",layerCache,isFunction3=!1;if("effect"in maker)isFunction3=typeof maker.effect==="function",Object.defineProperty(TagClass,layerName,{get(){if(isFunction3)return function(){return fromEffect3(TagClass,map16(maker.effect.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=fromEffect3(TagClass,map16(maker.effect,(_)=>new this(_)))}});else if("scoped"in maker)isFunction3=typeof maker.scoped==="function",Object.defineProperty(TagClass,layerName,{get(){if(isFunction3)return function(){return scoped(TagClass,map16(maker.scoped.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=scoped(TagClass,map16(maker.scoped,(_)=>new this(_)))}});else if("sync"in maker)Object.defineProperty(TagClass,layerName,{get(){return layerCache??=sync2(TagClass,()=>new this(maker.sync()))}});else Object.defineProperty(TagClass,layerName,{get(){return layerCache??=succeed5(TagClass,new this(maker.succeed))}});if(hasDeps){let layerWithDepsCache;Object.defineProperty(TagClass,"Default",{get(){if(isFunction3)return function(){return provide(this.DefaultWithoutDependencies.apply(null,arguments),maker.dependencies)};return layerWithDepsCache??=provide(this.DefaultWithoutDependencies,maker.dependencies)}})}return proxy===!0?makeTagProxy(TagClass):TagClass}},fn=function(nameOrBody,...pipeables){let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorDef=Error();if(Error.stackTraceLimit=limit,typeof nameOrBody!=="string")return defineLength(nameOrBody.length,function(...args2){let limit2=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorCall=Error();return Error.stackTraceLimit=limit2,fnApply({self:this,body:nameOrBody,args:args2,pipeables,spanName:"<anonymous>",spanOptions:{context:DisablePropagation.context(!0)},errorDef,errorCall})});let name=nameOrBody,options=pipeables[0];return(body,...pipeables2)=>defineLength(body.length,{[name](...args2){let limit2=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorCall=Error();return Error.stackTraceLimit=limit2,fnApply({self:this,body,args:args2,pipeables:pipeables2,spanName:name,spanOptions:options,errorDef,errorCall})}}[name])};function defineLength(length3,fn2){return Object.defineProperty(fn2,"length",{value:length3,configurable:!0})}function fnApply(options){let effect,fnError=void 0;if(isGeneratorFunction(options.body))effect=fromIterator(()=>options.body.apply(options.self,options.args));else try{effect=options.body.apply(options.self,options.args)}catch(error2){fnError=error2,effect=die6(error2)}if(options.pipeables.length>0)try{for(let x of options.pipeables)effect=x(effect,...options.args)}catch(error2){effect=fnError?failCause8(sequential(die(fnError),die(error2))):die6(error2)}let cache=!1,captureStackTrace=()=>{if(cache!==!1)return cache;if(options.errorCall.stack){let stackDef=options.errorDef.stack.trim().split(`
32
+ `),stackCall=options.errorCall.stack.trim().split(`
33
+ `),endStackDef=stackDef.slice(2).join(`
34
+ `).trim();if(!endStackDef.includes("("))endStackDef=endStackDef.replace(/at (.*)/,"at ($1)");let endStackCall=stackCall.slice(2).join(`
35
+ `).trim();if(!endStackCall.includes("("))endStackCall=endStackCall.replace(/at (.*)/,"at ($1)");return cache=`${endStackDef}
36
+ ${endStackCall}`,cache}},opts=options.spanOptions&&"captureStackTrace"in options.spanOptions?options.spanOptions:{captureStackTrace,...options.spanOptions};return withSpan3(effect,options.spanName,opts)}var fnUntraced2=fnUntraced,ensureSuccessType=()=>(effect)=>effect,ensureErrorType=()=>(effect)=>effect,ensureRequirementsType=()=>(effect)=>effect;var get13=fiberRefGet;var getWith=fiberRefGetWith;var currentContext2=currentContext,currentSchedulingPriority2=currentSchedulingPriority;var currentLoggers2=currentLoggers;var currentScheduler2=currentScheduler;var currentTracerTimingEnabled2=currentTracerTimingEnabled;var exports_Layer={};__export(exports_Layer,{zipWith:()=>zipWith7,withSpan:()=>withSpan4,withParentSpan:()=>withParentSpan4,updateService:()=>updateService3,unwrapScoped:()=>unwrapScoped2,unwrapEffect:()=>unwrapEffect2,toRuntimeWithMemoMap:()=>toRuntimeWithMemoMap2,toRuntime:()=>toRuntime2,tapErrorCause:()=>tapErrorCause4,tapError:()=>tapError4,tap:()=>tap4,syncContext:()=>syncContext2,sync:()=>sync5,suspend:()=>suspend4,succeedContext:()=>succeedContext2,succeed:()=>succeed10,span:()=>span3,setVersionMismatchErrorLogLevel:()=>setVersionMismatchErrorLogLevel,setUnhandledErrorLogLevel:()=>setUnhandledErrorLogLevel,setTracerTiming:()=>setTracerTiming,setTracerEnabled:()=>setTracerEnabled,setTracer:()=>setTracer2,setScheduler:()=>setScheduler,setRequestCaching:()=>setRequestCaching,setRequestCache:()=>setRequestCache,setRequestBatching:()=>setRequestBatching,setRandom:()=>setRandom,setConfigProvider:()=>setConfigProvider2,setClock:()=>setClock,service:()=>service2,scopedDiscard:()=>scopedDiscard2,scopedContext:()=>scopedContext2,scoped:()=>scoped3,scope:()=>scope4,retry:()=>retry3,provideMerge:()=>provideMerge2,provide:()=>provide3,project:()=>project2,passthrough:()=>passthrough3,parentSpan:()=>parentSpan2,orElse:()=>orElse6,orDie:()=>orDie4,mock:()=>mock2,mergeAll:()=>mergeAll6,merge:()=>merge8,memoize:()=>memoize3,matchCause:()=>matchCause4,match:()=>match14,mapError:()=>mapError4,map:()=>map17,makeMemoMap:()=>makeMemoMap2,locallyWith:()=>locallyWith2,locallyScoped:()=>locallyScoped2,locallyEffect:()=>locallyEffect2,locally:()=>locally2,launch:()=>launch2,isLayer:()=>isLayer2,isFresh:()=>isFresh2,function:()=>fromFunction3,fresh:()=>fresh2,flatten:()=>flatten9,flatMap:()=>flatMap12,fiberRefLocallyScopedWith:()=>fiberRefLocallyScopedWith3,failSync:()=>failSync4,failCauseSync:()=>failCauseSync4,failCause:()=>failCause9,fail:()=>fail10,extendScope:()=>extendScope2,empty:()=>empty28,effectDiscard:()=>effectDiscard,effectContext:()=>effectContext,effect:()=>effect,discard:()=>discard2,dieSync:()=>dieSync4,die:()=>die7,context:()=>context4,catchAllCause:()=>catchAllCause4,catchAll:()=>catchAll4,buildWithScope:()=>buildWithScope2,buildWithMemoMap:()=>buildWithMemoMap2,build:()=>build2,annotateSpans:()=>annotateSpans4,annotateLogs:()=>annotateLogs4,MemoMapTypeId:()=>MemoMapTypeId2,LayerTypeId:()=>LayerTypeId2,CurrentMemoMap:()=>CurrentMemoMap2});var setConfigProvider=(configProvider)=>scopedDiscard(withConfigProviderScoped(configProvider)),parentSpan=(span2)=>succeedContext(make9(spanTag,span2)),span2=(name,options)=>{return options=addSpanStackTrace(options),scoped(spanTag,options?.onEnd?tap(makeSpanScoped(name,options),(span3)=>addFinalizer((exit3)=>options.onEnd(span3,exit3))):makeSpanScoped(name,options))},setTracer=(tracer3)=>scopedDiscard(withTracerScoped(tracer3));var LayerTypeId2=LayerTypeId,MemoMapTypeId2=MemoMapTypeId,CurrentMemoMap2=CurrentMemoMap,isLayer2=isLayer,isFresh2=isFresh,annotateLogs4=annotateLogs2,annotateSpans4=annotateSpans2,build2=build,buildWithScope2=buildWithScope,catchAll4=catchAll2,catchAllCause4=catchAllCause2,context4=context2,die7=die5,dieSync4=dieSync2,discard2=discard,effect=fromEffect3,effectDiscard=fromEffectDiscard,effectContext=fromEffectContext,empty28=empty26,extendScope2=extendScope,fail10=fail6,failSync4=failSync2,failCause9=failCause5,failCauseSync4=failCauseSync2,flatMap12=flatMap10,flatten9=flatten7,fresh2=fresh,mock2=mock,fromFunction3=fromFunction;var launch2=launch,map17=map14,mapError4=mapError2,match14=match11,matchCause4=matchCause2,memoize3=memoize2,merge8=merge6,mergeAll6=mergeAll4,orDie4=orDie2,orElse6=orElse4,passthrough3=passthrough,project2=project,locallyEffect2=locallyEffect,locally2=fiberRefLocally2,locallyWith2=fiberRefLocallyWith2,locallyScoped2=fiberRefLocallyScoped2,fiberRefLocallyScopedWith3=fiberRefLocallyScopedWith2,retry3=retry,scope4=scope2,scoped3=scoped,scopedDiscard2=scopedDiscard,scopedContext2=scopedContext,service2=service,succeed10=succeed5,succeedContext2=succeedContext,suspend4=suspend2,sync5=sync2,syncContext2=syncContext,tap4=tap2,tapError4=tapError2,tapErrorCause4=tapErrorCause2,toRuntime2=toRuntime,toRuntimeWithMemoMap2=toRuntimeWithMemoMap,provide3=provide,provideMerge2=provideMerge,zipWith7=zipWith4,unwrapEffect2=unwrapEffect,unwrapScoped2=unwrapScoped,setClock=(clock3)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add4(clockTag,clock3))),setConfigProvider2=setConfigProvider,parentSpan2=parentSpan,setRandom=(random4)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add4(randomTag,random4))),setRequestBatching=(requestBatching)=>scopedDiscard2(fiberRefLocallyScoped(currentRequestBatching,requestBatching)),setRequestCaching=(requestCaching)=>scopedDiscard2(fiberRefLocallyScoped(currentCacheEnabled,requestCaching)),setRequestCache=(cache)=>scopedDiscard2(isEffect(cache)?flatMap8(cache,(x)=>fiberRefLocallyScoped(currentCache,x)):fiberRefLocallyScoped(currentCache,cache)),setScheduler=(scheduler)=>scopedDiscard2(fiberRefLocallyScoped(currentScheduler,scheduler)),span3=span2,setTracer2=setTracer,setTracerEnabled=(enabled2)=>scopedDiscard2(fiberRefLocallyScoped(currentTracerEnabled,enabled2)),setTracerTiming=(enabled2)=>scopedDiscard2(fiberRefLocallyScoped(currentTracerTimingEnabled,enabled2)),setUnhandledErrorLogLevel=(level)=>scopedDiscard2(fiberRefLocallyScoped(currentUnhandledErrorLogLevel,level)),setVersionMismatchErrorLogLevel=(level)=>scopedDiscard2(fiberRefLocallyScoped(currentVersionMismatchErrorLogLevel,level)),withSpan4=withSpan2,withParentSpan4=withParentSpan2,makeMemoMap2=makeMemoMap,buildWithMemoMap2=buildWithMemoMap,updateService3=dual(3,(layer,tag,f)=>provide3(layer,map17(context4(),(c)=>add4(c,tag,f(unsafeGet4(c,tag))))));var exports_Schedule={};__export(exports_Schedule,{zipWith:()=>zipWith8,zipRight:()=>zipRight5,zipLeft:()=>zipLeft4,windowed:()=>windowed2,whileOutputEffect:()=>whileOutputEffect2,whileOutput:()=>whileOutput2,whileInputEffect:()=>whileInputEffect2,whileInput:()=>whileInput2,upTo:()=>upTo2,untilOutputEffect:()=>untilOutputEffect2,untilOutput:()=>untilOutput2,untilInputEffect:()=>untilInputEffect2,untilInput:()=>untilInput2,unionWith:()=>unionWith3,union:()=>union9,unfold:()=>unfold3,tapOutput:()=>tapOutput2,tapInput:()=>tapInput2,sync:()=>sync6,succeed:()=>succeed11,stop:()=>stop2,spaced:()=>spaced2,secondOfMinute:()=>secondOfMinute2,run:()=>run2,resetWhen:()=>resetWhen2,resetAfter:()=>resetAfter2,repetitions:()=>repetitions2,repeatForever:()=>repeatForever,reduceEffect:()=>reduceEffect4,reduce:()=>reduce12,recurs:()=>recurs2,recurWhileEffect:()=>recurWhileEffect2,recurWhile:()=>recurWhile2,recurUpTo:()=>recurUpTo2,recurUntilOption:()=>recurUntilOption2,recurUntilEffect:()=>recurUntilEffect2,recurUntil:()=>recurUntil2,provideService:()=>provideService4,provideContext:()=>provideContext4,passthrough:()=>passthrough4,once:()=>once4,onDecision:()=>onDecision2,modifyDelayEffect:()=>modifyDelayEffect2,modifyDelay:()=>modifyDelay2,minuteOfHour:()=>minuteOfHour2,mapInputEffect:()=>mapInputEffect2,mapInputContext:()=>mapInputContext4,mapInput:()=>mapInput4,mapEffect:()=>mapEffect3,mapBothEffect:()=>mapBothEffect2,mapBoth:()=>mapBoth5,map:()=>map18,makeWithState:()=>makeWithState2,linear:()=>linear2,jitteredWith:()=>jitteredWith2,jittered:()=>jittered2,isSchedule:()=>isSchedule2,intersectWith:()=>intersectWith2,intersect:()=>intersect6,identity:()=>identity3,hourOfDay:()=>hourOfDay2,fromFunction:()=>fromFunction4,fromDelays:()=>fromDelays2,fromDelay:()=>fromDelay2,forever:()=>forever4,fixed:()=>fixed4,fibonacci:()=>fibonacci2,exponential:()=>exponential3,ensuring:()=>ensuring4,elapsed:()=>elapsed2,eitherWith:()=>eitherWith2,either:()=>either5,duration:()=>duration2,driver:()=>driver2,delays:()=>delays2,delayedSchedule:()=>delayedSchedule2,delayedEffect:()=>delayedEffect2,delayed:()=>delayed2,dayOfWeek:()=>dayOfWeek2,dayOfMonth:()=>dayOfMonth2,cron:()=>cron2,count:()=>count3,compose:()=>compose2,collectWhileEffect:()=>collectWhileEffect2,collectWhile:()=>collectWhile2,collectUntilEffect:()=>collectUntilEffect2,collectUntil:()=>collectUntil2,collectAllOutputs:()=>collectAllOutputs2,collectAllInputs:()=>collectAllInputs2,checkEffect:()=>checkEffect2,check:()=>check2,bothInOut:()=>bothInOut2,asVoid:()=>asVoid4,as:()=>as5,andThenEither:()=>andThenEither2,andThen:()=>andThen6,addDelayEffect:()=>addDelayEffect2,addDelay:()=>addDelay2,ScheduleTypeId:()=>ScheduleTypeId2,ScheduleDriverTypeId:()=>ScheduleDriverTypeId2,CurrentIterationMetadata:()=>CurrentIterationMetadata2});var ScheduleTypeId2=ScheduleTypeId,ScheduleDriverTypeId2=ScheduleDriverTypeId,makeWithState2=makeWithState,isSchedule2=isSchedule,addDelay2=addDelay,addDelayEffect2=addDelayEffect,andThen6=andThen4,andThenEither2=andThenEither,as5=as3,asVoid4=asVoid2,bothInOut2=bothInOut,check2=check,checkEffect2=checkEffect,collectAllInputs2=collectAllInputs,collectAllOutputs2=collectAllOutputs,collectUntil2=collectUntil,collectUntilEffect2=collectUntilEffect,collectWhile2=collectWhile,collectWhileEffect2=collectWhileEffect,compose2=compose,mapInput4=mapInput3,mapInputEffect2=mapInputEffect,mapInputContext4=mapInputContext2,count3=count2,cron2=cron,secondOfMinute2=secondOfMinute,minuteOfHour2=minuteOfHour,hourOfDay2=hourOfDay,dayOfMonth2=dayOfMonth,dayOfWeek2=dayOfWeek,delayed2=delayed,delayedEffect2=delayedEffect,delayedSchedule2=delayedSchedule,delays2=delays,mapBoth5=mapBoth3,mapBothEffect2=mapBothEffect,driver2=driver,duration2=duration,either5=either3,eitherWith2=eitherWith,elapsed2=elapsed,ensuring4=ensuring2,exponential3=exponential2,fibonacci2=fibonacci,fixed4=fixed3,forever4=forever2,fromDelay2=fromDelay,fromDelays2=fromDelays,fromFunction4=fromFunction2,identity3=identity2,passthrough4=passthrough2,intersect6=intersect5,intersectWith2=intersectWith,jittered2=jittered,jitteredWith2=jitteredWith,linear2=linear,map18=map15,mapEffect3=mapEffect2,modifyDelay2=modifyDelay,modifyDelayEffect2=modifyDelayEffect,onDecision2=onDecision,once4=once2,provideContext4=provideContext3,provideService4=provideService2,recurUntil2=recurUntil,recurUntilEffect2=recurUntilEffect,recurUntilOption2=recurUntilOption,recurUpTo2=recurUpTo,recurWhile2=recurWhile,recurWhileEffect2=recurWhileEffect,recurs2=recurs,reduce12=reduce10,reduceEffect4=reduceEffect2,repeatForever=forever2,repetitions2=repetitions,resetAfter2=resetAfter,resetWhen2=resetWhen,run2=run,spaced2=spaced,stop2=stop,succeed11=succeed6,sync6=sync3,tapInput2=tapInput,tapOutput2=tapOutput,unfold3=unfold2,union9=union8,unionWith3=unionWith2,untilInput2=untilInput,untilInputEffect2=untilInputEffect,untilOutput2=untilOutput,untilOutputEffect2=untilOutputEffect,upTo2=upTo,whileInput2=whileInput,whileInputEffect2=whileInputEffect,whileOutput2=whileOutput,whileOutputEffect2=whileOutputEffect,windowed2=windowed,zipLeft4=zipLeft2,zipRight5=zipRight3,zipWith8=zipWith5,CurrentIterationMetadata2=CurrentIterationMetadata;var exports_Stream={};__export(exports_Stream,{zipWithPreviousAndNext:()=>zipWithPreviousAndNext2,zipWithPrevious:()=>zipWithPrevious2,zipWithNext:()=>zipWithNext2,zipWithIndex:()=>zipWithIndex2,zipWithChunks:()=>zipWithChunks2,zipWith:()=>zipWith12,zipRight:()=>zipRight10,zipLeft:()=>zipLeft7,zipLatestWith:()=>zipLatestWith2,zipLatestAll:()=>zipLatestAll2,zipLatest:()=>zipLatest2,zipFlatten:()=>zipFlatten2,zipAllWith:()=>zipAllWith2,zipAllSortedByKeyWith:()=>zipAllSortedByKeyWith2,zipAllSortedByKeyRight:()=>zipAllSortedByKeyRight2,zipAllSortedByKeyLeft:()=>zipAllSortedByKeyLeft2,zipAllSortedByKey:()=>zipAllSortedByKey2,zipAllRight:()=>zipAllRight2,zipAllLeft:()=>zipAllLeft2,zipAll:()=>zipAll2,zip:()=>zip8,withSpan:()=>withSpan7,withExecutionPlan:()=>withExecutionPlan4,whenEffect:()=>whenEffect4,whenCaseEffect:()=>whenCaseEffect2,whenCase:()=>whenCase2,when:()=>when4,void:()=>void_8,updateService:()=>updateService5,unwrapScopedWith:()=>unwrapScopedWith4,unwrapScoped:()=>unwrapScoped5,unwrap:()=>unwrap3,unfoldEffect:()=>unfoldEffect2,unfoldChunkEffect:()=>unfoldChunkEffect2,unfoldChunk:()=>unfoldChunk2,unfold:()=>unfold5,transduce:()=>transduce2,toReadableStreamRuntime:()=>toReadableStreamRuntime2,toReadableStreamEffect:()=>toReadableStreamEffect2,toReadableStream:()=>toReadableStream2,toQueueOfElements:()=>toQueueOfElements2,toQueue:()=>toQueue3,toPull:()=>toPull3,toPubSub:()=>toPubSub3,toChannel:()=>toChannel3,toAsyncIterableRuntime:()=>toAsyncIterableRuntime2,toAsyncIterableEffect:()=>toAsyncIterableEffect2,toAsyncIterable:()=>toAsyncIterable2,timeoutTo:()=>timeoutTo4,timeoutFailCause:()=>timeoutFailCause4,timeoutFail:()=>timeoutFail4,timeout:()=>timeout4,tick:()=>tick2,throttleEffect:()=>throttleEffect2,throttle:()=>throttle2,tapSink:()=>tapSink2,tapErrorCause:()=>tapErrorCause6,tapError:()=>tapError6,tapBoth:()=>tapBoth4,tap:()=>tap7,takeWhile:()=>takeWhile5,takeUntilEffect:()=>takeUntilEffect2,takeUntil:()=>takeUntil4,takeRight:()=>takeRight3,take:()=>take8,sync:()=>sync10,suspend:()=>suspend10,succeed:()=>succeed16,splitOnChunk:()=>splitOnChunk2,splitLines:()=>splitLines3,split:()=>split2,someOrFail:()=>someOrFail2,someOrElse:()=>someOrElse2,some:()=>some6,slidingSize:()=>slidingSize2,sliding:()=>sliding8,share:()=>share2,scopedWith:()=>scopedWith5,scoped:()=>scoped6,scheduleWith:()=>scheduleWith2,schedule:()=>schedule3,scanReduceEffect:()=>scanReduceEffect2,scanReduce:()=>scanReduce2,scanEffect:()=>scanEffect2,scan:()=>scan2,runSum:()=>runSum2,runScoped:()=>runScoped3,runLast:()=>runLast2,runIntoQueueScoped:()=>runIntoQueueScoped2,runIntoQueueElementsScoped:()=>runIntoQueueElementsScoped2,runIntoQueue:()=>runIntoQueue2,runIntoPubSubScoped:()=>runIntoPubSubScoped2,runIntoPubSub:()=>runIntoPubSub2,runHead:()=>runHead2,runForEachWhileScoped:()=>runForEachWhileScoped2,runForEachWhile:()=>runForEachWhile2,runForEachScoped:()=>runForEachScoped2,runForEachChunkScoped:()=>runForEachChunkScoped2,runForEachChunk:()=>runForEachChunk2,runForEach:()=>runForEach2,runFoldWhileScopedEffect:()=>runFoldWhileScopedEffect2,runFoldWhileScoped:()=>runFoldWhileScoped2,runFoldWhileEffect:()=>runFoldWhileEffect2,runFoldWhile:()=>runFoldWhile2,runFoldScopedEffect:()=>runFoldScopedEffect2,runFoldScoped:()=>runFoldScoped2,runFoldEffect:()=>runFoldEffect2,runFold:()=>runFold2,runDrain:()=>runDrain3,runCount:()=>runCount2,runCollect:()=>runCollect2,run:()=>run5,retry:()=>retry7,repeatWith:()=>repeatWith2,repeatValue:()=>repeatValue2,repeatElementsWith:()=>repeatElementsWith2,repeatElements:()=>repeatElements2,repeatEither:()=>repeatEither2,repeatEffectWithSchedule:()=>repeatEffectWithSchedule2,repeatEffectOption:()=>repeatEffectOption2,repeatEffectChunkOption:()=>repeatEffectChunkOption2,repeatEffectChunk:()=>repeatEffectChunk2,repeatEffect:()=>repeatEffect2,repeat:()=>repeat3,refineOrDieWith:()=>refineOrDieWith2,refineOrDie:()=>refineOrDie2,rechunk:()=>rechunk2,range:()=>range3,raceAll:()=>raceAll4,race:()=>race4,provideSomeLayer:()=>provideSomeLayer3,provideSomeContext:()=>provideSomeContext3,provideServiceStream:()=>provideServiceStream2,provideServiceEffect:()=>provideServiceEffect4,provideService:()=>provideService7,provideLayer:()=>provideLayer2,provideContext:()=>provideContext7,prepend:()=>prepend5,pipeThroughChannelOrFail:()=>pipeThroughChannelOrFail2,pipeThroughChannel:()=>pipeThroughChannel2,pipeThrough:()=>pipeThrough2,peel:()=>peel2,partitionEither:()=>partitionEither2,partition:()=>partition6,paginateEffect:()=>paginateEffect2,paginateChunkEffect:()=>paginateChunkEffect2,paginateChunk:()=>paginateChunk2,paginate:()=>paginate2,orElseSucceed:()=>orElseSucceed4,orElseIfEmptyStream:()=>orElseIfEmptyStream2,orElseIfEmptyChunk:()=>orElseIfEmptyChunk2,orElseIfEmpty:()=>orElseIfEmpty2,orElseFail:()=>orElseFail4,orElseEither:()=>orElseEither4,orElse:()=>orElse9,orDieWith:()=>orDieWith5,orDie:()=>orDie6,onStart:()=>onStart2,onError:()=>onError4,onEnd:()=>onEnd2,onDone:()=>onDone2,never:()=>never5,mkString:()=>mkString3,mergeWithTag:()=>mergeWithTag2,mergeWith:()=>mergeWith4,mergeRight:()=>mergeRight2,mergeLeft:()=>mergeLeft2,mergeEither:()=>mergeEither2,mergeAll:()=>mergeAll9,merge:()=>merge10,mapInputContext:()=>mapInputContext7,mapErrorCause:()=>mapErrorCause5,mapError:()=>mapError7,mapEffect:()=>mapEffect5,mapConcatEffect:()=>mapConcatEffect2,mapConcatChunkEffect:()=>mapConcatChunkEffect2,mapConcatChunk:()=>mapConcatChunk2,mapConcat:()=>mapConcat2,mapChunksEffect:()=>mapChunksEffect2,mapChunks:()=>mapChunks2,mapBoth:()=>mapBoth7,mapAccumEffect:()=>mapAccumEffect2,mapAccum:()=>mapAccum6,map:()=>map23,make:()=>make52,let:()=>let_5,iterate:()=>iterate4,intersperseAffixes:()=>intersperseAffixes2,intersperse:()=>intersperse2,interruptWhenDeferred:()=>interruptWhenDeferred3,interruptWhen:()=>interruptWhen3,interruptAfter:()=>interruptAfter2,interleaveWith:()=>interleaveWith2,interleave:()=>interleave2,identity:()=>identity4,haltWhenDeferred:()=>haltWhenDeferred2,haltWhen:()=>haltWhen2,haltAfter:()=>haltAfter2,groupedWithin:()=>groupedWithin2,grouped:()=>grouped2,groupByKey:()=>groupByKey2,groupBy:()=>groupBy2,groupAdjacentBy:()=>groupAdjacentBy2,fromTQueue:()=>fromTQueue2,fromTPubSub:()=>fromTPubSub2,fromSchedule:()=>fromSchedule2,fromReadableStreamByob:()=>fromReadableStreamByob2,fromReadableStream:()=>fromReadableStream2,fromQueue:()=>fromQueue3,fromPull:()=>fromPull3,fromPubSub:()=>fromPubSub2,fromIteratorSucceed:()=>fromIteratorSucceed2,fromIterableEffect:()=>fromIterableEffect2,fromIterable:()=>fromIterable10,fromEventListener:()=>fromEventListener2,fromEffectOption:()=>fromEffectOption2,fromEffect:()=>fromEffect8,fromChunks:()=>fromChunks2,fromChunkQueue:()=>fromChunkQueue2,fromChunkPubSub:()=>fromChunkPubSub2,fromChunk:()=>fromChunk2,fromChannel:()=>fromChannel3,fromAsyncIterable:()=>fromAsyncIterable2,forever:()=>forever6,flattenTake:()=>flattenTake2,flattenIterables:()=>flattenIterables2,flattenExitOption:()=>flattenExitOption2,flattenEffect:()=>flattenEffect2,flattenChunks:()=>flattenChunks2,flatten:()=>flatten13,flatMap:()=>flatMap17,findEffect:()=>findEffect2,find:()=>find3,finalizer:()=>finalizer2,filterMapWhileEffect:()=>filterMapWhileEffect2,filterMapWhile:()=>filterMapWhile4,filterMapEffect:()=>filterMapEffect2,filterMap:()=>filterMap7,filterEffect:()=>filterEffect2,filter:()=>filter9,failSync:()=>failSync8,failCauseSync:()=>failCauseSync7,failCause:()=>failCause14,fail:()=>fail16,execute:()=>execute2,ensuringWith:()=>ensuringWith3,ensuring:()=>ensuring8,encodeText:()=>encodeText2,empty:()=>empty30,either:()=>either7,dropWhileEffect:()=>dropWhileEffect2,dropWhile:()=>dropWhile5,dropUntilEffect:()=>dropUntilEffect2,dropUntil:()=>dropUntil4,dropRight:()=>dropRight2,drop:()=>drop4,drainFork:()=>drainFork2,drain:()=>drain4,distributedWithDynamic:()=>distributedWithDynamic2,distributedWith:()=>distributedWith2,dieSync:()=>dieSync7,dieMessage:()=>dieMessage5,die:()=>die11,decodeText:()=>decodeText2,debounce:()=>debounce2,crossWith:()=>crossWith2,crossRight:()=>crossRight2,crossLeft:()=>crossLeft2,cross:()=>cross2,contextWithStream:()=>contextWithStream2,contextWithEffect:()=>contextWithEffect4,contextWith:()=>contextWith4,context:()=>context6,concatAll:()=>concatAll3,concat:()=>concat3,combineChunks:()=>combineChunks2,combine:()=>combine10,chunksWith:()=>chunksWith2,chunks:()=>chunks2,changesWithEffect:()=>changesWithEffect2,changesWith:()=>changesWith2,changes:()=>changes2,catchTags:()=>catchTags4,catchTag:()=>catchTag4,catchSomeCause:()=>catchSomeCause4,catchSome:()=>catchSome4,catchAllCause:()=>catchAllCause7,catchAll:()=>catchAll8,bufferChunks:()=>bufferChunks2,buffer:()=>buffer2,broadcastedQueuesDynamic:()=>broadcastedQueuesDynamic2,broadcastedQueues:()=>broadcastedQueues2,broadcastDynamic:()=>broadcastDynamic2,broadcast:()=>broadcast2,branchAfter:()=>branchAfter2,bindTo:()=>bindTo5,bindEffect:()=>bindEffect2,bind:()=>bind5,asyncScoped:()=>asyncScoped2,asyncPush:()=>asyncPush2,asyncEffect:()=>asyncEffect4,async:()=>_async2,as:()=>as9,aggregateWithinEither:()=>aggregateWithinEither2,aggregateWithin:()=>aggregateWithin2,aggregate:()=>aggregate2,acquireRelease:()=>acquireRelease4,accumulateChunks:()=>accumulateChunks2,accumulate:()=>accumulate2,StreamTypeId:()=>StreamTypeId3,Do:()=>Do4,DefaultChunkSize:()=>DefaultChunkSize2});var EnqueueSymbolKey="effect/QueueEnqueue",EnqueueTypeId=Symbol.for(EnqueueSymbolKey),DequeueSymbolKey="effect/QueueDequeue",DequeueTypeId=Symbol.for(DequeueSymbolKey),QueueStrategySymbolKey="effect/QueueStrategy",QueueStrategyTypeId=Symbol.for(QueueStrategySymbolKey),BackingQueueSymbolKey="effect/BackingQueue",BackingQueueTypeId=Symbol.for(BackingQueueSymbolKey),queueStrategyVariance={_A:(_)=>_},backingQueueVariance={_A:(_)=>_},enqueueVariance={_In:(_)=>_},dequeueVariance={_Out:(_)=>_};class QueueImpl extends Class{queue;takers;shutdownHook;shutdownFlag;strategy;[EnqueueTypeId]=enqueueVariance;[DequeueTypeId]=dequeueVariance;constructor(queue,takers,shutdownHook,shutdownFlag,strategy){super();this.queue=queue,this.takers=takers,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy}pipe(){return pipeArguments(this,arguments)}commit(){return this.take}capacity(){return this.queue.capacity()}get size(){return suspend(()=>catchAll(this.unsafeSize(),()=>interrupt2))}unsafeSize(){if(get6(this.shutdownFlag))return none2();return some2(this.queue.length()-length2(this.takers)+this.strategy.surplusSize())}get isEmpty(){return map10(this.size,(size9)=>size9<=0)}get isFull(){return map10(this.size,(size9)=>size9>=this.capacity())}get shutdown(){return uninterruptible(withFiberRuntime((state)=>{return pipe(this.shutdownFlag,set2(!0)),pipe(forEachConcurrentDiscard(unsafePollAll(this.takers),(d)=>deferredInterruptWith(d,state.id()),!1,!1),zipRight(this.strategy.shutdown),whenEffect(deferredSucceed(this.shutdownHook,void 0)),asVoid)}))}get isShutdown(){return sync(()=>get6(this.shutdownFlag))}get awaitShutdown(){return deferredAwait(this.shutdownHook)}isActive(){return!get6(this.shutdownFlag)}unsafeOffer(value){if(get6(this.shutdownFlag))return!1;let noRemaining;if(this.queue.length()===0){let taker=pipe(this.takers,poll4(EmptyMutableQueue));if(taker!==EmptyMutableQueue)unsafeCompleteDeferred(taker,value),noRemaining=!0;else noRemaining=!1}else noRemaining=!1;if(noRemaining)return!0;let succeeded=this.queue.offer(value);return unsafeCompleteTakers(this.strategy,this.queue,this.takers),succeeded}offer(value){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let noRemaining;if(this.queue.length()===0){let taker=pipe(this.takers,poll4(EmptyMutableQueue));if(taker!==EmptyMutableQueue)unsafeCompleteDeferred(taker,value),noRemaining=!0;else noRemaining=!1}else noRemaining=!1;if(noRemaining)return succeed(!0);let succeeded=this.queue.offer(value);return unsafeCompleteTakers(this.strategy,this.queue,this.takers),succeeded?succeed(!0):this.strategy.handleSurplus([value],this.queue,this.takers,this.shutdownFlag)})}offerAll(iterable){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let values3=fromIterable(iterable),pTakers=this.queue.length()===0?fromIterable(unsafePollN(this.takers,values3.length)):empty,[forTakers,remaining]=pipe(values3,splitAt(pTakers.length));for(let i=0;i<pTakers.length;i++){let taker=pTakers[i],item=forTakers[i];unsafeCompleteDeferred(taker,item)}if(remaining.length===0)return succeed(!0);let surplus=this.queue.offerAll(remaining);return unsafeCompleteTakers(this.strategy,this.queue,this.takers),isEmpty(surplus)?succeed(!0):this.strategy.handleSurplus(surplus,this.queue,this.takers,this.shutdownFlag)})}get take(){return withFiberRuntime((state)=>{if(get6(this.shutdownFlag))return interrupt2;let item=this.queue.poll(EmptyMutableQueue);if(item!==EmptyMutableQueue)return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),succeed(item);else{let deferred=deferredUnsafeMake(state.id());return pipe(suspend(()=>{return pipe(this.takers,offer(deferred)),unsafeCompleteTakers(this.strategy,this.queue,this.takers),get6(this.shutdownFlag)?interrupt2:deferredAwait(deferred)}),onInterrupt(()=>{return sync(()=>unsafeRemove(this.takers,deferred))}))}})}get takeAll(){return suspend(()=>{return get6(this.shutdownFlag)?interrupt2:sync(()=>{let values3=this.queue.pollUpTo(Number.POSITIVE_INFINITY);return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),fromIterable2(values3)})})}takeUpTo(max6){return suspend(()=>get6(this.shutdownFlag)?interrupt2:sync(()=>{let values3=this.queue.pollUpTo(max6);return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),fromIterable2(values3)}))}takeBetween(min4,max6){return suspend(()=>takeRemainderLoop(this,min4,max6,empty2()))}}var takeRemainderLoop=(self,min4,max6,acc)=>{if(max6<min4)return succeed(acc);return pipe(takeUpTo(self,max6),flatMap8((bs)=>{let remaining=min4-bs.length;if(remaining===1)return pipe(take2(self),map10((b)=>pipe(acc,appendAll2(bs),append2(b))));if(remaining>1)return pipe(take2(self),flatMap8((b)=>takeRemainderLoop(self,remaining-1,max6-bs.length-1,pipe(acc,appendAll2(bs),append2(b)))));return succeed(pipe(acc,appendAll2(bs)))}))};var bounded2=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make41(backingQueueFromMutableQueue(queue),backPressureStrategy()))),dropping=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make41(backingQueueFromMutableQueue(queue),droppingStrategy()))),sliding=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make41(backingQueueFromMutableQueue(queue),slidingStrategy()))),unbounded2=()=>pipe(sync(()=>unbounded()),flatMap8((queue)=>make41(backingQueueFromMutableQueue(queue),droppingStrategy()))),unsafeMake10=(queue,takers,shutdownHook,shutdownFlag,strategy)=>{return new QueueImpl(queue,takers,shutdownHook,shutdownFlag,strategy)},make41=(queue,strategy)=>pipe(deferredMake(),map10((deferred)=>unsafeMake10(queue,unbounded(),deferred,make11(!1),strategy)));class BackingQueueFromMutableQueue{mutable;[BackingQueueTypeId]=backingQueueVariance;constructor(mutable){this.mutable=mutable}poll(def){return poll4(this.mutable,def)}pollUpTo(limit){return pollUpTo(this.mutable,limit)}offerAll(elements){return offerAll(this.mutable,elements)}offer(element){return offer(this.mutable,element)}capacity(){return capacity(this.mutable)}length(){return length2(this.mutable)}}var backingQueueFromMutableQueue=(mutable)=>new BackingQueueFromMutableQueue(mutable),capacity2=(self)=>self.capacity(),size9=(self)=>self.size,isFull=(self)=>self.isFull,isEmpty10=(self)=>self.isEmpty,isShutdown=(self)=>self.isShutdown,awaitShutdown=(self)=>self.awaitShutdown,shutdown=(self)=>self.shutdown,offer2=dual(2,(self,value)=>self.offer(value));var offerAll2=dual(2,(self,iterable)=>self.offerAll(iterable)),poll5=(self)=>map10(self.takeUpTo(1),head2),take2=(self)=>self.take,takeAll=(self)=>self.takeAll,takeUpTo=dual(2,(self,max6)=>self.takeUpTo(max6)),takeBetween=dual(3,(self,min4,max6)=>self.takeBetween(min4,max6)),takeN=dual(2,(self,n)=>self.takeBetween(n,n)),backPressureStrategy=()=>new BackPressureStrategy,droppingStrategy=()=>new DroppingStrategy,slidingStrategy=()=>new SlidingStrategy;class BackPressureStrategy{[QueueStrategyTypeId]=queueStrategyVariance;putters=unbounded();surplusSize(){return length2(this.putters)}onCompleteTakersWithEmptyQueue(takers){while(!isEmpty9(this.putters)&&!isEmpty9(takers)){let taker=poll4(takers,void 0),putter=poll4(this.putters,void 0);if(putter[2])unsafeCompleteDeferred(putter[1],!0);unsafeCompleteDeferred(taker,putter[0])}}get shutdown(){return pipe(fiberId,flatMap8((fiberId3)=>pipe(sync(()=>unsafePollAll(this.putters)),flatMap8((putters)=>forEachConcurrentDiscard(putters,([_,deferred,isLastItem])=>isLastItem?pipe(deferredInterruptWith(deferred,fiberId3),asVoid):void_,!1,!1)))))}handleSurplus(iterable,queue,takers,isShutdown2){return withFiberRuntime((state)=>{let deferred=deferredUnsafeMake(state.id());return pipe(suspend(()=>{return this.unsafeOffer(iterable,deferred),this.unsafeOnQueueEmptySpace(queue,takers),unsafeCompleteTakers(this,queue,takers),get6(isShutdown2)?interrupt2:deferredAwait(deferred)}),onInterrupt(()=>sync(()=>this.unsafeRemove(deferred))))})}unsafeOnQueueEmptySpace(queue,takers){let keepPolling=!0;while(keepPolling&&(queue.capacity()===Number.POSITIVE_INFINITY||queue.length()<queue.capacity())){let putter=pipe(this.putters,poll4(EmptyMutableQueue));if(putter===EmptyMutableQueue)keepPolling=!1;else{let offered=queue.offer(putter[0]);if(offered&&putter[2])unsafeCompleteDeferred(putter[1],!0);else if(!offered)unsafeOfferAll(this.putters,pipe(unsafePollAll(this.putters),prepend2(putter)));unsafeCompleteTakers(this,queue,takers)}}}unsafeOffer(iterable,deferred){let stuff=fromIterable(iterable);for(let i=0;i<stuff.length;i++){let value=stuff[i];if(i===stuff.length-1)pipe(this.putters,offer([value,deferred,!0]));else pipe(this.putters,offer([value,deferred,!1]))}}unsafeRemove(deferred){unsafeOfferAll(this.putters,pipe(unsafePollAll(this.putters),filter2(([,_])=>_!==deferred)))}}class DroppingStrategy{[QueueStrategyTypeId]=queueStrategyVariance;surplusSize(){return 0}get shutdown(){return void_}onCompleteTakersWithEmptyQueue(){}handleSurplus(_iterable,_queue,_takers,_isShutdown){return succeed(!1)}unsafeOnQueueEmptySpace(_queue,_takers){}}class SlidingStrategy{[QueueStrategyTypeId]=queueStrategyVariance;surplusSize(){return 0}get shutdown(){return void_}onCompleteTakersWithEmptyQueue(){}handleSurplus(iterable,queue,takers,_isShutdown){return sync(()=>{return this.unsafeOffer(queue,iterable),unsafeCompleteTakers(this,queue,takers),!0})}unsafeOnQueueEmptySpace(_queue,_takers){}unsafeOffer(queue,iterable){let iterator=iterable[Symbol.iterator](),next4,offering=!0;while(!(next4=iterator.next()).done&&offering){if(queue.capacity()===0)return;queue.poll(EmptyMutableQueue),offering=queue.offer(next4.value)}}}var unsafeCompleteDeferred=(deferred,a)=>{return deferredUnsafeDone(deferred,succeed(a))},unsafeOfferAll=(queue,as6)=>{return pipe(queue,offerAll(as6))},unsafePollAll=(queue)=>{return pipe(queue,pollUpTo(Number.POSITIVE_INFINITY))},unsafePollN=(queue,max6)=>{return pipe(queue,pollUpTo(max6))},unsafeRemove=(queue,a)=>{unsafeOfferAll(queue,pipe(unsafePollAll(queue),filter2((b)=>a!==b)))},unsafeCompleteTakers=(strategy,queue,takers)=>{let keepPolling=!0;while(keepPolling&&queue.length()!==0){let taker=pipe(takers,poll4(EmptyMutableQueue));if(taker!==EmptyMutableQueue){let element=queue.poll(EmptyMutableQueue);if(element!==EmptyMutableQueue)unsafeCompleteDeferred(taker,element),strategy.unsafeOnQueueEmptySpace(queue,takers);else unsafeOfferAll(takers,pipe(unsafePollAll(takers),prepend2(taker)));keepPolling=!0}else keepPolling=!1}if(keepPolling&&queue.length()===0&&!isEmpty9(takers))strategy.onCompleteTakersWithEmptyQueue(takers)};var DequeueTypeId2=DequeueTypeId;var bounded3=bounded2,dropping2=dropping,sliding2=sliding,unbounded3=unbounded2,capacity3=capacity2,size10=size9,isEmpty11=isEmpty10,isFull2=isFull,isShutdown2=isShutdown,awaitShutdown2=awaitShutdown,shutdown2=shutdown,offer3=offer2;var offerAll3=offerAll2,poll6=poll5,take3=take2,takeAll2=takeAll,takeUpTo2=takeUpTo,takeBetween2=takeBetween,takeN2=takeN;var AbsentValue=Symbol.for("effect/PubSub/AbsentValue"),addSubscribers=(subscription,pollers)=>(subscribers)=>{if(!subscribers.has(subscription))subscribers.set(subscription,new Set);subscribers.get(subscription).add(pollers)},removeSubscribers=(subscription,pollers)=>(subscribers)=>{if(!subscribers.has(subscription))return;let set7=subscribers.get(subscription);if(set7.delete(pollers),set7.size===0)subscribers.delete(subscription)},bounded4=(capacity4)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity4);return makePubSub(pubsub,new BackPressureStrategy2)}),dropping3=(capacity4)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity4);return makePubSub(pubsub,new DroppingStrategy2)}),sliding3=(capacity4)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity4);return makePubSub(pubsub,new SlidingStrategy2)}),unbounded4=(options)=>suspend(()=>{let pubsub=makeUnboundedPubSub(options);return makePubSub(pubsub,new DroppingStrategy2)});var shutdown3=(self)=>self.shutdown;var subscribe=(self)=>self.subscribe,makeBoundedPubSub=(capacity4)=>{let options=typeof capacity4==="number"?{capacity:capacity4}:capacity4;ensureCapacity(options.capacity);let replayBuffer=options.replay&&options.replay>0?new ReplayBuffer(Math.ceil(options.replay)):void 0;if(options.capacity===1)return new BoundedPubSubSingle(replayBuffer);else if(nextPow2(options.capacity)===options.capacity)return new BoundedPubSubPow2(options.capacity,replayBuffer);else return new BoundedPubSubArb(options.capacity,replayBuffer)},makeUnboundedPubSub=(options)=>new UnboundedPubSub(options?.replay?new ReplayBuffer(options.replay):void 0),makeSubscription=(pubsub,subscribers,strategy)=>map10(deferredMake(),(deferred)=>unsafeMakeSubscription(pubsub,subscribers,pubsub.subscribe(),unbounded(),deferred,make11(!1),strategy)),unsafeMakeSubscription=(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy)=>new SubscriptionImpl(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy,pubsub.replayWindow());class BoundedPubSubArb{capacity;replayBuffer;array;publisherIndex=0;subscribers;subscriberCount=0;subscribersIndex=0;constructor(capacity4,replayBuffer){this.capacity=capacity4,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity4}),this.subscribers=Array.from({length:capacity4})}replayWindow(){return this.replayBuffer?new ReplayWindowImpl(this.replayBuffer):emptyReplayWindow}isEmpty(){return this.publisherIndex===this.subscribersIndex}isFull(){return this.publisherIndex===this.subscribersIndex+this.capacity}size(){return this.publisherIndex-this.subscribersIndex}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0){let index=this.publisherIndex%this.capacity;this.array[index]=value,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1}if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty2()}let chunk2=fromIterable2(elements),n=chunk2.length,size11=this.publisherIndex-this.subscribersIndex,available=this.capacity-size11,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk2;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let a=unsafeGet2(chunk2,iteratorIndex++),index=this.publisherIndex%this.capacity;if(this.array[index]=a,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1,this.replayBuffer)this.replayBuffer.offer(a)}return drop2(chunk2,iteratorIndex)}slide(){if(this.subscribersIndex!==this.publisherIndex){let index=this.subscribersIndex%this.capacity;this.array[index]=AbsentValue,this.subscribers[index]=0,this.subscribersIndex+=1}if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubArbSubscription(this,this.publisherIndex,!1)}}class BoundedPubSubArbSubscription{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.publisherIndex===this.subscriberIndex||this.self.publisherIndex===this.self.subscribersIndex}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;if(this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex),this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex%this.self.capacity,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;return this.subscriberIndex+=1,elem}return default_}pollUpTo(n){if(this.unsubscribed)return empty2();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size11=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size11);if(toPoll<=0)return empty2();let builder=[],pollUpToIndex=this.subscriberIndex+toPoll;while(this.subscriberIndex!==pollUpToIndex){let index=this.subscriberIndex%this.self.capacity,a=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;builder.push(a),this.subscriberIndex+=1}return fromIterable2(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);while(this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex%this.self.capacity;if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;this.subscriberIndex+=1}}}}class BoundedPubSubPow2{capacity;replayBuffer;array;mask;publisherIndex=0;subscribers;subscriberCount=0;subscribersIndex=0;constructor(capacity4,replayBuffer){this.capacity=capacity4,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity4}),this.mask=capacity4-1,this.subscribers=Array.from({length:capacity4})}replayWindow(){return this.replayBuffer?new ReplayWindowImpl(this.replayBuffer):emptyReplayWindow}isEmpty(){return this.publisherIndex===this.subscribersIndex}isFull(){return this.publisherIndex===this.subscribersIndex+this.capacity}size(){return this.publisherIndex-this.subscribersIndex}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0){let index=this.publisherIndex&this.mask;this.array[index]=value,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1}if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty2()}let chunk2=fromIterable2(elements),n=chunk2.length,size11=this.publisherIndex-this.subscribersIndex,available=this.capacity-size11,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk2;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let elem=unsafeGet2(chunk2,iteratorIndex++),index=this.publisherIndex&this.mask;if(this.array[index]=elem,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1,this.replayBuffer)this.replayBuffer.offer(elem)}return drop2(chunk2,iteratorIndex)}slide(){if(this.subscribersIndex!==this.publisherIndex){let index=this.subscribersIndex&this.mask;this.array[index]=AbsentValue,this.subscribers[index]=0,this.subscribersIndex+=1}if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubPow2Subscription(this,this.publisherIndex,!1)}}class BoundedPubSubPow2Subscription{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.publisherIndex===this.subscriberIndex||this.self.publisherIndex===this.self.subscribersIndex}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;if(this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex),this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex&this.self.mask,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;return this.subscriberIndex+=1,elem}return default_}pollUpTo(n){if(this.unsubscribed)return empty2();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size11=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size11);if(toPoll<=0)return empty2();let builder=[],pollUpToIndex=this.subscriberIndex+toPoll;while(this.subscriberIndex!==pollUpToIndex){let index=this.subscriberIndex&this.self.mask,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;builder.push(elem),this.subscriberIndex+=1}return fromIterable2(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);while(this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex&this.self.mask;if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue,this.self.subscribersIndex+=1;this.subscriberIndex+=1}}}}class BoundedPubSubSingle{replayBuffer;publisherIndex=0;subscriberCount=0;subscribers=0;value=AbsentValue;capacity=1;constructor(replayBuffer){this.replayBuffer=replayBuffer}replayWindow(){return this.replayBuffer?new ReplayWindowImpl(this.replayBuffer):emptyReplayWindow}pipe(){return pipeArguments(this,arguments)}isEmpty(){return this.subscribers===0}isFull(){return!this.isEmpty()}size(){return this.isEmpty()?0:1}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0)this.value=value,this.subscribers=this.subscriberCount,this.publisherIndex+=1;if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty2()}let chunk2=fromIterable2(elements);if(isEmpty(chunk2))return chunk2;if(this.publish(unsafeHead(chunk2)))return drop2(chunk2,1);else return chunk2}slide(){if(this.isFull())this.subscribers=0,this.value=AbsentValue;if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubSingleSubscription(this,this.publisherIndex,!1)}}class BoundedPubSubSingleSubscription{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.subscribers===0||this.subscriberIndex===this.self.publisherIndex}size(){return this.isEmpty()?0:1}poll(default_){if(this.isEmpty())return default_;let elem=this.self.value;if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue;return this.subscriberIndex+=1,elem}pollUpTo(n){if(this.isEmpty()||n<1)return empty2();let a=this.self.value;if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue;return this.subscriberIndex+=1,of2(a)}unsubscribe(){if(!this.unsubscribed){if(this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex!==this.self.publisherIndex){if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue}}}}class UnboundedPubSub{replayBuffer;publisherHead={value:AbsentValue,subscribers:0,next:null};publisherTail=this.publisherHead;publisherIndex=0;subscribersIndex=0;capacity=Number.MAX_SAFE_INTEGER;constructor(replayBuffer){this.replayBuffer=replayBuffer}replayWindow(){return this.replayBuffer?new ReplayWindowImpl(this.replayBuffer):emptyReplayWindow}isEmpty(){return this.publisherHead===this.publisherTail}isFull(){return!1}size(){return this.publisherIndex-this.subscribersIndex}publish(value){let subscribers=this.publisherTail.subscribers;if(subscribers!==0)this.publisherTail.next={value,subscribers,next:null},this.publisherTail=this.publisherTail.next,this.publisherIndex+=1;if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.publisherTail.subscribers!==0)for(let a of elements)this.publish(a);else if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty2()}slide(){if(this.publisherHead!==this.publisherTail)this.publisherHead=this.publisherHead.next,this.publisherHead.value=AbsentValue,this.subscribersIndex+=1;if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.publisherTail.subscribers+=1,new UnboundedPubSubSubscription(this,this.publisherTail,this.publisherIndex,!1)}}class UnboundedPubSubSubscription{self;subscriberHead;subscriberIndex;unsubscribed;constructor(self,subscriberHead,subscriberIndex,unsubscribed){this.self=self,this.subscriberHead=subscriberHead,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){if(this.unsubscribed)return!0;let empty29=!0,loop3=!0;while(loop3)if(this.subscriberHead===this.self.publisherTail)loop3=!1;else if(this.subscriberHead.next.value!==AbsentValue)empty29=!1,loop3=!1;else this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1;return empty29}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;let loop3=!0,polled=default_;while(loop3)if(this.subscriberHead===this.self.publisherTail)loop3=!1;else{let elem=this.subscriberHead.next.value;if(elem!==AbsentValue){if(polled=elem,this.subscriberHead.subscribers-=1,this.subscriberHead.subscribers===0)this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=AbsentValue,this.self.subscribersIndex+=1;loop3=!1}this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1}return polled}pollUpTo(n){let builder=[],default_=AbsentValue,i=0;while(i!==n){let a=this.poll(default_);if(a===default_)i=n;else builder.push(a),i+=1}return fromIterable2(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.publisherTail.subscribers-=1;while(this.subscriberHead!==this.self.publisherTail){if(this.subscriberHead.next.value!==AbsentValue){if(this.subscriberHead.subscribers-=1,this.subscriberHead.subscribers===0)this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=AbsentValue,this.self.subscribersIndex+=1}this.subscriberHead=this.subscriberHead.next}}}}class SubscriptionImpl extends Class{pubsub;subscribers;subscription;pollers;shutdownHook;shutdownFlag;strategy;replayWindow;[DequeueTypeId]=dequeueVariance;constructor(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy,replayWindow){super();this.pubsub=pubsub,this.subscribers=subscribers,this.subscription=subscription,this.pollers=pollers,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy,this.replayWindow=replayWindow}commit(){return this.take}pipe(){return pipeArguments(this,arguments)}capacity(){return this.pubsub.capacity}isActive(){return!get6(this.shutdownFlag)}get size(){return suspend(()=>get6(this.shutdownFlag)?interrupt2:succeed(this.subscription.size()+this.replayWindow.remaining))}unsafeSize(){if(get6(this.shutdownFlag))return none2();return some2(this.subscription.size()+this.replayWindow.remaining)}get isFull(){return suspend(()=>get6(this.shutdownFlag)?interrupt2:succeed(this.subscription.size()===this.capacity()))}get isEmpty(){return map10(this.size,(size11)=>size11===0)}get shutdown(){return uninterruptible(withFiberRuntime((state)=>{return set2(this.shutdownFlag,!0),pipe(forEachParUnbounded(unsafePollAllQueue(this.pollers),(d)=>deferredInterruptWith(d,state.id()),!1),zipRight(sync(()=>{this.subscribers.delete(this.subscription),this.subscription.unsubscribe(),this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers)})),whenEffect(deferredSucceed(this.shutdownHook,void 0)),asVoid)}))}get isShutdown(){return sync(()=>get6(this.shutdownFlag))}get awaitShutdown(){return deferredAwait(this.shutdownHook)}get take(){return withFiberRuntime((state)=>{if(get6(this.shutdownFlag))return interrupt2;if(this.replayWindow.remaining>0){let message2=this.replayWindow.take();return succeed(message2)}let message=isEmpty9(this.pollers)?this.subscription.poll(EmptyMutableQueue):EmptyMutableQueue;if(message===EmptyMutableQueue){let deferred=deferredUnsafeMake(state.id());return pipe(suspend(()=>{return pipe(this.pollers,offer(deferred)),pipe(this.subscribers,addSubscribers(this.subscription,this.pollers)),this.strategy.unsafeCompletePollers(this.pubsub,this.subscribers,this.subscription,this.pollers),get6(this.shutdownFlag)?interrupt2:deferredAwait(deferred)}),onInterrupt(()=>sync(()=>unsafeRemove2(this.pollers,deferred))))}else return this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),succeed(message)})}get takeAll(){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let as6=isEmpty9(this.pollers)?unsafePollAllSubscription(this.subscription):empty2();if(this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),this.replayWindow.remaining>0)return succeed(appendAll2(this.replayWindow.takeAll(),as6));return succeed(as6)})}takeUpTo(max6){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let replay=void 0;if(this.replayWindow.remaining>=max6){let as7=this.replayWindow.takeN(max6);return succeed(as7)}else if(this.replayWindow.remaining>0)replay=this.replayWindow.takeAll(),max6=max6-replay.length;let as6=isEmpty9(this.pollers)?unsafePollN2(this.subscription,max6):empty2();return this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),replay?succeed(appendAll2(replay,as6)):succeed(as6)})}takeBetween(min4,max6){return suspend(()=>takeRemainderLoop2(this,min4,max6,empty2()))}}var takeRemainderLoop2=(self,min4,max6,acc)=>{if(max6<min4)return succeed(acc);return pipe(self.takeUpTo(max6),flatMap8((bs)=>{let remaining=min4-bs.length;if(remaining===1)return pipe(self.take,map10((b)=>pipe(acc,appendAll2(bs),append2(b))));if(remaining>1)return pipe(self.take,flatMap8((b)=>takeRemainderLoop2(self,remaining-1,max6-bs.length-1,pipe(acc,appendAll2(bs),append2(b)))));return succeed(pipe(acc,appendAll2(bs)))}))};class PubSubImpl{pubsub;subscribers;scope;shutdownHook;shutdownFlag;strategy;[EnqueueTypeId]=enqueueVariance;[DequeueTypeId]=dequeueVariance;constructor(pubsub,subscribers,scope5,shutdownHook,shutdownFlag,strategy){this.pubsub=pubsub,this.subscribers=subscribers,this.scope=scope5,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy}capacity(){return this.pubsub.capacity}get size(){return suspend(()=>get6(this.shutdownFlag)?interrupt2:sync(()=>this.pubsub.size()))}unsafeSize(){if(get6(this.shutdownFlag))return none2();return some2(this.pubsub.size())}get isFull(){return map10(this.size,(size11)=>size11===this.capacity())}get isEmpty(){return map10(this.size,(size11)=>size11===0)}get awaitShutdown(){return deferredAwait(this.shutdownHook)}get isShutdown(){return sync(()=>get6(this.shutdownFlag))}get shutdown(){return uninterruptible(withFiberRuntime((state)=>{return pipe(this.shutdownFlag,set2(!0)),pipe(this.scope.close(exitInterrupt(state.id())),zipRight(this.strategy.shutdown),whenEffect(deferredSucceed(this.shutdownHook,void 0)),asVoid)}))}publish(value){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;if(this.pubsub.publish(value))return this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),succeed(!0);return this.strategy.handleSurplus(this.pubsub,this.subscribers,of2(value),this.shutdownFlag)})}isActive(){return!get6(this.shutdownFlag)}unsafeOffer(value){if(get6(this.shutdownFlag))return!1;if(this.pubsub.publish(value))return this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),!0;return!1}publishAll(elements){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let surplus=unsafePublishAll(this.pubsub,elements);if(this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),isEmpty(surplus))return succeed(!0);return this.strategy.handleSurplus(this.pubsub,this.subscribers,surplus,this.shutdownFlag)})}get subscribe(){let acquire=tap(all4([this.scope.fork(sequential2),makeSubscription(this.pubsub,this.subscribers,this.strategy)]),(tuple2)=>tuple2[0].addFinalizer(()=>tuple2[1].shutdown));return map10(acquireRelease(acquire,(tuple2,exit3)=>tuple2[0].close(exit3)),(tuple2)=>tuple2[1])}offer(value){return this.publish(value)}offerAll(elements){return this.publishAll(elements)}pipe(){return pipeArguments(this,arguments)}}var makePubSub=(pubsub,strategy)=>flatMap8(scopeMake(),(scope5)=>map10(deferredMake(),(deferred)=>unsafeMakePubSub(pubsub,new Map,scope5,deferred,make11(!1),strategy))),unsafeMakePubSub=(pubsub,subscribers,scope5,shutdownHook,shutdownFlag,strategy)=>new PubSubImpl(pubsub,subscribers,scope5,shutdownHook,shutdownFlag,strategy),ensureCapacity=(capacity4)=>{if(capacity4<=0)throw new InvalidPubSubCapacityException(`Cannot construct PubSub with capacity of ${capacity4}`)},unsafeCompleteDeferred2=(deferred,a)=>{deferredUnsafeDone(deferred,succeed(a))},unsafeOfferAll2=(queue,as6)=>{return pipe(queue,offerAll(as6))},unsafePollAllQueue=(queue)=>{return pipe(queue,pollUpTo(Number.POSITIVE_INFINITY))},unsafePollAllSubscription=(subscription)=>{return subscription.pollUpTo(Number.POSITIVE_INFINITY)},unsafePollN2=(subscription,max6)=>{return subscription.pollUpTo(max6)},unsafePublishAll=(pubsub,as6)=>{return pubsub.publishAll(as6)},unsafeRemove2=(queue,value)=>{unsafeOfferAll2(queue,pipe(unsafePollAllQueue(queue),filter2((elem)=>elem!==value)))};class BackPressureStrategy2{publishers=unbounded();get shutdown(){return flatMap8(fiberId,(fiberId3)=>flatMap8(sync(()=>unsafePollAllQueue(this.publishers)),(publishers)=>forEachConcurrentDiscard(publishers,([_,deferred,last3])=>last3?pipe(deferredInterruptWith(deferred,fiberId3),asVoid):void_,!1,!1)))}handleSurplus(pubsub,subscribers,elements,isShutdown3){return withFiberRuntime((state)=>{let deferred=deferredUnsafeMake(state.id());return pipe(suspend(()=>{return this.unsafeOffer(elements,deferred),this.unsafeOnPubSubEmptySpace(pubsub,subscribers),this.unsafeCompleteSubscribers(pubsub,subscribers),get6(isShutdown3)?interrupt2:deferredAwait(deferred)}),onInterrupt(()=>sync(()=>this.unsafeRemove(deferred))))})}unsafeOnPubSubEmptySpace(pubsub,subscribers){let keepPolling=!0;while(keepPolling&&!pubsub.isFull()){let publisher=pipe(this.publishers,poll4(EmptyMutableQueue));if(publisher===EmptyMutableQueue)keepPolling=!1;else{let published=pubsub.publish(publisher[0]);if(published&&publisher[2])unsafeCompleteDeferred2(publisher[1],!0);else if(!published)unsafeOfferAll2(this.publishers,pipe(unsafePollAllQueue(this.publishers),prepend2(publisher)));this.unsafeCompleteSubscribers(pubsub,subscribers)}}}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers(this,pubsub,subscribers)}unsafeOffer(elements,deferred){let iterator=elements[Symbol.iterator](),next4=iterator.next();if(!next4.done)while(!0){let value=next4.value;if(next4=iterator.next(),next4.done){pipe(this.publishers,offer([value,deferred,!0]));break}pipe(this.publishers,offer([value,deferred,!1]))}}unsafeRemove(deferred){unsafeOfferAll2(this.publishers,pipe(unsafePollAllQueue(this.publishers),filter2(([_,a])=>a!==deferred)))}}class DroppingStrategy2{get shutdown(){return void_}handleSurplus(_pubsub,_subscribers,_elements,_isShutdown){return succeed(!1)}unsafeOnPubSubEmptySpace(_pubsub,_subscribers){}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers(this,pubsub,subscribers)}}class SlidingStrategy2{get shutdown(){return void_}handleSurplus(pubsub,subscribers,elements,_isShutdown){return sync(()=>{return this.unsafeSlidingPublish(pubsub,elements),this.unsafeCompleteSubscribers(pubsub,subscribers),!0})}unsafeOnPubSubEmptySpace(_pubsub,_subscribers){}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers(this,pubsub,subscribers)}unsafeSlidingPublish(pubsub,elements){let it=elements[Symbol.iterator](),next4=it.next();if(!next4.done&&pubsub.capacity>0){let a=next4.value,loop3=!0;while(loop3){pubsub.slide();let pub=pubsub.publish(a);if(pub&&(next4=it.next())&&!next4.done)a=next4.value;else if(pub)loop3=!1}}}}var unsafeStrategyCompletePollers=(strategy,pubsub,subscribers,subscription,pollers)=>{let keepPolling=!0;while(keepPolling&&!subscription.isEmpty()){let poller=pipe(pollers,poll4(EmptyMutableQueue));if(poller===EmptyMutableQueue)if(pipe(subscribers,removeSubscribers(subscription,pollers)),isEmpty9(pollers))keepPolling=!1;else pipe(subscribers,addSubscribers(subscription,pollers));else{let pollResult=subscription.poll(EmptyMutableQueue);if(pollResult===EmptyMutableQueue)unsafeOfferAll2(pollers,pipe(unsafePollAllQueue(pollers),prepend2(poller)));else unsafeCompleteDeferred2(poller,pollResult),strategy.unsafeOnPubSubEmptySpace(pubsub,subscribers)}}},unsafeStrategyCompleteSubscribers=(strategy,pubsub,subscribers)=>{for(let[subscription,pollersSet]of subscribers)for(let pollers of pollersSet)strategy.unsafeCompletePollers(pubsub,subscribers,subscription,pollers)};class ReplayBuffer{capacity;constructor(capacity4){this.capacity=capacity4}head={value:AbsentValue,next:null};tail=this.head;size=0;index=0;slide(){this.index++}offer(a){if(this.tail.value=a,this.tail.next={value:AbsentValue,next:null},this.tail=this.tail.next,this.size===this.capacity)this.head=this.head.next;else this.size+=1}offerAll(as6){for(let a of as6)this.offer(a)}}class ReplayWindowImpl{buffer;head;index;remaining;constructor(buffer){this.buffer=buffer,this.index=buffer.index,this.remaining=buffer.size,this.head=buffer.head}fastForward(){while(this.index<this.buffer.index)this.head=this.head.next,this.index++}take(){if(this.remaining===0)return;else if(this.index<this.buffer.index)this.fastForward();this.remaining--;let value=this.head.value;return this.head=this.head.next,value}takeN(n){if(this.remaining===0)return empty2();else if(this.index<this.buffer.index)this.fastForward();let len=Math.min(n,this.remaining),items=Array(len);for(let i=0;i<len;i++){let value=this.head.value;this.head=this.head.next,items[i]=value}return this.remaining-=len,unsafeFromArray(items)}takeAll(){return this.takeN(this.remaining)}}var emptyReplayWindow={remaining:0,take:()=>{return},takeN:()=>empty2(),takeAll:()=>empty2()};var bounded5=bounded4,dropping4=dropping3,sliding4=sliding3,unbounded5=unbounded4;var shutdown4=shutdown3;var subscribe2=subscribe;var OP_CONTINUE2="Continue",OP_CLOSE="Close",OP_YIELD2="Yield";var ChildExecutorDecisionSymbolKey="effect/ChannelChildExecutorDecision",ChildExecutorDecisionTypeId=Symbol.for(ChildExecutorDecisionSymbolKey),proto4={[ChildExecutorDecisionTypeId]:ChildExecutorDecisionTypeId},Continue=(_)=>{let op=Object.create(proto4);return op._tag=OP_CONTINUE2,op};var OP_CONTINUATION_K="ContinuationK",OP_CONTINUATION_FINALIZER="ContinuationFinalizer";var ContinuationTypeId=Symbol.for("effect/ChannelContinuation"),continuationVariance={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutDone:(_)=>_,_OutErr2:(_)=>_,_OutElem:(_)=>_,_OutDone2:(_)=>_};class ContinuationKImpl{onSuccess;onHalt;_tag=OP_CONTINUATION_K;[ContinuationTypeId]=continuationVariance;constructor(onSuccess,onHalt){this.onSuccess=onSuccess,this.onHalt=onHalt}onExit(exit3){return isFailure3(exit3)?this.onHalt(exit3.cause):this.onSuccess(exit3.value)}}class ContinuationFinalizerImpl{finalizer;_tag=OP_CONTINUATION_FINALIZER;[ContinuationTypeId]=continuationVariance;constructor(finalizer){this.finalizer=finalizer}}var OP_PULL_AFTER_NEXT="PullAfterNext",OP_PULL_AFTER_ALL_ENQUEUED="PullAfterAllEnqueued";var UpstreamPullStrategySymbolKey="effect/ChannelUpstreamPullStrategy",UpstreamPullStrategyTypeId=Symbol.for(UpstreamPullStrategySymbolKey),upstreamPullStrategyVariance={_A:(_)=>_},proto5={[UpstreamPullStrategyTypeId]:upstreamPullStrategyVariance},PullAfterNext=(emitSeparator)=>{let op=Object.create(proto5);return op._tag=OP_PULL_AFTER_NEXT,op.emitSeparator=emitSeparator,op};var OP_BRACKET_OUT="BracketOut",OP_BRIDGE="Bridge",OP_CONCAT_ALL="ConcatAll",OP_EMIT="Emit",OP_ENSURING="Ensuring",OP_FAIL3="Fail",OP_FOLD2="Fold",OP_FROM_EFFECT2="FromEffect",OP_PIPE_TO="PipeTo",OP_PROVIDE2="Provide",OP_READ="Read",OP_SUCCEED="Succeed",OP_SUCCEED_NOW="SucceedNow",OP_SUSPEND2="Suspend";var ChannelSymbolKey="effect/Channel",ChannelTypeId2=Symbol.for(ChannelSymbolKey),channelVariance2={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutElem:(_)=>_,_OutDone:(_)=>_},proto6={[ChannelTypeId2]:channelVariance2,pipe(){return pipeArguments(this,arguments)}},isChannel=(u)=>hasProperty(u,ChannelTypeId2)||isEffect2(u),acquireReleaseOut=dual(2,(self,release)=>{let op=Object.create(proto6);return op._tag=OP_BRACKET_OUT,op.acquire=()=>self,op.finalizer=release,op}),catchAllCause5=dual(2,(self,f)=>{let op=Object.create(proto6);return op._tag=OP_FOLD2,op.channel=self,op.k=new ContinuationKImpl(succeed12,f),op}),collectElements=(self)=>{return suspend5(()=>{let builder=[];return flatMap13(pipeTo(self,collectElementsReader(builder)),(value)=>sync7(()=>[fromIterable2(builder),value]))})},collectElementsReader=(builder)=>readWith({onInput:(outElem)=>flatMap13(sync7(()=>{builder.push(outElem)}),()=>collectElementsReader(builder)),onFailure:fail11,onDone:succeedNow});var concatAllWith=(channels,f,g)=>{let op=Object.create(proto6);return op._tag=OP_CONCAT_ALL,op.combineInners=f,op.combineAll=g,op.onPull=()=>PullAfterNext(none2()),op.onEmit=()=>Continue,op.value=()=>channels,op.k=identity,op},concatMapWith=dual(4,(self,f,g,h)=>{let op=Object.create(proto6);return op._tag=OP_CONCAT_ALL,op.combineInners=g,op.combineAll=h,op.onPull=()=>PullAfterNext(none2()),op.onEmit=()=>Continue,op.value=()=>self,op.k=f,op});var embedInput=dual(2,(self,input)=>{let op=Object.create(proto6);return op._tag=OP_BRIDGE,op.input=input,op.channel=self,op}),ensuringWith=dual(2,(self,finalizer)=>{let op=Object.create(proto6);return op._tag=OP_ENSURING,op.channel=self,op.finalizer=finalizer,op}),fail11=(error2)=>failCause10(fail3(error2));var failCause10=(cause3)=>failCauseSync5(()=>cause3),failCauseSync5=(evaluate2)=>{let op=Object.create(proto6);return op._tag=OP_FAIL3,op.error=evaluate2,op},flatMap13=dual(2,(self,f)=>{let op=Object.create(proto6);return op._tag=OP_FOLD2,op.channel=self,op.k=new ContinuationKImpl(f,failCause10),op}),foldCauseChannel=dual(2,(self,options)=>{let op=Object.create(proto6);return op._tag=OP_FOLD2,op.channel=self,op.k=new ContinuationKImpl(options.onSuccess,options.onFailure),op}),fromEffect4=(effect2)=>{let op=Object.create(proto6);return op._tag=OP_FROM_EFFECT2,op.effect=()=>effect2,op},pipeTo=dual(2,(self,that)=>{let op=Object.create(proto6);return op._tag=OP_PIPE_TO,op.left=()=>self,op.right=()=>that,op}),provideContext5=dual(2,(self,env)=>{let op=Object.create(proto6);return op._tag=OP_PROVIDE2,op.context=()=>env,op.inner=self,op});var readWith=(options)=>readWithCause({onInput:options.onInput,onFailure:(cause3)=>match(failureOrCause2(cause3),{onLeft:options.onFailure,onRight:failCause10}),onDone:options.onDone}),readWithCause=(options)=>{let op=Object.create(proto6);return op._tag=OP_READ,op.more=options.onInput,op.done=new ContinuationKImpl(options.onDone,options.onFailure),op},succeed12=(value)=>sync7(()=>value),succeedNow=(result)=>{let op=Object.create(proto6);return op._tag=OP_SUCCEED_NOW,op.terminal=result,op},suspend5=(evaluate2)=>{let op=Object.create(proto6);return op._tag=OP_SUSPEND2,op.channel=evaluate2,op},sync7=(evaluate2)=>{let op=Object.create(proto6);return op._tag=OP_SUCCEED,op.evaluate=evaluate2,op},void_5=succeedNow(void 0);var write=(out)=>{let op=Object.create(proto6);return op._tag=OP_EMIT,op.out=out,op};var OP_DONE3="Done",OP_EMIT2="Emit",OP_FROM_EFFECT3="FromEffect",OP_READ2="Read";var ChannelStateTypeId=Symbol.for("effect/ChannelState"),channelStateVariance={_E:(_)=>_,_R:(_)=>_},proto7={[ChannelStateTypeId]:channelStateVariance},Done2=()=>{let op=Object.create(proto7);return op._tag=OP_DONE3,op},Emit=()=>{let op=Object.create(proto7);return op._tag=OP_EMIT2,op},fromEffect5=(effect2)=>{let op=Object.create(proto7);return op._tag=OP_FROM_EFFECT3,op.effect=effect2,op},Read=(upstream,onEffect,onEmit,onDone)=>{let op=Object.create(proto7);return op._tag=OP_READ2,op.upstream=upstream,op.onEffect=onEffect,op.onEmit=onEmit,op.onDone=onDone,op};var isFromEffect=(self)=>self._tag===OP_FROM_EFFECT3;var effect2=(self)=>isFromEffect(self)?self.effect:_void,effectOrUndefinedIgnored=(self)=>isFromEffect(self)?ignore2(self.effect):void 0;var OP_PULL_FROM_CHILD="PullFromChild",OP_PULL_FROM_UPSTREAM="PullFromUpstream",OP_DRAIN_CHILD_EXECUTORS="DrainChildExecutors",OP_EMIT3="Emit";class PullFromChild{childExecutor;parentSubexecutor;onEmit;_tag=OP_PULL_FROM_CHILD;constructor(childExecutor,parentSubexecutor,onEmit){this.childExecutor=childExecutor,this.parentSubexecutor=parentSubexecutor,this.onEmit=onEmit}close(exit3){let fin1=this.childExecutor.close(exit3),fin2=this.parentSubexecutor.close(exit3);if(fin1!==void 0&&fin2!==void 0)return zipWith6(exit2(fin1),exit2(fin2),(exit1,exit22)=>pipe(exit1,zipRight2(exit22)));else if(fin1!==void 0)return fin1;else if(fin2!==void 0)return fin2;else return}enqueuePullFromChild(_child){return this}}class PullFromUpstream{upstreamExecutor;createChild;lastDone;activeChildExecutors;combineChildResults;combineWithChildResult;onPull;onEmit;_tag=OP_PULL_FROM_UPSTREAM;constructor(upstreamExecutor,createChild,lastDone,activeChildExecutors,combineChildResults,combineWithChildResult,onPull,onEmit){this.upstreamExecutor=upstreamExecutor,this.createChild=createChild,this.lastDone=lastDone,this.activeChildExecutors=activeChildExecutors,this.combineChildResults=combineChildResults,this.combineWithChildResult=combineWithChildResult,this.onPull=onPull,this.onEmit=onEmit}close(exit3){let fin1=this.upstreamExecutor.close(exit3),result=[...this.activeChildExecutors.map((child)=>child!==void 0?child.childExecutor.close(exit3):void 0),fin1].reduce((acc,next4)=>{if(acc!==void 0&&next4!==void 0)return zipWith6(acc,exit2(next4),(exit1,exit22)=>zipRight2(exit1,exit22));else if(acc!==void 0)return acc;else if(next4!==void 0)return exit2(next4);else return},void 0);return result===void 0?result:result}enqueuePullFromChild(child){return new PullFromUpstream(this.upstreamExecutor,this.createChild,this.lastDone,[...this.activeChildExecutors,child],this.combineChildResults,this.combineWithChildResult,this.onPull,this.onEmit)}}class DrainChildExecutors{upstreamExecutor;lastDone;activeChildExecutors;upstreamDone;combineChildResults;combineWithChildResult;onPull;_tag=OP_DRAIN_CHILD_EXECUTORS;constructor(upstreamExecutor,lastDone,activeChildExecutors,upstreamDone,combineChildResults,combineWithChildResult,onPull){this.upstreamExecutor=upstreamExecutor,this.lastDone=lastDone,this.activeChildExecutors=activeChildExecutors,this.upstreamDone=upstreamDone,this.combineChildResults=combineChildResults,this.combineWithChildResult=combineWithChildResult,this.onPull=onPull}close(exit3){let fin1=this.upstreamExecutor.close(exit3),result=[...this.activeChildExecutors.map((child)=>child!==void 0?child.childExecutor.close(exit3):void 0),fin1].reduce((acc,next4)=>{if(acc!==void 0&&next4!==void 0)return zipWith6(acc,exit2(next4),(exit1,exit22)=>zipRight2(exit1,exit22));else if(acc!==void 0)return acc;else if(next4!==void 0)return exit2(next4);else return},void 0);return result===void 0?result:result}enqueuePullFromChild(child){return new DrainChildExecutors(this.upstreamExecutor,this.lastDone,[...this.activeChildExecutors,child],this.upstreamDone,this.combineChildResults,this.combineWithChildResult,this.onPull)}}class Emit2{value;next;_tag=OP_EMIT3;constructor(value,next4){this.value=value,this.next=next4}close(exit3){let result=this.next.close(exit3);return result===void 0?result:result}enqueuePullFromChild(_child){return this}}var OP_PULLED="Pulled",OP_NO_UPSTREAM="NoUpstream";var UpstreamPullRequestSymbolKey="effect/ChannelUpstreamPullRequest",UpstreamPullRequestTypeId=Symbol.for(UpstreamPullRequestSymbolKey),upstreamPullRequestVariance={_A:(_)=>_},proto8={[UpstreamPullRequestTypeId]:upstreamPullRequestVariance},Pulled=(value)=>{let op=Object.create(proto8);return op._tag=OP_PULLED,op.value=value,op},NoUpstream=(activeDownstreamCount)=>{let op=Object.create(proto8);return op._tag=OP_NO_UPSTREAM,op.activeDownstreamCount=activeDownstreamCount,op};class ChannelExecutor{_activeSubexecutor=void 0;_cancelled=void 0;_closeLastSubstream=void 0;_currentChannel;_done=void 0;_doneStack=[];_emitted=void 0;_executeCloseLastSubstream;_input=void 0;_inProgressFinalizer=void 0;_providedEnv;constructor(initialChannel,providedEnv,executeCloseLastSubstream){this._currentChannel=initialChannel,this._executeCloseLastSubstream=executeCloseLastSubstream,this._providedEnv=providedEnv}run(){let result=void 0;while(result===void 0)if(this._cancelled!==void 0)result=this.processCancellation();else if(this._activeSubexecutor!==void 0)result=this.runSubexecutor();else try{if(this._currentChannel===void 0)result=Done2();else{if(isEffect2(this._currentChannel))this._currentChannel=fromEffect4(this._currentChannel);switch(this._currentChannel._tag){case OP_BRACKET_OUT:{result=this.runBracketOut(this._currentChannel);break}case OP_BRIDGE:{let bridgeInput=this._currentChannel.input;if(this._currentChannel=this._currentChannel.channel,this._input!==void 0){let inputExecutor=this._input;this._input=void 0;let drainer=()=>flatMap11(bridgeInput.awaitRead(),()=>suspend3(()=>{let state=inputExecutor.run();switch(state._tag){case OP_DONE3:return match9(inputExecutor.getDone(),{onFailure:(cause3)=>bridgeInput.error(cause3),onSuccess:(value)=>bridgeInput.done(value)});case OP_EMIT2:return flatMap11(bridgeInput.emit(inputExecutor.getEmit()),()=>drainer());case OP_FROM_EFFECT3:return matchCauseEffect3(state.effect,{onFailure:(cause3)=>bridgeInput.error(cause3),onSuccess:()=>drainer()});case OP_READ2:return readUpstream(state,()=>drainer(),(cause3)=>bridgeInput.error(cause3))}}));result=fromEffect5(flatMap11(forkDaemon2(interruptible4(drainer())),(fiber)=>sync4(()=>this.addFinalizer((exit3)=>flatMap11(interrupt5(fiber),()=>suspend3(()=>{let effect3=this.restorePipe(exit3,inputExecutor);return effect3!==void 0?effect3:_void}))))))}break}case OP_CONCAT_ALL:{let executor=new ChannelExecutor(this._currentChannel.value(),this._providedEnv,(effect3)=>sync4(()=>{let prevLastClose=this._closeLastSubstream===void 0?_void:this._closeLastSubstream;this._closeLastSubstream=pipe(prevLastClose,zipRight4(effect3))}));executor._input=this._input;let channel=this._currentChannel;this._activeSubexecutor=new PullFromUpstream(executor,(value)=>channel.k(value),void 0,[],(x,y)=>channel.combineInners(x,y),(x,y)=>channel.combineAll(x,y),(request2)=>channel.onPull(request2),(value)=>channel.onEmit(value)),this._closeLastSubstream=void 0,this._currentChannel=void 0;break}case OP_EMIT:{this._emitted=this._currentChannel.out,this._currentChannel=this._activeSubexecutor!==void 0?void 0:void_5,result=Emit();break}case OP_ENSURING:{this.runEnsuring(this._currentChannel);break}case OP_FAIL3:{result=this.doneHalt(this._currentChannel.error());break}case OP_FOLD2:{this._doneStack.push(this._currentChannel.k),this._currentChannel=this._currentChannel.channel;break}case OP_FROM_EFFECT2:{let effect3=this._providedEnv===void 0?this._currentChannel.effect():pipe(this._currentChannel.effect(),provide2(this._providedEnv));result=fromEffect5(matchCauseEffect3(effect3,{onFailure:(cause3)=>{let state=this.doneHalt(cause3);return state!==void 0&&isFromEffect(state)?state.effect:_void},onSuccess:(value)=>{let state=this.doneSucceed(value);return state!==void 0&&isFromEffect(state)?state.effect:_void}}));break}case OP_PIPE_TO:{let previousInput=this._input,leftExec=new ChannelExecutor(this._currentChannel.left(),this._providedEnv,(effect3)=>this._executeCloseLastSubstream(effect3));leftExec._input=previousInput,this._input=leftExec,this.addFinalizer((exit3)=>{let effect3=this.restorePipe(exit3,previousInput);return effect3!==void 0?effect3:_void}),this._currentChannel=this._currentChannel.right();break}case OP_PROVIDE2:{let previousEnv=this._providedEnv;this._providedEnv=this._currentChannel.context(),this._currentChannel=this._currentChannel.inner,this.addFinalizer(()=>sync4(()=>{this._providedEnv=previousEnv}));break}case OP_READ:{let read=this._currentChannel;result=Read(this._input,identity,(emitted)=>{try{this._currentChannel=read.more(emitted)}catch(error2){this._currentChannel=read.done.onExit(die4(error2))}return},(exit3)=>{let onExit4=(exit4)=>{return read.done.onExit(exit4)};this._currentChannel=onExit4(exit3);return});break}case OP_SUCCEED:{result=this.doneSucceed(this._currentChannel.evaluate());break}case OP_SUCCEED_NOW:{result=this.doneSucceed(this._currentChannel.terminal);break}case OP_SUSPEND2:{this._currentChannel=this._currentChannel.channel();break}}}}catch(error2){this._currentChannel=failCause10(die3(error2))}return result}getDone(){return this._done}getEmit(){return this._emitted}cancelWith(exit3){this._cancelled=exit3}clearInProgressFinalizer(){this._inProgressFinalizer=void 0}storeInProgressFinalizer(finalizer){this._inProgressFinalizer=finalizer}popAllFinalizers(exit3){let finalizers=[],next4=this._doneStack.pop();while(next4){if(next4._tag==="ContinuationFinalizer")finalizers.push(next4.finalizer);next4=this._doneStack.pop()}let effect3=finalizers.length===0?_void:runFinalizers(finalizers,exit3);return this.storeInProgressFinalizer(effect3),effect3}popNextFinalizers(){let builder=[];while(this._doneStack.length!==0){let cont=this._doneStack[this._doneStack.length-1];if(cont._tag===OP_CONTINUATION_K)return builder;builder.push(cont),this._doneStack.pop()}return builder}restorePipe(exit3,prev){let currInput=this._input;if(this._input=prev,currInput!==void 0)return currInput.close(exit3);return _void}close(exit3){let runInProgressFinalizers=void 0,finalizer=this._inProgressFinalizer;if(finalizer!==void 0)runInProgressFinalizers=pipe(finalizer,ensuring3(sync4(()=>this.clearInProgressFinalizer())));let closeSelf=void 0,selfFinalizers=this.popAllFinalizers(exit3);if(selfFinalizers!==void 0)closeSelf=pipe(selfFinalizers,ensuring3(sync4(()=>this.clearInProgressFinalizer())));let closeSubexecutors=this._activeSubexecutor===void 0?void 0:this._activeSubexecutor.close(exit3);if(closeSubexecutors===void 0&&runInProgressFinalizers===void 0&&closeSelf===void 0)return;return pipe(exit2(ifNotNull(closeSubexecutors)),zip5(exit2(ifNotNull(runInProgressFinalizers))),zip5(exit2(ifNotNull(closeSelf))),map16(([[exit1,exit22],exit32])=>pipe(exit1,zipRight2(exit22),zipRight2(exit32))),uninterruptible2,flatMap11((exit4)=>suspend3(()=>exit4)))}doneSucceed(value){if(this._doneStack.length===0)return this._done=succeed3(value),this._currentChannel=void 0,Done2();let head5=this._doneStack[this._doneStack.length-1];if(head5._tag===OP_CONTINUATION_K){this._doneStack.pop(),this._currentChannel=head5.onSuccess(value);return}let finalizers=this.popNextFinalizers();if(this._doneStack.length===0)return this._doneStack=finalizers.reverse(),this._done=succeed3(value),this._currentChannel=void 0,Done2();let finalizerEffect=runFinalizers(finalizers.map((f)=>f.finalizer),succeed3(value));this.storeInProgressFinalizer(finalizerEffect);let effect3=pipe(finalizerEffect,ensuring3(sync4(()=>this.clearInProgressFinalizer())),uninterruptible2,flatMap11(()=>sync4(()=>this.doneSucceed(value))));return fromEffect5(effect3)}doneHalt(cause3){if(this._doneStack.length===0)return this._done=failCause3(cause3),this._currentChannel=void 0,Done2();let head5=this._doneStack[this._doneStack.length-1];if(head5._tag===OP_CONTINUATION_K){this._doneStack.pop();try{this._currentChannel=head5.onHalt(cause3)}catch(error2){this._currentChannel=failCause10(die3(error2))}return}let finalizers=this.popNextFinalizers();if(this._doneStack.length===0)return this._doneStack=finalizers.reverse(),this._done=failCause3(cause3),this._currentChannel=void 0,Done2();let finalizerEffect=runFinalizers(finalizers.map((f)=>f.finalizer),failCause3(cause3));this.storeInProgressFinalizer(finalizerEffect);let effect3=pipe(finalizerEffect,ensuring3(sync4(()=>this.clearInProgressFinalizer())),uninterruptible2,flatMap11(()=>sync4(()=>this.doneHalt(cause3))));return fromEffect5(effect3)}processCancellation(){return this._currentChannel=void 0,this._done=this._cancelled,this._cancelled=void 0,Done2()}runBracketOut(bracketOut){let effect3=uninterruptible2(matchCauseEffect3(this.provide(bracketOut.acquire()),{onFailure:(cause3)=>sync4(()=>{this._currentChannel=failCause10(cause3)}),onSuccess:(out)=>sync4(()=>{this.addFinalizer((exit3)=>this.provide(bracketOut.finalizer(out,exit3))),this._currentChannel=write(out)})}));return fromEffect5(effect3)}provide(effect3){if(this._providedEnv===void 0)return effect3;return pipe(effect3,provide2(this._providedEnv))}runEnsuring(ensuring5){this.addFinalizer(ensuring5.finalizer),this._currentChannel=ensuring5.channel}addFinalizer(f){this._doneStack.push(new ContinuationFinalizerImpl(f))}runSubexecutor(){let subexecutor=this._activeSubexecutor;switch(subexecutor._tag){case OP_PULL_FROM_CHILD:return this.pullFromChild(subexecutor.childExecutor,subexecutor.parentSubexecutor,subexecutor.onEmit,subexecutor);case OP_PULL_FROM_UPSTREAM:return this.pullFromUpstream(subexecutor);case OP_DRAIN_CHILD_EXECUTORS:return this.drainChildExecutors(subexecutor);case OP_EMIT3:return this._emitted=subexecutor.value,this._activeSubexecutor=subexecutor.next,Emit()}}replaceSubexecutor(nextSubExec){this._currentChannel=void 0,this._activeSubexecutor=nextSubExec}finishWithExit(exit3){let state=match9(exit3,{onFailure:(cause3)=>this.doneHalt(cause3),onSuccess:(value)=>this.doneSucceed(value)});return this._activeSubexecutor=void 0,state===void 0?_void:effect2(state)}finishSubexecutorWithCloseEffect(subexecutorDone,...closeFuncs){this.addFinalizer(()=>pipe(closeFuncs,forEach6((closeFunc)=>pipe(sync4(()=>closeFunc(subexecutorDone)),flatMap11((closeEffect)=>closeEffect!==void 0?closeEffect:_void)),{discard:!0})));let state=pipe(subexecutorDone,match9({onFailure:(cause3)=>this.doneHalt(cause3),onSuccess:(value)=>this.doneSucceed(value)}));return this._activeSubexecutor=void 0,state}applyUpstreamPullStrategy(upstreamFinished,queue,strategy){switch(strategy._tag){case OP_PULL_AFTER_NEXT:{let shouldPrepend=!upstreamFinished||queue.some((subexecutor)=>subexecutor!==void 0);return[strategy.emitSeparator,shouldPrepend?[void 0,...queue]:queue]}case OP_PULL_AFTER_ALL_ENQUEUED:{let shouldEnqueue=!upstreamFinished||queue.some((subexecutor)=>subexecutor!==void 0);return[strategy.emitSeparator,shouldEnqueue?[...queue,void 0]:queue]}}}pullFromChild(childExecutor,parentSubexecutor,onEmitted,subexecutor){return Read(childExecutor,identity,(emitted)=>{let childExecutorDecision=onEmitted(emitted);switch(childExecutorDecision._tag){case OP_CONTINUE2:break;case OP_CLOSE:{this.finishWithDoneValue(childExecutor,parentSubexecutor,childExecutorDecision.value);break}case OP_YIELD2:{let modifiedParent=parentSubexecutor.enqueuePullFromChild(subexecutor);this.replaceSubexecutor(modifiedParent);break}}this._activeSubexecutor=new Emit2(emitted,this._activeSubexecutor);return},match9({onFailure:(cause3)=>{let state=this.handleSubexecutorFailure(childExecutor,parentSubexecutor,cause3);return state===void 0?void 0:effectOrUndefinedIgnored(state)},onSuccess:(doneValue)=>{this.finishWithDoneValue(childExecutor,parentSubexecutor,doneValue);return}}))}finishWithDoneValue(childExecutor,parentSubexecutor,doneValue){let subexecutor=parentSubexecutor;switch(subexecutor._tag){case OP_PULL_FROM_UPSTREAM:{let modifiedParent=new PullFromUpstream(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone!==void 0?subexecutor.combineChildResults(subexecutor.lastDone,doneValue):doneValue,subexecutor.activeChildExecutors,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit);this._closeLastSubstream=childExecutor.close(succeed3(doneValue)),this.replaceSubexecutor(modifiedParent);break}case OP_DRAIN_CHILD_EXECUTORS:{let modifiedParent=new DrainChildExecutors(subexecutor.upstreamExecutor,subexecutor.lastDone!==void 0?subexecutor.combineChildResults(subexecutor.lastDone,doneValue):doneValue,subexecutor.activeChildExecutors,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);this._closeLastSubstream=childExecutor.close(succeed3(doneValue)),this.replaceSubexecutor(modifiedParent);break}default:break}}handleSubexecutorFailure(childExecutor,parentSubexecutor,cause3){return this.finishSubexecutorWithCloseEffect(failCause3(cause3),(exit3)=>parentSubexecutor.close(exit3),(exit3)=>childExecutor.close(exit3))}pullFromUpstream(subexecutor){if(subexecutor.activeChildExecutors.length===0)return this.performPullFromUpstream(subexecutor);let activeChild=subexecutor.activeChildExecutors[0],parentSubexecutor=new PullFromUpstream(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,subexecutor.activeChildExecutors.slice(1),subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit);if(activeChild===void 0)return this.performPullFromUpstream(parentSubexecutor);this.replaceSubexecutor(new PullFromChild(activeChild.childExecutor,parentSubexecutor,activeChild.onEmit));return}performPullFromUpstream(subexecutor){return Read(subexecutor.upstreamExecutor,(effect3)=>{let closeLastSubstream=this._closeLastSubstream===void 0?_void:this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe(this._executeCloseLastSubstream(closeLastSubstream),zipRight4(effect3))},(emitted)=>{if(this._closeLastSubstream!==void 0){let closeLastSubstream=this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe(this._executeCloseLastSubstream(closeLastSubstream),map16(()=>{let childExecutor2=new ChannelExecutor(subexecutor.createChild(emitted),this._providedEnv,this._executeCloseLastSubstream);childExecutor2._input=this._input;let[emitSeparator2,updatedChildExecutors2]=this.applyUpstreamPullStrategy(!1,subexecutor.activeChildExecutors,subexecutor.onPull(Pulled(emitted)));if(this._activeSubexecutor=new PullFromChild(childExecutor2,new PullFromUpstream(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,updatedChildExecutors2,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit),subexecutor.onEmit),isSome2(emitSeparator2))this._activeSubexecutor=new Emit2(emitSeparator2.value,this._activeSubexecutor);return}))}let childExecutor=new ChannelExecutor(subexecutor.createChild(emitted),this._providedEnv,this._executeCloseLastSubstream);childExecutor._input=this._input;let[emitSeparator,updatedChildExecutors]=this.applyUpstreamPullStrategy(!1,subexecutor.activeChildExecutors,subexecutor.onPull(Pulled(emitted)));if(this._activeSubexecutor=new PullFromChild(childExecutor,new PullFromUpstream(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,updatedChildExecutors,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit),subexecutor.onEmit),isSome2(emitSeparator))this._activeSubexecutor=new Emit2(emitSeparator.value,this._activeSubexecutor);return},(exit3)=>{if(subexecutor.activeChildExecutors.some((subexecutor2)=>subexecutor2!==void 0)){let drain=new DrainChildExecutors(subexecutor.upstreamExecutor,subexecutor.lastDone,[void 0,...subexecutor.activeChildExecutors],subexecutor.upstreamExecutor.getDone(),subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);if(this._closeLastSubstream!==void 0){let closeLastSubstream2=this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe(this._executeCloseLastSubstream(closeLastSubstream2),map16(()=>this.replaceSubexecutor(drain)))}this.replaceSubexecutor(drain);return}let closeLastSubstream=this._closeLastSubstream,state=this.finishSubexecutorWithCloseEffect(pipe(exit3,map12((a)=>subexecutor.combineWithChildResult(subexecutor.lastDone,a))),()=>closeLastSubstream,(exit4)=>subexecutor.upstreamExecutor.close(exit4));return state===void 0?void 0:effectOrUndefinedIgnored(state)})}drainChildExecutors(subexecutor){if(subexecutor.activeChildExecutors.length===0){let lastClose=this._closeLastSubstream;if(lastClose!==void 0)this.addFinalizer(()=>succeed9(lastClose));return this.finishSubexecutorWithCloseEffect(subexecutor.upstreamDone,()=>lastClose,(exit3)=>subexecutor.upstreamExecutor.close(exit3))}let activeChild=subexecutor.activeChildExecutors[0],rest=subexecutor.activeChildExecutors.slice(1);if(activeChild===void 0){let[emitSeparator,remainingExecutors]=this.applyUpstreamPullStrategy(!0,rest,subexecutor.onPull(NoUpstream(rest.reduce((n,curr)=>curr!==void 0?n+1:n,0))));if(this.replaceSubexecutor(new DrainChildExecutors(subexecutor.upstreamExecutor,subexecutor.lastDone,remainingExecutors,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull)),isSome2(emitSeparator))return this._emitted=emitSeparator.value,Emit();return}let parentSubexecutor=new DrainChildExecutors(subexecutor.upstreamExecutor,subexecutor.lastDone,rest,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);this.replaceSubexecutor(new PullFromChild(activeChild.childExecutor,parentSubexecutor,activeChild.onEmit));return}}var ifNotNull=(effect3)=>effect3!==void 0?effect3:_void,runFinalizers=(finalizers,exit3)=>{return pipe(forEach6(finalizers,(fin)=>exit2(fin(exit3))),map16((exits)=>pipe(all3(exits),getOrElse(()=>void_3))),flatMap11((exit4)=>suspend3(()=>exit4)))},readUpstream=(r,onSuccess,onFailure)=>{let readStack=[r],read=()=>{let current=readStack.pop();if(current===void 0||current.upstream===void 0)return dieMessage2("Unexpected end of input for channel execution");let state=current.upstream.run();switch(state._tag){case OP_EMIT2:{let emitEffect=current.onEmit(current.upstream.getEmit());if(readStack.length===0){if(emitEffect===void 0)return suspend3(onSuccess);return pipe(emitEffect,matchCauseEffect3({onFailure,onSuccess}))}if(emitEffect===void 0)return suspend3(()=>read());return pipe(emitEffect,matchCauseEffect3({onFailure,onSuccess:()=>read()}))}case OP_DONE3:{let doneEffect=current.onDone(current.upstream.getDone());if(readStack.length===0){if(doneEffect===void 0)return suspend3(onSuccess);return pipe(doneEffect,matchCauseEffect3({onFailure,onSuccess}))}if(doneEffect===void 0)return suspend3(()=>read());return pipe(doneEffect,matchCauseEffect3({onFailure,onSuccess:()=>read()}))}case OP_FROM_EFFECT3:return readStack.push(current),pipe(current.onEffect(state.effect),catchAllCause3((cause3)=>suspend3(()=>{let doneEffect=current.onDone(failCause3(cause3));return doneEffect===void 0?_void:doneEffect})),matchCauseEffect3({onFailure,onSuccess:()=>read()}));case OP_READ2:return readStack.push(current),readStack.push(state),suspend3(()=>read())}};return read()},runIn=dual(2,(self,scope5)=>{let run3=(channelDeferred,scopeDeferred,scope6)=>acquireUseRelease2(sync4(()=>new ChannelExecutor(self,void 0,identity)),(exec)=>suspend3(()=>runScopedInterpret(exec.run(),exec).pipe(intoDeferred2(channelDeferred),zipRight4(_await3(channelDeferred)),zipLeft3(_await3(scopeDeferred)))),(exec,exit3)=>{let finalize=exec.close(exit3);if(finalize===void 0)return _void;return tapErrorCause3(finalize,(cause3)=>addFinalizer2(scope6,failCause8(cause3)))});return uninterruptibleMask3((restore)=>all5([fork2(scope5,sequential3),make39(),make39()]).pipe(flatMap11(([child,channelDeferred,scopeDeferred])=>restore(run3(channelDeferred,scopeDeferred,child)).pipe(forkIn2(scope5),flatMap11((fiber)=>scope5.addFinalizer((exit3)=>{let interruptors3=isFailure3(exit3)?interruptors2(exit3.cause):void 0;return isDone5(channelDeferred).pipe(flatMap11((isDone6)=>isDone6?succeed7(scopeDeferred,void 0).pipe(zipRight4(_await2(fiber)),zipRight4(inheritAll2(fiber))):succeed7(scopeDeferred,void 0).pipe(zipRight4(interruptors3&&size3(interruptors3)>0?interruptAs(fiber,combineAll2(interruptors3)):interrupt5(fiber)),zipRight4(inheritAll2(fiber)))))}).pipe(zipRight4(restore(_await3(channelDeferred)))))))))}),runScopedInterpret=(channelState,exec)=>{let op=channelState;switch(op._tag){case OP_FROM_EFFECT3:return pipe(op.effect,flatMap11(()=>runScopedInterpret(exec.run(),exec)));case OP_EMIT2:return runScopedInterpret(exec.run(),exec);case OP_DONE3:return suspend3(()=>exec.getDone());case OP_READ2:return readUpstream(op,()=>runScopedInterpret(exec.run(),exec),failCause8)}};var OP_DONE4="Done",OP_AWAIT="Await";var MergeDecisionSymbolKey="effect/ChannelMergeDecision",MergeDecisionTypeId=Symbol.for(MergeDecisionSymbolKey),proto9={[MergeDecisionTypeId]:{_R:(_)=>_,_E0:(_)=>_,_Z0:(_)=>_,_E:(_)=>_,_Z:(_)=>_}},Done3=(effect3)=>{let op=Object.create(proto9);return op._tag=OP_DONE4,op.effect=effect3,op},Await=(f)=>{let op=Object.create(proto9);return op._tag=OP_AWAIT,op.f=f,op};var OP_BOTH_RUNNING="BothRunning",OP_LEFT_DONE="LeftDone",OP_RIGHT_DONE="RightDone";var MergeStateSymbolKey="effect/ChannelMergeState",MergeStateTypeId=Symbol.for(MergeStateSymbolKey),proto10={[MergeStateTypeId]:MergeStateTypeId},BothRunning=(left3,right3)=>{let op=Object.create(proto10);return op._tag=OP_BOTH_RUNNING,op.left=left3,op.right=right3,op},LeftDone=(f)=>{let op=Object.create(proto10);return op._tag=OP_LEFT_DONE,op.f=f,op},RightDone=(f)=>{let op=Object.create(proto10);return op._tag=OP_RIGHT_DONE,op.f=f,op};var OP_BACK_PRESSURE="BackPressure",OP_BUFFER_SLIDING="BufferSliding";var MergeStrategySymbolKey="effect/ChannelMergeStrategy",MergeStrategyTypeId=Symbol.for(MergeStrategySymbolKey),proto11={[MergeStrategyTypeId]:MergeStrategyTypeId},BackPressure=(_)=>{let op=Object.create(proto11);return op._tag=OP_BACK_PRESSURE,op},BufferSliding=(_)=>{let op=Object.create(proto11);return op._tag=OP_BUFFER_SLIDING,op};var match15=dual(2,(self,{onBackPressure,onBufferSliding})=>{switch(self._tag){case OP_BACK_PRESSURE:return onBackPressure();case OP_BUFFER_SLIDING:return onBufferSliding()}});var OP_STATE_EMPTY="Empty",OP_STATE_EMIT="Emit",OP_STATE_ERROR="Error",OP_STATE_DONE2="Done",stateEmpty=(notifyProducer)=>({_tag:OP_STATE_EMPTY,notifyProducer}),stateEmit=(notifyConsumers)=>({_tag:OP_STATE_EMIT,notifyConsumers}),stateError=(cause3)=>({_tag:OP_STATE_ERROR,cause:cause3}),stateDone=(done8)=>({_tag:OP_STATE_DONE2,done:done8});class SingleProducerAsyncInputImpl{ref;constructor(ref){this.ref=ref}awaitRead(){return flatten8(modify4(this.ref,(state)=>state._tag===OP_STATE_EMPTY?[_await3(state.notifyProducer),state]:[_void,state]))}get close(){return fiberIdWith2((fiberId3)=>this.error(interrupt3(fiberId3)))}done(value){return flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[_await3(state.notifyProducer),state];case OP_STATE_EMIT:return[forEach6(state.notifyConsumers,(deferred)=>succeed7(deferred,left2(value)),{discard:!0}),stateDone(value)];case OP_STATE_ERROR:return[interrupt7,state];case OP_STATE_DONE2:return[interrupt7,state]}}))}emit(element){return flatMap11(make39(),(deferred)=>flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[_await3(state.notifyProducer),state];case OP_STATE_EMIT:{let notifyConsumer=state.notifyConsumers[0],notifyConsumers=state.notifyConsumers.slice(1);if(notifyConsumer!==void 0)return[succeed7(notifyConsumer,right2(element)),notifyConsumers.length===0?stateEmpty(deferred):stateEmit(notifyConsumers)];throw Error("Bug: Channel.SingleProducerAsyncInput.emit - Queue was empty! please report an issue at https://github.com/Effect-TS/effect/issues")}case OP_STATE_ERROR:return[interrupt7,state];case OP_STATE_DONE2:return[interrupt7,state]}})))}error(cause3){return flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[_await3(state.notifyProducer),state];case OP_STATE_EMIT:return[forEach6(state.notifyConsumers,(deferred)=>failCause6(deferred,cause3),{discard:!0}),stateError(cause3)];case OP_STATE_ERROR:return[interrupt7,state];case OP_STATE_DONE2:return[interrupt7,state]}}))}get take(){return this.takeWith((cause3)=>failCause3(map11(cause3,left2)),(elem)=>succeed3(elem),(done8)=>fail4(right2(done8)))}takeWith(onError3,onElement,onDone){return flatMap11(make39(),(deferred)=>flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[zipRight4(succeed7(state.notifyProducer,void 0),matchCause3(_await3(deferred),{onFailure:onError3,onSuccess:match({onLeft:onDone,onRight:onElement})})),stateEmit([deferred])];case OP_STATE_EMIT:return[matchCause3(_await3(deferred),{onFailure:onError3,onSuccess:match({onLeft:onDone,onRight:onElement})}),stateEmit([...state.notifyConsumers,deferred])];case OP_STATE_ERROR:return[succeed9(onError3(state.cause)),state];case OP_STATE_DONE2:return[succeed9(onDone(state.done)),state]}})))}}var make42=()=>pipe(make39(),flatMap11((deferred)=>make24(stateEmpty(deferred))),map16((ref)=>new SingleProducerAsyncInputImpl(ref)));var acquireUseRelease3=(acquire,use,release)=>flatMap13(fromEffect4(make24(()=>_void)),(ref)=>pipe(fromEffect4(uninterruptible2(tap3(acquire,(a)=>set5(ref,(exit3)=>release(a,exit3))))),flatMap13(use),ensuringWith((exit3)=>flatMap11(get11(ref),(f)=>f(exit3))))),as6=dual(2,(self,value)=>map19(self,()=>value));var catchAll5=dual(2,(self,f)=>catchAllCause5(self,(cause3)=>match(failureOrCause2(cause3),{onLeft:f,onRight:failCause10}))),concatMap=dual(2,(self,f)=>concatMapWith(self,f,()=>{return},()=>{return}));var drain=(self)=>{let drainer=readWithCause({onInput:()=>drainer,onFailure:failCause10,onDone:succeed12});return pipeTo(self,drainer)};var ensuring5=dual(2,(self,finalizer)=>ensuringWith(self,()=>finalizer));var flatten10=(self)=>flatMap13(self,identity),foldChannel=dual(2,(self,options)=>foldCauseChannel(self,{onFailure:(cause3)=>{let either6=failureOrCause2(cause3);switch(either6._tag){case"Left":return options.onFailure(either6.left);case"Right":return failCause10(either6.right)}},onSuccess:options.onSuccess}));var fromInput=(input)=>unwrap(input.takeWith(failCause10,(elem)=>flatMap13(write(elem),()=>fromInput(input)),succeed12));var fromQueue=(queue)=>suspend5(()=>fromQueueInternal(queue)),fromQueueInternal=(queue)=>pipe(fromEffect4(take3(queue)),flatMap13(match({onLeft:match9({onFailure:failCause10,onSuccess:succeedNow}),onRight:(elem)=>flatMap13(write(elem),()=>fromQueueInternal(queue))}))),identityChannel=()=>readWith({onInput:(input)=>flatMap13(write(input),()=>identityChannel()),onFailure:fail11,onDone:succeedNow}),interruptWhen=dual(2,(self,effect3)=>mergeWith2(self,{other:fromEffect4(effect3),onSelfDone:(selfDone)=>Done3(suspend3(()=>selfDone)),onOtherDone:(effectDone)=>Done3(suspend3(()=>effectDone))})),interruptWhenDeferred=dual(2,(self,deferred)=>interruptWhen(self,_await3(deferred))),map19=dual(2,(self,f)=>flatMap13(self,(a)=>sync7(()=>f(a))));var mapError5=dual(2,(self,f)=>mapErrorCause3(self,map11(f))),mapErrorCause3=dual(2,(self,f)=>catchAllCause5(self,(cause3)=>failCause10(f(cause3)))),mapOut=dual(2,(self,f)=>{let reader=readWith({onInput:(outElem)=>flatMap13(write(f(outElem)),()=>reader),onFailure:fail11,onDone:succeedNow});return pipeTo(self,reader)}),mapOutEffect=dual(2,(self,f)=>{let reader=readWithCause({onInput:(outElem)=>pipe(fromEffect4(f(outElem)),flatMap13(write),flatMap13(()=>reader)),onFailure:failCause10,onDone:succeedNow});return pipeTo(self,reader)}),mapOutEffectPar=dual(3,(self,f,n)=>unwrapScopedWith((scope5)=>gen2(function*(){let input=yield*make42(),queueReader=fromInput(input),queue=yield*bounded3(n);yield*addFinalizer2(scope5,shutdown2(queue));let errorSignal=yield*make39(),withPermits=n===Number.POSITIVE_INFINITY?(_)=>identity:(yield*makeSemaphore2(n)).withPermits;yield*(yield*queueReader.pipe(pipeTo(self),toPullIn(scope5))).pipe(matchCauseEffect3({onFailure:(cause3)=>offer3(queue,failCause8(cause3)),onSuccess:match({onLeft:(outDone)=>zipRight4(interruptible4(withPermits(n)(_void)),asVoid3(offer3(queue,succeed9(left2(outDone))))),onRight:(outElem)=>gen2(function*(){let deferred=yield*make39(),latch=yield*make39();yield*offer3(queue,map16(_await3(deferred),right2)),yield*succeed7(latch,void 0).pipe(zipRight4(uninterruptibleMask3((restore)=>exit2(restore(_await3(errorSignal))).pipe(raceFirst2(exit2(restore(f(outElem)))),flatMap11(identity))).pipe(tapErrorCause3((cause3)=>failCause6(errorSignal,cause3)),intoDeferred2(deferred))),withPermits(1),forkIn2(scope5)),yield*_await3(latch)})})}),forever3,interruptible4,forkIn2(scope5));let consumer=unwrap(matchCause3(flatten8(take3(queue)),{onFailure:failCause10,onSuccess:match({onLeft:succeedNow,onRight:(outElem)=>flatMap13(write(outElem),()=>consumer)})}));return embedInput(consumer,input)}))),mergeAll7=(options)=>{return(channels)=>mergeAllWith(options)(channels,constVoid)};var mergeAllWith=({bufferSize=16,concurrency,mergeStrategy=BackPressure()})=>(channels,f)=>unwrapScopedWith((scope5)=>gen2(function*(){let concurrencyN=concurrency==="unbounded"?Number.MAX_SAFE_INTEGER:concurrency,input=yield*make42(),queueReader=fromInput(input),queue=yield*bounded3(bufferSize);yield*addFinalizer2(scope5,shutdown2(queue));let cancelers=yield*unbounded3();yield*addFinalizer2(scope5,shutdown2(cancelers));let lastDone=yield*make24(none2()),errorSignal=yield*make39(),withPermits=(yield*makeSemaphore2(concurrencyN)).withPermits,pull=yield*toPullIn(pipeTo(queueReader,channels),scope5);function evaluatePull(pull2){return pull2.pipe(flatMap11(match({onLeft:(done8)=>succeed9(some2(done8)),onRight:(outElem)=>as4(offer3(queue,succeed9(right2(outElem))),none2())})),repeat({until:(_)=>isSome2(_)}),flatMap11((outDone)=>update3(lastDone,match2({onNone:()=>some2(outDone.value),onSome:(lastDone2)=>some2(f(lastDone2,outDone.value))}))),catchAllCause3((cause3)=>isInterrupted2(cause3)?failCause8(cause3):offer3(queue,failCause8(cause3)).pipe(zipRight4(succeed7(errorSignal,void 0)),asVoid3)))}yield*pull.pipe(matchCauseEffect3({onFailure:(cause3)=>offer3(queue,failCause8(cause3)).pipe(zipRight4(succeed9(!1))),onSuccess:match({onLeft:(outDone)=>raceWith2(interruptible4(_await3(errorSignal)),interruptible4(withPermits(concurrencyN)(_void)),{onSelfDone:(_,permitAcquisition)=>as4(interrupt5(permitAcquisition),!1),onOtherDone:(_,failureAwait)=>zipRight4(interrupt5(failureAwait),get11(lastDone).pipe(flatMap11(match2({onNone:()=>offer3(queue,succeed9(left2(outDone))),onSome:(lastDone2)=>offer3(queue,succeed9(left2(f(lastDone2,outDone))))})),as4(!1)))}),onRight:(channel)=>match15(mergeStrategy,{onBackPressure:()=>gen2(function*(){let latch=yield*make39(),raceEffects=scopedWith2((scope6)=>toPullIn(pipeTo(queueReader,channel),scope6).pipe(flatMap11((pull2)=>race2(exit2(evaluatePull(pull2)),exit2(interruptible4(_await3(errorSignal))))),flatMap11(identity)));return yield*succeed7(latch,void 0).pipe(zipRight4(raceEffects),withPermits(1),forkIn2(scope5)),yield*_await3(latch),!(yield*isDone5(errorSignal))}),onBufferSliding:()=>gen2(function*(){let canceler=yield*make39(),latch=yield*make39(),size12=yield*size10(cancelers);yield*take3(cancelers).pipe(flatMap11((canceler2)=>succeed7(canceler2,void 0)),when2(()=>size12>=concurrencyN)),yield*offer3(cancelers,canceler);let raceEffects=scopedWith2((scope6)=>toPullIn(pipeTo(queueReader,channel),scope6).pipe(flatMap11((pull2)=>exit2(evaluatePull(pull2)).pipe(race2(exit2(interruptible4(_await3(errorSignal)))),race2(exit2(interruptible4(_await3(canceler)))))),flatMap11(identity)));return yield*succeed7(latch,void 0).pipe(zipRight4(raceEffects),withPermits(1),forkIn2(scope5)),yield*_await3(latch),!(yield*isDone5(errorSignal))})})})}),repeat({while:(_)=>_}),forkIn2(scope5));let consumer=pipe(take3(queue),flatten8,matchCause3({onFailure:failCause10,onSuccess:match({onLeft:succeedNow,onRight:(outElem)=>flatMap13(write(outElem),()=>consumer)})}),unwrap);return embedInput(consumer,input)})),mergeMap=dual(3,(self,f,options)=>mergeAll7(options)(mapOut(self,f)));var mergeWith2=dual(2,(self,options)=>{function merge9(scope5){return gen2(function*(){let input=yield*make42(),queueReader=fromInput(input),pullL=yield*toPullIn(pipeTo(queueReader,self),scope5),pullR=yield*toPullIn(pipeTo(queueReader,options.other),scope5);function handleSide(exit3,fiber,pull){return(done8,both2,single2)=>{function onDecision3(decision){let op=decision;if(op._tag===OP_DONE4)return succeed9(fromEffect4(zipRight4(interrupt5(fiber),op.effect)));return map16(_await2(fiber),match9({onFailure:(cause3)=>fromEffect4(op.f(failCause3(cause3))),onSuccess:match({onLeft:(done9)=>fromEffect4(op.f(succeed3(done9))),onRight:(elem)=>zipRight6(write(elem),go(single2(op.f)))})}))}return match9(exit3,{onFailure:(cause3)=>onDecision3(done8(failCause3(cause3))),onSuccess:match({onLeft:(z)=>onDecision3(done8(succeed3(z))),onRight:(elem)=>succeed9(flatMap13(write(elem),()=>flatMap13(fromEffect4(forkIn2(interruptible4(pull),scope5)),(leftFiber)=>go(both2(leftFiber,fiber)))))})})}}function go(state){switch(state._tag){case OP_BOTH_RUNNING:{let leftJoin=interruptible4(join3(state.left)),rightJoin=interruptible4(join3(state.right));return unwrap(raceWith2(leftJoin,rightJoin,{onSelfDone:(leftExit,rf)=>zipRight4(interrupt5(rf),handleSide(leftExit,state.right,pullL)(options.onSelfDone,BothRunning,(f)=>LeftDone(f))),onOtherDone:(rightExit,lf)=>zipRight4(interrupt5(lf),handleSide(rightExit,state.left,pullR)(options.onOtherDone,(left3,right3)=>BothRunning(right3,left3),(f)=>RightDone(f)))}))}case OP_LEFT_DONE:return unwrap(map16(exit2(pullR),match9({onFailure:(cause3)=>fromEffect4(state.f(failCause3(cause3))),onSuccess:match({onLeft:(done8)=>fromEffect4(state.f(succeed3(done8))),onRight:(elem)=>flatMap13(write(elem),()=>go(LeftDone(state.f)))})})));case OP_RIGHT_DONE:return unwrap(map16(exit2(pullL),match9({onFailure:(cause3)=>fromEffect4(state.f(failCause3(cause3))),onSuccess:match({onLeft:(done8)=>fromEffect4(state.f(succeed3(done8))),onRight:(elem)=>flatMap13(write(elem),()=>go(RightDone(state.f)))})})))}}return fromEffect4(withFiberRuntime2((parent)=>{let inherit=withFiberRuntime2((state)=>{return state.transferChildren(parent.scope()),_void}),leftFiber=interruptible4(pullL).pipe(ensuring3(inherit),forkIn2(scope5)),rightFiber=interruptible4(pullR).pipe(ensuring3(inherit),forkIn2(scope5));return zipWith6(leftFiber,rightFiber,(left3,right3)=>BothRunning(left3,right3))})).pipe(flatMap13(go),embedInput(input))})}return unwrapScopedWith(merge9)});var orDieWith3=dual(2,(self,f)=>catchAll5(self,(e)=>failCauseSync5(()=>die3(f(e))))),orElse7=dual(2,(self,that)=>catchAll5(self,that)),pipeToOrFail=dual(2,(self,that)=>suspend5(()=>{let channelException=void 0,reader=readWith({onInput:(outElem)=>flatMap13(write(outElem),()=>reader),onFailure:(outErr)=>{return channelException=ChannelException(outErr),failCause10(die3(channelException))},onDone:succeedNow}),writer=readWithCause({onInput:(outElem)=>pipe(write(outElem),flatMap13(()=>writer)),onFailure:(cause3)=>isDieType2(cause3)&&isChannelException(cause3.defect)&&equals(cause3.defect,channelException)?fail11(cause3.defect.error):failCause10(cause3),onDone:succeedNow});return pipeTo(pipeTo(pipeTo(self,reader),that),writer)}));var repeated=(self)=>flatMap13(self,()=>repeated(self)),run3=(self)=>scopedWith2((scope5)=>runIn(self,scope5));var runDrain=(self)=>run3(drain(self)),runScoped=(self)=>scopeWith2((scope5)=>runIn(self,scope5)),scoped4=(effect3)=>unwrap(uninterruptibleMask3((restore)=>map16(make36(),(scope5)=>acquireReleaseOut(tapErrorCause3(restore(extend2(effect3,scope5)),(cause3)=>close(scope5,failCause3(cause3))),(_,exit3)=>close(scope5,exit3))))),scopedWith3=(f)=>unwrapScoped3(map16(scope3,(scope5)=>flatMap13(fromEffect4(f(scope5)),write)));var splitLines=()=>suspend5(()=>{let stringBuilder="",midCRLF=!1,splitLinesChunk=(chunk2)=>{let chunkBuilder=[];return map4(chunk2,(str)=>{if(str.length!==0){let from=0,indexOfCR=str.indexOf("\r"),indexOfLF=str.indexOf(`
37
+ `);if(midCRLF){if(indexOfLF===0)chunkBuilder.push(stringBuilder),stringBuilder="",from=1,indexOfLF=str.indexOf(`
38
+ `,from);else stringBuilder=stringBuilder+"\r";midCRLF=!1}while(indexOfCR!==-1||indexOfLF!==-1)if(indexOfCR===-1||indexOfLF!==-1&&indexOfLF<indexOfCR){if(stringBuilder.length===0)chunkBuilder.push(str.substring(from,indexOfLF));else chunkBuilder.push(stringBuilder+str.substring(from,indexOfLF)),stringBuilder="";from=indexOfLF+1,indexOfLF=str.indexOf(`
39
+ `,from)}else if(str.length===indexOfCR+1)midCRLF=!0,indexOfCR=-1;else if(indexOfLF===indexOfCR+1){if(stringBuilder.length===0)chunkBuilder.push(str.substring(from,indexOfCR));else stringBuilder=stringBuilder+str.substring(from,indexOfCR),chunkBuilder.push(stringBuilder),stringBuilder="";from=indexOfCR+2,indexOfCR=str.indexOf("\r",from),indexOfLF=str.indexOf(`
40
+ `,from)}else indexOfCR=str.indexOf("\r",indexOfCR+1);if(midCRLF)stringBuilder=stringBuilder+str.substring(from,str.length-1);else stringBuilder=stringBuilder+str.substring(from,str.length)}}),unsafeFromArray(chunkBuilder)},loop3=readWithCause({onInput:(input)=>{let out=splitLinesChunk(input);return isEmpty(out)?loop3:flatMap13(write(out),()=>loop3)},onFailure:(cause3)=>stringBuilder.length===0?failCause10(cause3):flatMap13(write(of2(stringBuilder)),()=>failCause10(cause3)),onDone:(done8)=>stringBuilder.length===0?succeed12(done8):flatMap13(write(of2(stringBuilder)),()=>succeed12(done8))});return loop3}),toPubSub=(pubsub)=>toQueue(pubsub),toPull=(self)=>flatMap11(scope3,(scope5)=>toPullIn(self,scope5)),toPullIn=dual(2,(self,scope5)=>zip5(sync4(()=>new ChannelExecutor(self,void 0,identity)),runtime3()).pipe(tap3(([executor,runtime4])=>addFinalizerExit(scope5,(exit3)=>{let finalizer=executor.close(exit3);return finalizer!==void 0?provide2(finalizer,runtime4):_void})),uninterruptible2,map16(([executor])=>suspend3(()=>interpretToPull(executor.run(),executor))))),interpretToPull=(channelState,exec)=>{let state=channelState;switch(state._tag){case OP_DONE3:return match9(exec.getDone(),{onFailure:failCause8,onSuccess:(done8)=>succeed9(left2(done8))});case OP_EMIT2:return succeed9(right2(exec.getEmit()));case OP_FROM_EFFECT3:return pipe(state.effect,flatMap11(()=>interpretToPull(exec.run(),exec)));case OP_READ2:return readUpstream(state,()=>interpretToPull(exec.run(),exec),(cause3)=>failCause8(cause3))}},toQueue=(queue)=>suspend5(()=>toQueueInternal(queue)),toQueueInternal=(queue)=>{return readWithCause({onInput:(elem)=>flatMap13(fromEffect4(offer3(queue,right2(elem))),()=>toQueueInternal(queue)),onFailure:(cause3)=>fromEffect4(offer3(queue,left2(failCause3(cause3)))),onDone:(done8)=>fromEffect4(offer3(queue,left2(succeed3(done8))))})},unwrap=(channel)=>flatten10(fromEffect4(channel)),unwrapScoped3=(self)=>concatAllWith(scoped4(self),(d,_)=>d,(d,_)=>d),unwrapScopedWith=(f)=>concatAllWith(scopedWith3(f),(d,_)=>d,(d,_)=>d);var withSpan5=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace(dataFirst?arguments[2]:arguments[1]),acquire=all5([makeSpan2(name,options),context3(),clock2,get13(currentTracerTimingEnabled2)]);if(dataFirst){let self=arguments[0];return acquireUseRelease3(acquire,([span4,context5])=>provideContext5(self,add4(context5,spanTag,span4)),([span4,,clock3,timingEnabled],exit3)=>endSpan(span4,exit3,clock3,timingEnabled))}return(self)=>acquireUseRelease3(acquire,([span4,context5])=>provideContext5(self,add4(context5,spanTag,span4)),([span4,,clock3,timingEnabled],exit3)=>endSpan(span4,exit3,clock3,timingEnabled))},writeAll=(...outs)=>writeChunk(fromIterable2(outs)),writeChunk=(outs)=>writeChunkWriter(0,outs.length,outs),writeChunkWriter=(idx,len,chunk2)=>{return idx===len?void_5:pipe(write(pipe(chunk2,unsafeGet2(idx))),flatMap13(()=>writeChunkWriter(idx+1,len,chunk2)))},zip6=dual((args2)=>isChannel(args2[1]),(self,that,options)=>options?.concurrent?mergeWith2(self,{other:that,onSelfDone:(exit1)=>Await((exit22)=>suspend3(()=>zip3(exit1,exit22))),onOtherDone:(exit22)=>Await((exit1)=>suspend3(()=>zip3(exit1,exit22)))}):flatMap13(self,(a)=>map19(that,(b)=>[a,b]))),zipLeft5=dual((args2)=>isChannel(args2[1]),(self,that,options)=>options?.concurrent?map19(zip6(self,that,{concurrent:!0}),(tuple2)=>tuple2[0]):flatMap13(self,(z)=>as6(that,z))),zipRight6=dual((args2)=>isChannel(args2[1]),(self,that,options)=>options?.concurrent?map19(zip6(self,that,{concurrent:!0}),(tuple2)=>tuple2[1]):flatMap13(self,()=>that)),ChannelExceptionTypeId=Symbol.for("effect/Channel/ChannelException"),ChannelException=(error2)=>({_tag:"ChannelException",[ChannelExceptionTypeId]:ChannelExceptionTypeId,error:error2}),isChannelException=(u)=>hasProperty(u,ChannelExceptionTypeId);var Done4=Done3,Await2=Await;var TypeId17=Symbol.for("effect/RcRef"),stateEmpty2={_tag:"Empty"},stateClosed={_tag:"Closed"},variance5={_A:identity,_E:identity};class RcRefImpl extends Class{acquire;context;scope;idleTimeToLive;[TypeId17]=variance5;[TypeId10]=TypeId10;state=stateEmpty2;semaphore=unsafeMakeSemaphore(1);constructor(acquire,context5,scope5,idleTimeToLive){super();this.acquire=acquire,this.context=context5,this.scope=scope5,this.idleTimeToLive=idleTimeToLive,this.get=get14(this)}get;commit(){return this.get}}var make43=(options)=>withFiberRuntime((fiber)=>{let context5=fiber.getFiberRef(currentContext),scope5=get5(context5,scopeTag),ref=new RcRefImpl(options.acquire,context5,scope5,options.idleTimeToLive?decode(options.idleTimeToLive):void 0);return as(scope5.addFinalizer(()=>ref.semaphore.withPermits(1)(suspend(()=>{let close2=ref.state._tag==="Acquired"?scopeClose(ref.state.scope,exitVoid):void_;return ref.state=stateClosed,close2}))),ref)}),get14=(self_)=>{let self=self_,isInfinite=self.idleTimeToLive&&!isFinite(self.idleTimeToLive);return uninterruptibleMask((restore)=>suspend(()=>{switch(self.state._tag){case"Closed":return interrupt2;case"Acquired":return self.state.refCount++,self.state.fiber?as(interruptFiber(self.state.fiber),self.state):succeed(self.state);case"Empty":return scopeMake().pipe(bindTo2("scope"),bind2("value",({scope:scope5})=>restore(fiberRefLocally(self.acquire,currentContext,add4(self.context,scopeTag,scope5)))),map10(({scope:scope5,value})=>{let state={_tag:"Acquired",value,scope:scope5,fiber:void 0,refCount:1};return self.state=state,state}))}})).pipe(self.semaphore.withPermits(1),bindTo2("state"),bind2("scope",()=>scopeTag),tap(({scope:scope5,state})=>scope5.addFinalizer(()=>suspend(()=>{if(state.refCount--,state.refCount>0||isInfinite)return void_;if(self.idleTimeToLive===void 0)return self.state=stateEmpty2,scopeClose(state.scope,exitVoid);return sleep3(self.idleTimeToLive).pipe(interruptible2,zipRight(suspend(()=>{if(self.state._tag==="Acquired"&&self.state.refCount===0)return self.state=stateEmpty2,scopeClose(state.scope,exitVoid);return void_})),ensuring(sync(()=>{state.fiber=void 0})),forkIn(self.scope),tap((fiber)=>{state.fiber=fiber}),self.semaphore.withPermits(1))}))),map10(({state})=>state.value))};var make44=make43,get15=get14;var runFork3=unsafeFork2;var runPromiseExit2=unsafeRunPromiseExit,defaultRuntime2=defaultRuntime;var OP_LEFT="Left",OP_RIGHT="Right",OP_BOTH="Both",OP_EITHER="Either";var Left={_tag:OP_LEFT},Right={_tag:OP_RIGHT},Both={_tag:OP_BOTH},Either={_tag:OP_EITHER},fromInput2=(input)=>{switch(input){case"left":return Left;case"right":return Right;case"both":return Both;case"either":return Either;default:return input}};var Both2=Both;var SinkTypeId2=Symbol.for("effect/Sink"),sinkVariance2={_A:(_)=>_,_In:(_)=>_,_L:(_)=>_,_E:(_)=>_,_R:(_)=>_};class SinkImpl{channel;[SinkTypeId2]=sinkVariance2;constructor(channel){this.channel=channel}pipe(){return pipeArguments(this,arguments)}}var isSink=(u)=>hasProperty(u,SinkTypeId2),suspend6=(evaluate2)=>new SinkImpl(suspend5(()=>toChannel(evaluate2())));var collectAll=()=>new SinkImpl(collectAllLoop(empty2())),collectAllLoop=(acc)=>readWithCause({onInput:(chunk2)=>collectAllLoop(pipe(acc,appendAll2(chunk2))),onFailure:failCause10,onDone:()=>succeed12(acc)}),collectAllN=(n)=>suspend6(()=>fromChannel(collectAllNLoop(n,empty2()))),collectAllNLoop=(n,acc)=>readWithCause({onInput:(chunk2)=>{let[collected,leftovers]=splitAt2(chunk2,n);if(collected.length<n)return collectAllNLoop(n-collected.length,appendAll2(acc,collected));if(isEmpty(leftovers))return succeed12(appendAll2(acc,collected));return flatMap13(write(leftovers),()=>succeed12(appendAll2(acc,collected)))},onFailure:failCause10,onDone:()=>succeed12(acc)});var collectLeftover=(self)=>new SinkImpl(pipe(collectElements(toChannel(self)),map19(([chunks,z])=>[z,flatten2(chunks)])));var drain2=new SinkImpl(drain(identityChannel()));var fail12=(e)=>new SinkImpl(fail11(e));var fold=(s,contFn,f)=>suspend6(()=>new SinkImpl(foldReader(s,contFn,f))),foldReader=(s,contFn,f)=>{if(!contFn(s))return succeedNow(s);return readWith({onInput:(input)=>{let[nextS,leftovers]=foldChunkSplit(s,input,contFn,f,0,input.length);if(isNonEmpty(leftovers))return pipe(write(leftovers),as6(nextS));return foldReader(nextS,contFn,f)},onFailure:fail11,onDone:()=>succeedNow(s)})},foldChunkSplit=(s,chunk2,contFn,f,index,length3)=>{if(index===length3)return[s,empty2()];let s1=f(s,pipe(chunk2,unsafeGet2(index)));if(contFn(s1))return foldChunkSplit(s1,chunk2,contFn,f,index+1,length3);return[s1,pipe(chunk2,drop2(index+1))]},foldSink=dual(2,(self,options)=>{let newChannel=pipe(toChannel(self),collectElements,foldChannel({onFailure:(error2)=>toChannel(options.onFailure(error2)),onSuccess:([leftovers,z])=>suspend5(()=>{let leftoversRef={ref:pipe(leftovers,filter2(isNonEmpty))},refReader=pipe(sync7(()=>{let ref=leftoversRef.ref;return leftoversRef.ref=empty2(),ref}),flatMap13((chunk2)=>writeChunk(chunk2))),passthrough5=identityChannel(),continuationSink=pipe(refReader,zipRight6(passthrough5),pipeTo(toChannel(options.onSuccess(z))));return flatMap13(collectElements(continuationSink),([newLeftovers,z1])=>pipe(succeed12(leftoversRef.ref),flatMap13(writeChunk),zipRight6(writeChunk(newLeftovers)),as6(z1)))})}));return new SinkImpl(newChannel)}),foldChunks=(s,contFn,f)=>suspend6(()=>new SinkImpl(foldChunksReader(s,contFn,f))),foldChunksReader=(s,contFn,f)=>{if(!contFn(s))return succeedNow(s);return readWith({onInput:(input)=>foldChunksReader(f(s,input),contFn,f),onFailure:fail11,onDone:()=>succeedNow(s)})};var foldEffect=(s,contFn,f)=>suspend6(()=>new SinkImpl(foldEffectReader(s,contFn,f))),foldEffectReader=(s,contFn,f)=>{if(!contFn(s))return succeedNow(s);return readWith({onInput:(input)=>pipe(fromEffect4(foldChunkSplitEffect(s,input,contFn,f)),flatMap13(([nextS,leftovers])=>pipe(leftovers,match2({onNone:()=>foldEffectReader(nextS,contFn,f),onSome:(leftover)=>pipe(write(leftover),as6(nextS))})))),onFailure:fail11,onDone:()=>succeedNow(s)})},foldChunkSplitEffect=(s,chunk2,contFn,f)=>foldChunkSplitEffectInternal(s,chunk2,0,chunk2.length,contFn,f),foldChunkSplitEffectInternal=(s,chunk2,index,length3,contFn,f)=>{if(index===length3)return succeed9([s,none2()]);return pipe(f(s,pipe(chunk2,unsafeGet2(index))),flatMap11((s1)=>contFn(s1)?foldChunkSplitEffectInternal(s1,chunk2,index+1,length3,contFn,f):succeed9([s1,some2(pipe(chunk2,drop2(index+1)))])))};var foldLeftChunks=(s,f)=>foldChunks(s,constTrue,f);var flatMap14=dual(2,(self,f)=>foldSink(self,{onFailure:fail12,onSuccess:f})),forEach7=(f)=>{let process2=readWithCause({onInput:(input)=>pipe(fromEffect4(forEach6(input,(v)=>f(v),{discard:!0})),flatMap13(()=>process2)),onFailure:failCause10,onDone:()=>void_5});return new SinkImpl(process2)},forEachChunk=(f)=>{let process2=readWithCause({onInput:(input)=>pipe(fromEffect4(f(input)),flatMap13(()=>process2)),onFailure:failCause10,onDone:()=>void_5});return new SinkImpl(process2)},forEachWhile=(f)=>{let process2=readWithCause({onInput:(input)=>forEachWhileReader(f,input,0,input.length,process2),onFailure:failCause10,onDone:()=>void_5});return new SinkImpl(process2)},forEachWhileReader=(f,input,index,length3,cont)=>{if(index===length3)return cont;return pipe(fromEffect4(f(pipe(input,unsafeGet2(index)))),flatMap13((bool)=>bool?forEachWhileReader(f,input,index+1,length3,cont):write(pipe(input,drop2(index)))),catchAll5((error2)=>pipe(write(pipe(input,drop2(index))),zipRight6(fail11(error2)))))};var fromChannel=(channel)=>new SinkImpl(channel),fromEffect6=(effect3)=>new SinkImpl(fromEffect4(effect3));var head5=()=>fold(none2(),isNone2,(option3,input)=>match2(option3,{onNone:()=>some2(input),onSome:()=>option3}));var last3=()=>foldLeftChunks(none2(),(s,input)=>orElse(last2(input),()=>s));var map20=dual(2,(self,f)=>{return new SinkImpl(pipe(toChannel(self),map19(f)))});var raceWith3=dual(2,(self,options)=>{function race3(scope5){return gen2(function*(){let pubsub=yield*bounded5(options?.capacity??16),subscription1=yield*extend2(subscribe2(pubsub),scope5),subscription2=yield*extend2(subscribe2(pubsub),scope5),reader=toPubSub(pubsub),writer=fromQueue(subscription1).pipe(pipeTo(toChannel(self)),zipLeft5(fromEffect4(shutdown2(subscription1))),mergeWith2({other:fromQueue(subscription2).pipe(pipeTo(toChannel(options.other)),zipLeft5(fromEffect4(shutdown2(subscription2)))),onSelfDone:options.onSelfDone,onOtherDone:options.onOtherDone})),racedChannel=mergeWith2(reader,{other:writer,onSelfDone:()=>Await(identity),onOtherDone:(exit3)=>Done3(exit3)});return new SinkImpl(racedChannel)})}return unwrapScopedWith2(race3)});var sum2=foldLeftChunks(0,(acc,chunk2)=>acc+reduce2(chunk2,0,(s,a)=>s+a));var toChannel=(self)=>isEffect2(self)?toChannel(fromEffect6(self)):self.channel;var unwrapScopedWith2=(f)=>new SinkImpl(unwrapScopedWith((scope5)=>f(scope5).pipe(map16((sink)=>toChannel(sink)))));var zipRight7=dual((args2)=>isSink(args2[1]),(self,that,options)=>zipWith9(self,that,(_,z2)=>z2,options)),zipWith9=dual((args2)=>isSink(args2[1]),(self,that,f,options)=>options?.concurrent?raceWith3(self,{other:that,onSelfDone:match9({onFailure:(cause3)=>Done3(failCause8(cause3)),onSuccess:(leftZ)=>Await(match9({onFailure:failCause8,onSuccess:(rightZ)=>succeed9(f(leftZ,rightZ))}))}),onOtherDone:match9({onFailure:(cause3)=>Done3(failCause8(cause3)),onSuccess:(rightZ)=>Await(match9({onFailure:failCause8,onSuccess:(leftZ)=>succeed9(f(leftZ,rightZ))}))})}):flatMap14(self,(z)=>map20(that,(z2)=>f(z,z2))));var count4=foldLeftChunks(0,(acc,chunk2)=>acc+chunk2.length),mkString=suspend6(()=>{let strings=[];return pipe(foldLeftChunks(void 0,(_,elems)=>map4(elems,(elem)=>{strings.push(String(elem))})),map20(()=>strings.join("")))});class Versioned{value;constructor(value){this.value=value}}var make45=(ref,isNew)=>({ref,isNew,isChanged:!1,expected:ref.versioned,newValue:ref.versioned.value}),unsafeGet6=(self)=>{return self.newValue},unsafeSet=(self,value)=>{self.isChanged=!0,self.newValue=value},commit=(self)=>{self.ref.versioned=new Versioned(self.newValue)};var isInvalid=(self)=>{return self.ref.versioned!==self.expected},isChanged=(self)=>{return self.isChanged};var JournalAnalysisInvalid="Invalid",JournalAnalysisReadWrite="ReadWrite",JournalAnalysisReadOnly="ReadOnly",commitJournal=(journal)=>{for(let entry of journal)commit(entry[1])},analyzeJournal=(journal)=>{let val=JournalAnalysisReadOnly;for(let[,entry]of journal)if(val=isInvalid(entry)?JournalAnalysisInvalid:isChanged(entry)?JournalAnalysisReadWrite:val,val===JournalAnalysisInvalid)return val;return val};var collectTodos=(journal)=>{let allTodos=new Map;for(let[,entry]of journal){for(let todo of entry.ref.todos)allTodos.set(todo[0],todo[1]);entry.ref.todos=new Map}return allTodos},execTodos=(todos)=>{let todosSorted=Array.from(todos.entries()).sort((x,y)=>x[0]-y[0]);for(let[_,todo]of todosSorted)todo()},addTodo=(txnId,journal,todoEffect)=>{let added=!1;for(let[,entry]of journal)if(!entry.ref.todos.has(txnId))entry.ref.todos.set(txnId,todoEffect),added=!0;return added};var OP_WITH_STM_RUNTIME="WithSTMRuntime",OP_ON_FAILURE2="OnFailure",OP_ON_RETRY="OnRetry",OP_ON_SUCCESS2="OnSuccess",OP_PROVIDE3="Provide",OP_SYNC2="Sync",OP_SUCCEED2="Succeed",OP_RETRY="Retry",OP_FAIL4="Fail",OP_DIE2="Die",OP_INTERRUPT2="Interrupt";var OP_FAIL5="Fail",OP_DIE3="Die",OP_INTERRUPT3="Interrupt",OP_SUCCEED3="Succeed",OP_RETRY2="Retry";var OP_DONE5="Done",OP_SUSPEND3="Suspend";var OP_DONE6="Done",OP_INTERRUPTED="Interrupted",OP_RUNNING2="Running";var STMStateSymbolKey="effect/STM/State",STMStateTypeId=Symbol.for(STMStateSymbolKey),isSTMState=(u)=>hasProperty(u,STMStateTypeId),isRunning2=(self)=>{return self._tag===OP_RUNNING2},isDone6=(self)=>{return self._tag===OP_DONE6};var done8=(exit3)=>{return{[STMStateTypeId]:STMStateTypeId,_tag:OP_DONE6,exit:exit3,[symbol](){return pipe(hash(STMStateSymbolKey),combine(hash(OP_DONE6)),combine(hash(exit3)),cached(this))},[symbol2](that){return isSTMState(that)&&that._tag===OP_DONE6&&equals(exit3,that.exit)}}},interruptedHash=pipe(hash(STMStateSymbolKey),combine(hash(OP_INTERRUPTED)),combine(hash("interrupted"))),interrupted2={[STMStateTypeId]:STMStateTypeId,_tag:OP_INTERRUPTED,[symbol](){return interruptedHash},[symbol2](that){return isSTMState(that)&&that._tag===OP_INTERRUPTED}},runningHash=pipe(hash(STMStateSymbolKey),combine(hash(OP_RUNNING2)),combine(hash("running"))),running3={[STMStateTypeId]:STMStateTypeId,_tag:OP_RUNNING2,[symbol](){return runningHash},[symbol2](that){return isSTMState(that)&&that._tag===OP_RUNNING2}},fromTExit=(tExit)=>{switch(tExit._tag){case OP_FAIL5:return done8(fail4(tExit.error));case OP_DIE3:return done8(die4(tExit.defect));case OP_INTERRUPT3:return done8(interrupt4(tExit.fiberId));case OP_SUCCEED3:return done8(succeed3(tExit.value));case OP_RETRY2:throw Error("BUG: STM.STMState.fromTExit - please report an issue at https://github.com/Effect-TS/effect/issues")}};var TExitSymbolKey="effect/TExit",TExitTypeId=Symbol.for(TExitSymbolKey),variance6={_A:(_)=>_,_E:(_)=>_},isExit2=(u)=>hasProperty(u,TExitTypeId);var isSuccess4=(self)=>{return self._tag===OP_SUCCEED3},isRetry=(self)=>{return self._tag===OP_RETRY2},fail13=(error2)=>({[TExitTypeId]:variance6,_tag:OP_FAIL5,error:error2,[symbol](){return pipe(hash(TExitSymbolKey),combine(hash(OP_FAIL5)),combine(hash(error2)),cached(this))},[symbol2](that){return isExit2(that)&&that._tag===OP_FAIL5&&equals(error2,that.error)}}),die8=(defect)=>({[TExitTypeId]:variance6,_tag:OP_DIE3,defect,[symbol](){return pipe(hash(TExitSymbolKey),combine(hash(OP_DIE3)),combine(hash(defect)),cached(this))},[symbol2](that){return isExit2(that)&&that._tag===OP_DIE3&&equals(defect,that.defect)}}),interrupt8=(fiberId3)=>({[TExitTypeId]:variance6,_tag:OP_INTERRUPT3,fiberId:fiberId3,[symbol](){return pipe(hash(TExitSymbolKey),combine(hash(OP_INTERRUPT3)),combine(hash(fiberId3)),cached(this))},[symbol2](that){return isExit2(that)&&that._tag===OP_INTERRUPT3&&equals(fiberId3,that.fiberId)}}),succeed13=(value)=>({[TExitTypeId]:variance6,_tag:OP_SUCCEED3,value,[symbol](){return pipe(hash(TExitSymbolKey),combine(hash(OP_SUCCEED3)),combine(hash(value)),cached(this))},[symbol2](that){return isExit2(that)&&that._tag===OP_SUCCEED3&&equals(value,that.value)}}),retryHash=pipe(hash(TExitSymbolKey),combine(hash(OP_RETRY2)),combine(hash("retry"))),retry4={[TExitTypeId]:variance6,_tag:OP_RETRY2,[symbol](){return retryHash},[symbol2](that){return isExit2(that)&&isRetry(that)}};var done9=(exit3)=>{return{_tag:OP_DONE5,exit:exit3}},suspend7=(journal)=>{return{_tag:OP_SUSPEND3,journal}};var txnCounter={ref:0},make46=()=>{let newId=txnCounter.ref+1;return txnCounter.ref=newId,newId};var STMSymbolKey2="effect/STM",STMTypeId2=Symbol.for(STMSymbolKey2),stmVariance={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_};class STMPrimitive{effect_instruction_i0;_op=OP_COMMIT;effect_instruction_i1=void 0;effect_instruction_i2=void 0;[EffectTypeId3];[StreamTypeId];[SinkTypeId2];[ChannelTypeId2];get[STMTypeId2](){return stmVariance}constructor(effect_instruction_i0){this.effect_instruction_i0=effect_instruction_i0,this[EffectTypeId3]=effectVariance,this[StreamTypeId]=stmVariance,this[SinkTypeId2]=stmVariance,this[ChannelTypeId2]=stmVariance}[symbol2](that){return this===that}[symbol](){return cached(this,random(this))}[Symbol.iterator](){return new SingleShotGen2(new YieldWrap(this))}commit(){return unsafeAtomically(this,constVoid,constVoid)}pipe(){return pipeArguments(this,arguments)}}var unsafeAtomically=(self,onDone,onInterrupt3)=>withFiberRuntime((state)=>{let fiberId3=state.id(),env=state.getFiberRef(currentContext2),scheduler=state.getFiberRef(currentScheduler2),priority=state.getFiberRef(currentSchedulingPriority2),commitResult=tryCommitSync(fiberId3,self,env,scheduler,priority);switch(commitResult._tag){case OP_DONE5:return onDone(commitResult.exit),commitResult.exit;case OP_SUSPEND3:{let txnId=make46(),state2={value:running3},effect3=async((k)=>tryCommitAsync(fiberId3,self,txnId,state2,env,scheduler,priority,k));return uninterruptibleMask3((restore)=>pipe(restore(effect3),catchAllCause3((cause3)=>{let currentState=state2.value;if(isRunning2(currentState))state2.value=interrupted2;if(currentState=state2.value,isDone6(currentState))return onDone(currentState.exit),currentState.exit;return onInterrupt3(),failCause8(cause3)})))}}}),tryCommit=(fiberId3,stm,state,env,scheduler,priority)=>{let journal=new Map,tExit=new STMDriver(stm,journal,fiberId3,env).run(),analysis=analyzeJournal(journal);if(analysis===JournalAnalysisReadWrite)commitJournal(journal);else if(analysis===JournalAnalysisInvalid)throw Error("BUG: STM.TryCommit.tryCommit - please report an issue at https://github.com/Effect-TS/effect/issues");switch(tExit._tag){case OP_SUCCEED3:return state.value=fromTExit(tExit),completeTodos(succeed3(tExit.value),journal,scheduler,priority);case OP_FAIL5:{state.value=fromTExit(tExit);let cause3=fail3(tExit.error);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_DIE3:{state.value=fromTExit(tExit);let cause3=die3(tExit.defect);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_INTERRUPT3:{state.value=fromTExit(tExit);let cause3=interrupt3(fiberId3);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_RETRY2:return suspend7(journal)}},tryCommitSync=(fiberId3,stm,env,scheduler,priority)=>{let journal=new Map,tExit=new STMDriver(stm,journal,fiberId3,env).run(),analysis=analyzeJournal(journal);if(analysis===JournalAnalysisReadWrite&&isSuccess4(tExit))commitJournal(journal);else if(analysis===JournalAnalysisInvalid)throw Error("BUG: STM.TryCommit.tryCommitSync - please report an issue at https://github.com/Effect-TS/effect/issues");switch(tExit._tag){case OP_SUCCEED3:return completeTodos(succeed3(tExit.value),journal,scheduler,priority);case OP_FAIL5:{let cause3=fail3(tExit.error);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_DIE3:{let cause3=die3(tExit.defect);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_INTERRUPT3:{let cause3=interrupt3(fiberId3);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_RETRY2:return suspend7(journal)}},tryCommitAsync=(fiberId3,self,txnId,state,context5,scheduler,priority,k)=>{if(isRunning2(state.value)){let result=tryCommit(fiberId3,self,state,context5,scheduler,priority);switch(result._tag){case OP_DONE5:{completeTryCommit(result.exit,k);break}case OP_SUSPEND3:{addTodo(txnId,result.journal,()=>tryCommitAsync(fiberId3,self,txnId,state,context5,scheduler,priority,k));break}}}},completeTodos=(exit3,journal,scheduler,priority)=>{let todos=collectTodos(journal);if(todos.size>0)scheduler.scheduleTask(()=>execTodos(todos),priority);return done9(exit3)},completeTryCommit=(exit3,k)=>{k(exit3)};class STMDriver{self;journal;fiberId;contStack=[];env;constructor(self,journal,fiberId3,r0){this.self=self,this.journal=journal,this.fiberId=fiberId3,this.env=r0}getEnv(){return this.env}pushStack(cont){this.contStack.push(cont)}popStack(){return this.contStack.pop()}nextSuccess(){let current=this.popStack();while(current!==void 0&&current.effect_instruction_i0!==OP_ON_SUCCESS2)current=this.popStack();return current}nextFailure(){let current=this.popStack();while(current!==void 0&&current.effect_instruction_i0!==OP_ON_FAILURE2)current=this.popStack();return current}nextRetry(){let current=this.popStack();while(current!==void 0&&current.effect_instruction_i0!==OP_ON_RETRY)current=this.popStack();return current}run(){let curr=this.self,exit3=void 0;while(exit3===void 0&&curr!==void 0)try{let current=curr;if(current)switch(current._op){case"Tag":{curr=effect3((_,__,env)=>unsafeGet4(env,current));break}case"Left":{curr=fail14(current.left);break}case"None":{curr=fail14(new NoSuchElementException2);break}case"Right":{curr=succeed14(current.right);break}case"Some":{curr=succeed14(current.value);break}case"Commit":{switch(current.effect_instruction_i0){case OP_DIE2:{exit3=die8(internalCall(()=>current.effect_instruction_i1()));break}case OP_FAIL4:{let cont=this.nextFailure();if(cont===void 0)exit3=fail13(internalCall(()=>current.effect_instruction_i1()));else curr=internalCall(()=>cont.effect_instruction_i2(internalCall(()=>current.effect_instruction_i1())));break}case OP_RETRY:{let cont=this.nextRetry();if(cont===void 0)exit3=retry4;else curr=internalCall(()=>cont.effect_instruction_i2());break}case OP_INTERRUPT2:{exit3=interrupt8(this.fiberId);break}case OP_WITH_STM_RUNTIME:{curr=internalCall(()=>current.effect_instruction_i1(this));break}case OP_ON_SUCCESS2:case OP_ON_FAILURE2:case OP_ON_RETRY:{this.pushStack(current),curr=current.effect_instruction_i1;break}case OP_PROVIDE3:{let env=this.env;this.env=internalCall(()=>current.effect_instruction_i2(env)),curr=pipe(current.effect_instruction_i1,ensuring6(sync8(()=>this.env=env)));break}case OP_SUCCEED2:{let value=current.effect_instruction_i1,cont=this.nextSuccess();if(cont===void 0)exit3=succeed13(value);else curr=internalCall(()=>cont.effect_instruction_i2(value));break}case OP_SYNC2:{let value=internalCall(()=>current.effect_instruction_i1()),cont=this.nextSuccess();if(cont===void 0)exit3=succeed13(value);else curr=internalCall(()=>cont.effect_instruction_i2(value));break}}break}}}catch(e){curr=die9(e)}return exit3}}var catchAll6=dual(2,(self,f)=>{let stm=new STMPrimitive(OP_ON_FAILURE2);return stm.effect_instruction_i1=self,stm.effect_instruction_i2=f,stm});var die9=(defect)=>dieSync5(()=>defect);var dieSync5=(evaluate2)=>{let stm=new STMPrimitive(OP_DIE2);return stm.effect_instruction_i1=evaluate2,stm},effect3=(f)=>withSTMRuntime((_)=>succeed14(f(_.journal,_.fiberId,_.getEnv()))),ensuring6=dual(2,(self,finalizer)=>matchSTM(self,{onFailure:(e)=>zipRight8(finalizer,fail14(e)),onSuccess:(a)=>zipRight8(finalizer,succeed14(a))})),fail14=(error2)=>failSync6(()=>error2),failSync6=(evaluate2)=>{let stm=new STMPrimitive(OP_FAIL4);return stm.effect_instruction_i1=evaluate2,stm},flatMap15=dual(2,(self,f)=>{let stm=new STMPrimitive(OP_ON_SUCCESS2);return stm.effect_instruction_i1=self,stm.effect_instruction_i2=f,stm}),matchSTM=dual(2,(self,{onFailure,onSuccess})=>pipe(self,map21(right2),catchAll6((e)=>pipe(onFailure(e),map21(left2))),flatMap15((either6)=>{switch(either6._tag){case"Left":return succeed14(either6.left);case"Right":return onSuccess(either6.right)}}))),withSTMRuntime=(f)=>{let stm=new STMPrimitive(OP_WITH_STM_RUNTIME);return stm.effect_instruction_i1=f,stm};var interruptAs2=(fiberId3)=>{let stm=new STMPrimitive(OP_INTERRUPT2);return stm.effect_instruction_i1=fiberId3,stm},map21=dual(2,(self,f)=>pipe(self,flatMap15((a)=>sync8(()=>f(a)))));var retry5=new STMPrimitive(OP_RETRY),succeed14=(value)=>{let stm=new STMPrimitive(OP_SUCCEED2);return stm.effect_instruction_i1=value,stm},sync8=(evaluate2)=>{let stm=new STMPrimitive(OP_SYNC2);return stm.effect_instruction_i1=evaluate2,stm};var zipRight8=dual(2,(self,that)=>pipe(self,flatMap15(()=>that))),zipWith10=dual(3,(self,that,f)=>pipe(self,flatMap15((a)=>pipe(that,map21((b)=>f(a,b))))));var OP_BACKPRESSURE_STRATEGY="BackPressure",OP_DROPPING_STRATEGY="Dropping",OP_SLIDING_STRATEGY="Sliding";var as7=dual(2,(self,value)=>pipe(self,map21(()=>value)));var flatten11=(self)=>flatMap15(self,identity);var forEach8=dual((args2)=>isIterable(args2[0]),(iterable,f,options)=>{if(options?.discard)return pipe(sync8(()=>iterable[Symbol.iterator]()),flatMap15((iterator)=>{let loop3=suspend8(()=>{let next4=iterator.next();if(next4.done)return void_6;return pipe(f(next4.value),flatMap15(()=>loop3))});return loop3}));return suspend8(()=>fromIterable(iterable).reduce((acc,curr)=>zipWith10(acc,f(curr),(array4,elem)=>{return array4.push(elem),array4}),succeed14([])))});var all6=(input,options)=>{if(Symbol.iterator in input)return forEach8(input,identity,options);else if(options?.discard)return forEach8(Object.values(input),identity,options);return map21(forEach8(Object.entries(input),([_,e])=>map21(e,(a)=>[_,a])),(values3)=>{let res={};for(let[k,v]of values3)res[k]=v;return res})};var suspend8=(evaluate2)=>flatten11(sync8(evaluate2)),tap5=dual(2,(self,f)=>flatMap15(self,(a)=>as7(f(a),a)));var void_6=succeed14(void 0);var TRefSymbolKey="effect/TRef",TRefTypeId=Symbol.for(TRefSymbolKey),tRefVariance={_A:(_)=>_};class TRefImpl{[TRefTypeId]=tRefVariance;todos;versioned;constructor(value){this.versioned=new Versioned(value),this.todos=new Map}modify(f){return effect3((journal)=>{let entry=getOrMakeEntry(this,journal),[retValue,newValue]=f(unsafeGet6(entry));return unsafeSet(entry,newValue),retValue})}pipe(){return pipeArguments(this,arguments)}}var make47=(value)=>effect3((journal)=>{let ref=new TRefImpl(value);return journal.set(ref,make45(ref,!0)),ref}),get16=(self)=>self.modify((a)=>[a,a]),set7=dual(2,(self,value)=>self.modify(()=>[void 0,value]));var getOrMakeEntry=(self,journal)=>{if(journal.has(self))return journal.get(self);let entry=make45(self,!1);return journal.set(self,entry),entry},unsafeGet7=dual(2,(self,journal)=>unsafeGet6(getOrMakeEntry(self,journal))),unsafeSet2=dual(3,(self,value,journal)=>{let entry=getOrMakeEntry(self,journal);unsafeSet(entry,value);return});var TEnqueueSymbolKey="effect/TQueue/TEnqueue",TEnqueueTypeId=Symbol.for(TEnqueueSymbolKey),TDequeueSymbolKey="effect/TQueue/TDequeue",TDequeueTypeId=Symbol.for(TDequeueSymbolKey);var tDequeueVariance={_Out:(_)=>_},tEnqueueVariance={_In:(_)=>_};class TQueueImpl{ref;requestedCapacity;strategy;[TDequeueTypeId]=tDequeueVariance;[TEnqueueTypeId]=tEnqueueVariance;constructor(ref,requestedCapacity,strategy){this.ref=ref,this.requestedCapacity=requestedCapacity,this.strategy=strategy}capacity(){return this.requestedCapacity}size=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);return succeed14(queue.length)});isFull=map21(this.size,(size12)=>size12===this.requestedCapacity);isEmpty=map21(this.size,(size12)=>size12===0);shutdown=withSTMRuntime((runtime4)=>{return unsafeSet2(this.ref,void 0,runtime4.journal),void_6});isShutdown=effect3((journal)=>{return unsafeGet7(this.ref,journal)===void 0});awaitShutdown=flatMap15(this.isShutdown,(isShutdown4)=>isShutdown4?void_6:retry5);offer(value){return withSTMRuntime((runtime4)=>{let queue=pipe(this.ref,unsafeGet7(runtime4.journal));if(queue===void 0)return interruptAs2(runtime4.fiberId);if(queue.length<this.requestedCapacity)return queue.push(value),unsafeSet2(this.ref,queue,runtime4.journal),succeed14(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:return succeed14(!1);case OP_SLIDING_STRATEGY:{if(queue.length===0)return succeed14(!0);return queue.shift(),queue.push(value),unsafeSet2(this.ref,queue,runtime4.journal),succeed14(!0)}}})}offerAll(iterable){return withSTMRuntime((runtime4)=>{let as8=Array.from(iterable),queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);if(queue.length+as8.length<=this.requestedCapacity)return unsafeSet2(this.ref,[...queue,...as8],runtime4.journal),succeed14(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:{let forQueue=as8.slice(0,this.requestedCapacity-queue.length);return unsafeSet2(this.ref,[...queue,...forQueue],runtime4.journal),succeed14(!1)}case OP_SLIDING_STRATEGY:{let forQueue=as8.slice(0,this.requestedCapacity-queue.length),toDrop=queue.length+forQueue.length-this.requestedCapacity,newQueue=queue.slice(toDrop);return unsafeSet2(this.ref,[...newQueue,...forQueue],runtime4.journal),succeed14(!0)}}})}peek=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);if(queue.length===0)return retry5;return succeed14(queue[0])});peekOption=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);return succeed14(fromNullable(queue[0]))});take=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);if(queue.length===0)return retry5;let dequeued=queue.shift();return unsafeSet2(this.ref,queue,runtime4.journal),succeed14(dequeued)});takeAll=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);return unsafeSet2(this.ref,[],runtime4.journal),succeed14(queue)});takeUpTo(max6){return withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);let[toTake,remaining]=splitAt2(unsafeFromArray(queue),max6);return unsafeSet2(this.ref,Array.from(remaining),runtime4.journal),succeed14(Array.from(toTake))})}}var isShutdown4=(self)=>self.isShutdown;var shutdown5=(self)=>self.shutdown;var take4=(self)=>self.take;var TPubSubSymbolKey="effect/TPubSub",TPubSubTypeId=Symbol.for(TPubSubSymbolKey),AbsentValue2=Symbol.for("effect/TPubSub/AbsentValue"),makeNode2=(head6,subscribers,tail)=>({head:head6,subscribers,tail});class TPubSubImpl{pubsubSize;publisherHead;publisherTail;requestedCapacity;strategy;subscriberCount;subscribers;[TPubSubTypeId]={_A:(_)=>_};[TEnqueueTypeId]=tEnqueueVariance;constructor(pubsubSize,publisherHead,publisherTail,requestedCapacity,strategy,subscriberCount,subscribers){this.pubsubSize=pubsubSize,this.publisherHead=publisherHead,this.publisherTail=publisherTail,this.requestedCapacity=requestedCapacity,this.strategy=strategy,this.subscriberCount=subscriberCount,this.subscribers=subscribers}isShutdown=effect3((journal)=>{return unsafeGet7(this.publisherTail,journal)===void 0});awaitShutdown=flatMap15(this.isShutdown,(isShutdown5)=>isShutdown5?void_6:retry5);capacity(){return this.requestedCapacity}size=withSTMRuntime((runtime4)=>{if(unsafeGet7(this.publisherTail,runtime4.journal)===void 0)return interruptAs2(runtime4.fiberId);return succeed14(unsafeGet7(this.pubsubSize,runtime4.journal))});isEmpty=map21(this.size,(size12)=>size12===0);isFull=map21(this.size,(size12)=>size12===this.capacity());offer(value){return withSTMRuntime((runtime4)=>{let currentPublisherTail=unsafeGet7(this.publisherTail,runtime4.journal);if(currentPublisherTail===void 0)return interruptAs2(runtime4.fiberId);let currentSubscriberCount=unsafeGet7(this.subscriberCount,runtime4.journal);if(currentSubscriberCount===0)return succeed14(!0);let currentPubSubSize=unsafeGet7(this.pubsubSize,runtime4.journal);if(currentPubSubSize<this.requestedCapacity){let updatedPublisherTail=new TRefImpl(void 0),updatedNode=makeNode2(value,currentSubscriberCount,updatedPublisherTail);return unsafeSet2(currentPublisherTail,updatedNode,runtime4.journal),unsafeSet2(this.publisherTail,updatedPublisherTail,runtime4.journal),unsafeSet2(this.pubsubSize,currentPubSubSize+1,runtime4.journal),succeed14(!0)}switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:return succeed14(!1);case OP_SLIDING_STRATEGY:{if(this.requestedCapacity>0){let currentPublisherHead=unsafeGet7(this.publisherHead,runtime4.journal),loop3=!0;while(loop3){let node=unsafeGet7(currentPublisherHead,runtime4.journal);if(node===void 0)return retry5;let{head:head6,tail}=node;if(head6!==AbsentValue2){let updatedNode2=makeNode2(AbsentValue2,node.subscribers,node.tail);unsafeSet2(currentPublisherHead,updatedNode2,runtime4.journal),unsafeSet2(this.publisherHead,tail,runtime4.journal),loop3=!1}else currentPublisherHead=tail}}let updatedPublisherTail=new TRefImpl(void 0),updatedNode=makeNode2(value,currentSubscriberCount,updatedPublisherTail);return unsafeSet2(currentPublisherTail,updatedNode,runtime4.journal),unsafeSet2(this.publisherTail,updatedPublisherTail,runtime4.journal),succeed14(!0)}}})}offerAll(iterable){return map21(forEach8(iterable,(a)=>this.offer(a)),every(identity))}shutdown=effect3((journal)=>{if(unsafeGet7(this.publisherTail,journal)!==void 0){unsafeSet2(this.publisherTail,void 0,journal);let currentSubscribers=unsafeGet7(this.subscribers,journal);forEach3(currentSubscribers,(subscriber)=>{unsafeSet2(subscriber,void 0,journal)}),unsafeSet2(this.subscribers,empty5(),journal)}})}class TPubSubSubscriptionImpl{pubsubSize;publisherHead;requestedCapacity;subscriberHead;subscriberCount;subscribers;[TPubSubTypeId]=TPubSubTypeId;[TDequeueTypeId]=tDequeueVariance;constructor(pubsubSize,publisherHead,requestedCapacity,subscriberHead,subscriberCount,subscribers){this.pubsubSize=pubsubSize,this.publisherHead=publisherHead,this.requestedCapacity=requestedCapacity,this.subscriberHead=subscriberHead,this.subscriberCount=subscriberCount,this.subscribers=subscribers}isShutdown=effect3((journal)=>{return unsafeGet7(this.subscriberHead,journal)===void 0});awaitShutdown=flatMap15(this.isShutdown,(isShutdown5)=>isShutdown5?void_6:retry5);capacity(){return this.requestedCapacity}size=withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let loop3=!0,size12=0;while(loop3){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)loop3=!1;else{let{head:head6,tail}=node;if(head6!==AbsentValue2){if(size12=size12+1,size12>=Number.MAX_SAFE_INTEGER)loop3=!1}currentSubscriberHead=tail}}return succeed14(size12)});isEmpty=map21(this.size,(size12)=>size12===0);isFull=map21(this.size,(size12)=>size12===this.capacity());peek=withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let value=AbsentValue2,loop3=!0;while(loop3){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)return retry5;let{head:head6,tail}=node;if(head6!==AbsentValue2)value=head6,loop3=!1;else currentSubscriberHead=tail}return succeed14(value)});peekOption=withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let value=none2(),loop3=!0;while(loop3){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)value=none2(),loop3=!1;else{let{head:head6,tail}=node;if(head6!==AbsentValue2)value=some2(head6),loop3=!1;else currentSubscriberHead=tail}}return succeed14(value)});shutdown=effect3((journal)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,journal);if(currentSubscriberHead!==void 0){unsafeSet2(this.subscriberHead,void 0,journal);let loop3=!0;while(loop3){let node=unsafeGet7(currentSubscriberHead,journal);if(node===void 0)loop3=!1;else{let{head:head6,tail}=node;if(head6!==AbsentValue2){let subscribers=node.subscribers;if(subscribers===1){let size12=unsafeGet7(this.pubsubSize,journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,journal),unsafeSet2(this.publisherHead,tail,journal),unsafeSet2(this.pubsubSize,size12-1,journal)}else{let updatedNode=makeNode2(head6,subscribers-1,tail);unsafeSet2(currentSubscriberHead,updatedNode,journal)}}currentSubscriberHead=tail}}let currentSubscriberCount=unsafeGet7(this.subscriberCount,journal);unsafeSet2(this.subscriberCount,currentSubscriberCount-1,journal),unsafeSet2(this.subscribers,remove4(unsafeGet7(this.subscribers,journal),this.subscriberHead),journal)}});take=withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let value=AbsentValue2,loop3=!0;while(loop3){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)return retry5;let{head:head6,tail}=node;if(head6!==AbsentValue2){let subscribers=node.subscribers;if(subscribers===1){let size12=unsafeGet7(this.pubsubSize,runtime4.journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet2(this.publisherHead,tail,runtime4.journal),unsafeSet2(this.pubsubSize,size12-1,runtime4.journal)}else{let updatedNode=makeNode2(head6,subscribers-1,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal)}unsafeSet2(this.subscriberHead,tail,runtime4.journal),value=head6,loop3=!1}else currentSubscriberHead=tail}return succeed14(value)});takeAll=this.takeUpTo(Number.POSITIVE_INFINITY);takeUpTo(max6){return withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let builder=[],n=0;while(n!==max6){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)n=max6;else{let{head:head6,tail}=node;if(head6!==AbsentValue2){let subscribers=node.subscribers;if(subscribers===1){let size12=unsafeGet7(this.pubsubSize,runtime4.journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet2(this.publisherHead,tail,runtime4.journal),unsafeSet2(this.pubsubSize,size12-1,runtime4.journal)}else{let updatedNode=makeNode2(head6,subscribers-1,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal)}builder.push(head6),n=n+1}currentSubscriberHead=tail}}return unsafeSet2(this.subscriberHead,currentSubscriberHead,runtime4.journal),succeed14(builder)})}}var makeSubscription2=(pubsubSize,publisherHead,publisherTail,requestedCapacity,subscriberCount,subscribers)=>pipe(get16(publisherTail),flatMap15((currentPublisherTail)=>pipe(all6([make47(currentPublisherTail),get16(subscriberCount),get16(subscribers)]),tap5(([_,currentSubscriberCount])=>pipe(subscriberCount,set7(currentSubscriberCount+1))),tap5(([subscriberHead,_,currentSubscribers])=>pipe(subscribers,set7(pipe(currentSubscribers,add2(subscriberHead))))),map21(([subscriberHead])=>new TPubSubSubscriptionImpl(pubsubSize,publisherHead,requestedCapacity,subscriberHead,subscriberCount,subscribers)))));var subscribe3=(self)=>makeSubscription2(self.pubsubSize,self.publisherHead,self.publisherTail,self.requestedCapacity,self.subscriberCount,self.subscribers),subscribeScoped=(self)=>acquireRelease2(subscribe3(self),(dequeue)=>shutdown5(dequeue));var subscribeScoped2=subscribeScoped;var isShutdown6=isShutdown4;var take5=take4;class RingBuffer{capacity;array;size=0;current=0;constructor(capacity7){this.capacity=capacity7,this.array=Array.from({length:capacity7},constUndefined)}head(){return fromNullable(this.array[this.current])}lastOrNull(){if(this.size===0)return;let index=this.current===0?this.array.length-1:this.current-1;return this.array[index]??void 0}put(value){this.array[this.current]=value,this.increment()}dropLast(){if(this.size>0)this.decrement(),this.array[this.current]=void 0}toChunk(){let begin=this.current-this.size,newArray=begin<0?[...this.array.slice(this.capacity+begin,this.capacity),...this.array.slice(0,this.current)]:this.array.slice(begin,this.current);return fromIterable2(newArray)}increment(){if(this.size<this.capacity)this.size+=1;this.current=(this.current+1)%this.capacity}decrement(){if(this.size-=1,this.current>0)this.current-=1;else this.current=this.capacity-1}}var OP_NOT_STARTED="NotStarted",OP_PREVIOUS="Previous",OP_CURRENT="Current",notStarted={_tag:"NotStarted"},previous=(fiber)=>({_tag:"Previous",fiber}),current=(fiber)=>({_tag:"Current",fiber});var make48=(emit)=>{return Object.assign(emit,{chunk(as8){return this(succeed9(as8))},die(defect){return this(die6(defect))},dieMessage(message){return this(dieMessage2(message))},done(exit3){return this(suspend3(()=>mapBoth2(exit3,{onFailure:some2,onSuccess:of2})))},end(){return this(fail9(none2()))},fail(e){return this(fail9(some2(e)))},fromEffect(effect4){return this(mapBoth4(effect4,{onFailure:some2,onSuccess:of2}))},fromEffectChunk(effect4){return this(pipe(effect4,mapError3(some2)))},halt(cause3){return this(failCause8(pipe(cause3,map11(some2))))},single(value){return this(succeed9(of2(value)))}})},makePush=(queue,scheduler)=>{let finished=!1,buffer=[],running4=!1;function array4(items){if(finished)return!1;if(items.length<=50000)buffer.push.apply(buffer,items);else for(let i=0;i<items.length;i++)buffer.push(items[0]);if(!running4)running4=!0,scheduler.scheduleTask(flush,0);return!0}function flush(){if(running4=!1,buffer.length>0)queue.unsafeOffer(buffer),buffer=[]}function done10(exit3){if(finished)return;if(finished=!0,exit3._tag==="Success")buffer.push(exit3.value);flush(),queue.unsafeOffer(exit3._tag==="Success"?void_3:exit3)}return{single(value){if(finished)return!1;if(buffer.push(value),!running4)running4=!0,scheduler.scheduleTask(flush,0);return!0},array:array4,chunk(chunk2){return array4(toReadonlyArray(chunk2))},done:done10,end(){if(finished)return;finished=!0,flush(),queue.unsafeOffer(void_3)},halt(cause3){return done10(failCause3(cause3))},fail(error2){return done10(fail4(error2))},die(defect){return done10(die4(defect))},dieMessage(message){return done10(die4(Error(message)))}}};var HandoffTypeId=Symbol.for("effect/Stream/Handoff"),OP_HANDOFF_STATE_EMPTY="Empty",OP_HANDOFF_STATE_FULL="Full",handoffStateEmpty=(notifyConsumer)=>({_tag:OP_HANDOFF_STATE_EMPTY,notifyConsumer}),handoffStateFull=(value,notifyProducer)=>({_tag:OP_HANDOFF_STATE_FULL,value,notifyProducer}),handoffStateMatch=(onEmpty,onFull)=>{return(self)=>{switch(self._tag){case OP_HANDOFF_STATE_EMPTY:return onEmpty(self.notifyConsumer);case OP_HANDOFF_STATE_FULL:return onFull(self.value,self.notifyProducer)}}},handoffVariance={_A:(_)=>_},make49=()=>pipe(make39(),flatMap11((deferred)=>make24(handoffStateEmpty(deferred))),map16((ref)=>({[HandoffTypeId]:handoffVariance,ref}))),offer5=dual(2,(self,value)=>{return flatMap11(make39(),(deferred)=>flatten8(modify4(self.ref,(state)=>pipe(state,handoffStateMatch((notifyConsumer)=>[zipRight4(succeed7(notifyConsumer,void 0),_await3(deferred)),handoffStateFull(value,deferred)],(_,notifyProducer)=>[flatMap11(_await3(notifyProducer),()=>pipe(self,offer5(value))),state])))))}),take6=(self)=>flatMap11(make39(),(deferred)=>flatten8(modify4(self.ref,(state)=>pipe(state,handoffStateMatch((notifyConsumer)=>[flatMap11(_await3(notifyConsumer),()=>take6(self)),state],(value,notifyProducer)=>[as4(succeed7(notifyProducer,void 0),value),handoffStateEmpty(deferred)])))));var OP_EMIT4="Emit",OP_HALT="Halt",OP_END="End",emit=(elements)=>({_tag:"Emit",elements}),halt=(cause3)=>({_tag:"Halt",cause:cause3}),end3=(reason)=>({_tag:"End",reason});var TakeSymbolKey="effect/Take",TakeTypeId=Symbol.for(TakeSymbolKey),takeVariance={_A:(_)=>_,_E:(_)=>_};class TakeImpl{exit;[TakeTypeId]=takeVariance;constructor(exit3){this.exit=exit3}pipe(){return pipeArguments(this,arguments)}}var chunk2=(chunk3)=>new TakeImpl(succeed3(chunk3));var done10=(self)=>suspend3(()=>self.exit),end4=new TakeImpl(fail4(none2()));var failCause11=(cause3)=>new TakeImpl(failCause3(pipe(cause3,map11(some2))));var fromPull=(pull)=>matchCause3(pull,{onFailure:(cause3)=>match2(flipCauseOption2(cause3),{onNone:()=>end4,onSome:failCause11}),onSuccess:chunk2});var match18=dual(2,(self,{onEnd,onFailure,onSuccess})=>match9(self.exit,{onFailure:(cause3)=>match2(flipCauseOption2(cause3),{onNone:onEnd,onSome:onFailure}),onSuccess}));var of5=(value)=>new TakeImpl(succeed3(of2(value)));var end5=()=>fail9(none2());var failCause12=(cause3)=>mapError3(failCause8(cause3),some2);var OP_SCHEDULE_END="ScheduleEnd",OP_UPSTREAM_END="UpstreamEnd",ScheduleEnd={_tag:"ScheduleEnd"},UpstreamEnd={_tag:"UpstreamEnd"};var OP_DRAIN_LEFT="DrainLeft",OP_DRAIN_RIGHT="DrainRight",OP_PULL_BOTH="PullBoth",OP_PULL_LEFT="PullLeft",OP_PULL_RIGHT="PullRight",DrainLeft={_tag:"DrainLeft"},DrainRight={_tag:"DrainRight"},PullBoth={_tag:"PullBoth"},PullLeft=(rightChunk)=>({_tag:"PullLeft",rightChunk}),PullRight=(leftChunk)=>({_tag:"PullRight",leftChunk});var OP_PULL_BOTH2="PullBoth",OP_PULL_LEFT2="PullLet",OP_PULL_RIGHT2="PullRight",PullBoth2={_tag:"PullBoth"},PullLeft2=(rightChunk)=>({_tag:"PullLet",rightChunk}),PullRight2=(leftChunk)=>({_tag:"PullRight",leftChunk});var StreamSymbolKey="effect/Stream",StreamTypeId2=Symbol.for(StreamSymbolKey),streamVariance={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_};class StreamImpl{channel;[StreamTypeId2]=streamVariance;constructor(channel){this.channel=channel}pipe(){return pipeArguments(this,arguments)}}var isStream=(u)=>hasProperty(u,StreamTypeId2)||isEffect2(u),DefaultChunkSize=4096,accumulate=(self)=>chunks(accumulateChunks(self)),accumulateChunks=(self)=>{let accumulator=(s)=>readWith({onInput:(input)=>{let next4=appendAll2(s,input);return flatMap13(write(next4),()=>accumulator(next4))},onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipeTo(toChannel2(self),accumulator(empty2())))},acquireRelease3=(acquire,release)=>scoped5(acquireRelease2(acquire,release)),aggregate=dual(2,(self,sink)=>aggregateWithin(self,sink,forever4)),aggregateWithin=dual(3,(self,sink,schedule2)=>filterMap6(aggregateWithinEither(self,sink,schedule2),(_)=>match(_,{onLeft:none2,onRight:some2}))),aggregateWithinEither=dual(3,(self,sink,schedule2)=>{let layer=all5([make49(),make24(ScheduleEnd),make24(empty2()),driver2(schedule2),make24(!1),make24(!1)]);return fromEffect7(layer).pipe(flatMap16(([handoff,sinkEndReason,sinkLeftovers,scheduleDriver,consumed,endAfterEmit])=>{let handoffProducer=readWithCause({onInput:(input)=>flatMap13(fromEffect4(pipe(handoff,offer5(emit(input)),when2(()=>isNonEmpty(input)))),()=>handoffProducer),onFailure:(cause3)=>fromEffect4(offer5(handoff,halt(cause3))),onDone:()=>fromEffect4(offer5(handoff,end3(UpstreamEnd)))}),handoffConsumer=pipe(getAndSet2(sinkLeftovers,empty2()),flatMap11((leftovers)=>{if(isNonEmpty(leftovers))return pipe(set5(consumed,!0),zipRight4(succeed9(pipe(write(leftovers),flatMap13(()=>handoffConsumer)))));return pipe(take6(handoff),map16((signal)=>{switch(signal._tag){case OP_EMIT4:return pipe(fromEffect4(set5(consumed,!0)),zipRight6(write(signal.elements)),zipRight6(fromEffect4(get11(endAfterEmit))),flatMap13((bool)=>bool?void_5:handoffConsumer));case OP_HALT:return failCause10(signal.cause);case OP_END:{if(signal.reason._tag===OP_SCHEDULE_END)return pipe(get11(consumed),map16((bool)=>bool?fromEffect4(pipe(set5(sinkEndReason,ScheduleEnd),zipRight4(set5(endAfterEmit,!0)))):pipe(fromEffect4(pipe(set5(sinkEndReason,ScheduleEnd),zipRight4(set5(endAfterEmit,!0)))),flatMap13(()=>handoffConsumer))),unwrap);return pipe(set5(sinkEndReason,signal.reason),zipRight4(set5(endAfterEmit,!0)),fromEffect4)}}}))}),unwrap),timeout3=(lastB)=>scheduleDriver.next(lastB),scheduledAggregator=(sinkFiber,scheduleFiber,scope5)=>{let forkSink=pipe(set5(consumed,!1),zipRight4(set5(endAfterEmit,!1)),zipRight4(pipe(handoffConsumer,pipeToOrFail(toChannel(sink)),collectElements,run3,forkIn2(scope5)))),handleSide=(leftovers,b,c)=>pipe(set5(sinkLeftovers,flatten2(leftovers)),zipRight4(map16(get11(sinkEndReason),(reason)=>{switch(reason._tag){case OP_SCHEDULE_END:return pipe(all5([get11(consumed),forkSink,pipe(timeout3(some2(b)),forkIn2(scope5))]),map16(([wasConsumed,sinkFiber2,scheduleFiber2])=>{let toWrite=pipe(c,match2({onNone:()=>of2(right2(b)),onSome:(c2)=>make4(right2(b),left2(c2))}));if(wasConsumed)return pipe(write(toWrite),flatMap13(()=>scheduledAggregator(sinkFiber2,scheduleFiber2,scope5)));return scheduledAggregator(sinkFiber2,scheduleFiber2,scope5)}),unwrap);case OP_UPSTREAM_END:return pipe(get11(consumed),map16((wasConsumed)=>wasConsumed?write(of2(right2(b))):void_5),unwrap)}})),unwrap);return unwrap(raceWith2(join3(sinkFiber),join3(scheduleFiber),{onSelfDone:(sinkExit,_)=>pipe(interrupt5(scheduleFiber),zipRight4(pipe(suspend3(()=>sinkExit),map16(([leftovers,b])=>handleSide(leftovers,b,none2()))))),onOtherDone:(scheduleExit,_)=>matchCauseEffect3(suspend3(()=>scheduleExit),{onFailure:(cause3)=>match(failureOrCause2(cause3),{onLeft:()=>pipe(handoff,offer5(end3(ScheduleEnd)),forkDaemon2,zipRight4(pipe(join3(sinkFiber),map16(([leftovers,b])=>handleSide(leftovers,b,none2()))))),onRight:(cause4)=>pipe(handoff,offer5(halt(cause4)),forkDaemon2,zipRight4(pipe(join3(sinkFiber),map16(([leftovers,b])=>handleSide(leftovers,b,none2())))))}),onSuccess:(c)=>pipe(handoff,offer5(end3(ScheduleEnd)),forkDaemon2,zipRight4(pipe(join3(sinkFiber),map16(([leftovers,b])=>handleSide(leftovers,b,some2(c))))))})}))};return unwrapScopedWith3((scope5)=>pipeTo(toChannel2(self),handoffProducer).pipe(run3,forkIn2(scope5),zipRight4(pipeToOrFail(handoffConsumer,toChannel(sink)).pipe(collectElements,run3,forkIn2(scope5),flatMap11((sinkFiber)=>timeout3(none2()).pipe(forkIn2(scope5),map16((scheduleFiber)=>new StreamImpl(scheduledAggregator(sinkFiber,scheduleFiber,scope5)))))))))}))}),as8=dual(2,(self,value)=>map22(self,()=>value)),queueFromBufferOptions=(bufferSize)=>{if(bufferSize==="unbounded")return unbounded3();else if(typeof bufferSize==="number"||bufferSize===void 0)return bounded3(bufferSize??16);switch(bufferSize.strategy){case"dropping":return dropping2(bufferSize.bufferSize??16);case"sliding":return sliding2(bufferSize.bufferSize??16);default:return bounded3(bufferSize.bufferSize??16)}},_async=(register,bufferSize)=>acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown2(queue)).pipe(flatMap11((output)=>runtime3().pipe(flatMap11((runtime4)=>sync4(()=>{let runPromiseExit3=runPromiseExit2(runtime4);return register(make48((resume2)=>fromPull(resume2).pipe(flatMap11((take7)=>offer3(output,take7)),asVoid3,runPromiseExit3).then((exit3)=>{if(isFailure3(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}})))})),map16((value)=>{let loop3=take3(output).pipe(flatMap11((take7)=>done10(take7)),match13({onFailure:(maybeError)=>fromEffect4(shutdown2(output)).pipe(zipRight6(match2(maybeError,{onNone:()=>void_5,onSome:(error2)=>fail11(error2)}))),onSuccess:(chunk3)=>write(chunk3).pipe(flatMap13(()=>loop3))}),unwrap);return fromChannel2(loop3).pipe(ensuring7(value??_void))}))),unwrapScoped4),asyncEffect3=(register,bufferSize)=>pipe(acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown2(queue)),flatMap11((output)=>pipe(runtime3(),flatMap11((runtime4)=>pipe(register(make48((k)=>pipe(fromPull(k),flatMap11((take7)=>offer3(output,take7)),asVoid3,runPromiseExit2(runtime4)).then((exit3)=>{if(isFailure3(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}}))),map16(()=>{let loop3=pipe(take3(output),flatMap11(done10),match13({onFailure:(maybeError)=>pipe(fromEffect4(shutdown2(output)),zipRight6(match2(maybeError,{onNone:()=>void_5,onSome:fail11}))),onSuccess:(chunk3)=>pipe(write(chunk3),flatMap13(()=>loop3))}),unwrap);return loop3}))))),unwrapScoped3,fromChannel2),queueFromBufferOptionsPush=(options)=>{if(options?.bufferSize==="unbounded"||options?.bufferSize===void 0&&options?.strategy===void 0)return unbounded3();switch(options?.strategy){case"sliding":return sliding2(options.bufferSize??16);default:return dropping2(options?.bufferSize??16)}},asyncPush=(register,options)=>acquireRelease2(queueFromBufferOptionsPush(options),shutdown2).pipe(tap3((queue)=>getWith(currentScheduler2,(scheduler)=>register(makePush(queue,scheduler)))),map16((queue)=>{let loop3=flatMap13(take3(queue),(item)=>isExit(item)?isSuccess2(item)?void_5:failCause10(item.cause):zipRight6(write(unsafeFromArray(item)),loop3));return loop3}),unwrapScoped3,fromChannel2),asyncScoped=(register,bufferSize)=>pipe(acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown2(queue)),flatMap11((output)=>pipe(runtime3(),flatMap11((runtime4)=>pipe(register(make48((k)=>pipe(fromPull(k),flatMap11((take7)=>offer3(output,take7)),asVoid3,runPromiseExit2(runtime4)).then((exit3)=>{if(isFailure3(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}}))),zipRight4(make24(!1)),flatMap11((ref)=>pipe(get11(ref),map16((isDone7)=>isDone7?end5():pipe(take3(output),flatMap11(done10),onError2(()=>pipe(set5(ref,!0),zipRight4(shutdown2(output)))))))))))),scoped5,flatMap16(repeatEffectChunkOption)),branchAfter=dual(3,(self,n,f)=>suspend9(()=>{let buffering=(acc)=>readWith({onInput:(input)=>{if(acc.length+input.length>=n){let[b1,b2]=pipe(input,splitAt2(n-acc.length));return running4(pipe(acc,appendAll2(b1)),b2)}return buffering(pipe(acc,appendAll2(input)))},onFailure:fail11,onDone:()=>running4(acc,empty2())}),running4=(prefix,leftover)=>pipeTo(zipRight6(write(leftover),identityChannel()),toChannel2(f(prefix)));return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(buffering(empty2()))))})),broadcast=dual(3,(self,n,maximumLag)=>pipe(self,broadcastedQueues(n,maximumLag),map16((tuple2)=>tuple2.map((queue)=>flattenTake(fromQueue2(queue,{shutdown:!0})))))),broadcastDynamic=dual(2,(self,maximumLag)=>map16(toPubSub2(self,maximumLag),(pubsub)=>flattenTake(fromPubSub(pubsub)))),share=dual(2,(self,options)=>map16(make44({acquire:broadcastDynamic(self,options),idleTimeToLive:options.idleTimeToLive}),(rcRef)=>unwrapScoped4(get15(rcRef)))),broadcastedQueues=dual(3,(self,n,maximumLag)=>flatMap11(pubsubFromOptions(maximumLag),(pubsub)=>pipe(all5(Array.from({length:n},()=>subscribe2(pubsub))),tap3(()=>forkScoped2(runIntoPubSubScoped(self,pubsub)))))),broadcastedQueuesDynamic=dual(2,(self,maximumLag)=>map16(toPubSub2(self,maximumLag),subscribe2)),buffer=dual(2,(self,options)=>{if(options.capacity==="unbounded")return bufferUnbounded(self);else if(options.strategy==="dropping")return bufferDropping(self,options.capacity);else if(options.strategy==="sliding")return bufferSliding(self,options.capacity);let queue=toQueueOfElements(self,options);return new StreamImpl(unwrapScoped3(map16(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match9({onFailure:(cause3)=>pipe(flipCauseOption2(cause3),match2({onNone:()=>void_5,onSome:failCause10})),onSuccess:(value)=>flatMap13(write(of2(value)),()=>process2)})));return process2})))}),bufferChunks=dual(2,(self,options)=>{if(options.strategy==="dropping")return bufferChunksDropping(self,options.capacity);else if(options.strategy==="sliding")return bufferChunksSliding(self,options.capacity);let queue=toQueue2(self,options);return new StreamImpl(unwrapScoped3(map16(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match18({onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>pipe(write(value),flatMap13(()=>process2))})));return process2})))}),bufferChunksDropping=dual(2,(self,capacity7)=>{let queue=acquireRelease2(dropping2(capacity7),(queue2)=>shutdown2(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(self)))}),bufferChunksSliding=dual(2,(self,capacity7)=>{let queue=acquireRelease2(sliding2(capacity7),(queue2)=>shutdown2(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(self)))}),bufferDropping=dual(2,(self,capacity7)=>{let queue=acquireRelease2(dropping2(capacity7),(queue2)=>shutdown2(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(rechunk(1)(self))))}),bufferSliding=dual(2,(self,capacity7)=>{let queue=acquireRelease2(sliding2(capacity7),(queue2)=>shutdown2(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(pipe(self,rechunk(1)))))}),bufferUnbounded=(self)=>{let queue=toQueue2(self,{strategy:"unbounded"});return new StreamImpl(unwrapScoped3(map16(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match18({onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>flatMap13(write(value),()=>process2)})));return process2})))},bufferSignal=(scoped5,bufferChannel)=>{let producer=(queue,ref)=>{let terminate=(take7)=>pipe(get11(ref),tap3(_await3),zipRight4(make39()),flatMap11((deferred)=>pipe(offer3(queue,[take7,deferred]),zipRight4(set5(ref,deferred)),zipRight4(_await3(deferred)))),asVoid3,fromEffect4);return readWithCause({onInput:(input)=>pipe(make39(),flatMap11((deferred)=>pipe(offer3(queue,[chunk2(input),deferred]),flatMap11((added)=>pipe(set5(ref,deferred),when2(()=>added))))),asVoid3,fromEffect4,flatMap13(()=>producer(queue,ref))),onFailure:(error2)=>terminate(failCause11(error2)),onDone:()=>terminate(end4)})},consumer=(queue)=>{let process2=pipe(fromEffect4(take3(queue)),flatMap13(([take7,deferred])=>zipRight6(fromEffect4(succeed7(deferred,void 0)),match18(take7,{onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>pipe(write(value),flatMap13(()=>process2))}))));return process2};return unwrapScoped3(pipe(scoped5,flatMap11((queue)=>pipe(make39(),tap3((start3)=>succeed7(start3,void 0)),flatMap11((start3)=>pipe(make24(start3),flatMap11((ref)=>pipe(bufferChannel,pipeTo(producer(queue,ref)),runScoped,forkScoped2)),as4(consumer(queue))))))))},catchAll7=dual(2,(self,f)=>catchAllCause6(self,(cause3)=>match(failureOrCause2(cause3),{onLeft:f,onRight:failCause13}))),catchAllCause6=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),catchAllCause5((cause3)=>toChannel2(f(cause3)))))),catchSome3=dual(2,(self,pf)=>pipe(self,catchAll7((error2)=>pipe(pf(error2),getOrElse(()=>fail15(error2)))))),catchSomeCause3=dual(2,(self,pf)=>pipe(self,catchAllCause6((cause3)=>pipe(pf(cause3),getOrElse(()=>failCause13(cause3)))))),catchTag3=dual(3,(self,k,f)=>catchAll7(self,(e)=>{if("_tag"in e&&e._tag===k)return f(e);return fail15(e)})),catchTags3=dual(2,(self,cases)=>catchAll7(self,(e)=>{let keys3=Object.keys(cases);if("_tag"in e&&keys3.includes(e._tag))return cases[e._tag](e);return fail15(e)})),changes=(self)=>pipe(self,changesWith((x,y)=>equals(y)(x))),changesWith=dual(2,(self,f)=>{let writer=(last4)=>readWithCause({onInput:(input)=>{let[newLast,newChunk]=reduce2(input,[last4,empty2()],([option3,outputs],output)=>{if(isSome2(option3)&&f(option3.value,output))return[some2(output),outputs];return[some2(output),pipe(outputs,append2(output))]});return flatMap13(write(newChunk),()=>writer(newLast))},onFailure:failCause10,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(writer(none2()))))}),changesWithEffect=dual(2,(self,f)=>{let writer=(last4)=>readWithCause({onInput:(input)=>pipe(input,reduce11([last4,empty2()],([option3,outputs],output)=>{if(isSome2(option3))return pipe(f(option3.value,output),map16((bool)=>bool?[some2(output),outputs]:[some2(output),pipe(outputs,append2(output))]));return succeed9([some2(output),pipe(outputs,append2(output))])}),fromEffect4,flatMap13(([newLast,newChunk])=>pipe(write(newChunk),flatMap13(()=>writer(newLast))))),onFailure:failCause10,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(writer(none2()))))}),chunks=(self)=>pipe(self,mapChunks(of2)),chunksWith=dual(2,(self,f)=>flattenChunks(f(chunks(self)))),unsome=(effect4)=>catchAll3(asSome2(effect4),(o)=>o._tag==="None"?succeedNone2:fail9(o.value)),combine9=dual(4,(self,that,s,f)=>{function producer(handoff,latch){return fromEffect4(take6(latch)).pipe(zipRight6(readWithCause({onInput:(input)=>flatMap13(fromEffect4(offer5(handoff,succeed3(input))),()=>producer(handoff,latch)),onFailure:(cause3)=>fromEffect4(offer5(handoff,failCause3(pipe(cause3,map11(some2))))),onDone:()=>flatMap13(fromEffect4(offer5(handoff,fail4(none2()))),()=>producer(handoff,latch))})))}return new StreamImpl(unwrapScopedWith((scope5)=>all5([make49(),make49(),make49(),make49()]).pipe(tap3(([left3,_,latchL])=>toChannel2(self).pipe(concatMap(writeChunk),pipeTo(producer(left3,latchL)),runIn(scope5),forkIn2(scope5))),tap3(([,right3,_,rightL])=>toChannel2(that).pipe(concatMap(writeChunk),pipeTo(producer(right3,rightL)),runIn(scope5),forkIn2(scope5))),map16(([left3,right3,latchL,latchR])=>{let pullLeft=offer5(latchL,void 0).pipe(zipRight4(take6(left3).pipe(flatMap11(identity)))),pullRight=offer5(latchR,void 0).pipe(zipRight4(take6(right3).pipe(flatMap11(identity))));return toChannel2(unfoldEffect(s,(s2)=>flatMap11(f(s2,pullLeft,pullRight),unsome)))}))))}),combineChunks=dual(4,(self,that,s,f)=>{let producer=(handoff,latch)=>zipRight6(fromEffect4(take6(latch)),readWithCause({onInput:(input)=>flatMap13(fromEffect4(pipe(handoff,offer5(chunk2(input)))),()=>producer(handoff,latch)),onFailure:(cause3)=>fromEffect4(offer5(handoff,failCause11(cause3))),onDone:()=>fromEffect4(offer5(handoff,end4))}));return new StreamImpl(unwrapScopedWith((scope5)=>all5([make49(),make49(),make49(),make49()]).pipe(tap3(([left3,_,latchL])=>pipeTo(toChannel2(self),producer(left3,latchL)).pipe(runIn(scope5),forkIn2(scope5))),tap3(([_,right3,__,latchR])=>pipeTo(toChannel2(that),producer(right3,latchR)).pipe(runIn(scope5),forkIn2(scope5))),map16(([left3,right3,latchL,latchR])=>{let pullLeft=offer5(latchL,void 0).pipe(zipRight4(take6(left3).pipe(flatMap11(done10)))),pullRight=offer5(latchR,void 0).pipe(zipRight4(take6(right3).pipe(flatMap11(done10))));return toChannel2(unfoldChunkEffect(s,(s2)=>flatMap11(f(s2,pullLeft,pullRight),unsome)))}))))}),concat2=dual(2,(self,that)=>new StreamImpl(pipe(toChannel2(self),zipRight6(toChannel2(that))))),concatAll2=(streams)=>suspend9(()=>pipe(streams,reduce2(empty29,(x,y)=>concat2(y)(x)))),cross=dual(2,(left3,right3)=>pipe(left3,crossWith(right3,(a,a2)=>[a,a2]))),crossLeft=dual(2,(left3,right3)=>pipe(left3,crossWith(right3,(a,_)=>a))),crossRight=dual(2,(left3,right3)=>flatMap16(left3,()=>right3)),crossWith=dual(3,(left3,right3,f)=>pipe(left3,flatMap16((a)=>pipe(right3,map22((b)=>f(a,b)))))),debounce=dual(2,(self,duration3)=>unwrapScopedWith3((scope5)=>gen2(function*(){let handoff=yield*make49();function enqueue(last4){return sleep2(duration3).pipe(as4(last4),forkIn2(scope5),map16((fiber)=>consumer(previous(fiber))))}let producer=readWithCause({onInput:(input)=>match2(last2(input),{onNone:()=>producer,onSome:(elem)=>fromEffect4(offer5(handoff,emit(of2(elem)))).pipe(flatMap13(()=>producer))}),onFailure:(cause3)=>fromEffect4(offer5(handoff,halt(cause3))),onDone:()=>fromEffect4(offer5(handoff,end3(UpstreamEnd)))});function consumer(state){switch(state._tag){case OP_NOT_STARTED:return unwrap(take6(handoff).pipe(map16((signal)=>{switch(signal._tag){case OP_EMIT4:return unwrap(enqueue(signal.elements));case OP_HALT:return failCause10(signal.cause);case OP_END:return void_5}})));case OP_PREVIOUS:return unwrap(take6(handoff).pipe(forkIn2(scope5),flatMap11((handoffFiber)=>raceWith2(join3(state.fiber),join3(handoffFiber),{onSelfDone:(leftExit,current2)=>match9(leftExit,{onFailure:(cause3)=>interrupt5(current2).pipe(as4(failCause10(cause3))),onSuccess:(chunk3)=>interrupt5(current2).pipe(zipRight4(succeed9(write(chunk3).pipe(flatMap13(()=>consumer(current(handoffFiber)))))))}),onOtherDone:(rightExit,previous2)=>match9(rightExit,{onFailure:(cause3)=>interrupt5(previous2).pipe(as4(failCause10(cause3))),onSuccess:(signal)=>{switch(signal._tag){case OP_EMIT4:return interrupt5(previous2).pipe(zipRight4(enqueue(signal.elements)));case OP_HALT:return interrupt5(previous2).pipe(as4(failCause10(signal.cause)));case OP_END:return join3(previous2).pipe(map16((chunk3)=>write(chunk3).pipe(zipRight6(void_5))))}}})}))));case OP_CURRENT:return unwrap(join3(state.fiber).pipe(map16((signal)=>{switch(signal._tag){case OP_EMIT4:return unwrap(enqueue(signal.elements));case OP_HALT:return failCause10(signal.cause);case OP_END:return void_5}})))}}return scopedWith4((scope6)=>pipeTo(toChannel2(self),producer).pipe(runIn(scope6),forkIn2(scope6))).pipe(crossRight(new StreamImpl(consumer(notStarted))))}))),die10=(defect)=>fromEffect7(die6(defect)),dieSync6=(evaluate2)=>fromEffect7(dieSync3(evaluate2)),dieMessage4=(message)=>fromEffect7(dieMessage2(message)),distributedWith=dual(2,(self,options)=>pipe(make39(),flatMap11((deferred)=>pipe(self,distributedWithDynamic({maximumLag:options.maximumLag,decide:(a)=>flatMap11(_await3(deferred),(f)=>f(a))}),flatMap11((next4)=>pipe(all5(map4(range(0,options.size-1),(id2)=>map16(next4,([key,queue])=>[[key,id2],queue]))),map16(unsafeFromArray),flatMap11((entries2)=>{let[mappings,queues]=reduceRight2(entries2,[new Map,empty2()],([mappings2,queues2],[mapping,queue])=>[mappings2.set(mapping[0],mapping[1]),pipe(queues2,prepend2(queue))]);return pipe(succeed7(deferred,(a)=>map16(options.decide(a),(f)=>(key)=>f(mappings.get(key)))),as4(Array.from(queues)))}))))))),distributedWithDynamicId={ref:0},newDistributedWithDynamicId=()=>{let current2=distributedWithDynamicId.ref;return distributedWithDynamicId.ref=current2+1,current2},distributedWithDynamic=dual(2,(self,options)=>distributedWithDynamicCallback(self,options.maximumLag,options.decide,()=>_void)),distributedWithDynamicCallback=dual(4,(self,maximumLag,decide,done11)=>pipe(acquireRelease2(make24(new Map),(ref,_)=>pipe(get11(ref),flatMap11((queues)=>pipe(queues.values(),forEach6(shutdown2))))),flatMap11((queuesRef)=>gen2(function*(){let offer6=(a)=>pipe(decide(a),flatMap11((shouldProcess)=>pipe(get11(queuesRef),flatMap11((queues)=>pipe(queues.entries(),reduce11(empty2(),(acc,[id2,queue])=>{if(shouldProcess(id2))return pipe(offer3(queue,succeed3(a)),matchCauseEffect3({onFailure:(cause3)=>isInterrupted2(cause3)?succeed9(pipe(acc,prepend2(id2))):failCause8(cause3),onSuccess:()=>succeed9(acc)}));return succeed9(acc)}),flatMap11((ids3)=>{if(isNonEmpty(ids3))return update3(queuesRef,(map22)=>{for(let id2 of ids3)map22.delete(id2);return map22});return _void}))))),asVoid3),queuesLock=yield*makeSemaphore2(1),newQueue=yield*make24(pipe(bounded3(maximumLag),flatMap11((queue)=>{let id2=newDistributedWithDynamicId();return pipe(update3(queuesRef,(map22)=>map22.set(id2,queue)),as4([id2,queue]))}))),finalize=(endTake)=>queuesLock.withPermits(1)(pipe(set5(newQueue,pipe(bounded3(1),tap3((queue)=>offer3(queue,endTake)),flatMap11((queue)=>{let id2=newDistributedWithDynamicId();return pipe(update3(queuesRef,(map22)=>map22.set(id2,queue)),as4(make3(id2,queue)))}))),zipRight4(pipe(get11(queuesRef),flatMap11((map22)=>pipe(fromIterable2(map22.values()),forEach6((queue)=>pipe(offer3(queue,endTake),catchSomeCause2((cause3)=>isInterrupted2(cause3)?some2(_void):none2()))))))),zipRight4(done11(endTake)),asVoid3));return yield*pipe(self,runForEachScoped(offer6),matchCauseEffect3({onFailure:(cause3)=>finalize(failCause3(pipe(cause3,map11(some2)))),onSuccess:()=>finalize(fail4(none2()))}),forkScoped2),queuesLock.withPermits(1)(flatten8(get11(newQueue)))})))),drain3=(self)=>new StreamImpl(drain(toChannel2(self))),drainFork=dual(2,(self,that)=>fromEffect7(make39()).pipe(flatMap16((backgroundDied)=>scopedWith4((scope5)=>toChannel2(that).pipe(drain,runIn(scope5),catchAllCause3((cause3)=>failCause6(backgroundDied,cause3)),forkIn2(scope5))).pipe(crossRight(interruptWhenDeferred2(self,backgroundDied)))))),drop3=dual(2,(self,n)=>{let loop3=(r)=>readWith({onInput:(input)=>{let dropped=pipe(input,drop2(r)),leftover=Math.max(0,r-input.length);if(isEmpty(input)||leftover>0)return loop3(leftover);return pipe(write(dropped),zipRight6(identityChannel()))},onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3(n))))}),dropRight=dual(2,(self,n)=>{if(n<=0)return identityStream();return suspend9(()=>{let queue=new RingBuffer(n),reader=readWith({onInput:(input)=>{let outputs=pipe(input,filterMap2((elem)=>{let head6=queue.head();return queue.put(elem),head6}));return pipe(write(outputs),flatMap13(()=>reader))},onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(reader)))})}),dropUntil3=dual(2,(self,predicate)=>drop3(dropWhile4(self,(a)=>!predicate(a)),1)),dropUntilEffect=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>pipe(dropUntil2(input,predicate),map16(unsafeFromArray),map16((leftover)=>{if(isEmpty(leftover))return suspend5(()=>loop3);return pipe(write(leftover),zipRight6(identityChannel()))}),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),dropWhile4=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>{let output=dropWhile(input,predicate);if(isEmpty(output))return suspend5(()=>loop3);return zipRight6(write(output),identityChannel())},onFailure:fail11,onDone:succeedNow});return new StreamImpl(pipeToOrFail(toChannel2(self),loop3))}),dropWhileEffect=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>pipe(dropWhile3(input,predicate),map16(unsafeFromArray),map16((leftover)=>{if(isEmpty(leftover))return suspend5(()=>loop3);return zipRight6(write(leftover),identityChannel())}),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipeToOrFail(toChannel2(self),loop3))}),either6=(self)=>pipe(self,map22(right2),catchAll7((error2)=>make50(left2(error2)))),empty29=new StreamImpl(void_5),ensuring7=dual(2,(self,finalizer)=>new StreamImpl(pipe(toChannel2(self),ensuring5(finalizer)))),ensuringWith2=dual(2,(self,finalizer)=>new StreamImpl(ensuringWith(toChannel2(self),finalizer))),context5=()=>fromEffect7(context3()),contextWith3=(f)=>pipe(context5(),map22(f)),contextWithEffect3=(f)=>pipe(context5(),mapEffectSequential(f)),contextWithStream=(f)=>pipe(context5(),flatMap16(f)),execute=(effect4)=>drain3(fromEffect7(effect4)),fail15=(error2)=>fromEffectOption(fail9(some2(error2))),failSync7=(evaluate2)=>fromEffectOption(failSync3(()=>some2(evaluate2()))),failCause13=(cause3)=>fromEffect7(failCause8(cause3)),failCauseSync6=(evaluate2)=>fromEffect7(failCauseSync3(evaluate2)),filter8=dual(2,(self,predicate)=>mapChunks(self,filter2(predicate))),filterEffect=dual(2,(self,f)=>{let loop3=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed12});else return pipe(f(next4.value),map16((bool)=>bool?pipe(write(of2(next4.value)),flatMap13(()=>loop3(iterator))):loop3(iterator)),unwrap)};return new StreamImpl(suspend5(()=>pipe(toChannel2(self),pipeTo(loop3(empty2()[Symbol.iterator]())))))}),filterMap6=dual(2,(self,pf)=>mapChunks(self,filterMap2(pf))),filterMapEffect=dual(2,(self,pf)=>suspend9(()=>{let loop3=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed12});else return pipe(pf(next4.value),match2({onNone:()=>sync4(()=>loop3(iterator)),onSome:map16((a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator)))}),unwrap)};return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty2()[Symbol.iterator]()))))})),filterMapWhile3=dual(2,(self,pf)=>{let loop3=readWith({onInput:(input)=>{let mapped=filterMapWhile2(input,pf);if(mapped.length===input.length)return pipe(write(mapped),flatMap13(()=>loop3));return write(mapped)},onFailure:fail11,onDone:succeed12});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),filterMapWhileEffect=dual(2,(self,pf)=>suspend9(()=>{let loop3=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed12});else return unwrap(match2(pf(next4.value),{onNone:()=>succeed9(void_5),onSome:map16((a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator)))}))};return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3(empty2()[Symbol.iterator]()))))})),finalizer=(finalizer2)=>acquireRelease3(_void,()=>finalizer2),find2=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>match2(findFirst3(input,predicate),{onNone:()=>loop3,onSome:(n)=>write(of2(n))}),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3)))}),findEffect=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>pipe(findFirst6(input,predicate),map16(match2({onNone:()=>loop3,onSome:(n)=>write(of2(n))})),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3)))}),flatMap16=dual((args2)=>isStream(args2[0]),(self,f,options)=>{let bufferSize=options?.bufferSize??16;if(options?.switch)return matchConcurrency(options?.concurrency,()=>flatMapParSwitchBuffer(self,1,bufferSize,f),(n)=>flatMapParSwitchBuffer(self,n,bufferSize,f));return matchConcurrency(options?.concurrency,()=>new StreamImpl(concatMap(toChannel2(self),(as9)=>pipe(as9,map4((a)=>toChannel2(f(a))),reduce2(void_5,(left3,right3)=>pipe(left3,zipRight6(right3)))))),(_)=>new StreamImpl(pipe(toChannel2(self),concatMap(writeChunk),mergeMap((out)=>toChannel2(f(out)),options))))}),matchConcurrency=(concurrency,sequential4,bounded8)=>{switch(concurrency){case void 0:return sequential4();case"unbounded":return bounded8(Number.MAX_SAFE_INTEGER);default:return concurrency>1?bounded8(concurrency):sequential4()}},flatMapParSwitchBuffer=dual(4,(self,n,bufferSize,f)=>new StreamImpl(pipe(toChannel2(self),concatMap(writeChunk),mergeMap((out)=>toChannel2(f(out)),{concurrency:n,mergeStrategy:BufferSliding(),bufferSize})))),flatten12=dual((args2)=>isStream(args2[0]),(self,options)=>flatMap16(self,identity,options)),flattenChunks=(self)=>{let flatten13=readWithCause({onInput:(chunks2)=>flatMap13(writeChunk(chunks2),()=>flatten13),onFailure:failCause10,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(flatten13)))},flattenEffect=dual((args2)=>isStream(args2[0]),(self,options)=>options?.unordered?flatMap16(self,(a)=>fromEffect7(a),{concurrency:options.concurrency}):matchConcurrency(options?.concurrency,()=>mapEffectSequential(self,identity),(n)=>new StreamImpl(pipe(toChannel2(self),concatMap(writeChunk),mapOutEffectPar(identity,n),mapOut(of2))))),flattenExitOption=(self)=>{let processChunk=(chunk3,cont)=>{let[toEmit,rest]=pipe(chunk3,splitWhere((exit3)=>!isSuccess2(exit3))),next4=pipe(head2(rest),match2({onNone:()=>cont,onSome:match9({onFailure:(cause3)=>match2(flipCauseOption2(cause3),{onNone:()=>void_5,onSome:failCause10}),onSuccess:()=>void_5})}));return pipe(write(pipe(toEmit,filterMap2((exit3)=>isSuccess2(exit3)?some2(exit3.value):none2()))),flatMap13(()=>next4))},process2=readWithCause({onInput:(chunk3)=>processChunk(chunk3,process2),onFailure:(cause3)=>failCause10(cause3),onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(process2)))},flattenIterables=(self)=>pipe(self,map22(fromIterable2),flattenChunks),flattenTake=(self)=>flattenChunks(flattenExitOption(pipe(self,map22((take7)=>take7.exit)))),forever5=(self)=>new StreamImpl(repeated(toChannel2(self))),fromAsyncIterable=(iterable,onError3)=>pipe(acquireRelease2(sync4(()=>iterable[Symbol.asyncIterator]()),(iterator)=>iterator.return?promise2(async()=>iterator.return()):_void),map16((iterator)=>repeatEffectOption(pipe(tryPromise2({try:async()=>iterator.next(),catch:(reason)=>some2(onError3(reason))}),flatMap11((result)=>result.done?fail9(none2()):succeed9(result.value))))),unwrapScoped4),fromChannel2=(channel)=>new StreamImpl(channel),toChannel2=(stream)=>{if("channel"in stream)return stream.channel;else if(isEffect2(stream))return toChannel2(fromEffect7(stream));else throw TypeError("Expected a Stream.")},fromChunk=(chunk3)=>new StreamImpl(isEmpty(chunk3)?void_5:write(chunk3)),fromChunkPubSub=(pubsub,options)=>{if(options?.scoped){let effect4=map16(subscribe2(pubsub),fromChunkQueue);return options.shutdown?map16(effect4,ensuring7(shutdown4(pubsub))):effect4}let stream=flatMap16(scoped5(subscribe2(pubsub)),fromChunkQueue);return options?.shutdown?ensuring7(stream,shutdown4(pubsub)):stream},fromChunkQueue=(queue,options)=>pipe(take3(queue),catchAllCause3((cause3)=>pipe(isShutdown2(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption,options?.shutdown?ensuring7(shutdown2(queue)):identity),fromChunks=(...chunks2)=>pipe(fromIterable9(chunks2),flatMap16(fromChunk)),fromEffect7=(effect4)=>pipe(effect4,mapError3(some2),fromEffectOption),fromEffectOption=(effect4)=>new StreamImpl(unwrap(match13(effect4,{onFailure:match2({onNone:()=>void_5,onSome:fail11}),onSuccess:(a)=>write(of2(a))}))),fromPubSub=(pubsub,options)=>{let maxChunkSize=options?.maxChunkSize??DefaultChunkSize;if(options?.scoped){let effect4=map16(subscribe2(pubsub),(queue)=>fromQueue2(queue,{maxChunkSize,shutdown:!0}));return options.shutdown?map16(effect4,ensuring7(shutdown4(pubsub))):effect4}let stream=flatMap16(scoped5(subscribe2(pubsub)),(queue)=>fromQueue2(queue,{maxChunkSize}));return options?.shutdown?ensuring7(stream,shutdown4(pubsub)):stream},fromTPubSub=(pubsub)=>{return unwrapScoped4(map16(subscribeScoped2(pubsub),(queue)=>fromTQueue(queue)))},fromIterable9=(iterable)=>suspend9(()=>isChunk(iterable)?fromChunk(iterable):fromIteratorSucceed(iterable[Symbol.iterator]())),fromIterableEffect=(effect4)=>pipe(effect4,map16(fromIterable9),unwrap2),fromIteratorSucceed=(iterator,maxChunkSize=DefaultChunkSize)=>{return pipe(sync4(()=>{let builder=[],loop3=(iterator2)=>pipe(sync4(()=>{let next4=iterator2.next();if(maxChunkSize===1){if(next4.done)return void_5;return pipe(write(of2(next4.value)),flatMap13(()=>loop3(iterator2)))}builder=[];let count5=0;while(next4.done===!1){if(builder.push(next4.value),count5=count5+1,count5>=maxChunkSize)break;next4=iterator2.next()}if(count5>0)return pipe(write(unsafeFromArray(builder)),flatMap13(()=>loop3(iterator2)));return void_5}),unwrap);return new StreamImpl(loop3(iterator))}),unwrap2)},fromPull2=(effect4)=>pipe(effect4,map16(repeatEffectChunkOption),unwrapScoped4),fromQueue2=(queue,options)=>pipe(takeBetween2(queue,1,options?.maxChunkSize??DefaultChunkSize),catchAllCause3((cause3)=>pipe(isShutdown2(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption,options?.shutdown?ensuring7(shutdown2(queue)):identity),fromTQueue=(queue)=>pipe(take5(queue),map16(of2),catchAllCause3((cause3)=>pipe(isShutdown6(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption),fromSchedule=(schedule2)=>pipe(driver2(schedule2),map16((driver3)=>repeatEffectOption(driver3.next(void 0))),unwrap2),fromReadableStream=(...args2)=>{let evaluate2=args2.length===1?args2[0].evaluate:args2[0],onError3=args2.length===1?args2[0].onError:args2[1],releaseLockOnEnd=args2.length===1?args2[0].releaseLockOnEnd===!0:!1;return unwrapScoped4(map16(acquireRelease2(sync4(()=>evaluate2().getReader()),(reader)=>releaseLockOnEnd?sync4(()=>reader.releaseLock()):promise2(()=>reader.cancel())),(reader)=>repeatEffectOption(flatMap11(tryPromise2({try:()=>reader.read(),catch:(reason)=>some2(onError3(reason))}),({done:done11,value})=>done11?fail9(none2()):succeed9(value)))))},fromReadableStreamByob=(...args2)=>{let evaluate2=args2.length===1?args2[0].evaluate:args2[0],onError3=args2.length===1?args2[0].onError:args2[1],allocSize=(args2.length===1?args2[0].bufferSize:args2[2])??4096,releaseLockOnEnd=args2.length===1?args2[0].releaseLockOnEnd===!0:!1;return unwrapScoped4(map16(acquireRelease2(sync4(()=>evaluate2().getReader({mode:"byob"})),(reader)=>releaseLockOnEnd?sync4(()=>reader.releaseLock()):promise2(()=>reader.cancel())),(reader)=>catchAll7(forever5(readChunkStreamByobReader(reader,onError3,allocSize)),(error2)=>error2===EOF?empty29:fail15(error2))))},EOF=Symbol.for("effect/Stream/EOF"),readChunkStreamByobReader=(reader,onError3,size14)=>{let buffer2=new ArrayBuffer(size14);return paginateEffect(0,(offset)=>flatMap11(tryPromise2({try:()=>reader.read(new Uint8Array(buffer2,offset,buffer2.byteLength-offset)),catch:(reason)=>onError3(reason)}),({done:done11,value})=>{if(done11)return fail9(EOF);let newOffset=offset+value.byteLength;return succeed9([value,newOffset>=buffer2.byteLength?none2():some2(newOffset)])}))},groupAdjacentBy=dual(2,(self,f)=>{let groupAdjacentByChunk=(state,chunk3)=>{if(isEmpty(chunk3))return[state,empty2()];let builder=[],from=0,until=0,key=void 0,previousChunk=empty2();switch(state._tag){case"Some":{let tuple2=state.value;key=tuple2[0];let loop3=!0;while(loop3&&until<chunk3.length){let input=unsafeGet2(chunk3,until),updatedKey=f(input);if(!equals(key,updatedKey)){let previousChunk2=tuple2[1],additionalChunk=unsafeFromArray(Array.from(chunk3).slice(from,until)),group2=appendAll2(previousChunk2,additionalChunk);builder.push([key,group2]),key=updatedKey,from=until,loop3=!1}until=until+1}if(loop3)previousChunk=tuple2[1];break}case"None":{key=f(unsafeGet2(chunk3,until)),until=until+1;break}}while(until<chunk3.length){let input=unsafeGet2(chunk3,until),updatedKey=f(input);if(!equals(key,updatedKey))builder.push([key,unsafeFromArray(Array.from(chunk3).slice(from,until))]),key=updatedKey,from=until;until=until+1}let nonEmptyChunk=appendAll2(previousChunk,unsafeFromArray(Array.from(chunk3).slice(from,until))),output=unsafeFromArray(builder);return[some2([key,nonEmptyChunk]),output]},groupAdjacent=(state)=>readWithCause({onInput:(input)=>{let[updatedState,output]=groupAdjacentByChunk(state,input);return isEmpty(output)?groupAdjacent(updatedState):flatMap13(write(output),()=>groupAdjacent(updatedState))},onFailure:(cause3)=>match2(state,{onNone:()=>failCause10(cause3),onSome:(output)=>flatMap13(write(of2(output)),()=>failCause10(cause3))}),onDone:(done11)=>match2(state,{onNone:()=>succeedNow(done11),onSome:(output)=>flatMap13(write(of2(output)),()=>succeedNow(done11))})});return new StreamImpl(pipeToOrFail(toChannel2(self),groupAdjacent(none2())))}),grouped=dual(2,(self,chunkSize)=>pipe(self,rechunk(chunkSize),chunks)),groupedWithin=dual(3,(self,chunkSize,duration3)=>aggregateWithin(self,collectAllN(chunkSize),spaced2(duration3))),haltWhen=dual(2,(self,effect4)=>{let writer=(fiber)=>pipe(poll2(fiber),map16(match2({onNone:()=>readWith({onInput:(input)=>flatMap13(write(input),()=>writer(fiber)),onFailure:fail11,onDone:()=>void_5}),onSome:match9({onFailure:failCause10,onSuccess:()=>void_5})})),unwrap);return new StreamImpl(unwrapScopedWith((scope5)=>effect4.pipe(forkIn2(scope5),map16((fiber)=>toChannel2(self).pipe(pipeTo(writer(fiber)))))))}),haltAfter=dual(2,(self,duration3)=>pipe(self,haltWhen(sleep2(duration3)))),haltWhenDeferred=dual(2,(self,deferred)=>{let writer=pipe(poll3(deferred),map16(match2({onNone:()=>readWith({onInput:(input)=>pipe(write(input),flatMap13(()=>writer)),onFailure:fail11,onDone:()=>void_5}),onSome:(effect4)=>unwrap(match13(effect4,{onFailure:fail11,onSuccess:()=>void_5}))})),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeTo(writer)))}),identityStream=()=>new StreamImpl(identityChannel()),interleave=dual(2,(self,that)=>pipe(self,interleaveWith(that,forever5(make50(!0,!1))))),interleaveWith=dual(3,(self,that,decider)=>{let producer=(handoff)=>readWithCause({onInput:(value)=>flatMap13(fromEffect4(offer5(handoff,of5(value))),()=>producer(handoff)),onFailure:(cause3)=>fromEffect4(offer5(handoff,failCause11(cause3))),onDone:()=>fromEffect4(offer5(handoff,end4))});return new StreamImpl(unwrapScopedWith((scope5)=>pipe(make49(),zip5(make49()),tap3(([left3])=>toChannel2(self).pipe(concatMap(writeChunk),pipeTo(producer(left3)),runIn(scope5),forkIn2(scope5))),tap3(([_,right3])=>toChannel2(that).pipe(concatMap(writeChunk),pipeTo(producer(right3)),runIn(scope5),forkIn2(scope5))),map16(([left3,right3])=>{let process2=(leftDone,rightDone)=>readWithCause({onInput:(bool)=>{if(bool&&!leftDone)return pipe(fromEffect4(take6(left3)),flatMap13(match18({onEnd:()=>rightDone?void_5:process2(!0,rightDone),onFailure:failCause10,onSuccess:(chunk3)=>pipe(write(chunk3),flatMap13(()=>process2(leftDone,rightDone)))})));if(!bool&&!rightDone)return pipe(fromEffect4(take6(right3)),flatMap13(match18({onEnd:()=>leftDone?void_5:process2(leftDone,!0),onFailure:failCause10,onSuccess:(chunk3)=>pipe(write(chunk3),flatMap13(()=>process2(leftDone,rightDone)))})));return process2(leftDone,rightDone)},onFailure:failCause10,onDone:()=>void_5});return pipe(toChannel2(decider),concatMap(writeChunk),pipeTo(process2(!1,!1)))}))))}),intersperse=dual(2,(self,element)=>new StreamImpl(pipe(toChannel2(self),pipeToOrFail(suspend5(()=>{let writer=(isFirst)=>readWithCause({onInput:(chunk3)=>{let builder=[],flagResult=isFirst;for(let output of chunk3)if(flagResult)flagResult=!1,builder.push(output);else builder.push(element),builder.push(output);return pipe(write(unsafeFromArray(builder)),flatMap13(()=>writer(flagResult)))},onFailure:failCause10,onDone:()=>void_5});return writer(!0)}))))),intersperseAffixes=dual(2,(self,{end:end6,middle,start:start3})=>pipe(make50(start3),concat2(pipe(self,intersperse(middle))),concat2(make50(end6)))),interruptAfter=dual(2,(self,duration3)=>pipe(self,interruptWhen2(sleep2(duration3)))),interruptWhen2=dual(2,(self,effect4)=>new StreamImpl(pipe(toChannel2(self),interruptWhen(effect4)))),interruptWhenDeferred2=dual(2,(self,deferred)=>new StreamImpl(pipe(toChannel2(self),interruptWhenDeferred(deferred)))),iterate3=(value,next4)=>unfold4(value,(a)=>some2([a,next4(a)])),make50=(...as9)=>fromIterable9(as9),map22=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapOut(map4(f))))),mapAccum5=dual(3,(self,s,f)=>{let accumulator=(s2)=>readWith({onInput:(input)=>{let[nextS,chunk3]=mapAccum2(input,s2,f);return flatMap13(write(chunk3),()=>accumulator(nextS))},onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeTo(accumulator(s))))}),mapAccumEffect=dual(3,(self,s,f)=>suspend9(()=>{let accumulator=(s2)=>readWith({onInput:(input)=>pipe(suspend3(()=>{let outputs=[],emit2=(output)=>sync4(()=>{outputs.push(output)});return pipe(input,reduce11(s2,(s3,a)=>pipe(f(s3,a),flatMap11(([s4,a2])=>pipe(emit2(a2),as4(s4))))),match13({onFailure:(error2)=>{if(outputs.length!==0)return zipRight6(write(unsafeFromArray(outputs)),fail11(error2));return fail11(error2)},onSuccess:(s3)=>flatMap13(write(unsafeFromArray(outputs)),()=>accumulator(s3))}))}),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(accumulator(s))))})),mapBoth6=dual(2,(self,options)=>pipe(self,mapError6(options.onFailure),map22(options.onSuccess))),mapChunks=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapOut(f)))),mapChunksEffect=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapOutEffect(f)))),mapConcat=dual(2,(self,f)=>pipe(self,mapConcatChunk((a)=>fromIterable2(f(a))))),mapConcatChunk=dual(2,(self,f)=>pipe(self,mapChunks(flatMap3(f)))),mapConcatChunkEffect=dual(2,(self,f)=>pipe(self,mapEffectSequential(f),mapConcatChunk(identity))),mapConcatEffect=dual(2,(self,f)=>pipe(self,mapEffectSequential((a)=>pipe(f(a),map16(fromIterable2))),mapConcatChunk(identity))),mapEffectSequential=dual(2,(self,f)=>{let loop3=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(elem)=>loop3(elem[Symbol.iterator]()),onFailure:failCause10,onDone:succeed12});else{let value=next4.value;return unwrap(map16(f(value),(a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator))))}};return new StreamImpl(pipe(toChannel2(self),pipeTo(suspend5(()=>loop3(empty2()[Symbol.iterator]())))))}),mapEffectPar=dual(3,(self,n,f)=>new StreamImpl(pipe(toChannel2(self),concatMap(writeChunk),mapOutEffectPar(f,n),mapOut(of2)))),mapError6=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapError5(f)))),mapErrorCause4=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapErrorCause3(f)))),merge9=dual((args2)=>isStream(args2[1]),(self,that,options)=>mergeWith3(self,that,{onSelf:identity,onOther:identity,haltStrategy:options?.haltStrategy})),mergeAll8=dual((args2)=>(Symbol.iterator in args2[0]),(streams,options)=>flatten12(fromIterable9(streams),options)),mergeWithTag=dual(2,(streams,options)=>{let values3=Object.keys(streams).map((key)=>streams[key].pipe(map22((value)=>({_tag:key,value}))));return mergeAll8(values3,options)}),mergeEither=dual(2,(self,that)=>mergeWith3(self,that,{onSelf:left2,onOther:right2})),mergeLeft=dual(2,(left3,right3)=>pipe(left3,merge9(drain3(right3)))),mergeRight=dual(2,(left3,right3)=>pipe(drain3(left3),merge9(right3))),mergeWith3=dual(3,(self,other,options)=>{let strategy=options.haltStrategy?fromInput2(options.haltStrategy):Both2,handler=(terminate)=>(exit3)=>terminate||!isSuccess2(exit3)?Done4(suspend3(()=>exit3)):Await2((exit4)=>suspend3(()=>exit4));return new StreamImpl(mergeWith2(toChannel2(map22(self,options.onSelf)),{other:toChannel2(map22(other,options.onOther)),onSelfDone:handler(strategy._tag==="Either"||strategy._tag==="Left"),onOtherDone:handler(strategy._tag==="Either"||strategy._tag==="Right")}))}),mkString2=(self)=>run4(self,mkString),never4=fromEffect7(never3),onEnd=dual(2,(self,effect4)=>concat2(self,drain3(fromEffect7(effect4)))),onError3=dual(2,(self,cleanup)=>pipe(self,catchAllCause6((cause3)=>fromEffect7(pipe(cleanup(cause3),zipRight4(failCause8(cause3))))))),onDone=dual(2,(self,cleanup)=>new StreamImpl(pipe(toChannel2(self),ensuringWith((exit3)=>isSuccess2(exit3)?cleanup():_void)))),onStart=dual(2,(self,effect4)=>unwrap2(as4(effect4,self))),orDie5=(self)=>pipe(self,orDieWith4(identity)),orDieWith4=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),orDieWith3(f)))),orElse8=dual(2,(self,that)=>new StreamImpl(pipe(toChannel2(self),orElse7(()=>toChannel2(that()))))),orElseEither3=dual(2,(self,that)=>pipe(self,map22(left2),orElse8(()=>pipe(that(),map22(right2))))),orElseFail3=dual(2,(self,error2)=>pipe(self,orElse8(()=>failSync7(error2)))),orElseIfEmpty=dual(2,(self,element)=>pipe(self,orElseIfEmptyChunk(()=>of2(element())))),orElseIfEmptyChunk=dual(2,(self,chunk3)=>pipe(self,orElseIfEmptyStream(()=>new StreamImpl(write(chunk3()))))),orElseIfEmptyStream=dual(2,(self,stream)=>{let writer=readWith({onInput:(input)=>{if(isEmpty(input))return suspend5(()=>writer);return pipe(write(input),zipRight6(identityChannel()))},onFailure:fail11,onDone:()=>suspend5(()=>toChannel2(stream()))});return new StreamImpl(pipe(toChannel2(self),pipeTo(writer)))}),orElseSucceed3=dual(2,(self,value)=>pipe(self,orElse8(()=>sync9(value)))),paginate=(s,f)=>paginateChunk(s,(s2)=>{let page=f(s2);return[of2(page[0]),page[1]]}),paginateChunk=(s,f)=>{let loop3=(s2)=>{let page=f(s2);return match2(page[1],{onNone:()=>zipRight6(write(page[0]),void_5),onSome:(s3)=>flatMap13(write(page[0]),()=>loop3(s3))})};return new StreamImpl(suspend5(()=>loop3(s)))},paginateChunkEffect=(s,f)=>{let loop3=(s2)=>unwrap(map16(f(s2),([chunk3,option3])=>match2(option3,{onNone:()=>zipRight6(write(chunk3),void_5),onSome:(s3)=>flatMap13(write(chunk3),()=>loop3(s3))})));return new StreamImpl(suspend5(()=>loop3(s)))},paginateEffect=(s,f)=>paginateChunkEffect(s,(s2)=>pipe(f(s2),map16(([a,s3])=>[of2(a),s3]))),peel=dual(2,(self,sink)=>{return pipe(make39(),flatMap11((deferred)=>pipe(make49(),map16((handoff)=>{let consumer=foldSink(collectLeftover(sink),{onFailure:(error2)=>zipRight7(fromEffect6(fail7(deferred,error2)),fail12(error2)),onSuccess:([z,leftovers])=>{let loop3=readWithCause({onInput:(elements)=>flatMap13(fromEffect4(offer5(handoff,{_tag:"Emit",elements})),()=>loop3),onFailure:(cause3)=>zipRight6(fromEffect4(offer5(handoff,{_tag:"Halt",cause:cause3})),failCause10(cause3)),onDone:(_)=>zipRight6(fromEffect4(offer5(handoff,{_tag:"End"})),void_5)});return fromChannel(pipe(fromEffect4(succeed7(deferred,z)),zipRight6(fromEffect4(pipe(handoff,offer5({_tag:"Emit",elements:leftovers})))),zipRight6(loop3)))}}),producer=pipe(take6(handoff),map16((signal)=>{switch(signal._tag){case"Emit":return pipe(write(signal.elements),flatMap13(()=>producer));case"Halt":return failCause10(signal.cause);case"End":return void_5}}),unwrap);return pipe(self,tapErrorCause5((cause3)=>failCause6(deferred,cause3)),run4(consumer),forkScoped2,zipRight4(_await3(deferred)),map16((z)=>[z,new StreamImpl(producer)]))}))),flatten8)}),partition5=dual((args2)=>typeof args2[1]==="function",(self,predicate,options)=>partitionEither(self,(a)=>succeed9(predicate(a)?right2(a):left2(a)),options)),partitionEither=dual((args2)=>typeof args2[1]==="function",(self,predicate,options)=>pipe(mapEffectSequential(self,predicate),distributedWith({size:2,maximumLag:options?.bufferSize??16,decide:match({onLeft:()=>succeed9((n)=>n===0),onRight:()=>succeed9((n)=>n===1)})}),flatMap11(([queue1,queue2])=>succeed9([filterMap6(flattenExitOption(fromQueue2(queue1,{shutdown:!0})),(_)=>match(_,{onLeft:some2,onRight:none2})),filterMap6(flattenExitOption(fromQueue2(queue2,{shutdown:!0})),(_)=>match(_,{onLeft:none2,onRight:some2}))])))),pipeThrough=dual(2,(self,sink)=>new StreamImpl(pipe(toChannel2(self),pipeToOrFail(toChannel(sink))))),pipeThroughChannel=dual(2,(self,channel)=>new StreamImpl(pipeTo(toChannel2(self),channel))),pipeThroughChannelOrFail=dual(2,(self,chan)=>new StreamImpl(pipe(toChannel2(self),pipeToOrFail(chan)))),prepend4=dual(2,(self,values3)=>new StreamImpl(zipRight6(write(values3),toChannel2(self)))),provideContext6=dual(2,(self,context6)=>new StreamImpl(pipe(toChannel2(self),provideContext5(context6)))),provideSomeContext2=dual(2,(self,context6)=>mapInputContext6(self,merge3(context6))),provideLayer=dual(2,(self,layer)=>new StreamImpl(unwrapScopedWith((scope5)=>buildWithScope2(layer,scope5).pipe(map16((env)=>pipe(toChannel2(self),provideContext5(env))))))),provideService6=dual(3,(self,tag,resource)=>provideServiceEffect3(self,tag,succeed9(resource))),provideServiceEffect3=dual(3,(self,tag,effect4)=>provideServiceStream(self,tag,fromEffect7(effect4))),provideServiceStream=dual(3,(self,tag,stream)=>contextWithStream((env)=>flatMap16(stream,(service3)=>pipe(self,provideContext6(add4(env,tag,service3)))))),mapInputContext6=dual(2,(self,f)=>contextWithStream((env)=>pipe(self,provideContext6(f(env))))),provideSomeLayer2=dual(2,(self,layer)=>pipe(self,provideLayer(pipe(context4(),merge8(layer))))),range2=(min4,max6,chunkSize=DefaultChunkSize)=>suspend9(()=>{if(min4>max6)return empty29;let go=(min5,max7,chunkSize2)=>{let remaining=max7-min5+1;if(remaining>chunkSize2)return pipe(write(range(min5,min5+chunkSize2-1)),flatMap13(()=>go(min5+chunkSize2,max7,chunkSize2)));return write(range(min5,min5+remaining-1))};return new StreamImpl(go(min4,max6,chunkSize))}),race3=dual(2,(left3,right3)=>raceAll3(left3,right3)),raceAll3=(...streams)=>make39().pipe(map16((halt2)=>{let winner=null;return mergeAll8(streams.map((stream,index)=>stream.pipe(takeWhile4(()=>{if(winner===null)return winner=index,unsafeDone(halt2,void_3),!0;return winner===index}),interruptWhen2(_await3(halt2).pipe(flatMap11(()=>winner===index?never3:_void))))),{concurrency:streams.length})}),unwrap2),rechunk=dual(2,(self,n)=>suspend9(()=>{let target=Math.max(n,1),process2=rechunkProcess(new StreamRechunker(target),target);return new StreamImpl(pipe(toChannel2(self),pipeTo(process2)))})),rechunkProcess=(rechunker,target)=>readWithCause({onInput:(chunk3)=>{if(chunk3.length===target&&rechunker.isEmpty())return flatMap13(write(chunk3),()=>rechunkProcess(rechunker,target));if(chunk3.length>0){let chunks2=[],result=void 0,index=0;while(index<chunk3.length){while(index<chunk3.length&&result===void 0)result=rechunker.write(pipe(chunk3,unsafeGet2(index))),index=index+1;if(result!==void 0)chunks2.push(result),result=void 0}return flatMap13(writeAll(...chunks2),()=>rechunkProcess(rechunker,target))}return suspend5(()=>rechunkProcess(rechunker,target))},onFailure:(cause3)=>zipRight6(rechunker.emitIfNotEmpty(),failCause10(cause3)),onDone:()=>rechunker.emitIfNotEmpty()});class StreamRechunker{n;builder=[];pos=0;constructor(n){this.n=n}isEmpty(){return this.pos===0}write(elem){if(this.builder.push(elem),this.pos+=1,this.pos===this.n){let result=unsafeFromArray(this.builder);return this.builder=[],this.pos=0,result}return}emitIfNotEmpty(){if(this.pos!==0)return write(unsafeFromArray(this.builder));return void_5}}var refineOrDie=dual(2,(self,pf)=>pipe(self,refineOrDieWith(pf,identity))),refineOrDieWith=dual(3,(self,pf,f)=>new StreamImpl(catchAll5(toChannel2(self),(error2)=>match2(pf(error2),{onNone:()=>failCause10(die3(f(error2))),onSome:fail11})))),repeat2=dual(2,(self,schedule2)=>filterMap6(repeatEither(self,schedule2),(_)=>match(_,{onLeft:none2,onRight:some2}))),repeatEffect=(effect4)=>repeatEffectOption(pipe(effect4,mapError3(some2))),repeatEffectChunk=(effect4)=>repeatEffectChunkOption(pipe(effect4,mapError3(some2))),repeatEffectChunkOption=(effect4)=>unfoldChunkEffect(effect4,(effect5)=>pipe(map16(effect5,(chunk3)=>some2([chunk3,effect5])),catchAll3(match2({onNone:()=>succeed9(none2()),onSome:fail9})))),repeatEffectOption=(effect4)=>repeatEffectChunkOption(pipe(effect4,map16(of2))),repeatEither=dual(2,(self,schedule2)=>repeatWith(self,schedule2,{onElement:(a)=>right2(a),onSchedule:left2})),repeatElements=dual(2,(self,schedule2)=>filterMap6(repeatElementsWith(self,schedule2,{onElement:(a)=>some2(a),onSchedule:none2}),identity)),repeatElementsWith=dual(3,(self,schedule2,options)=>{let driver3=pipe(driver2(schedule2),map16((driver4)=>{let feed=(input)=>match2(head2(input),{onNone:()=>loop3,onSome:(a)=>zipRight6(write(of2(options.onElement(a))),step4(pipe(input,drop2(1)),a))}),step4=(input,a)=>{let advance=pipe(driver4.next(a),as4(pipe(write(of2(options.onElement(a))),flatMap13(()=>step4(input,a))))),reset=pipe(driver4.last,orDie3,flatMap11((b)=>pipe(driver4.reset,map16(()=>pipe(write(of2(options.onSchedule(b))),zipRight6(feed(input)))))));return pipe(advance,orElse5(()=>reset),unwrap)},loop3=readWith({onInput:feed,onFailure:fail11,onDone:()=>void_5});return loop3}),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeTo(driver3)))}),repeatValue=(value)=>new StreamImpl(repeated(write(of2(value)))),repeatWith=dual(3,(self,schedule2,options)=>{return pipe(driver2(schedule2),map16((driver3)=>{let provideLastIterationInfo=provideServiceEffect3(CurrentIterationMetadata2,get11(driver3.iterationMeta)),process2=pipe(self,provideLastIterationInfo,map22(options.onElement),toChannel2),loop3=unwrap(match13(driver3.next(void 0),{onFailure:()=>void_5,onSuccess:(output)=>flatMap13(process2,()=>zipRight6(write(of2(options.onSchedule(output))),loop3))}));return new StreamImpl(zipRight6(process2,loop3))}),unwrap2)}),repeatWithSchedule=(value,schedule2)=>repeatEffectWithSchedule(succeed9(value),schedule2),repeatEffectWithSchedule=(effect4,schedule2)=>flatMap16(fromEffect7(zip5(effect4,driver2(schedule2))),([a,driver3])=>{let provideLastIterationInfo=provideServiceEffect2(CurrentIterationMetadata2,get11(driver3.iterationMeta));return concat2(succeed15(a),unfoldEffect(a,(s)=>matchEffect2(driver3.next(s),{onFailure:succeed9,onSuccess:()=>map16(provideLastIterationInfo(effect4),(nextA)=>some2([nextA,nextA]))})))}),retry6=dual(2,(self,policy)=>driver2(policy).pipe(map16((driver3)=>{let provideLastIterationInfo=provideServiceEffect3(CurrentIterationMetadata2,get11(driver3.iterationMeta)),loop3=toChannel2(provideLastIterationInfo(self)).pipe(mapOutEffect((out)=>as4(driver3.reset,out)),catchAll5((error2)=>driver3.next(error2).pipe(match13({onFailure:()=>fail11(error2),onSuccess:()=>loop3}),unwrap)));return loop3}),unwrap,fromChannel2)),withExecutionPlan3=dual((args2)=>isStream(args2[0]),(self,policy,options)=>suspend9(()=>{let preventFallbackOnPartialStream=options?.preventFallbackOnPartialStream??!1,i=0,lastError=none2(),loop3=suspend9(()=>{let step4=policy.steps[i++];if(!step4)return fail15(getOrThrow(lastError));let nextStream=isContext2(step4.provide)?provideSomeContext2(self,step4.provide):provideSomeLayer2(self,step4.provide),receivedElements=!1;if(isSome2(lastError)){let error2=lastError.value,attempted=!1,wrapped=nextStream;nextStream=suspend9(()=>{if(attempted)return wrapped;return attempted=!0,fail15(error2)}),nextStream=scheduleDefectRefail2(retry6(nextStream,scheduleFromStep(step4,!1)))}else{let schedule2=scheduleFromStep(step4,!0);nextStream=schedule2?scheduleDefectRefail2(retry6(nextStream,schedule2)):nextStream}return catchAll7(preventFallbackOnPartialStream?mapChunks(nextStream,(chunk3)=>{return receivedElements=!0,chunk3}):nextStream,(error2)=>{if(preventFallbackOnPartialStream&&receivedElements)return fail15(error2);return lastError=some2(error2),loop3})});return loop3})),scheduleDefectRefail2=(self)=>catchAllCause6(self,(cause3)=>failCause13(scheduleDefectRefailCause(cause3))),run4=dual(2,(self,sink)=>toChannel2(self).pipe(pipeToOrFail(toChannel(sink)),runDrain)),runCollect=(self)=>run4(self,collectAll()),runCount=(self)=>run4(self,count4),runDrain2=(self)=>run4(self,drain2),runFold=dual(3,(self,s,f)=>runFoldWhile(self,s,constTrue,f)),runFoldEffect=dual(3,(self,s,f)=>runFoldWhileEffect(self,s,constTrue,f)),runFoldScoped=dual(3,(self,s,f)=>pipe(self,runFoldWhileScoped(s,constTrue,f))),runFoldScopedEffect=dual(3,(self,s,f)=>pipe(self,runFoldWhileScopedEffect(s,constTrue,f))),runFoldWhile=dual(4,(self,s,cont,f)=>run4(self,fold(s,cont,f))),runFoldWhileEffect=dual(4,(self,s,cont,f)=>run4(self,foldEffect(s,cont,f))),runFoldWhileScoped=dual(4,(self,s,cont,f)=>pipe(self,runScoped2(fold(s,cont,f)))),runFoldWhileScopedEffect=dual(4,(self,s,cont,f)=>pipe(self,runScoped2(foldEffect(s,cont,f)))),runForEach=dual(2,(self,f)=>run4(self,forEach7(f))),runForEachChunk=dual(2,(self,f)=>run4(self,forEachChunk(f))),runForEachChunkScoped=dual(2,(self,f)=>pipe(self,runScoped2(forEachChunk(f)))),runForEachScoped=dual(2,(self,f)=>pipe(self,runScoped2(forEach7(f)))),runForEachWhile=dual(2,(self,f)=>run4(self,forEachWhile(f))),runForEachWhileScoped=dual(2,(self,f)=>pipe(self,runScoped2(forEachWhile(f)))),runHead=(self)=>run4(self,head5()),runIntoPubSub=dual(2,(self,pubsub)=>pipe(self,runIntoQueue(pubsub))),runIntoPubSubScoped=dual(2,(self,pubsub)=>pipe(self,runIntoQueueScoped(pubsub))),runIntoQueue=dual(2,(self,queue)=>pipe(self,runIntoQueueScoped(queue),scoped2)),runIntoQueueElementsScoped=dual(2,(self,queue)=>{let writer=readWithCause({onInput:(input)=>flatMap13(fromEffect4(offerAll3(queue,map4(input,succeed3))),()=>writer),onFailure:(cause3)=>fromEffect4(offer3(queue,failCause3(map11(cause3,some2)))),onDone:()=>fromEffect4(offer3(queue,fail4(none2())))});return pipe(pipeTo(toChannel2(self),writer),drain,runScoped,asVoid3)}),runIntoQueueScoped=dual(2,(self,queue)=>{let writer=readWithCause({onInput:(input)=>flatMap13(write(chunk2(input)),()=>writer),onFailure:(cause3)=>write(failCause11(cause3)),onDone:()=>write(end4)});return pipe(pipeTo(toChannel2(self),writer),mapOutEffect((take7)=>offer3(queue,take7)),drain,runScoped,asVoid3)}),runLast=(self)=>run4(self,last3()),runScoped2=dual(2,(self,sink)=>pipe(toChannel2(self),pipeToOrFail(toChannel(sink)),drain,runScoped)),runSum=(self)=>run4(self,sum2),scan=dual(3,(self,s,f)=>pipe(self,scanEffect(s,(s2,a)=>succeed9(f(s2,a))))),scanReduce=dual(2,(self,f)=>pipe(self,scanReduceEffect((a2,a)=>succeed9(f(a2,a))))),scanReduceEffect=dual(2,(self,f)=>pipe(self,mapAccumEffect(none2(),(option3,a)=>{switch(option3._tag){case"None":return succeed9([some2(a),a]);case"Some":return pipe(f(option3.value,a),map16((b)=>[some2(b),b]))}}))),schedule2=dual(2,(self,schedule3)=>filterMap6(scheduleWith(self,schedule3,{onElement:some2,onSchedule:none2}),identity)),scheduleWith=dual(3,(self,schedule3,options)=>{let loop3=(driver3,iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(chunk3)=>loop3(driver3,chunk3[Symbol.iterator]()),onFailure:failCause10,onDone:succeedNow});return unwrap(matchEffect2(driver3.next(next4.value),{onFailure:()=>pipe(driver3.last,orDie3,map16((b)=>pipe(write(make4(options.onElement(next4.value),options.onSchedule(b))),flatMap13(()=>loop3(driver3,iterator)))),zipLeft3(driver3.reset)),onSuccess:()=>succeed9(pipe(write(of2(options.onElement(next4.value))),flatMap13(()=>loop3(driver3,iterator))))}))};return new StreamImpl(pipe(fromEffect4(driver2(schedule3)),flatMap13((driver3)=>pipe(toChannel2(self),pipeTo(loop3(driver3,empty2()[Symbol.iterator]()))))))}),scanEffect=dual(3,(self,s,f)=>new StreamImpl(pipe(write(of2(s)),flatMap13(()=>toChannel2(pipe(self,mapAccumEffect(s,(s2,a)=>pipe(f(s2,a),map16((s3)=>[s3,s3]))))))))),scoped5=(effect4)=>new StreamImpl(ensuring5(scoped4(pipe(effect4,map16(of2))),_void)),scopedWith4=(f)=>new StreamImpl(scopedWith3((scope5)=>f(scope5).pipe(map16(of2)))),some5=(self)=>pipe(self,mapError6(some2),someOrFail(()=>none2())),someOrElse=dual(2,(self,fallback)=>pipe(self,map22(getOrElse(fallback)))),someOrFail=dual(2,(self,error2)=>mapEffectSequential(self,match2({onNone:()=>failSync3(error2),onSome:succeed9}))),sliding7=dual(2,(self,chunkSize)=>slidingSize(self,chunkSize,1)),slidingSize=dual(3,(self,chunkSize,stepSize)=>{if(chunkSize<=0||stepSize<=0)return die10(new IllegalArgumentException2("Invalid bounds - `chunkSize` and `stepSize` must be greater than zero"));return new StreamImpl(suspend5(()=>{let queue=new RingBuffer(chunkSize),emitOnStreamEnd=(queueSize,channelEnd)=>{if(queueSize<chunkSize){let items=queue.toChunk(),result2=isEmpty(items)?empty2():of2(items);return pipe(write(result2),flatMap13(()=>channelEnd))}let lastEmitIndex=queueSize-(queueSize-chunkSize)%stepSize;if(lastEmitIndex===queueSize)return channelEnd;let leftovers=queueSize-(lastEmitIndex-chunkSize+stepSize),lastItems=pipe(queue.toChunk(),takeRight(leftovers)),result=isEmpty(lastItems)?empty2():of2(lastItems);return pipe(write(result),flatMap13(()=>channelEnd))},reader=(queueSize)=>readWithCause({onInput:(input)=>flatMap13(write(filterMap2(input,(element,index)=>{queue.put(element);let currentIndex=queueSize+index+1;if(currentIndex<chunkSize||(currentIndex-chunkSize)%stepSize>0)return none2();return some2(queue.toChunk())})),()=>reader(queueSize+input.length)),onFailure:(cause3)=>emitOnStreamEnd(queueSize,failCause10(cause3)),onDone:()=>emitOnStreamEnd(queueSize,void_5)});return pipe(toChannel2(self),pipeTo(reader(0)))}))}),split=dual(2,(self,predicate)=>{let split2=(leftovers,input)=>{let[chunk3,remaining]=pipe(leftovers,appendAll2(input),splitWhere(predicate));if(isEmpty(chunk3)||isEmpty(remaining))return loop3(pipe(chunk3,appendAll2(pipe(remaining,drop2(1)))));return pipe(write(of2(chunk3)),flatMap13(()=>split2(empty2(),pipe(remaining,drop2(1)))))},loop3=(leftovers)=>readWith({onInput:(input)=>split2(leftovers,input),onFailure:fail11,onDone:()=>{if(isEmpty(leftovers))return void_5;if(isNone2(pipe(leftovers,findFirst3(predicate))))return zipRight6(write(of2(leftovers)),void_5);return zipRight6(split2(empty2(),leftovers),void_5)}});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty2()))))}),splitOnChunk=dual(2,(self,delimiter)=>{let next4=(leftover,delimiterIndex)=>readWithCause({onInput:(inputChunk)=>{let buffer2,[carry,delimiterCursor]=pipe(inputChunk,reduce2([pipe(leftover,getOrElse(()=>empty2())),delimiterIndex],([carry2,delimiterCursor2],a)=>{let concatenated=pipe(carry2,append2(a));if(delimiterCursor2<delimiter.length&&equals(a,pipe(delimiter,unsafeGet2(delimiterCursor2)))){if(delimiterCursor2+1===delimiter.length){if(buffer2===void 0)buffer2=[];return buffer2.push(pipe(concatenated,take(concatenated.length-delimiter.length))),[empty2(),0]}return[concatenated,delimiterCursor2+1]}return[concatenated,equals(a,pipe(delimiter,unsafeGet2(0)))?1:0]})),output=buffer2===void 0?empty2():unsafeFromArray(buffer2);return flatMap13(write(output),()=>next4(isNonEmpty(carry)?some2(carry):none2(),delimiterCursor))},onFailure:(cause3)=>match2(leftover,{onNone:()=>failCause10(cause3),onSome:(chunk3)=>zipRight6(write(of2(chunk3)),failCause10(cause3))}),onDone:(done11)=>match2(leftover,{onNone:()=>succeed12(done11),onSome:(chunk3)=>zipRight6(write(of2(chunk3)),succeed12(done11))})});return new StreamImpl(pipe(toChannel2(self),pipeTo(next4(none2(),0))))}),splitLines2=(self)=>pipeThroughChannel(self,splitLines()),succeed15=(value)=>fromChunk(of2(value)),sync9=(evaluate2)=>suspend9(()=>fromChunk(of2(evaluate2()))),suspend9=(stream)=>new StreamImpl(suspend5(()=>toChannel2(stream()))),take7=dual(2,(self,n)=>{if(!Number.isInteger(n))return die10(new IllegalArgumentException2(`${n} must be an integer`));let loop3=(n2)=>readWith({onInput:(input)=>{let taken=pipe(input,take(Math.min(n2,Number.POSITIVE_INFINITY))),leftover=Math.max(0,n2-taken.length);if(leftover>0)return pipe(write(taken),flatMap13(()=>loop3(leftover)));return write(taken)},onFailure:fail11,onDone:succeed12});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(0<n?loop3(n):void_5)))}),takeRight2=dual(2,(self,n)=>{if(n<=0)return empty29;return new StreamImpl(pipe(succeed9(new RingBuffer(n)),map16((queue)=>{let reader=readWith({onInput:(input)=>{for(let element of input)queue.put(element);return reader},onFailure:fail11,onDone:()=>pipe(write(queue.toChunk()),zipRight6(void_5))});return pipe(toChannel2(self),pipeTo(reader))}),unwrap))}),takeUntil3=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>{let taken=pipe(input,takeWhile((a)=>!predicate(a))),last4=pipe(input,drop2(taken.length),take(1));if(isEmpty(last4))return pipe(write(taken),flatMap13(()=>loop3));return write(pipe(taken,appendAll2(last4)))},onFailure:fail11,onDone:succeed12});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),takeUntilEffect=dual(2,(self,predicate)=>{let loop3=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause({onInput:(elem)=>loop3(elem[Symbol.iterator]()),onFailure:failCause10,onDone:succeed12});return pipe(predicate(next4.value),map16((bool)=>bool?write(of2(next4.value)):pipe(write(of2(next4.value)),flatMap13(()=>loop3(iterator)))),unwrap)};return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty2()[Symbol.iterator]()))))}),takeWhile4=dual(2,(self,predicate)=>{let loop3=readWith({onInput:(input)=>{let taken=pipe(input,takeWhile(predicate));if(taken.length===input.length)return pipe(write(taken),flatMap13(()=>loop3));return write(taken)},onFailure:fail11,onDone:succeed12});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),tap6=dual(2,(self,f)=>mapEffectSequential(self,(a)=>as4(f(a),a))),tapBoth3=dual(2,(self,options)=>pipe(self,tapError5(options.onFailure),tap6(options.onSuccess))),tapError5=dual(2,(self,f)=>catchAll7(self,(error2)=>fromEffect7(zipRight4(f(error2),fail9(error2))))),tapErrorCause5=dual(2,(self,f)=>{let loop3=readWithCause({onInput:(chunk3)=>flatMap13(write(chunk3),()=>loop3),onFailure:(cause3)=>fromEffect4(zipRight4(f(cause3),failCause8(cause3))),onDone:succeedNow});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3)))}),tapSink=dual(2,(self,sink)=>pipe(fromEffect7(all5([bounded3(1),make39()])),flatMap16(([queue,deferred])=>{let right3=flattenTake(fromQueue2(queue,{maxChunkSize:1})),loop3=readWithCause({onInput:(chunk3)=>pipe(fromEffect4(offer3(queue,chunk2(chunk3))),foldCauseChannel({onFailure:()=>flatMap13(write(chunk3),()=>identityChannel()),onSuccess:()=>flatMap13(write(chunk3),()=>loop3)})),onFailure:(cause3)=>pipe(fromEffect4(offer3(queue,failCause11(cause3))),foldCauseChannel({onFailure:()=>failCause10(cause3),onSuccess:()=>failCause10(cause3)})),onDone:()=>pipe(fromEffect4(offer3(queue,end4)),foldCauseChannel({onFailure:()=>void_5,onSuccess:()=>void_5}))});return pipe(new StreamImpl(pipe(pipeTo(toChannel2(self),loop3),ensuring5(zipRight4(forkDaemon2(offer3(queue,end4)),_await3(deferred))))),merge9(execute(pipe(run4(right3,sink),ensuring3(zipRight4(shutdown2(queue),succeed7(deferred,void 0)))))))}))),throttle=dual(2,(self,options)=>throttleEffect(self,{...options,cost:(chunk3)=>succeed9(options.cost(chunk3))})),throttleEffect=dual(2,(self,options)=>{if(options.strategy==="enforce")return throttleEnforceEffect(self,options.cost,options.units,options.duration,options.burst??0);return throttleShapeEffect(self,options.cost,options.units,options.duration,options.burst??0)}),throttleEnforceEffect=(self,cost,units,duration3,burst)=>{let loop3=(tokens,timestampMillis)=>readWithCause({onInput:(input)=>pipe(cost(input),zip5(currentTimeMillis2),map16(([weight,currentTimeMillis3])=>{let cycles=(currentTimeMillis3-timestampMillis)/toMillis(duration3),sum3=tokens+cycles*units,max6=units+burst<0?Number.POSITIVE_INFINITY:units+burst,available=sum3<0?max6:Math.min(sum3,max6);if(weight<=available)return pipe(write(input),flatMap13(()=>loop3(available-weight,currentTimeMillis3)));return loop3(tokens,timestampMillis)}),unwrap),onFailure:failCause10,onDone:()=>void_5}),throttled=pipe(currentTimeMillis2,map16((currentTimeMillis3)=>loop3(units,currentTimeMillis3)),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(throttled)))},throttleShapeEffect=(self,costFn,units,duration3,burst)=>{let loop3=(tokens,timestampMillis)=>readWithCause({onInput:(input)=>pipe(costFn(input),zip5(currentTimeMillis2),map16(([weight,currentTimeMillis3])=>{let cycles=(currentTimeMillis3-timestampMillis)/toMillis(duration3),sum3=tokens+cycles*units,max6=units+burst<0?Number.POSITIVE_INFINITY:units+burst,remaining=(sum3<0?max6:Math.min(sum3,max6))-weight,waitCycles=remaining>=0?0:-remaining/units,delay3=millis(Math.max(0,waitCycles*toMillis(duration3)));if(greaterThan2(delay3,zero))return pipe(fromEffect4(sleep2(delay3)),zipRight6(write(input)),flatMap13(()=>loop3(remaining,currentTimeMillis3)));return flatMap13(write(input),()=>loop3(remaining,currentTimeMillis3))}),unwrap),onFailure:failCause10,onDone:()=>void_5}),throttled=pipe(currentTimeMillis2,map16((currentTimeMillis3)=>loop3(units,currentTimeMillis3)),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(throttled)))},tick=(interval)=>repeatWithSchedule(void 0,spaced2(interval)),timeout3=dual(2,(self,duration3)=>pipe(toPull2(self),map16(timeoutFail2({onTimeout:()=>none2(),duration:duration3})),fromPull2)),timeoutFail3=dual(3,(self,error2,duration3)=>pipe(self,timeoutTo3(duration3,failSync7(error2)))),timeoutFailCause3=dual(3,(self,cause3,duration3)=>pipe(toPull2(self),map16(timeoutFailCause2({onTimeout:()=>map11(cause3(),some2),duration:duration3})),fromPull2)),timeoutTo3=dual(3,(self,duration3,that)=>{let StreamTimeout=new RuntimeException2("Stream Timeout");return pipe(self,timeoutFailCause3(()=>die3(StreamTimeout),duration3),catchSomeCause3((cause3)=>isDieType2(cause3)&&isRuntimeException2(cause3.defect)&&cause3.defect.message!==void 0&&cause3.defect.message==="Stream Timeout"?some2(that):none2()))}),pubsubFromOptions=(options)=>{if(typeof options==="number")return bounded5(options);else if(options.capacity==="unbounded")return unbounded5({replay:options.replay});switch(options.strategy){case"dropping":return dropping4(options);case"sliding":return sliding4(options);default:return bounded5(options)}},toPubSub2=dual(2,(self,capacity7)=>pipe(acquireRelease2(pubsubFromOptions(capacity7),(pubsub)=>shutdown4(pubsub)),tap3((pubsub)=>pipe(self,runIntoPubSubScoped(pubsub),forkScoped2)))),toPull2=(self)=>map16(toPull(toChannel2(self)),(pull)=>pipe(pull,mapError3(some2),flatMap11(match({onLeft:()=>fail9(none2()),onRight:succeed9})))),toQueue2=dual((args2)=>isStream(args2[0]),(self,options)=>tap3(acquireRelease2(options?.strategy==="unbounded"?unbounded3():options?.strategy==="dropping"?dropping2(options.capacity??2):options?.strategy==="sliding"?sliding2(options.capacity??2):bounded3(options?.capacity??2),(queue)=>shutdown2(queue)),(queue)=>forkScoped2(runIntoQueueScoped(self,queue)))),toQueueOfElements=dual((args2)=>isStream(args2[0]),(self,options)=>tap3(acquireRelease2(bounded3(options?.capacity??2),(queue)=>shutdown2(queue)),(queue)=>forkScoped2(runIntoQueueElementsScoped(self,queue)))),toReadableStream=dual((args2)=>isStream(args2[0]),(self,options)=>toReadableStreamRuntime(self,defaultRuntime2,options)),toReadableStreamEffect=dual((args2)=>isStream(args2[0]),(self,options)=>map16(runtime3(),(runtime4)=>toReadableStreamRuntime(self,runtime4,options))),toReadableStreamRuntime=dual((args2)=>isStream(args2[0]),(self,runtime4,options)=>{let runFork4=runFork3(runtime4),currentResolve=void 0,fiber=void 0,latch=unsafeMakeLatch2(!1);return new ReadableStream({start(controller){fiber=runFork4(runForEachChunk(self,(chunk3)=>{if(chunk3.length===0)return _void;return latch.whenOpen(sync4(()=>{latch.unsafeClose();for(let item of chunk3)controller.enqueue(item);currentResolve(),currentResolve=void 0}))})),fiber.addObserver((exit3)=>{try{if(exit3._tag==="Failure")controller.error(squash(exit3.cause));else controller.close()}catch{}})},pull(){return new Promise((resolve)=>{currentResolve=resolve,runSync(latch.open)})},cancel(){if(!fiber)return;return runPromise(asVoid3(interrupt5(fiber)))}},options?.strategy)}),transduce=dual(2,(self,sink)=>{let newChannel=suspend5(()=>{let leftovers={ref:empty2()},upstreamDone={ref:!1},buffer2=suspend5(()=>{let leftover=leftovers.ref;if(isEmpty(leftover))return readWith({onInput:(input)=>pipe(write(input),flatMap13(()=>buffer2)),onFailure:fail11,onDone:succeedNow});return leftovers.ref=empty2(),pipe(writeChunk(leftover),flatMap13(()=>buffer2))}),concatAndGet=(chunk3)=>{let leftover=leftovers.ref,concatenated=appendAll2(leftover,filter2(chunk3,(chunk4)=>chunk4.length!==0));return leftovers.ref=concatenated,concatenated},upstreamMarker=readWith({onInput:(input)=>flatMap13(write(input),()=>upstreamMarker),onFailure:fail11,onDone:(done11)=>zipRight6(sync7(()=>{upstreamDone.ref=!0}),succeedNow(done11))}),transducer=pipe(sink,toChannel,collectElements,flatMap13(([leftover,z])=>pipe(succeed12([upstreamDone.ref,concatAndGet(leftover)]),flatMap13(([done11,newLeftovers])=>{let nextChannel=done11&&isEmpty(newLeftovers)?void_5:transducer;return pipe(write(of2(z)),flatMap13(()=>nextChannel))}))));return pipe(toChannel2(self),pipeTo(upstreamMarker),pipeTo(buffer2),pipeToOrFail(transducer))});return new StreamImpl(newChannel)}),toAsyncIterableRuntime=dual((args2)=>isStream(args2[0]),(self,runtime4)=>{let runFork4=runFork3(runtime4);return{[Symbol.asyncIterator](){let currentResolve=void 0,currentReject=void 0,fiber=void 0,latch=unsafeMakeLatch2(!1),returned=!1;return{next(){if(!fiber)fiber=runFork4(runForEach(self,(value)=>latch.whenOpen(sync4(()=>{latch.unsafeClose(),currentResolve({done:!1,value}),currentResolve=currentReject=void 0})))),fiber.addObserver((exit3)=>{if(returned)return;fiber=runFork2(latch.whenOpen(sync4(()=>{if(exit3._tag==="Failure")currentReject(squash(exit3.cause));else currentResolve({done:!0,value:void 0});currentResolve=currentReject=void 0})))});return new Promise((resolve,reject)=>{currentResolve=resolve,currentReject=reject,latch.unsafeOpen()})},return(){if(returned=!0,!fiber)return Promise.resolve({done:!0,value:void 0});return runPromise(as4(interrupt5(fiber),{done:!0,value:void 0}))}}}}}),toAsyncIterable=(self)=>toAsyncIterableRuntime(self,defaultRuntime2),toAsyncIterableEffect=(self)=>map16(runtime3(),(runtime4)=>toAsyncIterableRuntime(self,runtime4)),unfold4=(s,f)=>unfoldChunk(s,(s2)=>pipe(f(s2),map2(([a,s3])=>[of2(a),s3]))),unfoldChunk=(s,f)=>{let loop3=(s2)=>match2(f(s2),{onNone:()=>void_5,onSome:([chunk3,s3])=>flatMap13(write(chunk3),()=>loop3(s3))});return new StreamImpl(suspend5(()=>loop3(s)))},unfoldChunkEffect=(s,f)=>suspend9(()=>{let loop3=(s2)=>unwrap(map16(f(s2),match2({onNone:()=>void_5,onSome:([chunk3,s3])=>flatMap13(write(chunk3),()=>loop3(s3))})));return new StreamImpl(loop3(s))}),unfoldEffect=(s,f)=>unfoldChunkEffect(s,(s2)=>pipe(f(s2),map16(map2(([a,s3])=>[of2(a),s3])))),void_7=succeed15(void 0);var unwrap2=(effect4)=>flatten12(fromEffect7(effect4)),unwrapScoped4=(effect4)=>flatten12(scoped5(effect4)),unwrapScopedWith3=(f)=>flatten12(scopedWith4((scope5)=>f(scope5))),updateService4=dual(3,(self,tag,f)=>pipe(self,mapInputContext6((context6)=>pipe(context6,add4(tag,f(pipe(context6,unsafeGet4(tag)))))))),when3=dual(2,(self,test)=>pipe(self,whenEffect3(sync4(test)))),whenCase=(evaluate2,pf)=>whenCaseEffect(pf)(sync4(evaluate2)),whenCaseEffect=dual(2,(self,pf)=>pipe(fromEffect7(self),flatMap16((a)=>pipe(pf(a),getOrElse(()=>empty29))))),whenEffect3=dual(2,(self,effect4)=>pipe(fromEffect7(effect4),flatMap16((bool)=>bool?self:empty29))),withSpan6=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return new StreamImpl(withSpan5(toChannel2(self),name,options))}return(self)=>new StreamImpl(withSpan5(toChannel2(self),name,options))},zip7=dual(2,(self,that)=>pipe(self,zipWith11(that,(a,a2)=>[a,a2]))),zipFlatten=dual(2,(self,that)=>pipe(self,zipWith11(that,(a,a2)=>[...a,a2]))),zipAll=dual(2,(self,options)=>zipAllWith(self,{other:options.other,onSelf:(a)=>[a,options.defaultOther],onOther:(a2)=>[options.defaultSelf,a2],onBoth:(a,a2)=>[a,a2]})),zipAllLeft=dual(3,(self,other,defaultSelf)=>zipAllWith(self,{other,onSelf:identity,onOther:()=>defaultSelf,onBoth:(a)=>a})),zipAllRight=dual(3,(self,other,defaultRight)=>zipAllWith(self,{other,onSelf:()=>defaultRight,onOther:identity,onBoth:(_,a2)=>a2})),zipAllSortedByKey=dual(2,(self,options)=>zipAllSortedByKeyWith(self,{other:options.other,onSelf:(a)=>[a,options.defaultOther],onOther:(a2)=>[options.defaultSelf,a2],onBoth:(a,a2)=>[a,a2],order:options.order})),zipAllSortedByKeyLeft=dual(2,(self,options)=>zipAllSortedByKeyWith(self,{other:options.other,onSelf:identity,onOther:()=>options.defaultSelf,onBoth:(a)=>a,order:options.order})),zipAllSortedByKeyRight=dual(2,(self,options)=>zipAllSortedByKeyWith(self,{other:options.other,onSelf:()=>options.defaultOther,onOther:identity,onBoth:(_,a2)=>a2,order:options.order})),zipAllSortedByKeyWith=dual(2,(self,options)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_DRAIN_LEFT:return pipe(pullLeft,match13({onFailure:fail4,onSuccess:(leftChunk)=>succeed3([map4(leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft])}));case OP_DRAIN_RIGHT:return pipe(pullRight,match13({onFailure:fail4,onSuccess:(rightChunk)=>succeed3([map4(rightChunk,([k,a2])=>[k,options.onOther(a2)]),DrainRight])}));case OP_PULL_BOTH:return pipe(unsome(pullLeft),zip5(unsome(pullRight),{concurrent:!0}),matchEffect2({onFailure:(error2)=>succeed9(fail4(some2(error2))),onSuccess:([leftOption,rightOption])=>{if(isSome2(leftOption)&&isSome2(rightOption)){if(isEmpty(leftOption.value)&&isEmpty(rightOption.value))return pull(PullBoth,pullLeft,pullRight);if(isEmpty(leftOption.value))return pull(PullLeft(rightOption.value),pullLeft,pullRight);if(isEmpty(rightOption.value))return pull(PullRight(leftOption.value),pullLeft,pullRight);return succeed9(succeed3(merge10(leftOption.value,rightOption.value)))}if(isSome2(leftOption)&&isNone2(rightOption)){if(isEmpty(leftOption.value))return pull(DrainLeft,pullLeft,pullRight);return succeed9(succeed3([pipe(leftOption.value,map4(([k,a])=>[k,options.onSelf(a)])),DrainLeft]))}if(isNone2(leftOption)&&isSome2(rightOption)){if(isEmpty(rightOption.value))return pull(DrainRight,pullLeft,pullRight);return succeed9(succeed3([pipe(rightOption.value,map4(([k,a2])=>[k,options.onOther(a2)])),DrainRight]))}return succeed9(fail4(none2()))}}));case OP_PULL_LEFT:return matchEffect2(pullLeft,{onFailure:match2({onNone:()=>succeed9(succeed3([pipe(state.rightChunk,map4(([k,a2])=>[k,options.onOther(a2)])),DrainRight])),onSome:(error2)=>succeed9(fail4(some2(error2)))}),onSuccess:(leftChunk)=>isEmpty(leftChunk)?pull(PullLeft(state.rightChunk),pullLeft,pullRight):succeed9(succeed3(merge10(leftChunk,state.rightChunk)))});case OP_PULL_RIGHT:return matchEffect2(pullRight,{onFailure:match2({onNone:()=>succeed9(succeed3([map4(state.leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft])),onSome:(error2)=>succeed9(fail4(some2(error2)))}),onSuccess:(rightChunk)=>isEmpty(rightChunk)?pull(PullRight(state.leftChunk),pullLeft,pullRight):succeed9(succeed3(merge10(state.leftChunk,rightChunk)))})}},merge10=(leftChunk,rightChunk)=>{let hasNext=(chunk3,index)=>index<chunk3.length-1,builder=[],state=void 0,leftIndex=0,rightIndex=0,leftTuple=pipe(leftChunk,unsafeGet2(leftIndex)),rightTuple=pipe(rightChunk,unsafeGet2(rightIndex)),k1=leftTuple[0],a=leftTuple[1],k2=rightTuple[0],a2=rightTuple[1],loop3=!0;while(loop3){let compare=options.order(k1,k2);if(compare===0)if(builder.push([k1,options.onBoth(a,a2)]),hasNext(leftChunk,leftIndex)&&hasNext(rightChunk,rightIndex))leftIndex=leftIndex+1,rightIndex=rightIndex+1,leftTuple=pipe(leftChunk,unsafeGet2(leftIndex)),rightTuple=pipe(rightChunk,unsafeGet2(rightIndex)),k1=leftTuple[0],a=leftTuple[1],k2=rightTuple[0],a2=rightTuple[1];else if(hasNext(leftChunk,leftIndex))state=PullRight(pipe(leftChunk,drop2(leftIndex+1))),loop3=!1;else if(hasNext(rightChunk,rightIndex))state=PullLeft(pipe(rightChunk,drop2(rightIndex+1))),loop3=!1;else state=PullBoth,loop3=!1;else if(compare<0)if(builder.push([k1,options.onSelf(a)]),hasNext(leftChunk,leftIndex))leftIndex=leftIndex+1,leftTuple=pipe(leftChunk,unsafeGet2(leftIndex)),k1=leftTuple[0],a=leftTuple[1];else{let rightBuilder=[];rightBuilder.push(rightTuple);while(hasNext(rightChunk,rightIndex))rightIndex=rightIndex+1,rightTuple=pipe(rightChunk,unsafeGet2(rightIndex)),rightBuilder.push(rightTuple);state=PullLeft(unsafeFromArray(rightBuilder)),loop3=!1}else if(builder.push([k2,options.onOther(a2)]),hasNext(rightChunk,rightIndex))rightIndex=rightIndex+1,rightTuple=pipe(rightChunk,unsafeGet2(rightIndex)),k2=rightTuple[0],a2=rightTuple[1];else{let leftBuilder=[];leftBuilder.push(leftTuple);while(hasNext(leftChunk,leftIndex))leftIndex=leftIndex+1,leftTuple=pipe(leftChunk,unsafeGet2(leftIndex)),leftBuilder.push(leftTuple);state=PullRight(unsafeFromArray(leftBuilder)),loop3=!1}}return[unsafeFromArray(builder),state]};return combineChunks(self,options.other,PullBoth,pull)}),zipAllWith=dual(2,(self,options)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_DRAIN_LEFT:return matchEffect2(pullLeft,{onFailure:(error2)=>succeed9(fail4(error2)),onSuccess:(leftChunk)=>succeed9(succeed3([map4(leftChunk,options.onSelf),DrainLeft]))});case OP_DRAIN_RIGHT:return matchEffect2(pullRight,{onFailure:(error2)=>succeed9(fail4(error2)),onSuccess:(rightChunk)=>succeed9(succeed3([map4(rightChunk,options.onOther),DrainRight]))});case OP_PULL_BOTH:return pipe(unsome(pullLeft),zip5(unsome(pullRight),{concurrent:!0}),matchEffect2({onFailure:(error2)=>succeed9(fail4(some2(error2))),onSuccess:([leftOption,rightOption])=>{if(isSome2(leftOption)&&isSome2(rightOption)){if(isEmpty(leftOption.value)&&isEmpty(rightOption.value))return pull(PullBoth,pullLeft,pullRight);if(isEmpty(leftOption.value))return pull(PullLeft(rightOption.value),pullLeft,pullRight);if(isEmpty(rightOption.value))return pull(PullRight(leftOption.value),pullLeft,pullRight);return succeed9(succeed3(zip8(leftOption.value,rightOption.value,options.onBoth)))}if(isSome2(leftOption)&&isNone2(rightOption))return succeed9(succeed3([map4(leftOption.value,options.onSelf),DrainLeft]));if(isNone2(leftOption)&&isSome2(rightOption))return succeed9(succeed3([map4(rightOption.value,options.onOther),DrainRight]));return succeed9(fail4(none2()))}}));case OP_PULL_LEFT:return matchEffect2(pullLeft,{onFailure:match2({onNone:()=>succeed9(succeed3([map4(state.rightChunk,options.onOther),DrainRight])),onSome:(error2)=>succeed9(fail4(some2(error2)))}),onSuccess:(leftChunk)=>{if(isEmpty(leftChunk))return pull(PullLeft(state.rightChunk),pullLeft,pullRight);if(isEmpty(state.rightChunk))return pull(PullRight(leftChunk),pullLeft,pullRight);return succeed9(succeed3(zip8(leftChunk,state.rightChunk,options.onBoth)))}});case OP_PULL_RIGHT:return matchEffect2(pullRight,{onFailure:match2({onNone:()=>succeed9(succeed3([map4(state.leftChunk,options.onSelf),DrainLeft])),onSome:(error2)=>succeed9(fail4(some2(error2)))}),onSuccess:(rightChunk)=>{if(isEmpty(rightChunk))return pull(PullRight(state.leftChunk),pullLeft,pullRight);if(isEmpty(state.leftChunk))return pull(PullLeft(rightChunk),pullLeft,pullRight);return succeed9(succeed3(zip8(state.leftChunk,rightChunk,options.onBoth)))}})}},zip8=(leftChunk,rightChunk,f)=>{let[output,either7]=zipChunks(leftChunk,rightChunk,f);switch(either7._tag){case"Left":{if(isEmpty(either7.left))return[output,PullBoth];return[output,PullRight(either7.left)]}case"Right":{if(isEmpty(either7.right))return[output,PullBoth];return[output,PullLeft(either7.right)]}}};return combineChunks(self,options.other,PullBoth,pull)}),zipLatest=dual(2,(left3,right3)=>pipe(left3,zipLatestWith(right3,(a,a2)=>[a,a2]))),zipLatestAll=(...streams)=>{if(streams.length===0)return empty29;else if(streams.length===1)return map22(streams[0],(x)=>[x]);let[head6,...tail]=streams;return zipLatestWith(head6,zipLatestAll(...tail),(first,second)=>[first,...second])},zipLatestWith=dual(3,(left3,right3,f)=>{let pullNonEmpty=(pull)=>pipe(pull,flatMap11((chunk3)=>isEmpty(chunk3)?pullNonEmpty(pull):succeed9(chunk3)));return pipe(toPull2(left3),map16(pullNonEmpty),zip5(pipe(toPull2(right3),map16(pullNonEmpty))),flatMap11(([left4,right4])=>pipe(fromEffectOption(raceWith2(left4,right4,{onSelfDone:(leftDone,rightFiber)=>pipe(suspend3(()=>leftDone),zipWith6(join3(rightFiber),(l,r)=>[l,r,!0])),onOtherDone:(rightDone,leftFiber)=>pipe(suspend3(()=>rightDone),zipWith6(join3(leftFiber),(l,r)=>[r,l,!1]))})),flatMap16(([l,r,leftFirst])=>pipe(fromEffect7(make24([unsafeLast(l),unsafeLast(r)])),flatMap16((latest)=>pipe(fromChunk(leftFirst?pipe(r,map4((a2)=>f(unsafeLast(l),a2))):pipe(l,map4((a)=>f(a,unsafeLast(r))))),concat2(pipe(repeatEffectOption(left4),mergeEither(repeatEffectOption(right4)),mapEffectSequential(match({onLeft:(leftChunk)=>modify4(latest,([_,rightLatest])=>[pipe(leftChunk,map4((a)=>f(a,rightLatest))),[unsafeLast(leftChunk),rightLatest]]),onRight:(rightChunk)=>modify4(latest,([leftLatest,_])=>[pipe(rightChunk,map4((a2)=>f(leftLatest,a2))),[leftLatest,unsafeLast(rightChunk)]])})),flatMap16(fromChunk))))))),toPull2)),fromPull2)}),zipLeft6=dual(2,(left3,right3)=>pipe(left3,zipWithChunks(right3,(left4,right4)=>{if(left4.length>right4.length)return[pipe(left4,take(right4.length)),left2(pipe(left4,take(right4.length)))];return[left4,right2(pipe(right4,drop2(left4.length)))]}))),zipRight9=dual(2,(left3,right3)=>pipe(left3,zipWithChunks(right3,(left4,right4)=>{if(left4.length>right4.length)return[right4,left2(pipe(left4,take(right4.length)))];return[pipe(right4,take(left4.length)),right2(pipe(right4,drop2(left4.length)))]}))),zipWith11=dual(3,(left3,right3,f)=>pipe(left3,zipWithChunks(right3,(leftChunk,rightChunk)=>zipChunks(leftChunk,rightChunk,f)))),zipWithChunks=dual(3,(self,that,f)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_PULL_BOTH2:return pipe(unsome(pullLeft),zip5(unsome(pullRight),{concurrent:!0}),matchEffect2({onFailure:(error2)=>succeed9(fail4(some2(error2))),onSuccess:([leftOption,rightOption])=>{if(isSome2(leftOption)&&isSome2(rightOption)){if(isEmpty(leftOption.value)&&isEmpty(rightOption.value))return pull(PullBoth2,pullLeft,pullRight);if(isEmpty(leftOption.value))return pull(PullLeft2(rightOption.value),pullLeft,pullRight);if(isEmpty(rightOption.value))return pull(PullRight2(leftOption.value),pullLeft,pullRight);return succeed9(succeed3(zip8(leftOption.value,rightOption.value)))}return succeed9(fail4(none2()))}}));case OP_PULL_LEFT2:return matchEffect2(pullLeft,{onFailure:(error2)=>succeed9(fail4(error2)),onSuccess:(leftChunk)=>{if(isEmpty(leftChunk))return pull(PullLeft2(state.rightChunk),pullLeft,pullRight);if(isEmpty(state.rightChunk))return pull(PullRight2(leftChunk),pullLeft,pullRight);return succeed9(succeed3(zip8(leftChunk,state.rightChunk)))}});case OP_PULL_RIGHT2:return matchEffect2(pullRight,{onFailure:(error2)=>succeed9(fail4(error2)),onSuccess:(rightChunk)=>{if(isEmpty(rightChunk))return pull(PullRight2(state.leftChunk),pullLeft,pullRight);if(isEmpty(state.leftChunk))return pull(PullLeft2(rightChunk),pullLeft,pullRight);return succeed9(succeed3(zip8(state.leftChunk,rightChunk)))}})}},zip8=(leftChunk,rightChunk)=>{let[output,either7]=f(leftChunk,rightChunk);switch(either7._tag){case"Left":{if(isEmpty(either7.left))return[output,PullBoth2];return[output,PullRight2(either7.left)]}case"Right":{if(isEmpty(either7.right))return[output,PullBoth2];return[output,PullLeft2(either7.right)]}}};return pipe(self,combineChunks(that,PullBoth2,pull))}),zipWithIndex=(self)=>pipe(self,mapAccum5(0,(index,a)=>[index+1,[a,index]])),zipWithNext=(self)=>{let process2=(last4)=>readWithCause({onInput:(input)=>{let[newLast,chunk3]=mapAccum2(input,last4,(prev,curr)=>[some2(curr),pipe(prev,map2((a)=>[a,curr]))]),output=filterMap2(chunk3,(option3)=>isSome2(option3)?some2([option3.value[0],some2(option3.value[1])]):none2());return flatMap13(write(output),()=>process2(newLast))},onFailure:failCause10,onDone:()=>match2(last4,{onNone:()=>void_5,onSome:(value)=>zipRight6(write(of2([value,none2()])),void_5)})});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(process2(none2()))))},zipWithPrevious=(self)=>pipe(self,mapAccum5(none2(),(prev,curr)=>[some2(curr),[prev,curr]])),zipWithPreviousAndNext=(self)=>pipe(zipWithNext(zipWithPrevious(self)),map22(([[prev,curr],next4])=>[prev,curr,pipe(next4,map2((tuple2)=>tuple2[1]))])),zipChunks=(left3,right3,f)=>{if(left3.length>right3.length)return[pipe(left3,take(right3.length),zipWith2(right3,f)),left2(pipe(left3,drop2(right3.length)))];return[pipe(left3,zipWith2(pipe(right3,take(left3.length)),f)),right2(pipe(right3,drop2(left3.length)))]},Do3=succeed15({}),bind4=dual((args2)=>typeof args2[0]!=="string",(self,tag,f,options)=>flatMap16(self,(k)=>map22(f(k),(a)=>({...k,[tag]:a})),options)),bindTo4=bindTo(map22),let_4=let_(map22);var decodeText=dual((args2)=>isStream(args2[0]),(self,encoding="utf-8")=>suspend9(()=>{let decoder=new TextDecoder(encoding);return map22(self,(s)=>decoder.decode(s))})),encodeText=(self)=>suspend9(()=>{let encoder=new TextEncoder;return map22(self,(s)=>encoder.encode(s))}),fromEventListener=(target,type,options)=>asyncPush((emit2)=>acquireRelease2(sync4(()=>target.addEventListener(type,emit2.single,options)),()=>sync4(()=>target.removeEventListener(type,emit2.single,options))),{bufferSize:typeof options==="object"?options.bufferSize:void 0});var GroupBySymbolKey="effect/GroupBy",GroupByTypeId=Symbol.for(GroupBySymbolKey),groupByVariance={_R:(_)=>_,_E:(_)=>_,_K:(_)=>_,_V:(_)=>_},isGroupBy=(u)=>hasProperty(u,GroupByTypeId),evaluate2=dual((args2)=>isGroupBy(args2[0]),(self,f,options)=>flatMap16(self.grouped,([key,queue])=>f(key,flattenTake(fromQueue2(queue,{shutdown:!0}))),{concurrency:"unbounded",bufferSize:options?.bufferSize??16}));var make51=(grouped2)=>({[GroupByTypeId]:groupByVariance,pipe(){return pipeArguments(this,arguments)},grouped:grouped2}),groupBy=dual((args2)=>isStream(args2[0]),(self,f,options)=>make51(unwrapScoped4(gen2(function*(){let decider=yield*make39(),output=yield*acquireRelease2(bounded3(options?.bufferSize??16),(queue)=>shutdown2(queue)),ref=yield*make24(new Map),add5=yield*pipe(mapEffectSequential(self,f),distributedWithDynamicCallback(options?.bufferSize??16,([key,value])=>flatMap11(_await3(decider),(f2)=>f2(key,value)),(exit3)=>offer3(output,exit3)));return yield*succeed7(decider,(key,_)=>pipe(get11(ref),map16((map23)=>fromNullable(map23.get(key))),flatMap11(match2({onNone:()=>flatMap11(add5,([index,queue])=>zipRight4(update3(ref,(map23)=>map23.set(key,index)),pipe(offer3(output,succeed3([key,mapDequeue(queue,(exit3)=>new TakeImpl(pipe(exit3,map12((tuple2)=>of2(tuple2[1])))))])),as4((n)=>n===index)))),onSome:(index)=>succeed9((n)=>n===index)})))),flattenExitOption(fromQueue2(output,{shutdown:!0}))})))),mapEffectOptions=dual((args2)=>typeof args2[0]!=="function",(self,f,options)=>{if(options?.key)return evaluate2(groupByKey(self,options.key,{bufferSize:options.bufferSize}),(_,s)=>mapEffectSequential(s,f));return matchConcurrency(options?.concurrency,()=>mapEffectSequential(self,f),(n)=>options?.unordered?flatMap16(self,(a)=>fromEffect7(f(a)),{concurrency:n}):mapEffectPar(self,n,f))}),bindEffect=dual((args2)=>typeof args2[0]!=="string",(self,tag,f,options)=>mapEffectOptions(self,(k)=>map16(f(k),(a)=>({...k,[tag]:a})),options)),mapDequeue=(dequeue,f)=>new MapDequeue(dequeue,f);class MapDequeue extends Class{dequeue;f;[DequeueTypeId2]={_Out:(_)=>_};constructor(dequeue,f){super();this.dequeue=dequeue,this.f=f}capacity(){return capacity3(this.dequeue)}get size(){return size10(this.dequeue)}unsafeSize(){return this.dequeue.unsafeSize()}get awaitShutdown(){return awaitShutdown2(this.dequeue)}isActive(){return this.dequeue.isActive()}get isShutdown(){return isShutdown2(this.dequeue)}get shutdown(){return shutdown2(this.dequeue)}get isFull(){return isFull2(this.dequeue)}get isEmpty(){return isEmpty11(this.dequeue)}get take(){return pipe(take3(this.dequeue),map16((a)=>this.f(a)))}get takeAll(){return pipe(takeAll2(this.dequeue),map16(map4((a)=>this.f(a))))}takeUpTo(max6){return pipe(takeUpTo2(this.dequeue,max6),map16(map4((a)=>this.f(a))))}takeBetween(min4,max6){return pipe(takeBetween2(this.dequeue,min4,max6),map16(map4((a)=>this.f(a))))}takeN(n){return pipe(takeN2(this.dequeue,n),map16(map4((a)=>this.f(a))))}poll(){return pipe(poll6(this.dequeue),map16(map2((a)=>this.f(a))))}pipe(){return pipeArguments(this,arguments)}commit(){return this.take}}var groupByKey=dual((args2)=>typeof args2[0]!=="function",(self,f,options)=>{let loop3=(map23,outerQueue)=>readWithCause({onInput:(input)=>flatMap13(fromEffect4(forEach6(groupByIterable(input,f),([key,values3])=>{let innerQueue=map23.get(key);if(innerQueue===void 0)return pipe(bounded3(options?.bufferSize??16),flatMap11((innerQueue2)=>pipe(sync4(()=>{map23.set(key,innerQueue2)}),zipRight4(offer3(outerQueue,of5([key,innerQueue2]))),zipRight4(pipe(offer3(innerQueue2,chunk2(values3)),catchSomeCause2((cause3)=>isInterruptedOnly2(cause3)?some2(_void):none2()))))));return catchSomeCause2(offer3(innerQueue,chunk2(values3)),(cause3)=>isInterruptedOnly2(cause3)?some2(_void):none2())},{discard:!0})),()=>loop3(map23,outerQueue)),onFailure:(cause3)=>fromEffect4(offer3(outerQueue,failCause11(cause3))),onDone:()=>fromEffect4(pipe(forEach6(map23.entries(),([_,innerQueue])=>pipe(offer3(innerQueue,end4),catchSomeCause2((cause3)=>isInterruptedOnly2(cause3)?some2(_void):none2())),{discard:!0}),zipRight4(offer3(outerQueue,end4))))});return make51(unwrapScopedWith3((scope5)=>gen2(function*(){let map23=new Map,queue=yield*unbounded3();return yield*addFinalizer2(scope5,shutdown2(queue)),yield*toChannel2(self).pipe(pipeTo(loop3(map23,queue)),drain,runIn(scope5),forkIn2(scope5),as4(flattenTake(fromQueue2(queue,{shutdown:!0}))))})))}),groupByIterable=dual(2,(iterable,f)=>{let builder=[],iterator=iterable[Symbol.iterator](),map23=new Map,next4;while((next4=iterator.next())&&!next4.done){let value=next4.value,key=f(value);if(map23.has(key))map23.get(key).push(value);else{let innerBuilder=[value];builder.push([key,innerBuilder]),map23.set(key,innerBuilder)}}return unsafeFromArray(builder.map((tuple2)=>[tuple2[0],unsafeFromArray(tuple2[1])]))});var StreamTypeId3=StreamTypeId2,DefaultChunkSize2=DefaultChunkSize,accumulate2=accumulate,accumulateChunks2=accumulateChunks,acquireRelease4=acquireRelease3,aggregate2=aggregate,aggregateWithin2=aggregateWithin,aggregateWithinEither2=aggregateWithinEither,as9=as8,_async2=_async;var asyncEffect4=asyncEffect3,asyncPush2=asyncPush,asyncScoped2=asyncScoped,branchAfter2=branchAfter,broadcast2=broadcast,share2=share,broadcastDynamic2=broadcastDynamic,broadcastedQueues2=broadcastedQueues,broadcastedQueuesDynamic2=broadcastedQueuesDynamic,buffer2=buffer,bufferChunks2=bufferChunks,catchAll8=catchAll7,catchAllCause7=catchAllCause6,catchSome4=catchSome3,catchTag4=catchTag3,catchTags4=catchTags3,catchSomeCause4=catchSomeCause3,changes2=changes,changesWith2=changesWith,changesWithEffect2=changesWithEffect,chunks2=chunks,chunksWith2=chunksWith,combine10=combine9,combineChunks2=combineChunks,concat3=concat2,concatAll3=concatAll2,cross2=cross,crossLeft2=crossLeft,crossRight2=crossRight,crossWith2=crossWith,debounce2=debounce,die11=die10,dieSync7=dieSync6,dieMessage5=dieMessage4,distributedWith2=distributedWith,distributedWithDynamic2=distributedWithDynamic,drain4=drain3,drainFork2=drainFork,drop4=drop3,dropRight2=dropRight,dropUntil4=dropUntil3,dropUntilEffect2=dropUntilEffect,dropWhile5=dropWhile4,dropWhileEffect2=dropWhileEffect,either7=either6,empty30=empty29,ensuring8=ensuring7,ensuringWith3=ensuringWith2,context6=context5,contextWith4=contextWith3,contextWithEffect4=contextWithEffect3,contextWithStream2=contextWithStream,execute2=execute,fail16=fail15,failSync8=failSync7,failCause14=failCause13,failCauseSync7=failCauseSync6,filter9=filter8,filterEffect2=filterEffect,filterMap7=filterMap6,filterMapEffect2=filterMapEffect,filterMapWhile4=filterMapWhile3,filterMapWhileEffect2=filterMapWhileEffect,finalizer2=finalizer,find3=find2,findEffect2=findEffect,flatMap17=flatMap16,flatten13=flatten12,flattenChunks2=flattenChunks,flattenEffect2=flattenEffect,flattenExitOption2=flattenExitOption,flattenIterables2=flattenIterables,flattenTake2=flattenTake,forever6=forever5,fromAsyncIterable2=fromAsyncIterable,fromChannel3=fromChannel2,toChannel3=toChannel2,fromChunk2=fromChunk,fromChunkPubSub2=fromChunkPubSub,fromChunkQueue2=fromChunkQueue,fromChunks2=fromChunks,fromEffect8=fromEffect7,fromEffectOption2=fromEffectOption,fromPubSub2=fromPubSub,fromTPubSub2=fromTPubSub,fromIterable10=fromIterable9,fromIterableEffect2=fromIterableEffect,fromIteratorSucceed2=fromIteratorSucceed,fromPull3=fromPull2,fromQueue3=fromQueue2,fromTQueue2=fromTQueue,fromReadableStream2=fromReadableStream,fromReadableStreamByob2=fromReadableStreamByob,fromSchedule2=fromSchedule,groupAdjacentBy2=groupAdjacentBy,groupBy2=groupBy,groupByKey2=groupByKey,grouped2=grouped,groupedWithin2=groupedWithin,haltAfter2=haltAfter,haltWhen2=haltWhen,haltWhenDeferred2=haltWhenDeferred,identity4=identityStream,interleave2=interleave,interleaveWith2=interleaveWith,intersperse2=intersperse,intersperseAffixes2=intersperseAffixes,interruptAfter2=interruptAfter,interruptWhen3=interruptWhen2,interruptWhenDeferred3=interruptWhenDeferred2,iterate4=iterate3,make52=make50,map23=map22,mapAccum6=mapAccum5,mapAccumEffect2=mapAccumEffect,mapBoth7=mapBoth6,mapChunks2=mapChunks,mapChunksEffect2=mapChunksEffect,mapConcat2=mapConcat,mapConcatChunk2=mapConcatChunk,mapConcatChunkEffect2=mapConcatChunkEffect,mapConcatEffect2=mapConcatEffect,mapEffect5=mapEffectOptions,mapError7=mapError6,mapErrorCause5=mapErrorCause4,merge10=merge9,mergeAll9=mergeAll8,mergeWithTag2=mergeWithTag,mergeWith4=mergeWith3,mergeEither2=mergeEither,mergeLeft2=mergeLeft,mergeRight2=mergeRight,mkString3=mkString2,never5=never4,onEnd2=onEnd,onError4=onError3,onDone2=onDone,onStart2=onStart,orDie6=orDie5,orDieWith5=orDieWith4,orElse9=orElse8,orElseEither4=orElseEither3,orElseFail4=orElseFail3,orElseIfEmpty2=orElseIfEmpty,orElseIfEmptyChunk2=orElseIfEmptyChunk,orElseIfEmptyStream2=orElseIfEmptyStream,orElseSucceed4=orElseSucceed3,paginate2=paginate,paginateChunk2=paginateChunk,paginateChunkEffect2=paginateChunkEffect,paginateEffect2=paginateEffect,partition6=partition5,partitionEither2=partitionEither,peel2=peel,pipeThrough2=pipeThrough,pipeThroughChannel2=pipeThroughChannel,pipeThroughChannelOrFail2=pipeThroughChannelOrFail,prepend5=prepend4,provideContext7=provideContext6,provideSomeContext3=provideSomeContext2,provideLayer2=provideLayer,provideService7=provideService6,provideServiceEffect4=provideServiceEffect3,provideServiceStream2=provideServiceStream,mapInputContext7=mapInputContext6,provideSomeLayer3=provideSomeLayer2,race4=race3,raceAll4=raceAll3,range3=range2,rechunk2=rechunk,refineOrDie2=refineOrDie,refineOrDieWith2=refineOrDieWith,repeat3=repeat2,repeatEffect2=repeatEffect,repeatEffectChunk2=repeatEffectChunk,repeatEffectChunkOption2=repeatEffectChunkOption,repeatEffectOption2=repeatEffectOption,repeatEffectWithSchedule2=repeatEffectWithSchedule,repeatEither2=repeatEither,repeatElements2=repeatElements,repeatElementsWith2=repeatElementsWith,repeatValue2=repeatValue,repeatWith2=repeatWith,retry7=retry6,withExecutionPlan4=withExecutionPlan3,run5=run4,runCollect2=runCollect,runCount2=runCount,runDrain3=runDrain2,runFold2=runFold,runFoldEffect2=runFoldEffect,runFoldScoped2=runFoldScoped,runFoldScopedEffect2=runFoldScopedEffect,runFoldWhile2=runFoldWhile,runFoldWhileEffect2=runFoldWhileEffect,runFoldWhileScoped2=runFoldWhileScoped,runFoldWhileScopedEffect2=runFoldWhileScopedEffect,runForEach2=runForEach,runForEachChunk2=runForEachChunk,runForEachChunkScoped2=runForEachChunkScoped,runForEachScoped2=runForEachScoped,runForEachWhile2=runForEachWhile,runForEachWhileScoped2=runForEachWhileScoped,runHead2=runHead,runIntoPubSub2=runIntoPubSub,runIntoPubSubScoped2=runIntoPubSubScoped,runIntoQueue2=runIntoQueue,runIntoQueueElementsScoped2=runIntoQueueElementsScoped,runIntoQueueScoped2=runIntoQueueScoped,runLast2=runLast,runScoped3=runScoped2,runSum2=runSum,scan2=scan,scanEffect2=scanEffect,scanReduce2=scanReduce,scanReduceEffect2=scanReduceEffect,schedule3=schedule2,scheduleWith2=scheduleWith,scoped6=scoped5,scopedWith5=scopedWith4,sliding8=sliding7,slidingSize2=slidingSize,some6=some5,someOrElse2=someOrElse,someOrFail2=someOrFail,split2=split,splitOnChunk2=splitOnChunk,splitLines3=splitLines2,succeed16=succeed15,sync10=sync9,suspend10=suspend9,take8=take7,takeRight3=takeRight2,takeUntil4=takeUntil3,takeUntilEffect2=takeUntilEffect,takeWhile5=takeWhile4,tap7=tap6,tapBoth4=tapBoth3,tapError6=tapError5,tapErrorCause6=tapErrorCause5,tapSink2=tapSink,throttle2=throttle,throttleEffect2=throttleEffect,tick2=tick,timeout4=timeout3,timeoutFail4=timeoutFail3,timeoutFailCause4=timeoutFailCause3,timeoutTo4=timeoutTo3,toPubSub3=toPubSub2,toPull3=toPull2,toQueue3=toQueue2,toQueueOfElements2=toQueueOfElements,toReadableStream2=toReadableStream,toReadableStreamEffect2=toReadableStreamEffect,toReadableStreamRuntime2=toReadableStreamRuntime,toAsyncIterableRuntime2=toAsyncIterableRuntime,toAsyncIterableEffect2=toAsyncIterableEffect,toAsyncIterable2=toAsyncIterable,transduce2=transduce,unfold5=unfold4,unfoldChunk2=unfoldChunk,unfoldChunkEffect2=unfoldChunkEffect,unfoldEffect2=unfoldEffect,void_8=void_7;var unwrap3=unwrap2,unwrapScoped5=unwrapScoped4,unwrapScopedWith4=unwrapScopedWith3,updateService5=updateService4,when4=when3,whenCase2=whenCase,whenCaseEffect2=whenCaseEffect,whenEffect4=whenEffect3,withSpan7=withSpan6,zip8=zip7,zipFlatten2=zipFlatten,zipAll2=zipAll,zipAllLeft2=zipAllLeft,zipAllRight2=zipAllRight,zipAllSortedByKey2=zipAllSortedByKey,zipAllSortedByKeyLeft2=zipAllSortedByKeyLeft,zipAllSortedByKeyRight2=zipAllSortedByKeyRight,zipAllSortedByKeyWith2=zipAllSortedByKeyWith,zipAllWith2=zipAllWith,zipLatest2=zipLatest,zipLatestAll2=zipLatestAll,zipLatestWith2=zipLatestWith,zipLeft7=zipLeft6,zipRight10=zipRight9,zipWith12=zipWith11,zipWithChunks2=zipWithChunks,zipWithNext2=zipWithNext,zipWithPrevious2=zipWithPrevious,zipWithPreviousAndNext2=zipWithPreviousAndNext,zipWithIndex2=zipWithIndex,Do4=Do3,bind5=bind4,bindEffect2=bindEffect,bindTo5=bindTo4,let_5=let_4;var decodeText2=decodeText,encodeText2=encodeText,fromEventListener2=fromEventListener;var exports_Config={};__export(exports_Config,{zipWith:()=>zipWith14,zip:()=>zip10,withDescription:()=>withDescription2,withDefault:()=>withDefault2,validate:()=>validate4,url:()=>url2,unwrap:()=>unwrap5,sync:()=>sync12,suspend:()=>suspend12,succeed:()=>succeed18,string:()=>string3,secret:()=>secret2,repeat:()=>repeat5,redacted:()=>redacted2,primitive:()=>primitive2,port:()=>port2,orElseIf:()=>orElseIf2,orElse:()=>orElse11,option:()=>option4,number:()=>number5,nonEmptyString:()=>nonEmptyString2,nested:()=>nested3,mapOrFail:()=>mapOrFail2,mapAttempt:()=>mapAttempt2,map:()=>map25,logLevel:()=>logLevel2,literal:()=>literal2,isConfig:()=>isConfig2,integer:()=>integer2,hashSet:()=>hashSet3,hashMap:()=>hashMap3,fail:()=>fail18,duration:()=>duration4,date:()=>date2,chunk:()=>chunk4,branded:()=>branded2,boolean:()=>boolean2,array:()=>array5,all:()=>all8,ConfigTypeId:()=>ConfigTypeId2});var isMissingDataOnly2=isMissingDataOnly;var RedactedSymbolKey="effect/Redacted",redactedRegistry=globalValue("effect/Redacted/redactedRegistry",()=>new WeakMap),RedactedTypeId=Symbol.for(RedactedSymbolKey),proto12={[RedactedTypeId]:{_A:(_)=>_},pipe(){return pipeArguments(this,arguments)},toString(){return"<redacted>"},toJSON(){return"<redacted>"},[NodeInspectSymbol](){return"<redacted>"},[symbol](){return pipe(hash(RedactedSymbolKey),combine(hash(redactedRegistry.get(this))),cached(this))},[symbol2](that){return isRedacted(that)&&equals(redactedRegistry.get(this),redactedRegistry.get(that))}},isRedacted=(u)=>hasProperty(u,RedactedTypeId),make53=(value)=>{let redacted=Object.create(proto12);return redactedRegistry.set(redacted,value),redacted};var SecretSymbolKey="effect/Secret",SecretTypeId=Symbol.for(SecretSymbolKey);var SecretProto={...proto12,[SecretTypeId]:SecretTypeId},make54=(bytes)=>{let secret=Object.create(SecretProto);return Object.defineProperty(secret,"toString",{enumerable:!1,value(){return"Secret(<redacted>)"}}),Object.defineProperty(secret,"toJSON",{enumerable:!1,value(){return"<redacted>"}}),Object.defineProperty(secret,"raw",{enumerable:!1,value:bytes}),redactedRegistry.set(secret,bytes.map((byte)=>String.fromCharCode(byte)).join("")),secret};var fromString=(text)=>{return make54(text.split("").map((char)=>char.charCodeAt(0)))};var ConfigSymbolKey="effect/Config",ConfigTypeId=Symbol.for(ConfigSymbolKey),configVariance={_A:(_)=>_},proto13={...CommitPrototype,[ConfigTypeId]:configVariance,commit(){return config(this)}},boolean=(name)=>{let config2=primitive("a boolean property",(text)=>{switch(text){case"true":case"yes":case"on":case"1":return right2(!0);case"false":case"no":case"off":case"0":return right2(!1);default:{let error2=InvalidData([],`Expected a boolean value but received ${formatUnknown(text)}`);return left2(error2)}}});return name===void 0?config2:nested2(config2,name)},url=(name)=>{let config2=primitive("an URL property",(text)=>try_({try:()=>new URL(text),catch:(_)=>InvalidData([],`Expected an URL value but received ${formatUnknown(text)}`)}));return name===void 0?config2:nested2(config2,name)},port=(name)=>{let config2=primitive("a network port property",(text)=>{let result=Number(text);if(Number.isNaN(result)||result.toString()!==text.toString()||!Number.isInteger(result)||result<1||result>65535)return left2(InvalidData([],`Expected a network port value but received ${formatUnknown(text)}`));return right2(result)});return name===void 0?config2:nested2(config2,name)},array4=(config2,name)=>{return pipe(chunk3(config2,name),map24(toArray2))},chunk3=(config2,name)=>{return map24(name===void 0?repeat4(config2):nested2(repeat4(config2),name),unsafeFromArray)},date=(name)=>{let config2=primitive("a date property",(text)=>{let result=Date.parse(text);if(Number.isNaN(result))return left2(InvalidData([],`Expected a Date value but received ${formatUnknown(text)}`));return right2(new Date(result))});return name===void 0?config2:nested2(config2,name)},fail17=(message)=>{let fail18=Object.create(proto13);return fail18._tag=OP_FAIL2,fail18.message=message,fail18.parse=()=>left2(Unsupported([],message)),fail18},number4=(name)=>{let config2=primitive("a number property",(text)=>{let result=Number(text);if(Number.isNaN(result))return left2(InvalidData([],`Expected a number value but received ${formatUnknown(text)}`));return right2(result)});return name===void 0?config2:nested2(config2,name)},integer=(name)=>{let config2=primitive("an integer property",(text)=>{let result=Number(text);if(!Number.isInteger(result))return left2(InvalidData([],`Expected an integer value but received ${formatUnknown(text)}`));return right2(result)});return name===void 0?config2:nested2(config2,name)},literal=(...literals)=>(name)=>{let valuesString=literals.map(String).join(", "),config2=primitive(`one of (${valuesString})`,(text)=>{let found=literals.find((value)=>String(value)===text);if(found===void 0)return left2(InvalidData([],`Expected one of (${valuesString}) but received ${formatUnknown(text)}`));return right2(found)});return name===void 0?config2:nested2(config2,name)},logLevel=(name)=>{let config2=mapOrFail(string2(),(value)=>{let label=value.toUpperCase(),level=allLogLevels.find((level2)=>level2.label===label);return level===void 0?left2(InvalidData([],`Expected a log level but received ${formatUnknown(value)}`)):right2(level)});return name===void 0?config2:nested2(config2,name)},duration3=(name)=>{let config2=mapOrFail(string2(),(value)=>{let duration4=decodeUnknown(value);return fromOption2(duration4,()=>InvalidData([],`Expected a duration but received ${formatUnknown(value)}`))});return name===void 0?config2:nested2(config2,name)},map24=dual(2,(self,f)=>mapOrFail(self,(a)=>right2(f(a)))),mapAttempt=dual(2,(self,f)=>mapOrFail(self,(a)=>{try{return right2(f(a))}catch(error2){return left2(InvalidData([],error2 instanceof Error?error2.message:`${error2}`))}})),mapOrFail=dual(2,(self,f)=>{let mapOrFail2=Object.create(proto13);return mapOrFail2._tag=OP_MAP_OR_FAIL,mapOrFail2.original=self,mapOrFail2.mapOrFail=f,mapOrFail2}),nested2=dual(2,(self,name)=>{let nested3=Object.create(proto13);return nested3._tag=OP_NESTED,nested3.name=name,nested3.config=self,nested3}),orElse10=dual(2,(self,that)=>{let fallback=Object.create(proto13);return fallback._tag=OP_FALLBACK,fallback.first=self,fallback.second=suspend11(that),fallback.condition=constTrue,fallback}),orElseIf=dual(2,(self,options)=>{let fallback=Object.create(proto13);return fallback._tag=OP_FALLBACK,fallback.first=self,fallback.second=suspend11(options.orElse),fallback.condition=options.if,fallback}),option3=(self)=>{return pipe(self,map24(some2),orElseIf({orElse:()=>succeed17(none2()),if:isMissingDataOnly2}))},primitive=(description,parse2)=>{let primitive2=Object.create(proto13);return primitive2._tag=OP_PRIMITIVE,primitive2.description=description,primitive2.parse=parse2,primitive2},repeat4=(self)=>{let repeat5=Object.create(proto13);return repeat5._tag=OP_SEQUENCE,repeat5.config=self,repeat5},secret=(name)=>{let config2=primitive("a secret property",(text)=>right2(fromString(text)));return name===void 0?config2:nested2(config2,name)},redacted=(nameOrConfig)=>{let config2=isConfig(nameOrConfig)?nameOrConfig:string2(nameOrConfig);return map24(config2,make53)},branded=dual(2,(nameOrConfig,constructor)=>{let config2=isConfig(nameOrConfig)?nameOrConfig:string2(nameOrConfig);return mapOrFail(config2,(a)=>constructor.either(a).pipe(mapLeft((brandErrors)=>InvalidData([],brandErrors.map((brandError)=>brandError.message).join(`
41
+ `)))))}),hashSet2=(config2,name)=>{let newConfig=map24(chunk3(config2),fromIterable5);return name===void 0?newConfig:nested2(newConfig,name)},string2=(name)=>{let config2=primitive("a text property",right2);return name===void 0?config2:nested2(config2,name)},nonEmptyString=(name)=>{let config2=primitive("a non-empty text property",liftPredicate((text)=>text.length>0,()=>MissingData([],"Expected a non-empty string")));return name===void 0?config2:nested2(config2,name)},all7=(arg)=>{if(Array.isArray(arg))return tuple2(arg);else if(Symbol.iterator in arg)return tuple2([...arg]);return struct3(arg)},struct3=(r)=>{let entries2=Object.entries(r),result=pipe(entries2[0][1],map24((value)=>({[entries2[0][0]]:value})));if(entries2.length===1)return result;let rest=entries2.slice(1);for(let[key,config2]of rest)result=pipe(result,zipWith13(config2,(record,value)=>({...record,[key]:value})));return result},succeed17=(value)=>{let constant2=Object.create(proto13);return constant2._tag=OP_CONSTANT,constant2.value=value,constant2.parse=()=>right2(value),constant2},suspend11=(config2)=>{let lazy=Object.create(proto13);return lazy._tag=OP_LAZY,lazy.config=config2,lazy},sync11=(value)=>{return suspend11(()=>succeed17(value()))},hashMap2=(config2,name)=>{let table2=Object.create(proto13);return table2._tag=OP_HASHMAP,table2.valueConfig=config2,name===void 0?table2:nested2(table2,name)},isConfig=(u)=>hasProperty(u,ConfigTypeId),tuple2=(tuple3)=>{if(tuple3.length===0)return succeed17([]);if(tuple3.length===1)return map24(tuple3[0],(x)=>[x]);let result=map24(tuple3[0],(x)=>[x]);for(let i=1;i<tuple3.length;i++){let config2=tuple3[i];result=pipe(result,zipWith13(config2,(tuple4,value)=>[...tuple4,value]))}return result},unwrap4=(wrapped)=>{if(isConfig(wrapped))return wrapped;return struct3(Object.fromEntries(Object.entries(wrapped).map(([k,a])=>[k,unwrap4(a)])))},validate3=dual(2,(self,{message,validation})=>mapOrFail(self,(a)=>{if(validation(a))return right2(a);return left2(InvalidData([],message))})),withDefault=dual(2,(self,def)=>orElseIf(self,{orElse:()=>succeed17(def),if:isMissingDataOnly2})),withDescription=dual(2,(self,description)=>{let described=Object.create(proto13);return described._tag=OP_DESCRIBED,described.config=self,described.description=description,described}),zip9=dual(2,(self,that)=>zipWith13(self,that,(a,b)=>[a,b])),zipWith13=dual(3,(self,that,f)=>{let zipWith14=Object.create(proto13);return zipWith14._tag=OP_ZIP_WITH,zipWith14.left=self,zipWith14.right=that,zipWith14.zip=f,zipWith14});var ConfigTypeId2=ConfigTypeId,all8=all7,array5=array4,boolean2=boolean,port2=port,url2=url,chunk4=chunk3,date2=date,fail18=fail17,number5=number4,integer2=integer,literal2=literal,logLevel2=logLevel,duration4=duration3,isConfig2=isConfig,map25=map24,mapAttempt2=mapAttempt,mapOrFail2=mapOrFail,nested3=nested2,orElse11=orElse10,orElseIf2=orElseIf,option4=option3,primitive2=primitive,repeat5=repeat4,secret2=secret,redacted2=redacted,branded2=branded,hashSet3=hashSet2,string3=string2,nonEmptyString2=nonEmptyString,succeed18=succeed17,suspend12=suspend11,sync12=sync11,hashMap3=hashMap2,unwrap5=unwrap4,validate4=validate3,withDefault2=withDefault,withDescription2=withDescription,zip10=zip9,zipWith14=zipWith13;var exports_BunRuntime={};__export(exports_BunRuntime,{runMain:()=>runMain3});var defaultLogger2=defaultLogger;var prettyLoggerDefault2=prettyLoggerDefault;var defaultTeardown=(exit3,onExit4)=>{onExit4(isFailure3(exit3)&&!isInterruptedOnly2(exit3.cause)?1:0)},addPrettyLogger=(refs,fiberId3)=>{let loggers=getOrDefault2(refs,currentLoggers2);if(!has3(loggers,defaultLogger2))return refs;return updateAs2(refs,{fiberId:fiberId3,fiberRef:currentLoggers2,value:loggers.pipe(remove4(defaultLogger2),add2(prettyLoggerDefault2))})},makeRunMain=(f)=>dual((args2)=>isEffect2(args2[0]),(effect4,options)=>{let fiber=options?.disableErrorReporting===!0?runFork2(effect4,{updateRefs:options?.disablePrettyLogger===!0?void 0:addPrettyLogger}):runFork2(tapErrorCause3(effect4,(cause3)=>{if(isInterruptedOnly2(cause3))return _void;return logError2(cause3)}),{updateRefs:options?.disablePrettyLogger===!0?void 0:addPrettyLogger}),teardown=options?.teardown??defaultTeardown;return f({fiber,teardown})});var runMain=makeRunMain(({fiber,teardown})=>{let keepAlive=setInterval(constVoid,2147483647),receivedSignal=!1;fiber.addObserver((exit3)=>{if(!receivedSignal)process.removeListener("SIGINT",onSigint),process.removeListener("SIGTERM",onSigint);clearInterval(keepAlive),teardown(exit3,(code)=>{if(receivedSignal||code!==0)process.exit(code)})});function onSigint(){receivedSignal=!0,process.removeListener("SIGINT",onSigint),process.removeListener("SIGTERM",onSigint),fiber.unsafeInterruptAsFork(fiber.id())}process.on("SIGINT",onSigint),process.on("SIGTERM",onSigint)});var runMain2=runMain;var runMain3=runMain2;var exports_Console={};__export(exports_Console,{withTime:()=>withTime2,withGroup:()=>withGroup2,withConsole:()=>withConsole3,warn:()=>warn2,trace:()=>trace2,timeLog:()=>timeLog2,time:()=>time2,table:()=>table2,setConsole:()=>setConsole2,log:()=>log4,info:()=>info2,group:()=>group2,error:()=>error2,dirxml:()=>dirxml2,dir:()=>dir2,debug:()=>debug2,countReset:()=>countReset2,count:()=>count5,consoleWith:()=>consoleWith3,clear:()=>clear2,assert:()=>assert2,TypeId:()=>TypeId18,Console:()=>Console});var TypeId18=TypeId8,Console=consoleTag,withConsole3=withConsole,setConsole2=setConsole,consoleWith3=consoleWith,assert2=assert,clear2=clear,count5=count,countReset2=countReset,debug2=debug,dir2=dir,dirxml2=dirxml,error2=error,group2=group,info2=info,log4=log2,table2=table,time2=time,timeLog2=timeLog,trace2=trace,warn2=warn,withGroup2=withGroup,withTime2=withTime;var BUILD_COMMIT="72aad04",BUILD_VERSION="0.0.1";var CLIConfig=exports_Data.struct,RedistailConfig=exports_Data.struct,PubSubMessage=exports_Data.struct,StreamMessage=exports_Data.struct;class CLIError extends exports_Data.TaggedError("CLIError"){}class ConfigError extends exports_Data.TaggedError("ConfigError"){}class MonitoringError extends exports_Data.TaggedError("MonitoringError"){}var StreamMonitorOptions=exports_Data.struct,isValidConnectionType=(type)=>type==="pubsub"||type==="stream",isValidTopicName=(name)=>typeof name==="string"&&name.trim().length>0,createInvalidArgumentError=(message,context7)=>new CLIError({reason:"InvalidArguments",message,context:context7}),createMissingArgumentError=(message,context7)=>new CLIError({reason:"MissingArguments",message,context:context7}),createEnvironmentError=(message,cause3,context7)=>new ConfigError({reason:"InvalidEnvironment",message,cause:cause3,context:context7});var createConnectionLostError=(message,cause3)=>new MonitoringError({reason:"ConnectionLost",message,retryable:!0,cause:cause3}),createSubscriptionFailedError=(message,retryable=!0,cause3)=>new MonitoringError({reason:"SubscriptionFailed",message,retryable,cause:cause3}),createStreamReadFailedError=(message,retryable=!0,cause3)=>new MonitoringError({reason:"StreamReadFailed",message,retryable,cause:cause3}),DEFAULT_CLI_REDIS_CONFIG={host:"127.0.0.1",port:6379,timeout:5000,retryAttempts:3,retryDelay:1000},DEFAULT_DISPLAY_CONFIG={colors:!0,timestamps:!0,prettyJson:!0},DEFAULT_MONITORING_CONFIG={blockTimeout:5000,maxReconnectAttempts:5};var CLIConfigService=exports_Context.GenericTag("CLIConfigService"),redisHost=exports_Config.withDefault(exports_Config.string("REDIS_HOST"),DEFAULT_CLI_REDIS_CONFIG.host),redisPort=exports_Config.withDefault(exports_Config.integer("REDIS_PORT"),DEFAULT_CLI_REDIS_CONFIG.port),redisUrl=exports_Config.option(exports_Config.string("REDIS_URL")),redisTimeout=exports_Config.withDefault(exports_Config.integer("REDIS_TIMEOUT"),DEFAULT_CLI_REDIS_CONFIG.timeout),redisRetryAttempts=exports_Config.withDefault(exports_Config.integer("REDIS_RETRY_ATTEMPTS"),DEFAULT_CLI_REDIS_CONFIG.retryAttempts),redisRetryDelay=exports_Config.withDefault(exports_Config.integer("REDIS_RETRY_DELAY"),DEFAULT_CLI_REDIS_CONFIG.retryDelay),redistailColors=exports_Config.withDefault(exports_Config.boolean("REDISTAIL_COLORS"),DEFAULT_DISPLAY_CONFIG.colors),redistailTimestamps=exports_Config.withDefault(exports_Config.boolean("REDISTAIL_TIMESTAMPS"),DEFAULT_DISPLAY_CONFIG.timestamps),redistailPrettyJson=exports_Config.withDefault(exports_Config.boolean("REDISTAIL_PRETTY_JSON"),DEFAULT_DISPLAY_CONFIG.prettyJson),redistailBlockTimeout=exports_Config.withDefault(exports_Config.integer("REDISTAIL_BLOCK_TIMEOUT"),DEFAULT_MONITORING_CONFIG.blockTimeout),redistailMaxReconnectAttempts=exports_Config.withDefault(exports_Config.integer("REDISTAIL_MAX_RECONNECT_ATTEMPTS"),DEFAULT_MONITORING_CONFIG.maxReconnectAttempts),parseCommandLineArgs=(args2)=>exports_Effect.gen(function*(){if(args2.includes("--help")||args2.includes("-h"))return CLIConfig({connectionType:"pubsub",topicName:"",help:!0});if(args2.includes("--version")||args2.includes("-v"))return CLIConfig({connectionType:"pubsub",topicName:"",version:!0});if(args2.length<2)return yield*exports_Effect.fail(createMissingArgumentError("Missing required arguments. Usage: redistail <pubsub|stream> <topic-name>","ARGUMENT_PARSING"));let[connectionType,topicName,...extraArgs]=args2;if(!isValidConnectionType(connectionType))return yield*exports_Effect.fail(createInvalidArgumentError(`Invalid connection type: ${connectionType}. Must be 'pubsub' or 'stream'`,"ARGUMENT_PARSING"));if(!isValidTopicName(topicName))return yield*exports_Effect.fail(createInvalidArgumentError("Topic name cannot be empty","ARGUMENT_PARSING"));if(extraArgs.length>0)return yield*exports_Effect.fail(createInvalidArgumentError(`Unexpected arguments: ${extraArgs.join(", ")}. Usage: redistail <pubsub|stream> <topic-name>`,"ARGUMENT_PARSING"));return CLIConfig({connectionType,topicName:topicName.trim()})}),loadRedistailConfig=()=>exports_Effect.gen(function*(){let config2=yield*exports_Effect.all({redisHost,redisPort,redisUrl,redisTimeout,redisRetryAttempts,redisRetryDelay,redistailColors,redistailTimestamps,redistailPrettyJson,redistailBlockTimeout,redistailMaxReconnectAttempts}).pipe(exports_Effect.mapError((configError)=>createEnvironmentError("Failed to load configuration from environment",configError,"CONFIG_LOADING")));if(config2.redisPort<1||config2.redisPort>65535)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDIS_PORT: ${config2.redisPort}. Must be between 1 and 65535`,void 0,"CONFIG_VALIDATION"));if(config2.redisTimeout<0)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDIS_TIMEOUT: ${config2.redisTimeout}. Must be non-negative`,void 0,"CONFIG_VALIDATION"));if(config2.redisRetryAttempts<0)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDIS_RETRY_ATTEMPTS: ${config2.redisRetryAttempts}. Must be non-negative`,void 0,"CONFIG_VALIDATION"));if(config2.redisRetryDelay<0)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDIS_RETRY_DELAY: ${config2.redisRetryDelay}. Must be non-negative`,void 0,"CONFIG_VALIDATION"));if(config2.redistailBlockTimeout<0)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDISTAIL_BLOCK_TIMEOUT: ${config2.redistailBlockTimeout}. Must be non-negative`,void 0,"CONFIG_VALIDATION"));if(config2.redistailMaxReconnectAttempts<0)return yield*exports_Effect.fail(createEnvironmentError(`Invalid REDISTAIL_MAX_RECONNECT_ATTEMPTS: ${config2.redistailMaxReconnectAttempts}. Must be non-negative`,void 0,"CONFIG_VALIDATION"));return RedistailConfig({redis:{host:config2.redisHost,port:config2.redisPort,url:config2.redisUrl._tag==="Some"?config2.redisUrl.value:void 0,timeout:config2.redisTimeout,retryAttempts:config2.redisRetryAttempts,retryDelay:config2.redisRetryDelay},display:{colors:config2.redistailColors,timestamps:config2.redistailTimestamps,prettyJson:config2.redistailPrettyJson},monitoring:{blockTimeout:config2.redistailBlockTimeout,maxReconnectAttempts:config2.redistailMaxReconnectAttempts}})}),showHelp=()=>exports_Console.log(`
42
+ redistail - Redis message monitoring utility
43
+
44
+ USAGE:
45
+ redistail <CONNECTION_TYPE> <TOPIC_NAME>
46
+
47
+ ARGUMENTS:
48
+ CONNECTION_TYPE Type of Redis connection: 'pubsub' or 'stream'
49
+ TOPIC_NAME Name of the channel (pubsub) or stream key (stream) to monitor
50
+
51
+ OPTIONS:
52
+ -h, --help Show this help message
53
+ -v, --version Show version information
54
+
55
+ ENVIRONMENT VARIABLES:
56
+ REDIS_HOST Redis hostname (default: ${DEFAULT_CLI_REDIS_CONFIG.host})
57
+ REDIS_PORT Redis port (default: ${DEFAULT_CLI_REDIS_CONFIG.port})
58
+ REDIS_URL Complete Redis connection URL (overrides host/port)
59
+ REDIS_TIMEOUT Connection timeout in ms (default: ${DEFAULT_CLI_REDIS_CONFIG.timeout})
60
+ REDIS_RETRY_ATTEMPTS Number of retry attempts (default: ${DEFAULT_CLI_REDIS_CONFIG.retryAttempts})
61
+ REDIS_RETRY_DELAY Delay between retries in ms (default: ${DEFAULT_CLI_REDIS_CONFIG.retryDelay})
62
+ REDISTAIL_COLORS Enable colored output (default: ${DEFAULT_DISPLAY_CONFIG.colors})
63
+ REDISTAIL_TIMESTAMPS Enable timestamps (default: ${DEFAULT_DISPLAY_CONFIG.timestamps})
64
+ REDISTAIL_PRETTY_JSON Pretty-print JSON content (default: ${DEFAULT_DISPLAY_CONFIG.prettyJson})
65
+ REDISTAIL_BLOCK_TIMEOUT Block timeout for streams in ms (default: ${DEFAULT_MONITORING_CONFIG.blockTimeout})
66
+ REDISTAIL_MAX_RECONNECT_ATTEMPTS Maximum reconnection attempts (default: ${DEFAULT_MONITORING_CONFIG.maxReconnectAttempts})
67
+
68
+ EXAMPLES:
69
+ redistail pubsub my-channel
70
+ redistail stream my-stream
71
+ REDIS_HOST=redis.example.com redistail pubsub notifications
72
+ REDIS_URL=redis://user:pass@redis.example.com:6380 redistail stream events
73
+ `),showVersion=()=>exports_Console.log(`redistail ${BUILD_VERSION}
74
+ Build: ${BUILD_COMMIT}`),cliConfigServiceImpl={parseArgs:parseCommandLineArgs,loadConfig:loadRedistailConfig,showHelp,showVersion},CLIConfigServiceLive=exports_Layer.succeed(CLIConfigService,cliConfigServiceImpl);var DisplayServiceTag=exports_Context.GenericTag("@redistail/DisplayService"),COLORS={RESET:"\x1B[0m",TIMESTAMP:"\x1B[90m",PUBSUB_CHANNEL:"\x1B[36m",STREAM_INFO:"\x1B[35m",FIELD_KEY:"\x1B[33m",CONTENT:"\x1B[37m",ERROR:"\x1B[31m"},formatTimestamp=(date3)=>date3.toISOString().replace("T"," ").replace("Z",""),tryPrettyPrintJson=(content,prettyJson)=>{if(!prettyJson)return content;try{let parsed=JSON.parse(content);return JSON.stringify(parsed,null,2)}catch{return content}},escapeNonPrintable=(content)=>{let chars=[];for(let i=0;i<=31;i++)chars.push(String.fromCharCode(i));for(let i=127;i<=159;i++)chars.push(String.fromCharCode(i));let nonPrintableRegex=new RegExp(`[${chars.join("")}]`,"g");return content.replace(nonPrintableRegex,(char)=>{return`\\x${char.charCodeAt(0).toString(16).padStart(2,"0")}`})},colorize=(text,color,enabled2)=>enabled2?`${color}${text}${COLORS.RESET}`:text,isBinaryContent=(content)=>{if(content.includes("\x00"))return!0;let chars=[];for(let i=0;i<=31;i++)chars.push(String.fromCharCode(i));for(let i=127;i<=159;i++)chars.push(String.fromCharCode(i));let nonPrintableRegex=new RegExp(`[${chars.join("")}]`,"g");return(content.match(nonPrintableRegex)||[]).length/content.length>0.1},formatContent=(content,prettyJson,colors2)=>{let safeContent=isBinaryContent(content)?escapeNonPrintable(content):content,formattedContent=tryPrettyPrintJson(safeContent,prettyJson);return colorize(formattedContent,COLORS.CONTENT,colors2)},createDisplayService=(config2)=>({formatPubSubMessage:(message)=>exports_Effect.sync(()=>{let parts2=[];if(config2.display.timestamps){let timestamp=formatTimestamp(message.timestamp);parts2.push(colorize(timestamp,COLORS.TIMESTAMP,config2.display.colors))}let channel=`[${message.channel}]`;parts2.push(colorize(channel,COLORS.PUBSUB_CHANNEL,config2.display.colors));let content=formatContent(message.content,config2.display.prettyJson,config2.display.colors);return parts2.push(content),parts2.join(" ")}),formatStreamMessage:(message)=>exports_Effect.sync(()=>{let parts2=[];if(config2.display.timestamps){let timestamp=formatTimestamp(message.timestamp);parts2.push(colorize(timestamp,COLORS.TIMESTAMP,config2.display.colors))}let streamInfo=`[${message.streamKey}:${message.entryId}]`;parts2.push(colorize(streamInfo,COLORS.STREAM_INFO,config2.display.colors));let fieldPairs=Object.entries(message.fields).map(([key,value])=>{let coloredKey=colorize(key,COLORS.FIELD_KEY,config2.display.colors),formattedValue=formatContent(value,config2.display.prettyJson,config2.display.colors);return`${coloredKey}=${formattedValue}`});if(fieldPairs.length>0)parts2.push(fieldPairs.join(" "));return parts2.join(" ")}),formatError:(error3)=>exports_Effect.sync(()=>{let errorMessage=`ERROR: ${error3.message}`;return colorize(errorMessage,COLORS.ERROR,config2.display.colors)}),outputMessage:(formatted)=>exports_Console.log(formatted),outputError:(error3)=>exports_Console.error(error3)});var DisplayServiceLive=exports_Layer.effect(DisplayServiceTag,exports_Effect.sync(()=>{let defaultConfig=RedistailConfig({redis:{host:"127.0.0.1",port:6379,timeout:5000,retryAttempts:3,retryDelay:1000},display:{colors:!0,timestamps:!0,prettyJson:!0},monitoring:{blockTimeout:5000,maxReconnectAttempts:5}});return createDisplayService(defaultConfig)})),createTestDisplayService=(config2)=>createDisplayService(config2);import{createRequire as createRequire2}from"node:module";var __create=Object.create,{getPrototypeOf:__getProtoOf,defineProperty:__defProp2,getOwnPropertyNames:__getOwnPropNames}=Object,__hasOwnProp=Object.prototype.hasOwnProperty,__toESM=(mod,isNodeMode,target)=>{target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp2(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp2(to,key,{get:()=>mod[key],enumerable:!0});return to},__commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports),__export2=(target,all9)=>{for(var name in all9)__defProp2(target,name,{get:all9[name],enumerable:!0,configurable:!0,set:(newValue)=>all9[name]=()=>newValue})},__require2=createRequire2(import.meta.url),require_verbatim_string=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.VerbatimString=void 0;class VerbatimString extends String{format;constructor(format4,value){super(value);this.format=format4}}exports.VerbatimString=VerbatimString}),require_errors=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.MultiErrorReply=exports.CommandTimeoutDuringMaintenanceError=exports.SocketTimeoutDuringMaintenanceError=exports.TimeoutError=exports.BlobError=exports.SimpleError=exports.ErrorReply=exports.ReconnectStrategyError=exports.RootNodesUnavailableError=exports.SocketClosedUnexpectedlyError=exports.DisconnectsClientError=exports.ClientOfflineError=exports.ClientClosedError=exports.SocketTimeoutError=exports.ConnectionTimeoutError=exports.WatchError=exports.AbortError=void 0;class AbortError extends Error{constructor(){super("The command was aborted")}}exports.AbortError=AbortError;class WatchError extends Error{constructor(message="One (or more) of the watched keys has been changed"){super(message)}}exports.WatchError=WatchError;class ConnectionTimeoutError extends Error{constructor(){super("Connection timeout")}}exports.ConnectionTimeoutError=ConnectionTimeoutError;class SocketTimeoutError extends Error{constructor(timeout5){super(`Socket timeout timeout. Expecting data, but didn't receive any in ${timeout5}ms.`)}}exports.SocketTimeoutError=SocketTimeoutError;class ClientClosedError extends Error{constructor(){super("The client is closed")}}exports.ClientClosedError=ClientClosedError;class ClientOfflineError extends Error{constructor(){super("The client is offline")}}exports.ClientOfflineError=ClientOfflineError;class DisconnectsClientError extends Error{constructor(){super("Disconnects client")}}exports.DisconnectsClientError=DisconnectsClientError;class SocketClosedUnexpectedlyError extends Error{constructor(){super("Socket closed unexpectedly")}}exports.SocketClosedUnexpectedlyError=SocketClosedUnexpectedlyError;class RootNodesUnavailableError extends Error{constructor(){super("All the root nodes are unavailable")}}exports.RootNodesUnavailableError=RootNodesUnavailableError;class ReconnectStrategyError extends Error{originalError;socketError;constructor(originalError,socketError){super(originalError.message);this.originalError=originalError,this.socketError=socketError}}exports.ReconnectStrategyError=ReconnectStrategyError;class ErrorReply extends Error{}exports.ErrorReply=ErrorReply;class SimpleError extends ErrorReply{}exports.SimpleError=SimpleError;class BlobError extends ErrorReply{}exports.BlobError=BlobError;class TimeoutError extends Error{}exports.TimeoutError=TimeoutError;class SocketTimeoutDuringMaintenanceError extends TimeoutError{constructor(timeout5){super(`Socket timeout during maintenance. Expecting data, but didn't receive any in ${timeout5}ms.`)}}exports.SocketTimeoutDuringMaintenanceError=SocketTimeoutDuringMaintenanceError;class CommandTimeoutDuringMaintenanceError extends TimeoutError{constructor(timeout5){super(`Command timeout during maintenance. Waited to write command for more than ${timeout5}ms.`)}}exports.CommandTimeoutDuringMaintenanceError=CommandTimeoutDuringMaintenanceError;class MultiErrorReply extends ErrorReply{replies;errorIndexes;constructor(replies,errorIndexes){super(`${errorIndexes.length} commands failed, see .replies and .errorIndexes for more information`);this.replies=replies,this.errorIndexes=errorIndexes}*errors(){for(let index of this.errorIndexes)yield this.replies[index]}}exports.MultiErrorReply=MultiErrorReply}),require_decoder=__commonJS((exports)=>{var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Decoder=exports.PUSH_TYPE_MAPPING=exports.RESP_TYPES=void 0;var verbatim_string_1=require_verbatim_string(),errors_1=require_errors();exports.RESP_TYPES={NULL:95,BOOLEAN:35,NUMBER:58,BIG_NUMBER:40,DOUBLE:44,SIMPLE_STRING:43,BLOB_STRING:36,VERBATIM_STRING:61,SIMPLE_ERROR:45,BLOB_ERROR:33,ARRAY:42,SET:126,MAP:37,PUSH:62};var ASCII={"\r":13,t:116,"+":43,"-":45,"0":48,".":46,i:105,n:110,E:69,e:101};exports.PUSH_TYPE_MAPPING={[exports.RESP_TYPES.BLOB_STRING]:Buffer};class Decoder{onReply;onErrorReply;onPush;getTypeMapping;#cursor=0;#next;constructor(config2){this.onReply=config2.onReply,this.onErrorReply=config2.onErrorReply,this.onPush=config2.onPush,this.getTypeMapping=config2.getTypeMapping}reset(){this.#cursor=0,this.#next=void 0}write(chunk32){if(this.#cursor>=chunk32.length){this.#cursor-=chunk32.length;return}if(this.#next){if(this.#next(chunk32)||this.#cursor>=chunk32.length){this.#cursor-=chunk32.length;return}}do{let type=chunk32[this.#cursor];if(++this.#cursor===chunk32.length){this.#next=this.#continueDecodeTypeValue.bind(this,type);break}if(this.#decodeTypeValue(type,chunk32))break}while(this.#cursor<chunk32.length);this.#cursor-=chunk32.length}#continueDecodeTypeValue(type,chunk32){return this.#next=void 0,this.#decodeTypeValue(type,chunk32)}#decodeTypeValue(type,chunk32){switch(type){case exports.RESP_TYPES.NULL:return this.onReply(this.#decodeNull()),!1;case exports.RESP_TYPES.BOOLEAN:return this.#handleDecodedValue(this.onReply,this.#decodeBoolean(chunk32));case exports.RESP_TYPES.NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeNumber(this.getTypeMapping()[exports.RESP_TYPES.NUMBER],chunk32));case exports.RESP_TYPES.BIG_NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeBigNumber(this.getTypeMapping()[exports.RESP_TYPES.BIG_NUMBER],chunk32));case exports.RESP_TYPES.DOUBLE:return this.#handleDecodedValue(this.onReply,this.#decodeDouble(this.getTypeMapping()[exports.RESP_TYPES.DOUBLE],chunk32));case exports.RESP_TYPES.SIMPLE_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeSimpleString(this.getTypeMapping()[exports.RESP_TYPES.SIMPLE_STRING],chunk32));case exports.RESP_TYPES.BLOB_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeBlobString(this.getTypeMapping()[exports.RESP_TYPES.BLOB_STRING],chunk32));case exports.RESP_TYPES.VERBATIM_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeVerbatimString(this.getTypeMapping()[exports.RESP_TYPES.VERBATIM_STRING],chunk32));case exports.RESP_TYPES.SIMPLE_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeSimpleError(chunk32));case exports.RESP_TYPES.BLOB_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeBlobError(chunk32));case exports.RESP_TYPES.ARRAY:return this.#handleDecodedValue(this.onReply,this.#decodeArray(this.getTypeMapping(),chunk32));case exports.RESP_TYPES.SET:return this.#handleDecodedValue(this.onReply,this.#decodeSet(this.getTypeMapping(),chunk32));case exports.RESP_TYPES.MAP:return this.#handleDecodedValue(this.onReply,this.#decodeMap(this.getTypeMapping(),chunk32));case exports.RESP_TYPES.PUSH:return this.#handleDecodedValue(this.onPush,this.#decodeArray(exports.PUSH_TYPE_MAPPING,chunk32));default:throw Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#handleDecodedValue(cb,value){if(typeof value==="function")return this.#next=this.#continueDecodeValue.bind(this,cb,value),!0;return cb(value),!1}#continueDecodeValue(cb,next4,chunk32){return this.#next=void 0,this.#handleDecodedValue(cb,next4(chunk32))}#decodeNull(){return this.#cursor+=2,null}#decodeBoolean(chunk32){let boolean3=chunk32[this.#cursor]===ASCII.t;return this.#cursor+=3,boolean3}#decodeNumber(type,chunk32){if(type===String)return this.#decodeSimpleString(String,chunk32);switch(chunk32[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeNumberValue(!1,chunk32);case ASCII["-"]:return this.#maybeDecodeNumberValue(!0,chunk32);default:return this.#decodeNumberValue(!1,this.#decodeUnsingedNumber.bind(this,0),chunk32)}}#maybeDecodeNumberValue(isNegative,chunk32){let cb=this.#decodeUnsingedNumber.bind(this,0);return++this.#cursor===chunk32.length?this.#decodeNumberValue.bind(this,isNegative,cb):this.#decodeNumberValue(isNegative,cb,chunk32)}#decodeNumberValue(isNegative,numberCb,chunk32){let number32=numberCb(chunk32);return typeof number32==="function"?this.#decodeNumberValue.bind(this,isNegative,number32):isNegative?-number32:number32}#decodeUnsingedNumber(number32,chunk32){let cursor=this.#cursor;do{let byte=chunk32[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,number32;number32=number32*10+byte-ASCII["0"]}while(++cursor<chunk32.length);return this.#cursor=cursor,this.#decodeUnsingedNumber.bind(this,number32)}#decodeBigNumber(type,chunk32){if(type===String)return this.#decodeSimpleString(String,chunk32);switch(chunk32[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeBigNumberValue(!1,chunk32);case ASCII["-"]:return this.#maybeDecodeBigNumberValue(!0,chunk32);default:return this.#decodeBigNumberValue(!1,this.#decodeUnsingedBigNumber.bind(this,0n),chunk32)}}#maybeDecodeBigNumberValue(isNegative,chunk32){let cb=this.#decodeUnsingedBigNumber.bind(this,0n);return++this.#cursor===chunk32.length?this.#decodeBigNumberValue.bind(this,isNegative,cb):this.#decodeBigNumberValue(isNegative,cb,chunk32)}#decodeBigNumberValue(isNegative,bigNumberCb,chunk32){let bigNumber=bigNumberCb(chunk32);return typeof bigNumber==="function"?this.#decodeBigNumberValue.bind(this,isNegative,bigNumber):isNegative?-bigNumber:bigNumber}#decodeUnsingedBigNumber(bigNumber,chunk32){let cursor=this.#cursor;do{let byte=chunk32[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,bigNumber;bigNumber=bigNumber*10n+BigInt(byte-ASCII["0"])}while(++cursor<chunk32.length);return this.#cursor=cursor,this.#decodeUnsingedBigNumber.bind(this,bigNumber)}#decodeDouble(type,chunk32){if(type===String)return this.#decodeSimpleString(String,chunk32);switch(chunk32[this.#cursor]){case ASCII.n:return this.#cursor+=5,NaN;case ASCII["+"]:return this.#maybeDecodeDoubleInteger(!1,chunk32);case ASCII["-"]:return this.#maybeDecodeDoubleInteger(!0,chunk32);default:return this.#decodeDoubleInteger(!1,0,chunk32)}}#maybeDecodeDoubleInteger(isNegative,chunk32){return++this.#cursor===chunk32.length?this.#decodeDoubleInteger.bind(this,isNegative,0):this.#decodeDoubleInteger(isNegative,0,chunk32)}#decodeDoubleInteger(isNegative,integer3,chunk32){if(chunk32[this.#cursor]===ASCII.i)return this.#cursor+=5,isNegative?-1/0:1/0;return this.#continueDecodeDoubleInteger(isNegative,integer3,chunk32)}#continueDecodeDoubleInteger(isNegative,integer3,chunk32){let cursor=this.#cursor;do{let byte=chunk32[cursor];switch(byte){case ASCII["."]:return this.#cursor=cursor+1,this.#cursor<chunk32.length?this.#decodeDoubleDecimal(isNegative,0,integer3,chunk32):this.#decodeDoubleDecimal.bind(this,isNegative,0,integer3);case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let i=isNegative?-integer3:integer3;return this.#cursor<chunk32.length?this.#decodeDoubleExponent(i,chunk32):this.#decodeDoubleExponent.bind(this,i);case ASCII["\r"]:return this.#cursor=cursor+2,isNegative?-integer3:integer3;default:integer3=integer3*10+byte-ASCII["0"]}}while(++cursor<chunk32.length);return this.#cursor=cursor,this.#continueDecodeDoubleInteger.bind(this,isNegative,integer3)}static#DOUBLE_DECIMAL_MULTIPLIERS=[0.1,0.01,0.001,0.0001,0.00001,0.000001,0.0000001,0.00000001,0.000000001,0.0000000001,0.00000000001,0.000000000001,0.0000000000001,0.00000000000001,0.000000000000001,0.0000000000000001,0.00000000000000001];#decodeDoubleDecimal(isNegative,decimalIndex,double,chunk32){let cursor=this.#cursor;do{let byte=chunk32[cursor];switch(byte){case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let d=isNegative?-double:double;return this.#cursor===chunk32.length?this.#decodeDoubleExponent.bind(this,d):this.#decodeDoubleExponent(d,chunk32);case ASCII["\r"]:return this.#cursor=cursor+2,isNegative?-double:double}if(decimalIndex<_a.#DOUBLE_DECIMAL_MULTIPLIERS.length)double+=(byte-ASCII["0"])*_a.#DOUBLE_DECIMAL_MULTIPLIERS[decimalIndex++]}while(++cursor<chunk32.length);return this.#cursor=cursor,this.#decodeDoubleDecimal.bind(this,isNegative,decimalIndex,double)}#decodeDoubleExponent(double,chunk32){switch(chunk32[this.#cursor]){case ASCII["+"]:return++this.#cursor===chunk32.length?this.#continueDecodeDoubleExponent.bind(this,!1,double,0):this.#continueDecodeDoubleExponent(!1,double,0,chunk32);case ASCII["-"]:return++this.#cursor===chunk32.length?this.#continueDecodeDoubleExponent.bind(this,!0,double,0):this.#continueDecodeDoubleExponent(!0,double,0,chunk32)}return this.#continueDecodeDoubleExponent(!1,double,0,chunk32)}#continueDecodeDoubleExponent(isNegative,double,exponent,chunk32){let cursor=this.#cursor;do{let byte=chunk32[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,double*10**(isNegative?-exponent:exponent);exponent=exponent*10+byte-ASCII["0"]}while(++cursor<chunk32.length);return this.#cursor=cursor,this.#continueDecodeDoubleExponent.bind(this,isNegative,double,exponent)}#findCRLF(chunk32,cursor){while(chunk32[cursor]!==ASCII["\r"])if(++cursor===chunk32.length)return this.#cursor=chunk32.length,-1;return this.#cursor=cursor+2,cursor}#decodeSimpleString(type,chunk32){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk32,start3);if(crlfIndex===-1)return this.#continueDecodeSimpleString.bind(this,[chunk32.subarray(start3)],type);let slice=chunk32.subarray(start3,crlfIndex);return type===Buffer?slice:slice.toString()}#continueDecodeSimpleString(chunks3,type,chunk32){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk32,start3);if(crlfIndex===-1)return chunks3.push(chunk32.subarray(start3)),this.#continueDecodeSimpleString.bind(this,chunks3,type);chunks3.push(chunk32.subarray(start3,crlfIndex));let buffer3=Buffer.concat(chunks3);return type===Buffer?buffer3:buffer3.toString()}#decodeBlobString(type,chunk32){if(chunk32[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;let length3=this.#decodeUnsingedNumber(0,chunk32);if(typeof length3==="function")return this.#continueDecodeBlobStringLength.bind(this,length3,type);else if(this.#cursor>=chunk32.length)return this.#decodeBlobStringWithLength.bind(this,length3,type);return this.#decodeBlobStringWithLength(length3,type,chunk32)}#continueDecodeBlobStringLength(lengthCb,type,chunk32){let length3=lengthCb(chunk32);if(typeof length3==="function")return this.#continueDecodeBlobStringLength.bind(this,length3,type);else if(this.#cursor>=chunk32.length)return this.#decodeBlobStringWithLength.bind(this,length3,type);return this.#decodeBlobStringWithLength(length3,type,chunk32)}#decodeStringWithLength(length3,skip,type,chunk32){let end6=this.#cursor+length3;if(end6>=chunk32.length){let slice2=chunk32.subarray(this.#cursor);return this.#cursor=chunk32.length,this.#continueDecodeStringWithLength.bind(this,length3-slice2.length,[slice2],skip,type)}let slice=chunk32.subarray(this.#cursor,end6);return this.#cursor=end6+skip,type===Buffer?slice:slice.toString()}#continueDecodeStringWithLength(length3,chunks3,skip,type,chunk32){let end6=this.#cursor+length3;if(end6>=chunk32.length){let slice=chunk32.subarray(this.#cursor);return chunks3.push(slice),this.#cursor=chunk32.length,this.#continueDecodeStringWithLength.bind(this,length3-slice.length,chunks3,skip,type)}chunks3.push(chunk32.subarray(this.#cursor,end6)),this.#cursor=end6+skip;let buffer3=Buffer.concat(chunks3);return type===Buffer?buffer3:buffer3.toString()}#decodeBlobStringWithLength(length3,type,chunk32){return this.#decodeStringWithLength(length3,2,type,chunk32)}#decodeVerbatimString(type,chunk32){return this.#continueDecodeVerbatimStringLength(this.#decodeUnsingedNumber.bind(this,0),type,chunk32)}#continueDecodeVerbatimStringLength(lengthCb,type,chunk32){let length3=lengthCb(chunk32);return typeof length3==="function"?this.#continueDecodeVerbatimStringLength.bind(this,length3,type):this.#decodeVerbatimStringWithLength(length3,type,chunk32)}#decodeVerbatimStringWithLength(length3,type,chunk32){let stringLength=length3-4;if(type===verbatim_string_1.VerbatimString)return this.#decodeVerbatimStringFormat(stringLength,chunk32);return this.#cursor+=4,this.#cursor>=chunk32.length?this.#decodeBlobStringWithLength.bind(this,stringLength,type):this.#decodeBlobStringWithLength(stringLength,type,chunk32)}#decodeVerbatimStringFormat(stringLength,chunk32){let formatCb=this.#decodeStringWithLength.bind(this,3,1,String);return this.#cursor>=chunk32.length?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,formatCb):this.#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk32)}#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk32){let format4=formatCb(chunk32);return typeof format4==="function"?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,format4):this.#decodeVerbatimStringWithFormat(stringLength,format4,chunk32)}#decodeVerbatimStringWithFormat(stringLength,format4,chunk32){return this.#continueDecodeVerbatimStringWithFormat(format4,this.#decodeBlobStringWithLength.bind(this,stringLength,String),chunk32)}#continueDecodeVerbatimStringWithFormat(format4,stringCb,chunk32){let string22=stringCb(chunk32);return typeof string22==="function"?this.#continueDecodeVerbatimStringWithFormat.bind(this,format4,string22):new verbatim_string_1.VerbatimString(format4,string22)}#decodeSimpleError(chunk32){let string22=this.#decodeSimpleString(String,chunk32);return typeof string22==="function"?this.#continueDecodeSimpleError.bind(this,string22):new errors_1.SimpleError(string22)}#continueDecodeSimpleError(stringCb,chunk32){let string22=stringCb(chunk32);return typeof string22==="function"?this.#continueDecodeSimpleError.bind(this,string22):new errors_1.SimpleError(string22)}#decodeBlobError(chunk32){let string22=this.#decodeBlobString(String,chunk32);return typeof string22==="function"?this.#continueDecodeBlobError.bind(this,string22):new errors_1.BlobError(string22)}#continueDecodeBlobError(stringCb,chunk32){let string22=stringCb(chunk32);return typeof string22==="function"?this.#continueDecodeBlobError.bind(this,string22):new errors_1.BlobError(string22)}#decodeNestedType(typeMapping,chunk32){let type=chunk32[this.#cursor];return++this.#cursor===chunk32.length?this.#decodeNestedTypeValue.bind(this,type,typeMapping):this.#decodeNestedTypeValue(type,typeMapping,chunk32)}#decodeNestedTypeValue(type,typeMapping,chunk32){switch(type){case exports.RESP_TYPES.NULL:return this.#decodeNull();case exports.RESP_TYPES.BOOLEAN:return this.#decodeBoolean(chunk32);case exports.RESP_TYPES.NUMBER:return this.#decodeNumber(typeMapping[exports.RESP_TYPES.NUMBER],chunk32);case exports.RESP_TYPES.BIG_NUMBER:return this.#decodeBigNumber(typeMapping[exports.RESP_TYPES.BIG_NUMBER],chunk32);case exports.RESP_TYPES.DOUBLE:return this.#decodeDouble(typeMapping[exports.RESP_TYPES.DOUBLE],chunk32);case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(typeMapping[exports.RESP_TYPES.SIMPLE_STRING],chunk32);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(typeMapping[exports.RESP_TYPES.BLOB_STRING],chunk32);case exports.RESP_TYPES.VERBATIM_STRING:return this.#decodeVerbatimString(typeMapping[exports.RESP_TYPES.VERBATIM_STRING],chunk32);case exports.RESP_TYPES.SIMPLE_ERROR:return this.#decodeSimpleError(chunk32);case exports.RESP_TYPES.BLOB_ERROR:return this.#decodeBlobError(chunk32);case exports.RESP_TYPES.ARRAY:return this.#decodeArray(typeMapping,chunk32);case exports.RESP_TYPES.SET:return this.#decodeSet(typeMapping,chunk32);case exports.RESP_TYPES.MAP:return this.#decodeMap(typeMapping,chunk32);default:throw Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#decodeArray(typeMapping,chunk32){if(chunk32[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;return this.#decodeArrayWithLength(this.#decodeUnsingedNumber(0,chunk32),typeMapping,chunk32)}#decodeArrayWithLength(length3,typeMapping,chunk32){return typeof length3==="function"?this.#continueDecodeArrayLength.bind(this,length3,typeMapping):this.#decodeArrayItems(Array(length3),0,typeMapping,chunk32)}#continueDecodeArrayLength(lengthCb,typeMapping,chunk32){return this.#decodeArrayWithLength(lengthCb(chunk32),typeMapping,chunk32)}#decodeArrayItems(array42,filled,typeMapping,chunk32){for(let i=filled;i<array42.length;i++){if(this.#cursor>=chunk32.length)return this.#decodeArrayItems.bind(this,array42,i,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk32);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array42,i,item,typeMapping);array42[i]=item}return array42}#continueDecodeArrayItems(array42,filled,itemCb,typeMapping,chunk32){let item=itemCb(chunk32);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array42,filled,item,typeMapping);return array42[filled++]=item,this.#decodeArrayItems(array42,filled,typeMapping,chunk32)}#decodeSet(typeMapping,chunk32){let length3=this.#decodeUnsingedNumber(0,chunk32);if(typeof length3==="function")return this.#continueDecodeSetLength.bind(this,length3,typeMapping);return this.#decodeSetItems(length3,typeMapping,chunk32)}#continueDecodeSetLength(lengthCb,typeMapping,chunk32){let length3=lengthCb(chunk32);return typeof length3==="function"?this.#continueDecodeSetLength.bind(this,length3,typeMapping):this.#decodeSetItems(length3,typeMapping,chunk32)}#decodeSetItems(length3,typeMapping,chunk32){return typeMapping[exports.RESP_TYPES.SET]===Set?this.#decodeSetAsSet(new Set,length3,typeMapping,chunk32):this.#decodeArrayItems(Array(length3),0,typeMapping,chunk32)}#decodeSetAsSet(set8,remaining,typeMapping,chunk32){while(remaining>0){if(this.#cursor>=chunk32.length)return this.#decodeSetAsSet.bind(this,set8,remaining,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk32);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set8,remaining,item,typeMapping);set8.add(item),--remaining}return set8}#continueDecodeSetAsSet(set8,remaining,itemCb,typeMapping,chunk32){let item=itemCb(chunk32);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set8,remaining,item,typeMapping);return set8.add(item),this.#decodeSetAsSet(set8,remaining-1,typeMapping,chunk32)}#decodeMap(typeMapping,chunk32){let length3=this.#decodeUnsingedNumber(0,chunk32);if(typeof length3==="function")return this.#continueDecodeMapLength.bind(this,length3,typeMapping);return this.#decodeMapItems(length3,typeMapping,chunk32)}#continueDecodeMapLength(lengthCb,typeMapping,chunk32){let length3=lengthCb(chunk32);return typeof length3==="function"?this.#continueDecodeMapLength.bind(this,length3,typeMapping):this.#decodeMapItems(length3,typeMapping,chunk32)}#decodeMapItems(length3,typeMapping,chunk32){switch(typeMapping[exports.RESP_TYPES.MAP]){case Map:return this.#decodeMapAsMap(new Map,length3,typeMapping,chunk32);case Array:return this.#decodeArrayItems(Array(length3*2),0,typeMapping,chunk32);default:return this.#decodeMapAsObject(Object.create(null),length3,typeMapping,chunk32)}}#decodeMapAsMap(map222,remaining,typeMapping,chunk32){while(remaining>0){if(this.#cursor>=chunk32.length)return this.#decodeMapAsMap.bind(this,map222,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk32);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map222,remaining,key,typeMapping);if(this.#cursor>=chunk32.length)return this.#continueDecodeMapValue.bind(this,map222,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk32);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map222,remaining,key,value,typeMapping);map222.set(key,value),--remaining}return map222}#decodeMapKey(typeMapping,chunk32){let type=chunk32[this.#cursor];return++this.#cursor===chunk32.length?this.#decodeMapKeyValue.bind(this,type,typeMapping):this.#decodeMapKeyValue(type,typeMapping,chunk32)}#decodeMapKeyValue(type,typeMapping,chunk32){switch(type){case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(String,chunk32);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(String,chunk32);default:return this.#decodeNestedTypeValue(type,typeMapping,chunk32)}}#continueDecodeMapKey(map222,remaining,keyCb,typeMapping,chunk32){let key=keyCb(chunk32);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map222,remaining,key,typeMapping);if(this.#cursor>=chunk32.length)return this.#continueDecodeMapValue.bind(this,map222,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk32);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map222,remaining,key,value,typeMapping);return map222.set(key,value),this.#decodeMapAsMap(map222,remaining-1,typeMapping,chunk32)}#continueDecodeMapValue(map222,remaining,key,valueCb,typeMapping,chunk32){let value=valueCb(chunk32);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map222,remaining,key,value,typeMapping);return map222.set(key,value),this.#decodeMapAsMap(map222,remaining-1,typeMapping,chunk32)}#decodeMapAsObject(object,remaining,typeMapping,chunk32){while(remaining>0){if(this.#cursor>=chunk32.length)return this.#decodeMapAsObject.bind(this,object,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk32);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk32.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk32);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);object[key]=value,--remaining}return object}#continueDecodeMapAsObjectKey(object,remaining,keyCb,typeMapping,chunk32){let key=keyCb(chunk32);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk32.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk32);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk32)}#continueDecodeMapAsObjectValue(object,remaining,key,valueCb,typeMapping,chunk32){let value=valueCb(chunk32);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk32)}}exports.Decoder=Decoder,_a=Decoder}),require_lua_script=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.scriptSha1=exports.defineScript=void 0;var node_crypto_1=__require2("node:crypto");function defineScript(script){return{...script,SHA1:scriptSha1(script.SCRIPT)}}exports.defineScript=defineScript;function scriptSha1(script){return(0,node_crypto_1.createHash)("sha1").update(script).digest("hex")}exports.scriptSha1=scriptSha1}),require_ACL_CAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,categoryName){if(parser.push("ACL","CAT"),categoryName)parser.push(categoryName)},transformReply:void 0}}),require_ACL_DELUSER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,username){parser.push("ACL","DELUSER"),parser.pushVariadic(username)},transformReply:void 0}}),require_ACL_DRYRUN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,username,command){parser.push("ACL","DRYRUN",username,...command)},transformReply:void 0}}),require_ACL_GENPASS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,bits){if(parser.push("ACL","GENPASS"),bits)parser.push(bits.toString())},transformReply:void 0}}),require_ACL_GETUSER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,username){parser.push("ACL","GETUSER",username)},transformReply:{2:(reply)=>({flags:reply[1],passwords:reply[3],commands:reply[5],keys:reply[7],channels:reply[9],selectors:reply[11]?.map((selector)=>{let inferred=selector;return{commands:inferred[1],keys:inferred[3],channels:inferred[5]}})}),3:void 0}}}),require_ACL_LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ACL","LIST")},transformReply:void 0}}),require_ACL_LOAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ACL","LOAD")},transformReply:void 0}}),require_parser=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.BasicCommandParser=void 0;class BasicCommandParser{#redisArgs=[];#keys=[];preserve;get redisArgs(){return this.#redisArgs}get keys(){return this.#keys}get firstKey(){return this.#keys[0]}get cacheKey(){let tmp=Array(this.#redisArgs.length*2);for(let i=0;i<this.#redisArgs.length;i++)tmp[i]=this.#redisArgs[i].length,tmp[i+this.#redisArgs.length]=this.#redisArgs[i];return tmp.join("_")}push(...arg){this.#redisArgs.push(...arg)}pushVariadic(vals){if(Array.isArray(vals))for(let val of vals)this.push(val);else this.push(vals)}pushVariadicWithLength(vals){if(Array.isArray(vals))this.#redisArgs.push(vals.length.toString());else this.#redisArgs.push("1");this.pushVariadic(vals)}pushVariadicNumber(vals){if(Array.isArray(vals))for(let val of vals)this.push(val.toString());else this.push(vals.toString())}pushKey(key){this.#keys.push(key),this.#redisArgs.push(key)}pushKeysLength(keys3){if(Array.isArray(keys3))this.#redisArgs.push(keys3.length.toString());else this.#redisArgs.push("1");this.pushKeys(keys3)}pushKeys(keys3){if(Array.isArray(keys3))this.#keys.push(...keys3),this.#redisArgs.push(...keys3);else this.#keys.push(keys3),this.#redisArgs.push(keys3)}}exports.BasicCommandParser=BasicCommandParser}),require_generic_transformers=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformRedisJsonNullReply=exports.transformRedisJsonReply=exports.transformRedisJsonArgument=exports.transformStreamsMessagesReplyResp3=exports.transformStreamsMessagesReplyResp2=exports.transformStreamMessagesReply=exports.transformStreamMessageNullReply=exports.transformStreamMessageReply=exports.parseArgs=exports.parseZKeysArguments=exports.transformRangeReply=exports.parseSlotRangesArguments=exports.transformFunctionListItemReply=exports.RedisFunctionFlags=exports.transformCommandReply=exports.CommandCategories=exports.CommandFlags=exports.parseOptionalVariadicArgument=exports.pushVariadicArgument=exports.pushVariadicNumberArguments=exports.pushVariadicArguments=exports.pushEvalArguments=exports.evalFirstKeyIndex=exports.transformPXAT=exports.transformEXAT=exports.transformSortedSetReply=exports.transformTuplesReply=exports.createTransformTuplesReplyFunc=exports.transformTuplesToMap=exports.transformNullableDoubleReply=exports.createTransformNullableDoubleReplyResp2Func=exports.transformDoubleArrayReply=exports.createTransformDoubleReplyResp2Func=exports.transformDoubleReply=exports.transformStringDoubleArgument=exports.transformDoubleArgument=exports.transformBooleanArrayReply=exports.transformBooleanReply=exports.isArrayReply=exports.isNullReply=void 0;var parser_1=require_parser(),decoder_1=require_decoder();function isNullReply(reply){return reply===null}exports.isNullReply=isNullReply;function isArrayReply(reply){return Array.isArray(reply)}exports.isArrayReply=isArrayReply,exports.transformBooleanReply={2:(reply)=>reply===1,3:void 0},exports.transformBooleanArrayReply={2:(reply)=>{return reply.map(exports.transformBooleanReply[2])},3:void 0};function transformDoubleArgument(num){switch(num){case 1/0:return"+inf";case-1/0:return"-inf";default:return num.toString()}}exports.transformDoubleArgument=transformDoubleArgument;function transformStringDoubleArgument(num){if(typeof num!=="number")return num;return transformDoubleArgument(num)}exports.transformStringDoubleArgument=transformStringDoubleArgument,exports.transformDoubleReply={2:(reply,preserve,typeMapping)=>{switch(typeMapping?typeMapping[decoder_1.RESP_TYPES.DOUBLE]:void 0){case String:return reply;default:{let ret;switch(reply.toString()){case"inf":case"+inf":ret=1/0;case"-inf":ret=-1/0;case"nan":ret=NaN;default:ret=Number(reply)}return ret}}},3:void 0};function createTransformDoubleReplyResp2Func(preserve,typeMapping){return(reply)=>{return exports.transformDoubleReply[2](reply,preserve,typeMapping)}}exports.createTransformDoubleReplyResp2Func=createTransformDoubleReplyResp2Func,exports.transformDoubleArrayReply={2:(reply,preserve,typeMapping)=>{return reply.map(createTransformDoubleReplyResp2Func(preserve,typeMapping))},3:void 0};function createTransformNullableDoubleReplyResp2Func(preserve,typeMapping){return(reply)=>{return exports.transformNullableDoubleReply[2](reply,preserve,typeMapping)}}exports.createTransformNullableDoubleReplyResp2Func=createTransformNullableDoubleReplyResp2Func,exports.transformNullableDoubleReply={2:(reply,preserve,typeMapping)=>{if(reply===null)return null;return exports.transformDoubleReply[2](reply,preserve,typeMapping)},3:void 0};function transformTuplesToMap(reply,func){let message=Object.create(null);for(let i=0;i<reply.length;i+=2)message[reply[i].toString()]=func(reply[i+1]);return message}exports.transformTuplesToMap=transformTuplesToMap;function createTransformTuplesReplyFunc(preserve,typeMapping){return(reply)=>{return transformTuplesReply(reply,preserve,typeMapping)}}exports.createTransformTuplesReplyFunc=createTransformTuplesReplyFunc;function transformTuplesReply(reply,preserve,typeMapping){let mapType=typeMapping?typeMapping[decoder_1.RESP_TYPES.MAP]:void 0,inferred=reply;switch(mapType){case Array:return reply;case Map:{let ret=new Map;for(let i=0;i<inferred.length;i+=2)ret.set(inferred[i].toString(),inferred[i+1]);return ret}default:{let ret=Object.create(null);for(let i=0;i<inferred.length;i+=2)ret[inferred[i].toString()]=inferred[i+1];return ret}}}exports.transformTuplesReply=transformTuplesReply,exports.transformSortedSetReply={2:(reply,preserve,typeMapping)=>{let inferred=reply,members=[];for(let i=0;i<inferred.length;i+=2)members.push({value:inferred[i],score:exports.transformDoubleReply[2](inferred[i+1],preserve,typeMapping)});return members},3:(reply)=>{return reply.map((member)=>{let[value,score]=member;return{value,score}})}};function transformEXAT(EXAT){return(typeof EXAT==="number"?EXAT:Math.floor(EXAT.getTime()/1000)).toString()}exports.transformEXAT=transformEXAT;function transformPXAT(PXAT){return(typeof PXAT==="number"?PXAT:PXAT.getTime()).toString()}exports.transformPXAT=transformPXAT;function evalFirstKeyIndex(options){return options?.keys?.[0]}exports.evalFirstKeyIndex=evalFirstKeyIndex;function pushEvalArguments(args2,options){if(options?.keys)args2.push(options.keys.length.toString(),...options.keys);else args2.push("0");if(options?.arguments)args2.push(...options.arguments);return args2}exports.pushEvalArguments=pushEvalArguments;function pushVariadicArguments(args2,value){if(Array.isArray(value))args2=args2.concat(value);else args2.push(value);return args2}exports.pushVariadicArguments=pushVariadicArguments;function pushVariadicNumberArguments(args2,value){if(Array.isArray(value))for(let item of value)args2.push(item.toString());else args2.push(value.toString());return args2}exports.pushVariadicNumberArguments=pushVariadicNumberArguments;function pushVariadicArgument(args2,value){if(Array.isArray(value))args2.push(value.length.toString(),...value);else args2.push("1",value);return args2}exports.pushVariadicArgument=pushVariadicArgument;function parseOptionalVariadicArgument(parser,name,value){if(value===void 0)return;parser.push(name),parser.pushVariadicWithLength(value)}exports.parseOptionalVariadicArgument=parseOptionalVariadicArgument;var CommandFlags;(function(CommandFlags2){CommandFlags2.WRITE="write",CommandFlags2.READONLY="readonly",CommandFlags2.DENYOOM="denyoom",CommandFlags2.ADMIN="admin",CommandFlags2.PUBSUB="pubsub",CommandFlags2.NOSCRIPT="noscript",CommandFlags2.RANDOM="random",CommandFlags2.SORT_FOR_SCRIPT="sort_for_script",CommandFlags2.LOADING="loading",CommandFlags2.STALE="stale",CommandFlags2.SKIP_MONITOR="skip_monitor",CommandFlags2.ASKING="asking",CommandFlags2.FAST="fast",CommandFlags2.MOVABLEKEYS="movablekeys"})(CommandFlags||(exports.CommandFlags=CommandFlags={}));var CommandCategories;(function(CommandCategories2){CommandCategories2.KEYSPACE="@keyspace",CommandCategories2.READ="@read",CommandCategories2.WRITE="@write",CommandCategories2.SET="@set",CommandCategories2.SORTEDSET="@sortedset",CommandCategories2.LIST="@list",CommandCategories2.HASH="@hash",CommandCategories2.STRING="@string",CommandCategories2.BITMAP="@bitmap",CommandCategories2.HYPERLOGLOG="@hyperloglog",CommandCategories2.GEO="@geo",CommandCategories2.STREAM="@stream",CommandCategories2.PUBSUB="@pubsub",CommandCategories2.ADMIN="@admin",CommandCategories2.FAST="@fast",CommandCategories2.SLOW="@slow",CommandCategories2.BLOCKING="@blocking",CommandCategories2.DANGEROUS="@dangerous",CommandCategories2.CONNECTION="@connection",CommandCategories2.TRANSACTION="@transaction",CommandCategories2.SCRIPTING="@scripting"})(CommandCategories||(exports.CommandCategories=CommandCategories={}));function transformCommandReply([name,arity,flags,firstKeyIndex,lastKeyIndex,step4,categories]){return{name,arity,flags:new Set(flags),firstKeyIndex,lastKeyIndex,step:step4,categories:new Set(categories)}}exports.transformCommandReply=transformCommandReply;var RedisFunctionFlags;(function(RedisFunctionFlags2){RedisFunctionFlags2.NO_WRITES="no-writes",RedisFunctionFlags2.ALLOW_OOM="allow-oom",RedisFunctionFlags2.ALLOW_STALE="allow-stale",RedisFunctionFlags2.NO_CLUSTER="no-cluster"})(RedisFunctionFlags||(exports.RedisFunctionFlags=RedisFunctionFlags={}));function transformFunctionListItemReply(reply){return{libraryName:reply[1],engine:reply[3],functions:reply[5].map((fn2)=>({name:fn2[1],description:fn2[3],flags:fn2[5]}))}}exports.transformFunctionListItemReply=transformFunctionListItemReply;function parseSlotRangeArguments(parser,range4){parser.push(range4.start.toString(),range4.end.toString())}function parseSlotRangesArguments(parser,ranges){if(Array.isArray(ranges))for(let range4 of ranges)parseSlotRangeArguments(parser,range4);else parseSlotRangeArguments(parser,ranges)}exports.parseSlotRangesArguments=parseSlotRangesArguments;function transformRangeReply([start3,end6]){return{start:start3,end:end6}}exports.transformRangeReply=transformRangeReply;function parseZKeysArguments(parser,keys3){if(Array.isArray(keys3)){if(parser.push(keys3.length.toString()),keys3.length)if(isPlainKeys(keys3))parser.pushKeys(keys3);else{for(let i=0;i<keys3.length;i++)parser.pushKey(keys3[i].key);parser.push("WEIGHTS");for(let i=0;i<keys3.length;i++)parser.push(transformDoubleArgument(keys3[i].weight))}}else if(parser.push("1"),isPlainKey(keys3))parser.pushKey(keys3);else parser.pushKey(keys3.key),parser.push("WEIGHTS",transformDoubleArgument(keys3.weight))}exports.parseZKeysArguments=parseZKeysArguments;function isPlainKey(key){return typeof key==="string"||key instanceof Buffer}function isPlainKeys(keys3){return isPlainKey(keys3[0])}function parseArgs(command,...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;if(parser.preserve)redisArgs.preserve=parser.preserve;return redisArgs}exports.parseArgs=parseArgs;function transformStreamMessageReply(typeMapping,reply){let[id2,message,millisElapsedFromDelivery,deliveriesCounter]=reply;return{id:id2,message:transformTuplesReply(message,void 0,typeMapping),...millisElapsedFromDelivery!==void 0?{millisElapsedFromDelivery}:{},...deliveriesCounter!==void 0?{deliveriesCounter}:{}}}exports.transformStreamMessageReply=transformStreamMessageReply;function transformStreamMessageNullReply(typeMapping,reply){return isNullReply(reply)?reply:transformStreamMessageReply(typeMapping,reply)}exports.transformStreamMessageNullReply=transformStreamMessageNullReply;function transformStreamMessagesReply(r,typeMapping){return r.map(transformStreamMessageReply.bind(void 0,typeMapping))}exports.transformStreamMessagesReply=transformStreamMessagesReply;function transformStreamsMessagesReplyResp2(reply,preserve,typeMapping){if(reply===null)return null;switch(typeMapping?typeMapping[decoder_1.RESP_TYPES.MAP]:void 0){default:{let ret=[];for(let i=0;i<reply.length;i++){let stream=reply[i];ret.push({name:stream[0],messages:transformStreamMessagesReply(stream[1])})}return ret}}}exports.transformStreamsMessagesReplyResp2=transformStreamsMessagesReplyResp2;function transformStreamsMessagesReplyResp3(reply){if(reply===null)return null;if(reply instanceof Map){let ret=new Map;for(let[n,rawMessages]of reply){let name=n;ret.set(name.toString(),transformStreamMessagesReply(rawMessages))}return ret}else if(reply instanceof Array){let ret=[];for(let i=0;i<reply.length;i+=2){let name=reply[i],rawMessages=reply[i+1];ret.push(name),ret.push(transformStreamMessagesReply(rawMessages))}return ret}else{let ret=Object.create(null);for(let[name,rawMessages]of Object.entries(reply))ret[name]=transformStreamMessagesReply(rawMessages);return ret}}exports.transformStreamsMessagesReplyResp3=transformStreamsMessagesReplyResp3;function transformRedisJsonArgument(json){return JSON.stringify(json)}exports.transformRedisJsonArgument=transformRedisJsonArgument;function transformRedisJsonReply(json){return JSON.parse(json.toString())}exports.transformRedisJsonReply=transformRedisJsonReply;function transformRedisJsonNullReply(json){return isNullReply(json)?json:transformRedisJsonReply(json)}exports.transformRedisJsonNullReply=transformRedisJsonNullReply}),require_ACL_LOG=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,count32){if(parser.push("ACL","LOG"),count32!=null)parser.push(count32.toString())},transformReply:{2:(reply,preserve,typeMapping)=>{return reply.map((item)=>{let inferred=item;return{count:inferred[1],reason:inferred[3],context:inferred[5],object:inferred[7],username:inferred[9],"age-seconds":generic_transformers_1.transformDoubleReply[2](inferred[11],preserve,typeMapping),"client-info":inferred[13],"entry-id":inferred[15],"timestamp-created":inferred[17],"timestamp-last-updated":inferred[19]}})},3:void 0}}}),require_ACL_LOG_RESET=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ACL_LOG_1=__importDefault(require_ACL_LOG());exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:ACL_LOG_1.default.IS_READ_ONLY,parseCommand(parser){parser.push("ACL","LOG","RESET")},transformReply:void 0}}),require_ACL_SAVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ACL","SAVE")},transformReply:void 0}}),require_ACL_SETUSER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,username,rule){parser.push("ACL","SETUSER",username),parser.pushVariadic(rule)},transformReply:void 0}}),require_ACL_USERS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ACL","USERS")},transformReply:void 0}}),require_ACL_WHOAMI=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ACL","WHOAMI")},transformReply:void 0}}),require_APPEND=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,value){parser.push("APPEND",key,value)},transformReply:void 0}}),require_ASKING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.ASKING_CMD=void 0,exports.ASKING_CMD="ASKING",exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push(exports.ASKING_CMD)},transformReply:void 0}}),require_AUTH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,{username,password}){if(parser.push("AUTH"),username!==void 0)parser.push(username);parser.push(password)},transformReply:void 0}}),require_BGREWRITEAOF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("BGREWRITEAOF")},transformReply:void 0}}),require_BGSAVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,options){if(parser.push("BGSAVE"),options?.SCHEDULE)parser.push("SCHEDULE")},transformReply:void 0}}),require_BITCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,range4){if(parser.push("BITCOUNT"),parser.pushKey(key),range4){if(parser.push(range4.start.toString()),parser.push(range4.end.toString()),range4.mode)parser.push(range4.mode)}},transformReply:void 0}}),require_BITFIELD_RO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,operations){parser.push("BITFIELD_RO"),parser.pushKey(key);for(let operation of operations)parser.push("GET"),parser.push(operation.encoding),parser.push(operation.offset.toString())},transformReply:void 0}}),require_BITFIELD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,operations){parser.push("BITFIELD"),parser.pushKey(key);for(let options of operations)switch(options.operation){case"GET":parser.push("GET",options.encoding,options.offset.toString());break;case"SET":parser.push("SET",options.encoding,options.offset.toString(),options.value.toString());break;case"INCRBY":parser.push("INCRBY",options.encoding,options.offset.toString(),options.increment.toString());break;case"OVERFLOW":parser.push("OVERFLOW",options.behavior);break}},transformReply:void 0}}),require_BITOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,operation,destKey,key){parser.push("BITOP",operation),parser.pushKey(destKey),parser.pushKeys(key)},transformReply:void 0}}),require_BITPOS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,bit,start3,end6,mode){if(parser.push("BITPOS"),parser.pushKey(key),parser.push(bit.toString()),start3!==void 0)parser.push(start3.toString());if(end6!==void 0)parser.push(end6.toString());if(mode)parser.push(mode)},transformReply:void 0}}),require_BLMOVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,sourceSide,destinationSide,timeout5){parser.push("BLMOVE"),parser.pushKeys([source,destination]),parser.push(sourceSide,destinationSide,timeout5.toString())},transformReply:void 0}}),require_LMPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseLMPopArguments=void 0;function parseLMPopArguments(parser,keys3,side,options){if(parser.pushKeysLength(keys3),parser.push(side),options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString())}exports.parseLMPopArguments=parseLMPopArguments,exports.default={IS_READ_ONLY:!1,parseCommand(parser,...args2){parser.push("LMPOP"),parseLMPopArguments(parser,...args2)},transformReply:void 0}}),require_BLMPOP=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var LMPOP_1=__importStar(require_LMPOP());exports.default={IS_READ_ONLY:!1,parseCommand(parser,timeout5,...args2){parser.push("BLMPOP",timeout5.toString()),(0,LMPOP_1.parseLMPopArguments)(parser,...args2)},transformReply:LMPOP_1.default.transformReply}}),require_BLPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,timeout5){parser.push("BLPOP"),parser.pushKeys(key),parser.push(timeout5.toString())},transformReply(reply){if(reply===null)return null;return{key:reply[0],element:reply[1]}}}}),require_BRPOP=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var BLPOP_1=__importDefault(require_BLPOP());exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,timeout5){parser.push("BRPOP"),parser.pushKeys(key),parser.push(timeout5.toString())},transformReply:BLPOP_1.default.transformReply}}),require_BRPOPLPUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,timeout5){parser.push("BRPOPLPUSH"),parser.pushKeys([source,destination]),parser.push(timeout5.toString())},transformReply:void 0}}),require_ZMPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseZMPopArguments=void 0;var generic_transformers_1=require_generic_transformers();function parseZMPopArguments(parser,keys3,side,options){if(parser.pushKeysLength(keys3),parser.push(side),options?.COUNT)parser.push("COUNT",options.COUNT.toString())}exports.parseZMPopArguments=parseZMPopArguments,exports.default={IS_READ_ONLY:!1,parseCommand(parser,keys3,side,options){parser.push("ZMPOP"),parseZMPopArguments(parser,keys3,side,options)},transformReply:{2(reply,preserve,typeMapping){return reply===null?null:{key:reply[0],members:reply[1].map((member)=>{let[value,score]=member;return{value,score:generic_transformers_1.transformDoubleReply[2](score,preserve,typeMapping)}})}},3(reply){return reply===null?null:{key:reply[0],members:generic_transformers_1.transformSortedSetReply[3](reply[1])}}}}}),require_BZMPOP=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var ZMPOP_1=__importStar(require_ZMPOP());exports.default={IS_READ_ONLY:!1,parseCommand(parser,timeout5,...args2){parser.push("BZMPOP",timeout5.toString()),(0,ZMPOP_1.parseZMPopArguments)(parser,...args2)},transformReply:ZMPOP_1.default.transformReply}}),require_BZPOPMAX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,keys3,timeout5){parser.push("BZPOPMAX"),parser.pushKeys(keys3),parser.push(timeout5.toString())},transformReply:{2(reply,preserve,typeMapping){return reply===null?null:{key:reply[0],value:reply[1],score:generic_transformers_1.transformDoubleReply[2](reply[2],preserve,typeMapping)}},3(reply){return reply===null?null:{key:reply[0],value:reply[1],score:reply[2]}}}}}),require_BZPOPMIN=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var BZPOPMAX_1=__importDefault(require_BZPOPMAX());exports.default={IS_READ_ONLY:BZPOPMAX_1.default.IS_READ_ONLY,parseCommand(parser,keys3,timeout5){parser.push("BZPOPMIN"),parser.pushKeys(keys3),parser.push(timeout5.toString())},transformReply:BZPOPMAX_1.default.transformReply}}),require_CLIENT_CACHING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,value){parser.push("CLIENT","CACHING",value?"YES":"NO")},transformReply:void 0}}),require_CLIENT_GETNAME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","GETNAME")},transformReply:void 0}}),require_CLIENT_GETREDIR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","GETREDIR")},transformReply:void 0}}),require_CLIENT_ID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","ID")},transformReply:void 0}}),require_CLIENT_INFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var CLIENT_INFO_REGEX=/([^\s=]+)=([^\s]*)/g;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","INFO")},transformReply(rawReply){let map222={};for(let item of rawReply.toString().matchAll(CLIENT_INFO_REGEX))map222[item[1]]=item[2];let reply={id:Number(map222.id),addr:map222.addr,fd:Number(map222.fd),name:map222.name,age:Number(map222.age),idle:Number(map222.idle),flags:map222.flags,db:Number(map222.db),sub:Number(map222.sub),psub:Number(map222.psub),multi:Number(map222.multi),qbuf:Number(map222.qbuf),qbufFree:Number(map222["qbuf-free"]),argvMem:Number(map222["argv-mem"]),obl:Number(map222.obl),oll:Number(map222.oll),omem:Number(map222.omem),totMem:Number(map222["tot-mem"]),events:map222.events,cmd:map222.cmd,user:map222.user,libName:map222["lib-name"],libVer:map222["lib-ver"]};if(map222.laddr!==void 0)reply.laddr=map222.laddr;if(map222.redir!==void 0)reply.redir=Number(map222.redir);if(map222.ssub!==void 0)reply.ssub=Number(map222.ssub);if(map222["multi-mem"]!==void 0)reply.multiMem=Number(map222["multi-mem"]);if(map222.resp!==void 0)reply.resp=Number(map222.resp);return reply}}}),require_CLIENT_KILL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.CLIENT_KILL_FILTERS=void 0,exports.CLIENT_KILL_FILTERS={ADDRESS:"ADDR",LOCAL_ADDRESS:"LADDR",ID:"ID",TYPE:"TYPE",USER:"USER",SKIP_ME:"SKIPME",MAXAGE:"MAXAGE"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filters){if(parser.push("CLIENT","KILL"),Array.isArray(filters))for(let filter11 of filters)pushFilter(parser,filter11);else pushFilter(parser,filters)},transformReply:void 0};function pushFilter(parser,filter11){if(filter11===exports.CLIENT_KILL_FILTERS.SKIP_ME){parser.push("SKIPME");return}switch(parser.push(filter11.filter),filter11.filter){case exports.CLIENT_KILL_FILTERS.ADDRESS:parser.push(filter11.address);break;case exports.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:parser.push(filter11.localAddress);break;case exports.CLIENT_KILL_FILTERS.ID:parser.push(typeof filter11.id==="number"?filter11.id.toString():filter11.id);break;case exports.CLIENT_KILL_FILTERS.TYPE:parser.push(filter11.type);break;case exports.CLIENT_KILL_FILTERS.USER:parser.push(filter11.username);break;case exports.CLIENT_KILL_FILTERS.SKIP_ME:parser.push(filter11.skipMe?"yes":"no");break;case exports.CLIENT_KILL_FILTERS.MAXAGE:parser.push(filter11.maxAge.toString());break}}}),require_CLIENT_LIST=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var CLIENT_INFO_1=__importDefault(require_CLIENT_INFO());exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter11){if(parser.push("CLIENT","LIST"),filter11)if(filter11.TYPE!==void 0)parser.push("TYPE",filter11.TYPE);else parser.push("ID"),parser.pushVariadic(filter11.ID)},transformReply(rawReply){let split4=rawReply.toString().split(`
75
+ `),length3=split4.length-1,reply=[];for(let i=0;i<length3;i++)reply.push(CLIENT_INFO_1.default.transformReply(split4[i]));return reply}}}),require_CLIENT_NO_EVICT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,value){parser.push("CLIENT","NO-EVICT",value?"ON":"OFF")},transformReply:void 0}}),require_CLIENT_NO_TOUCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,value){parser.push("CLIENT","NO-TOUCH",value?"ON":"OFF")},transformReply:void 0}}),require_CLIENT_PAUSE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,timeout5,mode){if(parser.push("CLIENT","PAUSE",timeout5.toString()),mode)parser.push(mode)},transformReply:void 0}}),require_CLIENT_SETNAME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,name){parser.push("CLIENT","SETNAME",name)},transformReply:void 0}}),require_CLIENT_TRACKING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,mode,options){if(parser.push("CLIENT","TRACKING",mode?"ON":"OFF"),mode){if(options?.REDIRECT)parser.push("REDIRECT",options.REDIRECT.toString());if(isBroadcast(options)){if(parser.push("BCAST"),options?.PREFIX)if(Array.isArray(options.PREFIX))for(let prefix of options.PREFIX)parser.push("PREFIX",prefix);else parser.push("PREFIX",options.PREFIX)}else if(isOptIn(options))parser.push("OPTIN");else if(isOptOut(options))parser.push("OPTOUT");if(options?.NOLOOP)parser.push("NOLOOP")}},transformReply:void 0};function isBroadcast(options){return options?.BCAST===!0}function isOptIn(options){return options?.OPTIN===!0}function isOptOut(options){return options?.OPTOUT===!0}}),require_CLIENT_TRACKINGINFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","TRACKINGINFO")},transformReply:{2:(reply)=>({flags:reply[1],redirect:reply[3],prefixes:reply[5]}),3:void 0}}}),require_CLIENT_UNPAUSE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLIENT","UNPAUSE")},transformReply:void 0}}),require_CLUSTER_ADDSLOTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slots){parser.push("CLUSTER","ADDSLOTS"),parser.pushVariadicNumber(slots)},transformReply:void 0}}),require_CLUSTER_ADDSLOTSRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,ranges){parser.push("CLUSTER","ADDSLOTSRANGE"),(0,generic_transformers_1.parseSlotRangesArguments)(parser,ranges)},transformReply:void 0}}),require_CLUSTER_BUMPEPOCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","BUMPEPOCH")},transformReply:void 0}}),require_CLUSTER_COUNT_FAILURE_REPORTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,nodeId){parser.push("CLUSTER","COUNT-FAILURE-REPORTS",nodeId)},transformReply:void 0}}),require_CLUSTER_COUNTKEYSINSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slot){parser.push("CLUSTER","COUNTKEYSINSLOT",slot.toString())},transformReply:void 0}}),require_CLUSTER_DELSLOTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slots){parser.push("CLUSTER","DELSLOTS"),parser.pushVariadicNumber(slots)},transformReply:void 0}}),require_CLUSTER_DELSLOTSRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,ranges){parser.push("CLUSTER","DELSLOTSRANGE"),(0,generic_transformers_1.parseSlotRangesArguments)(parser,ranges)},transformReply:void 0}}),require_CLUSTER_FAILOVER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.FAILOVER_MODES=void 0,exports.FAILOVER_MODES={FORCE:"FORCE",TAKEOVER:"TAKEOVER"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,options){if(parser.push("CLUSTER","FAILOVER"),options?.mode)parser.push(options.mode)},transformReply:void 0}}),require_CLUSTER_FLUSHSLOTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","FLUSHSLOTS")},transformReply:void 0}}),require_CLUSTER_FORGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,nodeId){parser.push("CLUSTER","FORGET",nodeId)},transformReply:void 0}}),require_CLUSTER_GETKEYSINSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slot,count32){parser.push("CLUSTER","GETKEYSINSLOT",slot.toString(),count32.toString())},transformReply:void 0}}),require_CLUSTER_INFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","INFO")},transformReply:void 0}}),require_CLUSTER_KEYSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("CLUSTER","KEYSLOT",key)},transformReply:void 0}}),require_CLUSTER_LINKS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","LINKS")},transformReply:{2:(reply)=>reply.map((link)=>{let unwrapped=link;return{direction:unwrapped[1],node:unwrapped[3],"create-time":unwrapped[5],events:unwrapped[7],"send-buffer-allocated":unwrapped[9],"send-buffer-used":unwrapped[11]}}),3:void 0}}}),require_CLUSTER_MEET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port3){parser.push("CLUSTER","MEET",host,port3.toString())},transformReply:void 0}}),require_CLUSTER_MYID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","MYID")},transformReply:void 0}}),require_CLUSTER_MYSHARDID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","MYSHARDID")},transformReply:void 0}}),require_CLUSTER_NODES=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","NODES")},transformReply:void 0}}),require_CLUSTER_REPLICAS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,nodeId){parser.push("CLUSTER","REPLICAS",nodeId)},transformReply:void 0}}),require_CLUSTER_REPLICATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,nodeId){parser.push("CLUSTER","REPLICATE",nodeId)},transformReply:void 0}}),require_CLUSTER_RESET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,options){if(parser.push("CLUSTER","RESET"),options?.mode)parser.push(options.mode)},transformReply:void 0}}),require_CLUSTER_SAVECONFIG=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","SAVECONFIG")},transformReply:void 0}}),require_CLUSTER_SET_CONFIG_EPOCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,configEpoch){parser.push("CLUSTER","SET-CONFIG-EPOCH",configEpoch.toString())},transformReply:void 0}}),require_CLUSTER_SETSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.CLUSTER_SLOT_STATES=void 0,exports.CLUSTER_SLOT_STATES={IMPORTING:"IMPORTING",MIGRATING:"MIGRATING",STABLE:"STABLE",NODE:"NODE"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slot,state,nodeId){if(parser.push("CLUSTER","SETSLOT",slot.toString(),state),nodeId)parser.push(nodeId)},transformReply:void 0}}),require_CLUSTER_SLOTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CLUSTER","SLOTS")},transformReply(reply){return reply.map(([from,to,master,...replicas])=>({from,to,master:transformNode(master),replicas:replicas.map(transformNode)}))}};function transformNode(node){let[host,port3,id2]=node;return{host,port:port3,id:id2}}}),require_COMMAND_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("COMMAND","COUNT")},transformReply:void 0}}),require_COMMAND_GETKEYS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,args2){parser.push("COMMAND","GETKEYS"),parser.push(...args2)},transformReply:void 0}}),require_COMMAND_GETKEYSANDFLAGS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,args2){parser.push("COMMAND","GETKEYSANDFLAGS"),parser.push(...args2)},transformReply(reply){return reply.map((entry)=>{let[key,flags]=entry;return{key,flags}})}}}),require_COMMAND_INFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,commands){parser.push("COMMAND","INFO",...commands)},transformReply(reply){return reply.map((command)=>command?(0,generic_transformers_1.transformCommandReply)(command):null)}}}),require_COMMAND_LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.COMMAND_LIST_FILTER_BY=void 0,exports.COMMAND_LIST_FILTER_BY={MODULE:"MODULE",ACLCAT:"ACLCAT",PATTERN:"PATTERN"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,options){if(parser.push("COMMAND","LIST"),options?.FILTERBY)parser.push("FILTERBY",options.FILTERBY.type,options.FILTERBY.value)},transformReply:void 0}}),require_COMMAND=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("COMMAND")},transformReply(reply){return reply.map(generic_transformers_1.transformCommandReply)}}}),require_CONFIG_GET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,parameters){parser.push("CONFIG","GET"),parser.pushVariadic(parameters)},transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}),require_CONFIG_RESETSTAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CONFIG","RESETSTAT")},transformReply:void 0}}),require_CONFIG_REWRITE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("CONFIG","REWRITE")},transformReply:void 0}}),require_CONFIG_SET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,...[parameterOrConfig,value]){if(parser.push("CONFIG","SET"),typeof parameterOrConfig==="string"||parameterOrConfig instanceof Buffer)parser.push(parameterOrConfig,value);else for(let[key,value2]of Object.entries(parameterOrConfig))parser.push(key,value2)},transformReply:void 0}}),require_COPY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,options){if(parser.push("COPY"),parser.pushKeys([source,destination]),options?.DB)parser.push("DB",options.DB.toString());if(options?.REPLACE)parser.push("REPLACE")},transformReply:void 0}}),require_DBSIZE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("DBSIZE")},transformReply:void 0}}),require_DECR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key){parser.push("DECR"),parser.pushKey(key)},transformReply:void 0}}),require_DECRBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,decrement){parser.push("DECRBY"),parser.pushKey(key),parser.push(decrement.toString())},transformReply:void 0}}),require_DEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,keys3){parser.push("DEL"),parser.pushKeys(keys3)},transformReply:void 0}}),require_DELEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.DelexCondition=void 0,exports.DelexCondition={IFEQ:"IFEQ",IFNE:"IFNE",IFDEQ:"IFDEQ",IFDNE:"IFDNE"},exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("DELEX"),parser.pushKey(key),options)parser.push(options.condition),parser.push(options.matchValue)},transformReply:void 0}}),require_DIGEST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("DIGEST"),parser.pushKey(key)},transformReply:void 0}}),require_DUMP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("DUMP"),parser.pushKey(key)},transformReply:void 0}}),require_ECHO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,message){parser.push("ECHO",message)},transformReply:void 0}}),require_EVAL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseEvalArguments=void 0;function parseEvalArguments(parser,script,options){if(parser.push(script),options?.keys)parser.pushKeysLength(options.keys);else parser.push("0");if(options?.arguments)parser.push(...options.arguments)}exports.parseEvalArguments=parseEvalArguments,exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("EVAL"),parseEvalArguments(...args2)},transformReply:void 0}}),require_EVAL_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var EVAL_1=__importStar(require_EVAL());exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("EVAL_RO"),(0,EVAL_1.parseEvalArguments)(...args2)},transformReply:EVAL_1.default.transformReply}}),require_EVALSHA_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var EVAL_1=__importStar(require_EVAL());exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("EVALSHA_RO"),(0,EVAL_1.parseEvalArguments)(...args2)},transformReply:EVAL_1.default.transformReply}}),require_EVALSHA=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var EVAL_1=__importStar(require_EVAL());exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("EVALSHA"),(0,EVAL_1.parseEvalArguments)(...args2)},transformReply:EVAL_1.default.transformReply}}),require_GEOADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,toAdd,options){if(parser.push("GEOADD"),parser.pushKey(key),options?.condition)parser.push(options.condition);else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.CH)parser.push("CH");if(Array.isArray(toAdd))for(let member of toAdd)pushMember(parser,member);else pushMember(parser,toAdd)},transformReply:void 0};function pushMember(parser,{longitude,latitude,member}){parser.push(longitude.toString(),latitude.toString(),member)}}),require_GEODIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member1,member2,unit){if(parser.push("GEODIST"),parser.pushKey(key),parser.push(member1,member2),unit)parser.push(unit)},transformReply(reply){return reply===null?null:Number(reply)}}}),require_GEOHASH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("GEOHASH"),parser.pushKey(key),parser.pushVariadic(member)},transformReply:void 0}}),require_GEOPOS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("GEOPOS"),parser.pushKey(key),parser.pushVariadic(member)},transformReply(reply){return reply.map((item)=>{let unwrapped=item;return unwrapped===null?null:{longitude:unwrapped[0],latitude:unwrapped[1]}})}}}),require_GEOSEARCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseGeoSearchOptions=exports.parseGeoSearchArguments=void 0;function parseGeoSearchArguments(parser,key,from,by,options){if(parser.pushKey(key),typeof from==="string"||from instanceof Buffer)parser.push("FROMMEMBER",from);else parser.push("FROMLONLAT",from.longitude.toString(),from.latitude.toString());if("radius"in by)parser.push("BYRADIUS",by.radius.toString(),by.unit);else parser.push("BYBOX",by.width.toString(),by.height.toString(),by.unit);parseGeoSearchOptions(parser,options)}exports.parseGeoSearchArguments=parseGeoSearchArguments;function parseGeoSearchOptions(parser,options){if(options?.SORT)parser.push(options.SORT);if(options?.COUNT){if(typeof options.COUNT==="number")parser.push("COUNT",options.COUNT.toString());else if(parser.push("COUNT",options.COUNT.value.toString()),options.COUNT.ANY)parser.push("ANY")}}exports.parseGeoSearchOptions=parseGeoSearchOptions,exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,from,by,options){parser.push("GEOSEARCH"),parseGeoSearchArguments(parser,key,from,by,options)},transformReply:void 0}}),require_GEORADIUS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseGeoRadiusArguments=void 0;var GEOSEARCH_1=require_GEOSEARCH();function parseGeoRadiusArguments(parser,key,from,radius,unit,options){parser.pushKey(key),parser.push(from.longitude.toString(),from.latitude.toString(),radius.toString(),unit),(0,GEOSEARCH_1.parseGeoSearchOptions)(parser,options)}exports.parseGeoRadiusArguments=parseGeoRadiusArguments,exports.default={IS_READ_ONLY:!1,parseCommand(...args2){return args2[0].push("GEORADIUS"),parseGeoRadiusArguments(...args2)},transformReply:void 0}}),require_GEOSEARCH_WITH=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GEO_REPLY_WITH=void 0;var GEOSEARCH_1=__importDefault(require_GEOSEARCH());exports.GEO_REPLY_WITH={DISTANCE:"WITHDIST",HASH:"WITHHASH",COORDINATES:"WITHCOORD"},exports.default={IS_READ_ONLY:GEOSEARCH_1.default.IS_READ_ONLY,parseCommand(parser,key,from,by,replyWith,options){GEOSEARCH_1.default.parseCommand(parser,key,from,by,options),parser.push(...replyWith),parser.preserve=replyWith},transformReply(reply,replyWith){let replyWithSet=new Set(replyWith),index=0,distanceIndex=replyWithSet.has(exports.GEO_REPLY_WITH.DISTANCE)&&++index,hashIndex=replyWithSet.has(exports.GEO_REPLY_WITH.HASH)&&++index,coordinatesIndex=replyWithSet.has(exports.GEO_REPLY_WITH.COORDINATES)&&++index;return reply.map((raw)=>{let unwrapped=raw,item={member:unwrapped[0]};if(distanceIndex)item.distance=unwrapped[distanceIndex];if(hashIndex)item.hash=unwrapped[hashIndex];if(coordinatesIndex){let[longitude,latitude]=unwrapped[coordinatesIndex];item.coordinates={longitude,latitude}}return item})}}}),require_GEORADIUS_WITH=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseGeoRadiusWithArguments=void 0;var GEORADIUS_1=__importStar(require_GEORADIUS()),GEOSEARCH_WITH_1=__importDefault(require_GEOSEARCH_WITH());function parseGeoRadiusWithArguments(parser,key,from,radius,unit,replyWith,options){(0,GEORADIUS_1.parseGeoRadiusArguments)(parser,key,from,radius,unit,options),parser.pushVariadic(replyWith),parser.preserve=replyWith}exports.parseGeoRadiusWithArguments=parseGeoRadiusWithArguments,exports.default={IS_READ_ONLY:GEORADIUS_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,replyWith,options){parser.push("GEORADIUS"),parseGeoRadiusWithArguments(parser,key,from,radius,unit,replyWith,options)},transformReply:GEOSEARCH_WITH_1.default.transformReply}}),require_GEORADIUS_RO_WITH=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUS_WITH_1=require_GEORADIUS_WITH(),GEORADIUS_WITH_2=__importDefault(require_GEORADIUS_WITH());exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("GEORADIUS_RO"),(0,GEORADIUS_WITH_1.parseGeoRadiusWithArguments)(...args2)},transformReply:GEORADIUS_WITH_2.default.transformReply}}),require_GEORADIUS_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUS_1=__importStar(require_GEORADIUS());exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("GEORADIUS_RO"),(0,GEORADIUS_1.parseGeoRadiusArguments)(...args2)},transformReply:GEORADIUS_1.default.transformReply}}),require_GEORADIUS_STORE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUS_1=__importStar(require_GEORADIUS());exports.default={IS_READ_ONLY:GEORADIUS_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,destination,options){if(parser.push("GEORADIUS"),(0,GEORADIUS_1.parseGeoRadiusArguments)(parser,key,from,radius,unit,options),options?.STOREDIST)parser.push("STOREDIST"),parser.pushKey(destination);else parser.push("STORE"),parser.pushKey(destination)},transformReply:void 0}}),require_GEORADIUSBYMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseGeoRadiusByMemberArguments=void 0;var GEOSEARCH_1=require_GEOSEARCH();function parseGeoRadiusByMemberArguments(parser,key,from,radius,unit,options){parser.pushKey(key),parser.push(from,radius.toString(),unit),(0,GEOSEARCH_1.parseGeoSearchOptions)(parser,options)}exports.parseGeoRadiusByMemberArguments=parseGeoRadiusByMemberArguments,exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,from,radius,unit,options){parser.push("GEORADIUSBYMEMBER"),parseGeoRadiusByMemberArguments(parser,key,from,radius,unit,options)},transformReply:void 0}}),require_GEORADIUSBYMEMBER_WITH=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseGeoRadiusByMemberWithArguments=void 0;var GEORADIUSBYMEMBER_1=__importDefault(require_GEORADIUSBYMEMBER()),GEOSEARCH_1=require_GEOSEARCH(),GEOSEARCH_WITH_1=__importDefault(require_GEOSEARCH_WITH());function parseGeoRadiusByMemberWithArguments(parser,key,from,radius,unit,replyWith,options){parser.pushKey(key),parser.push(from,radius.toString(),unit),(0,GEOSEARCH_1.parseGeoSearchOptions)(parser,options),parser.push(...replyWith),parser.preserve=replyWith}exports.parseGeoRadiusByMemberWithArguments=parseGeoRadiusByMemberWithArguments,exports.default={IS_READ_ONLY:GEORADIUSBYMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,replyWith,options){parser.push("GEORADIUSBYMEMBER"),parseGeoRadiusByMemberWithArguments(parser,key,from,radius,unit,replyWith,options)},transformReply:GEOSEARCH_WITH_1.default.transformReply}}),require_GEORADIUSBYMEMBER_RO_WITH=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUSBYMEMBER_WITH_1=__importStar(require_GEORADIUSBYMEMBER_WITH());exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("GEORADIUSBYMEMBER_RO"),(0,GEORADIUSBYMEMBER_WITH_1.parseGeoRadiusByMemberWithArguments)(...args2)},transformReply:GEORADIUSBYMEMBER_WITH_1.default.transformReply}}),require_GEORADIUSBYMEMBER_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUSBYMEMBER_1=__importStar(require_GEORADIUSBYMEMBER());exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("GEORADIUSBYMEMBER_RO"),(0,GEORADIUSBYMEMBER_1.parseGeoRadiusByMemberArguments)(...args2)},transformReply:GEORADIUSBYMEMBER_1.default.transformReply}}),require_GEORADIUSBYMEMBER_STORE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var GEORADIUSBYMEMBER_1=__importStar(require_GEORADIUSBYMEMBER());exports.default={IS_READ_ONLY:GEORADIUSBYMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,destination,options){if(parser.push("GEORADIUSBYMEMBER"),(0,GEORADIUSBYMEMBER_1.parseGeoRadiusByMemberArguments)(parser,key,from,radius,unit,options),options?.STOREDIST)parser.push("STOREDIST"),parser.pushKey(destination);else parser.push("STORE"),parser.pushKey(destination)},transformReply:void 0}}),require_GEOSEARCHSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var GEOSEARCH_1=require_GEOSEARCH();exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,source,from,by,options){if(parser.push("GEOSEARCHSTORE"),destination!==void 0)parser.pushKey(destination);if((0,GEOSEARCH_1.parseGeoSearchArguments)(parser,source,from,by,options),options?.STOREDIST)parser.push("STOREDIST")},transformReply:void 0}}),require_GET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("GET"),parser.pushKey(key)},transformReply:void 0}}),require_GETBIT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,offset){parser.push("GETBIT"),parser.pushKey(key),parser.push(offset.toString())},transformReply:void 0}}),require_GETDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("GETDEL"),parser.pushKey(key)},transformReply:void 0}}),require_GETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("GETEX"),parser.pushKey(key),"type"in options)switch(options.type){case"EX":case"PX":parser.push(options.type,options.value.toString());break;case"EXAT":case"PXAT":parser.push(options.type,(0,generic_transformers_1.transformEXAT)(options.value));break;case"PERSIST":parser.push("PERSIST");break}else if("EX"in options)parser.push("EX",options.EX.toString());else if("PX"in options)parser.push("PX",options.PX.toString());else if("EXAT"in options)parser.push("EXAT",(0,generic_transformers_1.transformEXAT)(options.EXAT));else if("PXAT"in options)parser.push("PXAT",(0,generic_transformers_1.transformPXAT)(options.PXAT));else parser.push("PERSIST")},transformReply:void 0}}),require_GETRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,start3,end6){parser.push("GETRANGE"),parser.pushKey(key),parser.push(start3.toString(),end6.toString())},transformReply:void 0}}),require_GETSET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,value){parser.push("GETSET"),parser.pushKey(key),parser.push(value)},transformReply:void 0}}),require_EXISTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("EXISTS"),parser.pushKeys(keys3)},transformReply:void 0}}),require_EXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,seconds2,mode){if(parser.push("EXPIRE"),parser.pushKey(key),parser.push(seconds2.toString()),mode)parser.push(mode)},transformReply:void 0}}),require_EXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,timestamp,mode){if(parser.push("EXPIREAT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformEXAT)(timestamp)),mode)parser.push(mode)},transformReply:void 0}}),require_EXPIRETIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("EXPIRETIME"),parser.pushKey(key)},transformReply:void 0}}),require_FLUSHALL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.REDIS_FLUSH_MODES=void 0,exports.REDIS_FLUSH_MODES={ASYNC:"ASYNC",SYNC:"SYNC"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,mode){if(parser.push("FLUSHALL"),mode)parser.push(mode)},transformReply:void 0}}),require_FLUSHDB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,mode){if(parser.push("FLUSHDB"),mode)parser.push(mode)},transformReply:void 0}}),require_FCALL=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var EVAL_1=__importStar(require_EVAL());exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("FCALL"),(0,EVAL_1.parseEvalArguments)(...args2)},transformReply:EVAL_1.default.transformReply}}),require_FCALL_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var EVAL_1=__importStar(require_EVAL());exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("FCALL_RO"),(0,EVAL_1.parseEvalArguments)(...args2)},transformReply:EVAL_1.default.transformReply}}),require_FUNCTION_DELETE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,library){parser.push("FUNCTION","DELETE",library)},transformReply:void 0}}),require_FUNCTION_DUMP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("FUNCTION","DUMP")},transformReply:void 0}}),require_FUNCTION_FLUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,mode){if(parser.push("FUNCTION","FLUSH"),mode)parser.push(mode)},transformReply:void 0}}),require_FUNCTION_KILL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("FUNCTION","KILL")},transformReply:void 0}}),require_FUNCTION_LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,options){if(parser.push("FUNCTION","LIST"),options?.LIBRARYNAME)parser.push("LIBRARYNAME",options.LIBRARYNAME)},transformReply:{2:(reply)=>{return reply.map((library)=>{let unwrapped=library;return{library_name:unwrapped[1],engine:unwrapped[3],functions:unwrapped[5].map((fn2)=>{let unwrapped2=fn2;return{name:unwrapped2[1],description:unwrapped2[3],flags:unwrapped2[5]}})}})},3:void 0}}}),require_FUNCTION_LIST_WITHCODE=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var FUNCTION_LIST_1=__importDefault(require_FUNCTION_LIST());exports.default={NOT_KEYED_COMMAND:FUNCTION_LIST_1.default.NOT_KEYED_COMMAND,IS_READ_ONLY:FUNCTION_LIST_1.default.IS_READ_ONLY,parseCommand(...args2){FUNCTION_LIST_1.default.parseCommand(...args2),args2[0].push("WITHCODE")},transformReply:{2:(reply)=>{return reply.map((library)=>{let unwrapped=library;return{library_name:unwrapped[1],engine:unwrapped[3],functions:unwrapped[5].map((fn2)=>{let unwrapped2=fn2;return{name:unwrapped2[1],description:unwrapped2[3],flags:unwrapped2[5]}}),library_code:unwrapped[7]}})},3:void 0}}}),require_FUNCTION_LOAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,code,options){if(parser.push("FUNCTION","LOAD"),options?.REPLACE)parser.push("REPLACE");parser.push(code)},transformReply:void 0}}),require_FUNCTION_RESTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,dump2,options){if(parser.push("FUNCTION","RESTORE",dump2),options?.mode)parser.push(options.mode)},transformReply:void 0}}),require_FUNCTION_STATS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("FUNCTION","STATS")},transformReply:{2:(reply)=>{return{running_script:transformRunningScript(reply[1]),engines:transformEngines(reply[3])}},3:void 0}};function transformRunningScript(reply){if((0,generic_transformers_1.isNullReply)(reply))return null;let unwraped=reply;return{name:unwraped[1],command:unwraped[3],duration_ms:unwraped[5]}}function transformEngines(reply){let unwraped=reply,engines=Object.create(null);for(let i=0;i<unwraped.length;i++){let name=unwraped[i],stats=unwraped[++i],unwrapedStats=stats;engines[name.toString()]={libraries_count:unwrapedStats[1],functions_count:unwrapedStats[3]}}return engines}}),require_HDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,field){parser.push("HDEL"),parser.pushKey(key),parser.pushVariadic(field)},transformReply:void 0}}),require_HELLO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,protover,options){if(parser.push("HELLO"),protover){if(parser.push(protover.toString()),options?.AUTH)parser.push("AUTH",options.AUTH.username,options.AUTH.password);if(options?.SETNAME)parser.push("SETNAME",options.SETNAME)}},transformReply:{2:(reply)=>({server:reply[1],version:reply[3],proto:reply[5],id:reply[7],mode:reply[9],role:reply[11],modules:reply[13]}),3:void 0}}}),require_HEXISTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,field){parser.push("HEXISTS"),parser.pushKey(key),parser.push(field)},transformReply:void 0}}),require_HEXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.HASH_EXPIRATION=void 0,exports.HASH_EXPIRATION={FIELD_NOT_EXISTS:-2,CONDITION_NOT_MET:0,UPDATED:1,DELETED:2},exports.default={parseCommand(parser,key,fields,seconds2,mode){if(parser.push("HEXPIRE"),parser.pushKey(key),parser.push(seconds2.toString()),mode)parser.push(mode);parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HEXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,fields,timestamp,mode){if(parser.push("HEXPIREAT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformEXAT)(timestamp)),mode)parser.push(mode);parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HEXPIRETIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.HASH_EXPIRATION_TIME=void 0,exports.HASH_EXPIRATION_TIME={FIELD_NOT_EXISTS:-2,NO_EXPIRATION:-1},exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,fields){parser.push("HEXPIRETIME"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,field){parser.push("HGET"),parser.pushKey(key),parser.push(field)},transformReply:void 0}}),require_HGETALL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("HGETALL"),parser.pushKey(key)},TRANSFORM_LEGACY_REPLY:!0,transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}),require_HGETDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,fields){parser.push("HGETDEL"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HGETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,fields,options){if(parser.push("HGETEX"),parser.pushKey(key),options?.expiration)if(typeof options.expiration==="string")parser.push(options.expiration);else if(options.expiration.type==="PERSIST")parser.push("PERSIST");else parser.push(options.expiration.type,options.expiration.value.toString());parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HINCRBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,field,increment){parser.push("HINCRBY"),parser.pushKey(key),parser.push(field,increment.toString())},transformReply:void 0}}),require_HINCRBYFLOAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,field,increment){parser.push("HINCRBYFLOAT"),parser.pushKey(key),parser.push(field,increment.toString())},transformReply:void 0}}),require_HKEYS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("HKEYS"),parser.pushKey(key)},transformReply:void 0}}),require_HLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("HLEN"),parser.pushKey(key)},transformReply:void 0}}),require_HMGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,fields){parser.push("HMGET"),parser.pushKey(key),parser.pushVariadic(fields)},transformReply:void 0}}),require_HPERSIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,fields){parser.push("HPERSIST"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HPEXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,fields,ms,mode){if(parser.push("HPEXPIRE"),parser.pushKey(key),parser.push(ms.toString()),mode)parser.push(mode);parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HPEXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,fields,timestamp,mode){if(parser.push("HPEXPIREAT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformPXAT)(timestamp)),mode)parser.push(mode);parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HPEXPIRETIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,fields){parser.push("HPEXPIRETIME"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HPTTL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,fields){parser.push("HPTTL"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HRANDFIELD_COUNT_WITHVALUES=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count32){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count32.toString(),"WITHVALUES")},transformReply:{2:(rawReply)=>{let reply=[],i=0;while(i<rawReply.length)reply.push({field:rawReply[i++],value:rawReply[i++]});return reply},3:(reply)=>{return reply.map((entry)=>{let[field,value]=entry;return{field,value}})}}}}),require_HRANDFIELD_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count32){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count32.toString())},transformReply:void 0}}),require_HRANDFIELD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("HRANDFIELD"),parser.pushKey(key)},transformReply:void 0}}),require_SCAN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.pushScanArguments=exports.parseScanArguments=void 0;function parseScanArguments(parser,cursor,options){if(parser.push(cursor),options?.MATCH)parser.push("MATCH",options.MATCH);if(options?.COUNT)parser.push("COUNT",options.COUNT.toString())}exports.parseScanArguments=parseScanArguments;function pushScanArguments(args2,cursor,options){if(args2.push(cursor.toString()),options?.MATCH)args2.push("MATCH",options.MATCH);if(options?.COUNT)args2.push("COUNT",options.COUNT.toString());return args2}exports.pushScanArguments=pushScanArguments,exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,cursor,options){if(parser.push("SCAN"),parseScanArguments(parser,cursor,options),options?.TYPE)parser.push("TYPE",options.TYPE)},transformReply([cursor,keys3]){return{cursor,keys:keys3}}}}),require_HSCAN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var SCAN_1=require_SCAN();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,cursor,options){parser.push("HSCAN"),parser.pushKey(key),(0,SCAN_1.parseScanArguments)(parser,cursor,options)},transformReply([cursor,rawEntries]){let entries2=[],i=0;while(i<rawEntries.length)entries2.push({field:rawEntries[i++],value:rawEntries[i++]});return{cursor,entries:entries2}}}}),require_HSCAN_NOVALUES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var HSCAN_1=__importDefault(require_HSCAN());exports.default={IS_READ_ONLY:!0,parseCommand(...args2){let parser=args2[0];HSCAN_1.default.parseCommand(...args2),parser.push("NOVALUES")},transformReply([cursor,fields]){return{cursor,fields}}}}),require_HSET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,...[key,value,fieldValue]){if(parser.push("HSET"),parser.pushKey(key),typeof value==="string"||typeof value==="number"||value instanceof Buffer)parser.push(convertValue(value),convertValue(fieldValue));else if(value instanceof Map)pushMap(parser,value);else if(Array.isArray(value))pushTuples(parser,value);else pushObject(parser,value)},transformReply:void 0};function pushMap(parser,map222){for(let[key,value]of map222.entries())parser.push(convertValue(key),convertValue(value))}function pushTuples(parser,tuples){for(let tuple22 of tuples){if(Array.isArray(tuple22)){pushTuples(parser,tuple22);continue}parser.push(convertValue(tuple22))}}function pushObject(parser,object){for(let key of Object.keys(object))parser.push(convertValue(key),convertValue(object[key]))}function convertValue(value){return typeof value==="number"?value.toString():value}}),require_HSETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var parser_1=require_parser();exports.default={parseCommand(parser,key,fields,options){if(parser.push("HSETEX"),parser.pushKey(key),options?.mode)parser.push(options.mode);if(options?.expiration)if(typeof options.expiration==="string")parser.push(options.expiration);else if(options.expiration.type==="KEEPTTL")parser.push("KEEPTTL");else parser.push(options.expiration.type,options.expiration.value.toString());if(parser.push("FIELDS"),fields instanceof Map)pushMap(parser,fields);else if(Array.isArray(fields))pushTuples(parser,fields);else pushObject(parser,fields)},transformReply:void 0};function pushMap(parser,map222){parser.push(map222.size.toString());for(let[key,value]of map222.entries())parser.push(convertValue(key),convertValue(value))}function pushTuples(parser,tuples){let tmpParser=new parser_1.BasicCommandParser;if(_pushTuples(tmpParser,tuples),tmpParser.redisArgs.length%2!=0)throw Error("invalid number of arguments, expected key value ....[key value] pairs, got key without value");parser.push((tmpParser.redisArgs.length/2).toString()),parser.push(...tmpParser.redisArgs)}function _pushTuples(parser,tuples){for(let tuple22 of tuples){if(Array.isArray(tuple22)){_pushTuples(parser,tuple22);continue}parser.push(convertValue(tuple22))}}function pushObject(parser,object){let len=Object.keys(object).length;if(len==0)throw Error("object without keys");parser.push(len.toString());for(let key of Object.keys(object))parser.push(convertValue(key),convertValue(object[key]))}function convertValue(value){return typeof value==="number"?value.toString():value}}),require_HSETNX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,field,value){parser.push("HSETNX"),parser.pushKey(key),parser.push(field,value)},transformReply:void 0}}),require_HSTRLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,field){parser.push("HSTRLEN"),parser.pushKey(key),parser.push(field)},transformReply:void 0}}),require_HTTL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,fields){parser.push("HTTL"),parser.pushKey(key),parser.push("FIELDS"),parser.pushVariadicWithLength(fields)},transformReply:void 0}}),require_HVALS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("HVALS"),parser.pushKey(key)},transformReply:void 0}}),require_INCR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key){parser.push("INCR"),parser.pushKey(key)},transformReply:void 0}}),require_INCRBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,increment){parser.push("INCRBY"),parser.pushKey(key),parser.push(increment.toString())},transformReply:void 0}}),require_INCRBYFLOAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,increment){parser.push("INCRBYFLOAT"),parser.pushKey(key),parser.push(increment.toString())},transformReply:void 0}}),require_INFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,section){if(parser.push("INFO"),section)parser.push(section)},transformReply:void 0}}),require_KEYS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,pattern){parser.push("KEYS",pattern)},transformReply:void 0}}),require_LASTSAVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("LASTSAVE")},transformReply:void 0}}),require_LATENCY_DOCTOR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("LATENCY","DOCTOR")},transformReply:void 0}}),require_LATENCY_GRAPH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.LATENCY_EVENTS=void 0,exports.LATENCY_EVENTS={ACTIVE_DEFRAG_CYCLE:"active-defrag-cycle",AOF_FSYNC_ALWAYS:"aof-fsync-always",AOF_STAT:"aof-stat",AOF_REWRITE_DIFF_WRITE:"aof-rewrite-diff-write",AOF_RENAME:"aof-rename",AOF_WRITE:"aof-write",AOF_WRITE_ACTIVE_CHILD:"aof-write-active-child",AOF_WRITE_ALONE:"aof-write-alone",AOF_WRITE_PENDING_FSYNC:"aof-write-pending-fsync",COMMAND:"command",EXPIRE_CYCLE:"expire-cycle",EVICTION_CYCLE:"eviction-cycle",EVICTION_DEL:"eviction-del",FAST_COMMAND:"fast-command",FORK:"fork",RDB_UNLINK_TEMP_FILE:"rdb-unlink-temp-file"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,event){parser.push("LATENCY","GRAPH",event)},transformReply:void 0}}),require_LATENCY_HISTORY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,event){parser.push("LATENCY","HISTORY",event)},transformReply:void 0}}),require_LATENCY_LATEST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("LATENCY","LATEST")},transformReply:void 0}}),require_LATENCY_RESET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.LATENCY_EVENTS=void 0;var LATENCY_GRAPH_1=require_LATENCY_GRAPH();Object.defineProperty(exports,"LATENCY_EVENTS",{enumerable:!0,get:function(){return LATENCY_GRAPH_1.LATENCY_EVENTS}}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,...events){let args2=["LATENCY","RESET"];if(events.length>0)args2.push(...events);parser.push(...args2)},transformReply:void 0}}),require_LCS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key1,key2){parser.push("LCS"),parser.pushKeys([key1,key2])},transformReply:void 0}}),require_LCS_IDX=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var LCS_1=__importDefault(require_LCS());exports.default={IS_READ_ONLY:LCS_1.default.IS_READ_ONLY,parseCommand(parser,key1,key2,options){if(LCS_1.default.parseCommand(parser,key1,key2),parser.push("IDX"),options?.MINMATCHLEN)parser.push("MINMATCHLEN",options.MINMATCHLEN.toString())},transformReply:{2:(reply)=>({matches:reply[1],len:reply[3]}),3:void 0}}}),require_LCS_IDX_WITHMATCHLEN=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var LCS_IDX_1=__importDefault(require_LCS_IDX());exports.default={IS_READ_ONLY:LCS_IDX_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];LCS_IDX_1.default.parseCommand(...args2),parser.push("WITHMATCHLEN")},transformReply:{2:(reply)=>({matches:reply[1],len:reply[3]}),3:void 0}}}),require_LCS_LEN=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var LCS_1=__importDefault(require_LCS());exports.default={IS_READ_ONLY:LCS_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];LCS_1.default.parseCommand(...args2),parser.push("LEN")},transformReply:void 0}}),require_LINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,index){parser.push("LINDEX"),parser.pushKey(key),parser.push(index.toString())},transformReply:void 0}}),require_LINSERT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,position,pivot,element){parser.push("LINSERT"),parser.pushKey(key),parser.push(position,pivot,element)},transformReply:void 0}}),require_LLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("LLEN"),parser.pushKey(key)},transformReply:void 0}}),require_LMOVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,sourceSide,destinationSide){parser.push("LMOVE"),parser.pushKeys([source,destination]),parser.push(sourceSide,destinationSide)},transformReply:void 0}}),require_LOLWUT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,version,...optionalArguments){if(parser.push("LOLWUT"),version)parser.push("VERSION",version.toString()),parser.pushVariadic(optionalArguments.map(String))},transformReply:void 0}}),require_LPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key){parser.push("LPOP"),parser.pushKey(key)},transformReply:void 0}}),require_LPOP_COUNT=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var LPOP_1=__importDefault(require_LPOP());exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count32){LPOP_1.default.parseCommand(parser,key),parser.push(count32.toString())},transformReply:void 0}}),require_LPOS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,element,options){if(parser.push("LPOS"),parser.pushKey(key),parser.push(element),options?.RANK!==void 0)parser.push("RANK",options.RANK.toString());if(options?.MAXLEN!==void 0)parser.push("MAXLEN",options.MAXLEN.toString())},transformReply:void 0}}),require_LPOS_COUNT=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var LPOS_1=__importDefault(require_LPOS());exports.default={CACHEABLE:LPOS_1.default.CACHEABLE,IS_READ_ONLY:LPOS_1.default.IS_READ_ONLY,parseCommand(parser,key,element,count32,options){LPOS_1.default.parseCommand(parser,key,element,options),parser.push("COUNT",count32.toString())},transformReply:void 0}}),require_LPUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,elements){parser.push("LPUSH"),parser.pushKey(key),parser.pushVariadic(elements)},transformReply:void 0}}),require_LPUSHX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,elements){parser.push("LPUSHX"),parser.pushKey(key),parser.pushVariadic(elements)},transformReply:void 0}}),require_LRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,start3,stop22){parser.push("LRANGE"),parser.pushKey(key),parser.push(start3.toString(),stop22.toString())},transformReply:void 0}}),require_LREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count32,element){parser.push("LREM"),parser.pushKey(key),parser.push(count32.toString()),parser.push(element)},transformReply:void 0}}),require_LSET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,index,element){parser.push("LSET"),parser.pushKey(key),parser.push(index.toString(),element)},transformReply:void 0}}),require_LTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,start3,stop22){parser.push("LTRIM"),parser.pushKey(key),parser.push(start3.toString(),stop22.toString())},transformReply:void 0}}),require_MEMORY_DOCTOR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("MEMORY","DOCTOR")},transformReply:void 0}}),require_MEMORY_MALLOC_STATS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("MEMORY","MALLOC-STATS")},transformReply:void 0}}),require_MEMORY_PURGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser){parser.push("MEMORY","PURGE")},transformReply:void 0}}),require_MEMORY_STATS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("MEMORY","STATS")},transformReply:{2:(rawReply,preserve,typeMapping)=>{let reply={},i=0;while(i<rawReply.length)switch(rawReply[i].toString()){case"dataset.percentage":case"peak.percentage":case"allocator-fragmentation.ratio":case"allocator-rss.ratio":case"rss-overhead.ratio":case"fragmentation":reply[rawReply[i++]]=generic_transformers_1.transformDoubleReply[2](rawReply[i++],preserve,typeMapping);break;default:reply[rawReply[i++]]=rawReply[i++]}return reply},3:void 0}}}),require_MEMORY_USAGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("MEMORY","USAGE"),parser.pushKey(key),options?.SAMPLES)parser.push("SAMPLES",options.SAMPLES.toString())},transformReply:void 0}}),require_MGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("MGET"),parser.pushKeys(keys3)},transformReply:void 0}}),require_MIGRATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,host,port3,key,destinationDb,timeout5,options){parser.push("MIGRATE",host,port3.toString());let isKeyArray=Array.isArray(key);if(isKeyArray)parser.push("");else parser.push(key);if(parser.push(destinationDb.toString(),timeout5.toString()),options?.COPY)parser.push("COPY");if(options?.REPLACE)parser.push("REPLACE");if(options?.AUTH)if(options.AUTH.username)parser.push("AUTH2",options.AUTH.username,options.AUTH.password);else parser.push("AUTH",options.AUTH.password);if(isKeyArray)parser.push("KEYS"),parser.pushVariadic(key)},transformReply:void 0}}),require_MODULE_LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("MODULE","LIST")},transformReply:{2:(reply)=>{return reply.map((module2)=>{let unwrapped=module2;return{name:unwrapped[1],ver:unwrapped[3]}})},3:void 0}}}),require_MODULE_LOAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,path,moduleArguments){if(parser.push("MODULE","LOAD",path),moduleArguments)parser.push(...moduleArguments)},transformReply:void 0}}),require_MODULE_UNLOAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,name){parser.push("MODULE","UNLOAD",name)},transformReply:void 0}}),require_MOVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,db){parser.push("MOVE"),parser.pushKey(key),parser.push(db.toString())},transformReply:void 0}}),require_MSET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseMSetArguments=void 0;function parseMSetArguments(parser,toSet3){if(Array.isArray(toSet3)){if(toSet3.length==0)throw Error("empty toSet Argument");if(Array.isArray(toSet3[0]))for(let tuple22 of toSet3)parser.pushKey(tuple22[0]),parser.push(tuple22[1]);else{let arr=toSet3;for(let i=0;i<arr.length;i+=2)parser.pushKey(arr[i]),parser.push(arr[i+1])}}else for(let tuple22 of Object.entries(toSet3))parser.pushKey(tuple22[0]),parser.push(tuple22[1])}exports.parseMSetArguments=parseMSetArguments,exports.default={IS_READ_ONLY:!0,parseCommand(parser,toSet3){return parser.push("MSET"),parseMSetArguments(parser,toSet3)},transformReply:void 0}}),require_MSETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseMSetExArguments=exports.ExpirationMode=exports.SetMode=void 0;var generic_transformers_1=require_generic_transformers();exports.SetMode={XX:"XX",NX:"NX"},exports.ExpirationMode={EX:"EX",PX:"PX",EXAT:"EXAT",PXAT:"PXAT",KEEPTTL:"KEEPTTL"};function parseMSetExArguments(parser,keyValuePairs){let tuples=[];if(Array.isArray(keyValuePairs)){if(keyValuePairs.length==0)throw Error("empty keyValuePairs Argument");if(Array.isArray(keyValuePairs[0]))tuples=keyValuePairs;else{let arr=keyValuePairs;for(let i=0;i<arr.length;i+=2)tuples.push([arr[i],arr[i+1]])}}else for(let tuple22 of Object.entries(keyValuePairs))tuples.push([tuple22[0],tuple22[1]]);parser.push(tuples.length.toString());for(let tuple22 of tuples)parser.pushKey(tuple22[0]),parser.push(tuple22[1])}exports.parseMSetExArguments=parseMSetExArguments,exports.default={parseCommand(parser,keyValuePairs,options){if(parser.push("MSETEX"),parseMSetExArguments(parser,keyValuePairs),options?.mode)parser.push(options.mode);if(options?.expiration)switch(options.expiration.type){case exports.ExpirationMode.EXAT:parser.push(exports.ExpirationMode.EXAT,(0,generic_transformers_1.transformEXAT)(options.expiration.value));break;case exports.ExpirationMode.PXAT:parser.push(exports.ExpirationMode.PXAT,(0,generic_transformers_1.transformPXAT)(options.expiration.value));break;case exports.ExpirationMode.KEEPTTL:parser.push(exports.ExpirationMode.KEEPTTL);break;case exports.ExpirationMode.EX:case exports.ExpirationMode.PX:parser.push(options.expiration.type,options.expiration.value?.toString());break}},transformReply:void 0}}),require_MSETNX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var MSET_1=require_MSET();exports.default={IS_READ_ONLY:!0,parseCommand(parser,toSet3){return parser.push("MSETNX"),(0,MSET_1.parseMSetArguments)(parser,toSet3)},transformReply:void 0}}),require_OBJECT_ENCODING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("OBJECT","ENCODING"),parser.pushKey(key)},transformReply:void 0}}),require_OBJECT_FREQ=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("OBJECT","FREQ"),parser.pushKey(key)},transformReply:void 0}}),require_OBJECT_IDLETIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("OBJECT","IDLETIME"),parser.pushKey(key)},transformReply:void 0}}),require_OBJECT_REFCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("OBJECT","REFCOUNT"),parser.pushKey(key)},transformReply:void 0}}),require_PERSIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key){parser.push("PERSIST"),parser.pushKey(key)},transformReply:void 0}}),require_PEXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,ms,mode){if(parser.push("PEXPIRE"),parser.pushKey(key),parser.push(ms.toString()),mode)parser.push(mode)},transformReply:void 0}}),require_PEXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,msTimestamp,mode){if(parser.push("PEXPIREAT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformPXAT)(msTimestamp)),mode)parser.push(mode)},transformReply:void 0}}),require_PEXPIRETIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("PEXPIRETIME"),parser.pushKey(key)},transformReply:void 0}}),require_PFADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,element){if(parser.push("PFADD"),parser.pushKey(key),element)parser.pushVariadic(element)},transformReply:void 0}}),require_PFCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("PFCOUNT"),parser.pushKeys(keys3)},transformReply:void 0}}),require_PFMERGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,destination,sources){if(parser.push("PFMERGE"),parser.pushKey(destination),sources)parser.pushKeys(sources)},transformReply:void 0}}),require_PING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,message){if(parser.push("PING"),message)parser.push(message)},transformReply:void 0}}),require_PSETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,ms,value){parser.push("PSETEX"),parser.pushKey(key),parser.push(ms.toString(),value)},transformReply:void 0}}),require_PTTL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("PTTL"),parser.pushKey(key)},transformReply:void 0}}),require_PUBLISH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,IS_FORWARD_COMMAND:!0,parseCommand(parser,channel,message){parser.push("PUBLISH",channel,message)},transformReply:void 0}}),require_PUBSUB_CHANNELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,pattern){if(parser.push("PUBSUB","CHANNELS"),pattern)parser.push(pattern)},transformReply:void 0}}),require_PUBSUB_NUMPAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("PUBSUB","NUMPAT")},transformReply:void 0}}),require_PUBSUB_NUMSUB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,channels){if(parser.push("PUBSUB","NUMSUB"),channels)parser.pushVariadic(channels)},transformReply(rawReply){let reply=Object.create(null),i=0;while(i<rawReply.length)reply[rawReply[i++].toString()]=Number(rawReply[i++]);return reply}}}),require_PUBSUB_SHARDNUMSUB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,channels){if(parser.push("PUBSUB","SHARDNUMSUB"),channels)parser.pushVariadic(channels)},transformReply(reply){let transformedReply=Object.create(null);for(let i=0;i<reply.length;i+=2)transformedReply[reply[i].toString()]=reply[i+1];return transformedReply}}}),require_PUBSUB_SHARDCHANNELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,pattern){if(parser.push("PUBSUB","SHARDCHANNELS"),pattern)parser.push(pattern)},transformReply:void 0}}),require_RANDOMKEY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("RANDOMKEY")},transformReply:void 0}}),require_READONLY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("READONLY")},transformReply:void 0}}),require_RENAME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,newKey){parser.push("RENAME"),parser.pushKeys([key,newKey])},transformReply:void 0}}),require_RENAMENX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,newKey){parser.push("RENAMENX"),parser.pushKeys([key,newKey])},transformReply:void 0}}),require_REPLICAOF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port3){parser.push("REPLICAOF",host,port3.toString())},transformReply:void 0}}),require_RESTORE_ASKING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("RESTORE-ASKING")},transformReply:void 0}}),require_RESTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,ttl,serializedValue,options){if(parser.push("RESTORE"),parser.pushKey(key),parser.push(ttl.toString(),serializedValue),options?.REPLACE)parser.push("REPLACE");if(options?.ABSTTL)parser.push("ABSTTL");if(options?.IDLETIME)parser.push("IDLETIME",options.IDLETIME.toString());if(options?.FREQ)parser.push("FREQ",options.FREQ.toString())},transformReply:void 0}}),require_ROLE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("ROLE")},transformReply(reply){switch(reply[0]){case"master":{let[role,replicationOffest,replicas]=reply;return{role,replicationOffest,replicas:replicas.map((replica)=>{let[host,port3,replicationOffest2]=replica;return{host,port:Number(port3),replicationOffest:Number(replicationOffest2)}})}}case"slave":{let[role,masterHost,masterPort,state,dataReceived]=reply;return{role,master:{host:masterHost,port:masterPort},state,dataReceived}}case"sentinel":{let[role,masterNames]=reply;return{role,masterNames}}}}}}),require_RPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,count32){parser.push("RPOP"),parser.pushKey(key),parser.push(count32.toString())},transformReply:void 0}}),require_RPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key){parser.push("RPOP"),parser.pushKey(key)},transformReply:void 0}}),require_RPOPLPUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,source,destination){parser.push("RPOPLPUSH"),parser.pushKeys([source,destination])},transformReply:void 0}}),require_RPUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,element){parser.push("RPUSH"),parser.pushKey(key),parser.pushVariadic(element)},transformReply:void 0}}),require_RPUSHX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,element){parser.push("RPUSHX"),parser.pushKey(key),parser.pushVariadic(element)},transformReply:void 0}}),require_SADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,members){parser.push("SADD"),parser.pushKey(key),parser.pushVariadic(members)},transformReply:void 0}}),require_SCARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("SCARD"),parser.pushKey(key)},transformReply:void 0}}),require_SCRIPT_DEBUG=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,mode){parser.push("SCRIPT","DEBUG",mode)},transformReply:void 0}}),require_SCRIPT_EXISTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,sha1){parser.push("SCRIPT","EXISTS"),parser.pushVariadic(sha1)},transformReply:void 0}}),require_SCRIPT_FLUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,mode){if(parser.push("SCRIPT","FLUSH"),mode)parser.push(mode)},transformReply:void 0}}),require_SCRIPT_KILL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("SCRIPT","KILL")},transformReply:void 0}}),require_SCRIPT_LOAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,script){parser.push("SCRIPT","LOAD",script)},transformReply:void 0}}),require_SDIFF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("SDIFF"),parser.pushKeys(keys3)},transformReply:void 0}}),require_SDIFFSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,destination,keys3){parser.push("SDIFFSTORE"),parser.pushKey(destination),parser.pushKeys(keys3)},transformReply:void 0}}),require_SET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,value,options){if(parser.push("SET"),parser.pushKey(key),parser.push(typeof value==="number"?value.toString():value),options?.expiration)if(typeof options.expiration==="string")parser.push(options.expiration);else if(options.expiration.type==="KEEPTTL")parser.push("KEEPTTL");else parser.push(options.expiration.type,options.expiration.value.toString());else if(options?.EX!==void 0)parser.push("EX",options.EX.toString());else if(options?.PX!==void 0)parser.push("PX",options.PX.toString());else if(options?.EXAT!==void 0)parser.push("EXAT",options.EXAT.toString());else if(options?.PXAT!==void 0)parser.push("PXAT",options.PXAT.toString());else if(options?.KEEPTTL)parser.push("KEEPTTL");if(options?.condition){if(parser.push(options.condition),options?.matchValue!==void 0)parser.push(options.matchValue)}else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.GET)parser.push("GET")},transformReply:void 0}}),require_SETBIT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,offset,value){parser.push("SETBIT"),parser.pushKey(key),parser.push(offset.toString(),value.toString())},transformReply:void 0}}),require_SETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,seconds2,value){parser.push("SETEX"),parser.pushKey(key),parser.push(seconds2.toString(),value)},transformReply:void 0}}),require_SETNX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,value){parser.push("SETNX"),parser.pushKey(key),parser.push(value)},transformReply:void 0}}),require_SETRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,key,offset,value){parser.push("SETRANGE"),parser.pushKey(key),parser.push(offset.toString(),value)},transformReply:void 0}}),require_SINTER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("SINTER"),parser.pushKeys(keys3)},transformReply:void 0}}),require_SINTERCARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3,options){if(parser.push("SINTERCARD"),parser.pushKeysLength(keys3),typeof options==="number")parser.push("LIMIT",options.toString());else if(options?.LIMIT!==void 0)parser.push("LIMIT",options.LIMIT.toString())},transformReply:void 0}}),require_SINTERSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,keys3){parser.push("SINTERSTORE"),parser.pushKey(destination),parser.pushKeys(keys3)},transformReply:void 0}}),require_SISMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("SISMEMBER"),parser.pushKey(key),parser.push(member)},transformReply:void 0}}),require_SMEMBERS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("SMEMBERS"),parser.pushKey(key)},transformReply:{2:void 0,3:void 0}}}),require_SMISMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,members){parser.push("SMISMEMBER"),parser.pushKey(key),parser.pushVariadic(members)},transformReply:void 0}}),require_SMOVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,member){parser.push("SMOVE"),parser.pushKeys([source,destination]),parser.push(member)},transformReply:void 0}}),require_SORT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseSortArguments=void 0;function parseSortArguments(parser,key,options){if(parser.pushKey(key),options?.BY)parser.push("BY",options.BY);if(options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString());if(options?.GET)if(Array.isArray(options.GET))for(let pattern of options.GET)parser.push("GET",pattern);else parser.push("GET",options.GET);if(options?.DIRECTION)parser.push(options.DIRECTION);if(options?.ALPHA)parser.push("ALPHA")}exports.parseSortArguments=parseSortArguments,exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){parser.push("SORT"),parseSortArguments(parser,key,options)},transformReply:void 0}}),require_SORT_RO=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var SORT_1=__importStar(require_SORT());exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("SORT_RO"),(0,SORT_1.parseSortArguments)(...args2)},transformReply:SORT_1.default.transformReply}}),require_SORT_STORE=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var SORT_1=__importDefault(require_SORT());exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,options){SORT_1.default.parseCommand(parser,source,options),parser.push("STORE",destination)},transformReply:void 0}}),require_SPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count32){parser.push("SPOP"),parser.pushKey(key),parser.push(count32.toString())},transformReply:void 0}}),require_SPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key){parser.push("SPOP"),parser.pushKey(key)},transformReply:void 0}}),require_SPUBLISH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,channel,message){parser.push("SPUBLISH"),parser.pushKey(channel),parser.push(message)},transformReply:void 0}}),require_SRANDMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("SRANDMEMBER"),parser.pushKey(key)},transformReply:void 0}}),require_SRANDMEMBER_COUNT=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var SRANDMEMBER_1=__importDefault(require_SRANDMEMBER());exports.default={IS_READ_ONLY:SRANDMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,count32){SRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count32.toString())},transformReply:void 0}}),require_SREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,members){parser.push("SREM"),parser.pushKey(key),parser.pushVariadic(members)},transformReply:void 0}}),require_SSCAN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var SCAN_1=require_SCAN();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,cursor,options){parser.push("SSCAN"),parser.pushKey(key),(0,SCAN_1.parseScanArguments)(parser,cursor,options)},transformReply([cursor,members]){return{cursor,members}}}}),require_STRLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("STRLEN"),parser.pushKey(key)},transformReply:void 0}}),require_SUNION=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("SUNION"),parser.pushKeys(keys3)},transformReply:void 0}}),require_SUNIONSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,keys3){parser.push("SUNIONSTORE"),parser.pushKey(destination),parser.pushKeys(keys3)},transformReply:void 0}}),require_SWAPDB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,index1,index2){parser.push("SWAPDB",index1.toString(),index2.toString())},transformReply:void 0}}),require_TIME=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("TIME")},transformReply:void 0}}),require_TOUCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key){parser.push("TOUCH"),parser.pushKeys(key)},transformReply:void 0}}),require_TTL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TTL"),parser.pushKey(key)},transformReply:void 0}}),require_TYPE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TYPE"),parser.pushKey(key)},transformReply:void 0}}),require_UNLINK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,keys3){parser.push("UNLINK"),parser.pushKeys(keys3)},transformReply:void 0}}),require_WAIT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,numberOfReplicas,timeout5){parser.push("WAIT",numberOfReplicas.toString(),timeout5.toString())},transformReply:void 0}}),require_XACK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,id2){parser.push("XACK"),parser.pushKey(key),parser.push(group3),parser.pushVariadic(id2)},transformReply:void 0}}),require_XACKDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,id2,policy){if(parser.push("XACKDEL"),parser.pushKey(key),parser.push(group3),policy)parser.push(policy);parser.push("IDS"),parser.pushVariadicWithLength(id2)},transformReply:void 0}}),require_XADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseXAddArguments=void 0;function parseXAddArguments(optional,parser,key,id2,message,options){if(parser.push("XADD"),parser.pushKey(key),optional)parser.push(optional);if(options?.TRIM){if(options.TRIM.strategy)parser.push(options.TRIM.strategy);if(options.TRIM.strategyModifier)parser.push(options.TRIM.strategyModifier);if(parser.push(options.TRIM.threshold.toString()),options.TRIM.limit)parser.push("LIMIT",options.TRIM.limit.toString());if(options.TRIM.policy)parser.push(options.TRIM.policy)}parser.push(id2);for(let[key2,value]of Object.entries(message))parser.push(key2,value)}exports.parseXAddArguments=parseXAddArguments,exports.default={IS_READ_ONLY:!1,parseCommand(...args2){return parseXAddArguments(void 0,...args2)},transformReply:void 0}}),require_XADD_NOMKSTREAM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var XADD_1=require_XADD();exports.default={IS_READ_ONLY:!1,parseCommand(...args2){return(0,XADD_1.parseXAddArguments)("NOMKSTREAM",...args2)},transformReply:void 0}}),require_XAUTOCLAIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,consumer,minIdleTime,start3,options){if(parser.push("XAUTOCLAIM"),parser.pushKey(key),parser.push(group3,consumer,minIdleTime.toString(),start3),options?.COUNT)parser.push("COUNT",options.COUNT.toString())},transformReply(reply,preserve,typeMapping){return{nextId:reply[0],messages:reply[1].map(generic_transformers_1.transformStreamMessageNullReply.bind(void 0,typeMapping)),deletedMessages:reply[2]}}}}),require_XAUTOCLAIM_JUSTID=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var XAUTOCLAIM_1=__importDefault(require_XAUTOCLAIM());exports.default={IS_READ_ONLY:XAUTOCLAIM_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];XAUTOCLAIM_1.default.parseCommand(...args2),parser.push("JUSTID")},transformReply(reply){return{nextId:reply[0],messages:reply[1],deletedMessages:reply[2]}}}}),require_XCLAIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,consumer,minIdleTime,id2,options){if(parser.push("XCLAIM"),parser.pushKey(key),parser.push(group3,consumer,minIdleTime.toString()),parser.pushVariadic(id2),options?.IDLE!==void 0)parser.push("IDLE",options.IDLE.toString());if(options?.TIME!==void 0)parser.push("TIME",(options.TIME instanceof Date?options.TIME.getTime():options.TIME).toString());if(options?.RETRYCOUNT!==void 0)parser.push("RETRYCOUNT",options.RETRYCOUNT.toString());if(options?.FORCE)parser.push("FORCE");if(options?.LASTID!==void 0)parser.push("LASTID",options.LASTID)},transformReply(reply,preserve,typeMapping){return reply.map(generic_transformers_1.transformStreamMessageNullReply.bind(void 0,typeMapping))}}}),require_XCLAIM_JUSTID=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var XCLAIM_1=__importDefault(require_XCLAIM());exports.default={IS_READ_ONLY:XCLAIM_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];XCLAIM_1.default.parseCommand(...args2),parser.push("JUSTID")},transformReply:void 0}}),require_XDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,id2){parser.push("XDEL"),parser.pushKey(key),parser.pushVariadic(id2)},transformReply:void 0}}),require_XDELEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,id2,policy){if(parser.push("XDELEX"),parser.pushKey(key),policy)parser.push(policy);parser.push("IDS"),parser.pushVariadicWithLength(id2)},transformReply:void 0}}),require_XGROUP_CREATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,id2,options){if(parser.push("XGROUP","CREATE"),parser.pushKey(key),parser.push(group3,id2),options?.MKSTREAM)parser.push("MKSTREAM");if(options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}}),require_XGROUP_CREATECONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,consumer){parser.push("XGROUP","CREATECONSUMER"),parser.pushKey(key),parser.push(group3,consumer)},transformReply:void 0}}),require_XGROUP_DELCONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,consumer){parser.push("XGROUP","DELCONSUMER"),parser.pushKey(key),parser.push(group3,consumer)},transformReply:void 0}}),require_XGROUP_DESTROY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3){parser.push("XGROUP","DESTROY"),parser.pushKey(key),parser.push(group3)},transformReply:void 0}}),require_XGROUP_SETID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group3,id2,options){if(parser.push("XGROUP","SETID"),parser.pushKey(key),parser.push(group3,id2),options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}}),require_XINFO_CONSUMERS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,group3){parser.push("XINFO","CONSUMERS"),parser.pushKey(key),parser.push(group3)},transformReply:{2:(reply)=>{return reply.map((consumer)=>{let unwrapped=consumer;return{name:unwrapped[1],pending:unwrapped[3],idle:unwrapped[5],inactive:unwrapped[7]}})},3:void 0}}}),require_XINFO_GROUPS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("XINFO","GROUPS"),parser.pushKey(key)},transformReply:{2:(reply)=>{return reply.map((group3)=>{let unwrapped=group3;return{name:unwrapped[1],consumers:unwrapped[3],pending:unwrapped[5],"last-delivered-id":unwrapped[7],"entries-read":unwrapped[9],lag:unwrapped[11]}})},3:void 0}}}),require_XINFO_STREAM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("XINFO","STREAM"),parser.pushKey(key)},transformReply:{2(reply){let parsedReply={};for(let i=0;i<reply.length;i+=2)switch(reply[i]){case"first-entry":case"last-entry":parsedReply[reply[i]]=transformEntry(reply[i+1]);break;default:parsedReply[reply[i]]=reply[i+1];break}return parsedReply},3(reply){if(reply instanceof Map)reply.set("first-entry",transformEntry(reply.get("first-entry"))),reply.set("last-entry",transformEntry(reply.get("last-entry")));else if(reply instanceof Array)reply[17]=transformEntry(reply[17]),reply[19]=transformEntry(reply[19]);else reply["first-entry"]=transformEntry(reply["first-entry"]),reply["last-entry"]=transformEntry(reply["last-entry"]);return reply}}};function transformEntry(entry){if((0,generic_transformers_1.isNullReply)(entry))return entry;let[id2,message]=entry;return{id:id2,message:(0,generic_transformers_1.transformTuplesReply)(message)}}}),require_XLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("XLEN"),parser.pushKey(key)},transformReply:void 0}}),require_XPENDING_RANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group3,start3,end6,count32,options){if(parser.push("XPENDING"),parser.pushKey(key),parser.push(group3),options?.IDLE!==void 0)parser.push("IDLE",options.IDLE.toString());if(parser.push(start3,end6,count32.toString()),options?.consumer)parser.push(options.consumer)},transformReply(reply){return reply.map((pending3)=>{let unwrapped=pending3;return{id:unwrapped[0],consumer:unwrapped[1],millisecondsSinceLastDelivery:unwrapped[2],deliveriesCounter:unwrapped[3]}})}}}),require_XPENDING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group3){parser.push("XPENDING"),parser.pushKey(key),parser.push(group3)},transformReply(reply){let consumers=reply[3];return{pending:reply[0],firstId:reply[1],lastId:reply[2],consumers:consumers===null?null:consumers.map((consumer)=>{let[name,deliveriesCounter]=consumer;return{name,deliveriesCounter:Number(deliveriesCounter)}})}}}}),require_XRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.xRangeArguments=void 0;var generic_transformers_1=require_generic_transformers();function xRangeArguments(start3,end6,options){let args2=[start3,end6];if(options?.COUNT)args2.push("COUNT",options.COUNT.toString());return args2}exports.xRangeArguments=xRangeArguments,exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,...args2){parser.push("XRANGE"),parser.pushKey(key),parser.pushVariadic(xRangeArguments(args2[0],args2[1],args2[2]))},transformReply(reply,preserve,typeMapping){return reply.map(generic_transformers_1.transformStreamMessageReply.bind(void 0,typeMapping))}}}),require_XREAD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.pushXReadStreams=void 0;var generic_transformers_1=require_generic_transformers();function pushXReadStreams(parser,streams){if(parser.push("STREAMS"),Array.isArray(streams)){for(let i=0;i<streams.length;i++)parser.pushKey(streams[i].key);for(let i=0;i<streams.length;i++)parser.push(streams[i].id)}else parser.pushKey(streams.key),parser.push(streams.id)}exports.pushXReadStreams=pushXReadStreams,exports.default={IS_READ_ONLY:!0,parseCommand(parser,streams,options){if(parser.push("XREAD"),options?.COUNT)parser.push("COUNT",options.COUNT.toString());if(options?.BLOCK!==void 0)parser.push("BLOCK",options.BLOCK.toString());pushXReadStreams(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:!0}}),require_XREADGROUP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var XREAD_1=require_XREAD(),generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,group3,consumer,streams,options){if(parser.push("XREADGROUP","GROUP",group3,consumer),options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString());if(options?.BLOCK!==void 0)parser.push("BLOCK",options.BLOCK.toString());if(options?.NOACK)parser.push("NOACK");if(options?.CLAIM!==void 0)parser.push("CLAIM",options.CLAIM.toString());(0,XREAD_1.pushXReadStreams)(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0}}}),require_XREVRANGE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var XRANGE_1=__importStar(require_XRANGE());exports.default={CACHEABLE:XRANGE_1.default.CACHEABLE,IS_READ_ONLY:XRANGE_1.default.IS_READ_ONLY,parseCommand(parser,key,...args2){parser.push("XREVRANGE"),parser.pushKey(key),parser.pushVariadic((0,XRANGE_1.xRangeArguments)(args2[0],args2[1],args2[2]))},transformReply:XRANGE_1.default.transformReply}}),require_XSETID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,lastId,options){if(parser.push("XSETID"),parser.pushKey(key),parser.push(lastId),options?.ENTRIESADDED)parser.push("ENTRIESADDED",options.ENTRIESADDED.toString());if(options?.MAXDELETEDID)parser.push("MAXDELETEDID",options.MAXDELETEDID)},transformReply:void 0}}),require_XTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,strategy,threshold,options){if(parser.push("XTRIM"),parser.pushKey(key),parser.push(strategy),options?.strategyModifier)parser.push(options.strategyModifier);if(parser.push(threshold.toString()),options?.LIMIT)parser.push("LIMIT",options.LIMIT.toString());if(options?.policy)parser.push(options.policy)},transformReply:void 0}}),require_ZADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.pushMembers=void 0;var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,members,options){if(parser.push("ZADD"),parser.pushKey(key),options?.condition)parser.push(options.condition);else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.comparison)parser.push(options.comparison);else if(options?.LT)parser.push("LT");else if(options?.GT)parser.push("GT");if(options?.CH)parser.push("CH");pushMembers(parser,members)},transformReply:generic_transformers_1.transformDoubleReply};function pushMembers(parser,members){if(Array.isArray(members))for(let member of members)pushMember(parser,member);else pushMember(parser,members)}exports.pushMembers=pushMembers;function pushMember(parser,member){parser.push((0,generic_transformers_1.transformDoubleArgument)(member.score),member.value)}}),require_ZADD_INCR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var ZADD_1=require_ZADD(),generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,members,options){if(parser.push("ZADD"),parser.pushKey(key),options?.condition)parser.push(options.condition);if(options?.comparison)parser.push(options.comparison);if(options?.CH)parser.push("CH");parser.push("INCR"),(0,ZADD_1.pushMembers)(parser,members)},transformReply:generic_transformers_1.transformNullableDoubleReply}}),require_ZCARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("ZCARD"),parser.pushKey(key)},transformReply:void 0}}),require_ZCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min32,max52){parser.push("ZCOUNT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52))},transformReply:void 0}}),require_ZDIFF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3){parser.push("ZDIFF"),parser.pushKeysLength(keys3)},transformReply:void 0}}),require_ZDIFF_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZDIFF_1=__importDefault(require_ZDIFF());exports.default={IS_READ_ONLY:ZDIFF_1.default.IS_READ_ONLY,parseCommand(parser,keys3){ZDIFF_1.default.parseCommand(parser,keys3),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZDIFFSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,destination,inputKeys){parser.push("ZDIFFSTORE"),parser.pushKey(destination),parser.pushKeysLength(inputKeys)},transformReply:void 0}}),require_ZINCRBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,increment,member){parser.push("ZINCRBY"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformDoubleArgument)(increment),member)},transformReply:generic_transformers_1.transformDoubleReply}}),require_ZINTER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseZInterArguments=void 0;var generic_transformers_1=require_generic_transformers();function parseZInterArguments(parser,keys3,options){if((0,generic_transformers_1.parseZKeysArguments)(parser,keys3),options?.AGGREGATE)parser.push("AGGREGATE",options.AGGREGATE)}exports.parseZInterArguments=parseZInterArguments,exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3,options){parser.push("ZINTER"),parseZInterArguments(parser,keys3,options)},transformReply:void 0}}),require_ZINTER_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZINTER_1=__importDefault(require_ZINTER());exports.default={IS_READ_ONLY:ZINTER_1.default.IS_READ_ONLY,parseCommand(...args2){ZINTER_1.default.parseCommand(...args2),args2[0].push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZINTERCARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3,options){if(parser.push("ZINTERCARD"),parser.pushKeysLength(keys3),typeof options==="number")parser.push("LIMIT",options.toString());else if(options?.LIMIT)parser.push("LIMIT",options.LIMIT.toString())},transformReply:void 0}}),require_ZINTERSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var ZINTER_1=require_ZINTER();exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,keys3,options){parser.push("ZINTERSTORE"),parser.pushKey(destination),(0,ZINTER_1.parseZInterArguments)(parser,keys3,options)},transformReply:void 0}}),require_ZLEXCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min32,max52){parser.push("ZLEXCOUNT"),parser.pushKey(key),parser.push(min32),parser.push(max52)},transformReply:void 0}}),require_ZMSCORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("ZMSCORE"),parser.pushKey(key),parser.pushVariadic(member)},transformReply:{2:(reply,preserve,typeMapping)=>{return reply.map((0,generic_transformers_1.createTransformNullableDoubleReplyResp2Func)(preserve,typeMapping))},3:void 0}}}),require_ZPOPMAX_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count32){parser.push("ZPOPMAX"),parser.pushKey(key),parser.push(count32.toString())},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZPOPMAX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key){parser.push("ZPOPMAX"),parser.pushKey(key)},transformReply:{2:(reply,preserve,typeMapping)=>{if(reply.length===0)return null;return{value:reply[0],score:generic_transformers_1.transformDoubleReply[2](reply[1],preserve,typeMapping)}},3:(reply)=>{if(reply.length===0)return null;return{value:reply[0],score:reply[1]}}}}}),require_ZPOPMIN_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count32){parser.push("ZPOPMIN"),parser.pushKey(key),parser.push(count32.toString())},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZPOPMIN=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ZPOPMAX_1=__importDefault(require_ZPOPMAX());exports.default={IS_READ_ONLY:!1,parseCommand(parser,key){parser.push("ZPOPMIN"),parser.pushKey(key)},transformReply:ZPOPMAX_1.default.transformReply}}),require_ZRANDMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("ZRANDMEMBER"),parser.pushKey(key)},transformReply:void 0}}),require_ZRANDMEMBER_COUNT=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ZRANDMEMBER_1=__importDefault(require_ZRANDMEMBER());exports.default={IS_READ_ONLY:ZRANDMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,count32){ZRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count32.toString())},transformReply:void 0}}),require_ZRANDMEMBER_COUNT_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZRANDMEMBER_COUNT_1=__importDefault(require_ZRANDMEMBER_COUNT());exports.default={IS_READ_ONLY:ZRANDMEMBER_COUNT_1.default.IS_READ_ONLY,parseCommand(parser,key,count32){ZRANDMEMBER_COUNT_1.default.parseCommand(parser,key,count32),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.zRangeArgument=void 0;var generic_transformers_1=require_generic_transformers();function zRangeArgument(min32,max52,options){let args2=[(0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52)];switch(options?.BY){case"SCORE":args2.push("BYSCORE");break;case"LEX":args2.push("BYLEX");break}if(options?.REV)args2.push("REV");if(options?.LIMIT)args2.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString());return args2}exports.zRangeArgument=zRangeArgument,exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min32,max52,options){parser.push("ZRANGE"),parser.pushKey(key),parser.pushVariadic(zRangeArgument(min32,max52,options))},transformReply:void 0}}),require_ZRANGE_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZRANGE_1=__importDefault(require_ZRANGE());exports.default={CACHEABLE:ZRANGE_1.default.CACHEABLE,IS_READ_ONLY:ZRANGE_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];ZRANGE_1.default.parseCommand(...args2),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZRANGEBYLEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min32,max52,options){if(parser.push("ZRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}}),require_ZRANGEBYSCORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min32,max52,options){if(parser.push("ZRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}}),require_ZRANGEBYSCORE_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZRANGEBYSCORE_1=__importDefault(require_ZRANGEBYSCORE());exports.default={CACHEABLE:ZRANGEBYSCORE_1.default.CACHEABLE,IS_READ_ONLY:ZRANGEBYSCORE_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];ZRANGEBYSCORE_1.default.parseCommand(...args2),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZRANGESTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,source,min32,max52,options){switch(parser.push("ZRANGESTORE"),parser.pushKey(destination),parser.pushKey(source),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52)),options?.BY){case"SCORE":parser.push("BYSCORE");break;case"LEX":parser.push("BYLEX");break}if(options?.REV)parser.push("REV");if(options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}}),require_ZREMRANGEBYSCORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,min32,max52){parser.push("ZREMRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52))},transformReply:void 0}}),require_ZRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("ZRANK"),parser.pushKey(key),parser.push(member)},transformReply:void 0}}),require_ZRANK_WITHSCORE=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ZRANK_1=__importDefault(require_ZRANK());exports.default={CACHEABLE:ZRANK_1.default.CACHEABLE,IS_READ_ONLY:ZRANK_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];ZRANK_1.default.parseCommand(...args2),parser.push("WITHSCORE")},transformReply:{2:(reply)=>{if(reply===null)return null;return{rank:reply[0],score:Number(reply[1])}},3:(reply)=>{if(reply===null)return null;return{rank:reply[0],score:reply[1]}}}}}),require_ZREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,member){parser.push("ZREM"),parser.pushKey(key),parser.pushVariadic(member)},transformReply:void 0}}),require_ZREMRANGEBYLEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,min32,max52){parser.push("ZREMRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min32),(0,generic_transformers_1.transformStringDoubleArgument)(max52))},transformReply:void 0}}),require_ZREMRANGEBYRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,start3,stop22){parser.push("ZREMRANGEBYRANK"),parser.pushKey(key),parser.push(start3.toString(),stop22.toString())},transformReply:void 0}}),require_ZREVRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("ZREVRANK"),parser.pushKey(key),parser.push(member)},transformReply:void 0}}),require_ZSCAN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var SCAN_1=require_SCAN(),generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,cursor,options){parser.push("ZSCAN"),parser.pushKey(key),(0,SCAN_1.parseScanArguments)(parser,cursor,options)},transformReply([cursor,rawMembers]){return{cursor,members:generic_transformers_1.transformSortedSetReply[2](rawMembers)}}}}),require_ZSCORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,member){parser.push("ZSCORE"),parser.pushKey(key),parser.push(member)},transformReply:generic_transformers_1.transformNullableDoubleReply}}),require_ZUNION=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3,options){if(parser.push("ZUNION"),(0,generic_transformers_1.parseZKeysArguments)(parser,keys3),options?.AGGREGATE)parser.push("AGGREGATE",options.AGGREGATE)},transformReply:void 0}}),require_ZUNION_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),ZUNION_1=__importDefault(require_ZUNION());exports.default={IS_READ_ONLY:ZUNION_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];ZUNION_1.default.parseCommand(...args2),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}),require_ZUNIONSTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,keys3,options){if(parser.push("ZUNIONSTORE"),parser.pushKey(destination),(0,generic_transformers_1.parseZKeysArguments)(parser,keys3),options?.AGGREGATE)parser.push("AGGREGATE",options.AGGREGATE)},transformReply:void 0}}),require_VADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,vector,element,options){if(parser.push("VADD"),parser.pushKey(key),options?.REDUCE!==void 0)parser.push("REDUCE",options.REDUCE.toString());parser.push("VALUES",vector.length.toString());for(let value of vector)parser.push((0,generic_transformers_1.transformDoubleArgument)(value));if(parser.push(element),options?.CAS)parser.push("CAS");if(options?.QUANT&&parser.push(options.QUANT),options?.EF!==void 0)parser.push("EF",options.EF.toString());if(options?.SETATTR)parser.push("SETATTR",JSON.stringify(options.SETATTR));if(options?.M!==void 0)parser.push("M",options.M.toString())},transformReply:generic_transformers_1.transformBooleanReply}}),require_VCARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("VCARD"),parser.pushKey(key)},transformReply:void 0}}),require_VDIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("VDIM"),parser.pushKey(key)},transformReply:void 0}}),require_VEMB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,element){parser.push("VEMB"),parser.pushKey(key),parser.push(element)},transformReply:generic_transformers_1.transformDoubleArrayReply}}),require_VEMB_RAW=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),VEMB_1=__importDefault(require_VEMB()),transformRawVembReply={2:(reply)=>{return{quantization:reply[0],raw:reply[1],l2Norm:generic_transformers_1.transformDoubleReply[2](reply[2]),...reply[3]!==void 0&&{quantizationRange:generic_transformers_1.transformDoubleReply[2](reply[3])}}},3:(reply)=>{return{quantization:reply[0],raw:reply[1],l2Norm:reply[2],quantizationRange:reply[3]}}};exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,element){VEMB_1.default.parseCommand(parser,key,element),parser.push("RAW")},transformReply:transformRawVembReply}}),require_VGETATTR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,element){parser.push("VGETATTR"),parser.pushKey(key),parser.push(element)},transformReply:generic_transformers_1.transformRedisJsonNullReply}}),require_VINFO=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("VINFO"),parser.pushKey(key)},transformReply:{2:(reply)=>{let ret=Object.create(null);for(let i=0;i<reply.length;i+=2)ret[reply[i].toString()]=reply[i+1];return ret},3:void 0}}}),require_VLINKS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,element){parser.push("VLINKS"),parser.pushKey(key),parser.push(element)},transformReply:void 0}}),require_VLINKS_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),VLINKS_1=__importDefault(require_VLINKS());function transformVLinksWithScoresReply(reply){let layers=[];for(let layer of reply){let obj=Object.create(null);for(let i=0;i<layer.length;i+=2){let element=layer[i],score=generic_transformers_1.transformDoubleReply[2](layer[i+1]);obj[element.toString()]=score}layers.push(obj)}return layers}exports.default={IS_READ_ONLY:VLINKS_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];VLINKS_1.default.parseCommand(...args2),parser.push("WITHSCORES")},transformReply:{2:transformVLinksWithScoresReply,3:void 0}}}),require_VRANDMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count32){if(parser.push("VRANDMEMBER"),parser.pushKey(key),count32!==void 0)parser.push(count32.toString())},transformReply:void 0}}),require_VREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,element){parser.push("VREM"),parser.pushKey(key),parser.push(element)},transformReply:generic_transformers_1.transformBooleanReply}}),require_VSETATTR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,key,element,attributes){if(parser.push("VSETATTR"),parser.pushKey(key),parser.push(element),typeof attributes==="object"&&attributes!==null)parser.push(JSON.stringify(attributes));else parser.push(attributes)},transformReply:generic_transformers_1.transformBooleanReply}}),require_VSIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,query,options){if(parser.push("VSIM"),parser.pushKey(key),Array.isArray(query)){parser.push("VALUES",query.length.toString());for(let value of query)parser.push((0,generic_transformers_1.transformDoubleArgument)(value))}else parser.push("ELE",query);if(options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString());if(options?.EPSILON!==void 0)parser.push("EPSILON",options.EPSILON.toString());if(options?.EF!==void 0)parser.push("EF",options.EF.toString());if(options?.FILTER)parser.push("FILTER",options.FILTER);if(options?.["FILTER-EF"]!==void 0)parser.push("FILTER-EF",options["FILTER-EF"].toString());if(options?.TRUTH)parser.push("TRUTH");if(options?.NOTHREAD)parser.push("NOTHREAD")},transformReply:void 0}}),require_VSIM_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),VSIM_1=__importDefault(require_VSIM());exports.default={IS_READ_ONLY:VSIM_1.default.IS_READ_ONLY,parseCommand(...args2){let parser=args2[0];VSIM_1.default.parseCommand(...args2),parser.push("WITHSCORES")},transformReply:{2:(reply)=>{let inferred=reply,members={};for(let i=0;i<inferred.length;i+=2)members[inferred[i].toString()]=generic_transformers_1.transformDoubleReply[2](inferred[i+1]);return members},3:void 0}}}),require_LATENCY_HISTOGRAM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),id2=(n)=>n;exports.default={CACHEABLE:!1,IS_READ_ONLY:!0,parseCommand(parser,...commands){let args2=["LATENCY","HISTOGRAM"];if(commands.length!==0)args2.push(...commands);parser.push(...args2)},transformReply:{2:(reply)=>{let result={};if(reply.length===0)return result;for(let i=1;i<reply.length;i+=2){let histogram6=reply[i];result[reply[i-1]]={calls:histogram6[1],histogram_usec:(0,generic_transformers_1.transformTuplesToMap)(histogram6[3],id2)}}return result},3:void 0}}}),require_commands=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.REDIS_FLUSH_MODES=exports.COMMAND_LIST_FILTER_BY=exports.CLUSTER_SLOT_STATES=exports.FAILOVER_MODES=exports.CLIENT_KILL_FILTERS=void 0;var ACL_CAT_1=__importDefault(require_ACL_CAT()),ACL_DELUSER_1=__importDefault(require_ACL_DELUSER()),ACL_DRYRUN_1=__importDefault(require_ACL_DRYRUN()),ACL_GENPASS_1=__importDefault(require_ACL_GENPASS()),ACL_GETUSER_1=__importDefault(require_ACL_GETUSER()),ACL_LIST_1=__importDefault(require_ACL_LIST()),ACL_LOAD_1=__importDefault(require_ACL_LOAD()),ACL_LOG_RESET_1=__importDefault(require_ACL_LOG_RESET()),ACL_LOG_1=__importDefault(require_ACL_LOG()),ACL_SAVE_1=__importDefault(require_ACL_SAVE()),ACL_SETUSER_1=__importDefault(require_ACL_SETUSER()),ACL_USERS_1=__importDefault(require_ACL_USERS()),ACL_WHOAMI_1=__importDefault(require_ACL_WHOAMI()),APPEND_1=__importDefault(require_APPEND()),ASKING_1=__importDefault(require_ASKING()),AUTH_1=__importDefault(require_AUTH()),BGREWRITEAOF_1=__importDefault(require_BGREWRITEAOF()),BGSAVE_1=__importDefault(require_BGSAVE()),BITCOUNT_1=__importDefault(require_BITCOUNT()),BITFIELD_RO_1=__importDefault(require_BITFIELD_RO()),BITFIELD_1=__importDefault(require_BITFIELD()),BITOP_1=__importDefault(require_BITOP()),BITPOS_1=__importDefault(require_BITPOS()),BLMOVE_1=__importDefault(require_BLMOVE()),BLMPOP_1=__importDefault(require_BLMPOP()),BLPOP_1=__importDefault(require_BLPOP()),BRPOP_1=__importDefault(require_BRPOP()),BRPOPLPUSH_1=__importDefault(require_BRPOPLPUSH()),BZMPOP_1=__importDefault(require_BZMPOP()),BZPOPMAX_1=__importDefault(require_BZPOPMAX()),BZPOPMIN_1=__importDefault(require_BZPOPMIN()),CLIENT_CACHING_1=__importDefault(require_CLIENT_CACHING()),CLIENT_GETNAME_1=__importDefault(require_CLIENT_GETNAME()),CLIENT_GETREDIR_1=__importDefault(require_CLIENT_GETREDIR()),CLIENT_ID_1=__importDefault(require_CLIENT_ID()),CLIENT_INFO_1=__importDefault(require_CLIENT_INFO()),CLIENT_KILL_1=__importStar(require_CLIENT_KILL());Object.defineProperty(exports,"CLIENT_KILL_FILTERS",{enumerable:!0,get:function(){return CLIENT_KILL_1.CLIENT_KILL_FILTERS}});var CLIENT_LIST_1=__importDefault(require_CLIENT_LIST()),CLIENT_NO_EVICT_1=__importDefault(require_CLIENT_NO_EVICT()),CLIENT_NO_TOUCH_1=__importDefault(require_CLIENT_NO_TOUCH()),CLIENT_PAUSE_1=__importDefault(require_CLIENT_PAUSE()),CLIENT_SETNAME_1=__importDefault(require_CLIENT_SETNAME()),CLIENT_TRACKING_1=__importDefault(require_CLIENT_TRACKING()),CLIENT_TRACKINGINFO_1=__importDefault(require_CLIENT_TRACKINGINFO()),CLIENT_UNPAUSE_1=__importDefault(require_CLIENT_UNPAUSE()),CLUSTER_ADDSLOTS_1=__importDefault(require_CLUSTER_ADDSLOTS()),CLUSTER_ADDSLOTSRANGE_1=__importDefault(require_CLUSTER_ADDSLOTSRANGE()),CLUSTER_BUMPEPOCH_1=__importDefault(require_CLUSTER_BUMPEPOCH()),CLUSTER_COUNT_FAILURE_REPORTS_1=__importDefault(require_CLUSTER_COUNT_FAILURE_REPORTS()),CLUSTER_COUNTKEYSINSLOT_1=__importDefault(require_CLUSTER_COUNTKEYSINSLOT()),CLUSTER_DELSLOTS_1=__importDefault(require_CLUSTER_DELSLOTS()),CLUSTER_DELSLOTSRANGE_1=__importDefault(require_CLUSTER_DELSLOTSRANGE()),CLUSTER_FAILOVER_1=__importStar(require_CLUSTER_FAILOVER());Object.defineProperty(exports,"FAILOVER_MODES",{enumerable:!0,get:function(){return CLUSTER_FAILOVER_1.FAILOVER_MODES}});var CLUSTER_FLUSHSLOTS_1=__importDefault(require_CLUSTER_FLUSHSLOTS()),CLUSTER_FORGET_1=__importDefault(require_CLUSTER_FORGET()),CLUSTER_GETKEYSINSLOT_1=__importDefault(require_CLUSTER_GETKEYSINSLOT()),CLUSTER_INFO_1=__importDefault(require_CLUSTER_INFO()),CLUSTER_KEYSLOT_1=__importDefault(require_CLUSTER_KEYSLOT()),CLUSTER_LINKS_1=__importDefault(require_CLUSTER_LINKS()),CLUSTER_MEET_1=__importDefault(require_CLUSTER_MEET()),CLUSTER_MYID_1=__importDefault(require_CLUSTER_MYID()),CLUSTER_MYSHARDID_1=__importDefault(require_CLUSTER_MYSHARDID()),CLUSTER_NODES_1=__importDefault(require_CLUSTER_NODES()),CLUSTER_REPLICAS_1=__importDefault(require_CLUSTER_REPLICAS()),CLUSTER_REPLICATE_1=__importDefault(require_CLUSTER_REPLICATE()),CLUSTER_RESET_1=__importDefault(require_CLUSTER_RESET()),CLUSTER_SAVECONFIG_1=__importDefault(require_CLUSTER_SAVECONFIG()),CLUSTER_SET_CONFIG_EPOCH_1=__importDefault(require_CLUSTER_SET_CONFIG_EPOCH()),CLUSTER_SETSLOT_1=__importStar(require_CLUSTER_SETSLOT());Object.defineProperty(exports,"CLUSTER_SLOT_STATES",{enumerable:!0,get:function(){return CLUSTER_SETSLOT_1.CLUSTER_SLOT_STATES}});var CLUSTER_SLOTS_1=__importDefault(require_CLUSTER_SLOTS()),COMMAND_COUNT_1=__importDefault(require_COMMAND_COUNT()),COMMAND_GETKEYS_1=__importDefault(require_COMMAND_GETKEYS()),COMMAND_GETKEYSANDFLAGS_1=__importDefault(require_COMMAND_GETKEYSANDFLAGS()),COMMAND_INFO_1=__importDefault(require_COMMAND_INFO()),COMMAND_LIST_1=__importStar(require_COMMAND_LIST());Object.defineProperty(exports,"COMMAND_LIST_FILTER_BY",{enumerable:!0,get:function(){return COMMAND_LIST_1.COMMAND_LIST_FILTER_BY}});var COMMAND_1=__importDefault(require_COMMAND()),CONFIG_GET_1=__importDefault(require_CONFIG_GET()),CONFIG_RESETSTAT_1=__importDefault(require_CONFIG_RESETSTAT()),CONFIG_REWRITE_1=__importDefault(require_CONFIG_REWRITE()),CONFIG_SET_1=__importDefault(require_CONFIG_SET()),COPY_1=__importDefault(require_COPY()),DBSIZE_1=__importDefault(require_DBSIZE()),DECR_1=__importDefault(require_DECR()),DECRBY_1=__importDefault(require_DECRBY()),DEL_1=__importDefault(require_DEL()),DELEX_1=__importDefault(require_DELEX()),DIGEST_1=__importDefault(require_DIGEST()),DUMP_1=__importDefault(require_DUMP()),ECHO_1=__importDefault(require_ECHO()),EVAL_RO_1=__importDefault(require_EVAL_RO()),EVAL_1=__importDefault(require_EVAL()),EVALSHA_RO_1=__importDefault(require_EVALSHA_RO()),EVALSHA_1=__importDefault(require_EVALSHA()),GEOADD_1=__importDefault(require_GEOADD()),GEODIST_1=__importDefault(require_GEODIST()),GEOHASH_1=__importDefault(require_GEOHASH()),GEOPOS_1=__importDefault(require_GEOPOS()),GEORADIUS_RO_WITH_1=__importDefault(require_GEORADIUS_RO_WITH()),GEORADIUS_RO_1=__importDefault(require_GEORADIUS_RO()),GEORADIUS_STORE_1=__importDefault(require_GEORADIUS_STORE()),GEORADIUS_WITH_1=__importDefault(require_GEORADIUS_WITH()),GEORADIUS_1=__importDefault(require_GEORADIUS()),GEORADIUSBYMEMBER_RO_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_RO_WITH()),GEORADIUSBYMEMBER_RO_1=__importDefault(require_GEORADIUSBYMEMBER_RO()),GEORADIUSBYMEMBER_STORE_1=__importDefault(require_GEORADIUSBYMEMBER_STORE()),GEORADIUSBYMEMBER_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_WITH()),GEORADIUSBYMEMBER_1=__importDefault(require_GEORADIUSBYMEMBER()),GEOSEARCH_WITH_1=__importDefault(require_GEOSEARCH_WITH()),GEOSEARCH_1=__importDefault(require_GEOSEARCH()),GEOSEARCHSTORE_1=__importDefault(require_GEOSEARCHSTORE()),GET_1=__importDefault(require_GET()),GETBIT_1=__importDefault(require_GETBIT()),GETDEL_1=__importDefault(require_GETDEL()),GETEX_1=__importDefault(require_GETEX()),GETRANGE_1=__importDefault(require_GETRANGE()),GETSET_1=__importDefault(require_GETSET()),EXISTS_1=__importDefault(require_EXISTS()),EXPIRE_1=__importDefault(require_EXPIRE()),EXPIREAT_1=__importDefault(require_EXPIREAT()),EXPIRETIME_1=__importDefault(require_EXPIRETIME()),FLUSHALL_1=__importStar(require_FLUSHALL());Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return FLUSHALL_1.REDIS_FLUSH_MODES}});var FLUSHDB_1=__importDefault(require_FLUSHDB()),FCALL_1=__importDefault(require_FCALL()),FCALL_RO_1=__importDefault(require_FCALL_RO()),FUNCTION_DELETE_1=__importDefault(require_FUNCTION_DELETE()),FUNCTION_DUMP_1=__importDefault(require_FUNCTION_DUMP()),FUNCTION_FLUSH_1=__importDefault(require_FUNCTION_FLUSH()),FUNCTION_KILL_1=__importDefault(require_FUNCTION_KILL()),FUNCTION_LIST_WITHCODE_1=__importDefault(require_FUNCTION_LIST_WITHCODE()),FUNCTION_LIST_1=__importDefault(require_FUNCTION_LIST()),FUNCTION_LOAD_1=__importDefault(require_FUNCTION_LOAD()),FUNCTION_RESTORE_1=__importDefault(require_FUNCTION_RESTORE()),FUNCTION_STATS_1=__importDefault(require_FUNCTION_STATS()),HDEL_1=__importDefault(require_HDEL()),HELLO_1=__importDefault(require_HELLO()),HEXISTS_1=__importDefault(require_HEXISTS()),HEXPIRE_1=__importDefault(require_HEXPIRE()),HEXPIREAT_1=__importDefault(require_HEXPIREAT()),HEXPIRETIME_1=__importDefault(require_HEXPIRETIME()),HGET_1=__importDefault(require_HGET()),HGETALL_1=__importDefault(require_HGETALL()),HGETDEL_1=__importDefault(require_HGETDEL()),HGETEX_1=__importDefault(require_HGETEX()),HINCRBY_1=__importDefault(require_HINCRBY()),HINCRBYFLOAT_1=__importDefault(require_HINCRBYFLOAT()),HKEYS_1=__importDefault(require_HKEYS()),HLEN_1=__importDefault(require_HLEN()),HMGET_1=__importDefault(require_HMGET()),HPERSIST_1=__importDefault(require_HPERSIST()),HPEXPIRE_1=__importDefault(require_HPEXPIRE()),HPEXPIREAT_1=__importDefault(require_HPEXPIREAT()),HPEXPIRETIME_1=__importDefault(require_HPEXPIRETIME()),HPTTL_1=__importDefault(require_HPTTL()),HRANDFIELD_COUNT_WITHVALUES_1=__importDefault(require_HRANDFIELD_COUNT_WITHVALUES()),HRANDFIELD_COUNT_1=__importDefault(require_HRANDFIELD_COUNT()),HRANDFIELD_1=__importDefault(require_HRANDFIELD()),HSCAN_1=__importDefault(require_HSCAN()),HSCAN_NOVALUES_1=__importDefault(require_HSCAN_NOVALUES()),HSET_1=__importDefault(require_HSET()),HSETEX_1=__importDefault(require_HSETEX()),HSETNX_1=__importDefault(require_HSETNX()),HSTRLEN_1=__importDefault(require_HSTRLEN()),HTTL_1=__importDefault(require_HTTL()),HVALS_1=__importDefault(require_HVALS()),INCR_1=__importDefault(require_INCR()),INCRBY_1=__importDefault(require_INCRBY()),INCRBYFLOAT_1=__importDefault(require_INCRBYFLOAT()),INFO_1=__importDefault(require_INFO()),KEYS_1=__importDefault(require_KEYS()),LASTSAVE_1=__importDefault(require_LASTSAVE()),LATENCY_DOCTOR_1=__importDefault(require_LATENCY_DOCTOR()),LATENCY_GRAPH_1=__importDefault(require_LATENCY_GRAPH()),LATENCY_HISTORY_1=__importDefault(require_LATENCY_HISTORY()),LATENCY_LATEST_1=__importDefault(require_LATENCY_LATEST()),LATENCY_RESET_1=__importDefault(require_LATENCY_RESET()),LCS_IDX_WITHMATCHLEN_1=__importDefault(require_LCS_IDX_WITHMATCHLEN()),LCS_IDX_1=__importDefault(require_LCS_IDX()),LCS_LEN_1=__importDefault(require_LCS_LEN()),LCS_1=__importDefault(require_LCS()),LINDEX_1=__importDefault(require_LINDEX()),LINSERT_1=__importDefault(require_LINSERT()),LLEN_1=__importDefault(require_LLEN()),LMOVE_1=__importDefault(require_LMOVE()),LMPOP_1=__importDefault(require_LMPOP()),LOLWUT_1=__importDefault(require_LOLWUT()),LPOP_COUNT_1=__importDefault(require_LPOP_COUNT()),LPOP_1=__importDefault(require_LPOP()),LPOS_COUNT_1=__importDefault(require_LPOS_COUNT()),LPOS_1=__importDefault(require_LPOS()),LPUSH_1=__importDefault(require_LPUSH()),LPUSHX_1=__importDefault(require_LPUSHX()),LRANGE_1=__importDefault(require_LRANGE()),LREM_1=__importDefault(require_LREM()),LSET_1=__importDefault(require_LSET()),LTRIM_1=__importDefault(require_LTRIM()),MEMORY_DOCTOR_1=__importDefault(require_MEMORY_DOCTOR()),MEMORY_MALLOC_STATS_1=__importDefault(require_MEMORY_MALLOC_STATS()),MEMORY_PURGE_1=__importDefault(require_MEMORY_PURGE()),MEMORY_STATS_1=__importDefault(require_MEMORY_STATS()),MEMORY_USAGE_1=__importDefault(require_MEMORY_USAGE()),MGET_1=__importDefault(require_MGET()),MIGRATE_1=__importDefault(require_MIGRATE()),MODULE_LIST_1=__importDefault(require_MODULE_LIST()),MODULE_LOAD_1=__importDefault(require_MODULE_LOAD()),MODULE_UNLOAD_1=__importDefault(require_MODULE_UNLOAD()),MOVE_1=__importDefault(require_MOVE()),MSET_1=__importDefault(require_MSET()),MSETEX_1=__importDefault(require_MSETEX()),MSETNX_1=__importDefault(require_MSETNX()),OBJECT_ENCODING_1=__importDefault(require_OBJECT_ENCODING()),OBJECT_FREQ_1=__importDefault(require_OBJECT_FREQ()),OBJECT_IDLETIME_1=__importDefault(require_OBJECT_IDLETIME()),OBJECT_REFCOUNT_1=__importDefault(require_OBJECT_REFCOUNT()),PERSIST_1=__importDefault(require_PERSIST()),PEXPIRE_1=__importDefault(require_PEXPIRE()),PEXPIREAT_1=__importDefault(require_PEXPIREAT()),PEXPIRETIME_1=__importDefault(require_PEXPIRETIME()),PFADD_1=__importDefault(require_PFADD()),PFCOUNT_1=__importDefault(require_PFCOUNT()),PFMERGE_1=__importDefault(require_PFMERGE()),PING_1=__importDefault(require_PING()),PSETEX_1=__importDefault(require_PSETEX()),PTTL_1=__importDefault(require_PTTL()),PUBLISH_1=__importDefault(require_PUBLISH()),PUBSUB_CHANNELS_1=__importDefault(require_PUBSUB_CHANNELS()),PUBSUB_NUMPAT_1=__importDefault(require_PUBSUB_NUMPAT()),PUBSUB_NUMSUB_1=__importDefault(require_PUBSUB_NUMSUB()),PUBSUB_SHARDNUMSUB_1=__importDefault(require_PUBSUB_SHARDNUMSUB()),PUBSUB_SHARDCHANNELS_1=__importDefault(require_PUBSUB_SHARDCHANNELS()),RANDOMKEY_1=__importDefault(require_RANDOMKEY()),READONLY_1=__importDefault(require_READONLY()),RENAME_1=__importDefault(require_RENAME()),RENAMENX_1=__importDefault(require_RENAMENX()),REPLICAOF_1=__importDefault(require_REPLICAOF()),RESTORE_ASKING_1=__importDefault(require_RESTORE_ASKING()),RESTORE_1=__importDefault(require_RESTORE()),ROLE_1=__importDefault(require_ROLE()),RPOP_COUNT_1=__importDefault(require_RPOP_COUNT()),RPOP_1=__importDefault(require_RPOP()),RPOPLPUSH_1=__importDefault(require_RPOPLPUSH()),RPUSH_1=__importDefault(require_RPUSH()),RPUSHX_1=__importDefault(require_RPUSHX()),SADD_1=__importDefault(require_SADD()),SCAN_1=__importDefault(require_SCAN()),SCARD_1=__importDefault(require_SCARD()),SCRIPT_DEBUG_1=__importDefault(require_SCRIPT_DEBUG()),SCRIPT_EXISTS_1=__importDefault(require_SCRIPT_EXISTS()),SCRIPT_FLUSH_1=__importDefault(require_SCRIPT_FLUSH()),SCRIPT_KILL_1=__importDefault(require_SCRIPT_KILL()),SCRIPT_LOAD_1=__importDefault(require_SCRIPT_LOAD()),SDIFF_1=__importDefault(require_SDIFF()),SDIFFSTORE_1=__importDefault(require_SDIFFSTORE()),SET_1=__importDefault(require_SET()),SETBIT_1=__importDefault(require_SETBIT()),SETEX_1=__importDefault(require_SETEX()),SETNX_1=__importDefault(require_SETNX()),SETRANGE_1=__importDefault(require_SETRANGE()),SINTER_1=__importDefault(require_SINTER()),SINTERCARD_1=__importDefault(require_SINTERCARD()),SINTERSTORE_1=__importDefault(require_SINTERSTORE()),SISMEMBER_1=__importDefault(require_SISMEMBER()),SMEMBERS_1=__importDefault(require_SMEMBERS()),SMISMEMBER_1=__importDefault(require_SMISMEMBER()),SMOVE_1=__importDefault(require_SMOVE()),SORT_RO_1=__importDefault(require_SORT_RO()),SORT_STORE_1=__importDefault(require_SORT_STORE()),SORT_1=__importDefault(require_SORT()),SPOP_COUNT_1=__importDefault(require_SPOP_COUNT()),SPOP_1=__importDefault(require_SPOP()),SPUBLISH_1=__importDefault(require_SPUBLISH()),SRANDMEMBER_COUNT_1=__importDefault(require_SRANDMEMBER_COUNT()),SRANDMEMBER_1=__importDefault(require_SRANDMEMBER()),SREM_1=__importDefault(require_SREM()),SSCAN_1=__importDefault(require_SSCAN()),STRLEN_1=__importDefault(require_STRLEN()),SUNION_1=__importDefault(require_SUNION()),SUNIONSTORE_1=__importDefault(require_SUNIONSTORE()),SWAPDB_1=__importDefault(require_SWAPDB()),TIME_1=__importDefault(require_TIME()),TOUCH_1=__importDefault(require_TOUCH()),TTL_1=__importDefault(require_TTL()),TYPE_1=__importDefault(require_TYPE()),UNLINK_1=__importDefault(require_UNLINK()),WAIT_1=__importDefault(require_WAIT()),XACK_1=__importDefault(require_XACK()),XACKDEL_1=__importDefault(require_XACKDEL()),XADD_NOMKSTREAM_1=__importDefault(require_XADD_NOMKSTREAM()),XADD_1=__importDefault(require_XADD()),XAUTOCLAIM_JUSTID_1=__importDefault(require_XAUTOCLAIM_JUSTID()),XAUTOCLAIM_1=__importDefault(require_XAUTOCLAIM()),XCLAIM_JUSTID_1=__importDefault(require_XCLAIM_JUSTID()),XCLAIM_1=__importDefault(require_XCLAIM()),XDEL_1=__importDefault(require_XDEL()),XDELEX_1=__importDefault(require_XDELEX()),XGROUP_CREATE_1=__importDefault(require_XGROUP_CREATE()),XGROUP_CREATECONSUMER_1=__importDefault(require_XGROUP_CREATECONSUMER()),XGROUP_DELCONSUMER_1=__importDefault(require_XGROUP_DELCONSUMER()),XGROUP_DESTROY_1=__importDefault(require_XGROUP_DESTROY()),XGROUP_SETID_1=__importDefault(require_XGROUP_SETID()),XINFO_CONSUMERS_1=__importDefault(require_XINFO_CONSUMERS()),XINFO_GROUPS_1=__importDefault(require_XINFO_GROUPS()),XINFO_STREAM_1=__importDefault(require_XINFO_STREAM()),XLEN_1=__importDefault(require_XLEN()),XPENDING_RANGE_1=__importDefault(require_XPENDING_RANGE()),XPENDING_1=__importDefault(require_XPENDING()),XRANGE_1=__importDefault(require_XRANGE()),XREAD_1=__importDefault(require_XREAD()),XREADGROUP_1=__importDefault(require_XREADGROUP()),XREVRANGE_1=__importDefault(require_XREVRANGE()),XSETID_1=__importDefault(require_XSETID()),XTRIM_1=__importDefault(require_XTRIM()),ZADD_INCR_1=__importDefault(require_ZADD_INCR()),ZADD_1=__importDefault(require_ZADD()),ZCARD_1=__importDefault(require_ZCARD()),ZCOUNT_1=__importDefault(require_ZCOUNT()),ZDIFF_WITHSCORES_1=__importDefault(require_ZDIFF_WITHSCORES()),ZDIFF_1=__importDefault(require_ZDIFF()),ZDIFFSTORE_1=__importDefault(require_ZDIFFSTORE()),ZINCRBY_1=__importDefault(require_ZINCRBY()),ZINTER_WITHSCORES_1=__importDefault(require_ZINTER_WITHSCORES()),ZINTER_1=__importDefault(require_ZINTER()),ZINTERCARD_1=__importDefault(require_ZINTERCARD()),ZINTERSTORE_1=__importDefault(require_ZINTERSTORE()),ZLEXCOUNT_1=__importDefault(require_ZLEXCOUNT()),ZMPOP_1=__importDefault(require_ZMPOP()),ZMSCORE_1=__importDefault(require_ZMSCORE()),ZPOPMAX_COUNT_1=__importDefault(require_ZPOPMAX_COUNT()),ZPOPMAX_1=__importDefault(require_ZPOPMAX()),ZPOPMIN_COUNT_1=__importDefault(require_ZPOPMIN_COUNT()),ZPOPMIN_1=__importDefault(require_ZPOPMIN()),ZRANDMEMBER_COUNT_WITHSCORES_1=__importDefault(require_ZRANDMEMBER_COUNT_WITHSCORES()),ZRANDMEMBER_COUNT_1=__importDefault(require_ZRANDMEMBER_COUNT()),ZRANDMEMBER_1=__importDefault(require_ZRANDMEMBER()),ZRANGE_WITHSCORES_1=__importDefault(require_ZRANGE_WITHSCORES()),ZRANGE_1=__importDefault(require_ZRANGE()),ZRANGEBYLEX_1=__importDefault(require_ZRANGEBYLEX()),ZRANGEBYSCORE_WITHSCORES_1=__importDefault(require_ZRANGEBYSCORE_WITHSCORES()),ZRANGEBYSCORE_1=__importDefault(require_ZRANGEBYSCORE()),ZRANGESTORE_1=__importDefault(require_ZRANGESTORE()),ZREMRANGEBYSCORE_1=__importDefault(require_ZREMRANGEBYSCORE()),ZRANK_WITHSCORE_1=__importDefault(require_ZRANK_WITHSCORE()),ZRANK_1=__importDefault(require_ZRANK()),ZREM_1=__importDefault(require_ZREM()),ZREMRANGEBYLEX_1=__importDefault(require_ZREMRANGEBYLEX()),ZREMRANGEBYRANK_1=__importDefault(require_ZREMRANGEBYRANK()),ZREVRANK_1=__importDefault(require_ZREVRANK()),ZSCAN_1=__importDefault(require_ZSCAN()),ZSCORE_1=__importDefault(require_ZSCORE()),ZUNION_WITHSCORES_1=__importDefault(require_ZUNION_WITHSCORES()),ZUNION_1=__importDefault(require_ZUNION()),ZUNIONSTORE_1=__importDefault(require_ZUNIONSTORE()),VADD_1=__importDefault(require_VADD()),VCARD_1=__importDefault(require_VCARD()),VDIM_1=__importDefault(require_VDIM()),VEMB_1=__importDefault(require_VEMB()),VEMB_RAW_1=__importDefault(require_VEMB_RAW()),VGETATTR_1=__importDefault(require_VGETATTR()),VINFO_1=__importDefault(require_VINFO()),VLINKS_1=__importDefault(require_VLINKS()),VLINKS_WITHSCORES_1=__importDefault(require_VLINKS_WITHSCORES()),VRANDMEMBER_1=__importDefault(require_VRANDMEMBER()),VREM_1=__importDefault(require_VREM()),VSETATTR_1=__importDefault(require_VSETATTR()),VSIM_1=__importDefault(require_VSIM()),VSIM_WITHSCORES_1=__importDefault(require_VSIM_WITHSCORES()),LATENCY_HISTOGRAM_1=__importDefault(require_LATENCY_HISTOGRAM());exports.default={ACL_CAT:ACL_CAT_1.default,aclCat:ACL_CAT_1.default,ACL_DELUSER:ACL_DELUSER_1.default,aclDelUser:ACL_DELUSER_1.default,ACL_DRYRUN:ACL_DRYRUN_1.default,aclDryRun:ACL_DRYRUN_1.default,ACL_GENPASS:ACL_GENPASS_1.default,aclGenPass:ACL_GENPASS_1.default,ACL_GETUSER:ACL_GETUSER_1.default,aclGetUser:ACL_GETUSER_1.default,ACL_LIST:ACL_LIST_1.default,aclList:ACL_LIST_1.default,ACL_LOAD:ACL_LOAD_1.default,aclLoad:ACL_LOAD_1.default,ACL_LOG_RESET:ACL_LOG_RESET_1.default,aclLogReset:ACL_LOG_RESET_1.default,ACL_LOG:ACL_LOG_1.default,aclLog:ACL_LOG_1.default,ACL_SAVE:ACL_SAVE_1.default,aclSave:ACL_SAVE_1.default,ACL_SETUSER:ACL_SETUSER_1.default,aclSetUser:ACL_SETUSER_1.default,ACL_USERS:ACL_USERS_1.default,aclUsers:ACL_USERS_1.default,ACL_WHOAMI:ACL_WHOAMI_1.default,aclWhoAmI:ACL_WHOAMI_1.default,APPEND:APPEND_1.default,append:APPEND_1.default,ASKING:ASKING_1.default,asking:ASKING_1.default,AUTH:AUTH_1.default,auth:AUTH_1.default,BGREWRITEAOF:BGREWRITEAOF_1.default,bgRewriteAof:BGREWRITEAOF_1.default,BGSAVE:BGSAVE_1.default,bgSave:BGSAVE_1.default,BITCOUNT:BITCOUNT_1.default,bitCount:BITCOUNT_1.default,BITFIELD_RO:BITFIELD_RO_1.default,bitFieldRo:BITFIELD_RO_1.default,BITFIELD:BITFIELD_1.default,bitField:BITFIELD_1.default,BITOP:BITOP_1.default,bitOp:BITOP_1.default,BITPOS:BITPOS_1.default,bitPos:BITPOS_1.default,BLMOVE:BLMOVE_1.default,blMove:BLMOVE_1.default,BLMPOP:BLMPOP_1.default,blmPop:BLMPOP_1.default,BLPOP:BLPOP_1.default,blPop:BLPOP_1.default,BRPOP:BRPOP_1.default,brPop:BRPOP_1.default,BRPOPLPUSH:BRPOPLPUSH_1.default,brPopLPush:BRPOPLPUSH_1.default,BZMPOP:BZMPOP_1.default,bzmPop:BZMPOP_1.default,BZPOPMAX:BZPOPMAX_1.default,bzPopMax:BZPOPMAX_1.default,BZPOPMIN:BZPOPMIN_1.default,bzPopMin:BZPOPMIN_1.default,CLIENT_CACHING:CLIENT_CACHING_1.default,clientCaching:CLIENT_CACHING_1.default,CLIENT_GETNAME:CLIENT_GETNAME_1.default,clientGetName:CLIENT_GETNAME_1.default,CLIENT_GETREDIR:CLIENT_GETREDIR_1.default,clientGetRedir:CLIENT_GETREDIR_1.default,CLIENT_ID:CLIENT_ID_1.default,clientId:CLIENT_ID_1.default,CLIENT_INFO:CLIENT_INFO_1.default,clientInfo:CLIENT_INFO_1.default,CLIENT_KILL:CLIENT_KILL_1.default,clientKill:CLIENT_KILL_1.default,CLIENT_LIST:CLIENT_LIST_1.default,clientList:CLIENT_LIST_1.default,"CLIENT_NO-EVICT":CLIENT_NO_EVICT_1.default,clientNoEvict:CLIENT_NO_EVICT_1.default,"CLIENT_NO-TOUCH":CLIENT_NO_TOUCH_1.default,clientNoTouch:CLIENT_NO_TOUCH_1.default,CLIENT_PAUSE:CLIENT_PAUSE_1.default,clientPause:CLIENT_PAUSE_1.default,CLIENT_SETNAME:CLIENT_SETNAME_1.default,clientSetName:CLIENT_SETNAME_1.default,CLIENT_TRACKING:CLIENT_TRACKING_1.default,clientTracking:CLIENT_TRACKING_1.default,CLIENT_TRACKINGINFO:CLIENT_TRACKINGINFO_1.default,clientTrackingInfo:CLIENT_TRACKINGINFO_1.default,CLIENT_UNPAUSE:CLIENT_UNPAUSE_1.default,clientUnpause:CLIENT_UNPAUSE_1.default,CLUSTER_ADDSLOTS:CLUSTER_ADDSLOTS_1.default,clusterAddSlots:CLUSTER_ADDSLOTS_1.default,CLUSTER_ADDSLOTSRANGE:CLUSTER_ADDSLOTSRANGE_1.default,clusterAddSlotsRange:CLUSTER_ADDSLOTSRANGE_1.default,CLUSTER_BUMPEPOCH:CLUSTER_BUMPEPOCH_1.default,clusterBumpEpoch:CLUSTER_BUMPEPOCH_1.default,"CLUSTER_COUNT-FAILURE-REPORTS":CLUSTER_COUNT_FAILURE_REPORTS_1.default,clusterCountFailureReports:CLUSTER_COUNT_FAILURE_REPORTS_1.default,CLUSTER_COUNTKEYSINSLOT:CLUSTER_COUNTKEYSINSLOT_1.default,clusterCountKeysInSlot:CLUSTER_COUNTKEYSINSLOT_1.default,CLUSTER_DELSLOTS:CLUSTER_DELSLOTS_1.default,clusterDelSlots:CLUSTER_DELSLOTS_1.default,CLUSTER_DELSLOTSRANGE:CLUSTER_DELSLOTSRANGE_1.default,clusterDelSlotsRange:CLUSTER_DELSLOTSRANGE_1.default,CLUSTER_FAILOVER:CLUSTER_FAILOVER_1.default,clusterFailover:CLUSTER_FAILOVER_1.default,CLUSTER_FLUSHSLOTS:CLUSTER_FLUSHSLOTS_1.default,clusterFlushSlots:CLUSTER_FLUSHSLOTS_1.default,CLUSTER_FORGET:CLUSTER_FORGET_1.default,clusterForget:CLUSTER_FORGET_1.default,CLUSTER_GETKEYSINSLOT:CLUSTER_GETKEYSINSLOT_1.default,clusterGetKeysInSlot:CLUSTER_GETKEYSINSLOT_1.default,CLUSTER_INFO:CLUSTER_INFO_1.default,clusterInfo:CLUSTER_INFO_1.default,CLUSTER_KEYSLOT:CLUSTER_KEYSLOT_1.default,clusterKeySlot:CLUSTER_KEYSLOT_1.default,CLUSTER_LINKS:CLUSTER_LINKS_1.default,clusterLinks:CLUSTER_LINKS_1.default,CLUSTER_MEET:CLUSTER_MEET_1.default,clusterMeet:CLUSTER_MEET_1.default,CLUSTER_MYID:CLUSTER_MYID_1.default,clusterMyId:CLUSTER_MYID_1.default,CLUSTER_MYSHARDID:CLUSTER_MYSHARDID_1.default,clusterMyShardId:CLUSTER_MYSHARDID_1.default,CLUSTER_NODES:CLUSTER_NODES_1.default,clusterNodes:CLUSTER_NODES_1.default,CLUSTER_REPLICAS:CLUSTER_REPLICAS_1.default,clusterReplicas:CLUSTER_REPLICAS_1.default,CLUSTER_REPLICATE:CLUSTER_REPLICATE_1.default,clusterReplicate:CLUSTER_REPLICATE_1.default,CLUSTER_RESET:CLUSTER_RESET_1.default,clusterReset:CLUSTER_RESET_1.default,CLUSTER_SAVECONFIG:CLUSTER_SAVECONFIG_1.default,clusterSaveConfig:CLUSTER_SAVECONFIG_1.default,"CLUSTER_SET-CONFIG-EPOCH":CLUSTER_SET_CONFIG_EPOCH_1.default,clusterSetConfigEpoch:CLUSTER_SET_CONFIG_EPOCH_1.default,CLUSTER_SETSLOT:CLUSTER_SETSLOT_1.default,clusterSetSlot:CLUSTER_SETSLOT_1.default,CLUSTER_SLOTS:CLUSTER_SLOTS_1.default,clusterSlots:CLUSTER_SLOTS_1.default,COMMAND_COUNT:COMMAND_COUNT_1.default,commandCount:COMMAND_COUNT_1.default,COMMAND_GETKEYS:COMMAND_GETKEYS_1.default,commandGetKeys:COMMAND_GETKEYS_1.default,COMMAND_GETKEYSANDFLAGS:COMMAND_GETKEYSANDFLAGS_1.default,commandGetKeysAndFlags:COMMAND_GETKEYSANDFLAGS_1.default,COMMAND_INFO:COMMAND_INFO_1.default,commandInfo:COMMAND_INFO_1.default,COMMAND_LIST:COMMAND_LIST_1.default,commandList:COMMAND_LIST_1.default,COMMAND:COMMAND_1.default,command:COMMAND_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_RESETASTAT:CONFIG_RESETSTAT_1.default,configResetStat:CONFIG_RESETSTAT_1.default,CONFIG_REWRITE:CONFIG_REWRITE_1.default,configRewrite:CONFIG_REWRITE_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,COPY:COPY_1.default,copy:COPY_1.default,DBSIZE:DBSIZE_1.default,dbSize:DBSIZE_1.default,DECR:DECR_1.default,decr:DECR_1.default,DECRBY:DECRBY_1.default,decrBy:DECRBY_1.default,DEL:DEL_1.default,del:DEL_1.default,DELEX:DELEX_1.default,delEx:DELEX_1.default,DIGEST:DIGEST_1.default,digest:DIGEST_1.default,DUMP:DUMP_1.default,dump:DUMP_1.default,ECHO:ECHO_1.default,echo:ECHO_1.default,EVAL_RO:EVAL_RO_1.default,evalRo:EVAL_RO_1.default,EVAL:EVAL_1.default,eval:EVAL_1.default,EVALSHA_RO:EVALSHA_RO_1.default,evalShaRo:EVALSHA_RO_1.default,EVALSHA:EVALSHA_1.default,evalSha:EVALSHA_1.default,EXISTS:EXISTS_1.default,exists:EXISTS_1.default,EXPIRE:EXPIRE_1.default,expire:EXPIRE_1.default,EXPIREAT:EXPIREAT_1.default,expireAt:EXPIREAT_1.default,EXPIRETIME:EXPIRETIME_1.default,expireTime:EXPIRETIME_1.default,FLUSHALL:FLUSHALL_1.default,flushAll:FLUSHALL_1.default,FLUSHDB:FLUSHDB_1.default,flushDb:FLUSHDB_1.default,FCALL:FCALL_1.default,fCall:FCALL_1.default,FCALL_RO:FCALL_RO_1.default,fCallRo:FCALL_RO_1.default,FUNCTION_DELETE:FUNCTION_DELETE_1.default,functionDelete:FUNCTION_DELETE_1.default,FUNCTION_DUMP:FUNCTION_DUMP_1.default,functionDump:FUNCTION_DUMP_1.default,FUNCTION_FLUSH:FUNCTION_FLUSH_1.default,functionFlush:FUNCTION_FLUSH_1.default,FUNCTION_KILL:FUNCTION_KILL_1.default,functionKill:FUNCTION_KILL_1.default,FUNCTION_LIST_WITHCODE:FUNCTION_LIST_WITHCODE_1.default,functionListWithCode:FUNCTION_LIST_WITHCODE_1.default,FUNCTION_LIST:FUNCTION_LIST_1.default,functionList:FUNCTION_LIST_1.default,FUNCTION_LOAD:FUNCTION_LOAD_1.default,functionLoad:FUNCTION_LOAD_1.default,FUNCTION_RESTORE:FUNCTION_RESTORE_1.default,functionRestore:FUNCTION_RESTORE_1.default,FUNCTION_STATS:FUNCTION_STATS_1.default,functionStats:FUNCTION_STATS_1.default,GEOADD:GEOADD_1.default,geoAdd:GEOADD_1.default,GEODIST:GEODIST_1.default,geoDist:GEODIST_1.default,GEOHASH:GEOHASH_1.default,geoHash:GEOHASH_1.default,GEOPOS:GEOPOS_1.default,geoPos:GEOPOS_1.default,GEORADIUS_RO_WITH:GEORADIUS_RO_WITH_1.default,geoRadiusRoWith:GEORADIUS_RO_WITH_1.default,GEORADIUS_RO:GEORADIUS_RO_1.default,geoRadiusRo:GEORADIUS_RO_1.default,GEORADIUS_STORE:GEORADIUS_STORE_1.default,geoRadiusStore:GEORADIUS_STORE_1.default,GEORADIUS_WITH:GEORADIUS_WITH_1.default,geoRadiusWith:GEORADIUS_WITH_1.default,GEORADIUS:GEORADIUS_1.default,geoRadius:GEORADIUS_1.default,GEORADIUSBYMEMBER_RO_WITH:GEORADIUSBYMEMBER_RO_WITH_1.default,geoRadiusByMemberRoWith:GEORADIUSBYMEMBER_RO_WITH_1.default,GEORADIUSBYMEMBER_RO:GEORADIUSBYMEMBER_RO_1.default,geoRadiusByMemberRo:GEORADIUSBYMEMBER_RO_1.default,GEORADIUSBYMEMBER_STORE:GEORADIUSBYMEMBER_STORE_1.default,geoRadiusByMemberStore:GEORADIUSBYMEMBER_STORE_1.default,GEORADIUSBYMEMBER_WITH:GEORADIUSBYMEMBER_WITH_1.default,geoRadiusByMemberWith:GEORADIUSBYMEMBER_WITH_1.default,GEORADIUSBYMEMBER:GEORADIUSBYMEMBER_1.default,geoRadiusByMember:GEORADIUSBYMEMBER_1.default,GEOSEARCH_WITH:GEOSEARCH_WITH_1.default,geoSearchWith:GEOSEARCH_WITH_1.default,GEOSEARCH:GEOSEARCH_1.default,geoSearch:GEOSEARCH_1.default,GEOSEARCHSTORE:GEOSEARCHSTORE_1.default,geoSearchStore:GEOSEARCHSTORE_1.default,GET:GET_1.default,get:GET_1.default,GETBIT:GETBIT_1.default,getBit:GETBIT_1.default,GETDEL:GETDEL_1.default,getDel:GETDEL_1.default,GETEX:GETEX_1.default,getEx:GETEX_1.default,GETRANGE:GETRANGE_1.default,getRange:GETRANGE_1.default,GETSET:GETSET_1.default,getSet:GETSET_1.default,HDEL:HDEL_1.default,hDel:HDEL_1.default,HELLO:HELLO_1.default,hello:HELLO_1.default,HEXISTS:HEXISTS_1.default,hExists:HEXISTS_1.default,HEXPIRE:HEXPIRE_1.default,hExpire:HEXPIRE_1.default,HEXPIREAT:HEXPIREAT_1.default,hExpireAt:HEXPIREAT_1.default,HEXPIRETIME:HEXPIRETIME_1.default,hExpireTime:HEXPIRETIME_1.default,HGET:HGET_1.default,hGet:HGET_1.default,HGETALL:HGETALL_1.default,hGetAll:HGETALL_1.default,HGETDEL:HGETDEL_1.default,hGetDel:HGETDEL_1.default,HGETEX:HGETEX_1.default,hGetEx:HGETEX_1.default,HINCRBY:HINCRBY_1.default,hIncrBy:HINCRBY_1.default,HINCRBYFLOAT:HINCRBYFLOAT_1.default,hIncrByFloat:HINCRBYFLOAT_1.default,HKEYS:HKEYS_1.default,hKeys:HKEYS_1.default,HLEN:HLEN_1.default,hLen:HLEN_1.default,HMGET:HMGET_1.default,hmGet:HMGET_1.default,HPERSIST:HPERSIST_1.default,hPersist:HPERSIST_1.default,HPEXPIRE:HPEXPIRE_1.default,hpExpire:HPEXPIRE_1.default,HPEXPIREAT:HPEXPIREAT_1.default,hpExpireAt:HPEXPIREAT_1.default,HPEXPIRETIME:HPEXPIRETIME_1.default,hpExpireTime:HPEXPIRETIME_1.default,HPTTL:HPTTL_1.default,hpTTL:HPTTL_1.default,HRANDFIELD_COUNT_WITHVALUES:HRANDFIELD_COUNT_WITHVALUES_1.default,hRandFieldCountWithValues:HRANDFIELD_COUNT_WITHVALUES_1.default,HRANDFIELD_COUNT:HRANDFIELD_COUNT_1.default,hRandFieldCount:HRANDFIELD_COUNT_1.default,HRANDFIELD:HRANDFIELD_1.default,hRandField:HRANDFIELD_1.default,HSCAN:HSCAN_1.default,hScan:HSCAN_1.default,HSCAN_NOVALUES:HSCAN_NOVALUES_1.default,hScanNoValues:HSCAN_NOVALUES_1.default,HSET:HSET_1.default,hSet:HSET_1.default,HSETEX:HSETEX_1.default,hSetEx:HSETEX_1.default,HSETNX:HSETNX_1.default,hSetNX:HSETNX_1.default,HSTRLEN:HSTRLEN_1.default,hStrLen:HSTRLEN_1.default,HTTL:HTTL_1.default,hTTL:HTTL_1.default,HVALS:HVALS_1.default,hVals:HVALS_1.default,INCR:INCR_1.default,incr:INCR_1.default,INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INCRBYFLOAT:INCRBYFLOAT_1.default,incrByFloat:INCRBYFLOAT_1.default,INFO:INFO_1.default,info:INFO_1.default,KEYS:KEYS_1.default,keys:KEYS_1.default,LASTSAVE:LASTSAVE_1.default,lastSave:LASTSAVE_1.default,LATENCY_DOCTOR:LATENCY_DOCTOR_1.default,latencyDoctor:LATENCY_DOCTOR_1.default,LATENCY_GRAPH:LATENCY_GRAPH_1.default,latencyGraph:LATENCY_GRAPH_1.default,LATENCY_HISTORY:LATENCY_HISTORY_1.default,latencyHistory:LATENCY_HISTORY_1.default,LATENCY_HISTOGRAM:LATENCY_HISTOGRAM_1.default,latencyHistogram:LATENCY_HISTOGRAM_1.default,LATENCY_LATEST:LATENCY_LATEST_1.default,latencyLatest:LATENCY_LATEST_1.default,LATENCY_RESET:LATENCY_RESET_1.default,latencyReset:LATENCY_RESET_1.default,LCS_IDX_WITHMATCHLEN:LCS_IDX_WITHMATCHLEN_1.default,lcsIdxWithMatchLen:LCS_IDX_WITHMATCHLEN_1.default,LCS_IDX:LCS_IDX_1.default,lcsIdx:LCS_IDX_1.default,LCS_LEN:LCS_LEN_1.default,lcsLen:LCS_LEN_1.default,LCS:LCS_1.default,lcs:LCS_1.default,LINDEX:LINDEX_1.default,lIndex:LINDEX_1.default,LINSERT:LINSERT_1.default,lInsert:LINSERT_1.default,LLEN:LLEN_1.default,lLen:LLEN_1.default,LMOVE:LMOVE_1.default,lMove:LMOVE_1.default,LMPOP:LMPOP_1.default,lmPop:LMPOP_1.default,LOLWUT:LOLWUT_1.default,LPOP_COUNT:LPOP_COUNT_1.default,lPopCount:LPOP_COUNT_1.default,LPOP:LPOP_1.default,lPop:LPOP_1.default,LPOS_COUNT:LPOS_COUNT_1.default,lPosCount:LPOS_COUNT_1.default,LPOS:LPOS_1.default,lPos:LPOS_1.default,LPUSH:LPUSH_1.default,lPush:LPUSH_1.default,LPUSHX:LPUSHX_1.default,lPushX:LPUSHX_1.default,LRANGE:LRANGE_1.default,lRange:LRANGE_1.default,LREM:LREM_1.default,lRem:LREM_1.default,LSET:LSET_1.default,lSet:LSET_1.default,LTRIM:LTRIM_1.default,lTrim:LTRIM_1.default,MEMORY_DOCTOR:MEMORY_DOCTOR_1.default,memoryDoctor:MEMORY_DOCTOR_1.default,"MEMORY_MALLOC-STATS":MEMORY_MALLOC_STATS_1.default,memoryMallocStats:MEMORY_MALLOC_STATS_1.default,MEMORY_PURGE:MEMORY_PURGE_1.default,memoryPurge:MEMORY_PURGE_1.default,MEMORY_STATS:MEMORY_STATS_1.default,memoryStats:MEMORY_STATS_1.default,MEMORY_USAGE:MEMORY_USAGE_1.default,memoryUsage:MEMORY_USAGE_1.default,MGET:MGET_1.default,mGet:MGET_1.default,MIGRATE:MIGRATE_1.default,migrate:MIGRATE_1.default,MODULE_LIST:MODULE_LIST_1.default,moduleList:MODULE_LIST_1.default,MODULE_LOAD:MODULE_LOAD_1.default,moduleLoad:MODULE_LOAD_1.default,MODULE_UNLOAD:MODULE_UNLOAD_1.default,moduleUnload:MODULE_UNLOAD_1.default,MOVE:MOVE_1.default,move:MOVE_1.default,MSET:MSET_1.default,mSet:MSET_1.default,MSETEX:MSETEX_1.default,mSetEx:MSETEX_1.default,MSETNX:MSETNX_1.default,mSetNX:MSETNX_1.default,OBJECT_ENCODING:OBJECT_ENCODING_1.default,objectEncoding:OBJECT_ENCODING_1.default,OBJECT_FREQ:OBJECT_FREQ_1.default,objectFreq:OBJECT_FREQ_1.default,OBJECT_IDLETIME:OBJECT_IDLETIME_1.default,objectIdleTime:OBJECT_IDLETIME_1.default,OBJECT_REFCOUNT:OBJECT_REFCOUNT_1.default,objectRefCount:OBJECT_REFCOUNT_1.default,PERSIST:PERSIST_1.default,persist:PERSIST_1.default,PEXPIRE:PEXPIRE_1.default,pExpire:PEXPIRE_1.default,PEXPIREAT:PEXPIREAT_1.default,pExpireAt:PEXPIREAT_1.default,PEXPIRETIME:PEXPIRETIME_1.default,pExpireTime:PEXPIRETIME_1.default,PFADD:PFADD_1.default,pfAdd:PFADD_1.default,PFCOUNT:PFCOUNT_1.default,pfCount:PFCOUNT_1.default,PFMERGE:PFMERGE_1.default,pfMerge:PFMERGE_1.default,PING:PING_1.default,ping:PING_1.default,PSETEX:PSETEX_1.default,pSetEx:PSETEX_1.default,PTTL:PTTL_1.default,pTTL:PTTL_1.default,PUBLISH:PUBLISH_1.default,publish:PUBLISH_1.default,PUBSUB_CHANNELS:PUBSUB_CHANNELS_1.default,pubSubChannels:PUBSUB_CHANNELS_1.default,PUBSUB_NUMPAT:PUBSUB_NUMPAT_1.default,pubSubNumPat:PUBSUB_NUMPAT_1.default,PUBSUB_NUMSUB:PUBSUB_NUMSUB_1.default,pubSubNumSub:PUBSUB_NUMSUB_1.default,PUBSUB_SHARDNUMSUB:PUBSUB_SHARDNUMSUB_1.default,pubSubShardNumSub:PUBSUB_SHARDNUMSUB_1.default,PUBSUB_SHARDCHANNELS:PUBSUB_SHARDCHANNELS_1.default,pubSubShardChannels:PUBSUB_SHARDCHANNELS_1.default,RANDOMKEY:RANDOMKEY_1.default,randomKey:RANDOMKEY_1.default,READONLY:READONLY_1.default,readonly:READONLY_1.default,RENAME:RENAME_1.default,rename:RENAME_1.default,RENAMENX:RENAMENX_1.default,renameNX:RENAMENX_1.default,REPLICAOF:REPLICAOF_1.default,replicaOf:REPLICAOF_1.default,"RESTORE-ASKING":RESTORE_ASKING_1.default,restoreAsking:RESTORE_ASKING_1.default,RESTORE:RESTORE_1.default,restore:RESTORE_1.default,RPOP_COUNT:RPOP_COUNT_1.default,rPopCount:RPOP_COUNT_1.default,ROLE:ROLE_1.default,role:ROLE_1.default,RPOP:RPOP_1.default,rPop:RPOP_1.default,RPOPLPUSH:RPOPLPUSH_1.default,rPopLPush:RPOPLPUSH_1.default,RPUSH:RPUSH_1.default,rPush:RPUSH_1.default,RPUSHX:RPUSHX_1.default,rPushX:RPUSHX_1.default,SADD:SADD_1.default,sAdd:SADD_1.default,SCAN:SCAN_1.default,scan:SCAN_1.default,SCARD:SCARD_1.default,sCard:SCARD_1.default,SCRIPT_DEBUG:SCRIPT_DEBUG_1.default,scriptDebug:SCRIPT_DEBUG_1.default,SCRIPT_EXISTS:SCRIPT_EXISTS_1.default,scriptExists:SCRIPT_EXISTS_1.default,SCRIPT_FLUSH:SCRIPT_FLUSH_1.default,scriptFlush:SCRIPT_FLUSH_1.default,SCRIPT_KILL:SCRIPT_KILL_1.default,scriptKill:SCRIPT_KILL_1.default,SCRIPT_LOAD:SCRIPT_LOAD_1.default,scriptLoad:SCRIPT_LOAD_1.default,SDIFF:SDIFF_1.default,sDiff:SDIFF_1.default,SDIFFSTORE:SDIFFSTORE_1.default,sDiffStore:SDIFFSTORE_1.default,SET:SET_1.default,set:SET_1.default,SETBIT:SETBIT_1.default,setBit:SETBIT_1.default,SETEX:SETEX_1.default,setEx:SETEX_1.default,SETNX:SETNX_1.default,setNX:SETNX_1.default,SETRANGE:SETRANGE_1.default,setRange:SETRANGE_1.default,SINTER:SINTER_1.default,sInter:SINTER_1.default,SINTERCARD:SINTERCARD_1.default,sInterCard:SINTERCARD_1.default,SINTERSTORE:SINTERSTORE_1.default,sInterStore:SINTERSTORE_1.default,SISMEMBER:SISMEMBER_1.default,sIsMember:SISMEMBER_1.default,SMEMBERS:SMEMBERS_1.default,sMembers:SMEMBERS_1.default,SMISMEMBER:SMISMEMBER_1.default,smIsMember:SMISMEMBER_1.default,SMOVE:SMOVE_1.default,sMove:SMOVE_1.default,SORT_RO:SORT_RO_1.default,sortRo:SORT_RO_1.default,SORT_STORE:SORT_STORE_1.default,sortStore:SORT_STORE_1.default,SORT:SORT_1.default,sort:SORT_1.default,SPOP_COUNT:SPOP_COUNT_1.default,sPopCount:SPOP_COUNT_1.default,SPOP:SPOP_1.default,sPop:SPOP_1.default,SPUBLISH:SPUBLISH_1.default,sPublish:SPUBLISH_1.default,SRANDMEMBER_COUNT:SRANDMEMBER_COUNT_1.default,sRandMemberCount:SRANDMEMBER_COUNT_1.default,SRANDMEMBER:SRANDMEMBER_1.default,sRandMember:SRANDMEMBER_1.default,SREM:SREM_1.default,sRem:SREM_1.default,SSCAN:SSCAN_1.default,sScan:SSCAN_1.default,STRLEN:STRLEN_1.default,strLen:STRLEN_1.default,SUNION:SUNION_1.default,sUnion:SUNION_1.default,SUNIONSTORE:SUNIONSTORE_1.default,sUnionStore:SUNIONSTORE_1.default,SWAPDB:SWAPDB_1.default,swapDb:SWAPDB_1.default,TIME:TIME_1.default,time:TIME_1.default,TOUCH:TOUCH_1.default,touch:TOUCH_1.default,TTL:TTL_1.default,ttl:TTL_1.default,TYPE:TYPE_1.default,type:TYPE_1.default,UNLINK:UNLINK_1.default,unlink:UNLINK_1.default,WAIT:WAIT_1.default,wait:WAIT_1.default,XACK:XACK_1.default,xAck:XACK_1.default,XACKDEL:XACKDEL_1.default,xAckDel:XACKDEL_1.default,XADD_NOMKSTREAM:XADD_NOMKSTREAM_1.default,xAddNoMkStream:XADD_NOMKSTREAM_1.default,XADD:XADD_1.default,xAdd:XADD_1.default,XAUTOCLAIM_JUSTID:XAUTOCLAIM_JUSTID_1.default,xAutoClaimJustId:XAUTOCLAIM_JUSTID_1.default,XAUTOCLAIM:XAUTOCLAIM_1.default,xAutoClaim:XAUTOCLAIM_1.default,XCLAIM_JUSTID:XCLAIM_JUSTID_1.default,xClaimJustId:XCLAIM_JUSTID_1.default,XCLAIM:XCLAIM_1.default,xClaim:XCLAIM_1.default,XDEL:XDEL_1.default,xDel:XDEL_1.default,XDELEX:XDELEX_1.default,xDelEx:XDELEX_1.default,XGROUP_CREATE:XGROUP_CREATE_1.default,xGroupCreate:XGROUP_CREATE_1.default,XGROUP_CREATECONSUMER:XGROUP_CREATECONSUMER_1.default,xGroupCreateConsumer:XGROUP_CREATECONSUMER_1.default,XGROUP_DELCONSUMER:XGROUP_DELCONSUMER_1.default,xGroupDelConsumer:XGROUP_DELCONSUMER_1.default,XGROUP_DESTROY:XGROUP_DESTROY_1.default,xGroupDestroy:XGROUP_DESTROY_1.default,XGROUP_SETID:XGROUP_SETID_1.default,xGroupSetId:XGROUP_SETID_1.default,XINFO_CONSUMERS:XINFO_CONSUMERS_1.default,xInfoConsumers:XINFO_CONSUMERS_1.default,XINFO_GROUPS:XINFO_GROUPS_1.default,xInfoGroups:XINFO_GROUPS_1.default,XINFO_STREAM:XINFO_STREAM_1.default,xInfoStream:XINFO_STREAM_1.default,XLEN:XLEN_1.default,xLen:XLEN_1.default,XPENDING_RANGE:XPENDING_RANGE_1.default,xPendingRange:XPENDING_RANGE_1.default,XPENDING:XPENDING_1.default,xPending:XPENDING_1.default,XRANGE:XRANGE_1.default,xRange:XRANGE_1.default,XREAD:XREAD_1.default,xRead:XREAD_1.default,XREADGROUP:XREADGROUP_1.default,xReadGroup:XREADGROUP_1.default,XREVRANGE:XREVRANGE_1.default,xRevRange:XREVRANGE_1.default,XSETID:XSETID_1.default,xSetId:XSETID_1.default,XTRIM:XTRIM_1.default,xTrim:XTRIM_1.default,ZADD_INCR:ZADD_INCR_1.default,zAddIncr:ZADD_INCR_1.default,ZADD:ZADD_1.default,zAdd:ZADD_1.default,ZCARD:ZCARD_1.default,zCard:ZCARD_1.default,ZCOUNT:ZCOUNT_1.default,zCount:ZCOUNT_1.default,ZDIFF_WITHSCORES:ZDIFF_WITHSCORES_1.default,zDiffWithScores:ZDIFF_WITHSCORES_1.default,ZDIFF:ZDIFF_1.default,zDiff:ZDIFF_1.default,ZDIFFSTORE:ZDIFFSTORE_1.default,zDiffStore:ZDIFFSTORE_1.default,ZINCRBY:ZINCRBY_1.default,zIncrBy:ZINCRBY_1.default,ZINTER_WITHSCORES:ZINTER_WITHSCORES_1.default,zInterWithScores:ZINTER_WITHSCORES_1.default,ZINTER:ZINTER_1.default,zInter:ZINTER_1.default,ZINTERCARD:ZINTERCARD_1.default,zInterCard:ZINTERCARD_1.default,ZINTERSTORE:ZINTERSTORE_1.default,zInterStore:ZINTERSTORE_1.default,ZLEXCOUNT:ZLEXCOUNT_1.default,zLexCount:ZLEXCOUNT_1.default,ZMPOP:ZMPOP_1.default,zmPop:ZMPOP_1.default,ZMSCORE:ZMSCORE_1.default,zmScore:ZMSCORE_1.default,ZPOPMAX_COUNT:ZPOPMAX_COUNT_1.default,zPopMaxCount:ZPOPMAX_COUNT_1.default,ZPOPMAX:ZPOPMAX_1.default,zPopMax:ZPOPMAX_1.default,ZPOPMIN_COUNT:ZPOPMIN_COUNT_1.default,zPopMinCount:ZPOPMIN_COUNT_1.default,ZPOPMIN:ZPOPMIN_1.default,zPopMin:ZPOPMIN_1.default,ZRANDMEMBER_COUNT_WITHSCORES:ZRANDMEMBER_COUNT_WITHSCORES_1.default,zRandMemberCountWithScores:ZRANDMEMBER_COUNT_WITHSCORES_1.default,ZRANDMEMBER_COUNT:ZRANDMEMBER_COUNT_1.default,zRandMemberCount:ZRANDMEMBER_COUNT_1.default,ZRANDMEMBER:ZRANDMEMBER_1.default,zRandMember:ZRANDMEMBER_1.default,ZRANGE_WITHSCORES:ZRANGE_WITHSCORES_1.default,zRangeWithScores:ZRANGE_WITHSCORES_1.default,ZRANGE:ZRANGE_1.default,zRange:ZRANGE_1.default,ZRANGEBYLEX:ZRANGEBYLEX_1.default,zRangeByLex:ZRANGEBYLEX_1.default,ZRANGEBYSCORE_WITHSCORES:ZRANGEBYSCORE_WITHSCORES_1.default,zRangeByScoreWithScores:ZRANGEBYSCORE_WITHSCORES_1.default,ZRANGEBYSCORE:ZRANGEBYSCORE_1.default,zRangeByScore:ZRANGEBYSCORE_1.default,ZRANGESTORE:ZRANGESTORE_1.default,zRangeStore:ZRANGESTORE_1.default,ZRANK_WITHSCORE:ZRANK_WITHSCORE_1.default,zRankWithScore:ZRANK_WITHSCORE_1.default,ZRANK:ZRANK_1.default,zRank:ZRANK_1.default,ZREM:ZREM_1.default,zRem:ZREM_1.default,ZREMRANGEBYLEX:ZREMRANGEBYLEX_1.default,zRemRangeByLex:ZREMRANGEBYLEX_1.default,ZREMRANGEBYRANK:ZREMRANGEBYRANK_1.default,zRemRangeByRank:ZREMRANGEBYRANK_1.default,ZREMRANGEBYSCORE:ZREMRANGEBYSCORE_1.default,zRemRangeByScore:ZREMRANGEBYSCORE_1.default,ZREVRANK:ZREVRANK_1.default,zRevRank:ZREVRANK_1.default,ZSCAN:ZSCAN_1.default,zScan:ZSCAN_1.default,ZSCORE:ZSCORE_1.default,zScore:ZSCORE_1.default,ZUNION_WITHSCORES:ZUNION_WITHSCORES_1.default,zUnionWithScores:ZUNION_WITHSCORES_1.default,ZUNION:ZUNION_1.default,zUnion:ZUNION_1.default,ZUNIONSTORE:ZUNIONSTORE_1.default,zUnionStore:ZUNIONSTORE_1.default,VADD:VADD_1.default,vAdd:VADD_1.default,VCARD:VCARD_1.default,vCard:VCARD_1.default,VDIM:VDIM_1.default,vDim:VDIM_1.default,VEMB:VEMB_1.default,vEmb:VEMB_1.default,VEMB_RAW:VEMB_RAW_1.default,vEmbRaw:VEMB_RAW_1.default,VGETATTR:VGETATTR_1.default,vGetAttr:VGETATTR_1.default,VINFO:VINFO_1.default,vInfo:VINFO_1.default,VLINKS:VLINKS_1.default,vLinks:VLINKS_1.default,VLINKS_WITHSCORES:VLINKS_WITHSCORES_1.default,vLinksWithScores:VLINKS_WITHSCORES_1.default,VRANDMEMBER:VRANDMEMBER_1.default,vRandMember:VRANDMEMBER_1.default,VREM:VREM_1.default,vRem:VREM_1.default,VSETATTR:VSETATTR_1.default,vSetAttr:VSETATTR_1.default,VSIM:VSIM_1.default,vSim:VSIM_1.default,VSIM_WITHSCORES:VSIM_WITHSCORES_1.default,vSimWithScores:VSIM_WITHSCORES_1.default}}),require_enterprise_maintenance_manager=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.emitDiagnostics=exports.dbgMaintenance=exports.MAINTENANCE_EVENTS=void 0;var net_1=__require2("net"),promises_1=__require2("dns/promises"),node_assert_1=__importDefault(__require2("node:assert")),promises_2=__require2("node:timers/promises"),node_diagnostics_channel_1=__importDefault(__require2("node:diagnostics_channel"));exports.MAINTENANCE_EVENTS={PAUSE_WRITING:"pause-writing",RESUME_WRITING:"resume-writing",TIMEOUTS_UPDATE:"timeouts-update"};var PN={MOVING:"MOVING",MIGRATING:"MIGRATING",MIGRATED:"MIGRATED",FAILING_OVER:"FAILING_OVER",FAILED_OVER:"FAILED_OVER"},dbgMaintenance=(...args2)=>{if(!process.env.REDIS_DEBUG_MAINTENANCE)return;return console.log("[MNT]",...args2)};exports.dbgMaintenance=dbgMaintenance;var emitDiagnostics=(event)=>{if(!process.env.REDIS_EMIT_DIAGNOSTICS)return;node_diagnostics_channel_1.default.channel("redis.maintenance").publish(event)};exports.emitDiagnostics=emitDiagnostics;class EnterpriseMaintenanceManager{#commandsQueue;#options;#isMaintenance=0;#client;static setupDefaultMaintOptions(options){if(options.maintNotifications===void 0)options.maintNotifications=options?.RESP===3?"auto":"disabled";if(options.maintEndpointType===void 0)options.maintEndpointType="auto";if(options.maintRelaxedSocketTimeout===void 0)options.maintRelaxedSocketTimeout=1e4;if(options.maintRelaxedCommandTimeout===void 0)options.maintRelaxedCommandTimeout=1e4}static async getHandshakeCommand(options){if(options.maintNotifications==="disabled")return;let host=options.url?new URL(options.url).hostname:options.socket?.host;if(!host)return;let tls=options.socket?.tls??!1;return{cmd:["CLIENT","MAINT_NOTIFICATIONS","ON","moving-endpoint-type",await determineEndpoint(tls,host,options)],errorHandler:(error3)=>{if((0,exports.dbgMaintenance)("handshake failed:",error3),options.maintNotifications==="enabled")throw error3}}}constructor(commandsQueue,client,options){this.#commandsQueue=commandsQueue,this.#options=options,this.#client=client,this.#commandsQueue.addPushHandler(this.#onPush)}#onPush=(push)=>{if((0,exports.dbgMaintenance)("ONPUSH:",push.map(String)),!Array.isArray(push)||!["MOVING","MIGRATING","MIGRATED","FAILING_OVER","FAILED_OVER"].includes(String(push[0])))return!1;let type=String(push[0]);switch((0,exports.emitDiagnostics)({type,timestamp:Date.now(),data:{push:push.map(String)}}),type){case PN.MOVING:{let afterSeconds=push[2],url3=push[3]?String(push[3]):null;return(0,exports.dbgMaintenance)("Received MOVING:",afterSeconds,url3),this.#onMoving(afterSeconds,url3),!0}case PN.MIGRATING:case PN.FAILING_OVER:return(0,exports.dbgMaintenance)("Received MIGRATING|FAILING_OVER"),this.#onMigrating(),!0;case PN.MIGRATED:case PN.FAILED_OVER:return(0,exports.dbgMaintenance)("Received MIGRATED|FAILED_OVER"),this.#onMigrated(),!0}return!1};#onMoving=async(afterSeconds,url3)=>{this.#onMigrating();let host,port3;if(url3===null){(0,node_assert_1.default)(this.#options.maintEndpointType==="none"),(0,node_assert_1.default)(this.#options.socket!==void 0),(0,node_assert_1.default)("host"in this.#options.socket),(0,node_assert_1.default)(typeof this.#options.socket.host==="string"),host=this.#options.socket.host,(0,node_assert_1.default)(typeof this.#options.socket.port==="number"),port3=this.#options.socket.port;let waitTime=afterSeconds*1000/2;(0,exports.dbgMaintenance)(`Wait for ${waitTime}ms`),await(0,promises_2.setTimeout)(waitTime)}else{let split4=url3.split(":");host=split4[0],port3=Number(split4[1])}(0,exports.dbgMaintenance)("Pausing writing of new commands to old socket"),this.#client._pause(),(0,exports.dbgMaintenance)("Creating new tmp client");let start3=performance.now();if(this.#options.url){let u=new URL(this.#options.url);u.hostname=host,u.port=String(port3),this.#options.url=u.toString()}else this.#options.socket={...this.#options.socket,host,port:port3};let tmpClient=this.#client.duplicate();tmpClient.on("error",(error3)=>{(0,exports.dbgMaintenance)("[ERR]",error3)}),(0,exports.dbgMaintenance)(`Tmp client created in ${(performance.now()-start3).toFixed(2)}ms`),(0,exports.dbgMaintenance)(`Set timeout for tmp client to ${this.#options.maintRelaxedSocketTimeout}`),tmpClient._maintenanceUpdate({relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout}),(0,exports.dbgMaintenance)(`Connecting tmp client: ${host}:${port3}`),start3=performance.now(),await tmpClient.connect(),(0,exports.dbgMaintenance)(`Connected to tmp client in ${(performance.now()-start3).toFixed(2)}ms`),(0,exports.dbgMaintenance)("Wait for all in-flight commands to complete"),await this.#commandsQueue.waitForInflightCommandsToComplete(),(0,exports.dbgMaintenance)("In-flight commands completed"),(0,exports.dbgMaintenance)("Swap client sockets...");let oldSocket=this.#client._ejectSocket(),newSocket=tmpClient._ejectSocket();this.#client._insertSocket(newSocket),tmpClient._insertSocket(oldSocket),tmpClient.destroy(),(0,exports.dbgMaintenance)("Swap client sockets done."),(0,exports.dbgMaintenance)("Resume writing"),this.#client._unpause(),this.#onMigrated()};#onMigrating=()=>{if(this.#isMaintenance++,this.#isMaintenance>1){(0,exports.dbgMaintenance)("Timeout relaxation already done");return}let update5={relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout};this.#client._maintenanceUpdate(update5)};#onMigrated=()=>{if(this.#isMaintenance=Math.max(this.#isMaintenance-1,0),this.#isMaintenance>0){(0,exports.dbgMaintenance)("Not ready to unrelax timeouts yet");return}let update5={relaxedCommandTimeout:void 0,relaxedSocketTimeout:void 0};this.#client._maintenanceUpdate(update5)}}exports.default=EnterpriseMaintenanceManager;function isPrivateIP(ip){let version=(0,net_1.isIP)(ip);if(version===4){let octets=ip.split(".").map(Number);return octets[0]===10||octets[0]===172&&octets[1]>=16&&octets[1]<=31||octets[0]===192&&octets[1]===168}if(version===6)return ip.startsWith("fc")||ip.startsWith("fd")||ip==="::1"||ip.startsWith("fe80");return!1}async function determineEndpoint(tlsEnabled,host,options){if((0,node_assert_1.default)(options.maintEndpointType!==void 0),options.maintEndpointType!=="auto")return(0,exports.dbgMaintenance)(`Determine endpoint type: ${options.maintEndpointType}`),options.maintEndpointType;let ip=(0,net_1.isIP)(host)?host:(await(0,promises_1.lookup)(host,{family:0})).address,isPrivate=isPrivateIP(ip),result;if(tlsEnabled)result=isPrivate?"internal-fqdn":"external-fqdn";else result=isPrivate?"internal-ip":"external-ip";return(0,exports.dbgMaintenance)(`Determine endpoint type: ${result}`),result}}),require_socket=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var node_events_1=__require2("node:events"),node_net_1=__importDefault(__require2("node:net")),node_tls_1=__importDefault(__require2("node:tls")),errors_1=require_errors(),promises_1=__require2("node:timers/promises"),enterprise_maintenance_manager_1=require_enterprise_maintenance_manager();class RedisSocket extends node_events_1.EventEmitter{#initiator;#connectTimeout;#reconnectStrategy;#socketFactory;#socketTimeout;#maintenanceTimeout;#socket;#isOpen=!1;get isOpen(){return this.#isOpen}#isReady=!1;get isReady(){return this.#isReady}#isSocketUnrefed=!1;#socketEpoch=0;get socketEpoch(){return this.#socketEpoch}constructor(initiator,options){super();this.#initiator=initiator,this.#connectTimeout=options?.connectTimeout??5000,this.#reconnectStrategy=this.#createReconnectStrategy(options),this.#socketFactory=this.#createSocketFactory(options),this.#socketTimeout=options?.socketTimeout}#createReconnectStrategy(options){let strategy=options?.reconnectStrategy;if(strategy===!1||typeof strategy==="number")return()=>strategy;if(strategy)return(retries,cause3)=>{try{let retryIn=strategy(retries,cause3);if(retryIn!==!1&&!(retryIn instanceof Error)&&typeof retryIn!=="number")throw TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`);return retryIn}catch(err){return this.emit("error",err),this.defaultReconnectStrategy(retries,err)}};return this.defaultReconnectStrategy}#createSocketFactory(options){if(options?.tls===!0){let withDefaults2={...options,port:options?.port??6379,noDelay:options?.noDelay??!0,keepAlive:options?.keepAlive??!0,keepAliveInitialDelay:options?.keepAliveInitialDelay??5000,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_tls_1.default.connect(withDefaults2)},event:"secureConnect"}}if(options&&"path"in options){let withDefaults2={...options,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_net_1.default.createConnection(withDefaults2)},event:"connect"}}let withDefaults={...options,port:options?.port??6379,noDelay:options?.noDelay??!0,keepAlive:options?.keepAlive??!0,keepAliveInitialDelay:options?.keepAliveInitialDelay??5000,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_net_1.default.createConnection(withDefaults)},event:"connect"}}#shouldReconnect(retries,cause3){let retryIn=this.#reconnectStrategy(retries,cause3);if(retryIn===!1)return this.#isOpen=!1,this.emit("error",cause3),cause3;else if(retryIn instanceof Error)return this.#isOpen=!1,this.emit("error",cause3),new errors_1.ReconnectStrategyError(retryIn,cause3);return retryIn}async connect(){if(this.#isOpen)throw Error("Socket already opened");return this.#isOpen=!0,this.#connect()}async#connect(){let retries=0;do try{this.#socket=await this.#createSocket(),this.emit("connect");try{if(await this.#initiator(),!this.#socket||this.#socket.destroyed||!this.#socket.readable||!this.#socket.writable){let retryIn=this.#shouldReconnect(retries++,new errors_1.SocketClosedUnexpectedlyError);if(typeof retryIn!=="number")throw retryIn;await(0,promises_1.setTimeout)(retryIn),this.emit("reconnecting");continue}}catch(err){throw this.#socket.destroy(),this.#socket=void 0,err}this.#isReady=!0,this.#socketEpoch++,this.emit("ready")}catch(err){let retryIn=this.#shouldReconnect(retries++,err);if(typeof retryIn!=="number")throw retryIn;this.emit("error",err),await(0,promises_1.setTimeout)(retryIn),this.emit("reconnecting")}while(this.#isOpen&&!this.#isReady)}setMaintenanceTimeout(ms){if((0,enterprise_maintenance_manager_1.dbgMaintenance)(`Set socket timeout to ${ms}`),this.#maintenanceTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Socket already set maintenanceCommandTimeout to ${ms}, skipping`);return}if(this.#maintenanceTimeout=ms,ms!==void 0)this.#socket?.setTimeout(ms);else this.#socket?.setTimeout(this.#socketTimeout??0)}async#createSocket(){let socket=this.#socketFactory.create(),onTimeout;if(this.#connectTimeout!==void 0)onTimeout=()=>socket.destroy(new errors_1.ConnectionTimeoutError),socket.once("timeout",onTimeout),socket.setTimeout(this.#connectTimeout);if(this.#isSocketUnrefed)socket.unref();if(await(0,node_events_1.once)(socket,this.#socketFactory.event),onTimeout)socket.removeListener("timeout",onTimeout);if(this.#socketTimeout)socket.once("timeout",()=>{let error3=this.#maintenanceTimeout?new errors_1.SocketTimeoutDuringMaintenanceError(this.#maintenanceTimeout):new errors_1.SocketTimeoutError(this.#socketTimeout);socket.destroy(error3)}),socket.setTimeout(this.#socketTimeout);return socket.once("error",(err)=>this.#onSocketError(err)).once("close",(hadError)=>{if(hadError||!this.#isOpen||this.#socket!==socket)return;this.#onSocketError(new errors_1.SocketClosedUnexpectedlyError)}).on("drain",()=>this.emit("drain")).on("data",(data)=>this.emit("data",data)),socket}#onSocketError(err){let wasReady=this.#isReady;if(this.#isReady=!1,this.emit("error",err),!wasReady||!this.#isOpen||typeof this.#shouldReconnect(0,err)!=="number")return;this.emit("reconnecting"),this.#connect().catch(()=>{})}write(iterable){if(!this.#socket)return;this.#socket.cork();for(let args2 of iterable){for(let toWrite of args2)this.#socket.write(toWrite);if(this.#socket.writableNeedDrain)break}this.#socket.uncork()}async quit(fn2){if(!this.#isOpen)throw new errors_1.ClientClosedError;this.#isOpen=!1;let reply=await fn2();return this.destroySocket(),reply}close(){if(!this.#isOpen)throw new errors_1.ClientClosedError;this.#isOpen=!1}destroy(){if(!this.#isOpen)throw new errors_1.ClientClosedError;this.#isOpen=!1,this.destroySocket()}destroySocket(){if(this.#isReady=!1,this.#socket)this.#socket.destroy(),this.#socket=void 0;this.emit("end")}ref(){this.#isSocketUnrefed=!1,this.#socket?.ref()}unref(){this.#isSocketUnrefed=!0,this.#socket?.unref()}defaultReconnectStrategy(retries,cause3){if(cause3 instanceof errors_1.SocketTimeoutError)return!1;let jitter=Math.floor(Math.random()*200);return Math.min(Math.pow(2,retries)*50,2000)+jitter}}exports.default=RedisSocket}),require_token=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.Token=void 0;class Token{value;expiresAtMs;receivedAtMs;constructor(value,expiresAtMs,receivedAtMs){this.value=value,this.expiresAtMs=expiresAtMs,this.receivedAtMs=receivedAtMs}getTtlMs(now){if(this.expiresAtMs<now)return 0;return this.expiresAtMs-now}}exports.Token=Token}),require_token_manager=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.TokenManager=exports.IDPError=void 0;var token_1=require_token();class IDPError extends Error{message;isRetryable;constructor(message,isRetryable){super(message);this.message=message,this.isRetryable=isRetryable,this.name="IDPError"}}exports.IDPError=IDPError;class TokenManager{identityProvider;config;currentToken=null;refreshTimeout=null;listener=null;retryAttempt=0;constructor(identityProvider,config2){if(this.identityProvider=identityProvider,this.config=config2,this.config.expirationRefreshRatio>1)throw Error("expirationRefreshRatio must be less than or equal to 1");if(this.config.expirationRefreshRatio<0)throw Error("expirationRefreshRatio must be greater or equal to 0")}start(listener,initialDelayMs=0){if(this.listener)this.stop();return this.listener=listener,this.retryAttempt=0,this.scheduleNextRefresh(initialDelayMs),{dispose:()=>this.stop()}}calculateRetryDelay(){if(!this.config.retry)return 0;let{initialDelayMs,maxDelayMs,backoffMultiplier,jitterPercentage}=this.config.retry,delay3=initialDelayMs*Math.pow(backoffMultiplier,this.retryAttempt-1);if(delay3=Math.min(delay3,maxDelayMs),jitterPercentage){let jitterRange=delay3*(jitterPercentage/100),jitterAmount=Math.random()*jitterRange-jitterRange/2;delay3+=jitterAmount}return Math.max(0,Math.floor(delay3))}shouldRetry(error3){if(!this.config.retry)return!1;let{maxAttempts,isRetryable}=this.config.retry;if(this.retryAttempt>=maxAttempts)return!1;if(isRetryable)return isRetryable(error3,this.retryAttempt);return!1}isRunning(){return this.listener!==null}async refresh(){if(!this.listener)throw Error("TokenManager is not running, but refresh was called");try{await this.identityProvider.requestToken().then(this.handleNewToken),this.retryAttempt=0}catch(error3){if(this.shouldRetry(error3)){this.retryAttempt++;let retryDelay=this.calculateRetryDelay();this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${retryDelay}ms: ${error3}`,!0),this.scheduleNextRefresh(retryDelay)}else this.notifyError(error3,!1),this.stop()}}handleNewToken=async({token:nativeToken,ttlMs})=>{if(!this.listener)throw Error("TokenManager is not running, but a new token was received");let token=this.wrapAndSetCurrentToken(nativeToken,ttlMs);this.listener.onNext(token),this.scheduleNextRefresh(this.calculateRefreshTime(token))};wrapAndSetCurrentToken(nativeToken,ttlMs){let now=Date.now(),token=new token_1.Token(nativeToken,now+ttlMs,now);return this.currentToken=token,token}scheduleNextRefresh(delayMs){if(this.refreshTimeout)clearTimeout(this.refreshTimeout),this.refreshTimeout=null;if(delayMs===0)this.refresh();else this.refreshTimeout=setTimeout(()=>this.refresh(),delayMs)}calculateRefreshTime(token,now=Date.now()){let ttlMs=token.getTtlMs(now);return Math.floor(ttlMs*this.config.expirationRefreshRatio)}stop(){if(this.refreshTimeout)clearTimeout(this.refreshTimeout),this.refreshTimeout=null;this.listener=null,this.currentToken=null,this.retryAttempt=0}getCurrentToken(){return this.currentToken}notifyError(error3,isRetryable){let errorMessage=error3 instanceof Error?error3.message:String(error3);if(!this.listener)throw Error(`TokenManager is not running but received an error: ${errorMessage}`);this.listener.onError(new IDPError(errorMessage,isRetryable))}}exports.TokenManager=TokenManager}),require_credentials_provider=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.UnableToObtainNewCredentialsError=exports.CredentialsError=void 0;class CredentialsError extends Error{constructor(message){super(`Re-authentication with latest credentials failed: ${message}`);this.name="CredentialsError"}}exports.CredentialsError=CredentialsError;class UnableToObtainNewCredentialsError extends Error{constructor(message){super(`Unable to obtain new credentials : ${message}`);this.name="UnableToObtainNewCredentialsError"}}exports.UnableToObtainNewCredentialsError=UnableToObtainNewCredentialsError}),require_authx=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.Token=exports.CredentialsError=exports.UnableToObtainNewCredentialsError=exports.IDPError=exports.TokenManager=void 0;var token_manager_1=require_token_manager();Object.defineProperty(exports,"TokenManager",{enumerable:!0,get:function(){return token_manager_1.TokenManager}}),Object.defineProperty(exports,"IDPError",{enumerable:!0,get:function(){return token_manager_1.IDPError}});var credentials_provider_1=require_credentials_provider();Object.defineProperty(exports,"UnableToObtainNewCredentialsError",{enumerable:!0,get:function(){return credentials_provider_1.UnableToObtainNewCredentialsError}}),Object.defineProperty(exports,"CredentialsError",{enumerable:!0,get:function(){return credentials_provider_1.CredentialsError}});var token_1=require_token();Object.defineProperty(exports,"Token",{enumerable:!0,get:function(){return token_1.Token}})}),require_linked_list=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EmptyAwareSinglyLinkedList=exports.SinglyLinkedList=exports.DoublyLinkedList=void 0;var events_1=__importDefault(__require2("events"));class DoublyLinkedList{#length=0;get length(){return this.#length}#head;get head(){return this.#head}#tail;get tail(){return this.#tail}push(value){if(++this.#length,this.#tail===void 0)return this.#head=this.#tail={previous:this.#head,next:void 0,value};return this.#tail=this.#tail.next={previous:this.#tail,next:void 0,value}}unshift(value){if(++this.#length,this.#head===void 0)return this.#head=this.#tail={previous:void 0,next:void 0,value};return this.#head=this.#head.previous={previous:void 0,next:this.#head,value}}add(value,prepend6=!1){return prepend6?this.unshift(value):this.push(value)}shift(){if(this.#head===void 0)return;--this.#length;let node=this.#head;if(node.next)node.next.previous=void 0,this.#head=node.next,node.next=void 0;else this.#head=this.#tail=void 0;return node.value}remove(node){if(this.#length===0)return;if(--this.#length,this.#tail===node)this.#tail=node.previous;if(this.#head===node)this.#head=node.next;else{if(node.previous)node.previous.next=node.next;if(node.next)node.next.previous=node.previous}node.previous=void 0,node.next=void 0}reset(){this.#length=0,this.#head=this.#tail=void 0}*[Symbol.iterator](){let node=this.#head;while(node!==void 0)yield node.value,node=node.next}*nodes(){let node=this.#head;while(node){let next4=node.next;yield node,node=next4}}}exports.DoublyLinkedList=DoublyLinkedList;class SinglyLinkedList{#length=0;get length(){return this.#length}#head;get head(){return this.#head}#tail;get tail(){return this.#tail}push(value){++this.#length;let node={value,next:void 0,removed:!1};if(this.#head===void 0)return this.#head=this.#tail=node;return this.#tail.next=this.#tail=node}remove(node,parent){if(node.removed)throw Error("node already removed");if(--this.#length,this.#head===node)if(this.#tail===node)this.#head=this.#tail=void 0;else this.#head=node.next;else if(this.#tail===node)this.#tail=parent,parent.next=void 0;else parent.next=node.next;node.removed=!0}shift(){if(this.#head===void 0)return;let node=this.#head;if(--this.#length===0)this.#head=this.#tail=void 0;else this.#head=node.next;return node.removed=!0,node.value}reset(){this.#length=0,this.#head=this.#tail=void 0}*[Symbol.iterator](){let node=this.#head;while(node!==void 0)yield node.value,node=node.next}}exports.SinglyLinkedList=SinglyLinkedList;class EmptyAwareSinglyLinkedList extends SinglyLinkedList{events=new events_1.default;reset(){let old=this.length;if(super.reset(),old!==this.length&&this.length===0)this.events.emit("empty")}shift(){let old=this.length,ret=super.shift();if(old!==this.length&&this.length===0)this.events.emit("empty");return ret}remove(node,parent){let old=this.length;if(super.remove(node,parent),old!==this.length&&this.length===0)this.events.emit("empty")}}exports.EmptyAwareSinglyLinkedList=EmptyAwareSinglyLinkedList}),require_encoder=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var CRLF=`\r
76
+ `;function encodeCommand(args2){let toWrite=[],strings="*"+args2.length+CRLF;for(let i=0;i<args2.length;i++){let arg=args2[i];if(typeof arg==="string")strings+="$"+Buffer.byteLength(arg)+CRLF+arg+CRLF;else if(arg instanceof Buffer)toWrite.push(strings+"$"+arg.length.toString()+CRLF,arg),strings=CRLF;else throw TypeError(`"arguments[${i}]" must be of type "string | Buffer", got ${typeof arg} instead.`)}return toWrite.push(strings),toWrite}exports.default=encodeCommand}),require_pub_sub=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.PubSub=exports.PUBSUB_TYPE=void 0,exports.PUBSUB_TYPE={CHANNELS:"CHANNELS",PATTERNS:"PATTERNS",SHARDED:"SHARDED"};var COMMANDS={[exports.PUBSUB_TYPE.CHANNELS]:{subscribe:Buffer.from("subscribe"),unsubscribe:Buffer.from("unsubscribe"),message:Buffer.from("message")},[exports.PUBSUB_TYPE.PATTERNS]:{subscribe:Buffer.from("psubscribe"),unsubscribe:Buffer.from("punsubscribe"),message:Buffer.from("pmessage")},[exports.PUBSUB_TYPE.SHARDED]:{subscribe:Buffer.from("ssubscribe"),unsubscribe:Buffer.from("sunsubscribe"),message:Buffer.from("smessage")}};class PubSub{static isStatusReply(reply){return COMMANDS[exports.PUBSUB_TYPE.CHANNELS].subscribe.equals(reply[0])||COMMANDS[exports.PUBSUB_TYPE.CHANNELS].unsubscribe.equals(reply[0])||COMMANDS[exports.PUBSUB_TYPE.PATTERNS].subscribe.equals(reply[0])||COMMANDS[exports.PUBSUB_TYPE.PATTERNS].unsubscribe.equals(reply[0])||COMMANDS[exports.PUBSUB_TYPE.SHARDED].subscribe.equals(reply[0])}static isShardedUnsubscribe(reply){return COMMANDS[exports.PUBSUB_TYPE.SHARDED].unsubscribe.equals(reply[0])}static#channelsArray(channels){return Array.isArray(channels)?channels:[channels]}static#listenersSet(listeners,returnBuffers){return returnBuffers?listeners.buffers:listeners.strings}#subscribing=0;#isActive=!1;get isActive(){return this.#isActive}listeners={[exports.PUBSUB_TYPE.CHANNELS]:new Map,[exports.PUBSUB_TYPE.PATTERNS]:new Map,[exports.PUBSUB_TYPE.SHARDED]:new Map};subscribe(type,channels,listener,returnBuffers){let args2=[COMMANDS[type].subscribe],channelsArray=PubSub.#channelsArray(channels);for(let channel of channelsArray){let channelListeners=this.listeners[type].get(channel);if(!channelListeners||channelListeners.unsubscribing)args2.push(channel)}if(args2.length===1){for(let channel of channelsArray)PubSub.#listenersSet(this.listeners[type].get(channel),returnBuffers).add(listener);return}return this.#isActive=!0,this.#subscribing++,{args:args2,channelsCounter:args2.length-1,resolve:()=>{this.#subscribing--;for(let channel of channelsArray){let listeners=this.listeners[type].get(channel);if(!listeners)listeners={unsubscribing:!1,buffers:new Set,strings:new Set},this.listeners[type].set(channel,listeners);PubSub.#listenersSet(listeners,returnBuffers).add(listener)}},reject:()=>{this.#subscribing--,this.#updateIsActive()}}}extendChannelListeners(type,channel,listeners){if(!this.#extendChannelListeners(type,channel,listeners))return;return this.#isActive=!0,this.#subscribing++,{args:[COMMANDS[type].subscribe,channel],channelsCounter:1,resolve:()=>this.#subscribing--,reject:()=>{this.#subscribing--,this.#updateIsActive()}}}#extendChannelListeners(type,channel,listeners){let existingListeners=this.listeners[type].get(channel);if(!existingListeners)return this.listeners[type].set(channel,listeners),!0;for(let listener of listeners.buffers)existingListeners.buffers.add(listener);for(let listener of listeners.strings)existingListeners.strings.add(listener);return!1}extendTypeListeners(type,listeners){let args2=[COMMANDS[type].subscribe];for(let[channel,channelListeners]of listeners)if(this.#extendChannelListeners(type,channel,channelListeners))args2.push(channel);if(args2.length===1)return;return this.#isActive=!0,this.#subscribing++,{args:args2,channelsCounter:args2.length-1,resolve:()=>this.#subscribing--,reject:()=>{this.#subscribing--,this.#updateIsActive()}}}unsubscribe(type,channels,listener,returnBuffers){let listeners=this.listeners[type];if(!channels)return this.#unsubscribeCommand([COMMANDS[type].unsubscribe],NaN,()=>listeners.clear());let channelsArray=PubSub.#channelsArray(channels);if(!listener)return this.#unsubscribeCommand([COMMANDS[type].unsubscribe,...channelsArray],channelsArray.length,()=>{for(let channel of channelsArray)listeners.delete(channel)});let args2=[COMMANDS[type].unsubscribe];for(let channel of channelsArray){let sets=listeners.get(channel);if(sets){let current2,other;if(returnBuffers)current2=sets.buffers,other=sets.strings;else current2=sets.strings,other=sets.buffers;if((current2.has(listener)?current2.size-1:current2.size)!==0||other.size!==0)continue;sets.unsubscribing=!0}args2.push(channel)}if(args2.length===1){for(let channel of channelsArray)PubSub.#listenersSet(listeners.get(channel),returnBuffers).delete(listener);return}return this.#unsubscribeCommand(args2,args2.length-1,()=>{for(let channel of channelsArray){let sets=listeners.get(channel);if(!sets)continue;if((returnBuffers?sets.buffers:sets.strings).delete(listener),sets.buffers.size===0&&sets.strings.size===0)listeners.delete(channel)}})}#unsubscribeCommand(args2,channelsCounter,removeListeners){return{args:args2,channelsCounter,resolve:()=>{removeListeners(),this.#updateIsActive()},reject:void 0}}#updateIsActive(){this.#isActive=this.listeners[exports.PUBSUB_TYPE.CHANNELS].size!==0||this.listeners[exports.PUBSUB_TYPE.PATTERNS].size!==0||this.listeners[exports.PUBSUB_TYPE.SHARDED].size!==0||this.#subscribing!==0}reset(){this.#isActive=!1,this.#subscribing=0}resubscribe(){let commands=[];for(let[type,listeners]of Object.entries(this.listeners)){if(!listeners.size)continue;if(this.#isActive=!0,type===exports.PUBSUB_TYPE.SHARDED)this.#shardedResubscribe(commands,listeners);else this.#normalResubscribe(commands,type,listeners)}return commands}#normalResubscribe(commands,type,listeners){this.#subscribing++;let callback=()=>this.#subscribing--;commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}#shardedResubscribe(commands,listeners){let callback=()=>this.#subscribing--;for(let channel of listeners.keys())this.#subscribing++,commands.push({args:[COMMANDS[exports.PUBSUB_TYPE.SHARDED].subscribe,channel],channelsCounter:1,resolve:callback,reject:callback})}handleMessageReply(reply){if(COMMANDS[exports.PUBSUB_TYPE.CHANNELS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.CHANNELS,reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.PATTERNS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.PATTERNS,reply[3],reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.SHARDED].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.SHARDED,reply[2],reply[1]),!0;return!1}removeShardedListeners(channel){let listeners=this.listeners[exports.PUBSUB_TYPE.SHARDED].get(channel);return this.listeners[exports.PUBSUB_TYPE.SHARDED].delete(channel),this.#updateIsActive(),listeners}removeAllListeners(){let result={[exports.PUBSUB_TYPE.CHANNELS]:this.listeners[exports.PUBSUB_TYPE.CHANNELS],[exports.PUBSUB_TYPE.PATTERNS]:this.listeners[exports.PUBSUB_TYPE.PATTERNS],[exports.PUBSUB_TYPE.SHARDED]:this.listeners[exports.PUBSUB_TYPE.SHARDED]};return this.#updateIsActive(),this.listeners[exports.PUBSUB_TYPE.CHANNELS]=new Map,this.listeners[exports.PUBSUB_TYPE.PATTERNS]=new Map,this.listeners[exports.PUBSUB_TYPE.SHARDED]=new Map,result}#emitPubSubMessage(type,message,channel,pattern){let keyString=(pattern??channel).toString(),listeners=this.listeners[type].get(keyString);if(!listeners)return;for(let listener of listeners.buffers)listener(message,channel);if(!listeners.strings.size)return;let channelString=pattern?channel.toString():keyString,messageString=channelString==="__redis__:invalidate"?message===null?null:message.map((x)=>x.toString()):message.toString();for(let listener of listeners.strings)listener(messageString,channelString)}}exports.PubSub=PubSub}),require_commands_queue=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var linked_list_1=require_linked_list(),encoder_1=__importDefault(require_encoder()),decoder_1=require_decoder(),pub_sub_1=require_pub_sub(),errors_1=require_errors(),enterprise_maintenance_manager_1=require_enterprise_maintenance_manager(),PONG=Buffer.from("pong"),RESET=Buffer.from("RESET"),RESP2_PUSH_TYPE_MAPPING={...decoder_1.PUSH_TYPE_MAPPING,[decoder_1.RESP_TYPES.SIMPLE_STRING]:Buffer};class RedisCommandsQueue{#respVersion;#maxLength;#toWrite=new linked_list_1.DoublyLinkedList;#waitingForReply=new linked_list_1.EmptyAwareSinglyLinkedList;#onShardedChannelMoved;#chainInExecution;decoder;#pubSub=new pub_sub_1.PubSub;#pushHandlers=[this.#onPush.bind(this)];#maintenanceCommandTimeout;setMaintenanceCommandTimeout(ms){if(this.#maintenanceCommandTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Queue already set maintenanceCommandTimeout to ${ms}, skipping`);return}if((0,enterprise_maintenance_manager_1.dbgMaintenance)(`Setting maintenance command timeout to ${ms}`),this.#maintenanceCommandTimeout=ms,this.#maintenanceCommandTimeout===void 0){(0,enterprise_maintenance_manager_1.dbgMaintenance)("Queue will keep maintenanceCommandTimeout for exisitng commands, just to be on the safe side. New commands will receive normal timeouts");return}let counter6=0,total=this.#toWrite.length;for(let node of this.#toWrite.nodes()){let command=node.value;RedisCommandsQueue.#removeTimeoutListener(command),counter6++;let newTimeout=this.#maintenanceCommandTimeout,signal=AbortSignal.timeout(newTimeout);command.timeout={signal,listener:()=>{this.#toWrite.remove(node),command.reject(new errors_1.CommandTimeoutDuringMaintenanceError(newTimeout))},originalTimeout:command.timeout?.originalTimeout},signal.addEventListener("abort",command.timeout.listener,{once:!0})}(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Total of ${counter6} of ${total} timeouts reset to ${ms}`)}get isPubSubActive(){return this.#pubSub.isActive}constructor(respVersion,maxLength,onShardedChannelMoved){this.#respVersion=respVersion,this.#maxLength=maxLength,this.#onShardedChannelMoved=onShardedChannelMoved,this.decoder=this.#initiateDecoder()}#onReply(reply){this.#waitingForReply.shift().resolve(reply)}#onErrorReply(err){this.#waitingForReply.shift().reject(err)}#onPush(push){if(this.#pubSub.handleMessageReply(push))return!0;let isShardedUnsubscribe=pub_sub_1.PubSub.isShardedUnsubscribe(push);if(isShardedUnsubscribe&&!this.#waitingForReply.length){let channel=push[1].toString();return this.#onShardedChannelMoved(channel,this.#pubSub.removeShardedListeners(channel)),!0}else if(isShardedUnsubscribe||pub_sub_1.PubSub.isStatusReply(push)){let head6=this.#waitingForReply.head.value;if(Number.isNaN(head6.channelsCounter)&&push[2]===0||--head6.channelsCounter===0)this.#waitingForReply.shift().resolve();return!0}return!1}#getTypeMapping(){return this.#waitingForReply.head.value.typeMapping??{}}#initiateDecoder(){return new decoder_1.Decoder({onReply:(reply)=>this.#onReply(reply),onErrorReply:(err)=>this.#onErrorReply(err),onPush:(push)=>{for(let pushHandler of this.#pushHandlers)if(pushHandler(push))return},getTypeMapping:()=>this.#getTypeMapping()})}addPushHandler(handler){this.#pushHandlers.push(handler)}async waitForInflightCommandsToComplete(){if(this.#waitingForReply.length===0)return;return new Promise((resolve)=>{this.#waitingForReply.events.on("empty",resolve)})}addCommand(args2,options){if(this.#maxLength&&this.#toWrite.length+this.#waitingForReply.length>=this.#maxLength)return Promise.reject(Error("The queue is full"));else if(options?.abortSignal?.aborted)return Promise.reject(new errors_1.AbortError);return new Promise((resolve,reject)=>{let node,value={args:args2,chainId:options?.chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping:options?.typeMapping},timeout5=this.#maintenanceCommandTimeout??options?.timeout,wasInMaintenance=this.#maintenanceCommandTimeout!==void 0;if(timeout5){let signal2=AbortSignal.timeout(timeout5);value.timeout={signal:signal2,listener:()=>{this.#toWrite.remove(node),value.reject(wasInMaintenance?new errors_1.CommandTimeoutDuringMaintenanceError(timeout5):new errors_1.TimeoutError)},originalTimeout:options?.timeout},signal2.addEventListener("abort",value.timeout.listener,{once:!0})}let signal=options?.abortSignal;if(signal)value.abort={signal,listener:()=>{this.#toWrite.remove(node),value.reject(new errors_1.AbortError)}},signal.addEventListener("abort",value.abort.listener,{once:!0});node=this.#toWrite.add(value,options?.asap)})}#addPubSubCommand(command,asap=!1,chainId){return new Promise((resolve,reject)=>{this.#toWrite.add({args:command.args,chainId,abort:void 0,timeout:void 0,resolve(){command.resolve(),resolve()},reject(err){command.reject?.(),reject(err)},channelsCounter:command.channelsCounter,typeMapping:decoder_1.PUSH_TYPE_MAPPING},asap)})}#setupPubSubHandler(){if(this.#respVersion!==2)return;this.decoder.onReply=(reply)=>{if(Array.isArray(reply)){if(this.#onPush(reply))return;if(PONG.equals(reply[0])){let{resolve,typeMapping}=this.#waitingForReply.shift(),buffer3=reply[1].length===0?reply[0]:reply[1];resolve(typeMapping?.[decoder_1.RESP_TYPES.SIMPLE_STRING]===Buffer?buffer3:buffer3.toString());return}}return this.#onReply(reply)},this.decoder.getTypeMapping=()=>RESP2_PUSH_TYPE_MAPPING}subscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.subscribe(type,channels,listener,returnBuffers);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}#resetDecoderCallbacks(){this.decoder.onReply=(reply)=>this.#onReply(reply),this.decoder.getTypeMapping=()=>this.#getTypeMapping()}unsubscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.unsubscribe(type,channels,listener,returnBuffers);if(!command)return;if(command&&this.#respVersion===2){let{resolve}=command;command.resolve=()=>{if(!this.#pubSub.isActive)this.#resetDecoderCallbacks();resolve()}}return this.#addPubSubCommand(command)}removeAllPubSubListeners(){return this.#pubSub.removeAllListeners()}resubscribe(chainId){let commands=this.#pubSub.resubscribe();if(!commands.length)return;return this.#setupPubSubHandler(),Promise.all(commands.map((command)=>this.#addPubSubCommand(command,!0,chainId)))}extendPubSubChannelListeners(type,channel,listeners){let command=this.#pubSub.extendChannelListeners(type,channel,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}extendPubSubListeners(type,listeners){let command=this.#pubSub.extendTypeListeners(type,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}getPubSubListeners(type){return this.#pubSub.listeners[type]}monitor(callback,options){return new Promise((resolve,reject)=>{let typeMapping=options?.typeMapping??{};this.#toWrite.add({args:["MONITOR"],chainId:options?.chainId,abort:void 0,timeout:void 0,resolve:()=>{if(this.#resetFallbackOnReply)this.#resetFallbackOnReply=callback;else this.decoder.onReply=callback;this.decoder.getTypeMapping=()=>typeMapping,resolve()},reject,channelsCounter:void 0,typeMapping},options?.asap)})}resetDecoder(){this.#resetDecoderCallbacks(),this.decoder.reset()}#resetFallbackOnReply;async reset(chainId,typeMapping){return new Promise((resolve,reject)=>{this.#resetFallbackOnReply=this.decoder.onReply,this.decoder.onReply=(reply)=>{if(typeof reply==="string"&&reply==="RESET"||reply instanceof Buffer&&RESET.equals(reply)){this.#resetDecoderCallbacks(),this.#resetFallbackOnReply=void 0,this.#pubSub.reset(),this.#waitingForReply.shift().resolve(reply);return}this.#resetFallbackOnReply(reply)},this.#toWrite.push({args:["RESET"],chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping})})}isWaitingToWrite(){return this.#toWrite.length>0}*commandsToWrite(){let toSend=this.#toWrite.shift();while(toSend){let encoded;try{encoded=(0,encoder_1.default)(toSend.args)}catch(err){toSend.reject(err),toSend=this.#toWrite.shift();continue}if(toSend.args=void 0,toSend.abort)RedisCommandsQueue.#removeAbortListener(toSend),toSend.abort=void 0;if(toSend.timeout)RedisCommandsQueue.#removeTimeoutListener(toSend),toSend.timeout=void 0;this.#chainInExecution=toSend.chainId,toSend.chainId=void 0,this.#waitingForReply.push(toSend),yield encoded,toSend=this.#toWrite.shift()}}#flushWaitingForReply(err){for(let node of this.#waitingForReply)node.reject(err);this.#waitingForReply.reset()}static#removeAbortListener(command){command.abort.signal.removeEventListener("abort",command.abort.listener)}static#removeTimeoutListener(command){command.timeout?.signal.removeEventListener("abort",command.timeout.listener)}static#flushToWrite(toBeSent,err){if(toBeSent.abort)RedisCommandsQueue.#removeAbortListener(toBeSent);if(toBeSent.timeout)RedisCommandsQueue.#removeTimeoutListener(toBeSent);toBeSent.reject(err)}flushWaitingForReply(err){if(this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err),!this.#chainInExecution)return;while(this.#toWrite.head?.value.chainId===this.#chainInExecution)RedisCommandsQueue.#flushToWrite(this.#toWrite.shift(),err);this.#chainInExecution=void 0}flushAll(err){this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err);for(let node of this.#toWrite)RedisCommandsQueue.#flushToWrite(node,err);this.#toWrite.reset()}isEmpty(){return this.#toWrite.length===0&&this.#waitingForReply.length===0}}exports.default=RedisCommandsQueue}),require_commander=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.scriptArgumentsPrefix=exports.functionArgumentsPrefix=exports.getTransformReply=exports.attachConfig=void 0;function throwResp3SearchModuleUnstableError(){throw Error("Some RESP3 results for Redis Query Engine responses may change. Refer to the readme for guidance")}function attachConfig({BaseClass,commands,createCommand,createModuleCommand,createFunctionCommand,createScriptCommand,config:config2}){let RESP=config2?.RESP??2,Class4=class extends BaseClass{};for(let[name,command]of Object.entries(commands))if(config2?.RESP==3&&command.unstableResp3&&!config2.unstableResp3)Class4.prototype[name]=throwResp3SearchModuleUnstableError;else Class4.prototype[name]=createCommand(command,RESP);if(config2?.modules)for(let[moduleName,module2]of Object.entries(config2.modules)){let fns=Object.create(null);for(let[name,command]of Object.entries(module2))if(config2.RESP==3&&command.unstableResp3&&!config2.unstableResp3)fns[name]=throwResp3SearchModuleUnstableError;else fns[name]=createModuleCommand(command,RESP);attachNamespace(Class4.prototype,moduleName,fns)}if(config2?.functions)for(let[library,commands2]of Object.entries(config2.functions)){let fns=Object.create(null);for(let[name,command]of Object.entries(commands2))fns[name]=createFunctionCommand(name,command,RESP);attachNamespace(Class4.prototype,library,fns)}if(config2?.scripts)for(let[name,script]of Object.entries(config2.scripts))Class4.prototype[name]=createScriptCommand(script,RESP);return Class4}exports.attachConfig=attachConfig;function attachNamespace(prototype,name,fns){Object.defineProperty(prototype,name,{get(){let value=Object.create(fns);return value._self=this,Object.defineProperty(this,name,{value}),value}})}function getTransformReply(command,resp){switch(typeof command.transformReply){case"function":return command.transformReply;case"object":return command.transformReply[resp]}}exports.getTransformReply=getTransformReply;function functionArgumentsPrefix(name,fn2){let prefix=[fn2.IS_READ_ONLY?"FCALL_RO":"FCALL",name];if(fn2.NUMBER_OF_KEYS!==void 0)prefix.push(fn2.NUMBER_OF_KEYS.toString());return prefix}exports.functionArgumentsPrefix=functionArgumentsPrefix;function scriptArgumentsPrefix(script){let prefix=[script.IS_READ_ONLY?"EVALSHA_RO":"EVALSHA",script.SHA1];if(script.NUMBER_OF_KEYS!==void 0)prefix.push(script.NUMBER_OF_KEYS.toString());return prefix}exports.scriptArgumentsPrefix=scriptArgumentsPrefix}),require_multi_command=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var errors_1=require_errors();class RedisMultiCommand{typeMapping;constructor(typeMapping){this.typeMapping=typeMapping}queue=[];scriptsInUse=new Set;addCommand(args2,transformReply){this.queue.push({args:args2,transformReply})}addScript(script,args2,transformReply){let redisArgs=[];if(redisArgs.preserve=args2.preserve,this.scriptsInUse.has(script.SHA1))redisArgs.push("EVALSHA",script.SHA1);else this.scriptsInUse.add(script.SHA1),redisArgs.push("EVAL",script.SCRIPT);if(script.NUMBER_OF_KEYS!==void 0)redisArgs.push(script.NUMBER_OF_KEYS.toString());redisArgs.push(...args2),this.addCommand(redisArgs,transformReply)}transformReplies(rawReplies){let errorIndexes=[],replies=rawReplies.map((reply,i)=>{if(reply instanceof errors_1.ErrorReply)return errorIndexes.push(i),reply;let{transformReply,args:args2}=this.queue[i];return transformReply?transformReply(reply,args2.preserve,this.typeMapping):reply});if(errorIndexes.length)throw new errors_1.MultiErrorReply(replies,errorIndexes);return replies}}exports.default=RedisMultiCommand}),require_multi_command2=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands()),multi_command_1=__importDefault(require_multi_command()),commander_1=require_commander(),parser_1=require_parser();class RedisClientMultiCommand{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this.addCommand(redisArgs,transformReply)}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this._self.addCommand(redisArgs,transformReply)}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;parser.push(...prefix),fn2.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this._self.addCommand(redisArgs,transformReply)}}static#createScriptCommand(script,resp){let transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this.#addScript(script,redisArgs,transformReply)}}static extend(config2){return(0,commander_1.attachConfig)({BaseClass:RedisClientMultiCommand,commands:commands_1.default,createCommand:RedisClientMultiCommand.#createCommand,createModuleCommand:RedisClientMultiCommand.#createModuleCommand,createFunctionCommand:RedisClientMultiCommand.#createFunctionCommand,createScriptCommand:RedisClientMultiCommand.#createScriptCommand,config:config2})}#multi;#executeMulti;#executePipeline;#selectedDB;constructor(executeMulti,executePipeline,typeMapping){this.#multi=new multi_command_1.default(typeMapping),this.#executeMulti=executeMulti,this.#executePipeline=executePipeline}SELECT(db,transformReply){return this.#selectedDB=db,this.#multi.addCommand(["SELECT",db.toString()],transformReply),this}select=this.SELECT;addCommand(args2,transformReply){return this.#multi.addCommand(args2,transformReply),this}#addScript(script,args2,transformReply){return this.#multi.addScript(script,args2,transformReply),this}async exec(execAsPipeline=!1){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#executeMulti(this.#multi.queue,this.#selectedDB))}EXEC=this.exec;execTyped(execAsPipeline=!1){return this.exec(execAsPipeline)}async execAsPipeline(){if(this.#multi.queue.length===0)return[];return this.#multi.transformReplies(await this.#executePipeline(this.#multi.queue,this.#selectedDB))}execAsPipelineTyped(){return this.execAsPipeline()}}exports.default=RedisClientMultiCommand}),require_legacy_mode=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RedisLegacyClient=void 0;var commander_1=require_commander(),commands_1=__importDefault(require_commands()),multi_command_1=__importDefault(require_multi_command());class RedisLegacyClient{static#transformArguments(redisArgs,args2){let callback;if(typeof args2[args2.length-1]==="function")callback=args2.pop();return RedisLegacyClient.pushArguments(redisArgs,args2),callback}static pushArguments(redisArgs,args2){for(let i=0;i<args2.length;++i){let arg=args2[i];if(Array.isArray(arg))RedisLegacyClient.pushArguments(redisArgs,arg);else redisArgs.push(typeof arg==="number"||arg instanceof Date?arg.toString():arg)}}static getTransformReply(command,resp){return command.TRANSFORM_LEGACY_REPLY?(0,commander_1.getTransformReply)(command,resp):void 0}static#createCommand(name,command,resp){let transformReply=RedisLegacyClient.getTransformReply(command,resp);return function(...args2){let redisArgs=[name],callback=RedisLegacyClient.#transformArguments(redisArgs,args2),promise3=this.#client.sendCommand(redisArgs);if(!callback){promise3.catch((err)=>this.#client.emit("error",err));return}promise3.then((reply)=>callback(null,transformReply?transformReply(reply):reply)).catch((err)=>callback(err))}}#client;#Multi;constructor(client){this.#client=client;let RESP=client.options?.RESP??2;for(let[name,command]of Object.entries(commands_1.default))this[name]=RedisLegacyClient.#createCommand(name,command,RESP);this.#Multi=LegacyMultiCommand.factory(RESP)}sendCommand(...args2){let redisArgs=[],callback=RedisLegacyClient.#transformArguments(redisArgs,args2),promise3=this.#client.sendCommand(redisArgs);if(!callback){promise3.catch((err)=>this.#client.emit("error",err));return}promise3.then((reply)=>callback(null,reply)).catch((err)=>callback(err))}multi(){return this.#Multi(this.#client)}}exports.RedisLegacyClient=RedisLegacyClient;class LegacyMultiCommand{static#createCommand(name,command,resp){let transformReply=RedisLegacyClient.getTransformReply(command,resp);return function(...args2){let redisArgs=[name];return RedisLegacyClient.pushArguments(redisArgs,args2),this.#multi.addCommand(redisArgs,transformReply),this}}static factory(resp){let Multi=class extends LegacyMultiCommand{};for(let[name,command]of Object.entries(commands_1.default))Multi.prototype[name]=LegacyMultiCommand.#createCommand(name,command,resp);return(client)=>{return new Multi(client)}}#multi=new multi_command_1.default;#client;constructor(client){this.#client=client}sendCommand(...args2){let redisArgs=[];return RedisLegacyClient.pushArguments(redisArgs,args2),this.#multi.addCommand(redisArgs),this}exec(cb){let promise3=this.#client._executeMulti(this.#multi.queue);if(!cb){promise3.catch((err)=>this.#client.emit("error",err));return}promise3.then((results)=>cb(null,this.#multi.transformReplies(results))).catch((err)=>cb?.(err))}}}),require_cache=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.PooledNoRedirectClientSideCache=exports.BasicPooledClientSideCache=exports.PooledClientSideCacheProvider=exports.BasicClientSideCache=exports.ClientSideCacheProvider=exports.CacheStats=void 0;var stream_1=__require2("stream");class CacheStats{hitCount;missCount;loadSuccessCount;loadFailureCount;totalLoadTime;evictionCount;constructor(hitCount,missCount,loadSuccessCount,loadFailureCount,totalLoadTime,evictionCount){if(this.hitCount=hitCount,this.missCount=missCount,this.loadSuccessCount=loadSuccessCount,this.loadFailureCount=loadFailureCount,this.totalLoadTime=totalLoadTime,this.evictionCount=evictionCount,hitCount<0||missCount<0||loadSuccessCount<0||loadFailureCount<0||totalLoadTime<0||evictionCount<0)throw Error("All statistics values must be non-negative")}static of(hitCount=0,missCount=0,loadSuccessCount=0,loadFailureCount=0,totalLoadTime=0,evictionCount=0){return new CacheStats(hitCount,missCount,loadSuccessCount,loadFailureCount,totalLoadTime,evictionCount)}static empty(){return CacheStats.EMPTY_STATS}static EMPTY_STATS=new CacheStats(0,0,0,0,0,0);requestCount(){return this.hitCount+this.missCount}hitRate(){let requestCount=this.requestCount();return requestCount===0?1:this.hitCount/requestCount}missRate(){let requestCount=this.requestCount();return requestCount===0?0:this.missCount/requestCount}loadCount(){return this.loadSuccessCount+this.loadFailureCount}loadFailureRate(){let loadCount=this.loadCount();return loadCount===0?0:this.loadFailureCount/loadCount}averageLoadPenalty(){let loadCount=this.loadCount();return loadCount===0?0:this.totalLoadTime/loadCount}minus(other){return CacheStats.of(Math.max(0,this.hitCount-other.hitCount),Math.max(0,this.missCount-other.missCount),Math.max(0,this.loadSuccessCount-other.loadSuccessCount),Math.max(0,this.loadFailureCount-other.loadFailureCount),Math.max(0,this.totalLoadTime-other.totalLoadTime),Math.max(0,this.evictionCount-other.evictionCount))}plus(other){return CacheStats.of(this.hitCount+other.hitCount,this.missCount+other.missCount,this.loadSuccessCount+other.loadSuccessCount,this.loadFailureCount+other.loadFailureCount,this.totalLoadTime+other.totalLoadTime,this.evictionCount+other.evictionCount)}}exports.CacheStats=CacheStats;class DisabledStatsCounter{static INSTANCE=new DisabledStatsCounter;constructor(){}recordHits(count32){}recordMisses(count32){}recordLoadSuccess(loadTime){}recordLoadFailure(loadTime){}recordEvictions(count32){}snapshot(){return CacheStats.empty()}}function disabledStatsCounter(){return DisabledStatsCounter.INSTANCE}class DefaultStatsCounter{#hitCount=0;#missCount=0;#loadSuccessCount=0;#loadFailureCount=0;#totalLoadTime=0;#evictionCount=0;recordHits(count32){this.#hitCount+=count32}recordMisses(count32){this.#missCount+=count32}recordLoadSuccess(loadTime){this.#loadSuccessCount++,this.#totalLoadTime+=loadTime}recordLoadFailure(loadTime){this.#loadFailureCount++,this.#totalLoadTime+=loadTime}recordEvictions(count32){this.#evictionCount+=count32}snapshot(){return CacheStats.of(this.#hitCount,this.#missCount,this.#loadSuccessCount,this.#loadFailureCount,this.#totalLoadTime,this.#evictionCount)}static create(){return new DefaultStatsCounter}}function generateCacheKey(redisArgs){let tmp=Array(redisArgs.length*2);for(let i=0;i<redisArgs.length;i++)tmp[i]=redisArgs[i].length,tmp[i+redisArgs.length]=redisArgs[i];return tmp.join("_")}class ClientSideCacheEntryBase{#invalidated=!1;#expireTime;constructor(ttl){if(ttl==0)this.#expireTime=0;else this.#expireTime=Date.now()+ttl}invalidate(){this.#invalidated=!0}validate(){return!this.#invalidated&&(this.#expireTime==0||Date.now()<this.#expireTime)}}class ClientSideCacheEntryValue extends ClientSideCacheEntryBase{#value;get value(){return this.#value}constructor(ttl,value){super(ttl);this.#value=value}}class ClientSideCacheEntryPromise extends ClientSideCacheEntryBase{#sendCommandPromise;get promise(){return this.#sendCommandPromise}constructor(ttl,sendCommandPromise){super(ttl);this.#sendCommandPromise=sendCommandPromise}}class ClientSideCacheProvider extends stream_1.EventEmitter{}exports.ClientSideCacheProvider=ClientSideCacheProvider;class BasicClientSideCache extends ClientSideCacheProvider{#cacheKeyToEntryMap;#keyToCacheKeySetMap;ttl;maxEntries;lru;#statsCounter;recordEvictions(count32){this.#statsCounter.recordEvictions(count32)}recordHits(count32){this.#statsCounter.recordHits(count32)}recordMisses(count32){this.#statsCounter.recordMisses(count32)}constructor(config2){super();this.#cacheKeyToEntryMap=new Map,this.#keyToCacheKeySetMap=new Map,this.ttl=config2?.ttl??0,this.maxEntries=config2?.maxEntries??0,this.lru=config2?.evictPolicy!=="FIFO";let recordStats=config2?.recordStats!==!1;this.#statsCounter=recordStats?DefaultStatsCounter.create():disabledStatsCounter()}async handleCache(client,parser,fn2,transformReply,typeMapping){let reply,cacheKey=generateCacheKey(parser.redisArgs),cacheEntry=this.get(cacheKey);if(cacheEntry)if(cacheEntry instanceof ClientSideCacheEntryValue)return this.#statsCounter.recordHits(1),structuredClone(cacheEntry.value);else if(cacheEntry instanceof ClientSideCacheEntryPromise)this.#statsCounter.recordMisses(1),reply=await cacheEntry.promise;else throw Error("unknown cache entry type");else{this.#statsCounter.recordMisses(1);let startTime=performance.now(),promise3=fn2();cacheEntry=this.createPromiseEntry(client,promise3),this.set(cacheKey,cacheEntry,parser.keys);try{reply=await promise3;let loadTime=performance.now()-startTime;this.#statsCounter.recordLoadSuccess(loadTime)}catch(err){let loadTime=performance.now()-startTime;if(this.#statsCounter.recordLoadFailure(loadTime),cacheEntry.validate())this.delete(cacheKey);throw err}}let val;if(transformReply)val=transformReply(reply,parser.preserve,typeMapping);else val=reply;if(cacheEntry.validate())cacheEntry=this.createValueEntry(client,val),this.set(cacheKey,cacheEntry,parser.keys),this.emit("cached-key",cacheKey);return structuredClone(val)}trackingOn(){return["CLIENT","TRACKING","ON"]}invalidate(key){if(key===null){this.clear(!1),this.emit("invalidate",key);return}let keySet=this.#keyToCacheKeySetMap.get(key.toString());if(keySet){for(let cacheKey of keySet){let entry=this.#cacheKeyToEntryMap.get(cacheKey);if(entry)entry.invalidate();this.#cacheKeyToEntryMap.delete(cacheKey)}this.#keyToCacheKeySetMap.delete(key.toString())}this.emit("invalidate",key)}clear(resetStats=!0){let oldSize=this.#cacheKeyToEntryMap.size;if(this.#cacheKeyToEntryMap.clear(),this.#keyToCacheKeySetMap.clear(),resetStats){if(!(this.#statsCounter instanceof DisabledStatsCounter))this.#statsCounter=DefaultStatsCounter.create()}else if(oldSize>0)this.#statsCounter.recordEvictions(oldSize)}get(cacheKey){let val=this.#cacheKeyToEntryMap.get(cacheKey);if(val&&!val.validate()){this.delete(cacheKey),this.#statsCounter.recordEvictions(1),this.emit("cache-evict",cacheKey);return}if(val!==void 0&&this.lru)this.#cacheKeyToEntryMap.delete(cacheKey),this.#cacheKeyToEntryMap.set(cacheKey,val);return val}delete(cacheKey){let entry=this.#cacheKeyToEntryMap.get(cacheKey);if(entry)entry.invalidate(),this.#cacheKeyToEntryMap.delete(cacheKey)}has(cacheKey){return this.#cacheKeyToEntryMap.has(cacheKey)}set(cacheKey,cacheEntry,keys3){let count32=this.#cacheKeyToEntryMap.size,oldEntry=this.#cacheKeyToEntryMap.get(cacheKey);if(oldEntry)count32--,oldEntry.invalidate();if(this.maxEntries>0&&count32>=this.maxEntries)this.deleteOldest(),this.#statsCounter.recordEvictions(1);this.#cacheKeyToEntryMap.set(cacheKey,cacheEntry);for(let key of keys3){if(!this.#keyToCacheKeySetMap.has(key.toString()))this.#keyToCacheKeySetMap.set(key.toString(),new Set);this.#keyToCacheKeySetMap.get(key.toString()).add(cacheKey)}}size(){return this.#cacheKeyToEntryMap.size}createValueEntry(client,value){return new ClientSideCacheEntryValue(this.ttl,value)}createPromiseEntry(client,sendCommandPromise){return new ClientSideCacheEntryPromise(this.ttl,sendCommandPromise)}stats(){return this.#statsCounter.snapshot()}onError(){this.clear()}onClose(){this.clear()}deleteOldest(){let n=this.#cacheKeyToEntryMap[Symbol.iterator]().next();if(!n.done){let key=n.value[0],entry=this.#cacheKeyToEntryMap.get(key);if(entry)entry.invalidate();this.#cacheKeyToEntryMap.delete(key)}}entryEntries(){return this.#cacheKeyToEntryMap.entries()}keySetEntries(){return this.#keyToCacheKeySetMap.entries()}}exports.BasicClientSideCache=BasicClientSideCache;class PooledClientSideCacheProvider extends BasicClientSideCache{#disabled=!1;disable(){this.#disabled=!0}enable(){this.#disabled=!1}get(cacheKey){if(this.#disabled)return;return super.get(cacheKey)}has(cacheKey){if(this.#disabled)return!1;return super.has(cacheKey)}onPoolClose(){this.clear()}}exports.PooledClientSideCacheProvider=PooledClientSideCacheProvider;class BasicPooledClientSideCache extends PooledClientSideCacheProvider{onError(){this.clear(!1)}onClose(){this.clear(!1)}}exports.BasicPooledClientSideCache=BasicPooledClientSideCache;class PooledClientSideCacheEntryValue extends ClientSideCacheEntryValue{#creator;constructor(ttl,creator,value){super(ttl,value);this.#creator=creator}validate(){let ret=super.validate();if(this.#creator)ret=ret&&this.#creator.client.isReady&&this.#creator.client.socketEpoch==this.#creator.epoch;return ret}}class PooledClientSideCacheEntryPromise extends ClientSideCacheEntryPromise{#creator;constructor(ttl,creator,sendCommandPromise){super(ttl,sendCommandPromise);this.#creator=creator}validate(){return super.validate()&&this.#creator.client.isReady&&this.#creator.client.socketEpoch==this.#creator.epoch}}class PooledNoRedirectClientSideCache extends BasicPooledClientSideCache{createValueEntry(client,value){let creator={epoch:client.socketEpoch,client};return new PooledClientSideCacheEntryValue(this.ttl,creator,value)}createPromiseEntry(client,sendCommandPromise){let creator={epoch:client.socketEpoch,client};return new PooledClientSideCacheEntryPromise(this.ttl,creator,sendCommandPromise)}onError(){}onClose(){}}exports.PooledNoRedirectClientSideCache=PooledNoRedirectClientSideCache}),require_single_entry_cache=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});class SingleEntryCache{#cached;#serializedKey;get(keyObj){return JSON.stringify(keyObj,makeCircularReplacer())===this.#serializedKey?this.#cached:void 0}set(keyObj,obj){this.#cached=obj,this.#serializedKey=JSON.stringify(keyObj,makeCircularReplacer())}}exports.default=SingleEntryCache;function makeCircularReplacer(){let seen=new WeakSet;return function(_,value){if(value&&typeof value==="object"){if(seen.has(value))return"circular";return seen.add(value),value}return value}}}),require_pool=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RedisClientPool=void 0;var commands_1=__importDefault(require_commands()),_1=__importDefault(require_client()),node_events_1=__require2("node:events"),linked_list_1=require_linked_list(),errors_1=require_errors(),commander_1=require_commander(),multi_command_1=__importDefault(require_multi_command2()),cache_1=require_cache(),parser_1=require_parser(),single_entry_cache_1=__importDefault(require_single_entry_cache());class RedisClientPool extends node_events_1.EventEmitter{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this.execute((client)=>client._executeCommand(command,parser,this._commandOptions,transformReply))}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self.execute((client)=>client._executeCommand(command,parser,this._self._commandOptions,transformReply))}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self.execute((client)=>client._executeCommand(fn2,parser,this._self._commandOptions,transformReply))}}static#createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.pushVariadic(prefix),script.parseCommand(parser,...args2),this.execute((client)=>client._executeScript(script,parser,this._commandOptions,transformReply))}}static#SingleEntryCache=new single_entry_cache_1.default;static create(clientOptions,options){let Pool=RedisClientPool.#SingleEntryCache.get(clientOptions);if(!Pool)Pool=(0,commander_1.attachConfig)({BaseClass:RedisClientPool,commands:commands_1.default,createCommand:RedisClientPool.#createCommand,createModuleCommand:RedisClientPool.#createModuleCommand,createFunctionCommand:RedisClientPool.#createFunctionCommand,createScriptCommand:RedisClientPool.#createScriptCommand,config:clientOptions}),Pool.prototype.Multi=multi_command_1.default.extend(clientOptions),RedisClientPool.#SingleEntryCache.set(clientOptions,Pool);return Object.create(new Pool(clientOptions,options))}static#DEFAULTS={minimum:1,maximum:100,acquireTimeout:3000,cleanupDelay:3000};#clientFactory;#options;#idleClients=new linked_list_1.SinglyLinkedList;get idleClients(){return this._self.#idleClients.length}#clientsInUse=new linked_list_1.DoublyLinkedList;get clientsInUse(){return this._self.#clientsInUse.length}get totalClients(){return this._self.#idleClients.length+this._self.#clientsInUse.length}#tasksQueue=new linked_list_1.SinglyLinkedList;get tasksQueueLength(){return this._self.#tasksQueue.length}#isOpen=!1;get isOpen(){return this._self.#isOpen}#isClosing=!1;get isClosing(){return this._self.#isClosing}#clientSideCache;get clientSideCache(){return this._self.#clientSideCache}constructor(clientOptions,options){super();if(this.#options={...RedisClientPool.#DEFAULTS,...options},options?.clientSideCache){if(clientOptions===void 0)clientOptions={};if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider)this.#clientSideCache=clientOptions.clientSideCache=options.clientSideCache;else{let cscConfig=options.clientSideCache;this.#clientSideCache=clientOptions.clientSideCache=new cache_1.BasicPooledClientSideCache(cscConfig)}}this.#clientFactory=_1.default.factory(clientOptions).bind(void 0,clientOptions)}_self=this;_commandOptions;withCommandOptions(options){let proxy=Object.create(this._self);return proxy._commandOptions=options,proxy}#commandOptionsProxy(key,value){let proxy=Object.create(this._self);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._self.#commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._self.#commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._self.#commandOptionsProxy("asap",!0)}async connect(){if(this._self.#isOpen)return;this._self.#isOpen=!0;let promises=[];while(promises.length<this._self.#options.minimum)promises.push(this._self.#create());try{await Promise.all(promises)}catch(err){throw this.destroy(),err}return this}async#create(){let node=this._self.#clientsInUse.push(this._self.#clientFactory().on("error",(err)=>this.emit("error",err)));try{await node.value.connect()}catch(err){throw this._self.#clientsInUse.remove(node),err}this._self.#returnClient(node)}execute(fn2){return new Promise((resolve,reject)=>{let client=this._self.#idleClients.shift(),{tail:tail2}=this._self.#tasksQueue;if(!client){let timeout5;if(this._self.#options.acquireTimeout>0)timeout5=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail2),reject(new errors_1.TimeoutError("Timeout waiting for a client"))},this._self.#options.acquireTimeout);let task=this._self.#tasksQueue.push({timeout:timeout5,resolve,reject,fn:fn2});if(this.totalClients<this._self.#options.maximum)this._self.#create();return}let node=this._self.#clientsInUse.push(client);this._self.#executeTask(node,resolve,reject,fn2)})}#executeTask(node,resolve,reject,fn2){let result=fn2(node.value);if(result instanceof Promise)result.then(resolve,reject).finally(()=>this.#returnClient(node));else resolve(result),this.#returnClient(node)}#returnClient(node){let task=this.#tasksQueue.shift();if(task){clearTimeout(task.timeout),this.#executeTask(node,task.resolve,task.reject,task.fn);return}this.#clientsInUse.remove(node),this.#idleClients.push(node.value),this.#scheduleCleanup()}cleanupTimeout;#scheduleCleanup(){if(this.totalClients<=this.#options.minimum)return;clearTimeout(this.cleanupTimeout),this.cleanupTimeout=setTimeout(()=>this.#cleanup(),this.#options.cleanupDelay)}#cleanup(){let toDestroy=Math.min(this.#idleClients.length,this.totalClients-this.#options.minimum);for(let i=0;i<toDestroy;i++)this.#idleClients.shift().destroy()}sendCommand(args2,options){return this.execute((client)=>client.sendCommand(args2,options))}MULTI(){return new this.Multi((commands,selectedDB)=>this.execute((client)=>client._executeMulti(commands,selectedDB)),(commands)=>this.execute((client)=>client._executePipeline(commands)),this._commandOptions?.typeMapping)}multi=this.MULTI;async close(){if(this._self.#isClosing)return;if(!this._self.#isOpen)return;this._self.#isClosing=!0;try{let promises=[];for(let client of this._self.#idleClients)promises.push(client.close());for(let client of this._self.#clientsInUse)promises.push(client.close());await Promise.all(promises),this.#clientSideCache?.onPoolClose(),this._self.#idleClients.reset(),this._self.#clientsInUse.reset()}catch(err){}finally{this._self.#isClosing=!1}}destroy(){for(let client of this._self.#idleClients)client.destroy();this._self.#idleClients.reset();for(let client of this._self.#clientsInUse)client.destroy();this._self.#clientSideCache?.onPoolClose(),this._self.#clientsInUse.reset(),this._self.#isOpen=!1}}exports.RedisClientPool=RedisClientPool}),require_package=__commonJS((exports,module)=>{module.exports={name:"@redis/client",version:"5.10.0",license:"MIT",main:"./dist/index.js",types:"./dist/index.d.ts",files:["dist/","!dist/tsconfig.tsbuildinfo"],scripts:{test:"nyc -r text-summary -r lcov mocha -r tsx './lib/**/*.spec.ts'",release:"release-it"},dependencies:{"cluster-key-slot":"1.1.2"},devDependencies:{"@redis/test-utils":"*","@types/sinon":"^17.0.3",sinon:"^17.0.1"},engines:{node:">= 18"},repository:{type:"git",url:"git://github.com/redis/node-redis.git"},bugs:{url:"https://github.com/redis/node-redis/issues"},homepage:"https://github.com/redis/node-redis/tree/master/packages/client",keywords:["redis"]}}),require_client=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}},_a;Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands()),socket_1=__importDefault(require_socket()),authx_1=require_authx(),commands_queue_1=__importDefault(require_commands_queue()),node_events_1=__require2("node:events"),commander_1=require_commander(),errors_1=require_errors(),node_url_1=__require2("node:url"),pub_sub_1=require_pub_sub(),multi_command_1=__importDefault(require_multi_command2()),HELLO_1=__importDefault(require_HELLO()),legacy_mode_1=require_legacy_mode(),pool_1=require_pool(),generic_transformers_1=require_generic_transformers(),cache_1=require_cache(),parser_1=require_parser(),single_entry_cache_1=__importDefault(require_single_entry_cache()),package_json_1=require_package(),enterprise_maintenance_manager_1=__importDefault(require_enterprise_maintenance_manager());class RedisClient extends node_events_1.EventEmitter{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._commandOptions,transformReply)}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._self._commandOptions,transformReply)}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self._executeCommand(fn2,parser,this._self._commandOptions,transformReply)}}static#createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),script.parseCommand(parser,...args2),this._executeScript(script,parser,this._commandOptions,transformReply)}}static#SingleEntryCache=new single_entry_cache_1.default;static factory(config2){let Client=_a.#SingleEntryCache.get(config2);if(!Client)Client=(0,commander_1.attachConfig)({BaseClass:_a,commands:commands_1.default,createCommand:_a.#createCommand,createModuleCommand:_a.#createModuleCommand,createFunctionCommand:_a.#createFunctionCommand,createScriptCommand:_a.#createScriptCommand,config:config2}),Client.prototype.Multi=multi_command_1.default.extend(config2),_a.#SingleEntryCache.set(config2,Client);return(options)=>{return Object.create(new Client(options))}}static create(options){return _a.factory(options)(options)}static parseOptions(options){if(options?.url){let parsed=_a.parseURL(options.url);if(options.socket){if(options.socket.tls!==void 0&&options.socket.tls!==parsed.socket.tls)throw TypeError(`tls socket option is set to ${options.socket.tls} which is mismatch with protocol or the URL ${options.url} passed`);parsed.socket=Object.assign(options.socket,parsed.socket)}Object.assign(options,parsed)}return options}static parseURL(url3){let{hostname,port:port3,protocol,username,password,pathname}=new node_url_1.URL(url3),parsed={socket:{host:hostname,tls:!1}};if(protocol!=="redis:"&&protocol!=="rediss:")throw TypeError("Invalid protocol");if(parsed.socket.tls=protocol==="rediss:",port3)parsed.socket.port=Number(port3);if(username)parsed.username=decodeURIComponent(username);if(password)parsed.password=decodeURIComponent(password);if(username||password)parsed.credentialsProvider={type:"async-credentials-provider",credentials:async()=>({username:username?decodeURIComponent(username):void 0,password:password?decodeURIComponent(password):void 0})};if(pathname.length>1){let database=Number(pathname.substring(1));if(isNaN(database))throw TypeError("Invalid pathname");parsed.database=database}return parsed}#options;#socket;#queue;#selectedDB=0;#monitorCallback;_self=this;_commandOptions;#dirtyWatch;#watchEpoch;#clientSideCache;#credentialsSubscription=null;#paused=!1;get clientSideCache(){return this._self.#clientSideCache}get options(){return this._self.#options}get isOpen(){return this._self.#socket.isOpen}get isReady(){return this._self.#socket.isReady}get isPubSubActive(){return this._self.#queue.isPubSubActive}get socketEpoch(){return this._self.#socket.socketEpoch}get isWatching(){return this._self.#watchEpoch!==void 0}get isDirtyWatch(){return this._self.#dirtyWatch!==void 0}setDirtyWatch(msg){this._self.#dirtyWatch=msg}constructor(options){super();if(this.#validateOptions(options),this.#options=this.#initiateOptions(options),this.#queue=this.#initiateQueue(),this.#socket=this.#initiateSocket(),this.#options.maintNotifications!=="disabled")new enterprise_maintenance_manager_1.default(this.#queue,this,this.#options);if(this.#options.clientSideCache){if(this.#options.clientSideCache instanceof cache_1.ClientSideCacheProvider)this.#clientSideCache=this.#options.clientSideCache;else{let cscConfig=this.#options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.#clientSideCache?.invalidate(key);else this.#clientSideCache?.invalidate(null);return!0})}else if(options?.emitInvalidate)this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.emit("invalidate",key);else this.emit("invalidate",null);return!0})}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching is only supported with RESP3");if(options?.emitInvalidate&&options?.RESP!==3)throw Error("emitInvalidate is only supported with RESP3");if(options?.clientSideCache&&options?.emitInvalidate)throw Error("emitInvalidate is not supported (or necessary) when clientSideCache is enabled");if(options?.maintNotifications&&options?.maintNotifications!=="disabled"&&options?.RESP!==3)throw Error("Graceful Maintenance is only supported with RESP3")}#initiateOptions(options={}){if(!options.credentialsProvider&&(options.username||options.password))options.credentialsProvider={type:"async-credentials-provider",credentials:async()=>({username:options.username,password:options.password})};if(options.database)this._self.#selectedDB=options.database;if(options.commandOptions)this._commandOptions=options.commandOptions;if(options.maintNotifications!=="disabled")enterprise_maintenance_manager_1.default.setupDefaultMaintOptions(options);if(options.url){let parsedOptions=_a.parseOptions(options);if(parsedOptions?.database)this._self.#selectedDB=parsedOptions.database;return parsedOptions}return options}#initiateQueue(){return new commands_queue_1.default(this.#options.RESP??2,this.#options.commandsQueueMaxLength,(channel,listeners)=>this.emit("sharded-channel-moved",channel,listeners))}reAuthenticate=async(credentials)=>{if(!(this.isPubSubActive&&!this.#options.RESP))await this.sendCommand((0,generic_transformers_1.parseArgs)(commands_1.default.AUTH,{username:credentials.username,password:credentials.password??""}))};#subscribeForStreamingCredentials(cp){return cp.subscribe({onNext:(credentials)=>{this.reAuthenticate(credentials).catch((error3)=>{let errorMessage=error3 instanceof Error?error3.message:String(error3);cp.onReAuthenticationError(new authx_1.CredentialsError(errorMessage))})},onError:(e)=>{let errorMessage=`Error from streaming credentials provider: ${e.message}`;cp.onReAuthenticationError(new authx_1.UnableToObtainNewCredentialsError(errorMessage))}})}async#handshake(chainId,asap){let promises=[],commandsWithErrorHandlers=await this.#getHandshakeCommands();if(asap)commandsWithErrorHandlers.reverse();for(let{cmd,errorHandler}of commandsWithErrorHandlers)promises.push(this.#queue.addCommand(cmd,{chainId,asap}).catch(errorHandler));return promises}async#getHandshakeCommands(){let commands=[],cp=this.#options.credentialsProvider;if(this.#options.RESP){let hello={};if(cp&&cp.type==="async-credentials-provider"){let credentials=await cp.credentials();if(credentials.password)hello.AUTH={username:credentials.username??"default",password:credentials.password}}if(cp&&cp.type==="streaming-credentials-provider"){let[credentials,disposable]=await this.#subscribeForStreamingCredentials(cp);if(this.#credentialsSubscription=disposable,credentials.password)hello.AUTH={username:credentials.username??"default",password:credentials.password}}if(this.#options.name)hello.SETNAME=this.#options.name;commands.push({cmd:(0,generic_transformers_1.parseArgs)(HELLO_1.default,this.#options.RESP,hello)})}else{if(cp&&cp.type==="async-credentials-provider"){let credentials=await cp.credentials();if(credentials.username||credentials.password)commands.push({cmd:(0,generic_transformers_1.parseArgs)(commands_1.default.AUTH,{username:credentials.username,password:credentials.password??""})})}if(cp&&cp.type==="streaming-credentials-provider"){let[credentials,disposable]=await this.#subscribeForStreamingCredentials(cp);if(this.#credentialsSubscription=disposable,credentials.username||credentials.password)commands.push({cmd:(0,generic_transformers_1.parseArgs)(commands_1.default.AUTH,{username:credentials.username,password:credentials.password??""})})}if(this.#options.name)commands.push({cmd:(0,generic_transformers_1.parseArgs)(commands_1.default.CLIENT_SETNAME,this.#options.name)})}if(this.#selectedDB!==0)commands.push({cmd:["SELECT",this.#selectedDB.toString()]});if(this.#options.readonly)commands.push({cmd:(0,generic_transformers_1.parseArgs)(commands_1.default.READONLY)});if(!this.#options.disableClientInfo)commands.push({cmd:["CLIENT","SETINFO","LIB-VER",package_json_1.version],errorHandler:()=>{}}),commands.push({cmd:["CLIENT","SETINFO","LIB-NAME",this.#options.clientInfoTag?`node-redis(${this.#options.clientInfoTag})`:"node-redis"],errorHandler:()=>{}});if(this.#clientSideCache)commands.push({cmd:this.#clientSideCache.trackingOn()});if(this.#options?.emitInvalidate)commands.push({cmd:["CLIENT","TRACKING","ON"]});let maintenanceHandshakeCmd=await enterprise_maintenance_manager_1.default.getHandshakeCommand(this.#options);if(maintenanceHandshakeCmd)commands.push(maintenanceHandshakeCmd);return commands}#attachListeners(socket){socket.on("data",(chunk32)=>{try{this.#queue.decoder.write(chunk32)}catch(err){this.#queue.resetDecoder(),this.emit("error",err)}}).on("error",(err)=>{if(this.emit("error",err),this.#clientSideCache?.onError(),this.#socket.isOpen&&!this.#options.disableOfflineQueue)this.#queue.flushWaitingForReply(err);else this.#queue.flushAll(err)}).on("connect",()=>this.emit("connect")).on("ready",()=>{this.emit("ready"),this.#setPingTimer(),this.#maybeScheduleWrite()}).on("reconnecting",()=>this.emit("reconnecting")).on("drain",()=>this.#maybeScheduleWrite()).on("end",()=>this.emit("end"))}#initiateSocket(){let socketInitiator=async()=>{let promises=[],chainId=Symbol("Socket Initiator"),resubscribePromise=this.#queue.resubscribe(chainId);if(resubscribePromise?.catch((error3)=>{if(error3.message&&error3.message.startsWith("MOVED"))this.emit("__MOVED",this._self.#queue.removeAllPubSubListeners())}),resubscribePromise)promises.push(resubscribePromise);if(this.#monitorCallback)promises.push(this.#queue.monitor(this.#monitorCallback,{typeMapping:this._commandOptions?.typeMapping,chainId,asap:!0}));if(promises.push(...await this.#handshake(chainId,!0)),promises.length)return this.#write(),Promise.all(promises)},socket=new socket_1.default(socketInitiator,this.#options.socket);return this.#attachListeners(socket),socket}#pingTimer;#setPingTimer(){if(!this.#options.pingInterval||!this.#socket.isReady)return;clearTimeout(this.#pingTimer),this.#pingTimer=setTimeout(()=>{if(!this.#socket.isReady)return;this.sendCommand(["PING"]).then((reply)=>this.emit("ping-interval",reply)).catch((err)=>this.emit("error",err)).finally(()=>this.#setPingTimer())},this.#options.pingInterval)}withCommandOptions(options){let proxy=Object.create(this._self);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this._self);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._commandOptionsProxy("asap",!0)}legacy(){return new legacy_mode_1.RedisLegacyClient(this)}createPool(options){return pool_1.RedisClientPool.create(this._self.#options,options)}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self.#options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self.#socket.connect(),this}_ejectSocket(){let socket=this._self.#socket;return this._self.#socket=null,socket.removeAllListeners(),socket}_insertSocket(socket){if(this._self.#socket)this._self._ejectSocket().destroy();this._self.#socket=socket,this._self.#attachListeners(this._self.#socket)}_maintenanceUpdate(update5){this._self.#socket.setMaintenanceTimeout(update5.relaxedSocketTimeout),this._self.#queue.setMaintenanceCommandTimeout(update5.relaxedCommandTimeout)}_pause(){this._self.#paused=!0}_unpause(){this._self.#paused=!1,this._self.#maybeScheduleWrite()}async _executeCommand(command,parser,commandOptions,transformReply){let csc=this._self.#clientSideCache,defaultTypeMapping=this._self.#options.commandOptions===commandOptions,fn2=()=>{return this.sendCommand(parser.redisArgs,commandOptions)};if(csc&&command.CACHEABLE&&defaultTypeMapping)return await csc.handleCache(this._self,parser,fn2,transformReply,commandOptions?.typeMapping);else{let reply=await fn2();if(transformReply)return transformReply(reply,parser.preserve,commandOptions?.typeMapping);return reply}}async _executeScript(script,parser,options,transformReply){let args2=parser.redisArgs,reply;try{reply=await this.sendCommand(args2,options)}catch(err){if(!err?.message?.startsWith?.("NOSCRIPT"))throw err;args2[0]="EVAL",args2[1]=script.SCRIPT,reply=await this.sendCommand(args2,options)}return transformReply?transformReply(reply,parser.preserve,options?.typeMapping):reply}sendCommand(args2,options){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);else if(!this._self.#socket.isReady&&this._self.#options.disableOfflineQueue)return Promise.reject(new errors_1.ClientOfflineError);let opts={...this._self._commandOptions,...options},promise3=this._self.#queue.addCommand(args2,opts);return this._self.#scheduleWrite(),promise3}async SELECT(db){await this.sendCommand(["SELECT",db.toString()]),this._self.#selectedDB=db}select=this.SELECT;#pubSubCommand(promise3){if(promise3===void 0)return Promise.resolve();return this.#scheduleWrite(),promise3}SUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}subscribe=this.SUBSCRIBE;UNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;PSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pSubscribe=this.PSUBSCRIBE;PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;SSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sUnsubscribe=this.SUNSUBSCRIBE;async WATCH(key){let reply=await this._self.sendCommand((0,generic_transformers_1.pushVariadicArguments)(["WATCH"],key));return this._self.#watchEpoch??=this._self.socketEpoch,reply}watch=this.WATCH;async UNWATCH(){let reply=await this._self.sendCommand(["UNWATCH"]);return this._self.#watchEpoch=void 0,reply}unwatch=this.UNWATCH;getPubSubListeners(type){return this._self.#queue.getPubSubListeners(type)}extendPubSubChannelListeners(type,channel,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubChannelListeners(type,channel,listeners))}extendPubSubListeners(type,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubListeners(type,listeners))}#write(){if(this.#paused)return;this.#socket.write(this.#queue.commandsToWrite())}#scheduledWrite;#scheduleWrite(){if(!this.#socket.isReady||this.#scheduledWrite)return;this.#scheduledWrite=setImmediate(()=>{this.#write(),this.#scheduledWrite=void 0})}#maybeScheduleWrite(){if(!this.#queue.isWaitingToWrite())return;this.#scheduleWrite()}async _executePipeline(commands,selectedDB){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);let chainId=Symbol("Pipeline Chain"),promise3=Promise.all(commands.map(({args:args2})=>this._self.#queue.addCommand(args2,{chainId,typeMapping:this._commandOptions?.typeMapping})));this._self.#scheduleWrite();let result=await promise3;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return result}async _executeMulti(commands,selectedDB){let dirtyWatch=this._self.#dirtyWatch;this._self.#dirtyWatch=void 0;let watchEpoch=this._self.#watchEpoch;if(this._self.#watchEpoch=void 0,!this._self.#socket.isOpen)throw new errors_1.ClientClosedError;if(dirtyWatch)throw new errors_1.WatchError(dirtyWatch);if(watchEpoch&&watchEpoch!==this._self.socketEpoch)throw new errors_1.WatchError("Client reconnected after WATCH");let typeMapping=this._commandOptions?.typeMapping,chainId=Symbol("MULTI Chain"),promises=[this._self.#queue.addCommand(["MULTI"],{chainId})];for(let{args:args2}of commands)promises.push(this._self.#queue.addCommand(args2,{chainId,typeMapping}));promises.push(this._self.#queue.addCommand(["EXEC"],{chainId})),this._self.#scheduleWrite();let results=await Promise.all(promises),execResult=results[results.length-1];if(execResult===null)throw new errors_1.WatchError;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return execResult}MULTI(){return new this.Multi(this._executeMulti.bind(this),this._executePipeline.bind(this),this._commandOptions?.typeMapping)}multi=this.MULTI;async*scanIterator(options){let cursor=options?.cursor??"0";do{let reply=await this.scan(cursor,options);cursor=reply.cursor,yield reply.keys}while(cursor!=="0")}async*hScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScan(key,cursor,options);cursor=reply.cursor,yield reply.entries}while(cursor!=="0")}async*hScanValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*hScanNoValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*sScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.sScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async*zScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.zScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async MONITOR(callback){let promise3=this._self.#queue.monitor(callback,{typeMapping:this._commandOptions?.typeMapping});this._self.#scheduleWrite(),await promise3,this._self.#monitorCallback=callback}monitor=this.MONITOR;async reset(){let chainId=Symbol("Reset Chain"),promises=[this._self.#queue.reset(chainId)],selectedDB=this._self.#options?.database??0;this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,promises.push(...await this._self.#handshake(chainId,!1)),this._self.#scheduleWrite(),await Promise.all(promises),this._self.#selectedDB=selectedDB,this._self.#monitorCallback=void 0,this._self.#dirtyWatch=void 0,this._self.#watchEpoch=void 0}resetIfDirty(){let shouldReset=!1;if(this._self.#selectedDB!==(this._self.#options?.database??0))console.warn("Returning a client with a different selected DB"),shouldReset=!0;if(this._self.#monitorCallback)console.warn("Returning a client with active MONITOR"),shouldReset=!0;if(this._self.#queue.isPubSubActive)console.warn("Returning a client with active PubSub"),shouldReset=!0;if(this._self.#dirtyWatch||this._self.#watchEpoch)console.warn("Returning a client with active WATCH"),shouldReset=!0;if(shouldReset)return this.reset()}QUIT(){return this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,this._self.#socket.quit(async()=>{clearTimeout(this._self.#pingTimer);let quitPromise=this._self.#queue.addCommand(["QUIT"]);return this._self.#scheduleWrite(),quitPromise})}quit=this.QUIT;disconnect(){return Promise.resolve(this.destroy())}close(){return new Promise((resolve)=>{if(clearTimeout(this._self.#pingTimer),this._self.#socket.close(),this._self.#clientSideCache?.onClose(),this._self.#queue.isEmpty())return this._self.#socket.destroySocket(),resolve();let maybeClose=()=>{if(!this._self.#queue.isEmpty())return;this._self.#socket.off("data",maybeClose),this._self.#socket.destroySocket(),resolve()};this._self.#socket.on("data",maybeClose),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null})}destroy(){clearTimeout(this._self.#pingTimer),this._self.#queue.flushAll(new errors_1.DisconnectsClientError),this._self.#socket.destroy(),this._self.#clientSideCache?.onClose(),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null}ref(){this._self.#socket.ref()}unref(){this._self.#socket.unref()}}_a=RedisClient,exports.default=RedisClient}),require_lib=__commonJS((exports,module)=>{var lookup=[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],toUTF8Array=function(str){var char,i=0,p=0,utf8=[],len=str.length;for(;i<len;i++)if(char=str.charCodeAt(i),char<128)utf8[p++]=char;else if(char<2048)utf8[p++]=char>>6|192,utf8[p++]=char&63|128;else if((char&64512)===55296&&i+1<str.length&&(str.charCodeAt(i+1)&64512)===56320)char=65536+((char&1023)<<10)+(str.charCodeAt(++i)&1023),utf8[p++]=char>>18|240,utf8[p++]=char>>12&63|128,utf8[p++]=char>>6&63|128,utf8[p++]=char&63|128;else utf8[p++]=char>>12|224,utf8[p++]=char>>6&63|128,utf8[p++]=char&63|128;return utf8},generate=module.exports=function(str){var char,i=0,start3=-1,result=0,resultHash=0,utf8=typeof str==="string"?toUTF8Array(str):str,len=utf8.length;while(i<len){if(char=utf8[i++],start3===-1){if(char===123)start3=i}else if(char!==125)resultHash=lookup[(char^resultHash>>8)&255]^resultHash<<8;else if(i-1!==start3)return resultHash&16383;result=lookup[(char^result>>8)&255]^result<<8}return result&16383};module.exports.generateMulti=function(keys3){var i=1,len=keys3.length,base=generate(keys3[0]);while(i<len)if(generate(keys3[i++])!==base)return-1;return base}}),require_cluster_slots=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}},_a;Object.defineProperty(exports,"__esModule",{value:!0});var errors_1=require_errors(),client_1=__importDefault(require_client()),pub_sub_1=require_pub_sub(),cluster_key_slot_1=__importDefault(require_lib()),cache_1=require_cache();class RedisClusterSlots{static#SLOTS=16384;#options;#clientFactory;#emit;slots=Array(_a.#SLOTS);masters=[];replicas=[];nodeByAddress=new Map;pubSubNode;clientSideCache;#isOpen=!1;get isOpen(){return this.#isOpen}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching is only supported with RESP3")}constructor(options,emit2){if(this.#validateOptions(options),this.#options=options,options?.clientSideCache)if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider)this.clientSideCache=options.clientSideCache;else this.clientSideCache=new cache_1.BasicPooledClientSideCache(options.clientSideCache);this.#clientFactory=client_1.default.factory(this.#options),this.#emit=emit2}async connect(){if(this.#isOpen)throw Error("Cluster already open");this.#isOpen=!0;try{await this.#discoverWithRootNodes(),this.#emit("connect")}catch(err){throw this.#isOpen=!1,err}}async#discoverWithRootNodes(){let start3=Math.floor(Math.random()*this.#options.rootNodes.length);for(let i=start3;i<this.#options.rootNodes.length;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}for(let i=0;i<start3;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}throw new errors_1.RootNodesUnavailableError}#resetSlots(){this.slots=Array(_a.#SLOTS),this.masters=[],this.replicas=[],this._randomNodeIterator=void 0}async#discover(rootNode){this.clientSideCache?.clear(),this.clientSideCache?.disable();try{let addressesInUse=new Set,promises=[],eagerConnect=this.#options.minimizeConnections!==!0,shards=await this.#getShards(rootNode);this.#resetSlots();for(let{from,to,master,replicas}of shards){let shard={master:this.#initiateSlotNode(master,!1,eagerConnect,addressesInUse,promises)};if(this.#options.useReplicas)shard.replicas=replicas.map((replica)=>this.#initiateSlotNode(replica,!0,eagerConnect,addressesInUse,promises));for(let i=from;i<=to;i++)this.slots[i]=shard}if(this.pubSubNode&&!addressesInUse.has(this.pubSubNode.address)){let channelsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS),patternsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS);if(this.pubSubNode.client.destroy(),channelsListeners.size||patternsListeners.size)promises.push(this.#initiatePubSubClient({[pub_sub_1.PUBSUB_TYPE.CHANNELS]:channelsListeners,[pub_sub_1.PUBSUB_TYPE.PATTERNS]:patternsListeners}))}for(let[address,node]of this.nodeByAddress.entries()){if(addressesInUse.has(address))continue;if(node.client)node.client.destroy();let{pubSub}=node;if(pubSub)pubSub.client.destroy();this.nodeByAddress.delete(address)}return await Promise.all(promises),this.clientSideCache?.enable(),!0}catch(err){return this.#emit("error",err),!1}}async#getShards(rootNode){let options=this.#clientOptionsDefaults(rootNode);options.socket??={},options.socket.reconnectStrategy=!1,options.RESP=this.#options.RESP,options.commandOptions=void 0;let client=await this.#clientFactory(options).on("error",(err)=>this.#emit("error",err)).connect();try{return await client.clusterSlots()}finally{client.destroy()}}#getNodeAddress(address){switch(typeof this.#options.nodeAddressMap){case"object":return this.#options.nodeAddressMap[address];case"function":return this.#options.nodeAddressMap(address)}}#clientOptionsDefaults(options){if(!this.#options.defaults)return options;let socket;if(this.#options.defaults.socket)socket={...this.#options.defaults.socket,...options?.socket};else socket=options?.socket;return{...this.#options.defaults,...options,socket}}#initiateSlotNode(shard,readonly,eagerConnent,addressesInUse,promises){let address=`${shard.host}:${shard.port}`,node=this.nodeByAddress.get(address);if(!node){if(node={...shard,address,readonly,client:void 0,connectPromise:void 0},eagerConnent)promises.push(this.#createNodeClient(node));this.nodeByAddress.set(address,node)}if(!addressesInUse.has(address))addressesInUse.add(address),(readonly?this.replicas:this.masters).push(node);return node}#createClient(node,readonly=node.readonly){let socket=this.#getNodeAddress(node.address)??{host:node.host,port:node.port},clientInfo=Object.freeze({host:socket.host,port:socket.port}),emit2=this.#emit,client=this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket,readonly})).on("error",(error3)=>emit2("node-error",error3,clientInfo)).on("reconnecting",()=>emit2("node-reconnecting",clientInfo)).once("ready",()=>emit2("node-ready",clientInfo)).once("connect",()=>emit2("node-connect",clientInfo)).once("end",()=>emit2("node-disconnect",clientInfo)).on("__MOVED",async(allPubSubListeners)=>{await this.rediscover(client),this.#emit("__resubscribeAllPubSubListeners",allPubSubListeners)});return client}#createNodeClient(node,readonly){let client=node.client=this.#createClient(node,readonly);return node.connectPromise=client.connect().finally(()=>node.connectPromise=void 0)}nodeClient(node){return node.connectPromise??node.client??this.#createNodeClient(node)}#runningRediscoverPromise;async rediscover(startWith){return this.#runningRediscoverPromise??=this.#rediscover(startWith).finally(()=>{this.#runningRediscoverPromise=void 0}),this.#runningRediscoverPromise}async#rediscover(startWith){if(await this.#discover(startWith.options))return;return this.#discoverWithRootNodes()}quit(){return this.#destroy((client)=>client.quit())}disconnect(){return this.#destroy((client)=>client.disconnect())}close(){return this.#destroy((client)=>client.close())}destroy(){this.#isOpen=!1;for(let client of this.#clients())client.destroy();if(this.pubSubNode)this.pubSubNode.client.destroy(),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),this.#emit("disconnect")}*#clients(){for(let master of this.masters){if(master.client)yield master.client;if(master.pubSub)yield master.pubSub.client}for(let replica of this.replicas)if(replica.client)yield replica.client}async#destroy(fn2){this.#isOpen=!1;let promises=[];for(let client of this.#clients())promises.push(fn2(client));if(this.pubSubNode)promises.push(fn2(this.pubSubNode.client)),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),await Promise.allSettled(promises),this.#emit("disconnect")}getClient(firstKey,isReadonly){if(!firstKey)return this.nodeClient(this.getRandomNode());let slotNumber=(0,cluster_key_slot_1.default)(firstKey);if(!isReadonly)return this.nodeClient(this.slots[slotNumber].master);return this.nodeClient(this.getSlotRandomNode(slotNumber))}*#iterateAllNodes(){if(this.masters.length+this.replicas.length===0)return;let i=Math.floor(Math.random()*(this.masters.length+this.replicas.length));if(i<this.masters.length){do yield this.masters[i];while(++i<this.masters.length);for(let replica of this.replicas)yield replica}else{i-=this.masters.length;do yield this.replicas[i];while(++i<this.replicas.length)}while(!0){for(let master of this.masters)yield master;for(let replica of this.replicas)yield replica}}_randomNodeIterator;getRandomNode(){return this._randomNodeIterator??=this.#iterateAllNodes(),this._randomNodeIterator.next().value}*#slotNodesIterator(slot){let i=Math.floor(Math.random()*(1+slot.replicas.length));if(i<slot.replicas.length)do yield slot.replicas[i];while(++i<slot.replicas.length);while(!0){yield slot.master;for(let replica of slot.replicas)yield replica}}getSlotRandomNode(slotNumber){let slot=this.slots[slotNumber];if(!slot.replicas?.length)return slot.master;return slot.nodesIterator??=this.#slotNodesIterator(slot),slot.nodesIterator.next().value}getMasterByAddress(address){let master=this.nodeByAddress.get(address);if(!master)return;return this.nodeClient(master)}getPubSubClient(){if(!this.pubSubNode)return this.#initiatePubSubClient();return this.pubSubNode.connectPromise??this.pubSubNode.client}async#initiatePubSubClient(toResubscribe){let index=Math.floor(Math.random()*(this.masters.length+this.replicas.length)),node=index<this.masters.length?this.masters[index]:this.replicas[index-this.masters.length],client=this.#createClient(node,!1);return this.pubSubNode={address:node.address,client,connectPromise:client.connect().then(async(client2)=>{if(toResubscribe)await Promise.all([client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS,toResubscribe[pub_sub_1.PUBSUB_TYPE.CHANNELS]),client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS,toResubscribe[pub_sub_1.PUBSUB_TYPE.PATTERNS])]);return this.pubSubNode.connectPromise=void 0,client2}).catch((err)=>{throw this.pubSubNode=void 0,err})},this.pubSubNode.connectPromise}async executeUnsubscribeCommand(unsubscribe){let client=await this.getPubSubClient();if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),this.pubSubNode=void 0}getShardedPubSubClient(channel){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return this.#initiateShardedPubSubClient(master);return master.pubSub.connectPromise??master.pubSub.client}async#initiateShardedPubSubClient(master){let client=this.#createClient(master,!1).on("server-sunsubscribe",async(channel,listeners)=>{try{await this.rediscover(client),await(await this.getShardedPubSubClient(channel)).extendPubSubChannelListeners(pub_sub_1.PUBSUB_TYPE.SHARDED,channel,listeners)}catch(err){this.#emit("sharded-shannel-moved-error",err,channel,listeners)}});return master.pubSub={client,connectPromise:client.connect().then((client2)=>{return master.pubSub.connectPromise=void 0,client2}).catch((err)=>{throw master.pubSub=void 0,err})},master.pubSub.connectPromise}async executeShardedUnsubscribeCommand(channel,unsubscribe){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return;let client=master.pubSub.connectPromise?await master.pubSub.connectPromise:master.pubSub.client;if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),master.pubSub=void 0}}_a=RedisClusterSlots,exports.default=RedisClusterSlots}),require_multi_command3=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands()),multi_command_1=__importDefault(require_multi_command()),commander_1=require_commander(),parser_1=require_parser();class RedisClusterMultiCommand{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;let firstKey=parser.firstKey;return this.addCommand(firstKey,command.IS_READ_ONLY,redisArgs,transformReply)}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;let firstKey=parser.firstKey;return this._self.addCommand(firstKey,command.IS_READ_ONLY,redisArgs,transformReply)}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;parser.push(...prefix),fn2.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;let firstKey=parser.firstKey;return this._self.addCommand(firstKey,fn2.IS_READ_ONLY,redisArgs,transformReply)}}static#createScriptCommand(script,resp){let transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args2);let scriptArgs=parser.redisArgs;scriptArgs.preserve=parser.preserve;let firstKey=parser.firstKey;return this.#addScript(firstKey,script.IS_READ_ONLY,script,scriptArgs,transformReply)}}static extend(config2){return(0,commander_1.attachConfig)({BaseClass:RedisClusterMultiCommand,commands:commands_1.default,createCommand:RedisClusterMultiCommand.#createCommand,createModuleCommand:RedisClusterMultiCommand.#createModuleCommand,createFunctionCommand:RedisClusterMultiCommand.#createFunctionCommand,createScriptCommand:RedisClusterMultiCommand.#createScriptCommand,config:config2})}#multi;#executeMulti;#executePipeline;#firstKey;#isReadonly=!0;constructor(executeMulti,executePipeline,routing,typeMapping){this.#multi=new multi_command_1.default(typeMapping),this.#executeMulti=executeMulti,this.#executePipeline=executePipeline,this.#firstKey=routing}#setState(firstKey,isReadonly){this.#firstKey??=firstKey,this.#isReadonly&&=isReadonly}addCommand(firstKey,isReadonly,args2,transformReply){return this.#setState(firstKey,isReadonly),this.#multi.addCommand(args2,transformReply),this}#addScript(firstKey,isReadonly,script,args2,transformReply){return this.#setState(firstKey,isReadonly),this.#multi.addScript(script,args2,transformReply),this}async exec(execAsPipeline=!1){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#executeMulti(this.#firstKey,this.#isReadonly,this.#multi.queue))}EXEC=this.exec;execTyped(execAsPipeline=!1){return this.exec(execAsPipeline)}async execAsPipeline(){if(this.#multi.queue.length===0)return[];return this.#multi.transformReplies(await this.#executePipeline(this.#firstKey,this.#isReadonly,this.#multi.queue))}execAsPipelineTyped(){return this.execAsPipeline()}}exports.default=RedisClusterMultiCommand}),require_cluster=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands()),node_events_1=__require2("node:events"),commander_1=require_commander(),cluster_slots_1=__importDefault(require_cluster_slots()),multi_command_1=__importDefault(require_multi_command3()),errors_1=require_errors(),parser_1=require_parser(),ASKING_1=require_ASKING(),single_entry_cache_1=__importDefault(require_single_entry_cache());class RedisCluster extends node_events_1.EventEmitter{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._execute(parser.firstKey,command.IS_READ_ONLY,this._commandOptions,(client,opts)=>client._executeCommand(command,parser,opts,transformReply))}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._execute(parser.firstKey,command.IS_READ_ONLY,this._self._commandOptions,(client,opts)=>client._executeCommand(command,parser,opts,transformReply))}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self._execute(parser.firstKey,fn2.IS_READ_ONLY,this._self._commandOptions,(client,opts)=>client._executeCommand(fn2,parser,opts,transformReply))}}static#createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),script.parseCommand(parser,...args2),this._self._execute(parser.firstKey,script.IS_READ_ONLY,this._commandOptions,(client,opts)=>client._executeScript(script,parser,opts,transformReply))}}static#SingleEntryCache=new single_entry_cache_1.default;static factory(config2){let Cluster=RedisCluster.#SingleEntryCache.get(config2);if(!Cluster)Cluster=(0,commander_1.attachConfig)({BaseClass:RedisCluster,commands:commands_1.default,createCommand:RedisCluster.#createCommand,createModuleCommand:RedisCluster.#createModuleCommand,createFunctionCommand:RedisCluster.#createFunctionCommand,createScriptCommand:RedisCluster.#createScriptCommand,config:config2}),Cluster.prototype.Multi=multi_command_1.default.extend(config2),RedisCluster.#SingleEntryCache.set(config2,Cluster);return(options)=>{return Object.create(new Cluster(options))}}static create(options){return RedisCluster.factory(options)(options)}_options;_slots;_self=this;_commandOptions;get slots(){return this._self._slots.slots}get clientSideCache(){return this._self._slots.clientSideCache}get masters(){return this._self._slots.masters}get replicas(){return this._self._slots.replicas}get nodeByAddress(){return this._self._slots.nodeByAddress}get pubSubNode(){return this._self._slots.pubSubNode}get isOpen(){return this._self._slots.isOpen}constructor(options){super();if(this._options=options,this._slots=new cluster_slots_1.default(options,this.emit.bind(this)),this.on("__resubscribeAllPubSubListeners",this.resubscribeAllPubSubListeners.bind(this)),options?.commandOptions)this._commandOptions=options.commandOptions}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self._options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self._slots.connect(),this}withCommandOptions(options){let proxy=Object.create(this);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}_handleAsk(fn2){return async(client,options)=>{let chainId=Symbol("asking chain"),opts=options?{...options}:{};return opts.chainId=chainId,(await Promise.all([client.sendCommand([ASKING_1.ASKING_CMD],{chainId}),fn2(client,opts)]))[1]}}async _execute(firstKey,isReadonly,options,fn2){let maxCommandRedirections=this._options.maxCommandRedirections??16,client=await this._slots.getClient(firstKey,isReadonly),i=0,myFn=fn2;while(!0)try{return await myFn(client,options)}catch(err){if(myFn=fn2,++i>maxCommandRedirections||!(err instanceof Error))throw err;if(err.message.startsWith("ASK")){let address=err.message.substring(err.message.lastIndexOf(" ")+1),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)await this._slots.rediscover(client),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)throw Error(`Cannot find node ${address}`);client=redirectTo,myFn=this._handleAsk(fn2);continue}if(err.message.startsWith("MOVED")){await this._slots.rediscover(client),client=await this._slots.getClient(firstKey,isReadonly);continue}throw err}}async sendCommand(firstKey,isReadonly,args2,options){let opts={...this._self._commandOptions,...options};return this._self._execute(firstKey,isReadonly,opts,(client,opts2)=>client.sendCommand(args2,opts2))}MULTI(routing){return new this.Multi(async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executeMulti(commands)},async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executePipeline(commands)},routing,this._commandOptions?.typeMapping)}multi=this.MULTI;async SUBSCRIBE(channels,listener,bufferMode){return(await this._self._slots.getPubSubClient()).SUBSCRIBE(channels,listener,bufferMode)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.UNSUBSCRIBE(channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(patterns,listener,bufferMode){return(await this._self._slots.getPubSubClient()).PSUBSCRIBE(patterns,listener,bufferMode)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.PUNSUBSCRIBE(patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;async SSUBSCRIBE(channels,listener,bufferMode){let maxCommandRedirections=this._self._options.maxCommandRedirections??16,firstChannel=Array.isArray(channels)?channels[0]:channels,client=await this._self._slots.getShardedPubSubClient(firstChannel);for(let i=0;;i++)try{return await client.SSUBSCRIBE(channels,listener,bufferMode)}catch(err){if(++i>maxCommandRedirections||!(err instanceof errors_1.ErrorReply))throw err;if(err.message.startsWith("MOVED")){await this._self._slots.rediscover(client),client=await this._self._slots.getShardedPubSubClient(firstChannel);continue}throw err}}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeShardedUnsubscribeCommand(Array.isArray(channels)?channels[0]:channels,(client)=>client.SUNSUBSCRIBE(channels,listener,bufferMode))}resubscribeAllPubSubListeners(allListeners){for(let[channel,listeners]of allListeners.CHANNELS)listeners.buffers.forEach((bufListener)=>{this.subscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.subscribe(channel,strListener)});for(let[channel,listeners]of allListeners.PATTERNS)listeners.buffers.forEach((bufListener)=>{this.pSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.pSubscribe(channel,strListener)});for(let[channel,listeners]of allListeners.SHARDED)listeners.buffers.forEach((bufListener)=>{this.sSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.sSubscribe(channel,strListener)})}sUnsubscribe=this.SUNSUBSCRIBE;quit(){return this._self._slots.quit()}disconnect(){return this._self._slots.disconnect()}close(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.close()}destroy(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.destroy()}nodeClient(node){return this._self._slots.nodeClient(node)}getRandomNode(){return this._self._slots.getRandomNode()}getSlotRandomNode(slot){return this._self._slots.getSlotRandomNode(slot)}getMasters(){return this.masters}getSlotMaster(slot){return this.slots[slot].master}}exports.default=RedisCluster}),require_utils=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createScriptCommand=exports.createModuleCommand=exports.createFunctionCommand=exports.createCommand=exports.clientSocketToNode=exports.createNodeList=exports.parseNode=void 0;var parser_1=require_parser(),commander_1=require_commander();function parseNode(node){if(node.flags.includes("s_down")||node.flags.includes("disconnected")||node.flags.includes("failover_in_progress"))return;return{host:node.ip,port:Number(node.port)}}exports.parseNode=parseNode;function createNodeList(nodes){var nodeList=[];for(let nodeData of nodes){let node=parseNode(nodeData);if(node===void 0)continue;nodeList.push(node)}return nodeList}exports.createNodeList=createNodeList;function clientSocketToNode(socket){let s=socket;return{host:s.host,port:s.port}}exports.clientSocketToNode=clientSocketToNode;function createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._execute(command.IS_READ_ONLY,(client)=>client._executeCommand(command,parser,this.commandOptions,transformReply))}}exports.createCommand=createCommand;function createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self._execute(fn2.IS_READ_ONLY,(client)=>client._executeCommand(fn2,parser,this._self.commandOptions,transformReply))}}exports.createFunctionCommand=createFunctionCommand;function createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._execute(command.IS_READ_ONLY,(client)=>client._executeCommand(command,parser,this._self.commandOptions,transformReply))}}exports.createModuleCommand=createModuleCommand;function createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),script.parseCommand(parser,...args2),this._self._execute(script.IS_READ_ONLY,(client)=>client._executeScript(script,parser,this.commandOptions,transformReply))}}exports.createScriptCommand=createScriptCommand}),require_multi_commands=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands()),multi_command_1=__importDefault(require_multi_command()),commander_1=require_commander(),parser_1=require_parser();class RedisSentinelMultiCommand{static _createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this.addCommand(command.IS_READ_ONLY,redisArgs,transformReply)}}static _createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this._self.addCommand(command.IS_READ_ONLY,redisArgs,transformReply)}}static _createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;parser.push(...prefix),fn2.parseCommand(parser,...args2);let redisArgs=parser.redisArgs;return redisArgs.preserve=parser.preserve,this._self.addCommand(fn2.IS_READ_ONLY,redisArgs,transformReply)}}static _createScriptCommand(script,resp){let transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args2){let parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args2);let scriptArgs=parser.redisArgs;return scriptArgs.preserve=parser.preserve,this.#addScript(script.IS_READ_ONLY,script,scriptArgs,transformReply)}}static extend(config2){return(0,commander_1.attachConfig)({BaseClass:RedisSentinelMultiCommand,commands:commands_1.default,createCommand:RedisSentinelMultiCommand._createCommand,createModuleCommand:RedisSentinelMultiCommand._createModuleCommand,createFunctionCommand:RedisSentinelMultiCommand._createFunctionCommand,createScriptCommand:RedisSentinelMultiCommand._createScriptCommand,config:config2})}#multi=new multi_command_1.default;#sentinel;#isReadonly=!0;constructor(sentinel,typeMapping){this.#multi=new multi_command_1.default(typeMapping),this.#sentinel=sentinel}#setState(isReadonly){this.#isReadonly&&=isReadonly}addCommand(isReadonly,args2,transformReply){return this.#setState(isReadonly),this.#multi.addCommand(args2,transformReply),this}#addScript(isReadonly,script,args2,transformReply){return this.#setState(isReadonly),this.#multi.addScript(script,args2,transformReply),this}async exec(execAsPipeline=!1){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#sentinel._executeMulti(this.#isReadonly,this.#multi.queue))}EXEC=this.exec;execTyped(execAsPipeline=!1){return this.exec(execAsPipeline)}async execAsPipeline(){if(this.#multi.queue.length===0)return[];return this.#multi.transformReplies(await this.#sentinel._executePipeline(this.#isReadonly,this.#multi.queue))}execAsPipelineTyped(){return this.execAsPipeline()}}exports.default=RedisSentinelMultiCommand}),require_pub_sub_proxy=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PubSubProxy=void 0;var node_events_1=__importDefault(__require2("node:events")),pub_sub_1=require_pub_sub(),client_1=__importDefault(require_client());class PubSubProxy extends node_events_1.default{#clientOptions;#onError;#node;#state;#subscriptions;constructor(clientOptions,onError5){super();this.#clientOptions=clientOptions,this.#onError=onError5}#createClient(){if(this.#node===void 0)throw Error("pubSubProxy: didn't define node to do pubsub against");return new client_1.default({...this.#clientOptions,socket:{...this.#clientOptions.socket,host:this.#node.host,port:this.#node.port}})}async#initiatePubSubClient(withSubscriptions=!1){let client=this.#createClient().on("error",this.#onError),connectPromise=client.connect().then(async(client2)=>{if(this.#state?.client!==client2)return client2.destroy(),this.#state?.connectPromise;if(withSubscriptions&&this.#subscriptions)await Promise.all([client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS,this.#subscriptions[pub_sub_1.PUBSUB_TYPE.CHANNELS]),client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS,this.#subscriptions[pub_sub_1.PUBSUB_TYPE.PATTERNS])]);if(this.#state.client!==client2)return client2.destroy(),this.#state?.connectPromise;return this.#state.connectPromise=void 0,client2}).catch((err)=>{throw this.#state=void 0,err});return this.#state={client,connectPromise},connectPromise}#getPubSubClient(){if(!this.#state)return this.#initiatePubSubClient();return this.#state.connectPromise??this.#state.client}async changeNode(node){if(this.#node=node,!this.#state)return;if(this.#state.connectPromise===void 0)this.#subscriptions={[pub_sub_1.PUBSUB_TYPE.CHANNELS]:this.#state.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS),[pub_sub_1.PUBSUB_TYPE.PATTERNS]:this.#state.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS)},this.#state.client.destroy();await this.#initiatePubSubClient(!0)}#executeCommand(fn2){let client=this.#getPubSubClient();if(client instanceof client_1.default)return fn2(client);return client.then((client2)=>{if(client2===void 0)return;return fn2(client2)}).catch((err)=>{if(this.#state?.client.isPubSubActive)this.#state.client.destroy(),this.#state=void 0;throw err})}subscribe(channels,listener,bufferMode){return this.#executeCommand((client)=>client.SUBSCRIBE(channels,listener,bufferMode))}#unsubscribe(fn2){return this.#executeCommand(async(client)=>{let reply=await fn2(client);if(!client.isPubSubActive)client.destroy(),this.#state=void 0;return reply})}async unsubscribe(channels,listener,bufferMode){return this.#unsubscribe((client)=>client.UNSUBSCRIBE(channels,listener,bufferMode))}async pSubscribe(patterns,listener,bufferMode){return this.#executeCommand((client)=>client.PSUBSCRIBE(patterns,listener,bufferMode))}async pUnsubscribe(patterns,listener,bufferMode){return this.#unsubscribe((client)=>client.PUNSUBSCRIBE(patterns,listener,bufferMode))}destroy(){if(this.#subscriptions=void 0,this.#state===void 0)return;if(!this.#state.connectPromise)this.#state.client.destroy();this.#state=void 0}}exports.PubSubProxy=PubSubProxy}),require_SENTINEL_MASTER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,dbname){parser.push("SENTINEL","MASTER",dbname)},transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}),require_SENTINEL_MONITOR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,dbname,host,port3,quorum){parser.push("SENTINEL","MONITOR",dbname,host,port3,quorum)},transformReply:void 0}}),require_SENTINEL_REPLICAS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,dbname){parser.push("SENTINEL","REPLICAS",dbname)},transformReply:{2:(reply,preserve,typeMapping)=>{let inferred=reply,initial=[];return inferred.reduce((sentinels,x)=>{return sentinels.push((0,generic_transformers_1.transformTuplesReply)(x,void 0,typeMapping)),sentinels},initial)},3:void 0}}}),require_SENTINEL_SENTINELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={parseCommand(parser,dbname){parser.push("SENTINEL","SENTINELS",dbname)},transformReply:{2:(reply,preserve,typeMapping)=>{let inferred=reply,initial=[];return inferred.reduce((sentinels,x)=>{return sentinels.push((0,generic_transformers_1.transformTuplesReply)(x,void 0,typeMapping)),sentinels},initial)},3:void 0}}}),require_SENTINEL_SET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={parseCommand(parser,dbname,options){parser.push("SENTINEL","SET",dbname);for(let option32 of options)parser.push(option32.option,option32.value)},transformReply:void 0}}),require_commands2=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var SENTINEL_MASTER_1=__importDefault(require_SENTINEL_MASTER()),SENTINEL_MONITOR_1=__importDefault(require_SENTINEL_MONITOR()),SENTINEL_REPLICAS_1=__importDefault(require_SENTINEL_REPLICAS()),SENTINEL_SENTINELS_1=__importDefault(require_SENTINEL_SENTINELS()),SENTINEL_SET_1=__importDefault(require_SENTINEL_SET());exports.default={SENTINEL_SENTINELS:SENTINEL_SENTINELS_1.default,sentinelSentinels:SENTINEL_SENTINELS_1.default,SENTINEL_MASTER:SENTINEL_MASTER_1.default,sentinelMaster:SENTINEL_MASTER_1.default,SENTINEL_REPLICAS:SENTINEL_REPLICAS_1.default,sentinelReplicas:SENTINEL_REPLICAS_1.default,SENTINEL_MONITOR:SENTINEL_MONITOR_1.default,sentinelMonitor:SENTINEL_MONITOR_1.default,SENTINEL_SET:SENTINEL_SET_1.default,sentinelSet:SENTINEL_SET_1.default}}),require_module=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var commands_1=__importDefault(require_commands2());exports.default={sentinel:commands_1.default}}),require_wait_queue=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.WaitQueue=void 0;var linked_list_1=require_linked_list();class WaitQueue{#list=new linked_list_1.SinglyLinkedList;#queue=new linked_list_1.SinglyLinkedList;push(value){let resolve=this.#queue.shift();if(resolve!==void 0){resolve(value);return}this.#list.push(value)}shift(){return this.#list.shift()}wait(){return new Promise((resolve)=>this.#queue.push(resolve))}}exports.WaitQueue=WaitQueue}),require_sentinel=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RedisSentinelFactory=exports.RedisSentinelClient=void 0;var node_events_1=__require2("node:events"),client_1=__importDefault(require_client()),commander_1=require_commander(),commands_1=__importDefault(require_commands()),utils_1=require_utils(),multi_commands_1=__importDefault(require_multi_commands()),pub_sub_proxy_1=require_pub_sub_proxy(),promises_1=__require2("node:timers/promises"),module_1=__importDefault(require_module()),wait_queue_1=require_wait_queue(),cache_1=require_cache();class RedisSentinelClient{#clientInfo;#internal;_self;get isOpen(){return this._self.#internal.isOpen}get isReady(){return this._self.#internal.isReady}get commandOptions(){return this._self.#commandOptions}#commandOptions;constructor(internal,clientInfo,commandOptions){this._self=this,this.#internal=internal,this.#clientInfo=clientInfo,this.#commandOptions=commandOptions}static factory(config2){let SentinelClient=(0,commander_1.attachConfig)({BaseClass:RedisSentinelClient,commands:commands_1.default,createCommand:utils_1.createCommand,createModuleCommand:utils_1.createModuleCommand,createFunctionCommand:utils_1.createFunctionCommand,createScriptCommand:utils_1.createScriptCommand,config:config2});return SentinelClient.prototype.Multi=multi_commands_1.default.extend(config2),(internal,clientInfo,commandOptions)=>{return Object.create(new SentinelClient(internal,clientInfo,commandOptions))}}static create(options,internal,clientInfo,commandOptions){return RedisSentinelClient.factory(options)(internal,clientInfo,commandOptions)}withCommandOptions(options){let proxy=Object.create(this);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this);return proxy._commandOptions=Object.create(this._self.#commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}async _execute(isReadonly,fn2){if(this._self.#clientInfo===void 0)throw Error("Attempted execution on released RedisSentinelClient lease");return await this._self.#internal.execute(fn2,this._self.#clientInfo)}async sendCommand(isReadonly,args2,options){return this._execute(isReadonly,(client)=>client.sendCommand(args2,options))}async _executePipeline(isReadonly,commands){return this._execute(isReadonly,(client)=>client._executePipeline(commands))}async _executeMulti(isReadonly,commands){return this._execute(isReadonly,(client)=>client._executeMulti(commands))}MULTI(){return new this.Multi(this)}multi=this.MULTI;WATCH(key){if(this._self.#clientInfo===void 0)throw Error("Attempted execution on released RedisSentinelClient lease");return this._execute(!1,(client)=>client.watch(key))}watch=this.WATCH;UNWATCH(){if(this._self.#clientInfo===void 0)throw Error("Attempted execution on released RedisSentinelClient lease");return this._execute(!1,(client)=>client.unwatch())}unwatch=this.UNWATCH;release(){if(this._self.#clientInfo===void 0)throw Error("RedisSentinelClient lease already released");let result=this._self.#internal.releaseClientLease(this._self.#clientInfo);return this._self.#clientInfo=void 0,result}}exports.RedisSentinelClient=RedisSentinelClient;class RedisSentinel extends node_events_1.EventEmitter{_self;#internal;#options;get isOpen(){return this._self.#internal.isOpen}get isReady(){return this._self.#internal.isReady}get commandOptions(){return this._self.#commandOptions}#commandOptions;#trace=()=>{};#reservedClientInfo;#masterClientCount=0;#masterClientInfo;get clientSideCache(){return this._self.#internal.clientSideCache}constructor(options){super();if(this._self=this,this.#options=options,options.commandOptions)this.#commandOptions=options.commandOptions;this.#internal=new RedisSentinelInternal(options),this.#internal.on("error",(err)=>this.emit("error",err)),this.#internal.on("topology-change",(event)=>{if(!this.emit("topology-change",event))this._self.#trace(`RedisSentinel: re-emit for topology-change for ${event.type} event returned false`)})}static factory(config2){let Sentinel=(0,commander_1.attachConfig)({BaseClass:RedisSentinel,commands:commands_1.default,createCommand:utils_1.createCommand,createModuleCommand:utils_1.createModuleCommand,createFunctionCommand:utils_1.createFunctionCommand,createScriptCommand:utils_1.createScriptCommand,config:config2});return Sentinel.prototype.Multi=multi_commands_1.default.extend(config2),(options)=>{return Object.create(new Sentinel(options))}}static create(options){return RedisSentinel.factory(options)(options)}withCommandOptions(options){let proxy=Object.create(this);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this);return proxy._self.#commandOptions={...this._self.#commandOptions||{},[key]:value},proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}async connect(){if(await this._self.#internal.connect(),this._self.#options.reserveClient)this._self.#reservedClientInfo=await this._self.#internal.getClientLease();return this}async _execute(isReadonly,fn2){let clientInfo;if(!isReadonly||!this._self.#internal.useReplicas)if(this._self.#reservedClientInfo)clientInfo=this._self.#reservedClientInfo;else this._self.#masterClientInfo??=await this._self.#internal.getClientLease(),clientInfo=this._self.#masterClientInfo,this._self.#masterClientCount++;try{return await this._self.#internal.execute(fn2,clientInfo)}finally{if(clientInfo!==void 0&&clientInfo===this._self.#masterClientInfo&&--this._self.#masterClientCount===0){let promise3=this._self.#internal.releaseClientLease(clientInfo);if(this._self.#masterClientInfo=void 0,promise3)await promise3}}}async use(fn2){let clientInfo=await this._self.#internal.getClientLease();try{return await fn2(RedisSentinelClient.create(this._self.#options,this._self.#internal,clientInfo,this._self.#commandOptions))}finally{let promise3=this._self.#internal.releaseClientLease(clientInfo);if(promise3)await promise3}}async sendCommand(isReadonly,args2,options){return this._execute(isReadonly,(client)=>client.sendCommand(args2,options))}async _executePipeline(isReadonly,commands){return this._execute(isReadonly,(client)=>client._executePipeline(commands))}async _executeMulti(isReadonly,commands){return this._execute(isReadonly,(client)=>client._executeMulti(commands))}MULTI(){return new this.Multi(this)}multi=this.MULTI;async close(){return this._self.#internal.close()}destroy(){return this._self.#internal.destroy()}async SUBSCRIBE(channels,listener,bufferMode){return this._self.#internal.subscribe(channels,listener,bufferMode)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(channels,listener,bufferMode){return this._self.#internal.unsubscribe(channels,listener,bufferMode)}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(patterns,listener,bufferMode){return this._self.#internal.pSubscribe(patterns,listener,bufferMode)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self.#internal.pUnsubscribe(patterns,listener,bufferMode)}pUnsubscribe=this.PUNSUBSCRIBE;async acquire(){let clientInfo=await this._self.#internal.getClientLease();return RedisSentinelClient.create(this._self.#options,this._self.#internal,clientInfo,this._self.#commandOptions)}getSentinelNode(){return this._self.#internal.getSentinelNode()}getMasterNode(){return this._self.#internal.getMasterNode()}getReplicaNodes(){return this._self.#internal.getReplicaNodes()}setTracer(tracer3){if(tracer3)this._self.#trace=(msg)=>{tracer3.push(msg)};else this._self.#trace=()=>{};this._self.#internal.setTracer(tracer3)}}exports.default=RedisSentinel;class RedisSentinelInternal extends node_events_1.EventEmitter{#isOpen=!1;get isOpen(){return this.#isOpen}#isReady=!1;get isReady(){return this.#isReady}#name;#nodeClientOptions;#sentinelClientOptions;#scanInterval;#passthroughClientErrorEvents;#RESP;#anotherReset=!1;#configEpoch=0;#sentinelRootNodes;#sentinelClient;#masterClients=[];#masterClientQueue;#masterPoolSize;#replicaClients=[];#replicaClientsIdx=0;#replicaPoolSize;get useReplicas(){return this.#replicaPoolSize>0}#connectPromise;#maxCommandRediscovers;#pubSubProxy;#scanTimer;#destroy=!1;#trace=()=>{};#clientSideCache;get clientSideCache(){return this.#clientSideCache}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching is only supported with RESP3")}constructor(options){super();if(this.#validateOptions(options),this.#name=options.name,this.#RESP=options.RESP,this.#sentinelRootNodes=Array.from(options.sentinelRootNodes),this.#maxCommandRediscovers=options.maxCommandRediscovers??16,this.#masterPoolSize=options.masterPoolSize??1,this.#replicaPoolSize=options.replicaPoolSize??0,this.#scanInterval=options.scanInterval??0,this.#passthroughClientErrorEvents=options.passthroughClientErrorEvents??!1,this.#nodeClientOptions=options.nodeClientOptions?{...options.nodeClientOptions}:{},this.#nodeClientOptions.url!==void 0)throw Error("invalid nodeClientOptions for Sentinel");if(options.clientSideCache)if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider)this.#clientSideCache=this.#nodeClientOptions.clientSideCache=options.clientSideCache;else{let cscConfig=options.clientSideCache;this.#clientSideCache=this.#nodeClientOptions.clientSideCache=new cache_1.BasicPooledClientSideCache(cscConfig)}if(this.#sentinelClientOptions=options.sentinelClientOptions?Object.assign({},options.sentinelClientOptions):{},this.#sentinelClientOptions.modules=module_1.default,this.#sentinelClientOptions.url!==void 0)throw Error("invalid sentinelClientOptions for Sentinel");this.#masterClientQueue=new wait_queue_1.WaitQueue;for(let i=0;i<this.#masterPoolSize;i++)this.#masterClientQueue.push(i);this.#pubSubProxy=new pub_sub_proxy_1.PubSubProxy(this.#nodeClientOptions,(err)=>this.emit("error",err))}#createClient(node,clientOptions,reconnectStrategy){return client_1.default.create({RESP:this.#RESP,...clientOptions,socket:{...clientOptions.socket,host:node.host,port:node.port,...reconnectStrategy!==void 0&&{reconnectStrategy}}})}getClientLease(){let id2=this.#masterClientQueue.shift();if(id2!==void 0)return{id:id2};return this.#masterClientQueue.wait().then((id3)=>({id:id3}))}releaseClientLease(clientInfo){let client=this.#masterClients[clientInfo.id];if(client!==void 0){let dirtyPromise=client.resetIfDirty();if(dirtyPromise)return dirtyPromise.then(()=>this.#masterClientQueue.push(clientInfo.id))}this.#masterClientQueue.push(clientInfo.id)}async connect(){if(this.#isOpen)throw Error("already attempting to open");try{this.#isOpen=!0,this.#connectPromise=this.#connect(),await this.#connectPromise,this.#isReady=!0}finally{if(this.#connectPromise=void 0,this.#scanInterval>0)this.#scanTimer=setInterval(this.#reset.bind(this),this.#scanInterval)}}async#connect(){let count32=0;while(!0){if(this.#trace("starting connect loop"),count32+=1,this.#destroy){this.#trace("in #connect and want to destroy");return}try{if(this.#anotherReset=!1,await this.transform(this.analyze(await this.observe())),this.#anotherReset){this.#trace("#connect: anotherReset is true, so continuing");continue}this.#trace("#connect: returning");return}catch(e){if(this.#trace(`#connect: exception ${e.message}`),!this.#isReady&&count32>this.#maxCommandRediscovers)throw e;if(e.message!=="no valid master node")console.log(e);await(0,promises_1.setTimeout)(1000)}finally{this.#trace("finished connect")}}}async execute(fn2,clientInfo){let iter=0;while(!0){if(this.#connectPromise!==void 0)await this.#connectPromise;let client=this.#getClient(clientInfo);if(!client.isReady){await this.#reset();continue}let sockOpts=client.options?.socket;this.#trace("attemping to send command to "+sockOpts?.host+":"+sockOpts?.port);try{return await fn2(client)}catch(err){if(++iter>this.#maxCommandRediscovers||!(err instanceof Error))throw err;if(clientInfo!==void 0&&(err.message.startsWith("READONLY")||!client.isReady)){await this.#reset();continue}throw err}}}async#createPubSub(client){return await client.pSubscribe(["switch-master","[-+]sdown","+slave","+sentinel","[-+]odown","+slave-reconf-done"],(message,channel)=>{this.#handlePubSubControlChannel(channel,message)},!0),client}async#handlePubSubControlChannel(channel,message){this.#trace("pubsub control channel message on "+channel),this.#reset()}#getClient(clientInfo){if(clientInfo!==void 0)return this.#masterClients[clientInfo.id];if(this.#replicaClientsIdx>=this.#replicaClients.length)this.#replicaClientsIdx=0;if(this.#replicaClients.length==0)throw Error("no replicas available for read");return this.#replicaClients[this.#replicaClientsIdx++]}async#reset(){if(this.#isReady==!1||this.#destroy==!0)return;if(this.#connectPromise!==void 0)return this.#anotherReset=!0,await this.#connectPromise;try{return this.#connectPromise=this.#connect(),await this.#connectPromise}finally{this.#trace("finished reconfgure"),this.#connectPromise=void 0}}#handleSentinelFailure(node){let found=this.#sentinelRootNodes.findIndex((rootNode)=>rootNode.host===node.host&&rootNode.port===node.port);if(found!==-1)this.#sentinelRootNodes.splice(found,1);this.#reset()}async close(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;let promises=[];if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)promises.push(this.#sentinelClient.close());this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)promises.push(client.close());this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)promises.push(client.close());this.#replicaClients=[],await Promise.all(promises),this.#pubSubProxy.destroy(),this.#isOpen=!1}async destroy(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)this.#sentinelClient.destroy();this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)client.destroy();this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)client.destroy();this.#replicaClients=[],this.#pubSubProxy.destroy(),this.#isOpen=!1,this.#destroy=!1}async subscribe(channels,listener,bufferMode){return this.#pubSubProxy.subscribe(channels,listener,bufferMode)}async unsubscribe(channels,listener,bufferMode){return this.#pubSubProxy.unsubscribe(channels,listener,bufferMode)}async pSubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pSubscribe(patterns,listener,bufferMode)}async pUnsubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pUnsubscribe(patterns,listener,bufferMode)}async observe(){for(let node of this.#sentinelRootNodes){let client;try{this.#trace(`observe: trying to connect to sentinel: ${node.host}:${node.port}`),client=this.#createClient(node,this.#sentinelClientOptions,!1),client.on("error",(err)=>this.emit("error",`obseve client error: ${err}`)),await client.connect(),this.#trace("observe: connected to sentinel");let[sentinelData,masterData,replicaData]=await Promise.all([client.sentinel.sentinelSentinels(this.#name),client.sentinel.sentinelMaster(this.#name),client.sentinel.sentinelReplicas(this.#name)]);return this.#trace("observe: got all sentinel data"),{sentinelConnected:node,sentinelData,masterData,replicaData,currentMaster:this.getMasterNode(),currentReplicas:this.getReplicaNodes(),currentSentinel:this.getSentinelNode(),replicaPoolSize:this.#replicaPoolSize,useReplicas:this.useReplicas}}catch(err){this.#trace(`observe: error ${err}`),this.emit("error",err)}finally{if(client!==void 0&&client.isOpen)this.#trace("observe: destroying sentinel client"),client.destroy()}}throw this.#trace("observe: none of the sentinels are available"),Error("None of the sentinels are available")}analyze(observed){let master=(0,utils_1.parseNode)(observed.masterData);if(master===void 0)throw this.#trace(`analyze: no valid master node because ${observed.masterData.flags}`),Error("no valid master node");if(master.host===observed.currentMaster?.host&&master.port===observed.currentMaster?.port)this.#trace(`analyze: master node hasn't changed from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`),master=void 0;else this.#trace(`analyze: master node has changed to ${master.host}:${master.port} from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`);let sentinel=observed.sentinelConnected;if(sentinel.host===observed.currentSentinel?.host&&sentinel.port===observed.currentSentinel.port)this.#trace("analyze: sentinel node hasn't changed"),sentinel=void 0;else this.#trace(`analyze: sentinel node has changed to ${sentinel.host}:${sentinel.port}`);let replicasToClose=[],replicasToOpen=new Map,desiredSet=new Set,seen=new Set;if(observed.useReplicas){let replicaList=(0,utils_1.createNodeList)(observed.replicaData);for(let node of replicaList)desiredSet.add(JSON.stringify(node));for(let[node,value]of observed.currentReplicas)if(!desiredSet.has(JSON.stringify(node)))replicasToClose.push(node),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToClose`);else if(seen.add(JSON.stringify(node)),value!=observed.replicaPoolSize)replicasToOpen.set(node,observed.replicaPoolSize-value),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`);for(let node of replicaList)if(!seen.has(JSON.stringify(node)))replicasToOpen.set(node,observed.replicaPoolSize),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`)}return{sentinelList:[observed.sentinelConnected].concat((0,utils_1.createNodeList)(observed.sentinelData)),epoch:Number(observed.masterData["config-epoch"]),sentinelToOpen:sentinel,masterToOpen:master,replicasToClose,replicasToOpen}}async transform(analyzed){this.#trace("transform: enter");let promises=[];if(analyzed.sentinelToOpen){if(this.#trace("transform: opening a new sentinel"),this.#sentinelClient!==void 0&&this.#sentinelClient.isOpen)this.#trace("transform: destroying old sentinel as open"),this.#sentinelClient.destroy(),this.#sentinelClient=void 0;else this.#trace("transform: not destroying old sentinel as not open");this.#trace(`transform: creating new sentinel to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let node=analyzed.sentinelToOpen,client=this.#createClient(analyzed.sentinelToOpen,this.#sentinelClientOptions,!1);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Sentinel Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"SENTINEL",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2),this.#handleSentinelFailure(node)}).on("end",()=>this.#handleSentinelFailure(node)),this.#sentinelClient=client,this.#trace("transform: adding sentinel client connect() to promise list");let promise3=this.#sentinelClient.connect().then((client2)=>{return this.#createPubSub(client2)});promises.push(promise3),this.#trace(`created sentinel client to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let event={type:"SENTINEL_CHANGE",node:analyzed.sentinelToOpen};if(this.#trace("transform: emiting topology-change event for sentinel_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for sentinel_change returned false")}if(analyzed.masterToOpen){this.#trace("transform: opening a new master");let masterPromises=[],masterWatches=[];this.#trace("transform: destroying old masters if open");for(let client of this.#masterClients)if(masterWatches.push(client.isWatching||client.isDirtyWatch),client.isOpen)client.destroy();this.#masterClients=[],this.#trace("transform: creating all master clients and adding connect promises");for(let i=0;i<this.#masterPoolSize;i++){let node=analyzed.masterToOpen,client=this.#createClient(analyzed.masterToOpen,this.#nodeClientOptions);if(client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Master Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"MASTER",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),masterWatches[i])client.setDirtyWatch("sentinel config changed in middle of a WATCH Transaction");this.#masterClients.push(client),masterPromises.push(client.connect()),this.#trace(`created master client to ${analyzed.masterToOpen.host}:${analyzed.masterToOpen.port}`)}this.#trace("transform: adding promise to change #pubSubProxy node"),masterPromises.push(this.#pubSubProxy.changeNode(analyzed.masterToOpen)),promises.push(...masterPromises);let event={type:"MASTER_CHANGE",node:analyzed.masterToOpen};if(this.#trace("transform: emiting topology-change event for master_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for master_change returned false");this.#configEpoch++}let replicaCloseSet=new Set;for(let node of analyzed.replicasToClose){let str=JSON.stringify(node);replicaCloseSet.add(str)}let newClientList=[],removedSet=new Set;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),str=JSON.stringify(node);if(replicaCloseSet.has(str)||!replica.isOpen){if(replica.isOpen){let sockOpts=replica.options?.socket;this.#trace(`destroying replica client to ${sockOpts?.host}:${sockOpts?.port}`),replica.destroy()}if(!removedSet.has(str)){let event={type:"REPLICA_REMOVE",node};this.emit("topology-change",event),removedSet.add(str)}}else newClientList.push(replica)}if(this.#replicaClients=newClientList,analyzed.replicasToOpen.size!=0)for(let[node,size14]of analyzed.replicasToOpen){for(let i=0;i<size14;i++){let client=this.#createClient(node,this.#nodeClientOptions);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Replica Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"REPLICA",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),this.#replicaClients.push(client),promises.push(client.connect()),this.#trace(`created replica client to ${node.host}:${node.port}`)}let event={type:"REPLICA_ADD",node};this.emit("topology-change",event)}if(analyzed.sentinelList.length!=this.#sentinelRootNodes.length){this.#sentinelRootNodes=analyzed.sentinelList;let event={type:"SENTINE_LIST_CHANGE",size:analyzed.sentinelList.length};this.emit("topology-change",event)}await Promise.all(promises),this.#trace("transform: exit")}getMasterNode(){if(this.#masterClients.length==0)return;for(let master of this.#masterClients)if(master.isReady)return(0,utils_1.clientSocketToNode)(master.options.socket);return}getSentinelNode(){if(this.#sentinelClient===void 0)return;return(0,utils_1.clientSocketToNode)(this.#sentinelClient.options.socket)}getReplicaNodes(){let ret=new Map,initialMap=new Map;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),hash2=JSON.stringify(node);if(replica.isReady)initialMap.set(hash2,(initialMap.get(hash2)??0)+1);else if(!initialMap.has(hash2))initialMap.set(hash2,0)}for(let[key,value]of initialMap)ret.set(JSON.parse(key),value);return ret}setTracer(tracer3){if(tracer3)this.#trace=(msg)=>{tracer3.push(msg)};else this.#trace=()=>{}}}class RedisSentinelFactory extends node_events_1.EventEmitter{options;#sentinelRootNodes;#replicaIdx=-1;constructor(options){super();this.options=options,this.#sentinelRootNodes=options.sentinelRootNodes}async updateSentinelRootNodes(){for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`updateSentinelRootNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}try{let sentinelData=await client.sentinel.sentinelSentinels(this.options.name);this.#sentinelRootNodes=[node].concat((0,utils_1.createNodeList)(sentinelData));return}finally{client.destroy()}}throw Error("Couldn't connect to any sentinel node")}async getMasterNode(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getMasterNode: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let masterData=await client.sentinel.sentinelMaster(this.options.name),master=(0,utils_1.parseNode)(masterData);if(master===void 0)continue;return master}finally{client.destroy()}}if(connected)throw Error("Master Node Not Enumerated");throw Error("couldn't connect to any sentinels")}async getMasterClient(){let master=await this.getMasterNode();return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:master.host,port:master.port}})}async getReplicaNodes(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getReplicaNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let replicaData=await client.sentinel.sentinelReplicas(this.options.name),replicas=(0,utils_1.createNodeList)(replicaData);if(replicas.length==0)continue;return replicas}finally{client.destroy()}}if(connected)throw Error("No Replicas Nodes Enumerated");throw Error("couldn't connect to any sentinels")}async getReplicaClient(){let replicas=await this.getReplicaNodes();if(replicas.length==0)throw Error("no available replicas");if(this.#replicaIdx++,this.#replicaIdx>=replicas.length)this.#replicaIdx=0;return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:replicas[this.#replicaIdx].host,port:replicas[this.#replicaIdx].port}})}}exports.RedisSentinelFactory=RedisSentinelFactory}),require_dist=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p))__createBinding(exports2,m,p)},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BasicPooledClientSideCache=exports.BasicClientSideCache=exports.REDIS_FLUSH_MODES=exports.COMMAND_LIST_FILTER_BY=exports.CLUSTER_SLOT_STATES=exports.FAILOVER_MODES=exports.CLIENT_KILL_FILTERS=exports.GEO_REPLY_WITH=exports.createSentinel=exports.createCluster=exports.createClientPool=exports.createClient=exports.defineScript=exports.VerbatimString=exports.RESP_TYPES=void 0;var decoder_1=require_decoder();Object.defineProperty(exports,"RESP_TYPES",{enumerable:!0,get:function(){return decoder_1.RESP_TYPES}});var verbatim_string_1=require_verbatim_string();Object.defineProperty(exports,"VerbatimString",{enumerable:!0,get:function(){return verbatim_string_1.VerbatimString}});var lua_script_1=require_lua_script();Object.defineProperty(exports,"defineScript",{enumerable:!0,get:function(){return lua_script_1.defineScript}}),__exportStar(require_errors(),exports);var client_1=__importDefault(require_client());exports.createClient=client_1.default.create;var pool_1=require_pool();exports.createClientPool=pool_1.RedisClientPool.create;var cluster_1=__importDefault(require_cluster());exports.createCluster=cluster_1.default.create;var sentinel_1=__importDefault(require_sentinel());exports.createSentinel=sentinel_1.default.create;var GEOSEARCH_WITH_1=require_GEOSEARCH_WITH();Object.defineProperty(exports,"GEO_REPLY_WITH",{enumerable:!0,get:function(){return GEOSEARCH_WITH_1.GEO_REPLY_WITH}});var commands_1=require_commands();Object.defineProperty(exports,"CLIENT_KILL_FILTERS",{enumerable:!0,get:function(){return commands_1.CLIENT_KILL_FILTERS}}),Object.defineProperty(exports,"FAILOVER_MODES",{enumerable:!0,get:function(){return commands_1.FAILOVER_MODES}}),Object.defineProperty(exports,"CLUSTER_SLOT_STATES",{enumerable:!0,get:function(){return commands_1.CLUSTER_SLOT_STATES}}),Object.defineProperty(exports,"COMMAND_LIST_FILTER_BY",{enumerable:!0,get:function(){return commands_1.COMMAND_LIST_FILTER_BY}}),Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return commands_1.REDIS_FLUSH_MODES}});var cache_1=require_cache();Object.defineProperty(exports,"BasicClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicClientSideCache}}),Object.defineProperty(exports,"BasicPooledClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicPooledClientSideCache}})}),require_ADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,item){parser.push("BF.ADD"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_CARD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("BF.CARD"),parser.pushKey(key)},transformReply:void 0}}),require_EXISTS2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,item){parser.push("BF.EXISTS"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_helpers=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformInfoV2Reply=void 0;var client_1=require_dist();function transformInfoV2Reply(reply,typeMapping){switch(typeMapping?typeMapping[client_1.RESP_TYPES.MAP]:void 0){case Array:return reply;case Map:{let ret=new Map;for(let i=0;i<reply.length;i+=2)ret.set(reply[i].toString(),reply[i+1]);return ret}default:{let ret=Object.create(null);for(let i=0;i<reply.length;i+=2)ret[reply[i].toString()]=reply[i+1];return ret}}}exports.transformInfoV2Reply=transformInfoV2Reply}),require_INFO2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("BF.INFO"),parser.pushKey(key)},transformReply:{2:(reply,_,typeMapping)=>{return(0,helpers_1.transformInfoV2Reply)(reply,typeMapping)},3:void 0}}}),require_INSERT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items,options){if(parser.push("BF.INSERT"),parser.pushKey(key),options?.CAPACITY!==void 0)parser.push("CAPACITY",options.CAPACITY.toString());if(options?.ERROR!==void 0)parser.push("ERROR",options.ERROR.toString());if(options?.EXPANSION!==void 0)parser.push("EXPANSION",options.EXPANSION.toString());if(options?.NOCREATE)parser.push("NOCREATE");if(options?.NONSCALING)parser.push("NONSCALING");parser.push("ITEMS"),parser.pushVariadic(items)},transformReply:generic_transformers_1.transformBooleanArrayReply}}),require_LOADCHUNK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk32){parser.push("BF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk32)},transformReply:void 0}}),require_MADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items){parser.push("BF.MADD"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:generic_transformers_1.transformBooleanArrayReply}}),require_MEXISTS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,items){parser.push("BF.MEXISTS"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:generic_transformers_1.transformBooleanArrayReply}}),require_RESERVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,errorRate,capacity7,options){if(parser.push("BF.RESERVE"),parser.pushKey(key),parser.push(errorRate.toString(),capacity7.toString()),options?.EXPANSION)parser.push("EXPANSION",options.EXPANSION.toString());if(options?.NONSCALING)parser.push("NONSCALING")},transformReply:void 0}}),require_SCANDUMP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,iterator){parser.push("BF.SCANDUMP"),parser.pushKey(key),parser.push(iterator.toString())},transformReply(reply){return{iterator:reply[0],chunk:reply[1]}}}}),require_bloom=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p))__createBinding(exports2,m,p)},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ADD_1=__importDefault(require_ADD()),CARD_1=__importDefault(require_CARD()),EXISTS_1=__importDefault(require_EXISTS2()),INFO_1=__importDefault(require_INFO2()),INSERT_1=__importDefault(require_INSERT()),LOADCHUNK_1=__importDefault(require_LOADCHUNK()),MADD_1=__importDefault(require_MADD()),MEXISTS_1=__importDefault(require_MEXISTS()),RESERVE_1=__importDefault(require_RESERVE()),SCANDUMP_1=__importDefault(require_SCANDUMP());__exportStar(require_helpers(),exports),exports.default={ADD:ADD_1.default,add:ADD_1.default,CARD:CARD_1.default,card:CARD_1.default,EXISTS:EXISTS_1.default,exists:EXISTS_1.default,INFO:INFO_1.default,info:INFO_1.default,INSERT:INSERT_1.default,insert:INSERT_1.default,LOADCHUNK:LOADCHUNK_1.default,loadChunk:LOADCHUNK_1.default,MADD:MADD_1.default,mAdd:MADD_1.default,MEXISTS:MEXISTS_1.default,mExists:MEXISTS_1.default,RESERVE:RESERVE_1.default,reserve:RESERVE_1.default,SCANDUMP:SCANDUMP_1.default,scanDump:SCANDUMP_1.default}}),require_INCRBY2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items){if(parser.push("CMS.INCRBY"),parser.pushKey(key),Array.isArray(items))for(let item of items)pushIncrByItem(parser,item);else pushIncrByItem(parser,items)},transformReply:void 0};function pushIncrByItem(parser,{item,incrementBy}){parser.push(item,incrementBy.toString())}}),require_INFO3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var bloom_1=require_bloom();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("CMS.INFO"),parser.pushKey(key)},transformReply:{2:(reply,_,typeMapping)=>{return(0,bloom_1.transformInfoV2Reply)(reply,typeMapping)},3:void 0}}}),require_INITBYDIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,width,depth){parser.push("CMS.INITBYDIM"),parser.pushKey(key),parser.push(width.toString(),depth.toString())},transformReply:void 0}}),require_INITBYPROB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,error3,probability){parser.push("CMS.INITBYPROB"),parser.pushKey(key),parser.push(error3.toString(),probability.toString())},transformReply:void 0}}),require_MERGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,source){if(parser.push("CMS.MERGE"),parser.pushKey(destination),parser.push(source.length.toString()),isPlainSketches(source))parser.pushVariadic(source);else{for(let i=0;i<source.length;i++)parser.push(source[i].name);parser.push("WEIGHTS");for(let i=0;i<source.length;i++)parser.push(source[i].weight.toString())}},transformReply:void 0};function isPlainSketches(src){return typeof src[0]==="string"||src[0]instanceof Buffer}}),require_QUERY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,items){parser.push("CMS.QUERY"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:void 0}}),require_count_min_sketch=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var INCRBY_1=__importDefault(require_INCRBY2()),INFO_1=__importDefault(require_INFO3()),INITBYDIM_1=__importDefault(require_INITBYDIM()),INITBYPROB_1=__importDefault(require_INITBYPROB()),MERGE_1=__importDefault(require_MERGE()),QUERY_1=__importDefault(require_QUERY());exports.default={INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INFO:INFO_1.default,info:INFO_1.default,INITBYDIM:INITBYDIM_1.default,initByDim:INITBYDIM_1.default,INITBYPROB:INITBYPROB_1.default,initByProb:INITBYPROB_1.default,MERGE:MERGE_1.default,merge:MERGE_1.default,QUERY:QUERY_1.default,query:QUERY_1.default}}),require_ADD2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,item){parser.push("CF.ADD"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_ADDNX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,item){parser.push("CF.ADDNX"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,item){parser.push("CF.COUNT"),parser.pushKey(key),parser.push(item)},transformReply:void 0}}),require_DEL2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,item){parser.push("CF.DEL"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_EXISTS3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,item){parser.push("CF.EXISTS"),parser.pushKey(key),parser.push(item)},transformReply:generic_transformers_1.transformBooleanReply}}),require_INFO4=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var bloom_1=require_bloom();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("CF.INFO"),parser.pushKey(key)},transformReply:{2:(reply,_,typeMapping)=>{return(0,bloom_1.transformInfoV2Reply)(reply,typeMapping)},3:void 0}}}),require_INSERT2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseCfInsertArguments=void 0;var generic_transformers_1=require_generic_transformers();function parseCfInsertArguments(parser,key,items,options){if(parser.pushKey(key),options?.CAPACITY!==void 0)parser.push("CAPACITY",options.CAPACITY.toString());if(options?.NOCREATE)parser.push("NOCREATE");parser.push("ITEMS"),parser.pushVariadic(items)}exports.parseCfInsertArguments=parseCfInsertArguments,exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("CF.INSERT"),parseCfInsertArguments(...args2)},transformReply:generic_transformers_1.transformBooleanArrayReply}}),require_INSERTNX=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var INSERT_1=__importStar(require_INSERT2());exports.default={IS_READ_ONLY:INSERT_1.default.IS_READ_ONLY,parseCommand(...args2){args2[0].push("CF.INSERTNX"),(0,INSERT_1.parseCfInsertArguments)(...args2)},transformReply:INSERT_1.default.transformReply}}),require_LOADCHUNK2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk32){parser.push("CF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk32)},transformReply:void 0}}),require_RESERVE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,capacity7,options){if(parser.push("CF.RESERVE"),parser.pushKey(key),parser.push(capacity7.toString()),options?.BUCKETSIZE!==void 0)parser.push("BUCKETSIZE",options.BUCKETSIZE.toString());if(options?.MAXITERATIONS!==void 0)parser.push("MAXITERATIONS",options.MAXITERATIONS.toString());if(options?.EXPANSION!==void 0)parser.push("EXPANSION",options.EXPANSION.toString())},transformReply:void 0}}),require_SCANDUMP2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,iterator){parser.push("CF.SCANDUMP"),parser.pushKey(key),parser.push(iterator.toString())},transformReply(reply){return{iterator:reply[0],chunk:reply[1]}}}}),require_cuckoo=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ADD_1=__importDefault(require_ADD2()),ADDNX_1=__importDefault(require_ADDNX()),COUNT_1=__importDefault(require_COUNT()),DEL_1=__importDefault(require_DEL2()),EXISTS_1=__importDefault(require_EXISTS3()),INFO_1=__importDefault(require_INFO4()),INSERT_1=__importDefault(require_INSERT2()),INSERTNX_1=__importDefault(require_INSERTNX()),LOADCHUNK_1=__importDefault(require_LOADCHUNK2()),RESERVE_1=__importDefault(require_RESERVE2()),SCANDUMP_1=__importDefault(require_SCANDUMP2());exports.default={ADD:ADD_1.default,add:ADD_1.default,ADDNX:ADDNX_1.default,addNX:ADDNX_1.default,COUNT:COUNT_1.default,count:COUNT_1.default,DEL:DEL_1.default,del:DEL_1.default,EXISTS:EXISTS_1.default,exists:EXISTS_1.default,INFO:INFO_1.default,info:INFO_1.default,INSERT:INSERT_1.default,insert:INSERT_1.default,INSERTNX:INSERTNX_1.default,insertNX:INSERTNX_1.default,LOADCHUNK:LOADCHUNK_1.default,loadChunk:LOADCHUNK_1.default,RESERVE:RESERVE_1.default,reserve:RESERVE_1.default,SCANDUMP:SCANDUMP_1.default,scanDump:SCANDUMP_1.default}}),require_ADD3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,values3){parser.push("TDIGEST.ADD"),parser.pushKey(key);for(let value of values3)parser.push(value.toString())},transformReply:void 0}}),require_BYRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformByRankArguments=void 0;var generic_transformers_1=require_generic_transformers();function transformByRankArguments(parser,key,ranks){parser.pushKey(key);for(let rank of ranks)parser.push(rank.toString())}exports.transformByRankArguments=transformByRankArguments,exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("TDIGEST.BYRANK"),transformByRankArguments(...args2)},transformReply:generic_transformers_1.transformDoubleArrayReply}}),require_BYREVRANK=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var BYRANK_1=__importStar(require_BYRANK());exports.default={IS_READ_ONLY:BYRANK_1.default.IS_READ_ONLY,parseCommand(...args2){args2[0].push("TDIGEST.BYREVRANK"),(0,BYRANK_1.transformByRankArguments)(...args2)},transformReply:BYRANK_1.default.transformReply}}),require_CDF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,values3){parser.push("TDIGEST.CDF"),parser.pushKey(key);for(let item of values3)parser.push(item.toString())},transformReply:generic_transformers_1.transformDoubleArrayReply}}),require_CREATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("TDIGEST.CREATE"),parser.pushKey(key),options?.COMPRESSION!==void 0)parser.push("COMPRESSION",options.COMPRESSION.toString())},transformReply:void 0}}),require_INFO5=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var bloom_1=require_bloom();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TDIGEST.INFO"),parser.pushKey(key)},transformReply:{2:(reply,_,typeMapping)=>{return(0,bloom_1.transformInfoV2Reply)(reply,typeMapping)},3:void 0}}}),require_MAX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TDIGEST.MAX"),parser.pushKey(key)},transformReply:generic_transformers_1.transformDoubleReply}}),require_MERGE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,destination,source,options){if(parser.push("TDIGEST.MERGE"),parser.pushKey(destination),parser.pushKeysLength(source),options?.COMPRESSION!==void 0)parser.push("COMPRESSION",options.COMPRESSION.toString());if(options?.OVERRIDE)parser.push("OVERRIDE")},transformReply:void 0}}),require_MIN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TDIGEST.MIN"),parser.pushKey(key)},transformReply:generic_transformers_1.transformDoubleReply}}),require_QUANTILE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,quantiles){parser.push("TDIGEST.QUANTILE"),parser.pushKey(key);for(let quantile of quantiles)parser.push(quantile.toString())},transformReply:generic_transformers_1.transformDoubleArrayReply}}),require_RANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformRankArguments=void 0;function transformRankArguments(parser,key,values3){parser.pushKey(key);for(let value of values3)parser.push(value.toString())}exports.transformRankArguments=transformRankArguments,exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("TDIGEST.RANK"),transformRankArguments(...args2)},transformReply:void 0}}),require_RESET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key){parser.push("TDIGEST.RESET"),parser.pushKey(key)},transformReply:void 0}}),require_REVRANK=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var RANK_1=__importStar(require_RANK());exports.default={IS_READ_ONLY:RANK_1.default.IS_READ_ONLY,parseCommand(...args2){args2[0].push("TDIGEST.REVRANK"),(0,RANK_1.transformRankArguments)(...args2)},transformReply:RANK_1.default.transformReply}}),require_TRIMMED_MEAN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,lowCutPercentile,highCutPercentile){parser.push("TDIGEST.TRIMMED_MEAN"),parser.pushKey(key),parser.push(lowCutPercentile.toString(),highCutPercentile.toString())},transformReply:generic_transformers_1.transformDoubleReply}}),require_t_digest=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ADD_1=__importDefault(require_ADD3()),BYRANK_1=__importDefault(require_BYRANK()),BYREVRANK_1=__importDefault(require_BYREVRANK()),CDF_1=__importDefault(require_CDF()),CREATE_1=__importDefault(require_CREATE()),INFO_1=__importDefault(require_INFO5()),MAX_1=__importDefault(require_MAX()),MERGE_1=__importDefault(require_MERGE2()),MIN_1=__importDefault(require_MIN()),QUANTILE_1=__importDefault(require_QUANTILE()),RANK_1=__importDefault(require_RANK()),RESET_1=__importDefault(require_RESET()),REVRANK_1=__importDefault(require_REVRANK()),TRIMMED_MEAN_1=__importDefault(require_TRIMMED_MEAN());exports.default={ADD:ADD_1.default,add:ADD_1.default,BYRANK:BYRANK_1.default,byRank:BYRANK_1.default,BYREVRANK:BYREVRANK_1.default,byRevRank:BYREVRANK_1.default,CDF:CDF_1.default,cdf:CDF_1.default,CREATE:CREATE_1.default,create:CREATE_1.default,INFO:INFO_1.default,info:INFO_1.default,MAX:MAX_1.default,max:MAX_1.default,MERGE:MERGE_1.default,merge:MERGE_1.default,MIN:MIN_1.default,min:MIN_1.default,QUANTILE:QUANTILE_1.default,quantile:QUANTILE_1.default,RANK:RANK_1.default,rank:RANK_1.default,RESET:RESET_1.default,reset:RESET_1.default,REVRANK:REVRANK_1.default,revRank:REVRANK_1.default,TRIMMED_MEAN:TRIMMED_MEAN_1.default,trimmedMean:TRIMMED_MEAN_1.default}}),require_ADD4=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items){parser.push("TOPK.ADD"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:void 0}}),require_COUNT2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,items){parser.push("TOPK.COUNT"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:void 0}}),require_INCRBY3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});function pushIncrByItem(parser,{item,incrementBy}){parser.push(item,incrementBy.toString())}exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items){if(parser.push("TOPK.INCRBY"),parser.pushKey(key),Array.isArray(items))for(let item of items)pushIncrByItem(parser,item);else pushIncrByItem(parser,items)},transformReply:void 0}}),require_INFO6=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),bloom_1=require_bloom();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TOPK.INFO"),parser.pushKey(key)},transformReply:{2:(reply,preserve,typeMapping)=>{return reply[7]=generic_transformers_1.transformDoubleReply[2](reply[7],preserve,typeMapping),(0,bloom_1.transformInfoV2Reply)(reply,typeMapping)},3:void 0}}}),require_LIST_WITHCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TOPK.LIST"),parser.pushKey(key),parser.push("WITHCOUNT")},transformReply(rawReply){let reply=[];for(let i=0;i<rawReply.length;i++)reply.push({item:rawReply[i],count:rawReply[++i]});return reply}}}),require_LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TOPK.LIST"),parser.pushKey(key)},transformReply:void 0}}),require_QUERY2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,items){parser.push("TOPK.QUERY"),parser.pushKey(key),parser.pushVariadic(items)},transformReply:generic_transformers_1.transformBooleanArrayReply}}),require_RESERVE3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,topK,options){if(parser.push("TOPK.RESERVE"),parser.pushKey(key),parser.push(topK.toString()),options)parser.push(options.width.toString(),options.depth.toString(),options.decay.toString())},transformReply:void 0}}),require_top_k=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ADD_1=__importDefault(require_ADD4()),COUNT_1=__importDefault(require_COUNT2()),INCRBY_1=__importDefault(require_INCRBY3()),INFO_1=__importDefault(require_INFO6()),LIST_WITHCOUNT_1=__importDefault(require_LIST_WITHCOUNT()),LIST_1=__importDefault(require_LIST()),QUERY_1=__importDefault(require_QUERY2()),RESERVE_1=__importDefault(require_RESERVE3());exports.default={ADD:ADD_1.default,add:ADD_1.default,COUNT:COUNT_1.default,count:COUNT_1.default,INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INFO:INFO_1.default,info:INFO_1.default,LIST_WITHCOUNT:LIST_WITHCOUNT_1.default,listWithCount:LIST_WITHCOUNT_1.default,LIST:LIST_1.default,list:LIST_1.default,QUERY:QUERY_1.default,query:QUERY_1.default,RESERVE:RESERVE_1.default,reserve:RESERVE_1.default}}),require_commands3=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var bloom_1=__importDefault(require_bloom()),count_min_sketch_1=__importDefault(require_count_min_sketch()),cuckoo_1=__importDefault(require_cuckoo()),t_digest_1=__importDefault(require_t_digest()),top_k_1=__importDefault(require_top_k());exports.default={bf:bloom_1.default,cms:count_min_sketch_1.default,cf:cuckoo_1.default,tDigest:t_digest_1.default,topK:top_k_1.default}}),require_lib2=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var commands_1=require_commands3();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(commands_1).default}})}),require_ARRAPPEND=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,json,...jsons){parser.push("JSON.ARRAPPEND"),parser.pushKey(key),parser.push(path,(0,generic_transformers_1.transformRedisJsonArgument)(json));for(let i=0;i<jsons.length;i++)parser.push((0,generic_transformers_1.transformRedisJsonArgument)(jsons[i]))},transformReply:void 0}}),require_ARRINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,path,json,options){if(parser.push("JSON.ARRINDEX"),parser.pushKey(key),parser.push(path,(0,generic_transformers_1.transformRedisJsonArgument)(json)),options?.range){if(parser.push(options.range.start.toString()),options.range.stop!==void 0)parser.push(options.range.stop.toString())}},transformReply:void 0}}),require_ARRINSERT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,index,json,...jsons){parser.push("JSON.ARRINSERT"),parser.pushKey(key),parser.push(path,index.toString(),(0,generic_transformers_1.transformRedisJsonArgument)(json));for(let i=0;i<jsons.length;i++)parser.push((0,generic_transformers_1.transformRedisJsonArgument)(jsons[i]))},transformReply:void 0}}),require_ARRLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("JSON.ARRLEN"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_ARRPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.ARRPOP"),parser.pushKey(key),options){if(parser.push(options.path),options.index!==void 0)parser.push(options.index.toString())}},transformReply(reply){return(0,generic_transformers_1.isArrayReply)(reply)?reply.map((item)=>(0,generic_transformers_1.transformRedisJsonNullReply)(item)):(0,generic_transformers_1.transformRedisJsonNullReply)(reply)}}}),require_ARRTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,start3,stop22){parser.push("JSON.ARRTRIM"),parser.pushKey(key),parser.push(path,start3.toString(),stop22.toString())},transformReply:void 0}}),require_CLEAR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.CLEAR"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_DEBUG_MEMORY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.DEBUG","MEMORY"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_DEL3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.DEL"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_FORGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.FORGET"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_GET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.GET"),parser.pushKey(key),options?.path!==void 0)parser.pushVariadic(options.path)},transformReply:generic_transformers_1.transformRedisJsonNullReply}}),require_MERGE3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,value){parser.push("JSON.MERGE"),parser.pushKey(key),parser.push(path,(0,generic_transformers_1.transformRedisJsonArgument)(value))},transformReply:void 0}}),require_MGET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,keys3,path){parser.push("JSON.MGET"),parser.pushKeys(keys3),parser.push(path)},transformReply(reply){return reply.map((json)=>(0,generic_transformers_1.transformRedisJsonNullReply)(json))}}}),require_MSET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,items){parser.push("JSON.MSET");for(let i=0;i<items.length;i++)parser.pushKey(items[i].key),parser.push(items[i].path,(0,generic_transformers_1.transformRedisJsonArgument)(items[i].value))},transformReply:void 0}}),require_NUMINCRBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,by){parser.push("JSON.NUMINCRBY"),parser.pushKey(key),parser.push(path,by.toString())},transformReply:{2:(reply)=>{return JSON.parse(reply.toString())},3:void 0}}}),require_NUMMULTBY=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var NUMINCRBY_1=__importDefault(require_NUMINCRBY());exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,by){parser.push("JSON.NUMMULTBY"),parser.pushKey(key),parser.push(path,by.toString())},transformReply:NUMINCRBY_1.default.transformReply}}),require_OBJKEYS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("JSON.OBJKEYS"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_OBJLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("JSON.OBJLEN"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path)},transformReply:void 0}}),require_SET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,json,options){if(parser.push("JSON.SET"),parser.pushKey(key),parser.push(path,(0,generic_transformers_1.transformRedisJsonArgument)(json)),options?.condition)parser.push(options?.condition);else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX")},transformReply:void 0}}),require_STRAPPEND=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,append4,options){if(parser.push("JSON.STRAPPEND"),parser.pushKey(key),options?.path!==void 0)parser.push(options.path);parser.push((0,generic_transformers_1.transformRedisJsonArgument)(append4))},transformReply:void 0}}),require_STRLEN2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("JSON.STRLEN"),parser.pushKey(key),options?.path)parser.push(options.path)},transformReply:void 0}}),require_TOGGLE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path){parser.push("JSON.TOGGLE"),parser.pushKey(key),parser.push(path)},transformReply:void 0}}),require_TYPE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("JSON.TYPE"),parser.pushKey(key),options?.path)parser.push(options.path)},transformReply:{2:void 0,3:(reply)=>{return reply[0]}}}}),require_commands4=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformRedisJsonNullReply=exports.transformRedisJsonReply=exports.transformRedisJsonArgument=void 0;var ARRAPPEND_1=__importDefault(require_ARRAPPEND()),ARRINDEX_1=__importDefault(require_ARRINDEX()),ARRINSERT_1=__importDefault(require_ARRINSERT()),ARRLEN_1=__importDefault(require_ARRLEN()),ARRPOP_1=__importDefault(require_ARRPOP()),ARRTRIM_1=__importDefault(require_ARRTRIM()),CLEAR_1=__importDefault(require_CLEAR()),DEBUG_MEMORY_1=__importDefault(require_DEBUG_MEMORY()),DEL_1=__importDefault(require_DEL3()),FORGET_1=__importDefault(require_FORGET()),GET_1=__importDefault(require_GET2()),MERGE_1=__importDefault(require_MERGE3()),MGET_1=__importDefault(require_MGET2()),MSET_1=__importDefault(require_MSET2()),NUMINCRBY_1=__importDefault(require_NUMINCRBY()),NUMMULTBY_1=__importDefault(require_NUMMULTBY()),OBJKEYS_1=__importDefault(require_OBJKEYS()),OBJLEN_1=__importDefault(require_OBJLEN()),SET_1=__importDefault(require_SET2()),STRAPPEND_1=__importDefault(require_STRAPPEND()),STRLEN_1=__importDefault(require_STRLEN2()),TOGGLE_1=__importDefault(require_TOGGLE()),TYPE_1=__importDefault(require_TYPE2()),generic_transformers_1=require_generic_transformers();Object.defineProperty(exports,"transformRedisJsonArgument",{enumerable:!0,get:function(){return generic_transformers_1.transformRedisJsonArgument}}),Object.defineProperty(exports,"transformRedisJsonReply",{enumerable:!0,get:function(){return generic_transformers_1.transformRedisJsonReply}}),Object.defineProperty(exports,"transformRedisJsonNullReply",{enumerable:!0,get:function(){return generic_transformers_1.transformRedisJsonNullReply}}),exports.default={ARRAPPEND:ARRAPPEND_1.default,arrAppend:ARRAPPEND_1.default,ARRINDEX:ARRINDEX_1.default,arrIndex:ARRINDEX_1.default,ARRINSERT:ARRINSERT_1.default,arrInsert:ARRINSERT_1.default,ARRLEN:ARRLEN_1.default,arrLen:ARRLEN_1.default,ARRPOP:ARRPOP_1.default,arrPop:ARRPOP_1.default,ARRTRIM:ARRTRIM_1.default,arrTrim:ARRTRIM_1.default,CLEAR:CLEAR_1.default,clear:CLEAR_1.default,DEBUG_MEMORY:DEBUG_MEMORY_1.default,debugMemory:DEBUG_MEMORY_1.default,DEL:DEL_1.default,del:DEL_1.default,FORGET:FORGET_1.default,forget:FORGET_1.default,GET:GET_1.default,get:GET_1.default,MERGE:MERGE_1.default,merge:MERGE_1.default,MGET:MGET_1.default,mGet:MGET_1.default,MSET:MSET_1.default,mSet:MSET_1.default,NUMINCRBY:NUMINCRBY_1.default,numIncrBy:NUMINCRBY_1.default,NUMMULTBY:NUMMULTBY_1.default,numMultBy:NUMMULTBY_1.default,OBJKEYS:OBJKEYS_1.default,objKeys:OBJKEYS_1.default,OBJLEN:OBJLEN_1.default,objLen:OBJLEN_1.default,SET:SET_1.default,set:SET_1.default,STRAPPEND:STRAPPEND_1.default,strAppend:STRAPPEND_1.default,STRLEN:STRLEN_1.default,strLen:STRLEN_1.default,TOGGLE:TOGGLE_1.default,toggle:TOGGLE_1.default,TYPE:TYPE_1.default,type:TYPE_1.default}}),require_lib3=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var commands_1=require_commands4();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(commands_1).default}})}),require__LIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser){parser.push("FT._LIST")},transformReply:{2:void 0,3:void 0}}}),require_CREATE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.REDISEARCH_LANGUAGE=exports.parseSchema=exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM=exports.VAMANA_COMPRESSION_ALGORITHM=exports.SCHEMA_VECTOR_FIELD_ALGORITHM=exports.SCHEMA_TEXT_FIELD_PHONETIC=exports.SCHEMA_FIELD_TYPE=void 0;var generic_transformers_1=require_generic_transformers();exports.SCHEMA_FIELD_TYPE={TEXT:"TEXT",NUMERIC:"NUMERIC",GEO:"GEO",TAG:"TAG",VECTOR:"VECTOR",GEOSHAPE:"GEOSHAPE"},exports.SCHEMA_TEXT_FIELD_PHONETIC={DM_EN:"dm:en",DM_FR:"dm:fr",FM_PT:"dm:pt",DM_ES:"dm:es"},exports.SCHEMA_VECTOR_FIELD_ALGORITHM={FLAT:"FLAT",HNSW:"HNSW",VAMANA:"SVS-VAMANA"},exports.VAMANA_COMPRESSION_ALGORITHM={LVQ4:"LVQ4",LVQ8:"LVQ8",LVQ4x4:"LVQ4x4",LVQ4x8:"LVQ4x8",LeanVec4x8:"LeanVec4x8",LeanVec8x8:"LeanVec8x8"},exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM={SPHERICAL:"SPHERICAL",FLAT:"FLAT"};function parseCommonSchemaFieldOptions(parser,fieldOptions){if(fieldOptions.SORTABLE){if(parser.push("SORTABLE"),fieldOptions.SORTABLE==="UNF")parser.push("UNF")}if(fieldOptions.NOINDEX)parser.push("NOINDEX")}function parseSchema(parser,schema){for(let[field,fieldOptions]of Object.entries(schema)){if(parser.push(field),typeof fieldOptions==="string"){parser.push(fieldOptions);continue}if(fieldOptions.AS)parser.push("AS",fieldOptions.AS);if(parser.push(fieldOptions.type),fieldOptions.INDEXMISSING)parser.push("INDEXMISSING");switch(fieldOptions.type){case exports.SCHEMA_FIELD_TYPE.TEXT:if(fieldOptions.NOSTEM)parser.push("NOSTEM");if(fieldOptions.WEIGHT!==void 0)parser.push("WEIGHT",fieldOptions.WEIGHT.toString());if(fieldOptions.PHONETIC)parser.push("PHONETIC",fieldOptions.PHONETIC);if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.NUMERIC:case exports.SCHEMA_FIELD_TYPE.GEO:parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.TAG:if(fieldOptions.SEPARATOR)parser.push("SEPARATOR",fieldOptions.SEPARATOR);if(fieldOptions.CASESENSITIVE)parser.push("CASESENSITIVE");if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.VECTOR:parser.push(fieldOptions.ALGORITHM);let args2=[];if(args2.push("TYPE",fieldOptions.TYPE,"DIM",fieldOptions.DIM.toString(),"DISTANCE_METRIC",fieldOptions.DISTANCE_METRIC),fieldOptions.INITIAL_CAP!==void 0)args2.push("INITIAL_CAP",fieldOptions.INITIAL_CAP.toString());switch(fieldOptions.ALGORITHM){case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:if(fieldOptions.BLOCK_SIZE!==void 0)args2.push("BLOCK_SIZE",fieldOptions.BLOCK_SIZE.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:if(fieldOptions.M!==void 0)args2.push("M",fieldOptions.M.toString());if(fieldOptions.EF_CONSTRUCTION!==void 0)args2.push("EF_CONSTRUCTION",fieldOptions.EF_CONSTRUCTION.toString());if(fieldOptions.EF_RUNTIME!==void 0)args2.push("EF_RUNTIME",fieldOptions.EF_RUNTIME.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.VAMANA:if(fieldOptions.COMPRESSION)args2.push("COMPRESSION",fieldOptions.COMPRESSION);if(fieldOptions.CONSTRUCTION_WINDOW_SIZE!==void 0)args2.push("CONSTRUCTION_WINDOW_SIZE",fieldOptions.CONSTRUCTION_WINDOW_SIZE.toString());if(fieldOptions.GRAPH_MAX_DEGREE!==void 0)args2.push("GRAPH_MAX_DEGREE",fieldOptions.GRAPH_MAX_DEGREE.toString());if(fieldOptions.SEARCH_WINDOW_SIZE!==void 0)args2.push("SEARCH_WINDOW_SIZE",fieldOptions.SEARCH_WINDOW_SIZE.toString());if(fieldOptions.EPSILON!==void 0)args2.push("EPSILON",fieldOptions.EPSILON.toString());if(fieldOptions.TRAINING_THRESHOLD!==void 0)args2.push("TRAINING_THRESHOLD",fieldOptions.TRAINING_THRESHOLD.toString());if(fieldOptions.REDUCE!==void 0)args2.push("REDUCE",fieldOptions.REDUCE.toString());break}parser.pushVariadicWithLength(args2);break;case exports.SCHEMA_FIELD_TYPE.GEOSHAPE:if(fieldOptions.COORD_SYSTEM!==void 0)parser.push("COORD_SYSTEM",fieldOptions.COORD_SYSTEM);break}}}exports.parseSchema=parseSchema,exports.REDISEARCH_LANGUAGE={ARABIC:"Arabic",BASQUE:"Basque",CATALANA:"Catalan",DANISH:"Danish",DUTCH:"Dutch",ENGLISH:"English",FINNISH:"Finnish",FRENCH:"French",GERMAN:"German",GREEK:"Greek",HUNGARIAN:"Hungarian",INDONESAIN:"Indonesian",IRISH:"Irish",ITALIAN:"Italian",LITHUANIAN:"Lithuanian",NEPALI:"Nepali",NORWEIGAN:"Norwegian",PORTUGUESE:"Portuguese",ROMANIAN:"Romanian",RUSSIAN:"Russian",SPANISH:"Spanish",SWEDISH:"Swedish",TAMIL:"Tamil",TURKISH:"Turkish",CHINESE:"Chinese"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,schema,options){if(parser.push("FT.CREATE",index),options?.ON)parser.push("ON",options.ON);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"PREFIX",options?.PREFIX),options?.FILTER)parser.push("FILTER",options.FILTER);if(options?.LANGUAGE)parser.push("LANGUAGE",options.LANGUAGE);if(options?.LANGUAGE_FIELD)parser.push("LANGUAGE_FIELD",options.LANGUAGE_FIELD);if(options?.SCORE)parser.push("SCORE",options.SCORE.toString());if(options?.SCORE_FIELD)parser.push("SCORE_FIELD",options.SCORE_FIELD);if(options?.MAXTEXTFIELDS)parser.push("MAXTEXTFIELDS");if(options?.TEMPORARY)parser.push("TEMPORARY",options.TEMPORARY.toString());if(options?.NOOFFSETS)parser.push("NOOFFSETS");if(options?.NOHL)parser.push("NOHL");if(options?.NOFIELDS)parser.push("NOFIELDS");if(options?.NOFREQS)parser.push("NOFREQS");if(options?.SKIPINITIALSCAN)parser.push("SKIPINITIALSCAN");(0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"STOPWORDS",options?.STOPWORDS),parser.push("SCHEMA"),parseSchema(parser,schema)},transformReply:void 0}}),require_ALTER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var CREATE_1=require_CREATE2();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,schema){parser.push("FT.ALTER",index,"SCHEMA","ADD"),(0,CREATE_1.parseSchema)(parser,schema)},transformReply:void 0}}),require_default=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_DIALECT=void 0,exports.DEFAULT_DIALECT="2"}),require_SEARCH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseSearchOptions=exports.parseParamsArgument=void 0;var generic_transformers_1=require_generic_transformers(),default_1=require_default();function parseParamsArgument(parser,params){if(params){parser.push("PARAMS");let args2=[];for(let key in params){if(!Object.hasOwn(params,key))continue;let value=params[key];args2.push(key,typeof value==="number"?value.toString():value)}parser.pushVariadicWithLength(args2)}}exports.parseParamsArgument=parseParamsArgument;function parseSearchOptions(parser,options){if(options?.VERBATIM)parser.push("VERBATIM");if(options?.NOSTOPWORDS)parser.push("NOSTOPWORDS");if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"INKEYS",options?.INKEYS),(0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"INFIELDS",options?.INFIELDS),(0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"RETURN",options?.RETURN),options?.SUMMARIZE){if(parser.push("SUMMARIZE"),typeof options.SUMMARIZE==="object"){if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"FIELDS",options.SUMMARIZE.FIELDS),options.SUMMARIZE.FRAGS!==void 0)parser.push("FRAGS",options.SUMMARIZE.FRAGS.toString());if(options.SUMMARIZE.LEN!==void 0)parser.push("LEN",options.SUMMARIZE.LEN.toString());if(options.SUMMARIZE.SEPARATOR!==void 0)parser.push("SEPARATOR",options.SUMMARIZE.SEPARATOR)}}if(options?.HIGHLIGHT){if(parser.push("HIGHLIGHT"),typeof options.HIGHLIGHT==="object"){if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"FIELDS",options.HIGHLIGHT.FIELDS),options.HIGHLIGHT.TAGS)parser.push("TAGS",options.HIGHLIGHT.TAGS.open,options.HIGHLIGHT.TAGS.close)}}if(options?.SLOP!==void 0)parser.push("SLOP",options.SLOP.toString());if(options?.TIMEOUT!==void 0)parser.push("TIMEOUT",options.TIMEOUT.toString());if(options?.INORDER)parser.push("INORDER");if(options?.LANGUAGE)parser.push("LANGUAGE",options.LANGUAGE);if(options?.EXPANDER)parser.push("EXPANDER",options.EXPANDER);if(options?.SCORER)parser.push("SCORER",options.SCORER);if(options?.SORTBY){if(parser.push("SORTBY"),typeof options.SORTBY==="string"||options.SORTBY instanceof Buffer)parser.push(options.SORTBY);else if(parser.push(options.SORTBY.BY),options.SORTBY.DIRECTION)parser.push(options.SORTBY.DIRECTION)}if(options?.LIMIT)parser.push("LIMIT",options.LIMIT.from.toString(),options.LIMIT.size.toString());if(parseParamsArgument(parser,options?.PARAMS),options?.DIALECT)parser.push("DIALECT",options.DIALECT.toString());else parser.push("DIALECT",default_1.DEFAULT_DIALECT)}exports.parseSearchOptions=parseSearchOptions,exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){parser.push("FT.SEARCH",index,query),parseSearchOptions(parser,options)},transformReply:{2:(reply)=>{let withoutDocuments=reply.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}},3:void 0},unstableResp3:!0};function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}}),require_AGGREGATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseAggregateOptions=exports.FT_AGGREGATE_GROUP_BY_REDUCERS=exports.FT_AGGREGATE_STEPS=void 0;var SEARCH_1=require_SEARCH(),generic_transformers_1=require_generic_transformers(),default_1=require_default();exports.FT_AGGREGATE_STEPS={GROUPBY:"GROUPBY",SORTBY:"SORTBY",APPLY:"APPLY",LIMIT:"LIMIT",FILTER:"FILTER"},exports.FT_AGGREGATE_GROUP_BY_REDUCERS={COUNT:"COUNT",COUNT_DISTINCT:"COUNT_DISTINCT",COUNT_DISTINCTISH:"COUNT_DISTINCTISH",SUM:"SUM",MIN:"MIN",MAX:"MAX",AVG:"AVG",STDDEV:"STDDEV",QUANTILE:"QUANTILE",TOLIST:"TOLIST",FIRST_VALUE:"FIRST_VALUE",RANDOM_SAMPLE:"RANDOM_SAMPLE"},exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,index,query,options){return parser.push("FT.AGGREGATE",index,query),parseAggregateOptions(parser,options)},transformReply:{2:(rawReply,preserve,typeMapping)=>{let results=[];for(let i=1;i<rawReply.length;i++)results.push((0,generic_transformers_1.transformTuplesReply)(rawReply[i],preserve,typeMapping));return{total:Number(rawReply[0]),results}},3:void 0},unstableResp3:!0};function parseAggregateOptions(parser,options){if(options?.VERBATIM)parser.push("VERBATIM");if(options?.ADDSCORES)parser.push("ADDSCORES");if(options?.LOAD){let args2=[];if(Array.isArray(options.LOAD))for(let load of options.LOAD)pushLoadField(args2,load);else pushLoadField(args2,options.LOAD);parser.push("LOAD"),parser.pushVariadicWithLength(args2)}if(options?.TIMEOUT!==void 0)parser.push("TIMEOUT",options.TIMEOUT.toString());if(options?.STEPS)for(let step4 of options.STEPS)switch(parser.push(step4.type),step4.type){case exports.FT_AGGREGATE_STEPS.GROUPBY:if(!step4.properties)parser.push("0");else parser.pushVariadicWithLength(step4.properties);if(Array.isArray(step4.REDUCE))for(let reducer of step4.REDUCE)parseGroupByReducer(parser,reducer);else parseGroupByReducer(parser,step4.REDUCE);break;case exports.FT_AGGREGATE_STEPS.SORTBY:let args2=[];if(Array.isArray(step4.BY))for(let by of step4.BY)pushSortByProperty(args2,by);else pushSortByProperty(args2,step4.BY);if(step4.MAX)args2.push("MAX",step4.MAX.toString());parser.pushVariadicWithLength(args2);break;case exports.FT_AGGREGATE_STEPS.APPLY:parser.push(step4.expression,"AS",step4.AS);break;case exports.FT_AGGREGATE_STEPS.LIMIT:parser.push(step4.from.toString(),step4.size.toString());break;case exports.FT_AGGREGATE_STEPS.FILTER:parser.push(step4.expression);break}if((0,SEARCH_1.parseParamsArgument)(parser,options?.PARAMS),options?.DIALECT)parser.push("DIALECT",options.DIALECT.toString());else parser.push("DIALECT",default_1.DEFAULT_DIALECT)}exports.parseAggregateOptions=parseAggregateOptions;function pushLoadField(args2,toLoad){if(typeof toLoad==="string"||toLoad instanceof Buffer)args2.push(toLoad);else if(args2.push(toLoad.identifier),toLoad.AS)args2.push("AS",toLoad.AS)}function parseGroupByReducer(parser,reducer){switch(parser.push("REDUCE",reducer.type),reducer.type){case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT:parser.push("0");break;case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCT:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCTISH:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.SUM:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.MIN:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.MAX:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.AVG:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.STDDEV:case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.TOLIST:parser.push("1",reducer.property);break;case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.QUANTILE:parser.push("2",reducer.property,reducer.quantile.toString());break;case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.FIRST_VALUE:{let args2=[reducer.property];if(reducer.BY){if(args2.push("BY"),typeof reducer.BY==="string"||reducer.BY instanceof Buffer)args2.push(reducer.BY);else if(args2.push(reducer.BY.property),reducer.BY.direction)args2.push(reducer.BY.direction)}parser.pushVariadicWithLength(args2);break}case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.RANDOM_SAMPLE:parser.push("2",reducer.property,reducer.sampleSize.toString());break}if(reducer.AS)parser.push("AS",reducer.AS)}function pushSortByProperty(args2,sortBy){if(typeof sortBy==="string"||sortBy instanceof Buffer)args2.push(sortBy);else if(args2.push(sortBy.BY),sortBy.DIRECTION)args2.push(sortBy.DIRECTION)}}),require_AGGREGATE_WITHCURSOR=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var AGGREGATE_1=__importDefault(require_AGGREGATE());exports.default={IS_READ_ONLY:AGGREGATE_1.default.IS_READ_ONLY,parseCommand(parser,index,query,options){if(AGGREGATE_1.default.parseCommand(parser,index,query,options),parser.push("WITHCURSOR"),options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString());if(options?.MAXIDLE!==void 0)parser.push("MAXIDLE",options.MAXIDLE.toString())},transformReply:{2:(reply)=>{return{...AGGREGATE_1.default.transformReply[2](reply[0]),cursor:reply[1]}},3:void 0},unstableResp3:!0}}),require_ALIASADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,alias,index){parser.push("FT.ALIASADD",alias,index)},transformReply:void 0}}),require_ALIASDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,alias){parser.push("FT.ALIASDEL",alias)},transformReply:void 0}}),require_ALIASUPDATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,alias,index){parser.push("FT.ALIASUPDATE",alias,index)},transformReply:void 0}}),require_CONFIG_GET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,option32){parser.push("FT.CONFIG","GET",option32)},transformReply(reply){let transformedReply=Object.create(null);for(let item of reply){let[key,value]=item;transformedReply[key.toString()]=value}return transformedReply}}}),require_CONFIG_SET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,property,value){parser.push("FT.CONFIG","SET",property,value)},transformReply:void 0}}),require_CURSOR_DEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,cursorId){parser.push("FT.CURSOR","DEL",index,cursorId.toString())},transformReply:void 0}}),require_CURSOR_READ=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var AGGREGATE_WITHCURSOR_1=__importDefault(require_AGGREGATE_WITHCURSOR());exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,cursor,options){if(parser.push("FT.CURSOR","READ",index,cursor.toString()),options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString())},transformReply:AGGREGATE_WITHCURSOR_1.default.transformReply,unstableResp3:!0}}),require_DICTADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,dictionary,term){parser.push("FT.DICTADD",dictionary),parser.pushVariadic(term)},transformReply:void 0}}),require_DICTDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,dictionary,term){parser.push("FT.DICTDEL",dictionary),parser.pushVariadic(term)},transformReply:void 0}}),require_DICTDUMP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,dictionary){parser.push("FT.DICTDUMP",dictionary)},transformReply:{2:void 0,3:void 0}}}),require_DROPINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,options){if(parser.push("FT.DROPINDEX",index),options?.DD)parser.push("DD")},transformReply:{2:void 0,3:void 0}}}),require_EXPLAIN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var SEARCH_1=require_SEARCH(),default_1=require_default();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){if(parser.push("FT.EXPLAIN",index,query),(0,SEARCH_1.parseParamsArgument)(parser,options?.PARAMS),options?.DIALECT)parser.push("DIALECT",options.DIALECT.toString());else parser.push("DIALECT",default_1.DEFAULT_DIALECT)},transformReply:void 0}}),require_EXPLAINCLI=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var default_1=require_default();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){if(parser.push("FT.EXPLAINCLI",index,query),options?.DIALECT)parser.push("DIALECT",options.DIALECT.toString());else parser.push("DIALECT",default_1.DEFAULT_DIALECT)},transformReply:void 0}}),require_HYBRID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SEARCH_1=require_SEARCH();function parseSearchExpression(parser,search){if(parser.push("SEARCH",search.query),search.SCORER){if(parser.push("SCORER",search.SCORER.algorithm),search.SCORER.params)parser.push(...search.SCORER.params)}if(search.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",search.YIELD_SCORE_AS)}function parseVectorExpression(parser,vsim){if(parser.push("VSIM",vsim.field,vsim.vectorData),vsim.method){if(vsim.method.KNN){let knn=vsim.method.KNN;if(parser.push("KNN","1","K",knn.K.toString()),knn.EF_RUNTIME!==void 0)parser.push("EF_RUNTIME",knn.EF_RUNTIME.toString());if(knn.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",knn.YIELD_DISTANCE_AS)}if(vsim.method.RANGE){let range4=vsim.method.RANGE;if(parser.push("RANGE","1","RADIUS",range4.RADIUS.toString()),range4.EPSILON!==void 0)parser.push("EPSILON",range4.EPSILON.toString());if(range4.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",range4.YIELD_DISTANCE_AS)}}if(vsim.FILTER){if(parser.push("FILTER",vsim.FILTER.expression),vsim.FILTER.POLICY){if(parser.push("POLICY",vsim.FILTER.POLICY),vsim.FILTER.POLICY==="BATCHES"&&vsim.FILTER.BATCHES)parser.push("BATCHES","BATCH_SIZE",vsim.FILTER.BATCHES.BATCH_SIZE.toString())}}if(vsim.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",vsim.YIELD_SCORE_AS)}function parseCombineMethod(parser,combine11){if(!combine11)return;if(parser.push("COMBINE"),combine11.method.RRF){let rrf=combine11.method.RRF;if(parser.push("RRF",rrf.count.toString()),rrf.WINDOW!==void 0)parser.push("WINDOW",rrf.WINDOW.toString());if(rrf.CONSTANT!==void 0)parser.push("CONSTANT",rrf.CONSTANT.toString())}if(combine11.method.LINEAR){let linear22=combine11.method.LINEAR;if(parser.push("LINEAR",linear22.count.toString()),linear22.ALPHA!==void 0)parser.push("ALPHA",linear22.ALPHA.toString());if(linear22.BETA!==void 0)parser.push("BETA",linear22.BETA.toString())}if(combine11.method.FUNCTION)parser.push("FUNCTION",combine11.method.FUNCTION);if(combine11.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",combine11.YIELD_SCORE_AS)}function parseHybridOptions(parser,options){if(!options)return;if(options.SEARCH)parseSearchExpression(parser,options.SEARCH);if(options.VSIM)parseVectorExpression(parser,options.VSIM);if(options.COMBINE)parseCombineMethod(parser,options.COMBINE);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"LOAD",options.LOAD),options.GROUPBY){if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"GROUPBY",options.GROUPBY.fields),options.GROUPBY.REDUCE)parser.push("REDUCE",options.GROUPBY.REDUCE.function,options.GROUPBY.REDUCE.count.toString()),parser.push(...options.GROUPBY.REDUCE.args)}if(options.APPLY)parser.push("APPLY",options.APPLY.expression,"AS",options.APPLY.AS);if(options.SORTBY){parser.push("SORTBY",options.SORTBY.count.toString());for(let sortField of options.SORTBY.fields)if(parser.push(sortField.field),sortField.direction)parser.push(sortField.direction)}if(options.FILTER)parser.push("FILTER",options.FILTER);if(options.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.num.toString());if((0,SEARCH_1.parseParamsArgument)(parser,options.PARAMS),options.EXPLAINSCORE)parser.push("EXPLAINSCORE");if(options.TIMEOUT!==void 0)parser.push("TIMEOUT",options.TIMEOUT.toString());if(options.WITHCURSOR){if(parser.push("WITHCURSOR"),options.WITHCURSOR.COUNT!==void 0)parser.push("COUNT",options.WITHCURSOR.COUNT.toString());if(options.WITHCURSOR.MAXIDLE!==void 0)parser.push("MAXIDLE",options.WITHCURSOR.MAXIDLE.toString())}}exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,options){parser.push("FT.HYBRID",index),parseHybridOptions(parser,options)},transformReply:{2:(reply)=>{if(Array.isArray(reply)&&reply.length===2&&typeof reply[1]==="number"){let[searchResults,cursor]=reply;return{...transformHybridSearchResults(searchResults),cursor}}else return transformHybridSearchResults(reply)},3:void 0},unstableResp3:!0};function transformHybridSearchResults(reply){let withoutDocuments=reply.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}}function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}}),require_INFO7=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index){parser.push("FT.INFO",index)},transformReply:{2:transformV2Reply,3:void 0},unstableResp3:!0};function transformV2Reply(reply,preserve,typeMapping){let myTransformFunc=(0,generic_transformers_1.createTransformTuplesReplyFunc)(preserve,typeMapping),ret={};for(let i=0;i<reply.length;i+=2){let key=reply[i].toString();switch(key){case"index_name":case"index_options":case"num_docs":case"max_doc_id":case"num_terms":case"num_records":case"total_inverted_index_blocks":case"hash_indexing_failures":case"indexing":case"number_of_uses":case"cleaning":case"stopwords_list":ret[key]=reply[i+1];break;case"inverted_sz_mb":case"vector_index_sz_mb":case"offset_vectors_sz_mb":case"doc_table_size_mb":case"sortable_values_size_mb":case"key_table_size_mb":case"text_overhead_sz_mb":case"tag_overhead_sz_mb":case"total_index_memory_sz_mb":case"geoshapes_sz_mb":case"records_per_doc_avg":case"bytes_per_record_avg":case"offsets_per_term_avg":case"offset_bits_per_record_avg":case"total_indexing_time":case"percent_indexed":ret[key]=generic_transformers_1.transformDoubleReply[2](reply[i+1],void 0,typeMapping);break;case"index_definition":ret[key]=myTransformFunc(reply[i+1]);break;case"attributes":ret[key]=reply[i+1].map((attribute)=>myTransformFunc(attribute));break;case"gc_stats":{let innerRet={},array42=reply[i+1];for(let i2=0;i2<array42.length;i2+=2){let innerKey=array42[i2].toString();switch(innerKey){case"bytes_collected":case"total_ms_run":case"total_cycles":case"average_cycle_time_ms":case"last_run_time_ms":case"gc_numeric_trees_missed":case"gc_blocks_denied":innerRet[innerKey]=generic_transformers_1.transformDoubleReply[2](array42[i2+1],void 0,typeMapping);break}}ret[key]=innerRet;break}case"cursor_stats":{let innerRet={},array42=reply[i+1];for(let i2=0;i2<array42.length;i2+=2){let innerKey=array42[i2].toString();switch(innerKey){case"global_idle":case"global_total":case"index_capacity":case"index_total":innerRet[innerKey]=array42[i2+1];break}}ret[key]=innerRet;break}}}return ret}}),require_PROFILE_SEARCH=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var SEARCH_1=__importStar(require_SEARCH());exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){if(parser.push("FT.PROFILE",index,"SEARCH"),options?.LIMITED)parser.push("LIMITED");parser.push("QUERY",query),(0,SEARCH_1.parseSearchOptions)(parser,options)},transformReply:{2:(reply)=>{return{results:SEARCH_1.default.transformReply[2](reply[0]),profile:reply[1]}},3:(reply)=>reply},unstableResp3:!0}}),require_PROFILE_AGGREGATE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var AGGREGATE_1=__importStar(require_AGGREGATE());exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){if(parser.push("FT.PROFILE",index,"AGGREGATE"),options?.LIMITED)parser.push("LIMITED");parser.push("QUERY",query),(0,AGGREGATE_1.parseAggregateOptions)(parser,options)},transformReply:{2:(reply)=>{return{results:AGGREGATE_1.default.transformReply[2](reply[0]),profile:reply[1]}},3:(reply)=>reply},unstableResp3:!0}}),require_SEARCH_NOCONTENT=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var SEARCH_1=__importDefault(require_SEARCH());exports.default={NOT_KEYED_COMMAND:SEARCH_1.default.NOT_KEYED_COMMAND,IS_READ_ONLY:SEARCH_1.default.IS_READ_ONLY,parseCommand(...args2){SEARCH_1.default.parseCommand(...args2),args2[0].push("NOCONTENT")},transformReply:{2:(reply)=>{return{total:reply[0],documents:reply.slice(1)}},3:void 0},unstableResp3:!0}}),require_SPELLCHECK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var default_1=require_default();exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,query,options){if(parser.push("FT.SPELLCHECK",index,query),options?.DISTANCE)parser.push("DISTANCE",options.DISTANCE.toString());if(options?.TERMS)if(Array.isArray(options.TERMS))for(let term of options.TERMS)parseTerms(parser,term);else parseTerms(parser,options.TERMS);if(options?.DIALECT)parser.push("DIALECT",options.DIALECT.toString());else parser.push("DIALECT",default_1.DEFAULT_DIALECT)},transformReply:{2:(rawReply)=>{return rawReply.map(([,term,suggestions])=>({term,suggestions:suggestions.map(([score,suggestion])=>({score:Number(score),suggestion}))}))},3:void 0},unstableResp3:!0};function parseTerms(parser,{mode,dictionary}){parser.push("TERMS",mode,dictionary)}}),require_SUGADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string22,score,options){if(parser.push("FT.SUGADD"),parser.pushKey(key),parser.push(string22,score.toString()),options?.INCR)parser.push("INCR");if(options?.PAYLOAD)parser.push("PAYLOAD",options.PAYLOAD)},transformReply:void 0}}),require_SUGDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string22){parser.push("FT.SUGDEL"),parser.pushKey(key),parser.push(string22)},transformReply:void 0}}),require_SUGGET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,prefix,options){if(parser.push("FT.SUGGET"),parser.pushKey(key),parser.push(prefix),options?.FUZZY)parser.push("FUZZY");if(options?.MAX!==void 0)parser.push("MAX",options.MAX.toString())},transformReply:void 0}}),require_SUGGET_WITHPAYLOADS=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SUGGET_1=__importDefault(require_SUGGET());exports.default={IS_READ_ONLY:SUGGET_1.default.IS_READ_ONLY,parseCommand(...args2){SUGGET_1.default.parseCommand(...args2),args2[0].push("WITHPAYLOADS")},transformReply(reply){if((0,generic_transformers_1.isNullReply)(reply))return null;let transformedReply=Array(reply.length/2),replyIndex=0,arrIndex=0;while(replyIndex<reply.length)transformedReply[arrIndex++]={suggestion:reply[replyIndex++],payload:reply[replyIndex++]};return transformedReply}}}),require_SUGGET_WITHSCORES_WITHPAYLOADS=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SUGGET_1=__importDefault(require_SUGGET());exports.default={IS_READ_ONLY:SUGGET_1.default.IS_READ_ONLY,parseCommand(...args2){SUGGET_1.default.parseCommand(...args2),args2[0].push("WITHSCORES","WITHPAYLOADS")},transformReply:{2:(reply,preserve,typeMapping)=>{if((0,generic_transformers_1.isNullReply)(reply))return null;let transformedReply=Array(reply.length/3),replyIndex=0,arrIndex=0;while(replyIndex<reply.length)transformedReply[arrIndex++]={suggestion:reply[replyIndex++],score:generic_transformers_1.transformDoubleReply[2](reply[replyIndex++],preserve,typeMapping),payload:reply[replyIndex++]};return transformedReply},3:(reply)=>{if((0,generic_transformers_1.isNullReply)(reply))return null;let transformedReply=Array(reply.length/3),replyIndex=0,arrIndex=0;while(replyIndex<reply.length)transformedReply[arrIndex++]={suggestion:reply[replyIndex++],score:reply[replyIndex++],payload:reply[replyIndex++]};return transformedReply}}}}),require_SUGGET_WITHSCORES=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SUGGET_1=__importDefault(require_SUGGET());exports.default={IS_READ_ONLY:SUGGET_1.default.IS_READ_ONLY,parseCommand(...args2){SUGGET_1.default.parseCommand(...args2),args2[0].push("WITHSCORES")},transformReply:{2:(reply,preserve,typeMapping)=>{if((0,generic_transformers_1.isNullReply)(reply))return null;let transformedReply=Array(reply.length/2),replyIndex=0,arrIndex=0;while(replyIndex<reply.length)transformedReply[arrIndex++]={suggestion:reply[replyIndex++],score:generic_transformers_1.transformDoubleReply[2](reply[replyIndex++],preserve,typeMapping)};return transformedReply},3:(reply)=>{if((0,generic_transformers_1.isNullReply)(reply))return null;let transformedReply=Array(reply.length/2),replyIndex=0,arrIndex=0;while(replyIndex<reply.length)transformedReply[arrIndex++]={suggestion:reply[replyIndex++],score:reply[replyIndex++]};return transformedReply}}}}),require_SUGLEN=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("FT.SUGLEN",key)},transformReply:void 0}}),require_SYNDUMP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index){parser.push("FT.SYNDUMP",index)},transformReply:{2:(reply)=>{let result={},i=0;while(i<reply.length){let key=reply[i++].toString(),value=reply[i++];result[key]=value}return result},3:void 0}}}),require_SYNUPDATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,groupId,terms,options){if(parser.push("FT.SYNUPDATE",index,groupId),options?.SKIPINITIALSCAN)parser.push("SKIPINITIALSCAN");parser.pushVariadic(terms)},transformReply:void 0}}),require_TAGVALS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,fieldName){parser.push("FT.TAGVALS",index,fieldName)},transformReply:{2:void 0,3:void 0}}}),require_commands5=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var _LIST_1=__importDefault(require__LIST()),ALTER_1=__importDefault(require_ALTER()),AGGREGATE_WITHCURSOR_1=__importDefault(require_AGGREGATE_WITHCURSOR()),AGGREGATE_1=__importDefault(require_AGGREGATE()),ALIASADD_1=__importDefault(require_ALIASADD()),ALIASDEL_1=__importDefault(require_ALIASDEL()),ALIASUPDATE_1=__importDefault(require_ALIASUPDATE()),CONFIG_GET_1=__importDefault(require_CONFIG_GET2()),CONFIG_SET_1=__importDefault(require_CONFIG_SET2()),CREATE_1=__importDefault(require_CREATE2()),CURSOR_DEL_1=__importDefault(require_CURSOR_DEL()),CURSOR_READ_1=__importDefault(require_CURSOR_READ()),DICTADD_1=__importDefault(require_DICTADD()),DICTDEL_1=__importDefault(require_DICTDEL()),DICTDUMP_1=__importDefault(require_DICTDUMP()),DROPINDEX_1=__importDefault(require_DROPINDEX()),EXPLAIN_1=__importDefault(require_EXPLAIN()),EXPLAINCLI_1=__importDefault(require_EXPLAINCLI()),HYBRID_1=__importDefault(require_HYBRID()),INFO_1=__importDefault(require_INFO7()),PROFILE_SEARCH_1=__importDefault(require_PROFILE_SEARCH()),PROFILE_AGGREGATE_1=__importDefault(require_PROFILE_AGGREGATE()),SEARCH_NOCONTENT_1=__importDefault(require_SEARCH_NOCONTENT()),SEARCH_1=__importDefault(require_SEARCH()),SPELLCHECK_1=__importDefault(require_SPELLCHECK()),SUGADD_1=__importDefault(require_SUGADD()),SUGDEL_1=__importDefault(require_SUGDEL()),SUGGET_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHPAYLOADS()),SUGGET_WITHSCORES_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHSCORES_WITHPAYLOADS()),SUGGET_WITHSCORES_1=__importDefault(require_SUGGET_WITHSCORES()),SUGGET_1=__importDefault(require_SUGGET()),SUGLEN_1=__importDefault(require_SUGLEN()),SYNDUMP_1=__importDefault(require_SYNDUMP()),SYNUPDATE_1=__importDefault(require_SYNUPDATE()),TAGVALS_1=__importDefault(require_TAGVALS());exports.default={_LIST:_LIST_1.default,_list:_LIST_1.default,ALTER:ALTER_1.default,alter:ALTER_1.default,AGGREGATE_WITHCURSOR:AGGREGATE_WITHCURSOR_1.default,aggregateWithCursor:AGGREGATE_WITHCURSOR_1.default,AGGREGATE:AGGREGATE_1.default,aggregate:AGGREGATE_1.default,ALIASADD:ALIASADD_1.default,aliasAdd:ALIASADD_1.default,ALIASDEL:ALIASDEL_1.default,aliasDel:ALIASDEL_1.default,ALIASUPDATE:ALIASUPDATE_1.default,aliasUpdate:ALIASUPDATE_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,CREATE:CREATE_1.default,create:CREATE_1.default,CURSOR_DEL:CURSOR_DEL_1.default,cursorDel:CURSOR_DEL_1.default,CURSOR_READ:CURSOR_READ_1.default,cursorRead:CURSOR_READ_1.default,DICTADD:DICTADD_1.default,dictAdd:DICTADD_1.default,DICTDEL:DICTDEL_1.default,dictDel:DICTDEL_1.default,DICTDUMP:DICTDUMP_1.default,dictDump:DICTDUMP_1.default,DROPINDEX:DROPINDEX_1.default,dropIndex:DROPINDEX_1.default,EXPLAIN:EXPLAIN_1.default,explain:EXPLAIN_1.default,EXPLAINCLI:EXPLAINCLI_1.default,explainCli:EXPLAINCLI_1.default,HYBRID:HYBRID_1.default,hybrid:HYBRID_1.default,INFO:INFO_1.default,info:INFO_1.default,PROFILESEARCH:PROFILE_SEARCH_1.default,profileSearch:PROFILE_SEARCH_1.default,PROFILEAGGREGATE:PROFILE_AGGREGATE_1.default,profileAggregate:PROFILE_AGGREGATE_1.default,SEARCH_NOCONTENT:SEARCH_NOCONTENT_1.default,searchNoContent:SEARCH_NOCONTENT_1.default,SEARCH:SEARCH_1.default,search:SEARCH_1.default,SPELLCHECK:SPELLCHECK_1.default,spellCheck:SPELLCHECK_1.default,SUGADD:SUGADD_1.default,sugAdd:SUGADD_1.default,SUGDEL:SUGDEL_1.default,sugDel:SUGDEL_1.default,SUGGET_WITHPAYLOADS:SUGGET_WITHPAYLOADS_1.default,sugGetWithPayloads:SUGGET_WITHPAYLOADS_1.default,SUGGET_WITHSCORES_WITHPAYLOADS:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,sugGetWithScoresWithPayloads:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,SUGGET_WITHSCORES:SUGGET_WITHSCORES_1.default,sugGetWithScores:SUGGET_WITHSCORES_1.default,SUGGET:SUGGET_1.default,sugGet:SUGGET_1.default,SUGLEN:SUGLEN_1.default,sugLen:SUGLEN_1.default,SYNDUMP:SYNDUMP_1.default,synDump:SYNDUMP_1.default,SYNUPDATE:SYNUPDATE_1.default,synUpdate:SYNUPDATE_1.default,TAGVALS:TAGVALS_1.default,tagVals:TAGVALS_1.default}}),require_lib4=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FT_AGGREGATE_STEPS=exports.FT_AGGREGATE_GROUP_BY_REDUCERS=exports.SCHEMA_VECTOR_FIELD_ALGORITHM=exports.SCHEMA_TEXT_FIELD_PHONETIC=exports.SCHEMA_FIELD_TYPE=exports.REDISEARCH_LANGUAGE=exports.default=void 0;var commands_1=require_commands5();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(commands_1).default}});var CREATE_1=require_CREATE2();Object.defineProperty(exports,"REDISEARCH_LANGUAGE",{enumerable:!0,get:function(){return CREATE_1.REDISEARCH_LANGUAGE}}),Object.defineProperty(exports,"SCHEMA_FIELD_TYPE",{enumerable:!0,get:function(){return CREATE_1.SCHEMA_FIELD_TYPE}}),Object.defineProperty(exports,"SCHEMA_TEXT_FIELD_PHONETIC",{enumerable:!0,get:function(){return CREATE_1.SCHEMA_TEXT_FIELD_PHONETIC}}),Object.defineProperty(exports,"SCHEMA_VECTOR_FIELD_ALGORITHM",{enumerable:!0,get:function(){return CREATE_1.SCHEMA_VECTOR_FIELD_ALGORITHM}});var AGGREGATE_1=require_AGGREGATE();Object.defineProperty(exports,"FT_AGGREGATE_GROUP_BY_REDUCERS",{enumerable:!0,get:function(){return AGGREGATE_1.FT_AGGREGATE_GROUP_BY_REDUCERS}}),Object.defineProperty(exports,"FT_AGGREGATE_STEPS",{enumerable:!0,get:function(){return AGGREGATE_1.FT_AGGREGATE_STEPS}})}),require_helpers2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformRESP2LabelsWithSources=exports.transformRESP2Labels=exports.parseSelectedLabelsArguments=exports.resp3MapToValue=exports.resp2MapToValue=exports.transformSamplesReply=exports.transformSampleReply=exports.parseLabelsArgument=exports.transformTimestampArgument=exports.parseDuplicatePolicy=exports.TIME_SERIES_DUPLICATE_POLICIES=exports.parseChunkSizeArgument=exports.parseEncodingArgument=exports.TIME_SERIES_ENCODING=exports.parseRetentionArgument=exports.parseIgnoreArgument=void 0;var client_1=require_dist();function parseIgnoreArgument(parser,ignore3){if(ignore3!==void 0)parser.push("IGNORE",ignore3.maxTimeDiff.toString(),ignore3.maxValDiff.toString())}exports.parseIgnoreArgument=parseIgnoreArgument;function parseRetentionArgument(parser,retention){if(retention!==void 0)parser.push("RETENTION",retention.toString())}exports.parseRetentionArgument=parseRetentionArgument,exports.TIME_SERIES_ENCODING={COMPRESSED:"COMPRESSED",UNCOMPRESSED:"UNCOMPRESSED"};function parseEncodingArgument(parser,encoding){if(encoding!==void 0)parser.push("ENCODING",encoding)}exports.parseEncodingArgument=parseEncodingArgument;function parseChunkSizeArgument(parser,chunkSize){if(chunkSize!==void 0)parser.push("CHUNK_SIZE",chunkSize.toString())}exports.parseChunkSizeArgument=parseChunkSizeArgument,exports.TIME_SERIES_DUPLICATE_POLICIES={BLOCK:"BLOCK",FIRST:"FIRST",LAST:"LAST",MIN:"MIN",MAX:"MAX",SUM:"SUM"};function parseDuplicatePolicy(parser,duplicatePolicy){if(duplicatePolicy!==void 0)parser.push("DUPLICATE_POLICY",duplicatePolicy)}exports.parseDuplicatePolicy=parseDuplicatePolicy;function transformTimestampArgument(timestamp){if(typeof timestamp==="string")return timestamp;return(typeof timestamp==="number"?timestamp:timestamp.getTime()).toString()}exports.transformTimestampArgument=transformTimestampArgument;function parseLabelsArgument(parser,labels){if(labels){parser.push("LABELS");for(let[label,value]of Object.entries(labels))parser.push(label,value)}}exports.parseLabelsArgument=parseLabelsArgument,exports.transformSampleReply={2(reply){let[timestamp,value]=reply;return{timestamp,value:Number(value)}},3(reply){let[timestamp,value]=reply;return{timestamp,value}}},exports.transformSamplesReply={2(reply){return reply.map((sample)=>exports.transformSampleReply[2](sample))},3(reply){return reply.map((sample)=>exports.transformSampleReply[3](sample))}};function resp2MapToValue(wrappedReply,parseFunc,typeMapping){let reply=wrappedReply;switch(typeMapping?.[client_1.RESP_TYPES.MAP]){case Map:{let ret=new Map;for(let wrappedTuple of reply){let tuple22=wrappedTuple,key=tuple22[0];ret.set(key.toString(),parseFunc(tuple22))}return ret}case Array:{for(let wrappedTuple of reply){let tuple22=wrappedTuple;tuple22[1]=parseFunc(tuple22)}return reply}default:{let ret=Object.create(null);for(let wrappedTuple of reply){let tuple22=wrappedTuple,key=tuple22[0];ret[key.toString()]=parseFunc(tuple22)}return ret}}}exports.resp2MapToValue=resp2MapToValue;function resp3MapToValue(wrappedReply,parseFunc){let reply=wrappedReply;if(reply instanceof Array)for(let i=1;i<reply.length;i+=2)reply[i]=parseFunc(reply[i]);else if(reply instanceof Map)for(let[key,value]of reply.entries())reply.set(key,parseFunc(value));else for(let[key,value]of Object.entries(reply))reply[key]=parseFunc(value);return reply}exports.resp3MapToValue=resp3MapToValue;function parseSelectedLabelsArguments(parser,selectedLabels){parser.push("SELECTED_LABELS"),parser.pushVariadic(selectedLabels)}exports.parseSelectedLabelsArguments=parseSelectedLabelsArguments;function transformRESP2Labels(labels,typeMapping){let unwrappedLabels=labels;switch(typeMapping?.[client_1.RESP_TYPES.MAP]){case Map:let map222=new Map;for(let tuple22 of unwrappedLabels){let[key,value]=tuple22,unwrappedKey=key;map222.set(unwrappedKey.toString(),value)}return map222;case Array:return unwrappedLabels.flat();case Object:default:let labelsObject=Object.create(null);for(let tuple22 of unwrappedLabels){let[key,value]=tuple22,unwrappedKey=key;labelsObject[unwrappedKey.toString()]=value}return labelsObject}}exports.transformRESP2Labels=transformRESP2Labels;function transformRESP2LabelsWithSources(labels,typeMapping){let unwrappedLabels=labels,to=unwrappedLabels.length-2,transformedLabels;switch(typeMapping?.[client_1.RESP_TYPES.MAP]){case Map:let map222=new Map;for(let i=0;i<to;i++){let[key,value]=unwrappedLabels[i],unwrappedKey=key;map222.set(unwrappedKey.toString(),value)}transformedLabels=map222;break;case Array:transformedLabels=unwrappedLabels.slice(0,to).flat();break;case Object:default:let labelsObject=Object.create(null);for(let i=0;i<to;i++){let[key,value]=unwrappedLabels[i],unwrappedKey=key;labelsObject[unwrappedKey.toString()]=value}transformedLabels=labelsObject;break}let unwrappedSourcesTuple=unwrappedLabels[unwrappedLabels.length-1],transformedSources=transformRESP2Sources(unwrappedSourcesTuple[1]);return{labels:transformedLabels,sources:transformedSources}}exports.transformRESP2LabelsWithSources=transformRESP2LabelsWithSources;function transformRESP2Sources(sourcesRaw){let unwrappedSources=sourcesRaw;if(typeof unwrappedSources==="string")return unwrappedSources.split(",");let indexOfComma=unwrappedSources.indexOf(",");if(indexOfComma===-1)return[unwrappedSources];let sourcesArray=[unwrappedSources.subarray(0,indexOfComma)],previousComma=indexOfComma+1;while(!0){let indexOf=unwrappedSources.indexOf(",",previousComma);if(indexOf===-1){sourcesArray.push(unwrappedSources.subarray(previousComma));break}let source=unwrappedSources.subarray(previousComma,indexOf);sourcesArray.push(source),previousComma=indexOf+1}return sourcesArray}}),require_ADD5=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers2();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,timestamp,value,options){if(parser.push("TS.ADD"),parser.pushKey(key),parser.push((0,helpers_1.transformTimestampArgument)(timestamp),value.toString()),(0,helpers_1.parseRetentionArgument)(parser,options?.RETENTION),(0,helpers_1.parseEncodingArgument)(parser,options?.ENCODING),(0,helpers_1.parseChunkSizeArgument)(parser,options?.CHUNK_SIZE),options?.ON_DUPLICATE)parser.push("ON_DUPLICATE",options.ON_DUPLICATE);(0,helpers_1.parseLabelsArgument)(parser,options?.LABELS),(0,helpers_1.parseIgnoreArgument)(parser,options?.IGNORE)},transformReply:void 0}}),require_ALTER2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers2();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){parser.push("TS.ALTER"),parser.pushKey(key),(0,helpers_1.parseRetentionArgument)(parser,options?.RETENTION),(0,helpers_1.parseChunkSizeArgument)(parser,options?.CHUNK_SIZE),(0,helpers_1.parseDuplicatePolicy)(parser,options?.DUPLICATE_POLICY),(0,helpers_1.parseLabelsArgument)(parser,options?.LABELS),(0,helpers_1.parseIgnoreArgument)(parser,options?.IGNORE)},transformReply:void 0}}),require_CREATE3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers2();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){parser.push("TS.CREATE"),parser.pushKey(key),(0,helpers_1.parseRetentionArgument)(parser,options?.RETENTION),(0,helpers_1.parseEncodingArgument)(parser,options?.ENCODING),(0,helpers_1.parseChunkSizeArgument)(parser,options?.CHUNK_SIZE),(0,helpers_1.parseDuplicatePolicy)(parser,options?.DUPLICATE_POLICY),(0,helpers_1.parseLabelsArgument)(parser,options?.LABELS),(0,helpers_1.parseIgnoreArgument)(parser,options?.IGNORE)},transformReply:void 0}}),require_CREATERULE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.TIME_SERIES_AGGREGATION_TYPE=void 0,exports.TIME_SERIES_AGGREGATION_TYPE={AVG:"AVG",FIRST:"FIRST",LAST:"LAST",MIN:"MIN",MAX:"MAX",SUM:"SUM",RANGE:"RANGE",COUNT:"COUNT",STD_P:"STD.P",STD_S:"STD.S",VAR_P:"VAR.P",VAR_S:"VAR.S",TWA:"TWA"},exports.default={IS_READ_ONLY:!1,parseCommand(parser,sourceKey,destinationKey,aggregationType,bucketDuration,alignTimestamp){if(parser.push("TS.CREATERULE"),parser.pushKeys([sourceKey,destinationKey]),parser.push("AGGREGATION",aggregationType,bucketDuration.toString()),alignTimestamp!==void 0)parser.push(alignTimestamp.toString())},transformReply:void 0}}),require_INCRBY4=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseIncrByArguments=void 0;var helpers_1=require_helpers2();function parseIncrByArguments(parser,key,value,options){if(parser.pushKey(key),parser.push(value.toString()),options?.TIMESTAMP!==void 0&&options?.TIMESTAMP!==null)parser.push("TIMESTAMP",(0,helpers_1.transformTimestampArgument)(options.TIMESTAMP));if((0,helpers_1.parseRetentionArgument)(parser,options?.RETENTION),options?.UNCOMPRESSED)parser.push("UNCOMPRESSED");(0,helpers_1.parseChunkSizeArgument)(parser,options?.CHUNK_SIZE),(0,helpers_1.parseLabelsArgument)(parser,options?.LABELS),(0,helpers_1.parseIgnoreArgument)(parser,options?.IGNORE)}exports.parseIncrByArguments=parseIncrByArguments,exports.default={IS_READ_ONLY:!1,parseCommand(...args2){args2[0].push("TS.INCRBY"),parseIncrByArguments(...args2)},transformReply:void 0}}),require_DECRBY2=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var INCRBY_1=__importStar(require_INCRBY4());exports.default={IS_READ_ONLY:INCRBY_1.default.IS_READ_ONLY,parseCommand(...args2){args2[0].push("TS.DECRBY"),(0,INCRBY_1.parseIncrByArguments)(...args2)},transformReply:INCRBY_1.default.transformReply}}),require_DEL4=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers2();exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,fromTimestamp,toTimestamp){parser.push("TS.DEL"),parser.pushKey(key),parser.push((0,helpers_1.transformTimestampArgument)(fromTimestamp),(0,helpers_1.transformTimestampArgument)(toTimestamp))},transformReply:void 0}}),require_DELETERULE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!1,parseCommand(parser,sourceKey,destinationKey){parser.push("TS.DELETERULE"),parser.pushKeys([sourceKey,destinationKey])},transformReply:void 0}}),require_GET3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,options){if(parser.push("TS.GET"),parser.pushKey(key),options?.LATEST)parser.push("LATEST")},transformReply:{2(reply){return reply.length===0?null:{timestamp:reply[0],value:Number(reply[1])}},3(reply){return reply.length===0?null:{timestamp:reply[0],value:reply[1]}}}}}),require_INFO8=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("TS.INFO"),parser.pushKey(key)},transformReply:{2:(reply,_,typeMapping)=>{let ret={};for(let i=0;i<reply.length;i+=2){let key=reply[i].toString();switch(key){case"totalSamples":case"memoryUsage":case"firstTimestamp":case"lastTimestamp":case"retentionTime":case"chunkCount":case"chunkSize":case"chunkType":case"duplicatePolicy":case"sourceKey":case"ignoreMaxTimeDiff":ret[key]=reply[i+1];break;case"labels":ret[key]=reply[i+1].map(([name,value])=>({name,value}));break;case"rules":ret[key]=reply[i+1].map(([key2,timeBucket,aggregationType])=>({key:key2,timeBucket,aggregationType}));break;case"ignoreMaxValDiff":ret[key]=generic_transformers_1.transformDoubleReply[2](reply[27],void 0,typeMapping);break}}return ret},3:void 0},unstableResp3:!0}}),require_INFO_DEBUG=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var INFO_1=__importDefault(require_INFO8());exports.default={IS_READ_ONLY:INFO_1.default.IS_READ_ONLY,parseCommand(parser,key){INFO_1.default.parseCommand(parser,key),parser.push("DEBUG")},transformReply:{2:(reply,_,typeMapping)=>{let ret=INFO_1.default.transformReply[2](reply,_,typeMapping);for(let i=0;i<reply.length;i+=2){let key=reply[i].toString();switch(key){case"keySelfName":{ret[key]=reply[i+1];break}case"Chunks":{ret.chunks=reply[i+1].map((chunk32)=>({startTimestamp:chunk32[1],endTimestamp:chunk32[3],samples:chunk32[5],size:chunk32[7],bytesPerSample:chunk32[9]}));break}}}return ret},3:void 0},unstableResp3:!0}}),require_MADD2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var helpers_1=require_helpers2();exports.default={IS_READ_ONLY:!1,parseCommand(parser,toAdd){parser.push("TS.MADD");for(let{key,timestamp,value}of toAdd)parser.pushKey(key),parser.push((0,helpers_1.transformTimestampArgument)(timestamp),value.toString())},transformReply:void 0}}),require_MGET3=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseFilterArgument=exports.parseLatestArgument=void 0;var helpers_1=require_helpers2();function parseLatestArgument(parser,latest){if(latest)parser.push("LATEST")}exports.parseLatestArgument=parseLatestArgument;function parseFilterArgument(parser,filter11){parser.push("FILTER"),parser.pushVariadic(filter11)}exports.parseFilterArgument=parseFilterArgument,exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter11,options){parser.push("TS.MGET"),parseLatestArgument(parser,options?.LATEST),parseFilterArgument(parser,filter11)},transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([,,sample])=>{return{sample:helpers_1.transformSampleReply[2](sample)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([,sample])=>{return{sample:helpers_1.transformSampleReply[3](sample)}})}}}}),require_MGET_WITHLABELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTransformMGetLabelsReply=void 0;var MGET_1=require_MGET3(),helpers_1=require_helpers2();function createTransformMGetLabelsReply(){return{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([,labels,sample])=>{return{labels:(0,helpers_1.transformRESP2Labels)(labels),sample:helpers_1.transformSampleReply[2](sample)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,sample])=>{return{labels,sample:helpers_1.transformSampleReply[3](sample)}})}}}exports.createTransformMGetLabelsReply=createTransformMGetLabelsReply,exports.default={IS_READ_ONLY:!0,parseCommand(parser,filter11,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)},transformReply:createTransformMGetLabelsReply()}}),require_MGET_SELECTED_LABELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var MGET_1=require_MGET3(),helpers_1=require_helpers2(),MGET_WITHLABELS_1=require_MGET_WITHLABELS();exports.default={IS_READ_ONLY:!0,parseCommand(parser,filter11,selectedLabels,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)},transformReply:(0,MGET_WITHLABELS_1.createTransformMGetLabelsReply)()}}),require_RANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformRangeArguments=exports.parseRangeArguments=exports.TIME_SERIES_BUCKET_TIMESTAMP=void 0;var helpers_1=require_helpers2();exports.TIME_SERIES_BUCKET_TIMESTAMP={LOW:"-",MIDDLE:"~",END:"+"};function parseRangeArguments(parser,fromTimestamp,toTimestamp,options){if(parser.push((0,helpers_1.transformTimestampArgument)(fromTimestamp),(0,helpers_1.transformTimestampArgument)(toTimestamp)),options?.LATEST)parser.push("LATEST");if(options?.FILTER_BY_TS){parser.push("FILTER_BY_TS");for(let timestamp of options.FILTER_BY_TS)parser.push((0,helpers_1.transformTimestampArgument)(timestamp))}if(options?.FILTER_BY_VALUE)parser.push("FILTER_BY_VALUE",options.FILTER_BY_VALUE.min.toString(),options.FILTER_BY_VALUE.max.toString());if(options?.COUNT!==void 0)parser.push("COUNT",options.COUNT.toString());if(options?.AGGREGATION){if(options?.ALIGN!==void 0)parser.push("ALIGN",(0,helpers_1.transformTimestampArgument)(options.ALIGN));if(parser.push("AGGREGATION",options.AGGREGATION.type,(0,helpers_1.transformTimestampArgument)(options.AGGREGATION.timeBucket)),options.AGGREGATION.BUCKETTIMESTAMP)parser.push("BUCKETTIMESTAMP",options.AGGREGATION.BUCKETTIMESTAMP);if(options.AGGREGATION.EMPTY)parser.push("EMPTY")}}exports.parseRangeArguments=parseRangeArguments;function transformRangeArguments(parser,key,fromTimestamp,toTimestamp,options){parser.pushKey(key),parseRangeArguments(parser,fromTimestamp,toTimestamp,options)}exports.transformRangeArguments=transformRangeArguments,exports.default={IS_READ_ONLY:!0,parseCommand(...args2){args2[0].push("TS.RANGE"),transformRangeArguments(...args2)},transformReply:{2(reply){return helpers_1.transformSamplesReply[2](reply)},3(reply){return helpers_1.transformSamplesReply[3](reply)}}}}),require_MRANGE_GROUPBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.extractResp3MRangeSources=exports.createTransformMRangeGroupByArguments=exports.parseGroupByArguments=exports.TIME_SERIES_REDUCERS=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MGET_1=require_MGET3();exports.TIME_SERIES_REDUCERS={AVG:"AVG",SUM:"SUM",MIN:"MIN",MAX:"MAX",RANGE:"RANGE",COUNT:"COUNT",STD_P:"STD.P",STD_S:"STD.S",VAR_P:"VAR.P",VAR_S:"VAR.S"};function parseGroupByArguments(parser,groupBy3){parser.push("GROUPBY",groupBy3.label,"REDUCE",groupBy3.REDUCE)}exports.parseGroupByArguments=parseGroupByArguments;function createTransformMRangeGroupByArguments(command){return(parser,fromTimestamp,toTimestamp,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11),parseGroupByArguments(parser,groupBy3)}}exports.createTransformMRangeGroupByArguments=createTransformMRangeGroupByArguments;function extractResp3MRangeSources(raw){let unwrappedMetadata2=raw;if(unwrappedMetadata2 instanceof Map)return unwrappedMetadata2.get("sources");else if(unwrappedMetadata2 instanceof Array)return unwrappedMetadata2[1];else return unwrappedMetadata2.sources}exports.extractResp3MRangeSources=extractResp3MRangeSources,exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeGroupByArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return{samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata1,metadata2,samples])=>{return{sources:extractResp3MRangeSources(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}}),require_MRANGE_SELECTED_LABELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTransformMRangeSelectedLabelsArguments=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MGET_1=require_MGET3();function createTransformMRangeSelectedLabelsArguments(command){return(parser,fromTimestamp,toTimestamp,selectedLabels,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeSelectedLabelsArguments=createTransformMRangeSelectedLabelsArguments,exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeSelectedLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{return{labels:(0,helpers_1.transformRESP2Labels)(labels,typeMapping),samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_key,labels,samples])=>{return{labels,samples:helpers_1.transformSamplesReply[3](samples)}})}}}}),require_MRANGE_SELECTED_LABELS_GROUPBY=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createMRangeSelectedLabelsGroupByTransformArguments=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MRANGE_GROUPBY_1=require_MRANGE_GROUPBY(),MGET_1=require_MGET3(),MRANGE_SELECTED_LABELS_1=__importDefault(require_MRANGE_SELECTED_LABELS());function createMRangeSelectedLabelsGroupByTransformArguments(command){return(parser,fromTimestamp,toTimestamp,selectedLabels,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeSelectedLabelsGroupByTransformArguments=createMRangeSelectedLabelsGroupByTransformArguments,exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeSelectedLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2:MRANGE_SELECTED_LABELS_1.default.transformReply[2],3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}}),require_MRANGE_WITHLABELS_GROUPBY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createMRangeWithLabelsGroupByTransformArguments=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MRANGE_GROUPBY_1=require_MRANGE_GROUPBY(),MGET_1=require_MGET3();function createMRangeWithLabelsGroupByTransformArguments(command){return(parser,fromTimestamp,toTimestamp,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeWithLabelsGroupByTransformArguments=createMRangeWithLabelsGroupByTransformArguments,exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeWithLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let transformed=(0,helpers_1.transformRESP2LabelsWithSources)(labels);return{labels:transformed.labels,sources:transformed.sources,samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}}),require_MRANGE_WITHLABELS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTransformMRangeWithLabelsArguments=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MGET_1=require_MGET3();function createTransformMRangeWithLabelsArguments(command){return(parser,fromTimestamp,toTimestamp,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeWithLabelsArguments=createTransformMRangeWithLabelsArguments,exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeWithLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let unwrappedLabels=labels,labelsObject=Object.create(null);for(let tuple22 of unwrappedLabels){let[key,value]=tuple22,unwrappedKey=key;labelsObject[unwrappedKey.toString()]=value}return{labels:labelsObject,samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,samples])=>{return{labels,samples:helpers_1.transformSamplesReply[3](samples)}})}}}}),require_MRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTransformMRangeArguments=void 0;var helpers_1=require_helpers2(),RANGE_1=require_RANGE(),MGET_1=require_MGET3();function createTransformMRangeArguments(command){return(parser,fromTimestamp,toTimestamp,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeArguments=createTransformMRangeArguments,exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return helpers_1.transformSamplesReply[2](samples)},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata,samples])=>{return helpers_1.transformSamplesReply[3](samples)})}}}}),require_MREVRANGE_GROUPBY=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_GROUPBY_1=__importStar(require_MRANGE_GROUPBY());exports.default={IS_READ_ONLY:MRANGE_GROUPBY_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_GROUPBY_1.createTransformMRangeGroupByArguments)("TS.MREVRANGE"),transformReply:MRANGE_GROUPBY_1.default.transformReply}}),require_MREVRANGE_SELECTED_LABELS_GROUPBY=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_SELECTED_LABELS_GROUPBY_1=__importStar(require_MRANGE_SELECTED_LABELS_GROUPBY());exports.default={IS_READ_ONLY:MRANGE_SELECTED_LABELS_GROUPBY_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_SELECTED_LABELS_GROUPBY_1.createMRangeSelectedLabelsGroupByTransformArguments)("TS.MREVRANGE"),transformReply:MRANGE_SELECTED_LABELS_GROUPBY_1.default.transformReply}}),require_MREVRANGE_SELECTED_LABELS=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_SELECTED_LABELS_1=__importStar(require_MRANGE_SELECTED_LABELS());exports.default={IS_READ_ONLY:MRANGE_SELECTED_LABELS_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_SELECTED_LABELS_1.createTransformMRangeSelectedLabelsArguments)("TS.MREVRANGE"),transformReply:MRANGE_SELECTED_LABELS_1.default.transformReply}}),require_MREVRANGE_WITHLABELS_GROUPBY=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_WITHLABELS_GROUPBY_1=__importStar(require_MRANGE_WITHLABELS_GROUPBY());exports.default={IS_READ_ONLY:MRANGE_WITHLABELS_GROUPBY_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_WITHLABELS_GROUPBY_1.createMRangeWithLabelsGroupByTransformArguments)("TS.MREVRANGE"),transformReply:MRANGE_WITHLABELS_GROUPBY_1.default.transformReply}}),require_MREVRANGE_WITHLABELS=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_WITHLABELS_1=__importStar(require_MRANGE_WITHLABELS());exports.default={NOT_KEYED_COMMAND:MRANGE_WITHLABELS_1.default.NOT_KEYED_COMMAND,IS_READ_ONLY:MRANGE_WITHLABELS_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_WITHLABELS_1.createTransformMRangeWithLabelsArguments)("TS.MREVRANGE"),transformReply:MRANGE_WITHLABELS_1.default.transformReply}}),require_MREVRANGE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var MRANGE_1=__importStar(require_MRANGE());exports.default={NOT_KEYED_COMMAND:MRANGE_1.default.NOT_KEYED_COMMAND,IS_READ_ONLY:MRANGE_1.default.IS_READ_ONLY,parseCommand:(0,MRANGE_1.createTransformMRangeArguments)("TS.MREVRANGE"),transformReply:MRANGE_1.default.transformReply}}),require_QUERYINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter11){parser.push("TS.QUERYINDEX"),parser.pushVariadic(filter11)},transformReply:{2:void 0,3:void 0}}}),require_REVRANGE=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result};Object.defineProperty(exports,"__esModule",{value:!0});var RANGE_1=__importStar(require_RANGE());exports.default={IS_READ_ONLY:RANGE_1.default.IS_READ_ONLY,parseCommand(...args2){args2[0].push("TS.REVRANGE"),(0,RANGE_1.transformRangeArguments)(...args2)},transformReply:RANGE_1.default.transformReply}}),require_commands6=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p))__createBinding(exports2,m,p)},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var ADD_1=__importDefault(require_ADD5()),ALTER_1=__importDefault(require_ALTER2()),CREATE_1=__importDefault(require_CREATE3()),CREATERULE_1=__importDefault(require_CREATERULE()),DECRBY_1=__importDefault(require_DECRBY2()),DEL_1=__importDefault(require_DEL4()),DELETERULE_1=__importDefault(require_DELETERULE()),GET_1=__importDefault(require_GET3()),INCRBY_1=__importDefault(require_INCRBY4()),INFO_DEBUG_1=__importDefault(require_INFO_DEBUG()),INFO_1=__importDefault(require_INFO8()),MADD_1=__importDefault(require_MADD2()),MGET_SELECTED_LABELS_1=__importDefault(require_MGET_SELECTED_LABELS()),MGET_WITHLABELS_1=__importDefault(require_MGET_WITHLABELS()),MGET_1=__importDefault(require_MGET3()),MRANGE_GROUPBY_1=__importDefault(require_MRANGE_GROUPBY()),MRANGE_SELECTED_LABELS_GROUPBY_1=__importDefault(require_MRANGE_SELECTED_LABELS_GROUPBY()),MRANGE_SELECTED_LABELS_1=__importDefault(require_MRANGE_SELECTED_LABELS()),MRANGE_WITHLABELS_GROUPBY_1=__importDefault(require_MRANGE_WITHLABELS_GROUPBY()),MRANGE_WITHLABELS_1=__importDefault(require_MRANGE_WITHLABELS()),MRANGE_1=__importDefault(require_MRANGE()),MREVRANGE_GROUPBY_1=__importDefault(require_MREVRANGE_GROUPBY()),MREVRANGE_SELECTED_LABELS_GROUPBY_1=__importDefault(require_MREVRANGE_SELECTED_LABELS_GROUPBY()),MREVRANGE_SELECTED_LABELS_1=__importDefault(require_MREVRANGE_SELECTED_LABELS()),MREVRANGE_WITHLABELS_GROUPBY_1=__importDefault(require_MREVRANGE_WITHLABELS_GROUPBY()),MREVRANGE_WITHLABELS_1=__importDefault(require_MREVRANGE_WITHLABELS()),MREVRANGE_1=__importDefault(require_MREVRANGE()),QUERYINDEX_1=__importDefault(require_QUERYINDEX()),RANGE_1=__importDefault(require_RANGE()),REVRANGE_1=__importDefault(require_REVRANGE());__exportStar(require_helpers2(),exports),exports.default={ADD:ADD_1.default,add:ADD_1.default,ALTER:ALTER_1.default,alter:ALTER_1.default,CREATE:CREATE_1.default,create:CREATE_1.default,CREATERULE:CREATERULE_1.default,createRule:CREATERULE_1.default,DECRBY:DECRBY_1.default,decrBy:DECRBY_1.default,DEL:DEL_1.default,del:DEL_1.default,DELETERULE:DELETERULE_1.default,deleteRule:DELETERULE_1.default,GET:GET_1.default,get:GET_1.default,INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INFO_DEBUG:INFO_DEBUG_1.default,infoDebug:INFO_DEBUG_1.default,INFO:INFO_1.default,info:INFO_1.default,MADD:MADD_1.default,mAdd:MADD_1.default,MGET_SELECTED_LABELS:MGET_SELECTED_LABELS_1.default,mGetSelectedLabels:MGET_SELECTED_LABELS_1.default,MGET_WITHLABELS:MGET_WITHLABELS_1.default,mGetWithLabels:MGET_WITHLABELS_1.default,MGET:MGET_1.default,mGet:MGET_1.default,MRANGE_GROUPBY:MRANGE_GROUPBY_1.default,mRangeGroupBy:MRANGE_GROUPBY_1.default,MRANGE_SELECTED_LABELS_GROUPBY:MRANGE_SELECTED_LABELS_GROUPBY_1.default,mRangeSelectedLabelsGroupBy:MRANGE_SELECTED_LABELS_GROUPBY_1.default,MRANGE_SELECTED_LABELS:MRANGE_SELECTED_LABELS_1.default,mRangeSelectedLabels:MRANGE_SELECTED_LABELS_1.default,MRANGE_WITHLABELS_GROUPBY:MRANGE_WITHLABELS_GROUPBY_1.default,mRangeWithLabelsGroupBy:MRANGE_WITHLABELS_GROUPBY_1.default,MRANGE_WITHLABELS:MRANGE_WITHLABELS_1.default,mRangeWithLabels:MRANGE_WITHLABELS_1.default,MRANGE:MRANGE_1.default,mRange:MRANGE_1.default,MREVRANGE_GROUPBY:MREVRANGE_GROUPBY_1.default,mRevRangeGroupBy:MREVRANGE_GROUPBY_1.default,MREVRANGE_SELECTED_LABELS_GROUPBY:MREVRANGE_SELECTED_LABELS_GROUPBY_1.default,mRevRangeSelectedLabelsGroupBy:MREVRANGE_SELECTED_LABELS_GROUPBY_1.default,MREVRANGE_SELECTED_LABELS:MREVRANGE_SELECTED_LABELS_1.default,mRevRangeSelectedLabels:MREVRANGE_SELECTED_LABELS_1.default,MREVRANGE_WITHLABELS_GROUPBY:MREVRANGE_WITHLABELS_GROUPBY_1.default,mRevRangeWithLabelsGroupBy:MREVRANGE_WITHLABELS_GROUPBY_1.default,MREVRANGE_WITHLABELS:MREVRANGE_WITHLABELS_1.default,mRevRangeWithLabels:MREVRANGE_WITHLABELS_1.default,MREVRANGE:MREVRANGE_1.default,mRevRange:MREVRANGE_1.default,QUERYINDEX:QUERYINDEX_1.default,queryIndex:QUERYINDEX_1.default,RANGE:RANGE_1.default,range:RANGE_1.default,REVRANGE:REVRANGE_1.default,revRange:REVRANGE_1.default}}),require_lib5=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.TIME_SERIES_REDUCERS=exports.TIME_SERIES_BUCKET_TIMESTAMP=exports.TIME_SERIES_AGGREGATION_TYPE=exports.TIME_SERIES_DUPLICATE_POLICIES=exports.TIME_SERIES_ENCODING=exports.default=void 0;var commands_1=require_commands6();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(commands_1).default}}),Object.defineProperty(exports,"TIME_SERIES_ENCODING",{enumerable:!0,get:function(){return commands_1.TIME_SERIES_ENCODING}}),Object.defineProperty(exports,"TIME_SERIES_DUPLICATE_POLICIES",{enumerable:!0,get:function(){return commands_1.TIME_SERIES_DUPLICATE_POLICIES}});var CREATERULE_1=require_CREATERULE();Object.defineProperty(exports,"TIME_SERIES_AGGREGATION_TYPE",{enumerable:!0,get:function(){return CREATERULE_1.TIME_SERIES_AGGREGATION_TYPE}});var RANGE_1=require_RANGE();Object.defineProperty(exports,"TIME_SERIES_BUCKET_TIMESTAMP",{enumerable:!0,get:function(){return RANGE_1.TIME_SERIES_BUCKET_TIMESTAMP}});var MRANGE_GROUPBY_1=require_MRANGE_GROUPBY();Object.defineProperty(exports,"TIME_SERIES_REDUCERS",{enumerable:!0,get:function(){return MRANGE_GROUPBY_1.TIME_SERIES_REDUCERS}})}),require_dist2=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p))__createBinding(exports2,m,p)},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createSentinel=exports.createCluster=exports.createClientPool=exports.createClient=void 0;var client_1=require_dist(),bloom_1=__importDefault(require_lib2()),json_1=__importDefault(require_lib3()),search_1=__importDefault(require_lib4()),time_series_1=__importDefault(require_lib5());__exportStar(require_dist(),exports),__exportStar(require_lib2(),exports),__exportStar(require_lib3(),exports),__exportStar(require_lib4(),exports),__exportStar(require_lib5(),exports);var modules={...bloom_1.default,json:json_1.default,ft:search_1.default,ts:time_series_1.default};function createClient(options){return(0,client_1.createClient)({...options,modules:{...modules,...options?.modules}})}exports.createClient=createClient;function createClientPool(clientOptions,options){return(0,client_1.createClientPool)({...clientOptions,modules:{...modules,...clientOptions?.modules}},options)}exports.createClientPool=createClientPool;function createCluster(options){return(0,client_1.createCluster)({...options,modules:{...modules,...options?.modules}})}exports.createCluster=createCluster;function createSentinel(options){return(0,client_1.createSentinel)({...options,modules:{...modules,...options?.modules}})}exports.createSentinel=createSentinel}),isFunction3=(input)=>typeof input==="function",dual2=function(arity,body){if(typeof arity==="function")return function(){if(arity(arguments))return body.apply(this,arguments);return(self)=>body(self,...arguments)};switch(arity){case 0:case 1:throw RangeError(`Invalid arity ${arity}`);case 2:return function(a,b){if(arguments.length>=2)return body(a,b);return function(self){return body(self,a)}};case 3:return function(a,b,c){if(arguments.length>=3)return body(a,b,c);return function(self){return body(self,a,b)}};case 4:return function(a,b,c,d){if(arguments.length>=4)return body(a,b,c,d);return function(self){return body(self,a,b,c)}};case 5:return function(a,b,c,d,e){if(arguments.length>=5)return body(a,b,c,d,e);return function(self){return body(self,a,b,c,d)}};default:return function(){if(arguments.length>=arity)return body.apply(this,arguments);let args2=arguments;return function(self){return body(self,...args2)}}}},identity5=(a)=>a,constant2=(value)=>()=>value,constTrue2=constant2(!0),constFalse2=constant2(!1),constNull2=constant2(null),constUndefined2=constant2(void 0),constVoid2=constUndefined2;function pipe2(a,ab,bc,cd,de,ef,fg,gh,hi){switch(arguments.length){case 1:return a;case 2:return ab(a);case 3:return bc(ab(a));case 4:return cd(bc(ab(a)));case 5:return de(cd(bc(ab(a))));case 6:return ef(de(cd(bc(ab(a)))));case 7:return fg(ef(de(cd(bc(ab(a))))));case 8:return gh(fg(ef(de(cd(bc(ab(a)))))));case 9:return hi(gh(fg(ef(de(cd(bc(ab(a))))))));default:{let ret=arguments[0];for(let i=1;i<arguments.length;i++)ret=arguments[i](ret);return ret}}}var make55=(isEquivalent)=>(self,that)=>self===that||isEquivalent(self,that),mapInput6=dual2(2,(self,f)=>make55((x,y)=>self(f(x),f(y)))),array6=(item)=>make55((self,that)=>{if(self.length!==that.length)return!1;for(let i=0;i<self.length;i++)if(!item(self[i],that[i]))return!1;return!0}),let_6=(map27)=>dual2(3,(self,name,f)=>map27(self,(a)=>({...a,[name]:f(a)}))),bindTo6=(map27)=>dual2(2,(self,name)=>map27(self,(a)=>({[name]:a}))),bind6=(map27,flatMap18)=>dual2(3,(self,name,f)=>flatMap18(self,(a)=>map27(f(a),(b)=>({...a,[name]:b})))),globalStore2,globalValue2=(id2,compute)=>{if(!globalStore2)globalThis["effect/GlobalValue"]??=new Map,globalStore2=globalThis["effect/GlobalValue"];if(!globalStore2.has(id2))globalStore2.set(id2,compute());return globalStore2.get(id2)},isString2=(input)=>typeof input==="string",isNumber2=(input)=>typeof input==="number",isBoolean2=(input)=>typeof input==="boolean",isBigInt2=(input)=>typeof input==="bigint",isFunction22=isFunction3,isRecordOrArray2=(input)=>typeof input==="object"&&input!==null,isObject2=(input)=>isRecordOrArray2(input)||isFunction22(input),hasProperty2=dual2(2,(self,property)=>isObject2(self)&&(property in self)),isTagged2=dual2(2,(self,tag)=>hasProperty2(self,"_tag")&&self._tag===tag),isNullable2=(input)=>input===null||input===void 0,isIterable2=(input)=>typeof input==="string"||hasProperty2(input,Symbol.iterator),isPromiseLike2=(input)=>hasProperty2(input,"then")&&isFunction22(input.then),getBugErrorMessage2=(message)=>`BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`,GenKindTypeId=Symbol.for("effect/Gen/GenKind"),isGenKind=(u)=>isObject2(u)&&(GenKindTypeId in u);class GenKindImpl{value;constructor(value){this.value=value}get _F(){return identity5}get _R(){return(_)=>_}get _O(){return(_)=>_}get _E(){return(_)=>_}[GenKindTypeId]=GenKindTypeId;[Symbol.iterator](){return new SingleShotGen3(this)}}class SingleShotGen3{self;called=!1;constructor(self){this.self=self}next(a){return this.called?{value:a,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(a){return{value:a,done:!0}}throw(e){throw e}[Symbol.iterator](){return new SingleShotGen3(this.self)}}var adapter=()=>function(){let x=arguments[0];for(let i=1;i<arguments.length;i++)x=arguments[i](x);return new GenKindImpl(x)},defaultIncHi2=335903614,defaultIncLo2=4150755663,MUL_HI2=1481765933,MUL_LO2=1284865837,BIT_532=9007199254740992,BIT_272=134217728;class PCGRandom2{_state;constructor(seedHi,seedLo,incHi,incLo){if(isNullable2(seedLo)&&isNullable2(seedHi))seedLo=Math.random()*4294967295>>>0,seedHi=0;else if(isNullable2(seedLo))seedLo=seedHi,seedHi=0;if(isNullable2(incLo)&&isNullable2(incHi))incLo=this._state?this._state[3]:defaultIncLo2,incHi=this._state?this._state[2]:defaultIncHi2;else if(isNullable2(incLo))incLo=incHi,incHi=0;return this._state=new Int32Array([0,0,incHi>>>0,((incLo||0)|1)>>>0]),this._next(),add642(this._state,this._state[0],this._state[1],seedHi>>>0,seedLo>>>0),this._next(),this}getState(){return[this._state[0],this._state[1],this._state[2],this._state[3]]}setState(state){this._state[0]=state[0],this._state[1]=state[1],this._state[2]=state[2],this._state[3]=state[3]|1}integer(max6){return Math.round(this.number()*Number.MAX_SAFE_INTEGER)%max6}number(){let hi=(this._next()&67108863)*1,lo=(this._next()&134217727)*1;return(hi*BIT_272+lo)/BIT_532}_next(){let oldHi=this._state[0]>>>0,oldLo=this._state[1]>>>0;mul642(this._state,oldHi,oldLo,MUL_HI2,MUL_LO2),add642(this._state,this._state[0],this._state[1],this._state[2],this._state[3]);let xsHi=oldHi>>>18,xsLo=(oldLo>>>18|oldHi<<14)>>>0;xsHi=(xsHi^oldHi)>>>0,xsLo=(xsLo^oldLo)>>>0;let xorshifted=(xsLo>>>27|xsHi<<5)>>>0,rot=oldHi>>>27,rot2=(-rot>>>0&31)>>>0;return(xorshifted>>>rot|xorshifted<<rot2)>>>0}}function mul642(out,aHi,aLo,bHi,bLo){let c1=(aLo>>>16)*(bLo&65535)>>>0,c0=(aLo&65535)*(bLo>>>16)>>>0,lo=(aLo&65535)*(bLo&65535)>>>0,hi=(aLo>>>16)*(bLo>>>16)+((c0>>>16)+(c1>>>16))>>>0;if(c0=c0<<16>>>0,lo=lo+c0>>>0,lo>>>0<c0>>>0)hi=hi+1>>>0;if(c1=c1<<16>>>0,lo=lo+c1>>>0,lo>>>0<c1>>>0)hi=hi+1>>>0;hi=hi+Math.imul(aLo,bHi)>>>0,hi=hi+Math.imul(aHi,bLo)>>>0,out[0]=hi,out[1]=lo}function add642(out,aHi,aLo,bHi,bLo){let hi=aHi+bHi>>>0,lo=aLo+bLo>>>0;if(lo>>>0<aLo>>>0)hi=hi+1|0;out[0]=hi,out[1]=lo}var YieldWrapTypeId2=Symbol.for("effect/Utils/YieldWrap");class YieldWrap2{#value;constructor(value){this.#value=value}[YieldWrapTypeId2](){return this.#value}}function yieldWrapGet2(self){if(typeof self==="object"&&self!==null&&YieldWrapTypeId2 in self)return self[YieldWrapTypeId2]();throw Error(getBugErrorMessage2("yieldWrapGet"))}var structuralRegionState2=globalValue2("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0})),standard2={effect_internal_function:(body)=>{return body()}},forced2={effect_internal_function:(body)=>{try{return body()}finally{}}},isNotOptimizedAway2=standard2.effect_internal_function(()=>Error().stack)?.includes("effect_internal_function")===!0,internalCall2=isNotOptimizedAway2?standard2.effect_internal_function:forced2.effect_internal_function,genConstructor2=function*(){}.constructor,isGeneratorFunction2=(u)=>isObject2(u)&&u.constructor===genConstructor2,randomHashCache2=globalValue2(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),symbol3=Symbol.for("effect/Hash"),hash2=(self)=>{if(structuralRegionState2.enabled===!0)return 0;switch(typeof self){case"number":return number6(self);case"bigint":return string4(self.toString(10));case"boolean":return string4(String(self));case"symbol":return string4(String(self));case"string":return string4(self);case"undefined":return string4("undefined");case"function":case"object":if(self===null)return string4("null");else if(self instanceof Date)return hash2(self.toISOString());else if(self instanceof URL)return hash2(self.href);else if(isHash2(self))return self[symbol3]();else return random4(self);default:throw Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},random4=(self)=>{if(!randomHashCache2.has(self))randomHashCache2.set(self,number6(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)));return randomHashCache2.get(self)},combine11=(b)=>(self)=>self*53^b,optimize2=(n)=>n&3221225471|n>>>1&1073741824,isHash2=(u)=>hasProperty2(u,symbol3),number6=(n)=>{if(n!==n||n===1/0)return 0;let h=n|0;if(h!==n)h^=n*4294967295;while(n>4294967295)h^=n/=4294967295;return optimize2(h)},string4=(str)=>{let h=5381,i=str.length;while(i)h=h*33^str.charCodeAt(--i);return optimize2(h)},structureKeys2=(o,keys3)=>{let h=12289;for(let i=0;i<keys3.length;i++)h^=pipe2(string4(keys3[i]),combine11(hash2(o[keys3[i]])));return optimize2(h)},structure2=(o)=>structureKeys2(o,Object.keys(o)),array22=(arr)=>{let h=6151;for(let i=0;i<arr.length;i++)h=pipe2(h,combine11(hash2(arr[i])));return optimize2(h)},cached4=function(){if(arguments.length===1){let self2=arguments[0];return function(hash3){return Object.defineProperty(self2,symbol3,{value(){return hash3},enumerable:!1}),hash3}}let self=arguments[0],hash22=arguments[1];return Object.defineProperty(self,symbol3,{value(){return hash22},enumerable:!1}),hash22},symbol22=Symbol.for("effect/Equal");function equals4(){if(arguments.length===1)return(self)=>compareBoth2(self,arguments[0]);return compareBoth2(arguments[0],arguments[1])}function compareBoth2(self,that){if(self===that)return!0;let selfType=typeof self;if(selfType!==typeof that)return!1;if(selfType==="object"||selfType==="function"){if(self!==null&&that!==null){if(isEqual2(self)&&isEqual2(that))if(hash2(self)===hash2(that)&&self[symbol22](that))return!0;else return structuralRegionState2.enabled&&structuralRegionState2.tester?structuralRegionState2.tester(self,that):!1;else if(self instanceof Date&&that instanceof Date)return self.toISOString()===that.toISOString();else if(self instanceof URL&&that instanceof URL)return self.href===that.href}if(structuralRegionState2.enabled){if(Array.isArray(self)&&Array.isArray(that))return self.length===that.length&&self.every((v,i)=>compareBoth2(v,that[i]));if(Object.getPrototypeOf(self)===Object.prototype&&Object.getPrototypeOf(self)===Object.prototype){let keysSelf=Object.keys(self),keysThat=Object.keys(that);if(keysSelf.length===keysThat.length){for(let key of keysSelf)if(!((key in that)&&compareBoth2(self[key],that[key])))return structuralRegionState2.tester?structuralRegionState2.tester(self,that):!1;return!0}}return structuralRegionState2.tester?structuralRegionState2.tester(self,that):!1}}return structuralRegionState2.enabled&&structuralRegionState2.tester?structuralRegionState2.tester(self,that):!1}var isEqual2=(u)=>hasProperty2(u,symbol22),equivalence2=()=>equals4,NodeInspectSymbol2=Symbol.for("nodejs.util.inspect.custom"),toJSON2=(x)=>{try{if(hasProperty2(x,"toJSON")&&isFunction22(x.toJSON)&&x.toJSON.length===0)return x.toJSON();else if(Array.isArray(x))return x.map(toJSON2)}catch{return{}}return redact2(x)},format4=(x)=>JSON.stringify(x,null,2),BaseProto2={toJSON(){return toJSON2(this)},[NodeInspectSymbol2](){return this.toJSON()},toString(){return format4(this.toJSON())}},toStringUnknown2=(u,whitespace=2)=>{if(typeof u==="string")return u;try{return typeof u==="object"?stringifyCircular2(u,whitespace):String(u)}catch{return String(u)}},stringifyCircular2=(obj,whitespace)=>{let cache=[],retVal=JSON.stringify(obj,(_key,value)=>typeof value==="object"&&value!==null?cache.includes(value)?void 0:cache.push(value)&&(redactableState2.fiberRefs!==void 0&&isRedactable2(value)?value[symbolRedactable2](redactableState2.fiberRefs):value):value,whitespace);return cache=void 0,retVal},symbolRedactable2=Symbol.for("effect/Inspectable/Redactable"),isRedactable2=(u)=>typeof u==="object"&&u!==null&&(symbolRedactable2 in u),redactableState2=globalValue2("effect/Inspectable/redactableState",()=>({fiberRefs:void 0})),withRedactableContext2=(context7,f)=>{let prev=redactableState2.fiberRefs;redactableState2.fiberRefs=context7;try{return f()}finally{redactableState2.fiberRefs=prev}},redact2=(u)=>{if(isRedactable2(u)&&redactableState2.fiberRefs!==void 0)return u[symbolRedactable2](redactableState2.fiberRefs);return u},pipeArguments2=(self,args2)=>{switch(args2.length){case 0:return self;case 1:return args2[0](self);case 2:return args2[1](args2[0](self));case 3:return args2[2](args2[1](args2[0](self)));case 4:return args2[3](args2[2](args2[1](args2[0](self))));case 5:return args2[4](args2[3](args2[2](args2[1](args2[0](self)))));case 6:return args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self))))));case 7:return args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self)))))));case 8:return args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self))))))));case 9:return args2[8](args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self)))))))));default:{let ret=self;for(let i=0,len=args2.length;i<len;i++)ret=args2[i](ret);return ret}}},OP_ASYNC2="Async",OP_COMMIT2="Commit",OP_FAILURE2="Failure",OP_ON_FAILURE3="OnFailure",OP_ON_SUCCESS3="OnSuccess",OP_ON_SUCCESS_AND_FAILURE2="OnSuccessAndFailure",OP_SUCCESS2="Success",OP_SYNC3="Sync",OP_TAG2="Tag",OP_UPDATE_RUNTIME_FLAGS2="UpdateRuntimeFlags",OP_WHILE2="While",OP_ITERATOR2="Iterator",OP_WITH_RUNTIME2="WithRuntime",OP_YIELD3="Yield",OP_REVERT_FLAGS2="RevertFlags",moduleVersion2="3.19.9",getCurrentVersion2=()=>moduleVersion2,EffectTypeId4=Symbol.for("effect/Effect"),StreamTypeId4=Symbol.for("effect/Stream"),SinkTypeId3=Symbol.for("effect/Sink"),ChannelTypeId3=Symbol.for("effect/Channel"),effectVariance2={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_,_V:getCurrentVersion2()},sinkVariance3={_A:(_)=>_,_In:(_)=>_,_L:(_)=>_,_E:(_)=>_,_R:(_)=>_},channelVariance3={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutElem:(_)=>_,_OutDone:(_)=>_},EffectPrototype3={[EffectTypeId4]:effectVariance2,[StreamTypeId4]:effectVariance2,[SinkTypeId3]:sinkVariance3,[ChannelTypeId3]:channelVariance3,[symbol22](that){return this===that},[symbol3](){return cached4(this,random4(this))},[Symbol.iterator](){return new SingleShotGen3(new YieldWrap2(this))},pipe(){return pipeArguments2(this,arguments)}},StructuralPrototype2={[symbol3](){return cached4(this,structure2(this))},[symbol22](that){let selfKeys=Object.keys(this),thatKeys=Object.keys(that);if(selfKeys.length!==thatKeys.length)return!1;for(let key of selfKeys)if(!((key in that)&&equals4(this[key],that[key])))return!1;return!0}},CommitPrototype3={...EffectPrototype3,_op:OP_COMMIT2},StructuralCommitPrototype2={...CommitPrototype3,...StructuralPrototype2},Base3=function(){function Base22(){}return Base22.prototype=CommitPrototype3,Base22}(),TypeId19=Symbol.for("effect/Option"),CommonProto3={...EffectPrototype3,[TypeId19]:{_A:(_)=>_},[NodeInspectSymbol2](){return this.toJSON()},toString(){return format4(this.toJSON())}},SomeProto2=Object.assign(Object.create(CommonProto3),{_tag:"Some",_op:"Some",[symbol22](that){return isOption2(that)&&isSome3(that)&&equals4(this.value,that.value)},[symbol3](){return cached4(this,combine11(hash2(this._tag))(hash2(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:toJSON2(this.value)}}}),NoneHash2=hash2("None"),NoneProto2=Object.assign(Object.create(CommonProto3),{_tag:"None",_op:"None",[symbol22](that){return isOption2(that)&&isNone4(that)},[symbol3](){return NoneHash2},toJSON(){return{_id:"Option",_tag:this._tag}}}),isOption2=(input)=>hasProperty2(input,TypeId19),isNone4=(fa)=>fa._tag==="None",isSome3=(fa)=>fa._tag==="Some",none10=Object.create(NoneProto2),some7=(value)=>{let a=Object.create(SomeProto2);return a.value=value,a},TypeId22=Symbol.for("effect/Either"),CommonProto22={...EffectPrototype3,[TypeId22]:{_R:(_)=>_},[NodeInspectSymbol2](){return this.toJSON()},toString(){return format4(this.toJSON())}},RightProto2=Object.assign(Object.create(CommonProto22),{_tag:"Right",_op:"Right",[symbol22](that){return isEither3(that)&&isRight4(that)&&equals4(this.right,that.right)},[symbol3](){return combine11(hash2(this._tag))(hash2(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:toJSON2(this.right)}}}),LeftProto2=Object.assign(Object.create(CommonProto22),{_tag:"Left",_op:"Left",[symbol22](that){return isEither3(that)&&isLeft4(that)&&equals4(this.left,that.left)},[symbol3](){return combine11(hash2(this._tag))(hash2(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:toJSON2(this.left)}}}),isEither3=(input)=>hasProperty2(input,TypeId22),isLeft4=(ma)=>ma._tag==="Left",isRight4=(ma)=>ma._tag==="Right",left3=(left22)=>{let a=Object.create(LeftProto2);return a.left=left22,a},right3=(right22)=>{let a=Object.create(RightProto2);return a.right=right22,a},getLeft2=(self)=>isRight4(self)?none10:some7(self.left),getRight2=(self)=>isLeft4(self)?none10:some7(self.right),right22=right3,left22=left3,isLeft22=isLeft4,isRight22=isRight4,match19=dual2(2,(self,{onLeft,onRight})=>isLeft22(self)?onLeft(self.left):onRight(self.right)),merge11=match19({onLeft:identity5,onRight:identity5}),isNonEmptyArray3=(self)=>self.length>0,exports_Option2={};__export2(exports_Option2,{zipWith:()=>zipWith15,zipRight:()=>zipRight12,zipLeft:()=>zipLeft9,void:()=>void_9,toRefinement:()=>toRefinement,toArray:()=>toArray4,tap:()=>tap8,some:()=>some22,reduceCompact:()=>reduceCompact,productMany:()=>productMany,product:()=>product,partitionMap:()=>partitionMap3,orElseSome:()=>orElseSome2,orElseEither:()=>orElseEither5,orElse:()=>orElse12,none:()=>none22,mergeWith:()=>mergeWith5,match:()=>match22,map:()=>map27,liftThrowable:()=>liftThrowable2,liftPredicate:()=>liftPredicate4,liftNullable:()=>liftNullable,lift2:()=>lift2,let:()=>let_22,isSome:()=>isSome22,isOption:()=>isOption22,isNone:()=>isNone22,getRight:()=>getRight22,getOrder:()=>getOrder,getOrUndefined:()=>getOrUndefined2,getOrThrowWith:()=>getOrThrowWith3,getOrThrow:()=>getOrThrow2,getOrNull:()=>getOrNull,getOrElse:()=>getOrElse6,getLeft:()=>getLeft22,getEquivalence:()=>getEquivalence4,gen:()=>gen3,fromNullable:()=>fromNullable4,fromIterable:()=>fromIterable11,flatten:()=>flatten14,flatMapNullable:()=>flatMapNullable,flatMap:()=>flatMap18,firstSomeOf:()=>firstSomeOf,filterMap:()=>filterMap8,filter:()=>filter10,exists:()=>exists3,containsWith:()=>containsWith3,contains:()=>contains4,composeK:()=>composeK,bindTo:()=>bindTo22,bind:()=>bind22,asVoid:()=>asVoid5,as:()=>as10,ap:()=>ap2,andThen:()=>andThen7,all:()=>all9,TypeId:()=>TypeId32,Do:()=>Do5});var make210=(compare)=>(self,that)=>self===that?0:compare(self,that),number22=make210((self,that)=>self<that?-1:1),mapInput22=dual2(2,(self,f)=>make210((b1,b2)=>self(f(b1),f(b2)))),greaterThan4=(O)=>dual2(2,(self,that)=>O(self,that)===1),TypeId32=Symbol.for("effect/Option"),none22=()=>none10,some22=some7,isOption22=isOption2,isNone22=isNone4,isSome22=isSome3,match22=dual2(2,(self,{onNone,onSome})=>isNone22(self)?onNone():onSome(self.value)),toRefinement=(f)=>(a)=>isSome22(f(a)),fromIterable11=(collection)=>{for(let a of collection)return some22(a);return none22()},getRight22=getRight2,getLeft22=getLeft2,getOrElse6=dual2(2,(self,onNone)=>isNone22(self)?onNone():self.value),orElse12=dual2(2,(self,that)=>isNone22(self)?that():self),orElseSome2=dual2(2,(self,onNone)=>isNone22(self)?some22(onNone()):self),orElseEither5=dual2(2,(self,that)=>isNone22(self)?map27(that(),right3):map27(self,left3)),firstSomeOf=(collection)=>{let out=none22();for(out of collection)if(isSome22(out))return out;return out},fromNullable4=(nullableValue)=>nullableValue==null?none22():some22(nullableValue),liftNullable=(f)=>(...a)=>fromNullable4(f(...a)),getOrNull=getOrElse6(constNull2),getOrUndefined2=getOrElse6(constUndefined2),liftThrowable2=(f)=>(...a)=>{try{return some22(f(...a))}catch{return none22()}},getOrThrowWith3=dual2(2,(self,onNone)=>{if(isSome22(self))return self.value;throw onNone()}),getOrThrow2=getOrThrowWith3(()=>Error("getOrThrow called on a None")),map27=dual2(2,(self,f)=>isNone22(self)?none22():some22(f(self.value))),as10=dual2(2,(self,b)=>map27(self,()=>b)),asVoid5=as10(void 0),void_9=some22(void 0),flatMap18=dual2(2,(self,f)=>isNone22(self)?none22():f(self.value)),andThen7=dual2(2,(self,f)=>flatMap18(self,(a)=>{let b=isFunction3(f)?f(a):f;return isOption22(b)?b:some22(b)})),flatMapNullable=dual2(2,(self,f)=>isNone22(self)?none22():fromNullable4(f(self.value))),flatten14=flatMap18(identity5),zipRight12=dual2(2,(self,that)=>flatMap18(self,()=>that)),zipLeft9=dual2(2,(self,that)=>tap8(self,()=>that)),composeK=dual2(2,(afb,bfc)=>(a)=>flatMap18(afb(a),bfc)),tap8=dual2(2,(self,f)=>flatMap18(self,(a)=>map27(f(a),()=>a))),product=(self,that)=>isSome22(self)&&isSome22(that)?some22([self.value,that.value]):none22(),productMany=(self,collection)=>{if(isNone22(self))return none22();let out=[self.value];for(let o of collection){if(isNone22(o))return none22();out.push(o.value)}return some22(out)},all9=(input)=>{if(Symbol.iterator in input){let out2=[];for(let o of input){if(isNone22(o))return none22();out2.push(o.value)}return some22(out2)}let out={};for(let key of Object.keys(input)){let o=input[key];if(isNone22(o))return none22();out[key]=o.value}return some22(out)},zipWith15=dual2(3,(self,that,f)=>map27(product(self,that),([a,b])=>f(a,b))),ap2=dual2(2,(self,that)=>zipWith15(self,that,(f,a)=>f(a))),reduceCompact=dual2(3,(self,b,f)=>{let out=b;for(let oa of self)if(isSome22(oa))out=f(out,oa.value);return out}),toArray4=(self)=>isNone22(self)?[]:[self.value],partitionMap3=dual2(2,(self,f)=>{if(isNone22(self))return[none22(),none22()];let e=f(self.value);return isLeft4(e)?[some22(e.left),none22()]:[none22(),some22(e.right)]}),filterMap8=flatMap18,filter10=dual2(2,(self,predicate)=>filterMap8(self,(b)=>predicate(b)?some7(b):none10)),getEquivalence4=(isEquivalent)=>make55((x,y)=>isNone22(x)?isNone22(y):isNone22(y)?!1:isEquivalent(x.value,y.value)),getOrder=(O)=>make210((self,that)=>isSome22(self)?isSome22(that)?O(self.value,that.value):1:-1),lift2=(f)=>dual2(2,(self,that)=>zipWith15(self,that,f)),liftPredicate4=dual2(2,(b,predicate)=>predicate(b)?some22(b):none22()),containsWith3=(isEquivalent)=>dual2(2,(self,a)=>isNone22(self)?!1:isEquivalent(self.value,a)),_equivalence5=equivalence2(),contains4=containsWith3(_equivalence5),exists3=dual2(2,(self,refinement)=>isNone22(self)?!1:refinement(self.value)),bindTo22=bindTo6(map27),let_22=let_6(map27),bind22=bind6(map27,flatMap18),Do5=some22({}),adapter2=adapter(),gen3=(...args2)=>{let iterator=(args2.length===1?args2[0]:args2[1].bind(args2[0]))(adapter2),state=iterator.next();while(!state.done){let current2=isGenKind(state.value)?state.value.value:yieldWrapGet2(state.value);if(isNone22(current2))return current2;state=iterator.next(current2.value)}return some22(state.value)},mergeWith5=(f)=>(o1,o2)=>{if(isNone22(o1))return o2;else if(isNone22(o2))return o1;return some22(f(o1.value,o2.value))},make310=(...elements)=>elements,findFirst7=dual2(2,(self,f)=>{let i=0;for(let a of self){let o=f(a,i);if(isBoolean2(o)){if(o)return some22(a)}else if(isSome22(o))return o;i++}return none22()}),constEmpty2={[Symbol.iterator](){return constEmptyIterator2}},constEmptyIterator2={next(){return{done:!0,value:void 0}}},allocate2=(n)=>Array(n),makeBy3=dual2(2,(n,f)=>{let max6=Math.max(1,Math.floor(n)),out=Array(max6);for(let i=0;i<max6;i++)out[i]=f(i);return out}),fromIterable22=(collection)=>Array.isArray(collection)?collection:Array.from(collection),ensure2=(self)=>Array.isArray(self)?self:[self],prepend6=dual2(2,(self,head6)=>[head6,...self]),append4=dual2(2,(self,last4)=>[...self,last4]),appendAll4=dual2(2,(self,that)=>fromIterable22(self).concat(fromIterable22(that))),isEmptyArray2=(self)=>self.length===0,isEmptyReadonlyArray2=isEmptyArray2,isNonEmptyArray22=isNonEmptyArray3,isNonEmptyReadonlyArray2=isNonEmptyArray3,isOutOfBounds2=(i,as22)=>i<0||i>=as22.length,clamp4=(i,as22)=>Math.floor(Math.min(Math.max(0,i),as22.length)),get17=dual2(2,(self,index)=>{let i=Math.floor(index);return isOutOfBounds2(i,self)?none22():some22(self[i])}),unsafeGet8=dual2(2,(self,index)=>{let i=Math.floor(index);if(isOutOfBounds2(i,self))throw Error(`Index ${i} out of bounds`);return self[i]}),head6=get17(0),headNonEmpty3=unsafeGet8(0),last4=(self)=>isNonEmptyReadonlyArray2(self)?some22(lastNonEmpty2(self)):none22(),lastNonEmpty2=(self)=>self[self.length-1],tailNonEmpty3=(self)=>self.slice(1),spanIndex2=(self,predicate)=>{let i=0;for(let a of self){if(!predicate(a,i))break;i++}return i},span4=dual2(2,(self,predicate)=>splitAt3(self,spanIndex2(self,predicate))),drop5=dual2(2,(self,n)=>{let input=fromIterable22(self);return input.slice(clamp4(n,input),input.length)}),findFirstIndex2=dual2(2,(self,predicate)=>{let i=0;for(let a of self){if(predicate(a,i))return some22(i);i++}return none22()}),findLastIndex2=dual2(2,(self,predicate)=>{let input=fromIterable22(self);for(let i=input.length-1;i>=0;i--)if(predicate(input[i],i))return some22(i);return none22()}),findFirst22=findFirst7,findLast2=dual2(2,(self,f)=>{let input=fromIterable22(self);for(let i=input.length-1;i>=0;i--){let a=input[i],o=f(a,i);if(isBoolean2(o)){if(o)return some22(a)}else if(isSome22(o))return o}return none22()}),modify5=dual2(3,(self,i,f)=>{let out=Array.from(self);if(isOutOfBounds2(i,out))return out;let b=f(out[i]);return out[i]=b,out}),remove7=dual2(2,(self,i)=>{let out=Array.from(self);if(isOutOfBounds2(i,out))return out;return out.splice(i,1),out}),reverse4=(self)=>Array.from(self).reverse(),sort2=dual2(2,(self,O)=>{let out=Array.from(self);return out.sort(O),out}),zip12=dual2(2,(self,that)=>zipWith22(self,that,make310)),zipWith22=dual2(3,(self,that,f)=>{let as22=fromIterable22(self),bs=fromIterable22(that);if(isNonEmptyReadonlyArray2(as22)&&isNonEmptyReadonlyArray2(bs)){let out=[f(headNonEmpty3(as22),headNonEmpty3(bs))],len=Math.min(as22.length,bs.length);for(let i=1;i<len;i++)out[i]=f(as22[i],bs[i]);return out}return[]}),unzip2=(self)=>{let input=fromIterable22(self);if(isNonEmptyReadonlyArray2(input)){let fa=[input[0][0]],fb=[input[0][1]];for(let i=1;i<input.length;i++)fa[i]=input[i][0],fb[i]=input[i][1];return[fa,fb]}return[[],[]]},containsWith22=(isEquivalent)=>dual2(2,(self,a)=>{for(let i of self)if(isEquivalent(a,i))return!0;return!1}),_equivalence22=equivalence2(),contains22=containsWith22(_equivalence22),splitAt3=dual2(2,(self,n)=>{let input=Array.from(self),_n=Math.floor(n);if(isNonEmptyReadonlyArray2(input)){if(_n>=1)return splitNonEmptyAt2(input,_n);return[[],input]}return[input,[]]}),splitNonEmptyAt2=dual2(2,(self,n)=>{let _n=Math.max(1,Math.floor(n));return _n>=self.length?[copy4(self),[]]:[prepend6(self.slice(1,_n),headNonEmpty3(self)),self.slice(_n)]}),copy4=(self)=>self.slice(),unionWith4=dual2(3,(self,that,isEquivalent)=>{let a=fromIterable22(self),b=fromIterable22(that);if(isNonEmptyReadonlyArray2(a)){if(isNonEmptyReadonlyArray2(b))return dedupeWith2(isEquivalent)(appendAll4(a,b));return a}return b}),union10=dual2(2,(self,that)=>unionWith4(self,that,_equivalence22)),intersectionWith=(isEquivalent)=>{let has5=containsWith22(isEquivalent);return dual2(2,(self,that)=>{let bs=fromIterable22(that);return fromIterable22(self).filter((a)=>has5(bs,a))})},intersection3=intersectionWith(_equivalence22),differenceWith2=(isEquivalent)=>{let has5=containsWith22(isEquivalent);return dual2(2,(self,that)=>{let bs=fromIterable22(that);return fromIterable22(self).filter((a)=>!has5(bs,a))})},difference4=differenceWith2(_equivalence22),empty31=()=>[],of6=(a)=>[a],map28=dual2(2,(self,f)=>self.map(f)),flatMap22=dual2(2,(self,f)=>{if(isEmptyReadonlyArray2(self))return[];let out=[];for(let i=0;i<self.length;i++){let inner=f(self[i],i);for(let j=0;j<inner.length;j++)out.push(inner[j])}return out}),flatten22=flatMap22(identity5),filterMap22=dual2(2,(self,f)=>{let as22=fromIterable22(self),out=[];for(let i=0;i<as22.length;i++){let o=f(as22[i],i);if(isSome22(o))out.push(o.value)}return out}),filterMapWhile5=dual2(2,(self,f)=>{let i=0,out=[];for(let a of self){let b=f(a,i);if(isSome22(b))out.push(b.value);else break;i++}return out}),partitionMap22=dual2(2,(self,f)=>{let left32=[],right32=[],as22=fromIterable22(self);for(let i=0;i<as22.length;i++){let e=f(as22[i],i);if(isLeft22(e))left32.push(e.left);else right32.push(e.right)}return[left32,right32]}),getSomes2=filterMap22(identity5),filter22=dual2(2,(self,predicate)=>{let as22=fromIterable22(self),out=[];for(let i=0;i<as22.length;i++)if(predicate(as22[i],i))out.push(as22[i]);return out}),partition7=dual2(2,(self,predicate)=>{let left32=[],right32=[],as22=fromIterable22(self);for(let i=0;i<as22.length;i++)if(predicate(as22[i],i))right32.push(as22[i]);else left32.push(as22[i]);return[left32,right32]}),separate2=partitionMap22(identity5),reduce13=dual2(3,(self,b,f)=>fromIterable22(self).reduce((b2,a,i)=>f(b2,a,i),b)),reduceRight5=dual2(3,(self,b,f)=>fromIterable22(self).reduceRight((b2,a,i)=>f(b2,a,i),b)),every7=dual2(2,(self,refinement)=>self.every(refinement)),unfold6=(b,f)=>{let out=[],next4=b,o;while(isSome22(o=f(next4))){let[a,b2]=o.value;out.push(a),next4=b2}return out},getEquivalence22=array6,dedupeWith2=dual2(2,(self,isEquivalent)=>{let input=fromIterable22(self);if(isNonEmptyReadonlyArray2(input)){let out=[headNonEmpty3(input)],rest=tailNonEmpty3(input);for(let r of rest)if(out.every((a)=>!isEquivalent(r,a)))out.push(r);return out}return[]}),dedupe2=(self)=>dedupeWith2(self,equivalence2()),dedupeAdjacentWith=dual2(2,(self,isEquivalent)=>{let out=[],lastA=none22();for(let a of self)if(isNone22(lastA)||!isEquivalent(a,lastA.value))out.push(a),lastA=some22(a);return out}),dedupeAdjacent2=dedupeAdjacentWith(equivalence2()),join4=dual2(2,(self,sep)=>fromIterable22(self).join(sep)),mapAccum7=dual2(3,(self,s,f)=>{let i=0,s1=s,out=[];for(let a of self){let r=f(s1,a,i);s1=r[0],out.push(r[1]),i++}return[s1,out]}),Order5=number22,nextPow22=(n)=>{let nextPow=Math.ceil(Math.log(n)/Math.log(2));return Math.max(Math.pow(2,nextPow),2)},escape2=(string22)=>string22.replace(/[/\\^$*+?.()|[\]{}]/g,"\\$&"),not2=(self)=>!self,exports_Context2={};__export2(exports_Context2,{unsafeMake:()=>unsafeMake11,unsafeGet:()=>unsafeGet32,pick:()=>pick22,omit:()=>omit22,mergeAll:()=>mergeAll22,merge:()=>merge32,make:()=>make56,isTag:()=>isTag22,isReference:()=>isReference22,isContext:()=>isContext22,getOrElse:()=>getOrElse32,getOption:()=>getOption22,get:()=>get32,empty:()=>empty32,add:()=>add22,TagTypeId:()=>TagTypeId22,Tag:()=>Tag22,ReferenceTypeId:()=>ReferenceTypeId22,Reference:()=>Reference22,GenericTag:()=>GenericTag2});var TagTypeId3=Symbol.for("effect/Context/Tag"),ReferenceTypeId3=Symbol.for("effect/Context/Reference"),STMSymbolKey3="effect/STM",STMTypeId3=Symbol.for(STMSymbolKey3),TagProto2={...EffectPrototype3,_op:"Tag",[STMTypeId3]:effectVariance2,[TagTypeId3]:{_Service:(_)=>_,_Identifier:(_)=>_},toString(){return format4(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[NodeInspectSymbol2](){return this.toJSON()},of(self){return self},context(self){return make410(this,self)}},ReferenceProto2={...TagProto2,[ReferenceTypeId3]:ReferenceTypeId3},makeGenericTag2=(key)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;let tag=Object.create(TagProto2);return Object.defineProperty(tag,"stack",{get(){return creationError.stack}}),tag.key=key,tag},Tag4=(id2)=>()=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function TagClass(){}return Object.setPrototypeOf(TagClass,TagProto2),TagClass.key=id2,Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}}),TagClass},Reference3=()=>(id2,options)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function ReferenceClass(){}return Object.setPrototypeOf(ReferenceClass,ReferenceProto2),ReferenceClass.key=id2,ReferenceClass.defaultValue=options.defaultValue,Object.defineProperty(ReferenceClass,"stack",{get(){return creationError.stack}}),ReferenceClass},TypeId42=Symbol.for("effect/Context"),ContextProto2={[TypeId42]:{_Services:(_)=>_},[symbol22](that){if(isContext3(that)){if(this.unsafeMap.size===that.unsafeMap.size){for(let k of this.unsafeMap.keys())if(!that.unsafeMap.has(k)||!equals4(this.unsafeMap.get(k),that.unsafeMap.get(k)))return!1;return!0}}return!1},[symbol3](){return cached4(this,number6(this.unsafeMap.size))},pipe(){return pipeArguments2(this,arguments)},toString(){return format4(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()}},makeContext2=(unsafeMap)=>{let context7=Object.create(ContextProto2);return context7.unsafeMap=unsafeMap,context7},serviceNotFoundError2=(tag)=>{let error3=Error(`Service not found${tag.key?`: ${String(tag.key)}`:""}`);if(tag.stack){let lines=tag.stack.split(`
77
+ `);if(lines.length>2){let afterAt=lines[2].match(/at (.*)/);if(afterAt)error3.message=error3.message+` (defined at ${afterAt[1]})`}}if(error3.stack){let lines=error3.stack.split(`
78
+ `);lines.splice(1,3),error3.stack=lines.join(`
79
+ `)}return error3},isContext3=(u)=>hasProperty2(u,TypeId42),isTag3=(u)=>hasProperty2(u,TagTypeId3),isReference3=(u)=>hasProperty2(u,ReferenceTypeId3),_empty8=makeContext2(new Map),empty210=()=>_empty8,make410=(tag,service3)=>makeContext2(new Map([[tag.key,service3]])),add5=dual2(3,(self,tag,service3)=>{let map32=new Map(self.unsafeMap);return map32.set(tag.key,service3),makeContext2(map32)}),defaultValueCache2=globalValue2("effect/Context/defaultValueCache",()=>new Map),getDefaultValue2=(tag)=>{if(defaultValueCache2.has(tag.key))return defaultValueCache2.get(tag.key);let value=tag.defaultValue();return defaultValueCache2.set(tag.key,value),value},unsafeGetReference2=(self,tag)=>{return self.unsafeMap.has(tag.key)?self.unsafeMap.get(tag.key):getDefaultValue2(tag)},unsafeGet22=dual2(2,(self,tag)=>{if(!self.unsafeMap.has(tag.key)){if(ReferenceTypeId3 in tag)return getDefaultValue2(tag);throw serviceNotFoundError2(tag)}return self.unsafeMap.get(tag.key)}),get22=unsafeGet22,getOrElse22=dual2(3,(self,tag,orElse22)=>{if(!self.unsafeMap.has(tag.key))return isReference3(tag)?getDefaultValue2(tag):orElse22();return self.unsafeMap.get(tag.key)}),getOption3=dual2(2,(self,tag)=>{if(!self.unsafeMap.has(tag.key))return isReference3(tag)?some7(getDefaultValue2(tag)):none10;return some7(self.unsafeMap.get(tag.key))}),merge22=dual2(2,(self,that)=>{let map32=new Map(self.unsafeMap);for(let[tag,s]of that.unsafeMap)map32.set(tag,s);return makeContext2(map32)}),mergeAll10=(...ctxs)=>{let map32=new Map;for(let i=0;i<ctxs.length;i++)ctxs[i].unsafeMap.forEach((value,key)=>{map32.set(key,value)});return makeContext2(map32)},pick3=(...tags)=>(self)=>{let tagSet=new Set(tags.map((_)=>_.key)),newEnv=new Map;for(let[tag,s]of self.unsafeMap.entries())if(tagSet.has(tag))newEnv.set(tag,s);return makeContext2(newEnv)},omit3=(...tags)=>(self)=>{let newEnv=new Map(self.unsafeMap);for(let tag of tags)newEnv.delete(tag.key);return makeContext2(newEnv)},TagTypeId22=TagTypeId3,ReferenceTypeId22=ReferenceTypeId3,GenericTag2=makeGenericTag2,unsafeMake11=makeContext2,isContext22=isContext3,isTag22=isTag3,isReference22=isReference3,empty32=empty210,make56=make410,add22=add5,get32=get22,getOrElse32=getOrElse22,unsafeGet32=unsafeGet22,getOption22=getOption3,merge32=merge22,mergeAll22=mergeAll10,pick22=pick3,omit22=omit3,Tag22=Tag4,Reference22=Reference3,exports_Chunk2={};__export2(exports_Chunk2,{zipWith:()=>zipWith32,zip:()=>zip22,unzip:()=>unzip22,unsafeLast:()=>unsafeLast2,unsafeHead:()=>unsafeHead3,unsafeGet:()=>unsafeGet42,unsafeFromNonEmptyArray:()=>unsafeFromNonEmptyArray2,unsafeFromArray:()=>unsafeFromArray2,union:()=>union22,toReadonlyArray:()=>toReadonlyArray2,toArray:()=>toArray22,takeWhile:()=>takeWhile6,takeRight:()=>takeRight4,take:()=>take9,tailNonEmpty:()=>tailNonEmpty22,tail:()=>tail,splitWhere:()=>splitWhere2,splitNonEmptyAt:()=>splitNonEmptyAt22,splitAt:()=>splitAt22,split:()=>split3,sortWith:()=>sortWith,sort:()=>sort22,some:()=>some32,size:()=>size14,separate:()=>separate22,reverse:()=>reverse22,replaceOption:()=>replaceOption,replace:()=>replace,removeOption:()=>removeOption,remove:()=>remove22,reduceRight:()=>reduceRight22,reduce:()=>reduce22,range:()=>range4,prependAll:()=>prependAll2,prepend:()=>prepend22,partitionMap:()=>partitionMap32,partition:()=>partition22,of:()=>of22,modifyOption:()=>modifyOption,modify:()=>modify22,mapAccum:()=>mapAccum22,map:()=>map32,makeBy:()=>makeBy22,make:()=>make62,lastNonEmpty:()=>lastNonEmpty22,last:()=>last22,join:()=>join22,isNonEmpty:()=>isNonEmpty6,isEmpty:()=>isEmpty15,isChunk:()=>isChunk2,intersection:()=>intersection22,headNonEmpty:()=>headNonEmpty22,head:()=>head22,getEquivalence:()=>getEquivalence32,get:()=>get42,fromIterable:()=>fromIterable32,forEach:()=>forEach9,flatten:()=>flatten32,flatMap:()=>flatMap32,findLastIndex:()=>findLastIndex22,findLast:()=>findLast22,findFirstIndex:()=>findFirstIndex22,findFirst:()=>findFirst32,filterMapWhile:()=>filterMapWhile22,filterMap:()=>filterMap32,filter:()=>filter32,every:()=>every22,empty:()=>empty42,dropWhile:()=>dropWhile6,dropRight:()=>dropRight3,drop:()=>drop22,differenceWith:()=>differenceWith22,difference:()=>difference22,dedupeAdjacent:()=>dedupeAdjacent22,dedupe:()=>dedupe22,containsWith:()=>containsWith32,contains:()=>contains32,compact:()=>compact2,chunksOf:()=>chunksOf,appendAll:()=>appendAll22,append:()=>append22});var TypeId52=Symbol.for("effect/Chunk");function copy22(src,srcPos,dest,destPos,len){for(let i=srcPos;i<Math.min(src.length,srcPos+len);i++)dest[destPos+i-srcPos]=src[i];return dest}var emptyArray2=[],getEquivalence32=(isEquivalent)=>make55((self,that)=>self.length===that.length&&toReadonlyArray2(self).every((value,i)=>isEquivalent(value,unsafeGet42(that,i)))),_equivalence32=getEquivalence32(equals4),ChunkProto2={[TypeId52]:{_A:(_)=>_},toString(){return format4(this.toJSON())},toJSON(){return{_id:"Chunk",values:toReadonlyArray2(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},[symbol22](that){return isChunk2(that)&&_equivalence32(this,that)},[symbol3](){return cached4(this,array22(toReadonlyArray2(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return emptyArray2[Symbol.iterator]();default:return toReadonlyArray2(this)[Symbol.iterator]()}},pipe(){return pipeArguments2(this,arguments)}},makeChunk2=(backing)=>{let chunk5=Object.create(ChunkProto2);switch(chunk5.backing=backing,backing._tag){case"IEmpty":{chunk5.length=0,chunk5.depth=0,chunk5.left=chunk5,chunk5.right=chunk5;break}case"IConcat":{chunk5.length=backing.left.length+backing.right.length,chunk5.depth=1+Math.max(backing.left.depth,backing.right.depth),chunk5.left=backing.left,chunk5.right=backing.right;break}case"IArray":{chunk5.length=backing.array.length,chunk5.depth=0,chunk5.left=_empty22,chunk5.right=_empty22;break}case"ISingleton":{chunk5.length=1,chunk5.depth=0,chunk5.left=_empty22,chunk5.right=_empty22;break}case"ISlice":{chunk5.length=backing.length,chunk5.depth=backing.chunk.depth+1,chunk5.left=_empty22,chunk5.right=_empty22;break}}return chunk5},isChunk2=(u)=>hasProperty2(u,TypeId52),_empty22=makeChunk2({_tag:"IEmpty"}),empty42=()=>_empty22,make62=(...as22)=>unsafeFromNonEmptyArray2(as22),of22=(a)=>makeChunk2({_tag:"ISingleton",a}),fromIterable32=(self)=>isChunk2(self)?self:unsafeFromArray2(fromIterable22(self)),copyToArray2=(self,array32,initial)=>{switch(self.backing._tag){case"IArray":{copy22(self.backing.array,0,array32,initial,self.length);break}case"IConcat":{copyToArray2(self.left,array32,initial),copyToArray2(self.right,array32,initial+self.left.length);break}case"ISingleton":{array32[initial]=self.backing.a;break}case"ISlice":{let i=0,j=initial;while(i<self.length)array32[j]=unsafeGet42(self,i),i+=1,j+=1;break}}},toArray_2=(self)=>toReadonlyArray2(self).slice(),toArray22=toArray_2,toReadonlyArray_2=(self)=>{switch(self.backing._tag){case"IEmpty":return emptyArray2;case"IArray":return self.backing.array;default:{let arr=Array(self.length);return copyToArray2(self,arr,0),self.backing={_tag:"IArray",array:arr},self.left=_empty22,self.right=_empty22,self.depth=0,arr}}},toReadonlyArray2=toReadonlyArray_2,reverseChunk2=(self)=>{switch(self.backing._tag){case"IEmpty":case"ISingleton":return self;case"IArray":return makeChunk2({_tag:"IArray",array:reverse4(self.backing.array)});case"IConcat":return makeChunk2({_tag:"IConcat",left:reverse22(self.backing.right),right:reverse22(self.backing.left)});case"ISlice":return unsafeFromArray2(reverse4(toReadonlyArray2(self)))}},reverse22=reverseChunk2,get42=dual2(2,(self,index)=>index<0||index>=self.length?none22():some22(unsafeGet42(self,index))),unsafeFromArray2=(self)=>self.length===0?empty42():self.length===1?of22(self[0]):makeChunk2({_tag:"IArray",array:self}),unsafeFromNonEmptyArray2=(self)=>unsafeFromArray2(self),unsafeGet42=dual2(2,(self,index)=>{switch(self.backing._tag){case"IEmpty":throw Error("Index out of bounds");case"ISingleton":{if(index!==0)throw Error("Index out of bounds");return self.backing.a}case"IArray":{if(index>=self.length||index<0)throw Error("Index out of bounds");return self.backing.array[index]}case"IConcat":return index<self.left.length?unsafeGet42(self.left,index):unsafeGet42(self.right,index-self.left.length);case"ISlice":return unsafeGet42(self.backing.chunk,index+self.backing.offset)}}),append22=dual2(2,(self,a)=>appendAll22(self,of22(a))),prepend22=dual2(2,(self,elem)=>appendAll22(of22(elem),self)),take9=dual2(2,(self,n)=>{if(n<=0)return _empty22;else if(n>=self.length)return self;else switch(self.backing._tag){case"ISlice":return makeChunk2({_tag:"ISlice",chunk:self.backing.chunk,length:n,offset:self.backing.offset});case"IConcat":{if(n>self.left.length)return makeChunk2({_tag:"IConcat",left:self.left,right:take9(self.right,n-self.left.length)});return take9(self.left,n)}default:return makeChunk2({_tag:"ISlice",chunk:self,offset:0,length:n})}}),drop22=dual2(2,(self,n)=>{if(n<=0)return self;else if(n>=self.length)return _empty22;else switch(self.backing._tag){case"ISlice":return makeChunk2({_tag:"ISlice",chunk:self.backing.chunk,offset:self.backing.offset+n,length:self.backing.length-n});case"IConcat":{if(n>self.left.length)return drop22(self.right,n-self.left.length);return makeChunk2({_tag:"IConcat",left:drop22(self.left,n),right:self.right})}default:return makeChunk2({_tag:"ISlice",chunk:self,offset:n,length:self.length-n})}}),dropRight3=dual2(2,(self,n)=>take9(self,Math.max(0,self.length-n))),dropWhile6=dual2(2,(self,predicate)=>{let arr=toReadonlyArray2(self),len=arr.length,i=0;while(i<len&&predicate(arr[i]))i++;return drop22(self,i)}),prependAll2=dual2(2,(self,that)=>appendAll22(that,self)),appendAll22=dual2(2,(self,that)=>{if(self.backing._tag==="IEmpty")return that;if(that.backing._tag==="IEmpty")return self;let diff8=that.depth-self.depth;if(Math.abs(diff8)<=1)return makeChunk2({_tag:"IConcat",left:self,right:that});else if(diff8<-1)if(self.left.depth>=self.right.depth){let nr=appendAll22(self.right,that);return makeChunk2({_tag:"IConcat",left:self.left,right:nr})}else{let nrr=appendAll22(self.right.right,that);if(nrr.depth===self.depth-3){let nr=makeChunk2({_tag:"IConcat",left:self.right.left,right:nrr});return makeChunk2({_tag:"IConcat",left:self.left,right:nr})}else{let nl=makeChunk2({_tag:"IConcat",left:self.left,right:self.right.left});return makeChunk2({_tag:"IConcat",left:nl,right:nrr})}}else if(that.right.depth>=that.left.depth){let nl=appendAll22(self,that.left);return makeChunk2({_tag:"IConcat",left:nl,right:that.right})}else{let nll=appendAll22(self,that.left.left);if(nll.depth===that.depth-3){let nl=makeChunk2({_tag:"IConcat",left:nll,right:that.left.right});return makeChunk2({_tag:"IConcat",left:nl,right:that.right})}else{let nr=makeChunk2({_tag:"IConcat",left:that.left.right,right:that.right});return makeChunk2({_tag:"IConcat",left:nll,right:nr})}}}),filterMap32=dual2(2,(self,f)=>unsafeFromArray2(filterMap22(self,f))),filter32=dual2(2,(self,predicate)=>unsafeFromArray2(filter22(self,predicate))),filterMapWhile22=dual2(2,(self,f)=>unsafeFromArray2(filterMapWhile5(self,f))),compact2=(self)=>filterMap32(self,identity5),flatMap32=dual2(2,(self,f)=>{if(self.backing._tag==="ISingleton")return f(self.backing.a,0);let out=_empty22,i=0;for(let k of self)out=appendAll22(out,f(k,i++));return out}),forEach9=dual2(2,(self,f)=>toReadonlyArray2(self).forEach(f)),flatten32=flatMap32(identity5),chunksOf=dual2(2,(self,n)=>{let gr=[],current2=[];if(toReadonlyArray2(self).forEach((a)=>{if(current2.push(a),current2.length>=n)gr.push(unsafeFromArray2(current2)),current2=[]}),current2.length>0)gr.push(unsafeFromArray2(current2));return unsafeFromArray2(gr)}),intersection22=dual2(2,(self,that)=>unsafeFromArray2(intersection3(toReadonlyArray2(self),toReadonlyArray2(that)))),isEmpty15=(self)=>self.length===0,isNonEmpty6=(self)=>self.length>0,head22=get42(0),unsafeHead3=(self)=>unsafeGet42(self,0),headNonEmpty22=unsafeHead3,last22=(self)=>get42(self,self.length-1),unsafeLast2=(self)=>unsafeGet42(self,self.length-1),lastNonEmpty22=unsafeLast2,map32=dual2(2,(self,f)=>self.backing._tag==="ISingleton"?of22(f(self.backing.a,0)):unsafeFromArray2(pipe2(toReadonlyArray2(self),map28((a,i)=>f(a,i))))),mapAccum22=dual2(3,(self,s,f)=>{let[s1,as22]=mapAccum7(self,s,f);return[s1,unsafeFromArray2(as22)]}),partition22=dual2(2,(self,predicate)=>pipe2(partition7(toReadonlyArray2(self),predicate),([l,r])=>[unsafeFromArray2(l),unsafeFromArray2(r)])),partitionMap32=dual2(2,(self,f)=>pipe2(partitionMap22(toReadonlyArray2(self),f),([l,r])=>[unsafeFromArray2(l),unsafeFromArray2(r)])),separate22=(self)=>pipe2(separate2(toReadonlyArray2(self)),([l,r])=>[unsafeFromArray2(l),unsafeFromArray2(r)]),size14=(self)=>self.length,sort22=dual2(2,(self,O)=>unsafeFromArray2(sort2(toReadonlyArray2(self),O))),sortWith=dual2(3,(self,f,order)=>sort22(self,mapInput22(order,f))),splitAt22=dual2(2,(self,n)=>[take9(self,n),drop22(self,n)]),splitNonEmptyAt22=dual2(2,(self,n)=>{let _n=Math.max(1,Math.floor(n));return _n>=self.length?[self,empty42()]:[take9(self,_n),drop22(self,_n)]}),split3=dual2(2,(self,n)=>chunksOf(self,Math.ceil(self.length/Math.floor(n)))),splitWhere2=dual2(2,(self,predicate)=>{let i=0;for(let a of toReadonlyArray2(self))if(predicate(a))break;else i++;return splitAt22(self,i)}),tail=(self)=>self.length>0?some22(drop22(self,1)):none22(),tailNonEmpty22=(self)=>drop22(self,1),takeRight4=dual2(2,(self,n)=>drop22(self,self.length-n)),takeWhile6=dual2(2,(self,predicate)=>{let out=[];for(let a of toReadonlyArray2(self))if(predicate(a))out.push(a);else break;return unsafeFromArray2(out)}),union22=dual2(2,(self,that)=>unsafeFromArray2(union10(toReadonlyArray2(self),toReadonlyArray2(that)))),dedupe22=(self)=>unsafeFromArray2(dedupe2(toReadonlyArray2(self))),dedupeAdjacent22=(self)=>unsafeFromArray2(dedupeAdjacent2(self)),unzip22=(self)=>{let[left32,right32]=unzip2(self);return[unsafeFromArray2(left32),unsafeFromArray2(right32)]},zipWith32=dual2(3,(self,that,f)=>unsafeFromArray2(zipWith22(self,that,f))),zip22=dual2(2,(self,that)=>zipWith32(self,that,(a,b)=>[a,b])),remove22=dual2(2,(self,i)=>{if(i<0||i>=self.length)return self;return unsafeFromArray2(remove7(toReadonlyArray2(self),i))}),removeOption=dual2(2,(self,i)=>{if(i<0||i>=self.length)return none22();return some22(unsafeFromArray2(remove7(toReadonlyArray2(self),i)))}),modifyOption=dual2(3,(self,i,f)=>{if(i<0||i>=self.length)return none22();return some22(unsafeFromArray2(modify5(toReadonlyArray2(self),i,f)))}),modify22=dual2(3,(self,i,f)=>getOrElse6(modifyOption(self,i,f),()=>self)),replace=dual2(3,(self,i,b)=>modify22(self,i,()=>b)),replaceOption=dual2(3,(self,i,b)=>modifyOption(self,i,()=>b)),makeBy22=dual2(2,(n,f)=>fromIterable32(makeBy3(n,f))),range4=(start3,end6)=>start3<=end6?makeBy22(end6-start3+1,(i)=>start3+i):of22(start3),contains32=contains22,containsWith32=containsWith22,findFirst32=findFirst22,findFirstIndex22=findFirstIndex2,findLast22=findLast2,findLastIndex22=findLastIndex2,every22=dual2(2,(self,refinement)=>fromIterable22(self).every(refinement)),some32=dual2(2,(self,predicate)=>fromIterable22(self).some(predicate)),join22=join4,reduce22=reduce13,reduceRight22=reduceRight5,differenceWith22=(isEquivalent)=>{return dual2(2,(self,that)=>unsafeFromArray2(differenceWith2(isEquivalent)(that,self)))},difference22=dual2(2,(self,that)=>unsafeFromArray2(difference4(that,self))),TypeId62=Symbol.for("effect/Duration"),bigint04=BigInt(0),bigint242=BigInt(24),bigint602=BigInt(60),bigint1e32=BigInt(1000),bigint1e62=BigInt(1e6),bigint1e92=BigInt(1e9),DURATION_REGEX2=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,decode2=(input)=>{if(isDuration2(input))return input;else if(isNumber2(input))return millis2(input);else if(isBigInt2(input))return nanos2(input);else if(Array.isArray(input)&&input.length===2&&input.every(isNumber2)){if(input[0]===-1/0||input[1]===-1/0||Number.isNaN(input[0])||Number.isNaN(input[1]))return zero2;if(input[0]===1/0||input[1]===1/0)return infinity2;return nanos2(BigInt(Math.round(input[0]*1e9))+BigInt(Math.round(input[1])))}else if(isString2(input)){let match32=DURATION_REGEX2.exec(input);if(match32){let[_,valueStr,unit]=match32,value=Number(valueStr);switch(unit){case"nano":case"nanos":return nanos2(BigInt(valueStr));case"micro":case"micros":return micros2(BigInt(valueStr));case"milli":case"millis":return millis2(value);case"second":case"seconds":return seconds2(value);case"minute":case"minutes":return minutes2(value);case"hour":case"hours":return hours2(value);case"day":case"days":return days2(value);case"week":case"weeks":return weeks2(value)}}}throw Error("Invalid DurationInput")},zeroValue2={_tag:"Millis",millis:0},infinityValue2={_tag:"Infinity"},DurationProto2={[TypeId62]:TypeId62,[symbol3](){return cached4(this,structure2(this.value))},[symbol22](that){return isDuration2(that)&&equals22(this,that)},toString(){return`Duration(${format22(this)})`},toJSON(){switch(this.value._tag){case"Millis":return{_id:"Duration",_tag:"Millis",millis:this.value.millis};case"Nanos":return{_id:"Duration",_tag:"Nanos",hrtime:toHrTime2(this)};case"Infinity":return{_id:"Duration",_tag:"Infinity"}}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},make72=(input)=>{let duration5=Object.create(DurationProto2);if(isNumber2(input))if(isNaN(input)||input<=0)duration5.value=zeroValue2;else if(!Number.isFinite(input))duration5.value=infinityValue2;else if(!Number.isInteger(input))duration5.value={_tag:"Nanos",nanos:BigInt(Math.round(input*1e6))};else duration5.value={_tag:"Millis",millis:input};else if(input<=bigint04)duration5.value=zeroValue2;else duration5.value={_tag:"Nanos",nanos:input};return duration5},isDuration2=(u)=>hasProperty2(u,TypeId62),isFinite2=(self)=>self.value._tag!=="Infinity",isZero2=(self)=>{switch(self.value._tag){case"Millis":return self.value.millis===0;case"Nanos":return self.value.nanos===bigint04;case"Infinity":return!1}},zero2=make72(0),infinity2=make72(1/0),nanos2=(nanos22)=>make72(nanos22),micros2=(micros22)=>make72(micros22*bigint1e32),millis2=(millis22)=>make72(millis22),seconds2=(seconds22)=>make72(seconds22*1000),minutes2=(minutes22)=>make72(minutes22*60000),hours2=(hours22)=>make72(hours22*3600000),days2=(days22)=>make72(days22*86400000),weeks2=(weeks22)=>make72(weeks22*604800000),toMillis2=(self)=>match32(self,{onMillis:(millis22)=>millis22,onNanos:(nanos22)=>Number(nanos22)/1e6}),unsafeToNanos2=(self)=>{let _self=decode2(self);switch(_self.value._tag){case"Infinity":throw Error("Cannot convert infinite duration to nanos");case"Nanos":return _self.value.nanos;case"Millis":return BigInt(Math.round(_self.value.millis*1e6))}},toHrTime2=(self)=>{let _self=decode2(self);switch(_self.value._tag){case"Infinity":return[1/0,0];case"Nanos":return[Number(_self.value.nanos/bigint1e92),Number(_self.value.nanos%bigint1e92)];case"Millis":return[Math.floor(_self.value.millis/1000),Math.round(_self.value.millis%1000*1e6)]}},match32=dual2(2,(self,options)=>{let _self=decode2(self);switch(_self.value._tag){case"Nanos":return options.onNanos(_self.value.nanos);case"Infinity":return options.onMillis(1/0);case"Millis":return options.onMillis(_self.value.millis)}}),matchWith2=dual2(3,(self,that,options)=>{let _self=decode2(self),_that=decode2(that);if(_self.value._tag==="Infinity"||_that.value._tag==="Infinity")return options.onMillis(toMillis2(_self),toMillis2(_that));else if(_self.value._tag==="Nanos"||_that.value._tag==="Nanos"){let selfNanos=_self.value._tag==="Nanos"?_self.value.nanos:BigInt(Math.round(_self.value.millis*1e6)),thatNanos=_that.value._tag==="Nanos"?_that.value.nanos:BigInt(Math.round(_that.value.millis*1e6));return options.onNanos(selfNanos,thatNanos)}return options.onMillis(_self.value.millis,_that.value.millis)}),Equivalence3=(self,that)=>matchWith2(self,that,{onMillis:(self2,that2)=>self2===that2,onNanos:(self2,that2)=>self2===that2}),sum3=dual2(2,(self,that)=>matchWith2(self,that,{onMillis:(self2,that2)=>make72(self2+that2),onNanos:(self2,that2)=>make72(self2+that2)})),lessThanOrEqualTo22=dual2(2,(self,that)=>matchWith2(self,that,{onMillis:(self2,that2)=>self2<=that2,onNanos:(self2,that2)=>self2<=that2})),greaterThan22=dual2(2,(self,that)=>matchWith2(self,that,{onMillis:(self2,that2)=>self2>that2,onNanos:(self2,that2)=>self2>that2})),greaterThanOrEqualTo22=dual2(2,(self,that)=>matchWith2(self,that,{onMillis:(self2,that2)=>self2>=that2,onNanos:(self2,that2)=>self2>=that2})),equals22=dual2(2,(self,that)=>Equivalence3(decode2(self),decode2(that))),parts2=(self)=>{let duration5=decode2(self);if(duration5.value._tag==="Infinity")return{days:1/0,hours:1/0,minutes:1/0,seconds:1/0,millis:1/0,nanos:1/0};let nanos22=unsafeToNanos2(duration5),ms=nanos22/bigint1e62,sec=ms/bigint1e32,min22=sec/bigint602,hr=min22/bigint602,days22=hr/bigint242;return{days:Number(days22),hours:Number(hr%bigint242),minutes:Number(min22%bigint602),seconds:Number(sec%bigint602),millis:Number(ms%bigint1e32),nanos:Number(nanos22%bigint1e62)}},format22=(self)=>{let duration5=decode2(self);if(duration5.value._tag==="Infinity")return"Infinity";if(isZero2(duration5))return"0";let fragments=parts2(duration5),pieces=[];if(fragments.days!==0)pieces.push(`${fragments.days}d`);if(fragments.hours!==0)pieces.push(`${fragments.hours}h`);if(fragments.minutes!==0)pieces.push(`${fragments.minutes}m`);if(fragments.seconds!==0)pieces.push(`${fragments.seconds}s`);if(fragments.millis!==0)pieces.push(`${fragments.millis}ms`);if(fragments.nanos!==0)pieces.push(`${fragments.nanos}ns`);return pieces.join(" ")},SIZE2=5,BUCKET_SIZE2=Math.pow(2,5),MASK2=BUCKET_SIZE2-1,MAX_INDEX_NODE2=BUCKET_SIZE2/2,MIN_ARRAY_NODE2=BUCKET_SIZE2/4;function popcount2(x){return x-=x>>1&1431655765,x=(x&858993459)+(x>>2&858993459),x=x+(x>>4)&252645135,x+=x>>8,x+=x>>16,x&127}function hashFragment2(shift2,h){return h>>>shift2&MASK2}function toBitmap2(x){return 1<<x}function fromBitmap2(bitmap,bit){return popcount2(bitmap&bit-1)}var make82=(value,previous2)=>({value,previous:previous2});function arrayUpdate2(mutate5,at,v,arr){let out=arr;if(!mutate5){let len=arr.length;out=Array(len);for(let i=0;i<len;++i)out[i]=arr[i]}return out[at]=v,out}function arraySpliceOut2(mutate5,at,arr){let newLen=arr.length-1,i=0,g=0,out=arr;if(mutate5)i=g=at;else{out=Array(newLen);while(i<at)out[g++]=arr[i++]}++i;while(i<=newLen)out[g++]=arr[i++];if(mutate5)out.length=newLen;return out}function arraySpliceIn2(mutate5,at,v,arr){let len=arr.length;if(mutate5){let i2=len;while(i2>=at)arr[i2--]=arr[i2];return arr[at]=v,arr}let i=0,g=0,out=Array(len+1);while(i<at)out[g++]=arr[i++];out[at]=v;while(i<len)out[++g]=arr[i++];return out}class EmptyNode2{_tag="EmptyNode";modify(edit,_shift,f,hash22,key,size22){let v=f(none22());if(isNone22(v))return new EmptyNode2;return++size22.value,new LeafNode2(edit,hash22,key,v)}}function isEmptyNode2(a){return isTagged2(a,"EmptyNode")}function isLeafNode2(node){return isEmptyNode2(node)||node._tag==="LeafNode"||node._tag==="CollisionNode"}function canEditNode2(node,edit){return isEmptyNode2(node)?!1:edit===node.edit}class LeafNode2{edit;hash;key;value;_tag="LeafNode";constructor(edit,hash22,key,value){this.edit=edit,this.hash=hash22,this.key=key,this.value=value}modify(edit,shift2,f,hash22,key,size22){if(equals4(key,this.key)){let v2=f(this.value);if(v2===this.value)return this;else if(isNone22(v2))return--size22.value,new EmptyNode2;if(canEditNode2(this,edit))return this.value=v2,this;return new LeafNode2(edit,hash22,key,v2)}let v=f(none22());if(isNone22(v))return this;return++size22.value,mergeLeaves2(edit,shift2,this.hash,this,hash22,new LeafNode2(edit,hash22,key,v))}}class CollisionNode2{edit;hash;children;_tag="CollisionNode";constructor(edit,hash22,children2){this.edit=edit,this.hash=hash22,this.children=children2}modify(edit,shift2,f,hash22,key,size22){if(hash22===this.hash){let canEdit=canEditNode2(this,edit),list=this.updateCollisionList(canEdit,edit,this.hash,this.children,f,key,size22);if(list===this.children)return this;return list.length>1?new CollisionNode2(edit,this.hash,list):list[0]}let v=f(none22());if(isNone22(v))return this;return++size22.value,mergeLeaves2(edit,shift2,this.hash,this,hash22,new LeafNode2(edit,hash22,key,v))}updateCollisionList(mutate5,edit,hash22,list,f,key,size22){let len=list.length;for(let i=0;i<len;++i){let child=list[i];if("key"in child&&equals4(key,child.key)){let value=child.value,newValue2=f(value);if(newValue2===value)return list;if(isNone22(newValue2))return--size22.value,arraySpliceOut2(mutate5,i,list);return arrayUpdate2(mutate5,i,new LeafNode2(edit,hash22,key,newValue2),list)}}let newValue=f(none22());if(isNone22(newValue))return list;return++size22.value,arrayUpdate2(mutate5,len,new LeafNode2(edit,hash22,key,newValue),list)}}class IndexedNode2{edit;mask;children;_tag="IndexedNode";constructor(edit,mask,children2){this.edit=edit,this.mask=mask,this.children=children2}modify(edit,shift2,f,hash22,key,size22){let mask=this.mask,children2=this.children,frag=hashFragment2(shift2,hash22),bit=toBitmap2(frag),indx=fromBitmap2(mask,bit),exists22=mask&bit,canEdit=canEditNode2(this,edit);if(!exists22){let _newChild=new EmptyNode2().modify(edit,shift2+SIZE2,f,hash22,key,size22);if(!_newChild)return this;return children2.length>=MAX_INDEX_NODE2?expand2(edit,frag,_newChild,mask,children2):new IndexedNode2(edit,mask|bit,arraySpliceIn2(canEdit,indx,_newChild,children2))}let current2=children2[indx],child=current2.modify(edit,shift2+SIZE2,f,hash22,key,size22);if(current2===child)return this;let bitmap=mask,newChildren;if(isEmptyNode2(child)){if(bitmap&=~bit,!bitmap)return new EmptyNode2;if(children2.length<=2&&isLeafNode2(children2[indx^1]))return children2[indx^1];newChildren=arraySpliceOut2(canEdit,indx,children2)}else newChildren=arrayUpdate2(canEdit,indx,child,children2);if(canEdit)return this.mask=bitmap,this.children=newChildren,this;return new IndexedNode2(edit,bitmap,newChildren)}}class ArrayNode2{edit;size;children;_tag="ArrayNode";constructor(edit,size22,children2){this.edit=edit,this.size=size22,this.children=children2}modify(edit,shift2,f,hash22,key,size22){let count6=this.size,children2=this.children,frag=hashFragment2(shift2,hash22),child=children2[frag],newChild=(child||new EmptyNode2).modify(edit,shift2+SIZE2,f,hash22,key,size22);if(child===newChild)return this;let canEdit=canEditNode2(this,edit),newChildren;if(isEmptyNode2(child)&&!isEmptyNode2(newChild))++count6,newChildren=arrayUpdate2(canEdit,frag,newChild,children2);else if(!isEmptyNode2(child)&&isEmptyNode2(newChild)){if(--count6,count6<=MIN_ARRAY_NODE2)return pack2(edit,count6,frag,children2);newChildren=arrayUpdate2(canEdit,frag,new EmptyNode2,children2)}else newChildren=arrayUpdate2(canEdit,frag,newChild,children2);if(canEdit)return this.size=count6,this.children=newChildren,this;return new ArrayNode2(edit,count6,newChildren)}}function pack2(edit,count6,removed,elements){let children2=Array(count6-1),g=0,bitmap=0;for(let i=0,len=elements.length;i<len;++i)if(i!==removed){let elem=elements[i];if(elem&&!isEmptyNode2(elem))children2[g++]=elem,bitmap|=1<<i}return new IndexedNode2(edit,bitmap,children2)}function expand2(edit,frag,child,bitmap,subNodes){let arr=[],bit=bitmap,count6=0;for(let i=0;bit;++i){if(bit&1)arr[i]=subNodes[count6++];bit>>>=1}return arr[frag]=child,new ArrayNode2(edit,count6+1,arr)}function mergeLeavesInner2(edit,shift2,h1,n1,h2,n2){if(h1===h2)return new CollisionNode2(edit,h1,[n2,n1]);let subH1=hashFragment2(shift2,h1),subH2=hashFragment2(shift2,h2);if(subH1===subH2)return(child)=>new IndexedNode2(edit,toBitmap2(subH1)|toBitmap2(subH2),[child]);else{let children2=subH1<subH2?[n1,n2]:[n2,n1];return new IndexedNode2(edit,toBitmap2(subH1)|toBitmap2(subH2),children2)}}function mergeLeaves2(edit,shift2,h1,n1,h2,n2){let stack=void 0,currentShift=shift2;while(!0){let res=mergeLeavesInner2(edit,currentShift,h1,n1,h2,n2);if(typeof res==="function")stack=make82(res,stack),currentShift=currentShift+SIZE2;else{let final=res;while(stack!=null)final=stack.value(final),stack=stack.previous;return final}}}var HashMapSymbolKey2="effect/HashMap",HashMapTypeId2=Symbol.for(HashMapSymbolKey2),HashMapProto2={[HashMapTypeId2]:HashMapTypeId2,[Symbol.iterator](){return new HashMapIterator2(this,(k,v)=>[k,v])},[symbol3](){let hash22=hash2(HashMapSymbolKey2);for(let item of this)hash22^=pipe2(hash2(item[0]),combine11(hash2(item[1])));return cached4(this,hash22)},[symbol22](that){if(isHashMap2(that)){if(that._size!==this._size)return!1;for(let item of this){let elem=pipe2(that,getHash2(item[0],hash2(item[0])));if(isNone22(elem))return!1;else if(!equals4(item[1],elem.value))return!1}return!0}return!1},toString(){return format4(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},makeImpl3=(editable,edit,root,size22)=>{let map42=Object.create(HashMapProto2);return map42._editable=editable,map42._edit=edit,map42._root=root,map42._size=size22,map42};class HashMapIterator2{map;f;v;constructor(map42,f){this.map=map42,this.f=f,this.v=visitLazy2(this.map._root,this.f,void 0)}next(){if(isNone22(this.v))return{done:!0,value:void 0};let v0=this.v.value;return this.v=applyCont2(v0.cont),{done:!1,value:v0.value}}[Symbol.iterator](){return new HashMapIterator2(this.map,this.f)}}var applyCont2=(cont)=>cont?visitLazyChildren2(cont[0],cont[1],cont[2],cont[3],cont[4]):none22(),visitLazy2=(node,f,cont=void 0)=>{switch(node._tag){case"LeafNode":{if(isSome22(node.value))return some22({value:f(node.key,node.value.value),cont});return applyCont2(cont)}case"CollisionNode":case"ArrayNode":case"IndexedNode":{let children2=node.children;return visitLazyChildren2(children2.length,children2,0,f,cont)}default:return applyCont2(cont)}},visitLazyChildren2=(len,children2,i,f,cont)=>{while(i<len){let child=children2[i++];if(child&&!isEmptyNode2(child))return visitLazy2(child,f,[len,children2,i,f,cont])}return applyCont2(cont)},_empty32=makeImpl3(!1,0,new EmptyNode2,0),empty52=()=>_empty32,fromIterable42=(entries2)=>{let map42=beginMutation3(empty52());for(let entry of entries2)set8(map42,entry[0],entry[1]);return endMutation3(map42)},isHashMap2=(u)=>hasProperty2(u,HashMapTypeId2),isEmpty22=(self)=>self&&isEmptyNode2(self._root),get52=dual2(2,(self,key)=>getHash2(self,key,hash2(key))),getHash2=dual2(3,(self,key,hash22)=>{let node=self._root,shift2=0;while(!0)switch(node._tag){case"LeafNode":return equals4(key,node.key)?node.value:none22();case"CollisionNode":{if(hash22===node.hash){let children2=node.children;for(let i=0,len=children2.length;i<len;++i){let child=children2[i];if("key"in child&&equals4(key,child.key))return child.value}}return none22()}case"IndexedNode":{let frag=hashFragment2(shift2,hash22),bit=toBitmap2(frag);if(node.mask&bit){node=node.children[fromBitmap2(node.mask,bit)],shift2+=SIZE2;break}return none22()}case"ArrayNode":{if(node=node.children[hashFragment2(shift2,hash22)],node){shift2+=SIZE2;break}return none22()}default:return none22()}}),has5=dual2(2,(self,key)=>isSome22(getHash2(self,key,hash2(key)))),set8=dual2(3,(self,key,value)=>modifyAt3(self,key,()=>some22(value))),setTree2=dual2(3,(self,newRoot,newSize)=>{if(self._editable)return self._root=newRoot,self._size=newSize,self;return newRoot===self._root?self:makeImpl3(self._editable,self._edit,newRoot,newSize)}),keys3=(self)=>new HashMapIterator2(self,(key)=>key),size22=(self)=>self._size,beginMutation3=(self)=>makeImpl3(!0,self._edit+1,self._root,self._size),endMutation3=(self)=>{return self._editable=!1,self},mutate5=dual2(2,(self,f)=>{let transient=beginMutation3(self);return f(transient),endMutation3(transient)}),modifyAt3=dual2(3,(self,key,f)=>modifyHash2(self,key,hash2(key),f)),modifyHash2=dual2(4,(self,key,hash22,f)=>{let size32={value:self._size},newRoot=self._root.modify(self._editable?self._edit:NaN,0,f,hash22,key,size32);return pipe2(self,setTree2(newRoot,size32.value))}),remove32=dual2(2,(self,key)=>modifyAt3(self,key,none22)),map42=dual2(2,(self,f)=>reduce32(self,empty52(),(map52,value,key)=>set8(map52,key,f(value,key)))),forEach22=dual2(2,(self,f)=>reduce32(self,void 0,(_,value,key)=>f(value,key))),reduce32=dual2(3,(self,zero22,f)=>{let root=self._root;if(root._tag==="LeafNode")return isSome22(root.value)?f(zero22,root.value.value,root.key):zero22;if(root._tag==="EmptyNode")return zero22;let toVisit=[root.children],children2;while(children2=toVisit.pop())for(let i=0,len=children2.length;i<len;){let child=children2[i++];if(child&&!isEmptyNode2(child))if(child._tag==="LeafNode"){if(isSome22(child.value))zero22=f(zero22,child.value.value,child.key)}else toVisit.push(child.children)}return zero22}),HashSetSymbolKey2="effect/HashSet",HashSetTypeId2=Symbol.for(HashSetSymbolKey2),HashSetProto2={[HashSetTypeId2]:HashSetTypeId2,[Symbol.iterator](){return keys3(this._keyMap)},[symbol3](){return cached4(this,combine11(hash2(this._keyMap))(hash2(HashSetSymbolKey2)))},[symbol22](that){if(isHashSet2(that))return size22(this._keyMap)===size22(that._keyMap)&&equals4(this._keyMap,that._keyMap);return!1},toString(){return format4(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},makeImpl22=(keyMap)=>{let set22=Object.create(HashSetProto2);return set22._keyMap=keyMap,set22},isHashSet2=(u)=>hasProperty2(u,HashSetTypeId2),_empty42=makeImpl22(empty52()),empty62=()=>_empty42,fromIterable52=(elements)=>{let set22=beginMutation22(empty62());for(let value of elements)add32(set22,value);return endMutation22(set22)},make92=(...elements)=>{let set22=beginMutation22(empty62());for(let value of elements)add32(set22,value);return endMutation22(set22)},has22=dual2(2,(self,value)=>has5(self._keyMap,value)),size32=(self)=>size22(self._keyMap),beginMutation22=(self)=>makeImpl22(beginMutation3(self._keyMap)),endMutation22=(self)=>{return self._keyMap._editable=!1,self},mutate22=dual2(2,(self,f)=>{let transient=beginMutation22(self);return f(transient),endMutation22(transient)}),add32=dual2(2,(self,value)=>self._keyMap._editable?(set8(value,!0)(self._keyMap),self):makeImpl22(set8(value,!0)(self._keyMap))),remove42=dual2(2,(self,value)=>self._keyMap._editable?(remove32(value)(self._keyMap),self):makeImpl22(remove32(value)(self._keyMap))),difference32=dual2(2,(self,that)=>mutate22(self,(set22)=>{for(let value of that)remove42(set22,value)})),union32=dual2(2,(self,that)=>mutate22(empty62(),(set22)=>{forEach32(self,(value)=>add32(set22,value));for(let value of that)add32(set22,value)})),forEach32=dual2(2,(self,f)=>forEach22(self._keyMap,(_,k)=>f(k))),reduce42=dual2(3,(self,zero22,f)=>reduce32(self._keyMap,zero22,(z,_,a)=>f(z,a))),empty72=empty62,fromIterable62=fromIterable52,make102=make92,has32=has22,size42=size32,add42=add32,remove52=remove42,difference42=difference32,union42=union32,forEach42=forEach32,reduce52=reduce42,TypeId72=Symbol.for("effect/MutableRef"),MutableRefProto2={[TypeId72]:TypeId72,toString(){return format4(this.toJSON())},toJSON(){return{_id:"MutableRef",current:toJSON2(this.current)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},make112=(value)=>{let ref=Object.create(MutableRefProto2);return ref.current=value,ref},compareAndSet2=dual2(3,(self,oldValue,newValue)=>{if(equals4(oldValue,self.current))return self.current=newValue,!0;return!1}),get62=(self)=>self.current,set22=dual2(2,(self,value)=>{return self.current=value,self}),FiberIdSymbolKey2="effect/FiberId",FiberIdTypeId2=Symbol.for(FiberIdSymbolKey2),OP_NONE2="None",OP_RUNTIME2="Runtime",OP_COMPOSITE2="Composite",emptyHash2=string4(`${FiberIdSymbolKey2}-${OP_NONE2}`);class None4{[FiberIdTypeId2]=FiberIdTypeId2;_tag=OP_NONE2;id=-1;startTimeMillis=-1;[symbol3](){return emptyHash2}[symbol22](that){return isFiberId2(that)&&that._tag===OP_NONE2}toString(){return format4(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag}}[NodeInspectSymbol2](){return this.toJSON()}}class Runtime2{id;startTimeMillis;[FiberIdTypeId2]=FiberIdTypeId2;_tag=OP_RUNTIME2;constructor(id2,startTimeMillis){this.id=id2,this.startTimeMillis=startTimeMillis}[symbol3](){return cached4(this,string4(`${FiberIdSymbolKey2}-${this._tag}-${this.id}-${this.startTimeMillis}`))}[symbol22](that){return isFiberId2(that)&&that._tag===OP_RUNTIME2&&this.id===that.id&&this.startTimeMillis===that.startTimeMillis}toString(){return format4(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,id:this.id,startTimeMillis:this.startTimeMillis}}[NodeInspectSymbol2](){return this.toJSON()}}class Composite2{left;right;[FiberIdTypeId2]=FiberIdTypeId2;_tag=OP_COMPOSITE2;constructor(left32,right32){this.left=left32,this.right=right32}_hash;[symbol3](){return pipe2(string4(`${FiberIdSymbolKey2}-${this._tag}`),combine11(hash2(this.left)),combine11(hash2(this.right)),cached4(this))}[symbol22](that){return isFiberId2(that)&&that._tag===OP_COMPOSITE2&&equals4(this.left,that.left)&&equals4(this.right,that.right)}toString(){return format4(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,left:toJSON2(this.left),right:toJSON2(this.right)}}[NodeInspectSymbol2](){return this.toJSON()}}var none32=new None4,isFiberId2=(self)=>hasProperty2(self,FiberIdTypeId2),combine22=dual2(2,(self,that)=>{if(self._tag===OP_NONE2)return that;if(that._tag===OP_NONE2)return self;return new Composite2(self,that)}),combineAll3=(fiberIds)=>{return pipe2(fiberIds,reduce52(none32,(a,b)=>combine22(b)(a)))},ids3=(self)=>{switch(self._tag){case OP_NONE2:return empty72();case OP_RUNTIME2:return make102(self.id);case OP_COMPOSITE2:return pipe2(ids3(self.left),union42(ids3(self.right)))}},_fiberCounter2=globalValue2(Symbol.for("effect/Fiber/Id/_fiberCounter"),()=>make112(0)),threadName3=(self)=>{return Array.from(ids3(self)).map((n)=>`#${n}`).join(",")},unsafeMake22=()=>{let id2=get62(_fiberCounter2);return pipe2(_fiberCounter2,set22(id2+1)),new Runtime2(id2,Date.now())},none42=none32,combine32=combine22,combineAll22=combineAll3,ids22=ids3,threadName22=threadName3,unsafeMake32=unsafeMake22,empty82=empty52,fromIterable72=fromIterable42,isEmpty32=isEmpty22,get72=get52,set32=set8,keys22=keys3,mutate32=mutate5,modifyAt22=modifyAt3,map62=map42,forEach52=forEach22,reduce62=reduce32,TypeId82=Symbol.for("effect/List"),toArray32=(self)=>fromIterable22(self),getEquivalence42=(isEquivalent)=>mapInput6(getEquivalence22(isEquivalent),toArray32),_equivalence42=getEquivalence42(equals4),ConsProto2={[TypeId82]:TypeId82,_tag:"Cons",toString(){return format4(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:toArray32(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},[symbol22](that){return isList2(that)&&this._tag===that._tag&&_equivalence42(this,that)},[symbol3](){return cached4(this,array22(toArray32(this)))},[Symbol.iterator](){let done11=!1,self=this;return{next(){if(done11)return this.return();if(self._tag==="Nil")return done11=!0,this.return();let value=self.head;return self=self.tail,{done:done11,value}},return(value){if(!done11)done11=!0;return{done:!0,value}}}},pipe(){return pipeArguments2(this,arguments)}},makeCons2=(head32,tail2)=>{let cons2=Object.create(ConsProto2);return cons2.head=head32,cons2.tail=tail2,cons2},NilHash2=string4("Nil"),NilProto2={[TypeId82]:TypeId82,_tag:"Nil",toString(){return format4(this.toJSON())},toJSON(){return{_id:"List",_tag:"Nil"}},[NodeInspectSymbol2](){return this.toJSON()},[symbol3](){return NilHash2},[symbol22](that){return isList2(that)&&this._tag===that._tag},[Symbol.iterator](){return{next(){return{done:!0,value:void 0}}}},pipe(){return pipeArguments2(this,arguments)}},_Nil2=Object.create(NilProto2),isList2=(u)=>hasProperty2(u,TypeId82),isNil2=(self)=>self._tag==="Nil",isCons2=(self)=>self._tag==="Cons",nil2=()=>_Nil2,cons2=(head32,tail2)=>makeCons2(head32,tail2),empty92=nil2,of32=(value)=>makeCons2(value,_Nil2),appendAll32=dual2(2,(self,that)=>prependAll22(that,self)),prepend32=dual2(2,(self,element)=>cons2(element,self)),prependAll22=dual2(2,(self,prefix)=>{if(isNil2(self))return prefix;else if(isNil2(prefix))return self;else{let result=makeCons2(prefix.head,self),curr=result,that=prefix.tail;while(!isNil2(that)){let temp=makeCons2(that.head,self);curr.tail=temp,curr=temp,that=that.tail}return result}}),reduce72=dual2(3,(self,zero22,f)=>{let acc=zero22,these=self;while(!isNil2(these))acc=f(acc,these.head),these=these.tail;return acc}),reverse32=(self)=>{let result=empty92(),these=self;while(!isNil2(these))result=prepend32(result,these.head),these=these.tail;return result},ArrayProto2=Object.assign(Object.create(Array.prototype),{[symbol3](){return cached4(this,array22(this))},[symbol22](that){if(Array.isArray(that)&&this.length===that.length)return this.every((v,i)=>equals4(v,that[i]));else return!1}}),Structural3=function(){function Structural22(args2){if(args2)Object.assign(this,args2)}return Structural22.prototype=StructuralPrototype2,Structural22}(),struct4=(as22)=>Object.assign(Object.create(StructuralPrototype2),as22),ContextPatchTypeId2=Symbol.for("effect/DifferContextPatch");function variance7(a){return a}var PatchProto4={...Structural3.prototype,[ContextPatchTypeId2]:{_Value:variance7,_Patch:variance7}},EmptyProto4=Object.assign(Object.create(PatchProto4),{_tag:"Empty"}),_empty52=Object.create(EmptyProto4),empty102=()=>_empty52,AndThenProto4=Object.assign(Object.create(PatchProto4),{_tag:"AndThen"}),makeAndThen4=(first,second)=>{let o=Object.create(AndThenProto4);return o.first=first,o.second=second,o},AddServiceProto2=Object.assign(Object.create(PatchProto4),{_tag:"AddService"}),makeAddService2=(key,service3)=>{let o=Object.create(AddServiceProto2);return o.key=key,o.service=service3,o},RemoveServiceProto2=Object.assign(Object.create(PatchProto4),{_tag:"RemoveService"}),makeRemoveService2=(key)=>{let o=Object.create(RemoveServiceProto2);return o.key=key,o},UpdateServiceProto2=Object.assign(Object.create(PatchProto4),{_tag:"UpdateService"}),makeUpdateService2=(key,update5)=>{let o=Object.create(UpdateServiceProto2);return o.key=key,o.update=update5,o},diff8=(oldValue,newValue)=>{let missingServices=new Map(oldValue.unsafeMap),patch9=empty102();for(let[tag,newService]of newValue.unsafeMap.entries())if(missingServices.has(tag)){let old=missingServices.get(tag);if(missingServices.delete(tag),!equals4(old,newService))patch9=combine42(makeUpdateService2(tag,()=>newService))(patch9)}else missingServices.delete(tag),patch9=combine42(makeAddService2(tag,newService))(patch9);for(let[tag]of missingServices.entries())patch9=combine42(makeRemoveService2(tag))(patch9);return patch9},combine42=dual2(2,(self,that)=>makeAndThen4(self,that)),patch9=dual2(2,(self,context7)=>{if(self._tag==="Empty")return context7;let wasServiceUpdated=!1,patches=of22(self),updatedContext=new Map(context7.unsafeMap);while(isNonEmpty6(patches)){let head32=headNonEmpty22(patches),tail2=tailNonEmpty22(patches);switch(head32._tag){case"Empty":{patches=tail2;break}case"AddService":{updatedContext.set(head32.key,head32.service),patches=tail2;break}case"AndThen":{patches=prepend22(prepend22(tail2,head32.second),head32.first);break}case"RemoveService":{updatedContext.delete(head32.key),patches=tail2;break}case"UpdateService":{updatedContext.set(head32.key,head32.update(updatedContext.get(head32.key))),wasServiceUpdated=!0,patches=tail2;break}}}if(!wasServiceUpdated)return makeContext2(updatedContext);let map72=new Map;for(let[tag]of context7.unsafeMap)if(updatedContext.has(tag))map72.set(tag,updatedContext.get(tag)),updatedContext.delete(tag);for(let[tag,s]of updatedContext)map72.set(tag,s);return makeContext2(map72)}),HashSetPatchTypeId2=Symbol.for("effect/DifferHashSetPatch");function variance22(a){return a}var PatchProto22={...Structural3.prototype,[HashSetPatchTypeId2]:{_Value:variance22,_Key:variance22,_Patch:variance22}},EmptyProto22=Object.assign(Object.create(PatchProto22),{_tag:"Empty"}),_empty62=Object.create(EmptyProto22),empty112=()=>_empty62,AndThenProto22=Object.assign(Object.create(PatchProto22),{_tag:"AndThen"}),makeAndThen22=(first,second)=>{let o=Object.create(AndThenProto22);return o.first=first,o.second=second,o},AddProto2=Object.assign(Object.create(PatchProto22),{_tag:"Add"}),makeAdd2=(value)=>{let o=Object.create(AddProto2);return o.value=value,o},RemoveProto2=Object.assign(Object.create(PatchProto22),{_tag:"Remove"}),makeRemove2=(value)=>{let o=Object.create(RemoveProto2);return o.value=value,o},diff22=(oldValue,newValue)=>{let[removed,patch22]=reduce52([oldValue,empty112()],([set42,patch32],value)=>{if(has32(value)(set42))return[remove52(value)(set42),patch32];return[set42,combine52(makeAdd2(value))(patch32)]})(newValue);return reduce52(patch22,(patch32,value)=>combine52(makeRemove2(value))(patch32))(removed)},combine52=dual2(2,(self,that)=>makeAndThen22(self,that)),patch22=dual2(2,(self,oldValue)=>{if(self._tag==="Empty")return oldValue;let set42=oldValue,patches=of22(self);while(isNonEmpty6(patches)){let head32=headNonEmpty22(patches),tail2=tailNonEmpty22(patches);switch(head32._tag){case"Empty":{patches=tail2;break}case"AndThen":{patches=prepend22(head32.first)(prepend22(head32.second)(tail2));break}case"Add":{set42=add42(head32.value)(set42),patches=tail2;break}case"Remove":set42=remove52(head32.value)(set42),patches=tail2}}return set42}),ReadonlyArrayPatchTypeId2=Symbol.for("effect/DifferReadonlyArrayPatch");function variance32(a){return a}var PatchProto32={...Structural3.prototype,[ReadonlyArrayPatchTypeId2]:{_Value:variance32,_Patch:variance32}},EmptyProto32=Object.assign(Object.create(PatchProto32),{_tag:"Empty"}),_empty72=Object.create(EmptyProto32),empty122=()=>_empty72,AndThenProto32=Object.assign(Object.create(PatchProto32),{_tag:"AndThen"}),makeAndThen32=(first,second)=>{let o=Object.create(AndThenProto32);return o.first=first,o.second=second,o},AppendProto2=Object.assign(Object.create(PatchProto32),{_tag:"Append"}),makeAppend2=(values3)=>{let o=Object.create(AppendProto2);return o.values=values3,o},SliceProto2=Object.assign(Object.create(PatchProto32),{_tag:"Slice"}),makeSlice2=(from,until)=>{let o=Object.create(SliceProto2);return o.from=from,o.until=until,o},UpdateProto2=Object.assign(Object.create(PatchProto32),{_tag:"Update"}),makeUpdate2=(index,patch32)=>{let o=Object.create(UpdateProto2);return o.index=index,o.patch=patch32,o},diff32=(options)=>{let i=0,patch32=empty122();while(i<options.oldValue.length&&i<options.newValue.length){let oldElement=options.oldValue[i],newElement=options.newValue[i],valuePatch=options.differ.diff(oldElement,newElement);if(!equals4(valuePatch,options.differ.empty))patch32=combine62(patch32,makeUpdate2(i,valuePatch));i=i+1}if(i<options.oldValue.length)patch32=combine62(patch32,makeSlice2(0,i));if(i<options.newValue.length)patch32=combine62(patch32,makeAppend2(drop5(i)(options.newValue)));return patch32},combine62=dual2(2,(self,that)=>makeAndThen32(self,that)),patch32=dual2(3,(self,oldValue,differ3)=>{if(self._tag==="Empty")return oldValue;let readonlyArray2=oldValue.slice(),patches=of6(self);while(isNonEmptyArray22(patches)){let head32=headNonEmpty3(patches),tail2=tailNonEmpty3(patches);switch(head32._tag){case"Empty":{patches=tail2;break}case"AndThen":{tail2.unshift(head32.first,head32.second),patches=tail2;break}case"Append":{for(let value of head32.values)readonlyArray2.push(value);patches=tail2;break}case"Slice":{readonlyArray2=readonlyArray2.slice(head32.from,head32.until),patches=tail2;break}case"Update":{readonlyArray2[head32.index]=differ3.patch(head32.patch,readonlyArray2[head32.index]),patches=tail2;break}}}return readonlyArray2}),DifferTypeId2=Symbol.for("effect/Differ"),DifferProto2={[DifferTypeId2]:{_P:identity5,_V:identity5},pipe(){return pipeArguments2(this,arguments)}},make142=(params)=>{let differ3=Object.create(DifferProto2);return differ3.empty=params.empty,differ3.diff=params.diff,differ3.combine=params.combine,differ3.patch=params.patch,differ3},environment2=()=>make142({empty:empty102(),combine:(first,second)=>combine42(second)(first),diff:(oldValue,newValue)=>diff8(oldValue,newValue),patch:(patch42,oldValue)=>patch9(oldValue)(patch42)}),hashSet4=()=>make142({empty:empty112(),combine:(first,second)=>combine52(second)(first),diff:(oldValue,newValue)=>diff22(oldValue,newValue),patch:(patch42,oldValue)=>patch22(oldValue)(patch42)}),readonlyArray2=(differ3)=>make142({empty:empty122(),combine:(first,second)=>combine62(first,second),diff:(oldValue,newValue)=>diff32({oldValue,newValue,differ:differ3}),patch:(patch42,oldValue)=>patch32(patch42,oldValue,differ3)}),update5=()=>updateWith2((_,a)=>a),updateWith2=(f)=>make142({empty:identity5,combine:(first,second)=>{if(first===identity5)return second;if(second===identity5)return first;return(a)=>second(first(a))},diff:(oldValue,newValue)=>{if(equals4(oldValue,newValue))return identity5;return constant2(newValue)},patch:(patch42,oldValue)=>f(oldValue,patch42(oldValue))}),BIT_MASK2=255,BIT_SHIFT2=8,active2=(patch42)=>patch42&BIT_MASK2,enabled2=(patch42)=>patch42>>BIT_SHIFT2&BIT_MASK2,make152=(active22,enabled22)=>(active22&BIT_MASK2)+((enabled22&active22&BIT_MASK2)<<BIT_SHIFT2),empty132=make152(0,0),enable4=(flag)=>make152(flag,flag),disable4=(flag)=>make152(flag,0),exclude3=dual2(2,(self,flag)=>make152(active2(self)&~flag,enabled2(self))),andThen22=dual2(2,(self,that)=>self|that),invert2=(n)=>~n>>>0&BIT_MASK2,None22=0,Interruption2=1,OpSupervision2=2,RuntimeMetrics2=4,WindDown2=16,CooperativeYielding2=32,cooperativeYielding2=(self)=>isEnabled3(self,CooperativeYielding2),disable22=dual2(2,(self,flag)=>self&~flag),enable22=dual2(2,(self,flag)=>self|flag),interruptible5=(self)=>interruption2(self)&&!windDown2(self),interruption2=(self)=>isEnabled3(self,Interruption2),isEnabled3=dual2(2,(self,flag)=>(self&flag)!==0),make162=(...flags)=>flags.reduce((a,b)=>a|b,0),none52=make162(None22),runtimeMetrics2=(self)=>isEnabled3(self,RuntimeMetrics2),windDown2=(self)=>isEnabled3(self,WindDown2),diff42=dual2(2,(self,that)=>make152(self^that,that)),patch42=dual2(2,(self,patch52)=>self&(invert2(active2(patch52))|enabled2(patch52))|active2(patch52)&enabled2(patch52)),differ3=make142({empty:empty132,diff:(oldValue,newValue)=>diff42(oldValue,newValue),combine:(first,second)=>andThen22(second)(first),patch:(_patch,oldValue)=>patch42(oldValue,_patch)}),empty142=empty132,enable32=enable4,disable32=disable4,exclude22=exclude3,empty152={_tag:"Empty"},par2=(self,that)=>({_tag:"Par",left:self,right:that}),seq2=(self,that)=>({_tag:"Seq",left:self,right:that}),single2=(dataSource,blockedRequest)=>({_tag:"Single",dataSource,blockedRequest}),flatten42=(self)=>{let current2=of32(self),updated=empty92();while(!0){let[parallel4,sequential4]=reduce72(current2,[parallelCollectionEmpty2(),empty92()],([parallel22,sequential22],blockedRequest)=>{let[par22,seq22]=step4(blockedRequest);return[parallelCollectionCombine2(parallel22,par22),appendAll32(sequential22,seq22)]});if(updated=merge42(updated,parallel4),isNil2(sequential4))return reverse32(updated);current2=sequential4}throw Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")},step4=(requests)=>{let current2=requests,parallel4=parallelCollectionEmpty2(),stack=empty92(),sequential4=empty92();while(!0)switch(current2._tag){case"Empty":{if(isNil2(stack))return[parallel4,sequential4];current2=stack.head,stack=stack.tail;break}case"Par":{stack=cons2(current2.right,stack),current2=current2.left;break}case"Seq":{let{left:left32,right:right32}=current2;switch(left32._tag){case"Empty":{current2=right32;break}case"Par":{let{left:l,right:r}=left32;current2=par2(seq2(l,right32),seq2(r,right32));break}case"Seq":{let{left:l,right:r}=left32;current2=seq2(l,seq2(r,right32));break}case"Single":{current2=left32,sequential4=cons2(right32,sequential4);break}}break}case"Single":{if(parallel4=parallelCollectionAdd2(parallel4,current2),isNil2(stack))return[parallel4,sequential4];current2=stack.head,stack=stack.tail;break}}throw Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues")},merge42=(sequential4,parallel4)=>{if(isNil2(sequential4))return of32(parallelCollectionToSequentialCollection2(parallel4));if(parallelCollectionIsEmpty2(parallel4))return sequential4;let seqHeadKeys=sequentialCollectionKeys2(sequential4.head),parKeys=parallelCollectionKeys2(parallel4);if(seqHeadKeys.length===1&&parKeys.length===1&&equals4(seqHeadKeys[0],parKeys[0]))return cons2(sequentialCollectionCombine2(sequential4.head,parallelCollectionToSequentialCollection2(parallel4)),sequential4.tail);return cons2(parallelCollectionToSequentialCollection2(parallel4),sequential4)},EntryTypeId2=Symbol.for("effect/RequestBlock/Entry");class EntryImpl2{request;result;listeners;ownerId;state;[EntryTypeId2]=blockedRequestVariance2;constructor(request2,result,listeners,ownerId,state){this.request=request2,this.result=result,this.listeners=listeners,this.ownerId=ownerId,this.state=state}}var blockedRequestVariance2={_R:(_)=>_},makeEntry2=(options)=>new EntryImpl2(options.request,options.result,options.listeners,options.ownerId,options.state),RequestBlockParallelTypeId2=Symbol.for("effect/RequestBlock/RequestBlockParallel"),parallelVariance2={_R:(_)=>_};class ParallelImpl2{map;[RequestBlockParallelTypeId2]=parallelVariance2;constructor(map72){this.map=map72}}var parallelCollectionEmpty2=()=>new ParallelImpl2(empty82()),parallelCollectionAdd2=(self,blockedRequest)=>new ParallelImpl2(modifyAt22(self.map,blockedRequest.dataSource,(_)=>orElseSome2(map27(_,append22(blockedRequest.blockedRequest)),()=>of22(blockedRequest.blockedRequest)))),parallelCollectionCombine2=(self,that)=>new ParallelImpl2(reduce62(self.map,that.map,(map72,value,key)=>set32(map72,key,match22(get72(map72,key),{onNone:()=>value,onSome:(other)=>appendAll22(value,other)})))),parallelCollectionIsEmpty2=(self)=>isEmpty32(self.map),parallelCollectionKeys2=(self)=>Array.from(keys22(self.map)),parallelCollectionToSequentialCollection2=(self)=>sequentialCollectionMake2(map62(self.map,(x)=>of22(x))),SequentialCollectionTypeId2=Symbol.for("effect/RequestBlock/RequestBlockSequential"),sequentialVariance2={_R:(_)=>_};class SequentialImpl2{map;[SequentialCollectionTypeId2]=sequentialVariance2;constructor(map72){this.map=map72}}var sequentialCollectionMake2=(map72)=>new SequentialImpl2(map72),sequentialCollectionCombine2=(self,that)=>new SequentialImpl2(reduce62(that.map,self.map,(map72,value,key)=>set32(map72,key,match22(get72(map72,key),{onNone:()=>empty42(),onSome:(a)=>appendAll22(a,value)})))),sequentialCollectionKeys2=(self)=>Array.from(keys22(self.map)),sequentialCollectionToChunk2=(self)=>Array.from(self.map),OP_DIE4="Die",OP_EMPTY4="Empty",OP_FAIL6="Fail",OP_INTERRUPT4="Interrupt",OP_PARALLEL3="Parallel",OP_SEQUENTIAL3="Sequential",CauseSymbolKey2="effect/Cause",CauseTypeId2=Symbol.for(CauseSymbolKey2),variance42={_E:(_)=>_},proto14={[CauseTypeId2]:variance42,[symbol3](){return pipe2(hash2(CauseSymbolKey2),combine11(hash2(flattenCause2(this))),cached4(this))},[symbol22](that){return isCause2(that)&&causeEquals2(this,that)},pipe(){return pipeArguments2(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:toJSON2(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:toJSON2(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:toJSON2(this.left),right:toJSON2(this.right)}}},toString(){return pretty3(this)},[NodeInspectSymbol2](){return this.toJSON()}},empty162=(()=>{let o=Object.create(proto14);return o._tag=OP_EMPTY4,o})(),fail19=(error3)=>{let o=Object.create(proto14);return o._tag=OP_FAIL6,o.error=error3,o},die12=(defect)=>{let o=Object.create(proto14);return o._tag=OP_DIE4,o.defect=defect,o},interrupt9=(fiberId3)=>{let o=Object.create(proto14);return o._tag=OP_INTERRUPT4,o.fiberId=fiberId3,o},parallel4=(left32,right32)=>{let o=Object.create(proto14);return o._tag=OP_PARALLEL3,o.left=left32,o.right=right32,o},sequential4=(left32,right32)=>{let o=Object.create(proto14);return o._tag=OP_SEQUENTIAL3,o.left=left32,o.right=right32,o},isCause2=(u)=>hasProperty2(u,CauseTypeId2),isEmptyType2=(self)=>self._tag===OP_EMPTY4,isDieType3=(self)=>self._tag===OP_DIE4,isEmpty52=(self)=>{if(self._tag===OP_EMPTY4)return!0;return reduce82(self,!0,(acc,cause3)=>{switch(cause3._tag){case OP_EMPTY4:return some22(acc);case OP_DIE4:case OP_FAIL6:case OP_INTERRUPT4:return some22(!1);default:return none22()}})},isInterrupted3=(self)=>isSome22(interruptOption2(self)),isInterruptedOnly3=(self)=>reduceWithContext3(void 0,IsInterruptedOnlyCauseReducer2)(self),failures2=(self)=>reverse22(reduce82(self,empty42(),(list,cause3)=>cause3._tag===OP_FAIL6?some22(pipe2(list,prepend22(cause3.error))):none22())),defects2=(self)=>reverse22(reduce82(self,empty42(),(list,cause3)=>cause3._tag===OP_DIE4?some22(pipe2(list,prepend22(cause3.defect))):none22())),interruptors3=(self)=>reduce82(self,empty72(),(set42,cause3)=>cause3._tag===OP_INTERRUPT4?some22(pipe2(set42,add42(cause3.fiberId))):none22()),failureOption2=(self)=>find4(self,(cause3)=>cause3._tag===OP_FAIL6?some22(cause3.error):none22()),failureOrCause3=(self)=>{let option5=failureOption2(self);switch(option5._tag){case"None":return right22(self);case"Some":return left22(option5.value)}},flipCauseOption3=(self)=>match42(self,{onEmpty:some22(empty162),onFail:map27(fail19),onDie:(defect)=>some22(die12(defect)),onInterrupt:(fiberId3)=>some22(interrupt9(fiberId3)),onSequential:mergeWith5(sequential4),onParallel:mergeWith5(parallel4)}),interruptOption2=(self)=>find4(self,(cause3)=>cause3._tag===OP_INTERRUPT4?some22(cause3.fiberId):none22()),keepDefects2=(self)=>match42(self,{onEmpty:none22(),onFail:()=>none22(),onDie:(defect)=>some22(die12(defect)),onInterrupt:()=>none22(),onSequential:mergeWith5(sequential4),onParallel:mergeWith5(parallel4)}),keepDefectsAndElectFailures2=(self)=>match42(self,{onEmpty:none22(),onFail:(failure)=>some22(die12(failure)),onDie:(defect)=>some22(die12(defect)),onInterrupt:()=>none22(),onSequential:mergeWith5(sequential4),onParallel:mergeWith5(parallel4)}),stripFailures2=(self)=>match42(self,{onEmpty:empty162,onFail:()=>empty162,onDie:die12,onInterrupt:interrupt9,onSequential:sequential4,onParallel:parallel4}),electFailures2=(self)=>match42(self,{onEmpty:empty162,onFail:die12,onDie:die12,onInterrupt:interrupt9,onSequential:sequential4,onParallel:parallel4}),map82=dual2(2,(self,f)=>flatMap72(self,(e)=>fail19(f(e)))),flatMap72=dual2(2,(self,f)=>match42(self,{onEmpty:empty162,onFail:(error3)=>f(error3),onDie:(defect)=>die12(defect),onInterrupt:(fiberId3)=>interrupt9(fiberId3),onSequential:(left32,right32)=>sequential4(left32,right32),onParallel:(left32,right32)=>parallel4(left32,right32)})),flatten52=(self)=>flatMap72(self,identity5),causeEquals2=(left32,right32)=>{let leftStack=of22(left32),rightStack=of22(right32);while(isNonEmpty6(leftStack)&&isNonEmpty6(rightStack)){let[leftParallel,leftSequential]=pipe2(headNonEmpty22(leftStack),reduce82([empty72(),empty42()],([parallel22,sequential22],cause3)=>{let[par22,seq22]=evaluateCause2(cause3);return some22([pipe2(parallel22,union42(par22)),pipe2(sequential22,appendAll22(seq22))])})),[rightParallel,rightSequential]=pipe2(headNonEmpty22(rightStack),reduce82([empty72(),empty42()],([parallel22,sequential22],cause3)=>{let[par22,seq22]=evaluateCause2(cause3);return some22([pipe2(parallel22,union42(par22)),pipe2(sequential22,appendAll22(seq22))])}));if(!equals4(leftParallel,rightParallel))return!1;leftStack=leftSequential,rightStack=rightSequential}return!0},flattenCause2=(cause3)=>{return flattenCauseLoop2(of22(cause3),empty42())},flattenCauseLoop2=(causes,flattened)=>{while(!0){let[parallel22,sequential22]=pipe2(causes,reduce13([empty72(),empty42()],([parallel32,sequential32],cause3)=>{let[par22,seq22]=evaluateCause2(cause3);return[pipe2(parallel32,union42(par22)),pipe2(sequential32,appendAll22(seq22))]})),updated=size42(parallel22)>0?pipe2(flattened,prepend22(parallel22)):flattened;if(isEmpty15(sequential22))return reverse22(updated);causes=sequential22,flattened=updated}throw Error(getBugErrorMessage2("Cause.flattenCauseLoop"))},find4=dual2(2,(self,pf)=>{let stack=[self];while(stack.length>0){let item=stack.pop(),option5=pf(item);switch(option5._tag){case"None":{switch(item._tag){case OP_SEQUENTIAL3:case OP_PARALLEL3:{stack.push(item.right),stack.push(item.left);break}}break}case"Some":return option5}}return none22()}),evaluateCause2=(self)=>{let cause3=self,stack=[],_parallel=empty72(),_sequential=empty42();while(cause3!==void 0)switch(cause3._tag){case OP_EMPTY4:{if(stack.length===0)return[_parallel,_sequential];cause3=stack.pop();break}case OP_FAIL6:{if(_parallel=add42(_parallel,make62(cause3._tag,cause3.error)),stack.length===0)return[_parallel,_sequential];cause3=stack.pop();break}case OP_DIE4:{if(_parallel=add42(_parallel,make62(cause3._tag,cause3.defect)),stack.length===0)return[_parallel,_sequential];cause3=stack.pop();break}case OP_INTERRUPT4:{if(_parallel=add42(_parallel,make62(cause3._tag,cause3.fiberId)),stack.length===0)return[_parallel,_sequential];cause3=stack.pop();break}case OP_SEQUENTIAL3:{switch(cause3.left._tag){case OP_EMPTY4:{cause3=cause3.right;break}case OP_SEQUENTIAL3:{cause3=sequential4(cause3.left.left,sequential4(cause3.left.right,cause3.right));break}case OP_PARALLEL3:{cause3=parallel4(sequential4(cause3.left.left,cause3.right),sequential4(cause3.left.right,cause3.right));break}default:{_sequential=prepend22(_sequential,cause3.right),cause3=cause3.left;break}}break}case OP_PARALLEL3:{stack.push(cause3.right),cause3=cause3.left;break}}throw Error(getBugErrorMessage2("Cause.evaluateCauseLoop"))},IsInterruptedOnlyCauseReducer2={emptyCase:constTrue2,failCase:constFalse2,dieCase:constFalse2,interruptCase:constTrue2,sequentialCase:(_,left32,right32)=>left32&&right32,parallelCase:(_,left32,right32)=>left32&&right32},OP_SEQUENTIAL_CASE2="SequentialCase",OP_PARALLEL_CASE2="ParallelCase",match42=dual2(2,(self,{onDie,onEmpty,onFail,onInterrupt:onInterrupt3,onParallel,onSequential})=>{return reduceWithContext3(self,void 0,{emptyCase:()=>onEmpty,failCase:(_,error3)=>onFail(error3),dieCase:(_,defect)=>onDie(defect),interruptCase:(_,fiberId3)=>onInterrupt3(fiberId3),sequentialCase:(_,left32,right32)=>onSequential(left32,right32),parallelCase:(_,left32,right32)=>onParallel(left32,right32)})}),reduce82=dual2(3,(self,zero22,pf)=>{let accumulator=zero22,cause3=self,causes=[];while(cause3!==void 0){let option5=pf(accumulator,cause3);switch(accumulator=isSome22(option5)?option5.value:accumulator,cause3._tag){case OP_SEQUENTIAL3:{causes.push(cause3.right),cause3=cause3.left;break}case OP_PARALLEL3:{causes.push(cause3.right),cause3=cause3.left;break}default:{cause3=void 0;break}}if(cause3===void 0&&causes.length>0)cause3=causes.pop()}return accumulator}),reduceWithContext3=dual2(3,(self,context7,reducer)=>{let input=[self],output=[];while(input.length>0){let cause3=input.pop();switch(cause3._tag){case OP_EMPTY4:{output.push(right22(reducer.emptyCase(context7)));break}case OP_FAIL6:{output.push(right22(reducer.failCase(context7,cause3.error)));break}case OP_DIE4:{output.push(right22(reducer.dieCase(context7,cause3.defect)));break}case OP_INTERRUPT4:{output.push(right22(reducer.interruptCase(context7,cause3.fiberId)));break}case OP_SEQUENTIAL3:{input.push(cause3.right),input.push(cause3.left),output.push(left22({_tag:OP_SEQUENTIAL_CASE2}));break}case OP_PARALLEL3:{input.push(cause3.right),input.push(cause3.left),output.push(left22({_tag:OP_PARALLEL_CASE2}));break}}}let accumulator=[];while(output.length>0){let either22=output.pop();switch(either22._tag){case"Left":{switch(either22.left._tag){case OP_SEQUENTIAL_CASE2:{let left32=accumulator.pop(),right32=accumulator.pop(),value=reducer.sequentialCase(context7,left32,right32);accumulator.push(value);break}case OP_PARALLEL_CASE2:{let left32=accumulator.pop(),right32=accumulator.pop(),value=reducer.parallelCase(context7,left32,right32);accumulator.push(value);break}}break}case"Right":{accumulator.push(either22.right);break}}}if(accumulator.length===0)throw Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return accumulator.pop()}),pretty3=(cause3,options)=>{if(isInterruptedOnly3(cause3))return"All fibers interrupted without errors.";return prettyErrors2(cause3).map(function(e){if(options?.renderErrorCause!==!0||e.cause===void 0)return e.stack;return`${e.stack} {
80
+ ${renderErrorCause2(e.cause," ")}
81
+ }`}).join(`
82
+ `)},renderErrorCause2=(cause3,prefix)=>{let lines=cause3.stack.split(`
83
+ `),stack=`${prefix}[cause]: ${lines[0]}`;for(let i=1,len=lines.length;i<len;i++)stack+=`
84
+ ${prefix}${lines[i]}`;if(cause3.cause)stack+=` {
85
+ ${renderErrorCause2(cause3.cause,`${prefix} `)}
86
+ ${prefix}}`;return stack};class PrettyError2 extends globalThis.Error{span=void 0;constructor(originalError){let originalErrorIsObject=typeof originalError==="object"&&originalError!==null,prevLimit=Error.stackTraceLimit;Error.stackTraceLimit=1;super(prettyErrorMessage2(originalError),originalErrorIsObject&&"cause"in originalError&&typeof originalError.cause<"u"?{cause:new PrettyError2(originalError.cause)}:void 0);if(this.message==="")this.message="An error has occurred";if(Error.stackTraceLimit=prevLimit,this.name=originalError instanceof Error?originalError.name:"Error",originalErrorIsObject){if(spanSymbol2 in originalError)this.span=originalError[spanSymbol2];Object.keys(originalError).forEach((key)=>{if(!(key in this))this[key]=originalError[key]})}this.stack=prettyErrorStack2(`${this.name}: ${this.message}`,originalError instanceof Error&&originalError.stack?originalError.stack:"",this.span)}}var prettyErrorMessage2=(u)=>{if(typeof u==="string")return u;if(typeof u==="object"&&u!==null&&u instanceof Error)return u.message;try{if(hasProperty2(u,"toString")&&isFunction22(u.toString)&&u.toString!==Object.prototype.toString&&u.toString!==globalThis.Array.prototype.toString)return u.toString()}catch{}return stringifyCircular2(u)},locationRegex2=/\((.*)\)/g,spanToTrace2=globalValue2("effect/Tracer/spanToTrace",()=>new WeakMap),prettyErrorStack2=(message,stack,span22)=>{let out=[message],lines=stack.startsWith(message)?stack.slice(message.length).split(`
87
+ `):stack.split(`
88
+ `);for(let i=1;i<lines.length;i++){if(lines[i].includes(" at new BaseEffectError")||lines[i].includes(" at new YieldableError")){i++;continue}if(lines[i].includes("Generator.next"))break;if(lines[i].includes("effect_internal_function"))break;out.push(lines[i].replace(/at .*effect_instruction_i.*\((.*)\)/,"at $1").replace(/EffectPrimitive\.\w+/,"<anonymous>"))}if(span22){let current2=span22,i=0;while(current2&&current2._tag==="Span"&&i<10){let stackFn=spanToTrace2.get(current2);if(typeof stackFn==="function"){let stack2=stackFn();if(typeof stack2==="string"){let locationMatchAll=stack2.matchAll(locationRegex2),match52=!1;for(let[,location]of locationMatchAll)match52=!0,out.push(` at ${current2.name} (${location})`);if(!match52)out.push(` at ${current2.name} (${stack2.replace(/^at /,"")})`)}else out.push(` at ${current2.name}`)}else out.push(` at ${current2.name}`);current2=getOrUndefined2(current2.parent),i++}}return out.join(`
89
+ `)},spanSymbol2=Symbol.for("effect/SpanAnnotation"),prettyErrors2=(cause3)=>reduceWithContext3(cause3,void 0,{emptyCase:()=>[],dieCase:(_,unknownError)=>{return[new PrettyError2(unknownError)]},failCase:(_,error3)=>{return[new PrettyError2(error3)]},interruptCase:()=>[],parallelCase:(_,l,r)=>[...l,...r],sequentialCase:(_,l,r)=>[...l,...r]}),OP_STATE_PENDING2="Pending",OP_STATE_DONE3="Done",DeferredSymbolKey2="effect/Deferred",DeferredTypeId2=Symbol.for(DeferredSymbolKey2),deferredVariance2={_E:(_)=>_,_A:(_)=>_},pending3=(joiners)=>{return{_tag:OP_STATE_PENDING2,joiners}},done11=(effect4)=>{return{_tag:OP_STATE_DONE3,effect:effect4}};class SingleShotGen22{self;called=!1;constructor(self){this.self=self}next(a){return this.called?{value:a,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(a){return{value:a,done:!0}}throw(e){throw e}[Symbol.iterator](){return new SingleShotGen22(this.self)}}var blocked3=(blockedRequests,_continue3)=>{let effect4=new EffectPrimitive2("Blocked");return effect4.effect_instruction_i0=blockedRequests,effect4.effect_instruction_i1=_continue3,effect4},runRequestBlock3=(blockedRequests)=>{let effect4=new EffectPrimitive2("RunBlocked");return effect4.effect_instruction_i0=blockedRequests,effect4},EffectTypeId22=Symbol.for("effect/Effect");class RevertFlags2{patch;op;_op=OP_REVERT_FLAGS2;constructor(patch52,op){this.patch=patch52,this.op=op}}class EffectPrimitive2{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId22]=effectVariance2;constructor(_op){this._op=_op}[symbol22](that){return this===that}[symbol3](){return cached4(this,random4(this))}pipe(){return pipeArguments2(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:toJSON2(this.effect_instruction_i0),effect_instruction_i1:toJSON2(this.effect_instruction_i1),effect_instruction_i2:toJSON2(this.effect_instruction_i2)}}toString(){return format4(this.toJSON())}[NodeInspectSymbol2](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen22(new YieldWrap2(this))}}class EffectPrimitiveFailure2{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId22]=effectVariance2;constructor(_op){this._op=_op,this._tag=_op}[symbol22](that){return exitIsExit2(that)&&that._op==="Failure"&&equals4(this.effect_instruction_i0,that.effect_instruction_i0)}[symbol3](){return pipe2(string4(this._tag),combine11(hash2(this.effect_instruction_i0)),cached4(this))}get cause(){return this.effect_instruction_i0}pipe(){return pipeArguments2(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return format4(this.toJSON())}[NodeInspectSymbol2](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen22(new YieldWrap2(this))}}class EffectPrimitiveSuccess2{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[EffectTypeId22]=effectVariance2;constructor(_op){this._op=_op,this._tag=_op}[symbol22](that){return exitIsExit2(that)&&that._op==="Success"&&equals4(this.effect_instruction_i0,that.effect_instruction_i0)}[symbol3](){return pipe2(string4(this._tag),combine11(hash2(this.effect_instruction_i0)),cached4(this))}get value(){return this.effect_instruction_i0}pipe(){return pipeArguments2(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:toJSON2(this.value)}}toString(){return format4(this.toJSON())}[NodeInspectSymbol2](){return this.toJSON()}[Symbol.iterator](){return new SingleShotGen22(new YieldWrap2(this))}}var isEffect3=(u)=>hasProperty2(u,EffectTypeId22),withFiberRuntime3=(withRuntime)=>{let effect4=new EffectPrimitive2(OP_WITH_RUNTIME2);return effect4.effect_instruction_i0=withRuntime,effect4},acquireUseRelease4=dual2(3,(acquire,use,release)=>uninterruptibleMask4((restore)=>flatMap82(acquire,(a)=>flatMap82(exit3(suspend13(()=>restore(use(a)))),(exit3)=>{return suspend13(()=>release(a,exit3)).pipe(matchCauseEffect4({onFailure:(cause3)=>{switch(exit3._tag){case OP_FAILURE2:return failCause15(sequential4(exit3.effect_instruction_i0,cause3));case OP_SUCCESS2:return failCause15(cause3)}},onSuccess:()=>exit3}))})))),as22=dual2(2,(self,value)=>flatMap82(self,()=>succeed20(value))),asVoid22=(self)=>as22(self,void 0),custom3=function(){let wrapper=new EffectPrimitive2(OP_COMMIT2);switch(arguments.length){case 2:{wrapper.effect_instruction_i0=arguments[0],wrapper.commit=arguments[1];break}case 3:{wrapper.effect_instruction_i0=arguments[0],wrapper.effect_instruction_i1=arguments[1],wrapper.commit=arguments[2];break}case 4:{wrapper.effect_instruction_i0=arguments[0],wrapper.effect_instruction_i1=arguments[1],wrapper.effect_instruction_i2=arguments[2],wrapper.commit=arguments[3];break}default:throw Error(getBugErrorMessage2("you're not supposed to end up here"))}return wrapper},unsafeAsync2=(register,blockingOn=none42)=>{let effect4=new EffectPrimitive2(OP_ASYNC2),cancelerRef=void 0;return effect4.effect_instruction_i0=(resume2)=>{cancelerRef=register(resume2)},effect4.effect_instruction_i1=blockingOn,onInterrupt3(effect4,(_)=>isEffect3(cancelerRef)?cancelerRef:void_22)},asyncInterrupt2=(register,blockingOn=none42)=>suspend13(()=>unsafeAsync2(register,blockingOn)),async_2=(resume2,blockingOn=none42)=>{return custom3(resume2,function(){let backingResume=void 0,pendingEffect=void 0;function proxyResume(effect22){if(backingResume)backingResume(effect22);else if(pendingEffect===void 0)pendingEffect=effect22}let effect4=new EffectPrimitive2(OP_ASYNC2);effect4.effect_instruction_i0=(resume22)=>{if(backingResume=resume22,pendingEffect)resume22(pendingEffect)},effect4.effect_instruction_i1=blockingOn;let cancelerRef=void 0,controllerRef=void 0;if(this.effect_instruction_i0.length!==1)controllerRef=new AbortController,cancelerRef=internalCall2(()=>this.effect_instruction_i0(proxyResume,controllerRef.signal));else cancelerRef=internalCall2(()=>this.effect_instruction_i0(proxyResume));return cancelerRef||controllerRef?onInterrupt3(effect4,(_)=>{if(controllerRef)controllerRef.abort();return cancelerRef??void_22}):effect4})},catchAllCause8=dual2(2,(self,f)=>{let effect4=new EffectPrimitive2(OP_ON_FAILURE3);return effect4.effect_instruction_i0=self,effect4.effect_instruction_i1=f,effect4}),catchAll9=dual2(2,(self,f)=>matchEffect4(self,{onFailure:f,onSuccess:succeed20})),catchIf3=dual2(3,(self,predicate,f)=>catchAllCause8(self,(cause3)=>{let either22=failureOrCause3(cause3);switch(either22._tag){case"Left":return predicate(either22.left)?f(either22.left):failCause15(cause3);case"Right":return failCause15(either22.right)}})),catchSome5=dual2(2,(self,pf)=>catchAllCause8(self,(cause3)=>{let either22=failureOrCause3(cause3);switch(either22._tag){case"Left":return pipe2(pf(either22.left),getOrElse6(()=>failCause15(cause3)));case"Right":return failCause15(either22.right)}})),checkInterruptible3=(f)=>withFiberRuntime3((_,status2)=>f(interruption2(status2.runtimeFlags))),originalSymbol2=Symbol.for("effect/OriginalAnnotation"),capture2=(obj,span22)=>{if(isSome22(span22))return new Proxy(obj,{has(target,p){return p===spanSymbol2||p===originalSymbol2||p in target},get(target,p){if(p===spanSymbol2)return span22.value;if(p===originalSymbol2)return obj;return target[p]}});return obj},die22=(defect)=>isObject2(defect)&&!(spanSymbol2 in defect)?withFiberRuntime3((fiber)=>failCause15(die12(capture2(defect,currentSpanFromFiber2(fiber))))):failCause15(die12(defect)),dieMessage6=(message)=>failCauseSync8(()=>die12(new RuntimeException3(message))),dieSync8=(evaluate3)=>flatMap82(sync14(evaluate3),die22),either22=(self)=>matchEffect4(self,{onFailure:(e)=>succeed20(left22(e)),onSuccess:(a)=>succeed20(right22(a))}),exit3=(self)=>matchCause5(self,{onFailure:exitFailCause3,onSuccess:exitSucceed3}),fail22=(error3)=>isObject2(error3)&&!(spanSymbol2 in error3)?withFiberRuntime3((fiber)=>failCause15(fail19(capture2(error3,currentSpanFromFiber2(fiber))))):failCause15(fail19(error3)),failSync9=(evaluate3)=>flatMap82(sync14(evaluate3),fail22),failCause15=(cause3)=>{let effect4=new EffectPrimitiveFailure2(OP_FAILURE2);return effect4.effect_instruction_i0=cause3,effect4},failCauseSync8=(evaluate3)=>flatMap82(sync14(evaluate3),failCause15),fiberId3=withFiberRuntime3((state)=>succeed20(state.id())),fiberIdWith3=(f)=>withFiberRuntime3((state)=>f(state.id())),flatMap82=dual2(2,(self,f)=>{let effect4=new EffectPrimitive2(OP_ON_SUCCESS3);return effect4.effect_instruction_i0=self,effect4.effect_instruction_i1=f,effect4}),andThen32=dual2(2,(self,f)=>flatMap82(self,(a)=>{let b=typeof f==="function"?f(a):f;if(isEffect3(b))return b;else if(isPromiseLike2(b))return unsafeAsync2((resume2)=>{b.then((a2)=>resume2(succeed20(a2)),(e)=>resume2(fail22(new UnknownException2(e,"An unknown error occurred in Effect.andThen"))))});return succeed20(b)})),step22=(self)=>{let effect4=new EffectPrimitive2("OnStep");return effect4.effect_instruction_i0=self,effect4},flatten62=(self)=>flatMap82(self,identity5),flip3=(self)=>matchEffect4(self,{onFailure:succeed20,onSuccess:fail22}),matchCause5=dual2(2,(self,options)=>matchCauseEffect4(self,{onFailure:(cause3)=>succeed20(options.onFailure(cause3)),onSuccess:(a)=>succeed20(options.onSuccess(a))})),matchCauseEffect4=dual2(2,(self,options)=>{let effect4=new EffectPrimitive2(OP_ON_SUCCESS_AND_FAILURE2);return effect4.effect_instruction_i0=self,effect4.effect_instruction_i1=options.onFailure,effect4.effect_instruction_i2=options.onSuccess,effect4}),matchEffect4=dual2(2,(self,options)=>matchCauseEffect4(self,{onFailure:(cause3)=>{if(defects2(cause3).length>0)return failCause15(electFailures2(cause3));let failures22=failures2(cause3);if(failures22.length>0)return options.onFailure(unsafeHead3(failures22));return failCause15(cause3)},onSuccess:options.onSuccess})),forEachSequential2=dual2(2,(self,f)=>suspend13(()=>{let arr=fromIterable22(self),ret=allocate2(arr.length),i=0;return as22(whileLoop3({while:()=>i<arr.length,body:()=>f(arr[i],i),step:(b)=>{ret[i++]=b}}),ret)})),forEachSequentialDiscard2=dual2(2,(self,f)=>suspend13(()=>{let arr=fromIterable22(self),i=0;return whileLoop3({while:()=>i<arr.length,body:()=>f(arr[i],i),step:()=>{i++}})})),if_3=dual2((args2)=>typeof args2[0]==="boolean"||isEffect3(args2[0]),(self,options)=>isEffect3(self)?flatMap82(self,(b)=>b?options.onTrue():options.onFalse()):self?options.onTrue():options.onFalse()),interrupt22=flatMap82(fiberId3,(fiberId22)=>interruptWith3(fiberId22)),interruptWith3=(fiberId22)=>failCause15(interrupt9(fiberId22)),interruptible22=(self)=>{let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=enable32(Interruption2),effect4.effect_instruction_i1=()=>self,effect4},interruptibleMask3=(f)=>custom3(f,function(){let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=enable32(Interruption2),effect4.effect_instruction_i1=(oldFlags)=>interruption2(oldFlags)?internalCall2(()=>this.effect_instruction_i0(interruptible22)):internalCall2(()=>this.effect_instruction_i0(uninterruptible3)),effect4}),intoDeferred3=dual2(2,(self,deferred)=>uninterruptibleMask4((restore)=>flatMap82(exit3(restore(self)),(exit22)=>deferredDone2(deferred,exit22)))),map92=dual2(2,(self,f)=>flatMap82(self,(a)=>sync14(()=>f(a)))),mapBoth8=dual2(2,(self,options)=>matchEffect4(self,{onFailure:(e)=>failSync9(()=>options.onFailure(e)),onSuccess:(a)=>sync14(()=>options.onSuccess(a))})),mapError8=dual2(2,(self,f)=>matchCauseEffect4(self,{onFailure:(cause3)=>{let either32=failureOrCause3(cause3);switch(either32._tag){case"Left":return failSync9(()=>f(either32.left));case"Right":return failCause15(either32.right)}},onSuccess:succeed20})),onError5=dual2(2,(self,cleanup)=>onExit4(self,(exit22)=>exitIsSuccess2(exit22)?void_22:cleanup(exit22.effect_instruction_i0))),onExit4=dual2(2,(self,cleanup)=>uninterruptibleMask4((restore)=>matchCauseEffect4(restore(self),{onFailure:(cause1)=>{let result=exitFailCause3(cause1);return matchCauseEffect4(cleanup(result),{onFailure:(cause22)=>exitFailCause3(sequential4(cause1,cause22)),onSuccess:()=>result})},onSuccess:(success)=>{let result=exitSucceed3(success);return zipRight22(cleanup(result),result)}}))),onInterrupt3=dual2(2,(self,cleanup)=>onExit4(self,exitMatch2({onFailure:(cause3)=>isInterruptedOnly3(cause3)?asVoid22(cleanup(interruptors3(cause3))):void_22,onSuccess:()=>void_22}))),orElse22=dual2(2,(self,that)=>attemptOrElse2(self,that,succeed20)),orDie7=(self)=>orDieWith6(self,identity5),orDieWith6=dual2(2,(self,f)=>matchEffect4(self,{onFailure:(e)=>die22(f(e)),onSuccess:succeed20})),partitionMap4=partitionMap22,runtimeFlags2=withFiberRuntime3((_,status2)=>succeed20(status2.runtimeFlags)),succeed20=(value)=>{let effect4=new EffectPrimitiveSuccess2(OP_SUCCESS2);return effect4.effect_instruction_i0=value,effect4},suspend13=(evaluate3)=>{let effect4=new EffectPrimitive2(OP_COMMIT2);return effect4.commit=evaluate3,effect4},sync14=(thunk)=>{let effect4=new EffectPrimitive2(OP_SYNC3);return effect4.effect_instruction_i0=thunk,effect4},tap22=dual2((args2)=>args2.length===3||args2.length===2&&!(isObject2(args2[1])&&("onlyEffect"in args2[1])),(self,f)=>flatMap82(self,(a)=>{let b=typeof f==="function"?f(a):f;if(isEffect3(b))return as22(b,a);else if(isPromiseLike2(b))return unsafeAsync2((resume2)=>{b.then((_)=>resume2(succeed20(a)),(e)=>resume2(fail22(new UnknownException2(e,"An unknown error occurred in Effect.tap"))))});return succeed20(a)})),transplant3=(f)=>withFiberRuntime3((state)=>{let scopeOverride=state.getFiberRef(currentForkScopeOverride2),scope5=pipe2(scopeOverride,getOrElse6(()=>state.scope()));return f(fiberRefLocally3(currentForkScopeOverride2,some22(scope5)))}),attemptOrElse2=dual2(3,(self,that,onSuccess)=>matchCauseEffect4(self,{onFailure:(cause3)=>{if(defects2(cause3).length>0)return failCause15(getOrThrow2(keepDefectsAndElectFailures2(cause3)));return that()},onSuccess})),uninterruptible3=(self)=>{let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=disable32(Interruption2),effect4.effect_instruction_i1=()=>self,effect4},uninterruptibleMask4=(f)=>custom3(f,function(){let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=disable32(Interruption2),effect4.effect_instruction_i1=(oldFlags)=>interruption2(oldFlags)?internalCall2(()=>this.effect_instruction_i0(interruptible22)):internalCall2(()=>this.effect_instruction_i0(uninterruptible3)),effect4}),void_22=succeed20(void 0),updateRuntimeFlags3=(patch52)=>{let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=patch52,effect4.effect_instruction_i1=void 0,effect4},whenEffect5=dual2(2,(self,condition)=>flatMap82(condition,(b)=>{if(b)return pipe2(self,map92(some22));return succeed20(none22())})),whileLoop3=(options)=>{let effect4=new EffectPrimitive2(OP_WHILE2);return effect4.effect_instruction_i0=options.while,effect4.effect_instruction_i1=options.body,effect4.effect_instruction_i2=options.step,effect4},fromIterator2=(iterator)=>suspend13(()=>{let effect4=new EffectPrimitive2(OP_ITERATOR2);return effect4.effect_instruction_i0=iterator(),effect4}),gen22=function(){let f=arguments.length===1?arguments[0]:arguments[1].bind(arguments[0]);return fromIterator2(()=>f(pipe2))},fnUntraced3=(body,...pipeables)=>Object.defineProperty(pipeables.length===0?function(...args2){return fromIterator2(()=>body.apply(this,args2))}:function(...args2){let effect4=fromIterator2(()=>body.apply(this,args2));for(let x of pipeables)effect4=x(effect4,...args2);return effect4},"length",{value:body.length,configurable:!0}),withConcurrency3=dual2(2,(self,concurrency)=>fiberRefLocally3(self,currentConcurrency2,concurrency)),withRequestBatching3=dual2(2,(self,requestBatching)=>fiberRefLocally3(self,currentRequestBatching2,requestBatching)),withRuntimeFlags2=dual2(2,(self,update22)=>{let effect4=new EffectPrimitive2(OP_UPDATE_RUNTIME_FLAGS2);return effect4.effect_instruction_i0=update22,effect4.effect_instruction_i1=()=>self,effect4}),withTracerEnabled3=dual2(2,(effect4,enabled22)=>fiberRefLocally3(effect4,currentTracerEnabled2,enabled22)),withTracerTiming3=dual2(2,(effect4,enabled22)=>fiberRefLocally3(effect4,currentTracerTimingEnabled3,enabled22)),yieldNow5=(options)=>{let effect4=new EffectPrimitive2(OP_YIELD3);return typeof options?.priority<"u"?withSchedulingPriority3(effect4,options.priority):effect4},zip32=dual2(2,(self,that)=>flatMap82(self,(a)=>map92(that,(b)=>[a,b]))),zipLeft22=dual2(2,(self,that)=>flatMap82(self,(a)=>as22(that,a))),zipRight22=dual2(2,(self,that)=>flatMap82(self,()=>that)),zipWith42=dual2(3,(self,that,f)=>flatMap82(self,(a)=>map92(that,(b)=>f(a,b)))),never6=asyncInterrupt2(()=>{let interval=setInterval(()=>{},2147483647);return sync14(()=>clearInterval(interval))}),interruptFiber2=(self)=>flatMap82(fiberId3,(fiberId22)=>pipe2(self,interruptAsFiber2(fiberId22))),interruptAsFiber2=dual2(2,(self,fiberId22)=>flatMap82(self.interruptAsFork(fiberId22),()=>self.await)),logLevelAll2={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return pipeArguments2(this,arguments)}},logLevelFatal2={_tag:"Fatal",syslog:2,label:"FATAL",ordinal:50000,pipe(){return pipeArguments2(this,arguments)}},logLevelError2={_tag:"Error",syslog:3,label:"ERROR",ordinal:40000,pipe(){return pipeArguments2(this,arguments)}},logLevelWarning2={_tag:"Warning",syslog:4,label:"WARN",ordinal:30000,pipe(){return pipeArguments2(this,arguments)}},logLevelInfo2={_tag:"Info",syslog:6,label:"INFO",ordinal:20000,pipe(){return pipeArguments2(this,arguments)}},logLevelDebug2={_tag:"Debug",syslog:7,label:"DEBUG",ordinal:1e4,pipe(){return pipeArguments2(this,arguments)}},logLevelTrace2={_tag:"Trace",syslog:7,label:"TRACE",ordinal:0,pipe(){return pipeArguments2(this,arguments)}},logLevelNone2={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return pipeArguments2(this,arguments)}},FiberRefSymbolKey2="effect/FiberRef",FiberRefTypeId2=Symbol.for(FiberRefSymbolKey2),fiberRefVariance2={_A:(_)=>_},fiberRefGet2=(self)=>withFiberRuntime3((fiber)=>exitSucceed3(fiber.getFiberRef(self))),fiberRefGetWith2=dual2(2,(self,f)=>flatMap82(fiberRefGet2(self),f)),fiberRefSet2=dual2(2,(self,value)=>fiberRefModify2(self,()=>[void 0,value])),fiberRefModify2=dual2(2,(self,f)=>withFiberRuntime3((state)=>{let[b,a]=f(state.getFiberRef(self));return state.setFiberRef(self,a),succeed20(b)})),fiberRefLocally3=dual2(3,(use,self,value)=>acquireUseRelease4(zipLeft22(fiberRefGet2(self),fiberRefSet2(self,value)),()=>use,(oldValue)=>fiberRefSet2(self,oldValue))),fiberRefLocallyWith3=dual2(3,(use,self,f)=>fiberRefGetWith2(self,(a)=>fiberRefLocally3(use,self,f(a)))),fiberRefUnsafeMake2=(initial,options)=>fiberRefUnsafeMakePatch2(initial,{differ:update5(),fork:options?.fork??identity5,join:options?.join}),fiberRefUnsafeMakeHashSet2=(initial)=>{let differ22=hashSet4();return fiberRefUnsafeMakePatch2(initial,{differ:differ22,fork:differ22.empty})},fiberRefUnsafeMakeReadonlyArray2=(initial)=>{let differ22=readonlyArray2(update5());return fiberRefUnsafeMakePatch2(initial,{differ:differ22,fork:differ22.empty})},fiberRefUnsafeMakeContext2=(initial)=>{let differ22=environment2();return fiberRefUnsafeMakePatch2(initial,{differ:differ22,fork:differ22.empty})},fiberRefUnsafeMakePatch2=(initial,options)=>{return{...CommitPrototype3,[FiberRefTypeId2]:fiberRefVariance2,initial,commit(){return fiberRefGet2(this)},diff:(oldValue,newValue)=>options.differ.diff(oldValue,newValue),combine:(first,second)=>options.differ.combine(first,second),patch:(patch52)=>(oldValue)=>options.differ.patch(patch52,oldValue),fork:options.fork,join:options.join??((_,n)=>n)}},fiberRefUnsafeMakeRuntimeFlags2=(initial)=>fiberRefUnsafeMakePatch2(initial,{differ:differ3,fork:differ3.empty}),currentContext3=globalValue2(Symbol.for("effect/FiberRef/currentContext"),()=>fiberRefUnsafeMakeContext2(empty32())),currentSchedulingPriority3=globalValue2(Symbol.for("effect/FiberRef/currentSchedulingPriority"),()=>fiberRefUnsafeMake2(0)),currentMaxOpsBeforeYield2=globalValue2(Symbol.for("effect/FiberRef/currentMaxOpsBeforeYield"),()=>fiberRefUnsafeMake2(2048)),currentLogAnnotations2=globalValue2(Symbol.for("effect/FiberRef/currentLogAnnotation"),()=>fiberRefUnsafeMake2(empty82())),currentLogLevel2=globalValue2(Symbol.for("effect/FiberRef/currentLogLevel"),()=>fiberRefUnsafeMake2(logLevelInfo2)),currentLogSpan2=globalValue2(Symbol.for("effect/FiberRef/currentLogSpan"),()=>fiberRefUnsafeMake2(empty92())),withSchedulingPriority3=dual2(2,(self,scheduler)=>fiberRefLocally3(self,currentSchedulingPriority3,scheduler)),withMaxOpsBeforeYield3=dual2(2,(self,scheduler)=>fiberRefLocally3(self,currentMaxOpsBeforeYield2,scheduler)),currentConcurrency2=globalValue2(Symbol.for("effect/FiberRef/currentConcurrency"),()=>fiberRefUnsafeMake2("unbounded")),currentRequestBatching2=globalValue2(Symbol.for("effect/FiberRef/currentRequestBatching"),()=>fiberRefUnsafeMake2(!0)),currentUnhandledErrorLogLevel2=globalValue2(Symbol.for("effect/FiberRef/currentUnhandledErrorLogLevel"),()=>fiberRefUnsafeMake2(some22(logLevelDebug2))),currentVersionMismatchErrorLogLevel2=globalValue2(Symbol.for("effect/FiberRef/versionMismatchErrorLogLevel"),()=>fiberRefUnsafeMake2(some22(logLevelWarning2))),withUnhandledErrorLogLevel3=dual2(2,(self,level)=>fiberRefLocally3(self,currentUnhandledErrorLogLevel2,level)),currentMetricLabels2=globalValue2(Symbol.for("effect/FiberRef/currentMetricLabels"),()=>fiberRefUnsafeMakeReadonlyArray2(empty31())),metricLabels3=fiberRefGet2(currentMetricLabels2),currentForkScopeOverride2=globalValue2(Symbol.for("effect/FiberRef/currentForkScopeOverride"),()=>fiberRefUnsafeMake2(none22(),{fork:()=>none22(),join:(parent,_)=>parent})),currentInterruptedCause2=globalValue2(Symbol.for("effect/FiberRef/currentInterruptedCause"),()=>fiberRefUnsafeMake2(empty162,{fork:()=>empty162,join:(parent,_)=>parent})),currentTracerEnabled2=globalValue2(Symbol.for("effect/FiberRef/currentTracerEnabled"),()=>fiberRefUnsafeMake2(!0)),currentTracerTimingEnabled3=globalValue2(Symbol.for("effect/FiberRef/currentTracerTiming"),()=>fiberRefUnsafeMake2(!0)),currentTracerSpanAnnotations2=globalValue2(Symbol.for("effect/FiberRef/currentTracerSpanAnnotations"),()=>fiberRefUnsafeMake2(empty82())),currentTracerSpanLinks2=globalValue2(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>fiberRefUnsafeMake2(empty42())),ScopeTypeId2=Symbol.for("effect/Scope"),CloseableScopeTypeId2=Symbol.for("effect/CloseableScope"),scopeAddFinalizer2=(self,finalizer3)=>self.addFinalizer(()=>asVoid22(finalizer3)),scopeAddFinalizerExit2=(self,finalizer3)=>self.addFinalizer(finalizer3),scopeClose2=(self,exit22)=>self.close(exit22),scopeFork2=(self,strategy)=>self.fork(strategy),causeSquash2=(self)=>{return causeSquashWith2(identity5)(self)},causeSquashWith2=dual2(2,(self,f)=>{let option5=pipe2(self,failureOption2,map27(f));switch(option5._tag){case"None":return pipe2(defects2(self),head22,match22({onNone:()=>{let interrupts=fromIterable22(interruptors3(self)).flatMap((fiberId22)=>fromIterable22(ids22(fiberId22)).map((id2)=>`#${id2}`));return new InterruptedException2(interrupts?`Interrupted by fibers: ${interrupts.join(", ")}`:void 0)},onSome:identity5}));case"Some":return option5.value}}),YieldableError2=function(){class YieldableError22 extends globalThis.Error{commit(){return fail22(this)}toJSON(){let obj={...this};if(this.message)obj.message=this.message;if(this.cause)obj.cause=this.cause;return obj}[NodeInspectSymbol2](){if(this.toString!==globalThis.Error.prototype.toString)return this.stack?`${this.toString()}
90
+ ${this.stack.split(`
91
+ `).slice(1).join(`
92
+ `)}`:this.toString();else if("Bun"in globalThis)return pretty3(fail19(this),{renderErrorCause:!0});return this}}return Object.assign(YieldableError22.prototype,StructuralCommitPrototype2),YieldableError22}(),makeException2=(proto22,tag)=>{class Base22 extends YieldableError2{_tag=tag}return Object.assign(Base22.prototype,proto22),Base22.prototype.name=tag,Base22},RuntimeExceptionTypeId2=Symbol.for("effect/Cause/errors/RuntimeException"),RuntimeException3=makeException2({[RuntimeExceptionTypeId2]:RuntimeExceptionTypeId2},"RuntimeException"),isRuntimeException3=(u)=>hasProperty2(u,RuntimeExceptionTypeId2),InterruptedExceptionTypeId2=Symbol.for("effect/Cause/errors/InterruptedException"),InterruptedException2=makeException2({[InterruptedExceptionTypeId2]:InterruptedExceptionTypeId2},"InterruptedException"),isInterruptedException2=(u)=>hasProperty2(u,InterruptedExceptionTypeId2),IllegalArgumentExceptionTypeId2=Symbol.for("effect/Cause/errors/IllegalArgument"),IllegalArgumentException3=makeException2({[IllegalArgumentExceptionTypeId2]:IllegalArgumentExceptionTypeId2},"IllegalArgumentException"),NoSuchElementExceptionTypeId2=Symbol.for("effect/Cause/errors/NoSuchElement"),NoSuchElementException3=makeException2({[NoSuchElementExceptionTypeId2]:NoSuchElementExceptionTypeId2},"NoSuchElementException"),isNoSuchElementException2=(u)=>hasProperty2(u,NoSuchElementExceptionTypeId2),InvalidPubSubCapacityExceptionTypeId2=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),InvalidPubSubCapacityException2=makeException2({[InvalidPubSubCapacityExceptionTypeId2]:InvalidPubSubCapacityExceptionTypeId2},"InvalidPubSubCapacityException"),ExceededCapacityExceptionTypeId2=Symbol.for("effect/Cause/errors/ExceededCapacityException"),ExceededCapacityException2=makeException2({[ExceededCapacityExceptionTypeId2]:ExceededCapacityExceptionTypeId2},"ExceededCapacityException"),TimeoutExceptionTypeId2=Symbol.for("effect/Cause/errors/Timeout"),TimeoutException2=makeException2({[TimeoutExceptionTypeId2]:TimeoutExceptionTypeId2},"TimeoutException"),timeoutExceptionFromDuration2=(duration5)=>new TimeoutException2(`Operation timed out after '${format22(duration5)}'`),UnknownExceptionTypeId2=Symbol.for("effect/Cause/errors/UnknownException"),UnknownException2=function(){class UnknownException22 extends YieldableError2{_tag="UnknownException";error;constructor(cause3,message){super(message??"An unknown error occurred",{cause:cause3});this.error=cause3}}return Object.assign(UnknownException22.prototype,{[UnknownExceptionTypeId2]:UnknownExceptionTypeId2,name:"UnknownException"}),UnknownException22}(),exitIsExit2=(u)=>isEffect3(u)&&("_tag"in u)&&(u._tag==="Success"||u._tag==="Failure"),exitIsFailure2=(self)=>self._tag==="Failure",exitIsSuccess2=(self)=>self._tag==="Success",exitAs2=dual2(2,(self,value)=>{switch(self._tag){case OP_FAILURE2:return exitFailCause3(self.effect_instruction_i0);case OP_SUCCESS2:return exitSucceed3(value)}}),exitAsVoid2=(self)=>exitAs2(self,void 0),exitCollectAll2=(exits,options)=>exitCollectAllInternal2(exits,options?.parallel?parallel4:sequential4),exitDie3=(defect)=>exitFailCause3(die12(defect)),exitFail2=(error3)=>exitFailCause3(fail19(error3)),exitFailCause3=(cause3)=>{let effect4=new EffectPrimitiveFailure2(OP_FAILURE2);return effect4.effect_instruction_i0=cause3,effect4},exitFlatMap2=dual2(2,(self,f)=>{switch(self._tag){case OP_FAILURE2:return exitFailCause3(self.effect_instruction_i0);case OP_SUCCESS2:return f(self.effect_instruction_i0)}}),exitFlatten2=(self)=>pipe2(self,exitFlatMap2(identity5)),exitInterrupt3=(fiberId22)=>exitFailCause3(interrupt9(fiberId22)),exitMap2=dual2(2,(self,f)=>{switch(self._tag){case OP_FAILURE2:return exitFailCause3(self.effect_instruction_i0);case OP_SUCCESS2:return exitSucceed3(f(self.effect_instruction_i0))}}),exitMapBoth2=dual2(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE2:return exitFailCause3(pipe2(self.effect_instruction_i0,map82(onFailure)));case OP_SUCCESS2:return exitSucceed3(onSuccess(self.effect_instruction_i0))}}),exitMatch2=dual2(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE2:return onFailure(self.effect_instruction_i0);case OP_SUCCESS2:return onSuccess(self.effect_instruction_i0)}}),exitMatchEffect2=dual2(2,(self,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE2:return onFailure(self.effect_instruction_i0);case OP_SUCCESS2:return onSuccess(self.effect_instruction_i0)}}),exitSucceed3=(value)=>{let effect4=new EffectPrimitiveSuccess2(OP_SUCCESS2);return effect4.effect_instruction_i0=value,effect4},exitVoid3=exitSucceed3(void 0),exitZip2=dual2(2,(self,that)=>exitZipWith2(self,that,{onSuccess:(a,a2)=>[a,a2],onFailure:sequential4})),exitZipRight2=dual2(2,(self,that)=>exitZipWith2(self,that,{onSuccess:(_,a2)=>a2,onFailure:sequential4})),exitZipWith2=dual2(3,(self,that,{onFailure,onSuccess})=>{switch(self._tag){case OP_FAILURE2:switch(that._tag){case OP_SUCCESS2:return exitFailCause3(self.effect_instruction_i0);case OP_FAILURE2:return exitFailCause3(onFailure(self.effect_instruction_i0,that.effect_instruction_i0))}case OP_SUCCESS2:switch(that._tag){case OP_SUCCESS2:return exitSucceed3(onSuccess(self.effect_instruction_i0,that.effect_instruction_i0));case OP_FAILURE2:return exitFailCause3(that.effect_instruction_i0)}}}),exitCollectAllInternal2=(exits,combineCauses)=>{let list=fromIterable32(exits);if(!isNonEmpty6(list))return none22();return pipe2(tailNonEmpty22(list),reduce13(pipe2(headNonEmpty22(list),exitMap2(of22)),(accumulator,current2)=>pipe2(accumulator,exitZipWith2(current2,{onSuccess:(list2,value)=>pipe2(list2,prepend22(value)),onFailure:combineCauses}))),exitMap2(reverse22),exitMap2((chunk5)=>toReadonlyArray2(chunk5)),some22)},deferredUnsafeMake2=(fiberId22)=>{return{...CommitPrototype3,[DeferredTypeId2]:deferredVariance2,state:make112(pending3([])),commit(){return deferredAwait2(this)},blockingOn:fiberId22}},deferredMake2=()=>flatMap82(fiberId3,(id2)=>deferredMakeAs2(id2)),deferredMakeAs2=(fiberId22)=>sync14(()=>deferredUnsafeMake2(fiberId22)),deferredAwait2=(self)=>asyncInterrupt2((resume2)=>{let state=get62(self.state);switch(state._tag){case OP_STATE_DONE3:return resume2(state.effect);case OP_STATE_PENDING2:return state.joiners.push(resume2),deferredInterruptJoiner2(self,resume2)}},self.blockingOn),deferredComplete2=dual2(2,(self,effect4)=>intoDeferred3(effect4,self)),deferredCompleteWith2=dual2(2,(self,effect4)=>sync14(()=>{let state=get62(self.state);switch(state._tag){case OP_STATE_DONE3:return!1;case OP_STATE_PENDING2:{set22(self.state,done11(effect4));for(let i=0,len=state.joiners.length;i<len;i++)state.joiners[i](effect4);return!0}}})),deferredDone2=dual2(2,(self,exit22)=>deferredCompleteWith2(self,exit22)),deferredFail2=dual2(2,(self,error3)=>deferredCompleteWith2(self,fail22(error3))),deferredFailCause2=dual2(2,(self,cause3)=>deferredCompleteWith2(self,failCause15(cause3))),deferredInterrupt2=(self)=>flatMap82(fiberId3,(fiberId22)=>deferredCompleteWith2(self,interruptWith3(fiberId22))),deferredInterruptWith2=dual2(2,(self,fiberId22)=>deferredCompleteWith2(self,interruptWith3(fiberId22))),deferredIsDone2=(self)=>sync14(()=>get62(self.state)._tag===OP_STATE_DONE3),deferredPoll2=(self)=>sync14(()=>{let state=get62(self.state);switch(state._tag){case OP_STATE_DONE3:return some22(state.effect);case OP_STATE_PENDING2:return none22()}}),deferredSucceed2=dual2(2,(self,value)=>deferredCompleteWith2(self,succeed20(value))),deferredUnsafeDone2=(self,effect4)=>{let state=get62(self.state);if(state._tag===OP_STATE_PENDING2){set22(self.state,done11(effect4));for(let i=0,len=state.joiners.length;i<len;i++)state.joiners[i](effect4)}},deferredInterruptJoiner2=(self,joiner)=>sync14(()=>{let state=get62(self.state);if(state._tag===OP_STATE_PENDING2){let index=state.joiners.indexOf(joiner);if(index>=0)state.joiners.splice(index,1)}}),constContext2=withFiberRuntime3((fiber)=>exitSucceed3(fiber.currentContext)),context7=()=>constContext2,contextWithEffect5=(f)=>flatMap82(context7(),f),provideContext8=dual2(2,(self,context22)=>fiberRefLocally3(currentContext3,context22)(self)),provideSomeContext4=dual2(2,(self,context22)=>fiberRefLocallyWith3(currentContext3,(parent)=>merge32(parent,context22))(self)),mapInputContext8=dual2(2,(self,f)=>contextWithEffect5((context22)=>provideContext8(self,f(context22)))),filterEffectOrElse3=dual2(2,(self,options)=>flatMap82(self,(a)=>flatMap82(options.predicate(a),(pass)=>pass?succeed20(a):options.orElse(a)))),filterEffectOrFail3=dual2(2,(self,options)=>filterEffectOrElse3(self,{predicate:options.predicate,orElse:(a)=>fail22(options.orFailWith(a))})),currentSpanFromFiber2=(fiber)=>{let span22=fiber.currentSpan;return span22!==void 0&&span22._tag==="Span"?some22(span22):none22()},NoopSpanProto2={_tag:"Span",spanId:"noop",traceId:"noop",sampled:!1,status:{_tag:"Ended",startTime:BigInt(0),endTime:BigInt(0),exit:exitVoid3},attributes:new Map,links:[],kind:"internal",attribute(){},event(){},end(){},addLinks(){}},noopSpan2=(options)=>Object.assign(Object.create(NoopSpanProto2),options),make182=deferredMake2,_await4=deferredAwait2,done22=deferredDone2,fail32=deferredFail2,failCause22=deferredFailCause2,interrupt32=deferredInterrupt2,isDone7=deferredIsDone2,poll8=deferredPoll2,succeed22=deferredSucceed2,unsafeMake42=deferredUnsafeMake2,unsafeDone2=deferredUnsafeDone2,isExit3=exitIsExit2,isFailure5=exitIsFailure2,isSuccess5=exitIsSuccess2,all22=exitCollectAll2,die32=exitDie3,fail42=exitFail2,failCause32=exitFailCause3,flatten72=exitFlatten2,interrupt42=exitInterrupt3,map102=exitMap2,mapBoth22=exitMapBoth2,match52=exitMatch2,succeed32=exitSucceed3,void_32=exitVoid3,zip42=exitZip2,zipRight32=exitZipRight2,TypeId92=Symbol.for("effect/MutableHashMap"),MutableHashMapProto2={[TypeId92]:TypeId92,[Symbol.iterator](){return new MutableHashMapIterator2(this)},toString(){return format4(this.toJSON())},toJSON(){return{_id:"MutableHashMap",values:Array.from(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}};class MutableHashMapIterator2{self;referentialIterator;bucketIterator;constructor(self){this.self=self,this.referentialIterator=self.referential[Symbol.iterator]()}next(){if(this.bucketIterator!==void 0)return this.bucketIterator.next();let result=this.referentialIterator.next();if(result.done)return this.bucketIterator=new BucketIterator2(this.self.buckets.values()),this.next();return result}[Symbol.iterator](){return new MutableHashMapIterator2(this.self)}}class BucketIterator2{backing;constructor(backing){this.backing=backing}currentBucket;next(){if(this.currentBucket===void 0){let result2=this.backing.next();if(result2.done)return result2;this.currentBucket=result2.value[Symbol.iterator]()}let result=this.currentBucket.next();if(result.done)return this.currentBucket=void 0,this.next();return result}}var empty172=()=>{let self=Object.create(MutableHashMapProto2);return self.referential=new Map,self.buckets=new Map,self.bucketsSize=0,self},get82=dual2(2,(self,key)=>{if(isEqual2(key)===!1)return self.referential.has(key)?some22(self.referential.get(key)):none22();let hash22=key[symbol3](),bucket=self.buckets.get(hash22);if(bucket===void 0)return none22();return getFromBucket2(self,bucket,key)}),getFromBucket2=(self,bucket,key,remove62=!1)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol22](bucket[i][0])){let value=bucket[i][1];if(remove62)bucket.splice(i,1),self.bucketsSize--;return some22(value)}return none22()},has42=dual2(2,(self,key)=>isSome22(get82(self,key))),set42=dual2(3,(self,key,value)=>{if(isEqual2(key)===!1)return self.referential.set(key,value),self;let hash22=key[symbol3](),bucket=self.buckets.get(hash22);if(bucket===void 0)return self.buckets.set(hash22,[[key,value]]),self.bucketsSize++,self;return removeFromBucket2(self,bucket,key),bucket.push([key,value]),self.bucketsSize++,self}),removeFromBucket2=(self,bucket,key)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol22](bucket[i][0])){bucket.splice(i,1),self.bucketsSize--;return}},remove62=dual2(2,(self,key)=>{if(isEqual2(key)===!1)return self.referential.delete(key),self;let hash22=key[symbol3](),bucket=self.buckets.get(hash22);if(bucket===void 0)return self;if(removeFromBucket2(self,bucket,key),bucket.length===0)self.buckets.delete(hash22);return self}),size52=(self)=>{return self.referential.size+self.bucketsSize},TypeId102=Symbol.for("effect/MutableList"),MutableListProto2={[TypeId102]:TypeId102,[Symbol.iterator](){let done32=!1,head32=this.head;return{next(){if(done32)return this.return();if(head32==null)return done32=!0,this.return();let value=head32.value;return head32=head32.next,{done:done32,value}},return(value){if(!done32)done32=!0;return{done:!0,value}}}},toString(){return format4(this.toJSON())},toJSON(){return{_id:"MutableList",values:Array.from(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},makeNode3=(value)=>({value,removed:!1,prev:void 0,next:void 0}),empty182=()=>{let list=Object.create(MutableListProto2);return list.head=void 0,list.tail=void 0,list._length=0,list},isEmpty62=(self)=>length3(self)===0,length3=(self)=>self._length,append32=dual2(2,(self,value)=>{let node=makeNode3(value);if(self.head===void 0)self.head=node;if(self.tail===void 0)self.tail=node;else self.tail.next=node,node.prev=self.tail,self.tail=node;return self._length+=1,self}),shift2=(self)=>{let head32=self.head;if(head32!==void 0)return remove72(self,head32),head32.value;return},remove72=(self,node)=>{if(node.removed)return;if(node.removed=!0,node.prev!==void 0&&node.next!==void 0)node.prev.next=node.next,node.next.prev=node.prev;else if(node.prev!==void 0)self.tail=node.prev,node.prev.next=void 0;else if(node.next!==void 0)self.head=node.next,node.next.prev=void 0;else self.tail=void 0,self.head=void 0;if(self._length>0)self._length-=1},TypeId112=Symbol.for("effect/MutableQueue"),EmptyMutableQueue2=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto2={[TypeId112]:TypeId112,[Symbol.iterator](){return Array.from(this.queue)[Symbol.iterator]()},toString(){return format4(this.toJSON())},toJSON(){return{_id:"MutableQueue",values:Array.from(this).map(toJSON2)}},[NodeInspectSymbol2](){return this.toJSON()},pipe(){return pipeArguments2(this,arguments)}},make192=(capacity7)=>{let queue=Object.create(MutableQueueProto2);return queue.queue=empty182(),queue.capacity=capacity7,queue},bounded8=(capacity7)=>make192(capacity7),unbounded8=()=>make192(void 0),length22=(self)=>length3(self.queue),isEmpty72=(self)=>isEmpty62(self.queue),capacity7=(self)=>self.capacity===void 0?1/0:self.capacity,offer6=dual2(2,(self,value)=>{let queueLength=length3(self.queue);if(self.capacity!==void 0&&queueLength===self.capacity)return!1;return append32(value)(self.queue),!0}),offerAll5=dual2(2,(self,values3)=>{let iterator=values3[Symbol.iterator](),next4,remainder=empty42(),offering=!0;while(offering&&(next4=iterator.next())&&!next4.done)offering=offer6(next4.value)(self);while(next4!=null&&!next4.done)remainder=prepend22(next4.value)(remainder),next4=iterator.next();return reverse22(remainder)}),poll22=dual2(2,(self,def)=>{if(isEmpty62(self.queue))return def;return shift2(self.queue)}),pollUpTo2=dual2(2,(self,n)=>{let result=empty42(),count6=0;while(count6<n){let element=poll22(EmptyMutableQueue2)(self);if(element===EmptyMutableQueue2)break;result=prepend22(element)(result),count6+=1}return reverse22(result)}),ClockSymbolKey2="effect/Clock",ClockTypeId2=Symbol.for(ClockSymbolKey2),clockTag2=GenericTag2("effect/Clock"),MAX_TIMER_MILLIS2=2147483647,globalClockScheduler2={unsafeSchedule(task,duration5){let millis22=toMillis2(duration5);if(millis22>MAX_TIMER_MILLIS2)return constFalse2;let completed=!1,handle=setTimeout(()=>{completed=!0,task()},millis22);return()=>{return clearTimeout(handle),!completed}}},performanceNowNanos2=function(){let bigint1e622=BigInt(1e6);if(typeof performance>"u")return()=>BigInt(Date.now())*bigint1e622;let origin;return()=>{if(origin===void 0)origin=BigInt(Date.now())*bigint1e622-BigInt(Math.round(performance.now()*1e6));return origin+BigInt(Math.round(performance.now()*1e6))}}(),processOrPerformanceNow2=function(){let processHrtime=typeof process==="object"&&"hrtime"in process&&typeof process.hrtime.bigint==="function"?process.hrtime:void 0;if(!processHrtime)return performanceNowNanos2;let origin=performanceNowNanos2()-processHrtime.bigint();return()=>origin+processHrtime.bigint()}();class ClockImpl2{[ClockTypeId2]=ClockTypeId2;unsafeCurrentTimeMillis(){return Date.now()}unsafeCurrentTimeNanos(){return processOrPerformanceNow2()}currentTimeMillis=sync14(()=>this.unsafeCurrentTimeMillis());currentTimeNanos=sync14(()=>this.unsafeCurrentTimeNanos());scheduler(){return succeed20(globalClockScheduler2)}sleep(duration5){return async_2((resume2)=>{let canceler=globalClockScheduler2.unsafeSchedule(()=>resume2(void_22),duration5);return asVoid22(sync14(canceler))})}}var make202=()=>new ClockImpl2,OP_AND2="And",OP_OR2="Or",OP_INVALID_DATA2="InvalidData",OP_MISSING_DATA2="MissingData",OP_SOURCE_UNAVAILABLE2="SourceUnavailable",OP_UNSUPPORTED2="Unsupported",ConfigErrorSymbolKey2="effect/ConfigError",ConfigErrorTypeId2=Symbol.for(ConfigErrorSymbolKey2),proto22={_tag:"ConfigError",[ConfigErrorTypeId2]:ConfigErrorTypeId2},And2=(self,that)=>{let error3=Object.create(proto22);return error3._op=OP_AND2,error3.left=self,error3.right=that,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`${this.left} and ${this.right}`}}),Object.defineProperty(error3,"message",{enumerable:!1,get(){return this.toString()}}),error3},Or2=(self,that)=>{let error3=Object.create(proto22);return error3._op=OP_OR2,error3.left=self,error3.right=that,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`${this.left} or ${this.right}`}}),Object.defineProperty(error3,"message",{enumerable:!1,get(){return this.toString()}}),error3},InvalidData2=(path,message,options={pathDelim:"."})=>{let error3=Object.create(proto22);return error3._op=OP_INVALID_DATA2,error3.path=path,error3.message=message,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`(Invalid data at ${pipe2(this.path,join4(options.pathDelim))}: "${this.message}")`}}),error3},MissingData2=(path,message,options={pathDelim:"."})=>{let error3=Object.create(proto22);return error3._op=OP_MISSING_DATA2,error3.path=path,error3.message=message,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`(Missing data at ${pipe2(this.path,join4(options.pathDelim))}: "${this.message}")`}}),error3},SourceUnavailable2=(path,message,cause3,options={pathDelim:"."})=>{let error3=Object.create(proto22);return error3._op=OP_SOURCE_UNAVAILABLE2,error3.path=path,error3.message=message,error3.cause=cause3,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`(Source unavailable at ${pipe2(this.path,join4(options.pathDelim))}: "${this.message}")`}}),error3},Unsupported2=(path,message,options={pathDelim:"."})=>{let error3=Object.create(proto22);return error3._op=OP_UNSUPPORTED2,error3.path=path,error3.message=message,Object.defineProperty(error3,"toString",{enumerable:!1,value(){return`(Unsupported operation at ${pipe2(this.path,join4(options.pathDelim))}: "${this.message}")`}}),error3},prefixed2=dual2(2,(self,prefix)=>{switch(self._op){case OP_AND2:return And2(prefixed2(self.left,prefix),prefixed2(self.right,prefix));case OP_OR2:return Or2(prefixed2(self.left,prefix),prefixed2(self.right,prefix));case OP_INVALID_DATA2:return InvalidData2([...prefix,...self.path],self.message);case OP_MISSING_DATA2:return MissingData2([...prefix,...self.path],self.message);case OP_SOURCE_UNAVAILABLE2:return SourceUnavailable2([...prefix,...self.path],self.message,self.cause);case OP_UNSUPPORTED2:return Unsupported2([...prefix,...self.path],self.message)}}),empty192={_tag:"Empty"},patch52=dual2(2,(path,patch62)=>{let input=of32(patch62),output=path;while(isCons2(input)){let patch72=input.head;switch(patch72._tag){case"Empty":{input=input.tail;break}case"AndThen":{input=cons2(patch72.first,cons2(patch72.second,input.tail));break}case"MapName":{output=map28(output,patch72.f),input=input.tail;break}case"Nested":{output=prepend6(output,patch72.name),input=input.tail;break}case"Unnested":{if(pipe2(head6(output),contains4(patch72.name)))output=tailNonEmpty3(output),input=input.tail;else return left22(MissingData2(output,`Expected ${patch72.name} to be in path in ConfigProvider#unnested`));break}}}return right22(output)}),OP_CONSTANT2="Constant",OP_FAIL22="Fail",OP_FALLBACK2="Fallback",OP_DESCRIBED2="Described",OP_LAZY2="Lazy",OP_MAP_OR_FAIL2="MapOrFail",OP_NESTED2="Nested",OP_PRIMITIVE2="Primitive",OP_SEQUENCE2="Sequence",OP_HASHMAP2="HashMap",OP_ZIP_WITH3="ZipWith",concat4=(l,r)=>[...l,...r],ConfigProviderSymbolKey2="effect/ConfigProvider",ConfigProviderTypeId2=Symbol.for(ConfigProviderSymbolKey2),configProviderTag2=GenericTag2("effect/ConfigProvider"),FlatConfigProviderSymbolKey2="effect/ConfigProviderFlat",FlatConfigProviderTypeId2=Symbol.for(FlatConfigProviderSymbolKey2),make222=(options)=>({[ConfigProviderTypeId2]:ConfigProviderTypeId2,pipe(){return pipeArguments2(this,arguments)},...options}),makeFlat2=(options)=>({[FlatConfigProviderTypeId2]:FlatConfigProviderTypeId2,patch:options.patch,load:(path,config2,split22=!0)=>options.load(path,config2,split22),enumerateChildren:options.enumerateChildren}),fromFlat2=(flat)=>make222({load:(config2)=>flatMap82(fromFlatLoop2(flat,empty31(),config2,!1),(chunk5)=>match22(head6(chunk5),{onNone:()=>fail22(MissingData2(empty31(),`Expected a single value having structure: ${config2}`)),onSome:succeed20})),flattened:flat}),fromEnv2=(options)=>{let{pathDelim,seqDelim}=Object.assign({},{pathDelim:"_",seqDelim:","},options),makePathString=(path)=>pipe2(path,join4(pathDelim)),unmakePathString=(pathString)=>pathString.split(pathDelim),getEnv=()=>typeof process<"u"&&("env"in process)&&typeof process.env==="object"?process.env:{};return fromFlat2(makeFlat2({load:(path,primitive3,split22=!0)=>{let pathString=makePathString(path),current2=getEnv(),valueOpt=pathString in current2?some22(current2[pathString]):none22();return pipe2(valueOpt,mapError8(()=>MissingData2(path,`Expected ${pathString} to exist in the process context`)),flatMap82((value)=>parsePrimitive2(value,path,primitive3,seqDelim,split22)))},enumerateChildren:(path)=>sync14(()=>{let current2=getEnv(),filteredKeyPaths=Object.keys(current2).map((value)=>unmakePathString(value.toUpperCase())).filter((keyPath)=>{for(let i=0;i<path.length;i++){let pathComponent=pipe2(path,unsafeGet8(i)),currentElement=keyPath[i];if(currentElement===void 0||pathComponent!==currentElement)return!1}return!0}).flatMap((keyPath)=>keyPath.slice(path.length,path.length+1));return fromIterable62(filteredKeyPaths)}),patch:empty192}))},extend3=(leftDef,rightDef,left32,right32)=>{let leftPad=unfold6(left32.length,(index)=>index>=right32.length?none22():some22([leftDef(index),index+1])),rightPad=unfold6(right32.length,(index)=>index>=left32.length?none22():some22([rightDef(index),index+1])),leftExtension=concat4(left32,leftPad),rightExtension=concat4(right32,rightPad);return[leftExtension,rightExtension]},appendConfigPath2=(path,config2)=>{let op=config2;if(op._tag==="Nested"){let out=path.slice();while(op._tag==="Nested")out.push(op.name),op=op.config;return out}return path},fromFlatLoop2=(flat,prefix,config2,split22)=>{let op=config2;switch(op._tag){case OP_CONSTANT2:return succeed20(of6(op.value));case OP_DESCRIBED2:return suspend13(()=>fromFlatLoop2(flat,prefix,op.config,split22));case OP_FAIL22:return fail22(MissingData2(prefix,op.message));case OP_FALLBACK2:return pipe2(suspend13(()=>fromFlatLoop2(flat,prefix,op.first,split22)),catchAll9((error1)=>{if(op.condition(error1))return pipe2(fromFlatLoop2(flat,prefix,op.second,split22),catchAll9((error22)=>fail22(Or2(error1,error22))));return fail22(error1)}));case OP_LAZY2:return suspend13(()=>fromFlatLoop2(flat,prefix,op.config(),split22));case OP_MAP_OR_FAIL2:return suspend13(()=>pipe2(fromFlatLoop2(flat,prefix,op.original,split22),flatMap82(forEachSequential2((a)=>pipe2(op.mapOrFail(a),mapError8(prefixed2(appendConfigPath2(prefix,op.original))))))));case OP_NESTED2:return suspend13(()=>fromFlatLoop2(flat,concat4(prefix,of6(op.name)),op.config,split22));case OP_PRIMITIVE2:return pipe2(patch52(prefix,flat.patch),flatMap82((prefix2)=>pipe2(flat.load(prefix2,op,split22),flatMap82((values3)=>{if(values3.length===0){let name=pipe2(last4(prefix2),getOrElse6(()=>"<n/a>"));return fail22(MissingData2([],`Expected ${op.description} with name ${name}`))}return succeed20(values3)}))));case OP_SEQUENCE2:return pipe2(patch52(prefix,flat.patch),flatMap82((patchedPrefix)=>pipe2(flat.enumerateChildren(patchedPrefix),flatMap82(indicesFrom2),flatMap82((indices)=>{if(indices.length===0)return suspend13(()=>map92(fromFlatLoop2(flat,prefix,op.config,!0),of6));return pipe2(forEachSequential2(indices,(index)=>fromFlatLoop2(flat,append4(prefix,`[${index}]`),op.config,!0)),map92((chunkChunk)=>{let flattened=flatten22(chunkChunk);if(flattened.length===0)return of6(empty31());return of6(flattened)}))}))));case OP_HASHMAP2:return suspend13(()=>pipe2(patch52(prefix,flat.patch),flatMap82((prefix2)=>pipe2(flat.enumerateChildren(prefix2),flatMap82((keys32)=>{return pipe2(keys32,forEachSequential2((key)=>fromFlatLoop2(flat,concat4(prefix2,of6(key)),op.valueConfig,split22)),map92((matrix)=>{if(matrix.length===0)return of6(empty82());return pipe2(transpose2(matrix),map28((values3)=>fromIterable72(zip12(fromIterable22(keys32),values3))))}))})))));case OP_ZIP_WITH3:return suspend13(()=>pipe2(fromFlatLoop2(flat,prefix,op.left,split22),either22,flatMap82((left32)=>pipe2(fromFlatLoop2(flat,prefix,op.right,split22),either22,flatMap82((right32)=>{if(isLeft22(left32)&&isLeft22(right32))return fail22(And2(left32.left,right32.left));if(isLeft22(left32)&&isRight22(right32))return fail22(left32.left);if(isRight22(left32)&&isLeft22(right32))return fail22(right32.left);if(isRight22(left32)&&isRight22(right32)){let path=pipe2(prefix,join4(".")),fail52=fromFlatLoopFail2(prefix,path),[lefts,rights]=extend3(fail52,fail52,pipe2(left32.right,map28(right22)),pipe2(right32.right,map28(right22)));return pipe2(lefts,zip12(rights),forEachSequential2(([left4,right4])=>pipe2(zip32(left4,right4),map92(([left5,right5])=>op.zip(left5,right5)))))}throw Error("BUG: ConfigProvider.fromFlatLoop - please report an issue at https://github.com/Effect-TS/effect/issues")})))))}},fromFlatLoopFail2=(prefix,path)=>(index)=>left22(MissingData2(prefix,`The element at index ${index} in a sequence at path "${path}" was missing`)),splitPathString2=(text,delim)=>{return text.split(new RegExp(`\\s*${escape2(delim)}\\s*`))},parsePrimitive2=(text,path,primitive3,delimiter,split22)=>{if(!split22)return pipe2(primitive3.parse(text),mapBoth8({onFailure:prefixed2(path),onSuccess:of6}));return pipe2(splitPathString2(text,delimiter),forEachSequential2((char)=>primitive3.parse(char.trim())),mapError8(prefixed2(path)))},transpose2=(array32)=>{return Object.keys(array32[0]).map((column)=>array32.map((row)=>row[column]))},indicesFrom2=(quotedIndices)=>pipe2(forEachSequential2(quotedIndices,parseQuotedIndex2),mapBoth8({onFailure:()=>empty31(),onSuccess:sort2(Order5)}),either22,map92(merge11)),QUOTED_INDEX_REGEX2=/^(\[(\d+)\])$/,parseQuotedIndex2=(str)=>{let match72=str.match(QUOTED_INDEX_REGEX2);if(match72!==null){let matchedIndex=match72[2];return pipe2(matchedIndex!==void 0&&matchedIndex.length>0?some22(matchedIndex):none22(),flatMap18(parseInteger2))}return none22()},parseInteger2=(str)=>{let parsedIndex=Number.parseInt(str);return Number.isNaN(parsedIndex)?none22():some22(parsedIndex)},TypeId122=Symbol.for("effect/Console"),consoleTag2=GenericTag2("effect/Console"),defaultConsole2={[TypeId122]:TypeId122,assert(condition,...args2){return sync14(()=>{console.assert(condition,...args2)})},clear:sync14(()=>{console.clear()}),count(label){return sync14(()=>{console.count(label)})},countReset(label){return sync14(()=>{console.countReset(label)})},debug(...args2){return sync14(()=>{console.debug(...args2)})},dir(item,options){return sync14(()=>{console.dir(item,options)})},dirxml(...args2){return sync14(()=>{console.dirxml(...args2)})},error(...args2){return sync14(()=>{console.error(...args2)})},group(options){return options?.collapsed?sync14(()=>console.groupCollapsed(options?.label)):sync14(()=>console.group(options?.label))},groupEnd:sync14(()=>{console.groupEnd()}),info(...args2){return sync14(()=>{console.info(...args2)})},log(...args2){return sync14(()=>{console.log(...args2)})},table(tabularData,properties){return sync14(()=>{console.table(tabularData,properties)})},time(label){return sync14(()=>console.time(label))},timeEnd(label){return sync14(()=>console.timeEnd(label))},timeLog(label,...args2){return sync14(()=>{console.timeLog(label,...args2)})},trace(...args2){return sync14(()=>{console.trace(...args2)})},warn(...args2){return sync14(()=>{console.warn(...args2)})},unsafe:console},RandomSymbolKey2="effect/Random",RandomTypeId2=Symbol.for(RandomSymbolKey2),randomTag2=GenericTag2("effect/Random");class RandomImpl2{seed;[RandomTypeId2]=RandomTypeId2;PRNG;constructor(seed){this.seed=seed,this.PRNG=new PCGRandom2(seed)}get next(){return sync14(()=>this.PRNG.number())}get nextBoolean(){return map92(this.next,(n)=>n>0.5)}get nextInt(){return sync14(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(min22,max22){return map92(this.next,(n)=>(max22-min22)*n+min22)}nextIntBetween(min22,max22){return sync14(()=>this.PRNG.integer(max22-min22)+min22)}shuffle(elements){return shuffleWith2(elements,(n)=>this.nextIntBetween(0,n))}}var shuffleWith2=(elements,nextIntBounded)=>{return suspend13(()=>pipe2(sync14(()=>Array.from(elements)),flatMap82((buffer3)=>{let numbers=[];for(let i=buffer3.length;i>=2;i=i-1)numbers.push(i);return pipe2(numbers,forEachSequentialDiscard2((n)=>pipe2(nextIntBounded(n),map92((k)=>swap2(buffer3,n-1,k)))),as22(fromIterable32(buffer3)))})))},swap2=(buffer3,index1,index2)=>{let tmp=buffer3[index1];return buffer3[index1]=buffer3[index2],buffer3[index2]=tmp,buffer3},make232=(seed)=>new RandomImpl2(hash2(seed));class FixedRandomImpl2{values;[RandomTypeId2]=RandomTypeId2;index=0;constructor(values3){if(this.values=values3,values3.length===0)throw Error("Requires at least one value")}getNextValue(){let value=this.values[this.index];return this.index=(this.index+1)%this.values.length,value}get next(){return sync14(()=>{let value=this.getNextValue();if(typeof value==="number")return Math.max(0,Math.min(1,value));return hash2(value)/2147483647})}get nextBoolean(){return sync14(()=>{let value=this.getNextValue();if(typeof value==="boolean")return value;return hash2(value)%2===0})}get nextInt(){return sync14(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.round(value);return Math.abs(hash2(value))})}nextRange(min22,max22){return map92(this.next,(n)=>(max22-min22)*n+min22)}nextIntBetween(min22,max22){return sync14(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.max(min22,Math.min(max22-1,Math.round(value)));let hash22=Math.abs(hash2(value));return min22+hash22%(max22-min22)})}shuffle(elements){return shuffleWith2(elements,(n)=>this.nextIntBetween(0,n))}}var fixed5=(values3)=>new FixedRandomImpl2(values3),TracerTypeId2=Symbol.for("effect/Tracer"),make242=(options)=>({[TracerTypeId2]:TracerTypeId2,...options}),tracerTag2=GenericTag2("effect/Tracer"),spanTag2=GenericTag2("effect/ParentSpan"),randomHexString2=function(){return function(length32){let result="";for(let i=0;i<length32;i++)result+="abcdef0123456789".charAt(Math.floor(Math.random()*16));return result}}();class NativeSpan2{name;parent;context;startTime;kind;_tag="Span";spanId;traceId="native";sampled=!0;status;attributes;events=[];links;constructor(name,parent,context22,links,startTime,kind){this.name=name,this.parent=parent,this.context=context22,this.startTime=startTime,this.kind=kind,this.status={_tag:"Started",startTime},this.attributes=new Map,this.traceId=parent._tag==="Some"?parent.value.traceId:randomHexString2(32),this.spanId=randomHexString2(16),this.links=Array.from(links)}end(endTime,exit22){this.status={_tag:"Ended",endTime,exit:exit22,startTime:this.status.startTime}}attribute(key,value){this.attributes.set(key,value)}event(name,startTime,attributes){this.events.push([name,startTime,attributes??{}])}addLinks(links){this.links.push(...links)}}var nativeTracer2=make242({span:(name,parent,context22,links,startTime,kind)=>new NativeSpan2(name,parent,context22,links,startTime,kind),context:(f)=>f()}),addSpanStackTrace2=(options)=>{if(options?.captureStackTrace===!1)return options;else if(options?.captureStackTrace!==void 0&&typeof options.captureStackTrace!=="boolean")return options;let limit=Error.stackTraceLimit;Error.stackTraceLimit=3;let traceError=Error();Error.stackTraceLimit=limit;let cache=!1;return{...options,captureStackTrace:()=>{if(cache!==!1)return cache;if(traceError.stack!==void 0){let stack=traceError.stack.split(`
93
+ `);if(stack[3]!==void 0)return cache=stack[3].trim(),cache}}}},DisablePropagation2=Reference22()("effect/Tracer/DisablePropagation",{defaultValue:constFalse2}),liveServices2=pipe2(empty32(),add22(clockTag2,make202()),add22(consoleTag2,defaultConsole2),add22(randomTag2,make232(Math.random())),add22(configProviderTag2,fromEnv2()),add22(tracerTag2,nativeTracer2)),currentServices2=globalValue2(Symbol.for("effect/DefaultServices/currentServices"),()=>fiberRefUnsafeMakeContext2(liveServices2)),sleep5=(duration5)=>{let decodedDuration=decode2(duration5);return clockWith5((clock3)=>clock3.sleep(decodedDuration))},defaultServicesWith2=(f)=>withFiberRuntime3((fiber)=>f(fiber.currentDefaultServices)),clockWith5=(f)=>defaultServicesWith2((services)=>f(services.unsafeMap.get(clockTag2.key))),currentTimeMillis3=clockWith5((clock3)=>clock3.currentTimeMillis),currentTimeNanos3=clockWith5((clock3)=>clock3.currentTimeNanos),withClock3=dual2(2,(effect4,c)=>fiberRefLocallyWith3(currentServices2,add22(clockTag2,c))(effect4)),withConfigProvider3=dual2(2,(self,provider)=>fiberRefLocallyWith3(currentServices2,add22(configProviderTag2,provider))(self)),configProviderWith3=(f)=>defaultServicesWith2((services)=>f(services.unsafeMap.get(configProviderTag2.key))),randomWith3=(f)=>defaultServicesWith2((services)=>f(services.unsafeMap.get(randomTag2.key))),withRandom3=dual2(2,(effect4,value)=>fiberRefLocallyWith3(currentServices2,add22(randomTag2,value))(effect4)),tracerWith5=(f)=>defaultServicesWith2((services)=>f(services.unsafeMap.get(tracerTag2.key))),withTracer3=dual2(2,(effect4,value)=>fiberRefLocallyWith3(currentServices2,add22(tracerTag2,value))(effect4)),sleep22=sleep5,currentTimeMillis22=currentTimeMillis3,currentTimeNanos22=currentTimeNanos3,clockWith22=clockWith5,Clock2=clockTag2;function unsafeMake52(fiberRefLocals){return new FiberRefsImpl2(fiberRefLocals)}function empty202(){return unsafeMake52(new Map)}var FiberRefsSym2=Symbol.for("effect/FiberRefs");class FiberRefsImpl2{locals;[FiberRefsSym2]=FiberRefsSym2;constructor(locals){this.locals=locals}pipe(){return pipeArguments2(this,arguments)}}var findAncestor2=(_ref,_parentStack,_childStack,_childModified=!1)=>{let ref=_ref,parentStack=_parentStack,childStack=_childStack,childModified=_childModified,ret=void 0;while(ret===void 0)if(isNonEmptyReadonlyArray2(parentStack)&&isNonEmptyReadonlyArray2(childStack)){let parentFiberId=headNonEmpty3(parentStack)[0],parentAncestors=tailNonEmpty3(parentStack),childFiberId=headNonEmpty3(childStack)[0],childRefValue=headNonEmpty3(childStack)[1],childAncestors=tailNonEmpty3(childStack);if(parentFiberId.startTimeMillis<childFiberId.startTimeMillis)childStack=childAncestors,childModified=!0;else if(parentFiberId.startTimeMillis>childFiberId.startTimeMillis)parentStack=parentAncestors;else if(parentFiberId.id<childFiberId.id)childStack=childAncestors,childModified=!0;else if(parentFiberId.id>childFiberId.id)parentStack=parentAncestors;else ret=[childRefValue,childModified]}else ret=[ref.initial,!0];return ret},joinAs3=dual2(3,(self,fiberId22,that)=>{let parentFiberRefs=new Map(self.locals);return that.locals.forEach((childStack,fiberRef)=>{let childValue=childStack[0][1];if(!childStack[0][0][symbol22](fiberId22)){if(!parentFiberRefs.has(fiberRef)){if(equals4(childValue,fiberRef.initial))return;parentFiberRefs.set(fiberRef,[[fiberId22,fiberRef.join(fiberRef.initial,childValue)]]);return}let parentStack=parentFiberRefs.get(fiberRef),[ancestor,wasModified]=findAncestor2(fiberRef,parentStack,childStack);if(wasModified){let patch62=fiberRef.diff(ancestor,childValue),oldValue=parentStack[0][1],newValue=fiberRef.join(oldValue,fiberRef.patch(patch62)(oldValue));if(!equals4(oldValue,newValue)){let newStack,parentFiberId=parentStack[0][0];if(parentFiberId[symbol22](fiberId22))newStack=[[parentFiberId,newValue],...parentStack.slice(1)];else newStack=[[fiberId22,newValue],...parentStack];parentFiberRefs.set(fiberRef,newStack)}}}}),new FiberRefsImpl2(parentFiberRefs)}),forkAs2=dual2(2,(self,childId)=>{let map112=new Map;return unsafeForkAs2(self,map112,childId),new FiberRefsImpl2(map112)}),unsafeForkAs2=(self,map112,fiberId22)=>{self.locals.forEach((stack,fiberRef)=>{let oldValue=stack[0][1],newValue=fiberRef.patch(fiberRef.fork)(oldValue);if(equals4(oldValue,newValue))map112.set(fiberRef,stack);else map112.set(fiberRef,[[fiberId22,newValue],...stack])})},fiberRefs3=(self)=>fromIterable62(self.locals.keys()),setAll3=(self)=>forEachSequentialDiscard2(fiberRefs3(self),(fiberRef)=>fiberRefSet2(fiberRef,getOrDefault3(self,fiberRef))),delete_3=dual2(2,(self,fiberRef)=>{let locals=new Map(self.locals);return locals.delete(fiberRef),new FiberRefsImpl2(locals)}),get92=dual2(2,(self,fiberRef)=>{if(!self.locals.has(fiberRef))return none22();return some22(headNonEmpty3(self.locals.get(fiberRef))[1])}),getOrDefault3=dual2(2,(self,fiberRef)=>pipe2(get92(self,fiberRef),getOrElse6(()=>fiberRef.initial))),updateAs3=dual2(2,(self,{fiberId:fiberId22,fiberRef,value})=>{if(self.locals.size===0)return new FiberRefsImpl2(new Map([[fiberRef,[[fiberId22,value]]]]));let locals=new Map(self.locals);return unsafeUpdateAs2(locals,fiberId22,fiberRef,value),new FiberRefsImpl2(locals)}),unsafeUpdateAs2=(locals,fiberId22,fiberRef,value)=>{let oldStack=locals.get(fiberRef)??[],newStack;if(isNonEmptyReadonlyArray2(oldStack)){let[currentId,currentValue]=headNonEmpty3(oldStack);if(currentId[symbol22](fiberId22))if(equals4(currentValue,value))return;else newStack=[[fiberId22,value],...oldStack.slice(1)];else newStack=[[fiberId22,value],...oldStack]}else newStack=[[fiberId22,value]];locals.set(fiberRef,newStack)},updateManyAs3=dual2(2,(self,{entries:entries2,forkAs:forkAs22})=>{if(self.locals.size===0)return new FiberRefsImpl2(new Map(entries2));let locals=new Map(self.locals);if(forkAs22!==void 0)unsafeForkAs2(self,locals,forkAs22);return entries2.forEach(([fiberRef,values3])=>{if(values3.length===1)unsafeUpdateAs2(locals,values3[0][0],fiberRef,values3[0][1]);else values3.forEach(([fiberId22,value])=>{unsafeUpdateAs2(locals,fiberId22,fiberRef,value)})}),new FiberRefsImpl2(locals)}),get102=get92,getOrDefault22=getOrDefault3,joinAs22=joinAs3,setAll22=setAll3,updateManyAs22=updateManyAs3,empty212=empty202,All2=logLevelAll2,Fatal2=logLevelFatal2,Error22=logLevelError2,Warning2=logLevelWarning2,Info2=logLevelInfo2,Debug2=logLevelDebug2,Trace2=logLevelTrace2,None32=logLevelNone2,Order22=pipe2(Order5,mapInput22((level)=>level.ordinal)),greaterThan32=greaterThan4(Order22),fromLiteral2=(literal3)=>{switch(literal3){case"All":return All2;case"Debug":return Debug2;case"Error":return Error22;case"Fatal":return Fatal2;case"Info":return Info2;case"Trace":return Trace2;case"None":return None32;case"Warning":return Warning2}},make252=(label,startTime)=>({label,startTime}),formatLabel2=(key)=>key.replace(/[\s="]/g,"_"),render2=(now)=>(self)=>{return`${formatLabel2(self.label)}=${now-self.startTime}ms`},make262=make252,EffectPrototype22=EffectPrototype3,CommitPrototype22=CommitPrototype3,Base22=Base3;class Class4 extends Base22{}var TypeId132=Symbol.for("effect/Readable"),Proto3={[TypeId132]:TypeId132,pipe(){return pipeArguments2(this,arguments)}},RefTypeId2=Symbol.for("effect/Ref"),refVariance2={_A:(_)=>_};class RefImpl2 extends Class4{ref;commit(){return this.get}[RefTypeId2]=refVariance2;[TypeId132]=TypeId132;constructor(ref){super();this.ref=ref,this.get=sync14(()=>get62(this.ref))}get;modify(f){return sync14(()=>{let current2=get62(this.ref),[b,a]=f(current2);if(current2!==a)set22(a)(this.ref);return b})}}var unsafeMake62=(value)=>new RefImpl2(make112(value)),make272=(value)=>sync14(()=>unsafeMake62(value)),get112=(self)=>self.get,set52=dual2(2,(self,value)=>self.modify(()=>[void 0,value])),getAndSet3=dual2(2,(self,value)=>self.modify((a)=>[a,value])),modify42=dual2(2,(self,f)=>self.modify(f)),update22=dual2(2,(self,f)=>self.modify((a)=>[void 0,f(a)])),make282=make272,get122=get112,getAndSet22=getAndSet3,modify52=modify42,set62=set52,update32=update22,tracerWith22=tracerWith5,OP_EMPTY22="Empty",OP_ADD2="Add",OP_REMOVE2="Remove",OP_UPDATE2="Update",OP_AND_THEN3="AndThen",empty222={_tag:OP_EMPTY22},diff52=(oldValue,newValue)=>{let missingLocals=new Map(oldValue.locals),patch62=empty222;for(let[fiberRef,pairs]of newValue.locals.entries()){let newValue2=headNonEmpty3(pairs)[1],old=missingLocals.get(fiberRef);if(old!==void 0){let oldValue2=headNonEmpty3(old)[1];if(!equals4(oldValue2,newValue2))patch62=combine72({_tag:OP_UPDATE2,fiberRef,patch:fiberRef.diff(oldValue2,newValue2)})(patch62)}else patch62=combine72({_tag:OP_ADD2,fiberRef,value:newValue2})(patch62);missingLocals.delete(fiberRef)}for(let[fiberRef]of missingLocals.entries())patch62=combine72({_tag:OP_REMOVE2,fiberRef})(patch62);return patch62},combine72=dual2(2,(self,that)=>({_tag:OP_AND_THEN3,first:self,second:that})),patch62=dual2(3,(self,fiberId22,oldValue)=>{let fiberRefs22=oldValue,patches=of6(self);while(isNonEmptyReadonlyArray2(patches)){let head32=headNonEmpty3(patches),tail2=tailNonEmpty3(patches);switch(head32._tag){case OP_EMPTY22:{patches=tail2;break}case OP_ADD2:{fiberRefs22=updateAs3(fiberRefs22,{fiberId:fiberId22,fiberRef:head32.fiberRef,value:head32.value}),patches=tail2;break}case OP_REMOVE2:{fiberRefs22=delete_3(fiberRefs22,head32.fiberRef),patches=tail2;break}case OP_UPDATE2:{let value=getOrDefault3(fiberRefs22,head32.fiberRef);fiberRefs22=updateAs3(fiberRefs22,{fiberId:fiberId22,fiberRef:head32.fiberRef,value:head32.fiberRef.patch(head32.patch)(value)}),patches=tail2;break}case OP_AND_THEN3:{patches=prepend6(head32.first)(prepend6(head32.second)(tail2));break}}}return fiberRefs22}),MetricLabelSymbolKey2="effect/MetricLabel",MetricLabelTypeId2=Symbol.for(MetricLabelSymbolKey2);class MetricLabelImpl2{key;value;[MetricLabelTypeId2]=MetricLabelTypeId2;_hash;constructor(key,value){this.key=key,this.value=value,this._hash=string4(MetricLabelSymbolKey2+this.key+this.value)}[symbol3](){return this._hash}[symbol22](that){return isMetricLabel2(that)&&this.key===that.key&&this.value===that.value}pipe(){return pipeArguments2(this,arguments)}}var make292=(key,value)=>{return new MetricLabelImpl2(key,value)},isMetricLabel2=(u)=>hasProperty2(u,MetricLabelTypeId2),annotateLogs5=dual2((args2)=>isEffect3(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith3(args2[0],currentLogAnnotations2,typeof args2[1]==="string"?set32(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set32(acc,key,value),annotations))}),asSome3=(self)=>map92(self,some22),asSomeError3=(self)=>mapError8(self,some22),try_4=(arg)=>{let evaluate3,onFailure=void 0;if(typeof arg==="function")evaluate3=arg;else evaluate3=arg.try,onFailure=arg.catch;return suspend13(()=>{try{return succeed20(internalCall2(evaluate3))}catch(error3){return fail22(onFailure?internalCall2(()=>onFailure(error3)):new UnknownException2(error3,"An unknown error occurred in Effect.try"))}})},_catch3=dual2(3,(self,tag,options)=>catchAll9(self,(e)=>{if(hasProperty2(e,tag)&&e[tag]===options.failure)return options.onFailure(e);return fail22(e)})),catchAllDefect3=dual2(2,(self,f)=>catchAllCause8(self,(cause3)=>{let option5=find4(cause3,(_)=>isDieType3(_)?some22(_):none22());switch(option5._tag){case"None":return failCause15(cause3);case"Some":return f(option5.value.defect)}})),catchSomeCause5=dual2(2,(self,f)=>matchCauseEffect4(self,{onFailure:(cause3)=>{let option5=f(cause3);switch(option5._tag){case"None":return failCause15(cause3);case"Some":return option5.value}},onSuccess:succeed20})),catchSomeDefect3=dual2(2,(self,pf)=>catchAllCause8(self,(cause3)=>{let option5=find4(cause3,(_)=>isDieType3(_)?some22(_):none22());switch(option5._tag){case"None":return failCause15(cause3);case"Some":{let optionEffect=pf(option5.value.defect);return optionEffect._tag==="Some"?optionEffect.value:failCause15(cause3)}}})),catchTag5=dual2((args2)=>isEffect3(args2[0]),(self,...args2)=>{let f=args2[args2.length-1],predicate;if(args2.length===2)predicate=isTagged2(args2[0]);else predicate=(e)=>{let tag=hasProperty2(e,"_tag")?e._tag:void 0;if(!tag)return!1;for(let i=0;i<args2.length-1;i++)if(args2[i]===tag)return!0;return!1};return catchIf3(self,predicate,f)}),catchTags5=dual2(2,(self,cases)=>{let keys32;return catchIf3(self,(e)=>{return keys32??=Object.keys(cases),hasProperty2(e,"_tag")&&isString2(e._tag)&&keys32.includes(e._tag)},(e)=>cases[e._tag](e))}),cause3=(self)=>matchCause5(self,{onFailure:identity5,onSuccess:()=>empty162}),clockWith32=clockWith22,clock3=clockWith32(succeed20),delay3=dual2(2,(self,duration5)=>zipRight22(sleep22(duration5),self)),descriptorWith3=(f)=>withFiberRuntime3((state,status2)=>f({id:state.id(),status:status2,interruptors:interruptors3(state.getFiberRef(currentInterruptedCause2))})),allowInterrupt3=descriptorWith3((descriptor3)=>size42(descriptor3.interruptors)>0?interrupt22:void_22),descriptor3=descriptorWith3(succeed20),diffFiberRefs3=(self)=>summarized3(self,fiberRefs22,diff52),diffFiberRefsAndRuntimeFlags2=(self)=>summarized3(self,zip32(fiberRefs22,runtimeFlags2),([refs,flags],[refsNew,flagsNew])=>[diff52(refs,refsNew),diff42(flags,flagsNew)]),Do22=succeed20({}),bind32=bind6(map92,flatMap82),bindTo32=bindTo6(map92),let_32=let_6(map92),dropUntil5=dual2(2,(elements,predicate)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),builder=[],next4,dropping7=succeed20(!1),i=0;while((next4=iterator.next())&&!next4.done){let a=next4.value,index=i++;dropping7=flatMap82(dropping7,(bool)=>{if(bool)return builder.push(a),succeed20(!0);return predicate(a,index)})}return map92(dropping7,()=>builder)})),dropWhile22=dual2(2,(elements,predicate)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),builder=[],next4,dropping7=succeed20(!0),i=0;while((next4=iterator.next())&&!next4.done){let a=next4.value,index=i++;dropping7=flatMap82(dropping7,(d)=>map92(d?predicate(a,index):succeed20(!1),(b)=>{if(!b)builder.push(a);return b}))}return map92(dropping7,()=>builder)})),contextWith5=(f)=>map92(context7(),f),eventually3=(self)=>orElse22(self,()=>flatMap82(yieldNow5(),()=>eventually3(self))),filterMap52=dual2(2,(elements,pf)=>map92(forEachSequential2(elements,identity5),filterMap22(pf))),filterOrDie3=dual2(3,(self,predicate,orDieWith22)=>filterOrElse3(self,predicate,(a)=>dieSync8(()=>orDieWith22(a)))),filterOrDieMessage3=dual2(3,(self,predicate,message)=>filterOrElse3(self,predicate,()=>dieMessage6(message))),filterOrElse3=dual2(3,(self,predicate,orElse32)=>flatMap82(self,(a)=>predicate(a)?succeed20(a):orElse32(a))),liftPredicate22=dual2(3,(self,predicate,orFailWith)=>suspend13(()=>predicate(self)?succeed20(self):fail22(orFailWith(self)))),filterOrFail3=dual2((args2)=>isEffect3(args2[0]),(self,predicate,orFailWith)=>filterOrElse3(self,predicate,(a)=>orFailWith===void 0?fail22(new NoSuchElementException3):failSync9(()=>orFailWith(a)))),findFirst52=dual2(2,(elements,predicate)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),next4=iterator.next();if(!next4.done)return findLoop2(iterator,0,predicate,next4.value);return succeed20(none22())})),findLoop2=(iterator,index,f,value)=>flatMap82(f(value,index),(result)=>{if(result)return succeed20(some22(value));let next4=iterator.next();if(!next4.done)return findLoop2(iterator,index+1,f,next4.value);return succeed20(none22())}),firstSuccessOf3=(effects)=>suspend13(()=>{let list=fromIterable32(effects);if(!isNonEmpty6(list))return dieSync8(()=>new IllegalArgumentException3("Received an empty collection of effects"));return pipe2(tailNonEmpty22(list),reduce13(headNonEmpty22(list),(left32,right32)=>orElse22(left32,()=>right32)))}),flipWith3=dual2(2,(self,f)=>flip3(f(flip3(self)))),match72=dual2(2,(self,options)=>matchEffect4(self,{onFailure:(e)=>succeed20(options.onFailure(e)),onSuccess:(a)=>succeed20(options.onSuccess(a))})),every62=dual2(2,(elements,predicate)=>suspend13(()=>forAllLoop2(elements[Symbol.iterator](),0,predicate))),forAllLoop2=(iterator,index,f)=>{let next4=iterator.next();return next4.done?succeed20(!0):flatMap82(f(next4.value,index),(b)=>b?forAllLoop2(iterator,index+1,f):succeed20(b))},forever7=(self)=>{let loop3=flatMap82(flatMap82(self,()=>yieldNow5()),()=>loop3);return loop3},fiberRefs22=withFiberRuntime3((state)=>succeed20(state.getFiberRefs())),head32=(self)=>flatMap82(self,(as32)=>{let next4=as32[Symbol.iterator]().next();if(next4.done)return fail22(new NoSuchElementException3);return succeed20(next4.value)}),ignore3=(self)=>match72(self,{onFailure:constVoid2,onSuccess:constVoid2}),ignoreLogged3=(self)=>matchCauseEffect4(self,{onFailure:(cause22)=>logDebug3(cause22,"An error was silently ignored because it is not anticipated to be useful"),onSuccess:()=>void_22}),inheritFiberRefs3=(childFiberRefs)=>updateFiberRefs4((parentFiberId,parentFiberRefs)=>joinAs22(parentFiberRefs,parentFiberId,childFiberRefs)),isFailure22=(self)=>match72(self,{onFailure:constTrue2,onSuccess:constFalse2}),isSuccess22=(self)=>match72(self,{onFailure:constFalse2,onSuccess:constTrue2}),iterate5=(initial,options)=>suspend13(()=>{if(options.while(initial))return flatMap82(options.body(initial),(z2)=>iterate5(z2,options));return succeed20(initial)}),logWithLevel3=(level)=>(...message)=>{let levelOption=fromNullable4(level),cause22=void 0;for(let i=0,len=message.length;i<len;i++){let msg=message[i];if(isCause2(msg)){if(cause22!==void 0)cause22=sequential4(cause22,msg);else cause22=msg;message=[...message.slice(0,i),...message.slice(i+1)],i--}}if(cause22===void 0)cause22=empty162;return withFiberRuntime3((fiberState)=>{return fiberState.log(message,cause22,levelOption),void_22})},log5=logWithLevel3(),logTrace3=logWithLevel3(Trace2),logDebug3=logWithLevel3(Debug2),logInfo3=logWithLevel3(Info2),logWarning3=logWithLevel3(Warning2),logError3=logWithLevel3(Error22),logFatal3=logWithLevel3(Fatal2),withLogSpan3=dual2(2,(effect4,label)=>flatMap82(currentTimeMillis22,(now)=>fiberRefLocallyWith3(effect4,currentLogSpan2,prepend32(make262(label,now))))),logAnnotations3=fiberRefGet2(currentLogAnnotations2),loop3=(initial,options)=>options.discard?loopDiscard2(initial,options.while,options.step,options.body):map92(loopInternal2(initial,options.while,options.step,options.body),fromIterable22),loopInternal2=(initial,cont,inc,body)=>suspend13(()=>cont(initial)?flatMap82(body(initial),(a)=>map92(loopInternal2(inc(initial),cont,inc,body),prepend32(a))):sync14(()=>empty92())),loopDiscard2=(initial,cont,inc,body)=>suspend13(()=>cont(initial)?flatMap82(body(initial),()=>loopDiscard2(inc(initial),cont,inc,body)):void_22),mapAccum32=dual2(3,(elements,initial,f)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),builder=[],result=succeed20(initial),next4,i=0;while(!(next4=iterator.next()).done){let index=i++,value=next4.value;result=flatMap82(result,(state)=>map92(f(state,value,index),([z,b])=>{return builder.push(b),z}))}return map92(result,(z)=>[z,builder])})),mapErrorCause6=dual2(2,(self,f)=>matchCauseEffect4(self,{onFailure:(c)=>failCauseSync8(()=>f(c)),onSuccess:succeed20})),memoize4=(self)=>pipe2(deferredMake2(),flatMap82((deferred)=>pipe2(diffFiberRefsAndRuntimeFlags2(self),intoDeferred3(deferred),once5,map92((complete3)=>zipRight22(complete3,pipe2(deferredAwait2(deferred),flatMap82(([patch72,a])=>as22(zip32(patchFiberRefs3(patch72[0]),updateRuntimeFlags3(patch72[1])),a)))))))),merge52=(self)=>matchEffect4(self,{onFailure:(e)=>succeed20(e),onSuccess:succeed20}),negate3=(self)=>map92(self,(b)=>!b),none62=(self)=>flatMap82(self,(option5)=>{switch(option5._tag){case"None":return void_22;case"Some":return fail22(new NoSuchElementException3)}}),once5=(self)=>map92(make282(!0),(ref)=>asVoid22(whenEffect5(self,getAndSet22(ref,!1)))),option5=(self)=>matchEffect4(self,{onFailure:()=>succeed20(none22()),onSuccess:(a)=>succeed20(some22(a))}),orElseFail5=dual2(2,(self,evaluate3)=>orElse22(self,()=>failSync9(evaluate3))),orElseSucceed5=dual2(2,(self,evaluate3)=>orElse22(self,()=>sync14(evaluate3))),parallelErrors3=(self)=>matchCauseEffect4(self,{onFailure:(cause22)=>{let errors=fromIterable22(failures2(cause22));return errors.length===0?failCause15(cause22):fail22(errors)},onSuccess:succeed20}),patchFiberRefs3=(patch72)=>updateFiberRefs4((fiberId22,fiberRefs32)=>pipe2(patch72,patch62(fiberId22,fiberRefs32))),promise3=(evaluate3)=>evaluate3.length>=1?async_2((resolve,signal)=>{try{evaluate3(signal).then((a)=>resolve(succeed20(a)),(e)=>resolve(die22(e)))}catch(e){resolve(die22(e))}}):async_2((resolve)=>{try{evaluate3().then((a)=>resolve(succeed20(a)),(e)=>resolve(die22(e)))}catch(e){resolve(die22(e))}}),provideService8=dual2(3,(self,tag,service3)=>contextWithEffect5((env)=>provideContext8(self,add22(env,tag,service3)))),provideServiceEffect5=dual2(3,(self,tag,effect4)=>contextWithEffect5((env)=>flatMap82(effect4,(service3)=>provideContext8(self,pipe2(env,add22(tag,service3)))))),random22=randomWith3(succeed20),reduce92=dual2(3,(elements,zero22,f)=>fromIterable22(elements).reduce((acc,el,i)=>flatMap82(acc,(a)=>f(a,el,i)),succeed20(zero22))),reduceRight32=dual2(3,(elements,zero22,f)=>fromIterable22(elements).reduceRight((acc,el,i)=>flatMap82(acc,(a)=>f(el,a,i)),succeed20(zero22))),reduceWhile3=dual2(3,(elements,zero22,options)=>flatMap82(sync14(()=>elements[Symbol.iterator]()),(iterator)=>reduceWhileLoop2(iterator,0,zero22,options.while,options.body))),reduceWhileLoop2=(iterator,index,state,predicate,f)=>{let next4=iterator.next();if(!next4.done&&predicate(state))return flatMap82(f(state,next4.value,index),(nextState)=>reduceWhileLoop2(iterator,index+1,nextState,predicate,f));return succeed20(state)},repeatN3=dual2(2,(self,n)=>suspend13(()=>repeatNLoop2(self,n))),repeatNLoop2=(self,n)=>flatMap82(self,(a)=>n<=0?succeed20(a):zipRight22(yieldNow5(),repeatNLoop2(self,n-1))),sandbox3=(self)=>matchCauseEffect4(self,{onFailure:fail22,onSuccess:succeed20}),setFiberRefs3=(fiberRefs32)=>suspend13(()=>setAll22(fiberRefs32)),sleep32=sleep22,succeedNone3=succeed20(none22()),succeedSome3=(value)=>succeed20(some22(value)),summarized3=dual2(3,(self,summary5,f)=>flatMap82(summary5,(start3)=>flatMap82(self,(value)=>map92(summary5,(end6)=>[f(start3,end6),value])))),tagMetrics3=dual2((args2)=>isEffect3(args2[0]),function(){return labelMetrics3(arguments[0],typeof arguments[1]==="string"?[make292(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([k,v])=>make292(k,v)))}),labelMetrics3=dual2(2,(self,labels)=>fiberRefLocallyWith3(self,currentMetricLabels2,(old)=>union10(old,labels))),takeUntil5=dual2(2,(elements,predicate)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),builder=[],next4,effect4=succeed20(!1),i=0;while((next4=iterator.next())&&!next4.done){let a=next4.value,index=i++;effect4=flatMap82(effect4,(bool)=>{if(bool)return succeed20(!0);return builder.push(a),predicate(a,index)})}return map92(effect4,()=>builder)})),takeWhile22=dual2(2,(elements,predicate)=>suspend13(()=>{let iterator=elements[Symbol.iterator](),builder=[],next4,taking=succeed20(!0),i=0;while((next4=iterator.next())&&!next4.done){let a=next4.value,index=i++;taking=flatMap82(taking,(taking2)=>pipe2(taking2?predicate(a,index):succeed20(!1),map92((bool)=>{if(bool)builder.push(a);return bool})))}return map92(taking,()=>builder)})),tapBoth5=dual2(2,(self,{onFailure,onSuccess})=>matchCauseEffect4(self,{onFailure:(cause22)=>{let either32=failureOrCause3(cause22);switch(either32._tag){case"Left":return zipRight22(onFailure(either32.left),failCause15(cause22));case"Right":return failCause15(cause22)}},onSuccess:(a)=>as22(onSuccess(a),a)})),tapDefect3=dual2(2,(self,f)=>catchAllCause8(self,(cause22)=>match22(keepDefects2(cause22),{onNone:()=>failCause15(cause22),onSome:(a)=>zipRight22(f(a),failCause15(cause22))}))),tapError7=dual2(2,(self,f)=>matchCauseEffect4(self,{onFailure:(cause22)=>{let either32=failureOrCause3(cause22);switch(either32._tag){case"Left":return zipRight22(f(either32.left),failCause15(cause22));case"Right":return failCause15(cause22)}},onSuccess:succeed20})),tapErrorTag3=dual2(3,(self,k,f)=>tapError7(self,(e)=>{if(isTagged2(e,k))return f(e);return void_22})),tapErrorCause7=dual2(2,(self,f)=>matchCauseEffect4(self,{onFailure:(cause22)=>zipRight22(f(cause22),failCause15(cause22)),onSuccess:succeed20})),timed3=(self)=>timedWith3(self,currentTimeNanos22),timedWith3=dual2(2,(self,nanos22)=>summarized3(self,nanos22,(start3,end6)=>nanos2(end6-start3))),tracerWith32=tracerWith22,tracer3=tracerWith32(succeed20),tryPromise3=(arg)=>{let evaluate3,catcher=void 0;if(typeof arg==="function")evaluate3=arg;else evaluate3=arg.try,catcher=arg.catch;let fail52=(e)=>catcher?failSync9(()=>catcher(e)):fail22(new UnknownException2(e,"An unknown error occurred in Effect.tryPromise"));if(evaluate3.length>=1)return async_2((resolve,signal)=>{try{evaluate3(signal).then((a)=>resolve(succeed20(a)),(e)=>resolve(fail52(e)))}catch(e){resolve(fail52(e))}});return async_2((resolve)=>{try{evaluate3().then((a)=>resolve(succeed20(a)),(e)=>resolve(fail52(e)))}catch(e){resolve(fail52(e))}})},tryMap3=dual2(2,(self,options)=>flatMap82(self,(a)=>try_4({try:()=>options.try(a),catch:options.catch}))),tryMapPromise3=dual2(2,(self,options)=>flatMap82(self,(a)=>tryPromise3({try:options.try.length>=1?(signal)=>options.try(a,signal):()=>options.try(a),catch:options.catch}))),unless3=dual2(2,(self,condition)=>suspend13(()=>condition()?succeedNone3:asSome3(self))),unlessEffect3=dual2(2,(self,condition)=>flatMap82(condition,(b)=>b?succeedNone3:asSome3(self))),unsandbox3=(self)=>mapErrorCause6(self,flatten52),updateFiberRefs4=(f)=>withFiberRuntime3((state)=>{return state.setFiberRefs(f(state.id(),state.getFiberRefs())),void_22}),updateService6=dual2(3,(self,tag,f)=>mapInputContext8(self,(context22)=>add22(context22,tag,f(unsafeGet32(context22,tag))))),when5=dual2(2,(self,condition)=>suspend13(()=>condition()?map92(self,some22):succeed20(none22()))),whenFiberRef3=dual2(3,(self,fiberRef,predicate)=>flatMap82(fiberRefGet2(fiberRef),(s)=>predicate(s)?map92(self,(a)=>[s,some22(a)]):succeed20([s,none22()]))),whenRef3=dual2(3,(self,ref,predicate)=>flatMap82(get122(ref),(s)=>predicate(s)?map92(self,(a)=>[s,some22(a)]):succeed20([s,none22()]))),withMetric3=dual2(2,(self,metric)=>metric(self)),serviceFunctionEffect3=(getService,f)=>(...args2)=>flatMap82(getService,(a)=>f(a)(...args2)),serviceFunction3=(getService,f)=>(...args2)=>map92(getService,(a)=>f(a)(...args2)),serviceFunctions3=(getService)=>new Proxy({},{get(_target,prop,_receiver){return(...args2)=>flatMap82(getService,(s)=>s[prop](...args2))}}),serviceConstants3=(getService)=>new Proxy({},{get(_target,prop,_receiver){return flatMap82(getService,(s)=>isEffect3(s[prop])?s[prop]:succeed20(s[prop]))}}),serviceMembers3=(getService)=>({functions:serviceFunctions3(getService),constants:serviceConstants3(getService)}),serviceOption3=(tag)=>map92(context7(),getOption22(tag)),serviceOptional3=(tag)=>flatMap82(context7(),getOption22(tag)),annotateCurrentSpan3=function(){let args2=arguments;return ignore3(flatMap82(currentSpan3,(span22)=>sync14(()=>{if(typeof args2[0]==="string")span22.attribute(args2[0],args2[1]);else for(let key in args2[0])span22.attribute(key,args2[0][key])})))},linkSpanCurrent3=function(){let args2=arguments,links=Array.isArray(args2[0])?args2[0]:[{_tag:"SpanLink",span:args2[0],attributes:args2[1]??{}}];return ignore3(flatMap82(currentSpan3,(span22)=>sync14(()=>span22.addLinks(links))))},annotateSpans5=dual2((args2)=>isEffect3(args2[0]),function(){let args2=arguments;return fiberRefLocallyWith3(args2[0],currentTracerSpanAnnotations2,typeof args2[1]==="string"?set32(args2[1],args2[2]):(annotations)=>Object.entries(args2[1]).reduce((acc,[key,value])=>set32(acc,key,value),annotations))}),currentParentSpan3=serviceOptional3(spanTag2),currentSpan3=flatMap82(context7(),(context22)=>{let span22=context22.unsafeMap.get(spanTag2.key);return span22!==void 0&&span22._tag==="Span"?succeed20(span22):fail22(new NoSuchElementException3)}),linkSpans3=dual2((args2)=>isEffect3(args2[0]),(self,span22,attributes)=>fiberRefLocallyWith3(self,currentTracerSpanLinks2,append22({_tag:"SpanLink",span:span22,attributes:attributes??{}}))),bigint022=BigInt(0),filterDisablePropagation2=flatMap18((span22)=>get32(span22.context,DisablePropagation2)?span22._tag==="Span"?filterDisablePropagation2(span22.parent):none22():some22(span22)),unsafeMakeSpan2=(fiber,name,options)=>{let disablePropagation=!fiber.getFiberRef(currentTracerEnabled2)||options.context&&get32(options.context,DisablePropagation2),context22=fiber.getFiberRef(currentContext3),parent=options.parent?some22(options.parent):options.root?none22():filterDisablePropagation2(getOption22(context22,spanTag2)),span22;if(disablePropagation)span22=noopSpan2({name,parent,context:add22(options.context??empty32(),DisablePropagation2,!0)});else{let services=fiber.getFiberRef(currentServices2),tracer22=get32(services,tracerTag2),clock22=get32(services,Clock2),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled3),fiberRefs32=fiber.getFiberRefs(),annotationsFromEnv=get102(fiberRefs32,currentTracerSpanAnnotations2),linksFromEnv=get102(fiberRefs32,currentTracerSpanLinks2),links=linksFromEnv._tag==="Some"?options.links!==void 0?[...toReadonlyArray2(linksFromEnv.value),...options.links??[]]:toReadonlyArray2(linksFromEnv.value):options.links??empty31();if(span22=tracer22.span(name,parent,options.context??empty32(),links,timingEnabled?clock22.unsafeCurrentTimeNanos():bigint022,options.kind??"internal",options),annotationsFromEnv._tag==="Some")forEach52(annotationsFromEnv.value,(value,key)=>span22.attribute(key,value));if(options.attributes!==void 0)Object.entries(options.attributes).forEach(([k,v])=>span22.attribute(k,v))}if(typeof options.captureStackTrace==="function")spanToTrace2.set(span22,options.captureStackTrace);return span22},makeSpan3=(name,options)=>{return options=addSpanStackTrace2(options),withFiberRuntime3((fiber)=>succeed20(unsafeMakeSpan2(fiber,name,options)))},spanAnnotations3=fiberRefGet2(currentTracerSpanAnnotations2),spanLinks3=fiberRefGet2(currentTracerSpanLinks2),endSpan2=(span22,exit22,clock22,timingEnabled)=>sync14(()=>{if(span22.status._tag==="Ended")return;if(exitIsFailure2(exit22)&&spanToTrace2.has(span22))span22.attribute("code.stacktrace",spanToTrace2.get(span22)());span22.end(timingEnabled?clock22.unsafeCurrentTimeNanos():bigint022,exit22)}),useSpan3=(name,...args2)=>{let options=addSpanStackTrace2(args2.length===1?void 0:args2[0]),evaluate3=args2[args2.length-1];return withFiberRuntime3((fiber)=>{let span22=unsafeMakeSpan2(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled3),clock22=get32(fiber.getFiberRef(currentServices2),clockTag2);return onExit4(evaluate3(span22),(exit22)=>endSpan2(span22,exit22,clock22,timingEnabled))})},withParentSpan5=dual2(2,(self,span22)=>provideService8(self,spanTag2,span22)),withSpan8=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace2(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return useSpan3(name,options,(span22)=>withParentSpan5(self,span22))}return(self)=>useSpan3(name,options,(span22)=>withParentSpan5(self,span22))},functionWithSpan3=(options)=>function(){let captureStackTrace=options.captureStackTrace??!1;if(options.captureStackTrace!==!1){let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let error3=Error();Error.stackTraceLimit=limit;let cache=!1;captureStackTrace=()=>{if(cache!==!1)return cache;if(error3.stack)return cache=error3.stack.trim().split(`
94
+ `).slice(2).join(`
95
+ `).trim(),cache}}return suspend13(()=>{let opts=typeof options.options==="function"?options.options.apply(null,arguments):options.options;return withSpan8(suspend13(()=>internalCall2(()=>options.body.apply(this,arguments))),opts.name,{...opts,captureStackTrace})})},fromNullable22=(value)=>value==null?fail22(new NoSuchElementException3):succeed20(value),optionFromOptional3=(self)=>catchAll9(map92(self,some22),(error3)=>isNoSuchElementException2(error3)?succeedNone3:fail22(error3)),OP_SEQUENTIAL22="Sequential",OP_PARALLEL22="Parallel",OP_PARALLEL_N2="ParallelN",sequential22={_tag:OP_SEQUENTIAL22},parallel22={_tag:OP_PARALLEL22},parallelN3=(parallelism)=>({_tag:OP_PARALLEL_N2,parallelism}),isSequential2=(self)=>self._tag===OP_SEQUENTIAL22,isParallel2=(self)=>self._tag===OP_PARALLEL22,sequential32=sequential22,parallel32=parallel22,parallelN22=parallelN3,diff62=diff52,patch72=patch62,FiberStatusSymbolKey2="effect/FiberStatus",FiberStatusTypeId2=Symbol.for(FiberStatusSymbolKey2),OP_DONE7="Done",OP_RUNNING3="Running",OP_SUSPENDED2="Suspended",DoneHash2=string4(`${FiberStatusSymbolKey2}-${OP_DONE7}`);class Done5{[FiberStatusTypeId2]=FiberStatusTypeId2;_tag=OP_DONE7;[symbol3](){return DoneHash2}[symbol22](that){return isFiberStatus2(that)&&that._tag===OP_DONE7}}class Running2{runtimeFlags;[FiberStatusTypeId2]=FiberStatusTypeId2;_tag=OP_RUNNING3;constructor(runtimeFlags22){this.runtimeFlags=runtimeFlags22}[symbol3](){return pipe2(hash2(FiberStatusSymbolKey2),combine11(hash2(this._tag)),combine11(hash2(this.runtimeFlags)),cached4(this))}[symbol22](that){return isFiberStatus2(that)&&that._tag===OP_RUNNING3&&this.runtimeFlags===that.runtimeFlags}}class Suspended2{runtimeFlags;blockingOn;[FiberStatusTypeId2]=FiberStatusTypeId2;_tag=OP_SUSPENDED2;constructor(runtimeFlags22,blockingOn){this.runtimeFlags=runtimeFlags22,this.blockingOn=blockingOn}[symbol3](){return pipe2(hash2(FiberStatusSymbolKey2),combine11(hash2(this._tag)),combine11(hash2(this.runtimeFlags)),combine11(hash2(this.blockingOn)),cached4(this))}[symbol22](that){return isFiberStatus2(that)&&that._tag===OP_SUSPENDED2&&this.runtimeFlags===that.runtimeFlags&&equals4(this.blockingOn,that.blockingOn)}}var done32=new Done5,running4=(runtimeFlags22)=>new Running2(runtimeFlags22),suspended3=(runtimeFlags22,blockingOn)=>new Suspended2(runtimeFlags22,blockingOn),isFiberStatus2=(u)=>hasProperty2(u,FiberStatusTypeId2),isDone22=(self)=>self._tag===OP_DONE7,done42=done32,running22=running4,suspended22=suspended3,isDone32=isDone22,TypeId142=Symbol.for("effect/Micro"),MicroExitTypeId2=Symbol.for("effect/Micro/MicroExit"),MicroCauseTypeId2=Symbol.for("effect/Micro/MicroCause"),microCauseVariance2={_E:identity5};class MicroCauseImpl2 extends globalThis.Error{_tag;traces;[MicroCauseTypeId2];constructor(_tag,originalError,traces){let causeName=`MicroCause.${_tag}`,name,message,stack;if(originalError instanceof globalThis.Error){name=`(${causeName}) ${originalError.name}`,message=originalError.message;let messageLines=message.split(`
96
+ `).length;stack=originalError.stack?`(${causeName}) ${originalError.stack.split(`
97
+ `).slice(0,messageLines+3).join(`
98
+ `)}`:`${name}: ${message}`}else name=causeName,message=toStringUnknown2(originalError,0),stack=`${name}: ${message}`;if(traces.length>0)stack+=`
99
+ ${traces.join(`
100
+ `)}`;super(message);this._tag=_tag,this.traces=traces,this[MicroCauseTypeId2]=microCauseVariance2,this.name=name,this.stack=stack}pipe(){return pipeArguments2(this,arguments)}toString(){return this.stack}[NodeInspectSymbol2](){return this.stack}}class Die2 extends MicroCauseImpl2{defect;constructor(defect,traces=[]){super("Die",defect,traces);this.defect=defect}}var causeDie2=(defect,traces=[])=>new Die2(defect,traces);class Interrupt2 extends MicroCauseImpl2{constructor(traces=[]){super("Interrupt","interrupted",traces)}}var causeInterrupt2=(traces=[])=>new Interrupt2(traces),causeIsInterrupt2=(self)=>self._tag==="Interrupt",MicroFiberTypeId2=Symbol.for("effect/Micro/MicroFiber"),fiberVariance3={_A:identity5,_E:identity5};class MicroFiberImpl2{context;interruptible;[MicroFiberTypeId2];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(context22,interruptible32=!0){this.context=context22,this.interruptible=interruptible32,this[MicroFiberTypeId2]=fiberVariance3}getRef(ref){return unsafeGetReference2(this.context,ref)}addObserver(cb){if(this._exit)return cb(this._exit),constVoid2;return this._observers.push(cb),()=>{let index=this._observers.indexOf(cb);if(index>=0)this._observers.splice(index,1)}}_interrupted=!1;unsafeInterrupt(){if(this._exit)return;if(this._interrupted=!0,this.interruptible)this.evaluate(exitInterrupt22)}unsafePoll(){return this._exit}evaluate(effect4){if(this._exit)return;else if(this._yielded!==void 0){let yielded=this._yielded;this._yielded=void 0,yielded()}let exit22=this.runLoop(effect4);if(exit22===Yield2)return;let interruptChildren=fiberMiddleware2.interruptChildren&&fiberMiddleware2.interruptChildren(this);if(interruptChildren!==void 0)return this.evaluate(flatMap92(interruptChildren,()=>exit22));this._exit=exit22;for(let i=0;i<this._observers.length;i++)this._observers[i](exit22);this._observers.length=0}runLoop(effect4){let yielding=!1,current2=effect4;this.currentOpCount=0;try{while(!0){if(this.currentOpCount++,!yielding&&this.getRef(CurrentScheduler2).shouldYield(this)){yielding=!0;let prev=current2;current2=flatMap92(yieldNow22,()=>prev)}if(current2=current2[evaluate3](this),current2===Yield2){let yielded=this._yielded;if(MicroExitTypeId2 in yielded)return this._yielded=void 0,yielded;return Yield2}}}catch(error3){if(!hasProperty2(current2,evaluate3))return exitDie22(`MicroFiber.runLoop: Not a valid effect: ${String(current2)}`);return exitDie22(error3)}}getCont(symbol32){while(!0){let op=this._stack.pop();if(!op)return;let cont=op[ensureCont2]&&op[ensureCont2](this);if(cont)return{[symbol32]:cont};if(op[symbol32])return op}}_yielded=void 0;yieldWith(value){return this._yielded=value,Yield2}children(){return this._children??=new Set}}var fiberMiddleware2=globalValue2("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0})),identifier2=Symbol.for("effect/Micro/identifier"),args2=Symbol.for("effect/Micro/args"),evaluate3=Symbol.for("effect/Micro/evaluate"),successCont2=Symbol.for("effect/Micro/successCont"),failureCont2=Symbol.for("effect/Micro/failureCont"),ensureCont2=Symbol.for("effect/Micro/ensureCont"),Yield2=Symbol.for("effect/Micro/Yield"),microVariance2={_A:identity5,_E:identity5,_R:identity5},MicroProto2={...EffectPrototype22,_op:"Micro",[TypeId142]:microVariance2,pipe(){return pipeArguments2(this,arguments)},[Symbol.iterator](){return new SingleShotGen3(new YieldWrap2(this))},toJSON(){return{_id:"Micro",op:this[identifier2],...args2 in this?{args:this[args2]}:void 0}},toString(){return format4(this)},[NodeInspectSymbol2](){return format4(this)}};function defaultEvaluate2(_fiber){return exitDie22("Micro.evaluate: Not implemented")}var makePrimitiveProto2=(options)=>({...MicroProto2,[identifier2]:options.op,[evaluate3]:options.eval??defaultEvaluate2,[successCont2]:options.contA,[failureCont2]:options.contE,[ensureCont2]:options.ensure}),makePrimitive2=(options)=>{let Proto22=makePrimitiveProto2(options);return function(){let self=Object.create(Proto22);return self[args2]=options.single===!1?arguments:arguments[0],self}},makeExit2=(options)=>{let Proto22={...makePrimitiveProto2(options),[MicroExitTypeId2]:MicroExitTypeId2,_tag:options.op,get[options.prop](){return this[args2]},toJSON(){return{_id:"MicroExit",_tag:options.op,[options.prop]:this[args2]}},[symbol22](that){return isMicroExit2(that)&&that._tag===options.op&&equals4(this[args2],that[args2])},[symbol3](){return cached4(this,combine11(string4(options.op))(hash2(this[args2])))}};return function(value){let self=Object.create(Proto22);return self[args2]=value,self[successCont2]=void 0,self[failureCont2]=void 0,self[ensureCont2]=void 0,self}},succeed42=makeExit2({op:"Success",prop:"value",eval(fiber){let cont=fiber.getCont(successCont2);return cont?cont[successCont2](this[args2],fiber):fiber.yieldWith(this)}}),failCause42=makeExit2({op:"Failure",prop:"cause",eval(fiber){let cont=fiber.getCont(failureCont2);while(causeIsInterrupt2(this[args2])&&cont&&fiber.interruptible)cont=fiber.getCont(failureCont2);return cont?cont[failureCont2](this[args2],fiber):fiber.yieldWith(this)}}),yieldNowWith2=makePrimitive2({op:"Yield",eval(fiber){let resumed=!1;return fiber.getRef(CurrentScheduler2).scheduleTask(()=>{if(resumed)return;fiber.evaluate(exitVoid22)},this[args2]??0),fiber.yieldWith(()=>{resumed=!0})}}),yieldNow22=yieldNowWith2(0),void_42=succeed42(void 0),withMicroFiber2=makePrimitive2({op:"WithMicroFiber",eval(fiber){return this[args2](fiber)}}),flatMap92=dual2(2,(self,f)=>{let onSuccess=Object.create(OnSuccessProto2);return onSuccess[args2]=self,onSuccess[successCont2]=f,onSuccess}),OnSuccessProto2=makePrimitiveProto2({op:"OnSuccess",eval(fiber){return fiber._stack.push(this),this[args2]}}),isMicroExit2=(u)=>hasProperty2(u,MicroExitTypeId2),exitSucceed22=succeed42,exitFailCause22=failCause42,exitInterrupt22=exitFailCause22(causeInterrupt2()),exitDie22=(defect)=>exitFailCause22(causeDie2(defect)),exitVoid22=exitSucceed22(void 0),setImmediate22="setImmediate"in globalThis?globalThis.setImmediate:(f)=>setTimeout(f,0);class MicroSchedulerDefault2{tasks=[];running=!1;scheduleTask(task,_priority){if(this.tasks.push(task),!this.running)this.running=!0,setImmediate22(this.afterScheduled)}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){let tasks=this.tasks;this.tasks=[];for(let i=0,len=tasks.length;i<len;i++)tasks[i]()}shouldYield(fiber){return fiber.currentOpCount>=fiber.getRef(MaxOpsBeforeYield2)}flush(){while(this.tasks.length>0)this.runTasks()}}var updateContext3=dual2(2,(self,f)=>withMicroFiber2((fiber)=>{let prev=fiber.context;return fiber.context=f(prev),onExit22(self,()=>{return fiber.context=prev,void_42})})),provideContext22=dual2(2,(self,provided)=>updateContext3(self,merge32(provided)));class MaxOpsBeforeYield2 extends Reference22()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048}){}class CurrentScheduler2 extends Reference22()("effect/Micro/currentScheduler",{defaultValue:()=>new MicroSchedulerDefault2}){}var matchCauseEffect22=dual2(2,(self,options)=>{let primitive3=Object.create(OnSuccessAndFailureProto2);return primitive3[args2]=self,primitive3[successCont2]=options.onSuccess,primitive3[failureCont2]=options.onFailure,primitive3}),OnSuccessAndFailureProto2=makePrimitiveProto2({op:"OnSuccessAndFailure",eval(fiber){return fiber._stack.push(this),this[args2]}}),onExit22=dual2(2,(self,f)=>uninterruptibleMask22((restore)=>matchCauseEffect22(restore(self),{onFailure:(cause22)=>flatMap92(f(exitFailCause22(cause22)),()=>failCause42(cause22)),onSuccess:(a)=>flatMap92(f(exitSucceed22(a)),()=>succeed42(a))}))),setInterruptible2=makePrimitive2({op:"SetInterruptible",ensure(fiber){if(fiber.interruptible=this[args2],fiber._interrupted&&fiber.interruptible)return()=>exitInterrupt22}}),interruptible32=(self)=>withMicroFiber2((fiber)=>{if(fiber.interruptible)return self;if(fiber.interruptible=!0,fiber._stack.push(setInterruptible2(!1)),fiber._interrupted)return exitInterrupt22;return self}),uninterruptibleMask22=(f)=>withMicroFiber2((fiber)=>{if(!fiber.interruptible)return f(identity5);return fiber.interruptible=!1,fiber._stack.push(setInterruptible2(!0)),f(interruptible32)}),runFork4=(effect4,options)=>{let fiber=new MicroFiberImpl2(CurrentScheduler2.context(options?.scheduler??new MicroSchedulerDefault2));if(fiber.evaluate(effect4),options?.signal)if(options.signal.aborted)fiber.unsafeInterrupt();else{let abort=()=>fiber.unsafeInterrupt();options.signal.addEventListener("abort",abort,{once:!0}),fiber.addObserver(()=>options.signal.removeEventListener("abort",abort))}return fiber};class PriorityBuckets2{buckets=[];scheduleTask(task,priority){let length32=this.buckets.length,bucket=void 0,index=0;for(;index<length32;index++)if(this.buckets[index][0]<=priority)bucket=this.buckets[index];else break;if(bucket&&bucket[0]===priority)bucket[1].push(task);else if(index===length32)this.buckets.push([priority,[task]]);else this.buckets.splice(index,0,[priority,[task]])}}class MixedScheduler2{maxNextTickBeforeTimer;running=!1;tasks=new PriorityBuckets2;constructor(maxNextTickBeforeTimer){this.maxNextTickBeforeTimer=maxNextTickBeforeTimer}starveInternal(depth){let tasks=this.tasks.buckets;this.tasks.buckets=[];for(let[_,toRun]of tasks)for(let i=0;i<toRun.length;i++)toRun[i]();if(this.tasks.buckets.length===0)this.running=!1;else this.starve(depth)}starve(depth=0){if(depth>=this.maxNextTickBeforeTimer)setTimeout(()=>this.starveInternal(0),0);else Promise.resolve(void 0).then(()=>this.starveInternal(depth+1))}shouldYield(fiber){return fiber.currentOpCount>fiber.getFiberRef(currentMaxOpsBeforeYield2)?fiber.getFiberRef(currentSchedulingPriority3):!1}scheduleTask(task,priority){if(this.tasks.scheduleTask(task,priority),!this.running)this.running=!0,this.starve()}}var defaultScheduler2=globalValue2(Symbol.for("effect/Scheduler/defaultScheduler"),()=>new MixedScheduler2(2048));class SyncScheduler2{tasks=new PriorityBuckets2;deferred=!1;scheduleTask(task,priority){if(this.deferred)defaultScheduler2.scheduleTask(task,priority);else this.tasks.scheduleTask(task,priority)}shouldYield(fiber){return fiber.currentOpCount>fiber.getFiberRef(currentMaxOpsBeforeYield2)?fiber.getFiberRef(currentSchedulingPriority3):!1}flush(){while(this.tasks.buckets.length>0){let tasks=this.tasks.buckets;this.tasks.buckets=[];for(let[_,toRun]of tasks)for(let i=0;i<toRun.length;i++)toRun[i]()}this.deferred=!0}}var currentScheduler3=globalValue2(Symbol.for("effect/FiberRef/currentScheduler"),()=>fiberRefUnsafeMake2(defaultScheduler2)),withScheduler3=dual2(2,(self,scheduler)=>fiberRefLocally3(self,currentScheduler3,scheduler)),currentRequestMap2=globalValue2(Symbol.for("effect/FiberRef/currentRequestMap"),()=>fiberRefUnsafeMake2(new Map)),match92=(concurrency,sequential42,unbounded22,bounded22)=>{switch(concurrency){case void 0:return sequential42();case"unbounded":return unbounded22();case"inherit":return fiberRefGetWith2(currentConcurrency2,(concurrency2)=>concurrency2==="unbounded"?unbounded22():concurrency2>1?bounded22(concurrency2):sequential42());default:return concurrency>1?bounded22(concurrency):sequential42()}},matchSimple2=(concurrency,sequential42,concurrent)=>{switch(concurrency){case void 0:return sequential42();case"unbounded":return concurrent();case"inherit":return fiberRefGetWith2(currentConcurrency2,(concurrency2)=>concurrency2==="unbounded"||concurrency2>1?concurrent():sequential42());default:return concurrency>1?concurrent():sequential42()}},OP_INTERRUPT_SIGNAL2="InterruptSignal",OP_STATEFUL2="Stateful",OP_RESUME2="Resume",OP_YIELD_NOW2="YieldNow",interruptSignal2=(cause22)=>({_tag:"InterruptSignal",cause:cause22}),stateful2=(onFiber)=>({_tag:"Stateful",onFiber}),resume2=(effect4)=>({_tag:"Resume",effect:effect4}),yieldNow32=()=>({_tag:"YieldNow"}),FiberScopeSymbolKey2="effect/FiberScope",FiberScopeTypeId2=Symbol.for(FiberScopeSymbolKey2);class Global2{[FiberScopeTypeId2]=FiberScopeTypeId2;fiberId=none42;roots=new Set;add(_runtimeFlags,child){this.roots.add(child),child.addObserver(()=>{this.roots.delete(child)})}}class Local2{fiberId;parent;[FiberScopeTypeId2]=FiberScopeTypeId2;constructor(fiberId22,parent){this.fiberId=fiberId22,this.parent=parent}add(_runtimeFlags,child){this.parent.tell(stateful2((parentFiber)=>{parentFiber.addChild(child),child.addObserver(()=>{parentFiber.removeChild(child)})}))}}var unsafeMake72=(fiber)=>{return new Local2(fiber.id(),fiber)},globalScope2=globalValue2(Symbol.for("effect/FiberScope/Global"),()=>new Global2),FiberSymbolKey2="effect/Fiber",FiberTypeId2=Symbol.for(FiberSymbolKey2),fiberVariance22={_E:(_)=>_,_A:(_)=>_},fiberProto2={[FiberTypeId2]:fiberVariance22,pipe(){return pipeArguments2(this,arguments)}},RuntimeFiberSymbolKey2="effect/Fiber",RuntimeFiberTypeId2=Symbol.for(RuntimeFiberSymbolKey2),isRuntimeFiber2=(self)=>(RuntimeFiberTypeId2 in self),_await22=(self)=>self.await,inheritAll3=(self)=>self.inheritAll,interruptAllAs2=dual2(2,fnUntraced3(function*(fibers,fiberId22){for(let fiber of fibers){if(isRuntimeFiber2(fiber)){fiber.unsafeInterruptAsFork(fiberId22);continue}yield*fiber.interruptAsFork(fiberId22)}for(let fiber of fibers){if(isRuntimeFiber2(fiber)&&fiber.unsafePoll())continue;yield*fiber.await}})),interruptAsFork2=dual2(2,(self,fiberId22)=>self.interruptAsFork(fiberId22)),join32=(self)=>zipLeft22(flatten62(self.await),self.inheritAll),_never2={...CommitPrototype3,commit(){return join32(this)},...fiberProto2,id:()=>none42,await:never6,children:succeed20([]),inheritAll:never6,poll:succeed20(none22()),interruptAsFork:()=>never6},poll32=(self)=>self.poll,currentFiberURI2="effect/FiberCurrent",LoggerSymbolKey2="effect/Logger",LoggerTypeId2=Symbol.for(LoggerSymbolKey2),loggerVariance2={_Message:(_)=>_,_Output:(_)=>_},makeLogger2=(log22)=>({[LoggerTypeId2]:loggerVariance2,log:log22,pipe(){return pipeArguments2(this,arguments)}}),none72={[LoggerTypeId2]:loggerVariance2,log:constVoid2,pipe(){return pipeArguments2(this,arguments)}},textOnly2=/^[^\s"=]*$/,format32=(quoteValue,whitespace)=>({annotations,cause:cause22,date:date3,fiberId:fiberId22,logLevel:logLevel3,message,spans})=>{let formatValue=(value)=>value.match(textOnly2)?value:quoteValue(value),format42=(label,value)=>`${formatLabel2(label)}=${formatValue(value)}`,append42=(label,value)=>" "+format42(label,value),out=format42("timestamp",date3.toISOString());out+=append42("level",logLevel3.label),out+=append42("fiber",threadName3(fiberId22));let messages=ensure2(message);for(let i=0;i<messages.length;i++)out+=append42("message",toStringUnknown2(messages[i],whitespace));if(!isEmptyType2(cause22))out+=append42("cause",pretty3(cause22,{renderErrorCause:!0}));for(let span22 of spans)out+=" "+render2(date3.getTime())(span22);for(let[label,value]of annotations)out+=append42(label,toStringUnknown2(value,whitespace));return out},escapeDoubleQuotes2=(s)=>`"${s.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`,stringLogger2=makeLogger2(format32(escapeDoubleQuotes2)),colors2={bold:"1",red:"31",green:"32",yellow:"33",blue:"34",cyan:"36",white:"37",gray:"90",black:"30",bgBrightRed:"101"},logLevelColors2={None:[],All:[],Trace:[colors2.gray],Debug:[colors2.blue],Info:[colors2.green],Warning:[colors2.yellow],Error:[colors2.red],Fatal:[colors2.bgBrightRed,colors2.black]},hasProcessStdout2=typeof process==="object"&&process!==null&&typeof process.stdout==="object"&&process.stdout!==null,processStdoutIsTTY2=hasProcessStdout2&&process.stdout.isTTY===!0,hasProcessStdoutOrDeno2=hasProcessStdout2||"Deno"in globalThis,MetricBoundariesSymbolKey2="effect/MetricBoundaries",MetricBoundariesTypeId2=Symbol.for(MetricBoundariesSymbolKey2);class MetricBoundariesImpl2{values;[MetricBoundariesTypeId2]=MetricBoundariesTypeId2;constructor(values3){this.values=values3,this._hash=pipe2(string4(MetricBoundariesSymbolKey2),combine11(array22(this.values)))}_hash;[symbol3](){return this._hash}[symbol22](u){return isMetricBoundaries2(u)&&equals4(this.values,u.values)}pipe(){return pipeArguments2(this,arguments)}}var isMetricBoundaries2=(u)=>hasProperty2(u,MetricBoundariesTypeId2),fromIterable82=(iterable)=>{let values3=pipe2(iterable,appendAll4(of22(Number.POSITIVE_INFINITY)),dedupe2);return new MetricBoundariesImpl2(values3)},exponential4=(options)=>pipe2(makeBy3(options.count-1,(i)=>options.start*Math.pow(options.factor,i)),unsafeFromArray2,fromIterable82),MetricKeyTypeSymbolKey2="effect/MetricKeyType",MetricKeyTypeTypeId2=Symbol.for(MetricKeyTypeSymbolKey2),CounterKeyTypeSymbolKey2="effect/MetricKeyType/Counter",CounterKeyTypeTypeId2=Symbol.for(CounterKeyTypeSymbolKey2),FrequencyKeyTypeSymbolKey2="effect/MetricKeyType/Frequency",FrequencyKeyTypeTypeId2=Symbol.for(FrequencyKeyTypeSymbolKey2),GaugeKeyTypeSymbolKey2="effect/MetricKeyType/Gauge",GaugeKeyTypeTypeId2=Symbol.for(GaugeKeyTypeSymbolKey2),HistogramKeyTypeSymbolKey2="effect/MetricKeyType/Histogram",HistogramKeyTypeTypeId2=Symbol.for(HistogramKeyTypeSymbolKey2),SummaryKeyTypeSymbolKey2="effect/MetricKeyType/Summary",SummaryKeyTypeTypeId2=Symbol.for(SummaryKeyTypeSymbolKey2),metricKeyTypeVariance2={_In:(_)=>_,_Out:(_)=>_};class CounterKeyType2{incremental;bigint;[MetricKeyTypeTypeId2]=metricKeyTypeVariance2;[CounterKeyTypeTypeId2]=CounterKeyTypeTypeId2;constructor(incremental,bigint){this.incremental=incremental,this.bigint=bigint,this._hash=string4(CounterKeyTypeSymbolKey2)}_hash;[symbol3](){return this._hash}[symbol22](that){return isCounterKey2(that)}pipe(){return pipeArguments2(this,arguments)}}class HistogramKeyType2{boundaries;[MetricKeyTypeTypeId2]=metricKeyTypeVariance2;[HistogramKeyTypeTypeId2]=HistogramKeyTypeTypeId2;constructor(boundaries){this.boundaries=boundaries,this._hash=pipe2(string4(HistogramKeyTypeSymbolKey2),combine11(hash2(this.boundaries)))}_hash;[symbol3](){return this._hash}[symbol22](that){return isHistogramKey2(that)&&equals4(this.boundaries,that.boundaries)}pipe(){return pipeArguments2(this,arguments)}}var counter6=(options)=>new CounterKeyType2(options?.incremental??!1,options?.bigint??!1),histogram6=(boundaries)=>{return new HistogramKeyType2(boundaries)},isCounterKey2=(u)=>hasProperty2(u,CounterKeyTypeTypeId2),isFrequencyKey2=(u)=>hasProperty2(u,FrequencyKeyTypeTypeId2),isGaugeKey2=(u)=>hasProperty2(u,GaugeKeyTypeTypeId2),isHistogramKey2=(u)=>hasProperty2(u,HistogramKeyTypeTypeId2),isSummaryKey2=(u)=>hasProperty2(u,SummaryKeyTypeTypeId2),MetricKeySymbolKey2="effect/MetricKey",MetricKeyTypeId2=Symbol.for(MetricKeySymbolKey2),metricKeyVariance2={_Type:(_)=>_},arrayEquivilence2=getEquivalence22(equals4);class MetricKeyImpl2{name;keyType;description;tags;[MetricKeyTypeId2]=metricKeyVariance2;constructor(name,keyType,description,tags=[]){this.name=name,this.keyType=keyType,this.description=description,this.tags=tags,this._hash=pipe2(string4(this.name+this.description),combine11(hash2(this.keyType)),combine11(array22(this.tags)))}_hash;[symbol3](){return this._hash}[symbol22](u){return isMetricKey2(u)&&this.name===u.name&&equals4(this.keyType,u.keyType)&&equals4(this.description,u.description)&&arrayEquivilence2(this.tags,u.tags)}pipe(){return pipeArguments2(this,arguments)}}var isMetricKey2=(u)=>hasProperty2(u,MetricKeyTypeId2),counter22=(name,options)=>new MetricKeyImpl2(name,counter6(options),fromNullable4(options?.description)),histogram22=(name,boundaries,description)=>new MetricKeyImpl2(name,histogram6(boundaries),fromNullable4(description)),taggedWithLabels3=dual2(2,(self,extraTags)=>extraTags.length===0?self:new MetricKeyImpl2(self.name,self.keyType,self.description,union10(self.tags,extraTags))),MetricStateSymbolKey2="effect/MetricState",MetricStateTypeId2=Symbol.for(MetricStateSymbolKey2),CounterStateSymbolKey2="effect/MetricState/Counter",CounterStateTypeId2=Symbol.for(CounterStateSymbolKey2),FrequencyStateSymbolKey2="effect/MetricState/Frequency",FrequencyStateTypeId2=Symbol.for(FrequencyStateSymbolKey2),GaugeStateSymbolKey2="effect/MetricState/Gauge",GaugeStateTypeId2=Symbol.for(GaugeStateSymbolKey2),HistogramStateSymbolKey2="effect/MetricState/Histogram",HistogramStateTypeId2=Symbol.for(HistogramStateSymbolKey2),SummaryStateSymbolKey2="effect/MetricState/Summary",SummaryStateTypeId2=Symbol.for(SummaryStateSymbolKey2),metricStateVariance2={_A:(_)=>_};class CounterState2{count;[MetricStateTypeId2]=metricStateVariance2;[CounterStateTypeId2]=CounterStateTypeId2;constructor(count6){this.count=count6}[symbol3](){return pipe2(hash2(CounterStateSymbolKey2),combine11(hash2(this.count)),cached4(this))}[symbol22](that){return isCounterState2(that)&&this.count===that.count}pipe(){return pipeArguments2(this,arguments)}}var arrayEquals2=getEquivalence22(equals4);class FrequencyState2{occurrences;[MetricStateTypeId2]=metricStateVariance2;[FrequencyStateTypeId2]=FrequencyStateTypeId2;constructor(occurrences){this.occurrences=occurrences}_hash;[symbol3](){return pipe2(string4(FrequencyStateSymbolKey2),combine11(array22(fromIterable22(this.occurrences.entries()))),cached4(this))}[symbol22](that){return isFrequencyState2(that)&&arrayEquals2(fromIterable22(this.occurrences.entries()),fromIterable22(that.occurrences.entries()))}pipe(){return pipeArguments2(this,arguments)}}class GaugeState2{value;[MetricStateTypeId2]=metricStateVariance2;[GaugeStateTypeId2]=GaugeStateTypeId2;constructor(value){this.value=value}[symbol3](){return pipe2(hash2(GaugeStateSymbolKey2),combine11(hash2(this.value)),cached4(this))}[symbol22](u){return isGaugeState2(u)&&this.value===u.value}pipe(){return pipeArguments2(this,arguments)}}class HistogramState2{buckets;count;min;max;sum;[MetricStateTypeId2]=metricStateVariance2;[HistogramStateTypeId2]=HistogramStateTypeId2;constructor(buckets,count6,min22,max22,sum22){this.buckets=buckets,this.count=count6,this.min=min22,this.max=max22,this.sum=sum22}[symbol3](){return pipe2(hash2(HistogramStateSymbolKey2),combine11(hash2(this.buckets)),combine11(hash2(this.count)),combine11(hash2(this.min)),combine11(hash2(this.max)),combine11(hash2(this.sum)),cached4(this))}[symbol22](that){return isHistogramState2(that)&&equals4(this.buckets,that.buckets)&&this.count===that.count&&this.min===that.min&&this.max===that.max&&this.sum===that.sum}pipe(){return pipeArguments2(this,arguments)}}class SummaryState2{error;quantiles;count;min;max;sum;[MetricStateTypeId2]=metricStateVariance2;[SummaryStateTypeId2]=SummaryStateTypeId2;constructor(error3,quantiles,count6,min22,max22,sum22){this.error=error3,this.quantiles=quantiles,this.count=count6,this.min=min22,this.max=max22,this.sum=sum22}[symbol3](){return pipe2(hash2(SummaryStateSymbolKey2),combine11(hash2(this.error)),combine11(hash2(this.quantiles)),combine11(hash2(this.count)),combine11(hash2(this.min)),combine11(hash2(this.max)),combine11(hash2(this.sum)),cached4(this))}[symbol22](that){return isSummaryState2(that)&&this.error===that.error&&equals4(this.quantiles,that.quantiles)&&this.count===that.count&&this.min===that.min&&this.max===that.max&&this.sum===that.sum}pipe(){return pipeArguments2(this,arguments)}}var counter32=(count6)=>new CounterState2(count6),frequency22=(occurrences)=>{return new FrequencyState2(occurrences)},gauge22=(count6)=>new GaugeState2(count6),histogram32=(options)=>new HistogramState2(options.buckets,options.count,options.min,options.max,options.sum),summary22=(options)=>new SummaryState2(options.error,options.quantiles,options.count,options.min,options.max,options.sum),isCounterState2=(u)=>hasProperty2(u,CounterStateTypeId2),isFrequencyState2=(u)=>hasProperty2(u,FrequencyStateTypeId2),isGaugeState2=(u)=>hasProperty2(u,GaugeStateTypeId2),isHistogramState2=(u)=>hasProperty2(u,HistogramStateTypeId2),isSummaryState2=(u)=>hasProperty2(u,SummaryStateTypeId2),MetricHookSymbolKey2="effect/MetricHook",MetricHookTypeId2=Symbol.for(MetricHookSymbolKey2),metricHookVariance2={_In:(_)=>_,_Out:(_)=>_},make302=(options)=>({[MetricHookTypeId2]:metricHookVariance2,pipe(){return pipeArguments2(this,arguments)},...options}),bigint032=BigInt(0),counter42=(key)=>{let sum22=key.keyType.bigint?bigint032:0,canUpdate=key.keyType.incremental?key.keyType.bigint?(value)=>value>=bigint032:(value)=>value>=0:(_value)=>!0,update42=(value)=>{if(canUpdate(value))sum22=sum22+value};return make302({get:()=>counter32(sum22),update:update42,modify:update42})},frequency32=(key)=>{let values3=new Map;for(let word of key.keyType.preregisteredWords)values3.set(word,0);let update42=(word)=>{let slotCount=values3.get(word)??0;values3.set(word,slotCount+1)};return make302({get:()=>frequency22(values3),update:update42,modify:update42})},gauge32=(_key,startAt)=>{let value=startAt;return make302({get:()=>gauge22(value),update:(v)=>{value=v},modify:(v)=>{value=value+v}})},histogram42=(key)=>{let bounds=key.keyType.boundaries.values,size62=bounds.length,values3=new Uint32Array(size62+1),boundaries=new Float64Array(size62),count6=0,sum22=0,min22=Number.MAX_VALUE,max22=Number.MIN_VALUE;pipe2(bounds,sort2(Order5),map28((n,i)=>{boundaries[i]=n}));let update42=(value)=>{let from=0,to=size62;while(from!==to){let mid=Math.floor(from+(to-from)/2),boundary=boundaries[mid];if(value<=boundary)to=mid;else from=mid;if(to===from+1)if(value<=boundaries[from])to=from;else from=to}if(values3[from]=values3[from]+1,count6=count6+1,sum22=sum22+value,value<min22)min22=value;if(value>max22)max22=value},getBuckets=()=>{let builder=allocate2(size62),cumulated=0;for(let i=0;i<size62;i++){let boundary=boundaries[i],value=values3[i];cumulated=cumulated+value,builder[i]=[boundary,cumulated]}return builder};return make302({get:()=>histogram32({buckets:getBuckets(),count:count6,min:min22,max:max22,sum:sum22}),update:update42,modify:update42})},summary32=(key)=>{let{error:error3,maxAge,maxSize,quantiles}=key.keyType,sortedQuantiles=pipe2(quantiles,sort2(Order5)),values3=allocate2(maxSize),head42=0,count6=0,sum22=0,min22=0,max22=0,snapshot=(now)=>{let builder=[],i=0;while(i!==maxSize-1){let item=values3[i];if(item!=null){let[t,v]=item,age=millis2(now-t);if(greaterThanOrEqualTo22(age,zero2)&&lessThanOrEqualTo22(age,maxAge))builder.push(v)}i=i+1}return calculateQuantiles2(error3,sortedQuantiles,sort2(builder,Order5))},observe=(value,timestamp)=>{if(maxSize>0){head42=head42+1;let target=head42%maxSize;values3[target]=[timestamp,value]}min22=count6===0?value:Math.min(min22,value),max22=count6===0?value:Math.max(max22,value),count6=count6+1,sum22=sum22+value};return make302({get:()=>summary22({error:error3,quantiles:snapshot(Date.now()),count:count6,min:min22,max:max22,sum:sum22}),update:([value,timestamp])=>observe(value,timestamp),modify:([value,timestamp])=>observe(value,timestamp)})},calculateQuantiles2=(error3,sortedQuantiles,sortedSamples)=>{let sampleCount=sortedSamples.length;if(!isNonEmptyReadonlyArray2(sortedQuantiles))return empty31();let head42=sortedQuantiles[0],tail2=sortedQuantiles.slice(1),resolvedHead=resolveQuantile2(error3,sampleCount,none22(),0,head42,sortedSamples),resolved=of6(resolvedHead);return tail2.forEach((quantile)=>{resolved.push(resolveQuantile2(error3,sampleCount,resolvedHead.value,resolvedHead.consumed,quantile,resolvedHead.rest))}),map28(resolved,(rq)=>[rq.quantile,rq.value])},resolveQuantile2=(error3,sampleCount,current2,consumed,quantile,rest)=>{let error_1=error3,sampleCount_1=sampleCount,current_1=current2,consumed_1=consumed,quantile_1=quantile,rest_1=rest,error_2=error3,sampleCount_2=sampleCount,current_2=current2,consumed_2=consumed,quantile_2=quantile,rest_2=rest;while(!0){if(!isNonEmptyReadonlyArray2(rest_1))return{quantile:quantile_1,value:none22(),consumed:consumed_1,rest:[]};if(quantile_1===1)return{quantile:quantile_1,value:some22(lastNonEmpty2(rest_1)),consumed:consumed_1+rest_1.length,rest:[]};let headValue=headNonEmpty3(rest_1),sameHead=span4(rest_1,(n)=>n===headValue),desired=quantile_1*sampleCount_1,allowedError=error_1/2*desired,candConsumed=consumed_1+sameHead[0].length,candError=Math.abs(candConsumed-desired);if(candConsumed<desired-allowedError){error_2=error_1,sampleCount_2=sampleCount_1,current_2=head6(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}if(candConsumed>desired+allowedError){let valueToReturn=isNone22(current_1)?some22(headValue):current_1;return{quantile:quantile_1,value:valueToReturn,consumed:consumed_1,rest:rest_1}}switch(current_1._tag){case"None":{error_2=error_1,sampleCount_2=sampleCount_1,current_2=head6(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}case"Some":{let prevError=Math.abs(desired-current_1.value);if(candError<prevError){error_2=error_1,sampleCount_2=sampleCount_1,current_2=head6(rest_1),consumed_2=candConsumed,quantile_2=quantile_1,rest_2=sameHead[1],error_1=error_2,sampleCount_1=sampleCount_2,current_1=current_2,consumed_1=consumed_2,quantile_1=quantile_2,rest_1=rest_2;continue}return{quantile:quantile_1,value:some22(current_1.value),consumed:consumed_1,rest:rest_1}}}}throw Error("BUG: MetricHook.resolveQuantiles - please report an issue at https://github.com/Effect-TS/effect/issues")},MetricPairSymbolKey2="effect/MetricPair",MetricPairTypeId2=Symbol.for(MetricPairSymbolKey2),metricPairVariance2={_Type:(_)=>_},unsafeMake82=(metricKey,metricState)=>{return{[MetricPairTypeId2]:metricPairVariance2,metricKey,metricState,pipe(){return pipeArguments2(this,arguments)}}},MetricRegistrySymbolKey2="effect/MetricRegistry",MetricRegistryTypeId2=Symbol.for(MetricRegistrySymbolKey2);class MetricRegistryImpl2{[MetricRegistryTypeId2]=MetricRegistryTypeId2;map=empty172();snapshot(){let result=[];for(let[key,hook]of this.map)result.push(unsafeMake82(key,hook.get()));return result}get(key){let hook=pipe2(this.map,get82(key),getOrUndefined2);if(hook==null){if(isCounterKey2(key.keyType))return this.getCounter(key);if(isGaugeKey2(key.keyType))return this.getGauge(key);if(isFrequencyKey2(key.keyType))return this.getFrequency(key);if(isHistogramKey2(key.keyType))return this.getHistogram(key);if(isSummaryKey2(key.keyType))return this.getSummary(key);throw Error("BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues")}else return hook}getCounter(key){let value=pipe2(this.map,get82(key),getOrUndefined2);if(value==null){let counter52=counter42(key);if(!pipe2(this.map,has42(key)))pipe2(this.map,set42(key,counter52));value=counter52}return value}getFrequency(key){let value=pipe2(this.map,get82(key),getOrUndefined2);if(value==null){let frequency42=frequency32(key);if(!pipe2(this.map,has42(key)))pipe2(this.map,set42(key,frequency42));value=frequency42}return value}getGauge(key){let value=pipe2(this.map,get82(key),getOrUndefined2);if(value==null){let gauge42=gauge32(key,key.keyType.bigint?BigInt(0):0);if(!pipe2(this.map,has42(key)))pipe2(this.map,set42(key,gauge42));value=gauge42}return value}getHistogram(key){let value=pipe2(this.map,get82(key),getOrUndefined2);if(value==null){let histogram52=histogram42(key);if(!pipe2(this.map,has42(key)))pipe2(this.map,set42(key,histogram52));value=histogram52}return value}getSummary(key){let value=pipe2(this.map,get82(key),getOrUndefined2);if(value==null){let summary42=summary32(key);if(!pipe2(this.map,has42(key)))pipe2(this.map,set42(key,summary42));value=summary42}return value}}var make312=()=>{return new MetricRegistryImpl2},MetricSymbolKey2="effect/Metric",MetricTypeId2=Symbol.for(MetricSymbolKey2),metricVariance2={_Type:(_)=>_,_In:(_)=>_,_Out:(_)=>_},globalMetricRegistry2=globalValue2(Symbol.for("effect/Metric/globalMetricRegistry"),()=>make312()),make322=function(keyType,unsafeUpdate,unsafeValue,unsafeModify){let metric=Object.assign((effect4)=>tap22(effect4,(a)=>update42(metric,a)),{[MetricTypeId2]:metricVariance2,keyType,unsafeUpdate,unsafeValue,unsafeModify,register(){return this.unsafeValue([]),this},pipe(){return pipeArguments2(this,arguments)}});return metric},counter52=(name,options)=>fromMetricKey2(counter22(name,options)),fromMetricKey2=(key)=>{let untaggedHook,hookCache=new WeakMap,hook=(extraTags)=>{if(extraTags.length===0){if(untaggedHook!==void 0)return untaggedHook;return untaggedHook=globalMetricRegistry2.get(key),untaggedHook}let hook2=hookCache.get(extraTags);if(hook2!==void 0)return hook2;return hook2=globalMetricRegistry2.get(taggedWithLabels3(key,extraTags)),hookCache.set(extraTags,hook2),hook2};return make322(key.keyType,(input,extraTags)=>hook(extraTags).update(input),(extraTags)=>hook(extraTags).get(),(input,extraTags)=>hook(extraTags).modify(input))},histogram52=(name,boundaries,description)=>fromMetricKey2(histogram22(name,boundaries,description)),tagged4=dual2(3,(self,key,value)=>taggedWithLabels22(self,[make292(key,value)])),taggedWithLabels22=dual2(2,(self,extraTags)=>{return make322(self.keyType,(input,extraTags1)=>self.unsafeUpdate(input,union10(extraTags,extraTags1)),(extraTags1)=>self.unsafeValue(union10(extraTags,extraTags1)),(input,extraTags1)=>self.unsafeModify(input,union10(extraTags,extraTags1)))}),update42=dual2(2,(self,input)=>fiberRefGetWith2(currentMetricLabels2,(tags)=>sync14(()=>self.unsafeUpdate(input,tags)))),RequestSymbolKey2="effect/Request",RequestTypeId2=Symbol.for(RequestSymbolKey2),requestVariance2={_E:(_)=>_,_A:(_)=>_},RequestPrototype2={...StructuralPrototype2,[RequestTypeId2]:requestVariance2},isRequest3=(u)=>hasProperty2(u,RequestTypeId2),complete3=dual2(2,(self,result)=>fiberRefGetWith2(currentRequestMap2,(map112)=>sync14(()=>{if(map112.has(self)){let entry=map112.get(self);if(!entry.state.completed)entry.state.completed=!0,deferredUnsafeDone2(entry.result,result)}})));class Listeners2{count=0;observers=new Set;interrupted=!1;addObserver(f){this.observers.add(f)}removeObserver(f){this.observers.delete(f)}increment(){this.count++,this.observers.forEach((f)=>f(this.count))}decrement(){this.count--,this.observers.forEach((f)=>f(this.count))}}var SupervisorSymbolKey2="effect/Supervisor",SupervisorTypeId2=Symbol.for(SupervisorSymbolKey2),supervisorVariance2={_T:(_)=>_};class ProxySupervisor2{underlying;value0;[SupervisorTypeId2]=supervisorVariance2;constructor(underlying,value0){this.underlying=underlying,this.value0=value0}get value(){return this.value0}onStart(context22,effect4,parent,fiber){this.underlying.onStart(context22,effect4,parent,fiber)}onEnd(value,fiber){this.underlying.onEnd(value,fiber)}onEffect(fiber,effect4){this.underlying.onEffect(fiber,effect4)}onSuspend(fiber){this.underlying.onSuspend(fiber)}onResume(fiber){this.underlying.onResume(fiber)}map(f){return new ProxySupervisor2(this,pipe2(this.value,map92(f)))}zip(right32){return new Zip2(this,right32)}}class Zip2{left;right;_tag="Zip";[SupervisorTypeId2]=supervisorVariance2;constructor(left32,right32){this.left=left32,this.right=right32}get value(){return zip32(this.left.value,this.right.value)}onStart(context22,effect4,parent,fiber){this.left.onStart(context22,effect4,parent,fiber),this.right.onStart(context22,effect4,parent,fiber)}onEnd(value,fiber){this.left.onEnd(value,fiber),this.right.onEnd(value,fiber)}onEffect(fiber,effect4){this.left.onEffect(fiber,effect4),this.right.onEffect(fiber,effect4)}onSuspend(fiber){this.left.onSuspend(fiber),this.right.onSuspend(fiber)}onResume(fiber){this.left.onResume(fiber),this.right.onResume(fiber)}map(f){return new ProxySupervisor2(this,pipe2(this.value,map92(f)))}zip(right32){return new Zip2(this,right32)}}var isZip2=(self)=>hasProperty2(self,SupervisorTypeId2)&&isTagged2(self,"Zip");class Track2{[SupervisorTypeId2]=supervisorVariance2;fibers=new Set;get value(){return sync14(()=>Array.from(this.fibers))}onStart(_context,_effect,_parent,fiber){this.fibers.add(fiber)}onEnd(_value,fiber){this.fibers.delete(fiber)}onEffect(_fiber,_effect){}onSuspend(_fiber){}onResume(_fiber){}map(f){return new ProxySupervisor2(this,pipe2(this.value,map92(f)))}zip(right32){return new Zip2(this,right32)}onRun(execution,_fiber){return execution()}}class Const2{effect;[SupervisorTypeId2]=supervisorVariance2;constructor(effect4){this.effect=effect4}get value(){return this.effect}onStart(_context,_effect,_parent,_fiber){}onEnd(_value,_fiber){}onEffect(_fiber,_effect){}onSuspend(_fiber){}onResume(_fiber){}map(f){return new ProxySupervisor2(this,pipe2(this.value,map92(f)))}zip(right32){return new Zip2(this,right32)}onRun(execution,_fiber){return execution()}}var unsafeTrack2=()=>{return new Track2},track2=sync14(unsafeTrack2),fromEffect9=(effect4)=>{return new Const2(effect4)},none82=globalValue2("effect/Supervisor/none",()=>fromEffect9(void_22)),make332=make142,OP_EMPTY32="Empty",OP_ADD_SUPERVISOR2="AddSupervisor",OP_REMOVE_SUPERVISOR2="RemoveSupervisor",OP_AND_THEN22="AndThen",empty232={_tag:OP_EMPTY32},combine82=(self,that)=>{return{_tag:OP_AND_THEN22,first:self,second:that}},patch82=(self,supervisor)=>{return patchLoop2(supervisor,of22(self))},patchLoop2=(_supervisor,_patches)=>{let supervisor=_supervisor,patches=_patches;while(isNonEmpty6(patches)){let head42=headNonEmpty22(patches);switch(head42._tag){case OP_EMPTY32:{patches=tailNonEmpty22(patches);break}case OP_ADD_SUPERVISOR2:{supervisor=supervisor.zip(head42.supervisor),patches=tailNonEmpty22(patches);break}case OP_REMOVE_SUPERVISOR2:{supervisor=removeSupervisor2(supervisor,head42.supervisor),patches=tailNonEmpty22(patches);break}case OP_AND_THEN22:{patches=prepend22(head42.first)(prepend22(head42.second)(tailNonEmpty22(patches)));break}}}return supervisor},removeSupervisor2=(self,that)=>{if(equals4(self,that))return none82;else if(isZip2(self))return removeSupervisor2(self.left,that).zip(removeSupervisor2(self.right,that));else return self},toSet22=(self)=>{if(equals4(self,none82))return empty72();else if(isZip2(self))return pipe2(toSet22(self.left),union42(toSet22(self.right)));else return make102(self)},diff72=(oldValue,newValue)=>{if(equals4(oldValue,newValue))return empty232;let oldSupervisors=toSet22(oldValue),newSupervisors=toSet22(newValue),added=pipe2(newSupervisors,difference42(oldSupervisors),reduce52(empty232,(patch92,supervisor)=>combine82(patch92,{_tag:OP_ADD_SUPERVISOR2,supervisor}))),removed=pipe2(oldSupervisors,difference42(newSupervisors),reduce52(empty232,(patch92,supervisor)=>combine82(patch92,{_tag:OP_REMOVE_SUPERVISOR2,supervisor})));return combine82(added,removed)},differ22=make332({empty:empty232,patch:patch82,combine:combine82,diff:diff72}),fiberStarted2=counter52("effect_fiber_started",{incremental:!0}),fiberActive2=counter52("effect_fiber_active"),fiberSuccesses2=counter52("effect_fiber_successes",{incremental:!0}),fiberFailures2=counter52("effect_fiber_failures",{incremental:!0}),fiberLifetimes2=tagged4(histogram52("effect_fiber_lifetimes",exponential4({start:0.5,factor:2,count:35})),"time_unit","milliseconds"),EvaluationSignalContinue2="Continue",EvaluationSignalDone2="Done",EvaluationSignalYieldNow2="Yield",runtimeFiberVariance2={_E:(_)=>_,_A:(_)=>_},absurd3=(_)=>{throw Error(`BUG: FiberRuntime - ${toStringUnknown2(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`)},YieldedOp2=Symbol.for("effect/internal/fiberRuntime/YieldedOp"),yieldedOpChannel2=globalValue2("effect/internal/fiberRuntime/yieldedOpChannel",()=>({currentOp:null})),contOpSuccess2={[OP_ON_SUCCESS3]:(_,cont,value)=>{return internalCall2(()=>cont.effect_instruction_i1(value))},["OnStep"]:(_,_cont,value)=>{return exitSucceed3(exitSucceed3(value))},[OP_ON_SUCCESS_AND_FAILURE2]:(_,cont,value)=>{return internalCall2(()=>cont.effect_instruction_i2(value))},[OP_REVERT_FLAGS2]:(self,cont,value)=>{if(self.patchRuntimeFlags(self.currentRuntimeFlags,cont.patch),interruptible5(self.currentRuntimeFlags)&&self.isInterrupted())return exitFailCause3(self.getInterruptedCause());else return exitSucceed3(value)},[OP_WHILE2]:(self,cont,value)=>{if(internalCall2(()=>cont.effect_instruction_i2(value)),internalCall2(()=>cont.effect_instruction_i0()))return self.pushStack(cont),internalCall2(()=>cont.effect_instruction_i1());else return void_22},[OP_ITERATOR2]:(self,cont,value)=>{while(!0){let state=internalCall2(()=>cont.effect_instruction_i0.next(value));if(state.done)return exitSucceed3(state.value);let primitive3=yieldWrapGet2(state.value);if(!exitIsExit2(primitive3))return self.pushStack(cont),primitive3;else if(primitive3._tag==="Failure")return primitive3;value=primitive3.value}}},drainQueueWhileRunningTable2={[OP_INTERRUPT_SIGNAL2]:(self,runtimeFlags22,cur,message)=>{return self.processNewInterruptSignal(message.cause),interruptible5(runtimeFlags22)?exitFailCause3(message.cause):cur},[OP_RESUME2]:(_self,_runtimeFlags,_cur,_message)=>{throw Error("It is illegal to have multiple concurrent run loops in a single fiber")},[OP_STATEFUL2]:(self,runtimeFlags22,cur,message)=>{return message.onFiber(self,running22(runtimeFlags22)),cur},[OP_YIELD_NOW2]:(_self,_runtimeFlags,cur,_message)=>{return flatMap82(yieldNow5(),()=>cur)}},runBlockedRequests2=(self)=>forEachSequentialDiscard2(flatten42(self),(requestsByRequestResolver)=>forEachConcurrentDiscard2(sequentialCollectionToChunk2(requestsByRequestResolver),([dataSource,sequential42])=>{let map112=new Map,arr=[];for(let block of sequential42){arr.push(toReadonlyArray2(block));for(let entry of block)map112.set(entry.request,entry)}let flat=arr.flat();return fiberRefLocally3(invokeWithInterrupt2(dataSource.runAll(arr),flat,()=>flat.forEach((entry)=>{entry.listeners.interrupted=!0})),currentRequestMap2,map112)},!1,!1)),_version2=getCurrentVersion2();class FiberRuntime2 extends Class4{[FiberTypeId2]=fiberVariance22;[RuntimeFiberTypeId2]=runtimeFiberVariance2;_fiberRefs;_fiberId;_queue=[];_children=null;_observers=[];_running=!1;_stack=[];_asyncInterruptor=null;_asyncBlockingOn=null;_exitValue=null;_steps=[];_isYielding=!1;currentRuntimeFlags;currentOpCount=0;currentSupervisor;currentScheduler;currentTracer;currentSpan;currentContext;currentDefaultServices;constructor(fiberId22,fiberRefs0,runtimeFlags0){super();if(this.currentRuntimeFlags=runtimeFlags0,this._fiberId=fiberId22,this._fiberRefs=fiberRefs0,runtimeMetrics2(runtimeFlags0)){let tags=this.getFiberRef(currentMetricLabels2);fiberStarted2.unsafeUpdate(1,tags),fiberActive2.unsafeUpdate(1,tags)}this.refreshRefCache()}commit(){return join32(this)}id(){return this._fiberId}resume(effect4){this.tell(resume2(effect4))}get status(){return this.ask((_,status2)=>status2)}get runtimeFlags(){return this.ask((state,status2)=>{if(isDone32(status2))return state.currentRuntimeFlags;return status2.runtimeFlags})}scope(){return unsafeMake72(this)}get children(){return this.ask((fiber)=>Array.from(fiber.getChildren()))}getChildren(){if(this._children===null)this._children=new Set;return this._children}getInterruptedCause(){return this.getFiberRef(currentInterruptedCause2)}fiberRefs(){return this.ask((fiber)=>fiber.getFiberRefs())}ask(f){return suspend13(()=>{let deferred=deferredUnsafeMake2(this._fiberId);return this.tell(stateful2((fiber,status2)=>{deferredUnsafeDone2(deferred,sync14(()=>f(fiber,status2)))})),deferredAwait2(deferred)})}tell(message){if(this._queue.push(message),!this._running)this._running=!0,this.drainQueueLaterOnExecutor()}get await(){return async_2((resume22)=>{let cb=(exit22)=>resume22(succeed20(exit22));return this.tell(stateful2((fiber,_)=>{if(fiber._exitValue!==null)cb(this._exitValue);else fiber.addObserver(cb)})),sync14(()=>this.tell(stateful2((fiber,_)=>{fiber.removeObserver(cb)})))},this.id())}get inheritAll(){return withFiberRuntime3((parentFiber,parentStatus)=>{let parentFiberId=parentFiber.id(),parentFiberRefs=parentFiber.getFiberRefs(),parentRuntimeFlags=parentStatus.runtimeFlags,childFiberRefs=this.getFiberRefs(),updatedFiberRefs=joinAs3(parentFiberRefs,parentFiberId,childFiberRefs);parentFiber.setFiberRefs(updatedFiberRefs);let updatedRuntimeFlags=parentFiber.getFiberRef(currentRuntimeFlags2),patch92=pipe2(diff42(parentRuntimeFlags,updatedRuntimeFlags),exclude22(Interruption2),exclude22(WindDown2));return updateRuntimeFlags3(patch92)})}get poll(){return sync14(()=>fromNullable4(this._exitValue))}unsafePoll(){return this._exitValue}interruptAsFork(fiberId22){return sync14(()=>this.tell(interruptSignal2(interrupt9(fiberId22))))}unsafeInterruptAsFork(fiberId22){this.tell(interruptSignal2(interrupt9(fiberId22)))}addObserver(observer){if(this._exitValue!==null)observer(this._exitValue);else this._observers.push(observer)}removeObserver(observer){this._observers=this._observers.filter((o)=>o!==observer)}getFiberRefs(){return this.setFiberRef(currentRuntimeFlags2,this.currentRuntimeFlags),this._fiberRefs}unsafeDeleteFiberRef(fiberRef){this._fiberRefs=delete_3(this._fiberRefs,fiberRef)}getFiberRef(fiberRef){if(this._fiberRefs.locals.has(fiberRef))return this._fiberRefs.locals.get(fiberRef)[0][1];return fiberRef.initial}setFiberRef(fiberRef,value){this._fiberRefs=updateAs3(this._fiberRefs,{fiberId:this._fiberId,fiberRef,value}),this.refreshRefCache()}refreshRefCache(){this.currentDefaultServices=this.getFiberRef(currentServices2),this.currentTracer=this.currentDefaultServices.unsafeMap.get(tracerTag2.key),this.currentSupervisor=this.getFiberRef(currentSupervisor2),this.currentScheduler=this.getFiberRef(currentScheduler3),this.currentContext=this.getFiberRef(currentContext3),this.currentSpan=this.currentContext.unsafeMap.get(spanTag2.key)}setFiberRefs(fiberRefs32){this._fiberRefs=fiberRefs32,this.refreshRefCache()}addChild(child){this.getChildren().add(child)}removeChild(child){this.getChildren().delete(child)}transferChildren(scope5){let children2=this._children;if(this._children=null,children2!==null&&children2.size>0){for(let child of children2)if(child._exitValue===null)scope5.add(this.currentRuntimeFlags,child)}}drainQueueOnCurrentThread(){let recurse=!0;while(recurse){let evaluationSignal=EvaluationSignalContinue2,prev=globalThis[currentFiberURI2];globalThis[currentFiberURI2]=this;try{while(evaluationSignal===EvaluationSignalContinue2)evaluationSignal=this._queue.length===0?EvaluationSignalDone2:this.evaluateMessageWhileSuspended(this._queue.splice(0,1)[0])}finally{this._running=!1,globalThis[currentFiberURI2]=prev}if(this._queue.length>0&&!this._running)if(this._running=!0,evaluationSignal===EvaluationSignalYieldNow2)this.drainQueueLaterOnExecutor(),recurse=!1;else recurse=!0;else recurse=!1}}drainQueueLaterOnExecutor(){this.currentScheduler.scheduleTask(this.run,this.getFiberRef(currentSchedulingPriority3))}drainQueueWhileRunning(runtimeFlags22,cur0){let cur=cur0;while(this._queue.length>0){let message=this._queue.splice(0,1)[0];cur=drainQueueWhileRunningTable2[message._tag](this,runtimeFlags22,cur,message)}return cur}isInterrupted(){return!isEmpty52(this.getFiberRef(currentInterruptedCause2))}addInterruptedCause(cause22){let oldSC=this.getFiberRef(currentInterruptedCause2);this.setFiberRef(currentInterruptedCause2,sequential4(oldSC,cause22))}processNewInterruptSignal(cause22){this.addInterruptedCause(cause22),this.sendInterruptSignalToAllChildren()}sendInterruptSignalToAllChildren(){if(this._children===null||this._children.size===0)return!1;let told=!1;for(let child of this._children)child.tell(interruptSignal2(interrupt9(this.id()))),told=!0;return told}interruptAllChildren(){if(this.sendInterruptSignalToAllChildren()){let it=this._children.values();this._children=null;let isDone42=!1;return whileLoop3({while:()=>!isDone42,body:()=>{let next4=it.next();if(!next4.done)return asVoid22(next4.value.await);else return sync14(()=>{isDone42=!0})},step:()=>{}})}return null}reportExitValue(exit22){if(runtimeMetrics2(this.currentRuntimeFlags)){let tags=this.getFiberRef(currentMetricLabels2),startTimeMillis=this.id().startTimeMillis,endTimeMillis=Date.now();switch(fiberLifetimes2.unsafeUpdate(endTimeMillis-startTimeMillis,tags),fiberActive2.unsafeUpdate(-1,tags),exit22._tag){case OP_SUCCESS2:{fiberSuccesses2.unsafeUpdate(1,tags);break}case OP_FAILURE2:{fiberFailures2.unsafeUpdate(1,tags);break}}}if(exit22._tag==="Failure"){let level=this.getFiberRef(currentUnhandledErrorLogLevel2);if(!isInterruptedOnly3(exit22.cause)&&level._tag==="Some")this.log("Fiber terminated with an unhandled error",exit22.cause,level)}}setExitValue(exit22){this._exitValue=exit22,this.reportExitValue(exit22);for(let i=this._observers.length-1;i>=0;i--)this._observers[i](exit22);this._observers=[]}getLoggers(){return this.getFiberRef(currentLoggers3)}log(message,cause22,overrideLogLevel){let logLevel3=isSome22(overrideLogLevel)?overrideLogLevel.value:this.getFiberRef(currentLogLevel2),minimumLogLevel=this.getFiberRef(currentMinimumLogLevel2);if(greaterThan32(minimumLogLevel,logLevel3))return;let spans=this.getFiberRef(currentLogSpan2),annotations=this.getFiberRef(currentLogAnnotations2),loggers=this.getLoggers(),contextMap=this.getFiberRefs();if(size42(loggers)>0){let clockService=get32(this.getFiberRef(currentServices2),clockTag2),date3=new Date(clockService.unsafeCurrentTimeMillis());withRedactableContext2(contextMap,()=>{for(let logger of loggers)logger.log({fiberId:this.id(),logLevel:logLevel3,message,cause:cause22,context:contextMap,spans,annotations,date:date3})})}}evaluateMessageWhileSuspended(message){switch(message._tag){case OP_YIELD_NOW2:return EvaluationSignalYieldNow2;case OP_INTERRUPT_SIGNAL2:{if(this.processNewInterruptSignal(message.cause),this._asyncInterruptor!==null)this._asyncInterruptor(exitFailCause3(message.cause)),this._asyncInterruptor=null;return EvaluationSignalContinue2}case OP_RESUME2:return this._asyncInterruptor=null,this._asyncBlockingOn=null,this.evaluateEffect(message.effect),EvaluationSignalContinue2;case OP_STATEFUL2:return message.onFiber(this,this._exitValue!==null?done42:suspended22(this.currentRuntimeFlags,this._asyncBlockingOn)),EvaluationSignalContinue2;default:return absurd3(message)}}evaluateEffect(effect0){this.currentSupervisor.onResume(this);try{let effect4=interruptible5(this.currentRuntimeFlags)&&this.isInterrupted()?exitFailCause3(this.getInterruptedCause()):effect0;while(effect4!==null){let eff=effect4,exit22=this.runLoop(eff);if(exit22===YieldedOp2){let op=yieldedOpChannel2.currentOp;if(yieldedOpChannel2.currentOp=null,op._op===OP_YIELD3)if(cooperativeYielding2(this.currentRuntimeFlags))this.tell(yieldNow32()),this.tell(resume2(exitVoid3)),effect4=null;else effect4=exitVoid3;else if(op._op===OP_ASYNC2)effect4=null}else{this.currentRuntimeFlags=pipe2(this.currentRuntimeFlags,enable22(WindDown2));let interruption22=this.interruptAllChildren();if(interruption22!==null)effect4=flatMap82(interruption22,()=>exit22);else{if(this._queue.length===0)this.setExitValue(exit22);else this.tell(resume2(exit22));effect4=null}}}}finally{this.currentSupervisor.onSuspend(this)}}start(effect4){if(!this._running){this._running=!0;let prev=globalThis[currentFiberURI2];globalThis[currentFiberURI2]=this;try{this.evaluateEffect(effect4)}finally{if(this._running=!1,globalThis[currentFiberURI2]=prev,this._queue.length>0)this.drainQueueLaterOnExecutor()}}else this.tell(resume2(effect4))}startFork(effect4){this.tell(resume2(effect4))}patchRuntimeFlags(oldRuntimeFlags,patch92){let newRuntimeFlags=patch42(oldRuntimeFlags,patch92);return globalThis[currentFiberURI2]=this,this.currentRuntimeFlags=newRuntimeFlags,newRuntimeFlags}initiateAsync(runtimeFlags22,asyncRegister){let alreadyCalled=!1,callback=(effect4)=>{if(!alreadyCalled)alreadyCalled=!0,this.tell(resume2(effect4))};if(interruptible5(runtimeFlags22))this._asyncInterruptor=callback;try{asyncRegister(callback)}catch(e){callback(failCause15(die12(e)))}}pushStack(cont){if(this._stack.push(cont),cont._op==="OnStep")this._steps.push({refs:this.getFiberRefs(),flags:this.currentRuntimeFlags})}popStack(){let item=this._stack.pop();if(item){if(item._op==="OnStep")this._steps.pop();return item}return}getNextSuccessCont(){let frame=this.popStack();while(frame){if(frame._op!==OP_ON_FAILURE3)return frame;frame=this.popStack()}}getNextFailCont(){let frame=this.popStack();while(frame){if(frame._op!==OP_ON_SUCCESS3&&frame._op!==OP_WHILE2&&frame._op!==OP_ITERATOR2)return frame;frame=this.popStack()}}[OP_TAG2](op){return sync14(()=>unsafeGet32(this.currentContext,op))}["Left"](op){return fail22(op.left)}["None"](_){return fail22(new NoSuchElementException3)}["Right"](op){return exitSucceed3(op.right)}["Some"](op){return exitSucceed3(op.value)}["Micro"](op){return unsafeAsync2((microResume)=>{let resume22=microResume,fiber=runFork4(provideContext22(op,this.currentContext));return fiber.addObserver((exit22)=>{if(exit22._tag==="Success")return resume22(exitSucceed3(exit22.value));switch(exit22.cause._tag){case"Interrupt":return resume22(exitFailCause3(interrupt9(none42)));case"Fail":return resume22(fail22(exit22.cause.error));case"Die":return resume22(die22(exit22.cause.defect))}}),unsafeAsync2((abortResume)=>{resume22=(_)=>{abortResume(void_22)},fiber.unsafeInterrupt()})})}[OP_SYNC3](op){let value=internalCall2(()=>op.effect_instruction_i0()),cont=this.getNextSuccessCont();if(cont!==void 0){if(!(cont._op in contOpSuccess2))absurd3(cont);return contOpSuccess2[cont._op](this,cont,value)}else return yieldedOpChannel2.currentOp=exitSucceed3(value),YieldedOp2}[OP_SUCCESS2](op){let oldCur=op,cont=this.getNextSuccessCont();if(cont!==void 0){if(!(cont._op in contOpSuccess2))absurd3(cont);return contOpSuccess2[cont._op](this,cont,oldCur.effect_instruction_i0)}else return yieldedOpChannel2.currentOp=oldCur,YieldedOp2}[OP_FAILURE2](op){let cause22=op.effect_instruction_i0,cont=this.getNextFailCont();if(cont!==void 0)switch(cont._op){case OP_ON_FAILURE3:case OP_ON_SUCCESS_AND_FAILURE2:if(!(interruptible5(this.currentRuntimeFlags)&&this.isInterrupted()))return internalCall2(()=>cont.effect_instruction_i1(cause22));else return exitFailCause3(stripFailures2(cause22));case"OnStep":if(!(interruptible5(this.currentRuntimeFlags)&&this.isInterrupted()))return exitSucceed3(exitFailCause3(cause22));else return exitFailCause3(stripFailures2(cause22));case OP_REVERT_FLAGS2:if(this.patchRuntimeFlags(this.currentRuntimeFlags,cont.patch),interruptible5(this.currentRuntimeFlags)&&this.isInterrupted())return exitFailCause3(sequential4(cause22,this.getInterruptedCause()));else return exitFailCause3(cause22);default:absurd3(cont)}else return yieldedOpChannel2.currentOp=exitFailCause3(cause22),YieldedOp2}[OP_WITH_RUNTIME2](op){return internalCall2(()=>op.effect_instruction_i0(this,running22(this.currentRuntimeFlags)))}["Blocked"](op){let refs=this.getFiberRefs(),flags=this.currentRuntimeFlags;if(this._steps.length>0){let frames=[],snap=this._steps[this._steps.length-1],frame=this.popStack();while(frame&&frame._op!=="OnStep")frames.push(frame),frame=this.popStack();this.setFiberRefs(snap.refs),this.currentRuntimeFlags=snap.flags;let patchRefs=diff62(snap.refs,refs),patchFlags=diff42(snap.flags,flags);return exitSucceed3(blocked3(op.effect_instruction_i0,withFiberRuntime3((newFiber)=>{while(frames.length>0)newFiber.pushStack(frames.pop());return newFiber.setFiberRefs(patch72(newFiber.id(),newFiber.getFiberRefs())(patchRefs)),newFiber.currentRuntimeFlags=patch42(patchFlags)(newFiber.currentRuntimeFlags),op.effect_instruction_i1})))}return uninterruptibleMask4((restore)=>flatMap82(forkDaemon3(runRequestBlock3(op.effect_instruction_i0)),()=>restore(op.effect_instruction_i1)))}["RunBlocked"](op){return runBlockedRequests2(op.effect_instruction_i0)}[OP_UPDATE_RUNTIME_FLAGS2](op){let updateFlags=op.effect_instruction_i0,oldRuntimeFlags=this.currentRuntimeFlags,newRuntimeFlags=patch42(oldRuntimeFlags,updateFlags);if(interruptible5(newRuntimeFlags)&&this.isInterrupted())return exitFailCause3(this.getInterruptedCause());else if(this.patchRuntimeFlags(this.currentRuntimeFlags,updateFlags),op.effect_instruction_i1){let revertFlags=diff42(newRuntimeFlags,oldRuntimeFlags);return this.pushStack(new RevertFlags2(revertFlags,op)),internalCall2(()=>op.effect_instruction_i1(oldRuntimeFlags))}else return exitVoid3}[OP_ON_SUCCESS3](op){return this.pushStack(op),op.effect_instruction_i0}["OnStep"](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ON_FAILURE3](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ON_SUCCESS_AND_FAILURE2](op){return this.pushStack(op),op.effect_instruction_i0}[OP_ASYNC2](op){return this._asyncBlockingOn=op.effect_instruction_i1,this.initiateAsync(this.currentRuntimeFlags,op.effect_instruction_i0),yieldedOpChannel2.currentOp=op,YieldedOp2}[OP_YIELD3](op){return this._isYielding=!1,yieldedOpChannel2.currentOp=op,YieldedOp2}[OP_WHILE2](op){let{effect_instruction_i0:check3,effect_instruction_i1:body}=op;if(check3())return this.pushStack(op),body();else return exitVoid3}[OP_ITERATOR2](op){return contOpSuccess2[OP_ITERATOR2](this,op,void 0)}[OP_COMMIT2](op){return internalCall2(()=>op.commit())}runLoop(effect0){let cur=effect0;this.currentOpCount=0;while(!0){if((this.currentRuntimeFlags&OpSupervision2)!==0)this.currentSupervisor.onEffect(this,cur);if(this._queue.length>0)cur=this.drainQueueWhileRunning(this.currentRuntimeFlags,cur);if(!this._isYielding){this.currentOpCount+=1;let shouldYield=this.currentScheduler.shouldYield(this);if(shouldYield!==!1){this._isYielding=!0,this.currentOpCount=0;let oldCur=cur;cur=flatMap82(yieldNow5({priority:shouldYield}),()=>oldCur)}}try{if(cur=this.currentTracer.context(()=>{if(_version2!==cur[EffectTypeId22]._V){let level=this.getFiberRef(currentVersionMismatchErrorLogLevel2);if(level._tag==="Some"){let effectVersion=cur[EffectTypeId22]._V;this.log(`Executing an Effect versioned ${effectVersion} with a Runtime of version ${getCurrentVersion2()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`,empty162,level)}}return this[cur._op](cur)},this),cur===YieldedOp2){let op=yieldedOpChannel2.currentOp;if(op._op===OP_YIELD3||op._op===OP_ASYNC2)return YieldedOp2;return yieldedOpChannel2.currentOp=null,op._op===OP_SUCCESS2||op._op===OP_FAILURE2?op:exitFailCause3(die12(op))}}catch(e){if(cur!==YieldedOp2&&!hasProperty2(cur,"_op")||!(cur._op in this))cur=dieMessage6(`Not a valid effect: ${toStringUnknown2(cur)}`);else if(isInterruptedException2(e))cur=exitFailCause3(sequential4(die12(e),interrupt9(none42)));else cur=die22(e)}}}run=()=>{this.drainQueueOnCurrentThread()}}var currentMinimumLogLevel2=globalValue2("effect/FiberRef/currentMinimumLogLevel",()=>fiberRefUnsafeMake2(fromLiteral2("Info"))),loggerWithConsoleLog2=(self)=>makeLogger2((opts)=>{let services=getOrDefault22(opts.context,currentServices2);get32(services,consoleTag2).unsafe.log(self.log(opts))}),defaultLogger3=globalValue2(Symbol.for("effect/Logger/defaultLogger"),()=>loggerWithConsoleLog2(stringLogger2)),tracerLogger2=globalValue2(Symbol.for("effect/Logger/tracerLogger"),()=>makeLogger2(({annotations,cause:cause22,context:context22,fiberId:fiberId22,logLevel:logLevel3,message})=>{let span22=getOption22(getOrDefault3(context22,currentContext3),spanTag2);if(span22._tag==="None"||span22.value._tag==="ExternalSpan")return;let clockService=unsafeGet32(getOrDefault3(context22,currentServices2),clockTag2),attributes={};for(let[key,value]of annotations)attributes[key]=value;if(attributes["effect.fiberId"]=threadName22(fiberId22),attributes["effect.logLevel"]=logLevel3.label,cause22!==null&&cause22._tag!=="Empty")attributes["effect.cause"]=pretty3(cause22,{renderErrorCause:!0});span22.value.event(toStringUnknown2(Array.isArray(message)&&message.length===1?message[0]:message),clockService.unsafeCurrentTimeNanos(),attributes)})),currentLoggers3=globalValue2(Symbol.for("effect/FiberRef/currentLoggers"),()=>fiberRefUnsafeMakeHashSet2(make102(defaultLogger3,tracerLogger2))),annotateLogsScoped3=function(){if(typeof arguments[0]==="string")return fiberRefLocallyScopedWith4(currentLogAnnotations2,set32(arguments[0],arguments[1]));let entries2=Object.entries(arguments[0]);return fiberRefLocallyScopedWith4(currentLogAnnotations2,mutate32((annotations)=>{for(let i=0;i<entries2.length;i++){let[key,value]=entries2[i];set32(annotations,key,value)}return annotations}))},whenLogLevel3=dual2(2,(effect4,level)=>{let requiredLogLevel=typeof level==="string"?fromLiteral2(level):level;return withFiberRuntime3((fiberState)=>{let minimumLogLevel=fiberState.getFiberRef(currentMinimumLogLevel2);if(greaterThan32(minimumLogLevel,requiredLogLevel))return succeed20(none22());return map92(effect4,some22)})}),acquireRelease5=dual2((args22)=>isEffect3(args22[0]),(acquire,release)=>uninterruptible3(tap22(acquire,(a)=>addFinalizer4((exit22)=>release(a,exit22))))),acquireReleaseInterruptible3=dual2((args22)=>isEffect3(args22[0]),(acquire,release)=>ensuring9(acquire,addFinalizer4((exit22)=>release(exit22)))),addFinalizer4=(finalizer3)=>withFiberRuntime3((runtime22)=>{let acquireRefs=runtime22.getFiberRefs(),acquireFlags=disable22(runtime22.currentRuntimeFlags,Interruption2);return flatMap82(scope5,(scope5)=>scopeAddFinalizerExit2(scope5,(exit22)=>withFiberRuntime3((runtimeFinalizer)=>{let preRefs=runtimeFinalizer.getFiberRefs(),preFlags=runtimeFinalizer.currentRuntimeFlags,patchRefs=diff62(preRefs,acquireRefs),patchFlags=diff42(preFlags,acquireFlags),inverseRefs=diff62(acquireRefs,preRefs);return runtimeFinalizer.setFiberRefs(patch72(patchRefs,runtimeFinalizer.id(),acquireRefs)),ensuring9(withRuntimeFlags2(finalizer3(exit22),patchFlags),sync14(()=>{runtimeFinalizer.setFiberRefs(patch72(inverseRefs,runtimeFinalizer.id(),runtimeFinalizer.getFiberRefs()))}))})))}),daemonChildren3=(self)=>{return fiberRefLocally3(currentForkScopeOverride2,some22(globalScope2))(self)},_existsParFound2=Symbol.for("effect/Effect/existsPar/found"),exists22=dual2((args22)=>isIterable2(args22[0])&&!isEffect3(args22[0]),(elements,predicate,options)=>matchSimple2(options?.concurrency,()=>suspend13(()=>existsLoop2(elements[Symbol.iterator](),0,predicate)),()=>matchEffect4(forEach62(elements,(a,i)=>if_3(predicate(a,i),{onTrue:()=>fail22(_existsParFound2),onFalse:()=>void_22}),options),{onFailure:(e)=>e===_existsParFound2?succeed20(!0):fail22(e),onSuccess:()=>succeed20(!1)}))),existsLoop2=(iterator,index,f)=>{let next4=iterator.next();if(next4.done)return succeed20(!1);return flatMap82(f(next4.value,index),(b)=>b?succeed20(b):existsLoop2(iterator,index+1,f))},filter62=dual2((args22)=>isIterable2(args22[0])&&!isEffect3(args22[0]),(elements,predicate,options)=>{let predicate_=options?.negate?(a,i)=>map92(predicate(a,i),not2):predicate;return matchSimple2(options?.concurrency,()=>suspend13(()=>fromIterable22(elements).reduceRight((effect4,a,i)=>zipWith42(effect4,suspend13(()=>predicate_(a,i)),(list,b)=>b?[a,...list]:list),sync14(()=>[]))),()=>map92(forEach62(elements,(a,i)=>map92(predicate_(a,i),(b)=>b?some22(a):none22()),options),getSomes2))}),allResolveInput2=(input)=>{if(Array.isArray(input)||isIterable2(input))return[input,none22()];let keys32=Object.keys(input),size62=keys32.length;return[keys32.map((k)=>input[k]),some22((values3)=>{let res={};for(let i=0;i<size62;i++)res[keys32[i]]=values3[i];return res})]},allValidate2=(effects,reconcile,options)=>{let eitherEffects=[];for(let effect4 of effects)eitherEffects.push(either22(effect4));return flatMap82(forEach62(eitherEffects,identity5,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>{let none92=none22(),size62=eithers.length,errors=Array(size62),successes=Array(size62),errored=!1;for(let i=0;i<size62;i++){let either32=eithers[i];if(either32._tag==="Left")errors[i]=some22(either32.left),errored=!0;else successes[i]=either32.right,errors[i]=none92}if(errored)return reconcile._tag==="Some"?fail22(reconcile.value(errors)):fail22(errors);else if(options?.discard)return void_22;return reconcile._tag==="Some"?succeed20(reconcile.value(successes)):succeed20(successes)})},allEither2=(effects,reconcile,options)=>{let eitherEffects=[];for(let effect4 of effects)eitherEffects.push(either22(effect4));if(options?.discard)return forEach62(eitherEffects,identity5,{concurrency:options?.concurrency,batching:options?.batching,discard:!0,concurrentFinalizers:options?.concurrentFinalizers});return map92(forEach62(eitherEffects,identity5,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>reconcile._tag==="Some"?reconcile.value(eithers):eithers)},all32=(arg,options)=>{let[effects,reconcile]=allResolveInput2(arg);if(options?.mode==="validate")return allValidate2(effects,reconcile,options);else if(options?.mode==="either")return allEither2(effects,reconcile,options);return options?.discard!==!0&&reconcile._tag==="Some"?map92(forEach62(effects,identity5,options),reconcile.value):forEach62(effects,identity5,options)},allWith3=(options)=>(arg)=>all32(arg,options),allSuccesses3=(elements,options)=>map92(all32(fromIterable22(elements).map(exit3),options),filterMap22((exit22)=>exitIsSuccess2(exit22)?some22(exit22.effect_instruction_i0):none22())),replicate3=dual2(2,(self,n)=>Array.from({length:n},()=>self)),replicateEffect3=dual2((args22)=>isEffect3(args22[0]),(self,n,options)=>all32(replicate3(self,n),options)),forEach62=dual2((args22)=>isIterable2(args22[0]),(self,f,options)=>withFiberRuntime3((r)=>{let isRequestBatchingEnabled=options?.batching===!0||options?.batching==="inherit"&&r.getFiberRef(currentRequestBatching2);if(options?.discard)return match92(options.concurrency,()=>finalizersMaskInternal2(sequential32,options?.concurrentFinalizers)((restore)=>isRequestBatchingEnabled?forEachConcurrentDiscard2(self,(a,i)=>restore(f(a,i)),!0,!1,1):forEachSequentialDiscard2(self,(a,i)=>restore(f(a,i)))),()=>finalizersMaskInternal2(parallel32,options?.concurrentFinalizers)((restore)=>forEachConcurrentDiscard2(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled,!1)),(n)=>finalizersMaskInternal2(parallelN22(n),options?.concurrentFinalizers)((restore)=>forEachConcurrentDiscard2(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled,!1,n)));return match92(options?.concurrency,()=>finalizersMaskInternal2(sequential32,options?.concurrentFinalizers)((restore)=>isRequestBatchingEnabled?forEachParN2(self,1,(a,i)=>restore(f(a,i)),!0):forEachSequential2(self,(a,i)=>restore(f(a,i)))),()=>finalizersMaskInternal2(parallel32,options?.concurrentFinalizers)((restore)=>forEachParUnbounded2(self,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled)),(n)=>finalizersMaskInternal2(parallelN22(n),options?.concurrentFinalizers)((restore)=>forEachParN2(self,n,(a,i)=>restore(f(a,i)),isRequestBatchingEnabled)))})),forEachParUnbounded2=(self,f,batching)=>suspend13(()=>{let as32=fromIterable22(self),array32=Array(as32.length);return zipRight22(forEachConcurrentDiscard2(as32,(a,i)=>flatMap82(f(a,i),(b)=>sync14(()=>array32[i]=b)),batching,!1),succeed20(array32))}),forEachConcurrentDiscard2=(self,f,batching,processAll,n)=>uninterruptibleMask4((restore)=>transplant3((graft)=>withFiberRuntime3((parent)=>{let todos=Array.from(self).reverse(),target=todos.length;if(target===0)return void_22;let counter62=0,interrupted3=!1,fibersCount=n?Math.min(todos.length,n):todos.length,fibers=new Set,results=[],interruptAll2=()=>fibers.forEach((fiber)=>{fiber.currentScheduler.scheduleTask(()=>{fiber.unsafeInterruptAsFork(parent.id())},0)}),startOrder=[],joinOrder=[],residual=[],collectExits=()=>{let exits=results.filter(({exit:exit22})=>exit22._tag==="Failure").sort((a,b)=>a.index<b.index?-1:a.index===b.index?0:1).map(({exit:exit22})=>exit22);if(exits.length===0)exits.push(exitVoid3);return exits},runFiber=(eff,interruptImmediately=!1)=>{let runnable=uninterruptible3(graft(eff)),fiber=unsafeForkUnstarted2(runnable,parent,parent.currentRuntimeFlags,globalScope2);return parent.currentScheduler.scheduleTask(()=>{if(interruptImmediately)fiber.unsafeInterruptAsFork(parent.id());fiber.resume(runnable)},0),fiber},onInterruptSignal=()=>{if(!processAll)target-=todos.length,todos=[];interrupted3=!0,interruptAll2()},stepOrExit=batching?step22:exit3,processingFiber=runFiber(async_2((resume22)=>{let pushResult=(res,index)=>{if(res._op==="Blocked")residual.push(res);else if(results.push({index,exit:res}),res._op==="Failure"&&!interrupted3)onInterruptSignal()},next4=()=>{if(todos.length>0){let a=todos.pop(),index=counter62++,returnNextElement=()=>{let a2=todos.pop();return index=counter62++,flatMap82(yieldNow5(),()=>flatMap82(stepOrExit(restore(f(a2,index))),onRes))},onRes=(res)=>{if(todos.length>0){if(pushResult(res,index),todos.length>0)return returnNextElement()}return succeed20(res)},todo=flatMap82(stepOrExit(restore(f(a,index))),onRes),fiber=runFiber(todo);if(startOrder.push(fiber),fibers.add(fiber),interrupted3)fiber.currentScheduler.scheduleTask(()=>{fiber.unsafeInterruptAsFork(parent.id())},0);fiber.addObserver((wrapped)=>{let exit22;if(wrapped._op==="Failure")exit22=wrapped;else exit22=wrapped.effect_instruction_i0;if(joinOrder.push(fiber),fibers.delete(fiber),pushResult(exit22,index),results.length===target)resume22(succeed20(getOrElse6(exitCollectAll2(collectExits(),{parallel:!0}),()=>exitVoid3)));else if(residual.length+results.length===target){let exits=collectExits(),requests=residual.map((blocked22)=>blocked22.effect_instruction_i0).reduce(par2);resume22(succeed20(blocked3(requests,forEachConcurrentDiscard2([getOrElse6(exitCollectAll2(exits,{parallel:!0}),()=>exitVoid3),...residual.map((blocked22)=>blocked22.effect_instruction_i1)],(i)=>i,batching,!0,n))))}else next4()})}};for(let i=0;i<fibersCount;i++)next4()}));return asVoid22(onExit4(flatten62(restore(join32(processingFiber))),exitMatch2({onFailure:(cause22)=>{onInterruptSignal();let target2=residual.length+1,concurrency=Math.min(typeof n==="number"?n:residual.length,residual.length),toPop=Array.from(residual);return async_2((cb)=>{let exits=[],count6=0,index=0,check3=(index2,hitNext)=>(exit22)=>{if(exits[index2]=exit22,count6++,count6===target2)cb(exitSucceed3(exitFailCause3(cause22)));if(toPop.length>0&&hitNext)next4()},next4=()=>{runFiber(toPop.pop(),!0).addObserver(check3(index,!0)),index++};processingFiber.addObserver(check3(index,!1)),index++;for(let i=0;i<concurrency;i++)next4()})},onSuccess:()=>forEachSequential2(joinOrder,(f2)=>f2.inheritAll)})))}))),forEachParN2=(self,n,f,batching)=>suspend13(()=>{let as32=fromIterable22(self),array32=Array(as32.length);return zipRight22(forEachConcurrentDiscard2(as32,(a,i)=>map92(f(a,i),(b)=>array32[i]=b),batching,!1,n),succeed20(array32))}),fork4=(self)=>withFiberRuntime3((state,status2)=>succeed20(unsafeFork3(self,state,status2.runtimeFlags))),forkDaemon3=(self)=>forkWithScopeOverride2(self,globalScope2),forkWithErrorHandler3=dual2(2,(self,handler)=>fork4(onError5(self,(cause22)=>{let either32=failureOrCause3(cause22);switch(either32._tag){case"Left":return handler(either32.left);case"Right":return failCause15(either32.right)}}))),unsafeFork3=(effect4,parentFiber,parentRuntimeFlags,overrideScope=null)=>{let childFiber=unsafeMakeChildFiber2(effect4,parentFiber,parentRuntimeFlags,overrideScope);return childFiber.resume(effect4),childFiber},unsafeForkUnstarted2=(effect4,parentFiber,parentRuntimeFlags,overrideScope=null)=>{return unsafeMakeChildFiber2(effect4,parentFiber,parentRuntimeFlags,overrideScope)},unsafeMakeChildFiber2=(effect4,parentFiber,parentRuntimeFlags,overrideScope=null)=>{let childId=unsafeMake32(),parentFiberRefs=parentFiber.getFiberRefs(),childFiberRefs=forkAs2(parentFiberRefs,childId),childFiber=new FiberRuntime2(childId,childFiberRefs,parentRuntimeFlags),childContext=getOrDefault3(childFiberRefs,currentContext3),supervisor=childFiber.currentSupervisor;return supervisor.onStart(childContext,effect4,some22(parentFiber),childFiber),childFiber.addObserver((exit22)=>supervisor.onEnd(exit22,childFiber)),(overrideScope!==null?overrideScope:pipe2(parentFiber.getFiberRef(currentForkScopeOverride2),getOrElse6(()=>parentFiber.scope()))).add(parentRuntimeFlags,childFiber),childFiber},forkWithScopeOverride2=(self,scopeOverride)=>withFiberRuntime3((parentFiber,parentStatus)=>succeed20(unsafeFork3(self,parentFiber,parentStatus.runtimeFlags,scopeOverride))),mergeAll32=dual2((args22)=>isFunction22(args22[2]),(elements,zero22,f,options)=>matchSimple2(options?.concurrency,()=>fromIterable22(elements).reduce((acc,a,i)=>zipWith42(acc,a,(acc2,a2)=>f(acc2,a2,i)),succeed20(zero22)),()=>flatMap82(make282(zero22),(acc)=>flatMap82(forEach62(elements,(effect4,i)=>flatMap82(effect4,(a)=>update32(acc,(b)=>f(b,a,i))),options),()=>get122(acc))))),partition42=dual2((args22)=>isIterable2(args22[0]),(elements,f,options)=>pipe2(forEach62(elements,(a,i)=>either22(f(a,i)),options),map92((chunk22)=>partitionMap4(chunk22,identity5)))),validateAll3=dual2((args22)=>isIterable2(args22[0]),(elements,f,options)=>flatMap82(partition42(elements,f,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([es,bs])=>isNonEmptyArray22(es)?fail22(es):options?.discard?void_22:succeed20(bs))),raceAll5=(all42)=>withFiberRuntime3((state,status2)=>async_2((resume22)=>{let fibers=new Set,winner,failures22=empty162,interruptAll2=()=>{for(let fiber of fibers)fiber.unsafeInterruptAsFork(state.id())},latch=!1,empty242=!0;for(let self of all42){empty242=!1;let fiber=unsafeFork3(interruptible22(self),state,status2.runtimeFlags);if(fibers.add(fiber),fiber.addObserver((exit22)=>{if(fibers.delete(fiber),!winner)if(exit22._tag==="Success")latch=!0,winner=fiber,failures22=empty162,interruptAll2();else failures22=parallel4(exit22.cause,failures22);if(latch&&fibers.size===0)resume22(winner?zipRight22(inheritAll3(winner),winner.unsafePoll()):failCause15(failures22))}),winner)break}if(empty242)return resume22(dieSync8(()=>new IllegalArgumentException3("Received an empty collection of effects")));return latch=!0,interruptAllAs2(fibers,state.id())})),reduceEffect5=dual2((args22)=>isIterable2(args22[0])&&!isEffect3(args22[0]),(elements,zero22,f,options)=>matchSimple2(options?.concurrency,()=>fromIterable22(elements).reduce((acc,a,i)=>zipWith42(acc,a,(acc2,a2)=>f(acc2,a2,i)),zero22),()=>suspend13(()=>pipe2(mergeAll32([zero22,...elements],none22(),(acc,elem,i)=>{switch(acc._tag){case"None":return some22(elem);case"Some":return some22(f(acc.value,elem,i))}},options),map92((option22)=>{switch(option22._tag){case"None":throw Error("BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues");case"Some":return option22.value}}))))),parallelFinalizers3=(self)=>contextWithEffect5((context22)=>match22(getOption22(context22,scopeTag2),{onNone:()=>self,onSome:(scope5)=>{switch(scope5.strategy._tag){case"Parallel":return self;case"Sequential":case"ParallelN":return flatMap82(scopeFork2(scope5,parallel32),(inner)=>scopeExtend2(self,inner))}}})),parallelNFinalizers2=(parallelism)=>(self)=>contextWithEffect5((context22)=>match22(getOption22(context22,scopeTag2),{onNone:()=>self,onSome:(scope5)=>{if(scope5.strategy._tag==="ParallelN"&&scope5.strategy.parallelism===parallelism)return self;return flatMap82(scopeFork2(scope5,parallelN22(parallelism)),(inner)=>scopeExtend2(self,inner))}})),finalizersMask3=(strategy)=>(self)=>finalizersMaskInternal2(strategy,!0)(self),finalizersMaskInternal2=(strategy,concurrentFinalizers)=>(self)=>contextWithEffect5((context22)=>match22(getOption22(context22,scopeTag2),{onNone:()=>self(identity5),onSome:(scope5)=>{if(concurrentFinalizers===!0){let patch92=strategy._tag==="Parallel"?parallelFinalizers3:strategy._tag==="Sequential"?sequentialFinalizers3:parallelNFinalizers2(strategy.parallelism);switch(scope5.strategy._tag){case"Parallel":return patch92(self(parallelFinalizers3));case"Sequential":return patch92(self(sequentialFinalizers3));case"ParallelN":return patch92(self(parallelNFinalizers2(scope5.strategy.parallelism)))}}else return self(identity5)}})),scopeWith3=(f)=>flatMap82(scopeTag2,f),scopedWith6=(f)=>flatMap82(scopeMake2(),(scope5)=>onExit4(f(scope5),(exit22)=>scope5.close(exit22))),scopedEffect2=(effect4)=>flatMap82(scopeMake2(),(scope5)=>scopeUse2(effect4,scope5)),sequentialFinalizers3=(self)=>contextWithEffect5((context22)=>match22(getOption22(context22,scopeTag2),{onNone:()=>self,onSome:(scope5)=>{switch(scope5.strategy._tag){case"Sequential":return self;case"Parallel":case"ParallelN":return flatMap82(scopeFork2(scope5,sequential32),(inner)=>scopeExtend2(self,inner))}}})),tagMetricsScoped3=(key,value)=>labelMetricsScoped3([make292(key,value)]),labelMetricsScoped3=(labels)=>fiberRefLocallyScopedWith4(currentMetricLabels2,(old)=>union10(old,labels)),using3=dual2(2,(self,use)=>scopedWith6((scope5)=>flatMap82(scopeExtend2(self,scope5),use))),validate5=dual2((args22)=>isEffect3(args22[1]),(self,that,options)=>validateWith3(self,that,(a,b)=>[a,b],options)),validateWith3=dual2((args22)=>isEffect3(args22[1]),(self,that,f,options)=>flatten62(zipWithOptions2(exit3(self),exit3(that),(ea,eb)=>exitZipWith2(ea,eb,{onSuccess:f,onFailure:(ca,cb)=>options?.concurrent?parallel4(ca,cb):sequential4(ca,cb)}),options))),validateFirst3=dual2((args22)=>isIterable2(args22[0]),(elements,f,options)=>flip3(forEach62(elements,(a,i)=>flip3(f(a,i)),options))),withClockScoped3=(c)=>fiberRefLocallyScopedWith4(currentServices2,add22(clockTag2,c)),withRandomScoped3=(value)=>fiberRefLocallyScopedWith4(currentServices2,add22(randomTag2,value)),withConfigProviderScoped3=(provider)=>fiberRefLocallyScopedWith4(currentServices2,add22(configProviderTag2,provider)),withEarlyRelease3=(self)=>scopeWith3((parent)=>flatMap82(scopeFork2(parent,sequential22),(child)=>pipe2(self,scopeExtend2(child),map92((value)=>[fiberIdWith3((fiberId22)=>scopeClose2(child,exitInterrupt3(fiberId22))),value])))),zipOptions2=dual2((args22)=>isEffect3(args22[1]),(self,that,options)=>zipWithOptions2(self,that,(a,b)=>[a,b],options)),zipLeftOptions2=dual2((args22)=>isEffect3(args22[1]),(self,that,options)=>{if(options?.concurrent!==!0&&(options?.batching===void 0||options.batching===!1))return zipLeft22(self,that);return zipWithOptions2(self,that,(a,_)=>a,options)}),zipRightOptions2=dual2((args22)=>isEffect3(args22[1]),(self,that,options)=>{if(options?.concurrent!==!0&&(options?.batching===void 0||options.batching===!1))return zipRight22(self,that);return zipWithOptions2(self,that,(_,b)=>b,options)}),zipWithOptions2=dual2((args22)=>isEffect3(args22[1]),(self,that,f,options)=>map92(all32([self,that],{concurrency:options?.concurrent?2:1,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([a,a2])=>f(a,a2))),withRuntimeFlagsScoped2=(update52)=>{if(update52===empty142)return void_22;return pipe2(runtimeFlags2,flatMap82((runtimeFlags22)=>{let updatedRuntimeFlags=patch42(runtimeFlags22,update52),revertRuntimeFlags=diff42(updatedRuntimeFlags,runtimeFlags22);return pipe2(updateRuntimeFlags3(update52),zipRight22(addFinalizer4(()=>updateRuntimeFlags3(revertRuntimeFlags))),asVoid22)}),uninterruptible3)},scopeTag2=GenericTag2("effect/Scope"),scope5=scopeTag2,scopeUnsafeAddFinalizer2=(scope22,fin)=>{if(scope22.state._tag==="Open")scope22.state.finalizers.set({},fin)},ScopeImplProto2={[ScopeTypeId2]:ScopeTypeId2,[CloseableScopeTypeId2]:CloseableScopeTypeId2,pipe(){return pipeArguments2(this,arguments)},fork(strategy){return sync14(()=>{let newScope=scopeUnsafeMake2(strategy);if(this.state._tag==="Closed")return newScope.state=this.state,newScope;let key={},fin=(exit22)=>newScope.close(exit22);return this.state.finalizers.set(key,fin),scopeUnsafeAddFinalizer2(newScope,(_)=>sync14(()=>{if(this.state._tag==="Open")this.state.finalizers.delete(key)})),newScope})},close(exit22){return suspend13(()=>{if(this.state._tag==="Closed")return void_22;let finalizers=Array.from(this.state.finalizers.values()).reverse();if(this.state={_tag:"Closed",exit:exit22},finalizers.length===0)return void_22;return isSequential2(this.strategy)?pipe2(forEachSequential2(finalizers,(fin)=>exit3(fin(exit22))),flatMap82((results)=>pipe2(exitCollectAll2(results),map27(exitAsVoid2),getOrElse6(()=>exitVoid3)))):isParallel2(this.strategy)?pipe2(forEachParUnbounded2(finalizers,(fin)=>exit3(fin(exit22)),!1),flatMap82((results)=>pipe2(exitCollectAll2(results,{parallel:!0}),map27(exitAsVoid2),getOrElse6(()=>exitVoid3)))):pipe2(forEachParN2(finalizers,this.strategy.parallelism,(fin)=>exit3(fin(exit22)),!1),flatMap82((results)=>pipe2(exitCollectAll2(results,{parallel:!0}),map27(exitAsVoid2),getOrElse6(()=>exitVoid3))))})},addFinalizer(fin){return suspend13(()=>{if(this.state._tag==="Closed")return fin(this.state.exit);return this.state.finalizers.set({},fin),void_22})}},scopeUnsafeMake2=(strategy=sequential22)=>{let scope22=Object.create(ScopeImplProto2);return scope22.strategy=strategy,scope22.state={_tag:"Open",finalizers:new Map},scope22},scopeMake2=(strategy=sequential22)=>sync14(()=>scopeUnsafeMake2(strategy)),scopeExtend2=dual2(2,(effect4,scope22)=>mapInputContext8(effect4,merge32(make56(scopeTag2,scope22)))),scopeUse2=dual2(2,(effect4,scope22)=>pipe2(effect4,scopeExtend2(scope22),onExit4((exit22)=>scope22.close(exit22)))),fiberRefUnsafeMakeSupervisor2=(initial)=>fiberRefUnsafeMakePatch2(initial,{differ:differ22,fork:empty232}),fiberRefLocallyScoped3=dual2(2,(self,value)=>asVoid22(acquireRelease5(flatMap82(fiberRefGet2(self),(oldValue)=>as22(fiberRefSet2(self,value),oldValue)),(oldValue)=>fiberRefSet2(self,oldValue)))),fiberRefLocallyScopedWith4=dual2(2,(self,f)=>fiberRefGetWith2(self,(a)=>fiberRefLocallyScoped3(self,f(a)))),currentRuntimeFlags2=fiberRefUnsafeMakeRuntimeFlags2(none52),currentSupervisor2=fiberRefUnsafeMakeSupervisor2(none82),fiberAwaitAll2=(fibers)=>forEach62(fibers,_await22),fiberAll2=(fibers)=>{return{...CommitPrototype22,commit(){return join32(this)},[FiberTypeId2]:fiberVariance22,id:()=>fromIterable22(fibers).reduce((id2,fiber)=>combine32(id2,fiber.id()),none42),await:exit3(forEachParUnbounded2(fibers,(fiber)=>flatten62(fiber.await),!1)),children:map92(forEachParUnbounded2(fibers,(fiber)=>fiber.children,!1),flatten22),inheritAll:forEachSequentialDiscard2(fibers,(fiber)=>fiber.inheritAll),poll:map92(forEachSequential2(fibers,(fiber)=>fiber.poll),reduceRight5(some22(exitSucceed3([])),(optionB,optionA)=>{switch(optionA._tag){case"None":return none22();case"Some":switch(optionB._tag){case"None":return none22();case"Some":return some22(exitZipWith2(optionA.value,optionB.value,{onSuccess:(a,chunk22)=>[a,...chunk22],onFailure:parallel4}))}}})),interruptAsFork:(fiberId22)=>forEachSequentialDiscard2(fibers,(fiber)=>fiber.interruptAsFork(fiberId22))}},raceWith4=dual2(3,(self,other,options)=>raceFibersWith2(self,other,{onSelfWin:(winner,loser)=>flatMap82(winner.await,(exit22)=>{switch(exit22._tag){case OP_SUCCESS2:return flatMap82(winner.inheritAll,()=>options.onSelfDone(exit22,loser));case OP_FAILURE2:return options.onSelfDone(exit22,loser)}}),onOtherWin:(winner,loser)=>flatMap82(winner.await,(exit22)=>{switch(exit22._tag){case OP_SUCCESS2:return flatMap82(winner.inheritAll,()=>options.onOtherDone(exit22,loser));case OP_FAILURE2:return options.onOtherDone(exit22,loser)}})})),disconnect3=(self)=>uninterruptibleMask4((restore)=>fiberIdWith3((fiberId22)=>flatMap82(forkDaemon3(restore(self)),(fiber)=>pipe2(restore(join32(fiber)),onInterrupt3(()=>pipe2(fiber,interruptAsFork2(fiberId22))))))),race5=dual2(2,(self,that)=>fiberIdWith3((parentFiberId)=>raceWith4(self,that,{onSelfDone:(exit22,right32)=>exitMatchEffect2(exit22,{onFailure:(cause22)=>pipe2(join32(right32),mapErrorCause6((cause222)=>parallel4(cause22,cause222))),onSuccess:(value)=>pipe2(right32,interruptAsFiber2(parentFiberId),as22(value))}),onOtherDone:(exit22,left32)=>exitMatchEffect2(exit22,{onFailure:(cause22)=>pipe2(join32(left32),mapErrorCause6((cause222)=>parallel4(cause222,cause22))),onSuccess:(value)=>pipe2(left32,interruptAsFiber2(parentFiberId),as22(value))})}))),raceFibersWith2=dual2(3,(self,other,options)=>withFiberRuntime3((parentFiber,parentStatus)=>{let parentRuntimeFlags=parentStatus.runtimeFlags,raceIndicator=make112(!0),leftFiber=unsafeMakeChildFiber2(self,parentFiber,parentRuntimeFlags,options.selfScope),rightFiber=unsafeMakeChildFiber2(other,parentFiber,parentRuntimeFlags,options.otherScope);return async_2((cb)=>{leftFiber.addObserver(()=>completeRace2(leftFiber,rightFiber,options.onSelfWin,raceIndicator,cb)),rightFiber.addObserver(()=>completeRace2(rightFiber,leftFiber,options.onOtherWin,raceIndicator,cb)),leftFiber.startFork(self),rightFiber.startFork(other)},combine32(leftFiber.id(),rightFiber.id()))})),completeRace2=(winner,loser,cont,ab,cb)=>{if(compareAndSet2(!0,!1)(ab))cb(cont(winner,loser))},ensuring9=dual2(2,(self,finalizer3)=>uninterruptibleMask4((restore)=>matchCauseEffect4(restore(self),{onFailure:(cause1)=>matchCauseEffect4(finalizer3,{onFailure:(cause22)=>failCause15(sequential4(cause1,cause22)),onSuccess:()=>failCause15(cause1)}),onSuccess:(a)=>as22(finalizer3,a)}))),invokeWithInterrupt2=(self,entries2,onInterrupt22)=>fiberIdWith3((id2)=>flatMap82(flatMap82(forkDaemon3(interruptible22(self)),(processing)=>async_2((cb)=>{let counts=entries2.map((_)=>_.listeners.count),checkDone=()=>{if(counts.every((count6)=>count6===0)){if(entries2.every((_)=>{if(_.result.state.current._tag==="Pending")return!0;else if(_.result.state.current._tag==="Done"&&exitIsExit2(_.result.state.current.effect)&&_.result.state.current.effect._tag==="Failure"&&isInterrupted3(_.result.state.current.effect.cause))return!0;else return!1}))cleanup.forEach((f)=>f()),onInterrupt22?.(),cb(interruptFiber2(processing))}};processing.addObserver((exit22)=>{cleanup.forEach((f)=>f()),cb(exit22)});let cleanup=entries2.map((r,i)=>{let observer=(count6)=>{counts[i]=count6,checkDone()};return r.listeners.addObserver(observer),()=>r.listeners.removeObserver(observer)});return checkDone(),sync14(()=>{cleanup.forEach((f)=>f())})})),()=>suspend13(()=>{let residual=entries2.flatMap((entry)=>{if(!entry.state.completed)return[entry];return[]});return forEachSequentialDiscard2(residual,(entry)=>complete3(entry.request,exitInterrupt3(id2)))}))),makeSpanScoped3=(name,options)=>{return options=addSpanStackTrace2(options),uninterruptible3(withFiberRuntime3((fiber)=>{let scope22=unsafeGet32(fiber.getFiberRef(currentContext3),scopeTag2),span22=unsafeMakeSpan2(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled3),clock_=get32(fiber.getFiberRef(currentServices2),clockTag2);return as22(scopeAddFinalizerExit2(scope22,(exit22)=>endSpan2(span22,exit22,clock_,timingEnabled)),span22)}))},withTracerScoped3=(value)=>fiberRefLocallyScopedWith4(currentServices2,add22(tracerTag2,value)),withSpanScoped3=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace2(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return flatMap82(makeSpanScoped3(name,addSpanStackTrace2(options)),(span22)=>provideService8(self,spanTag2,span22))}return(self)=>flatMap82(makeSpanScoped3(name,addSpanStackTrace2(options)),(span22)=>provideService8(self,spanTag2,span22))},complete22=(key,exit22,entryStats,timeToLiveMillis)=>struct4({_tag:"Complete",key,exit:exit22,entryStats,timeToLiveMillis}),pending22=(key,deferred)=>struct4({_tag:"Pending",key,deferred}),refreshing2=(deferred,complete32)=>struct4({_tag:"Refreshing",deferred,complete:complete32}),MapKeyTypeId2=Symbol.for("effect/Cache/MapKey");class MapKeyImpl2{current;[MapKeyTypeId2]=MapKeyTypeId2;previous=void 0;next=void 0;constructor(current2){this.current=current2}[symbol3](){return pipe2(hash2(this.current),combine11(hash2(this.previous)),combine11(hash2(this.next)),cached4(this))}[symbol22](that){if(this===that)return!0;return isMapKey2(that)&&equals4(this.current,that.current)&&equals4(this.previous,that.previous)&&equals4(this.next,that.next)}}var makeMapKey2=(current2)=>new MapKeyImpl2(current2),isMapKey2=(u)=>hasProperty2(u,MapKeyTypeId2);class KeySetImpl2{head=void 0;tail=void 0;add(key){if(key!==this.tail)if(this.tail===void 0)this.head=key,this.tail=key;else{let{previous:previous2,next:next4}=key;if(next4!==void 0)if(key.next=void 0,previous2!==void 0)previous2.next=next4,next4.previous=previous2;else this.head=next4,this.head.previous=void 0;this.tail.next=key,key.previous=this.tail,this.tail=key}}remove(){let key=this.head;if(key!==void 0){let next4=key.next;if(next4!==void 0)key.next=void 0,this.head=next4,this.head.previous=void 0;else this.head=void 0,this.tail=void 0}return key}}var makeKeySet2=()=>new KeySetImpl2,makeCacheState2=(map112,keys32,accesses,updating,hits,misses)=>({map:map112,keys:keys32,accesses,updating,hits,misses}),initialCacheState2=()=>makeCacheState2(empty172(),makeKeySet2(),unbounded8(),make112(!1),0,0),CacheSymbolKey2="effect/Cache",CacheTypeId2=Symbol.for(CacheSymbolKey2),cacheVariance2={_Key:(_)=>_,_Error:(_)=>_,_Value:(_)=>_},ConsumerCacheSymbolKey2="effect/ConsumerCache",ConsumerCacheTypeId2=Symbol.for(ConsumerCacheSymbolKey2),consumerCacheVariance2={_Key:(_)=>_,_Error:(_)=>_,_Value:(_)=>_},makeCacheStats2=(options)=>options,makeEntryStats2=(loadedMillis)=>({loadedMillis});class CacheImpl2{capacity;context;fiberId;lookup;timeToLive;[CacheTypeId2]=cacheVariance2;[ConsumerCacheTypeId2]=consumerCacheVariance2;cacheState;constructor(capacity22,context22,fiberId22,lookup,timeToLive){this.capacity=capacity22,this.context=context22,this.fiberId=fiberId22,this.lookup=lookup,this.timeToLive=timeToLive,this.cacheState=initialCacheState2()}get(key){return map92(this.getEither(key),merge11)}get cacheStats(){return sync14(()=>makeCacheStats2({hits:this.cacheState.hits,misses:this.cacheState.misses,size:size52(this.cacheState.map)}))}getOption(key){return suspend13(()=>match22(get82(this.cacheState.map,key),{onNone:()=>{let mapKey=makeMapKey2(key);return this.trackAccess(mapKey),this.trackMiss(),succeed20(none22())},onSome:(value)=>this.resolveMapValue(value)}))}getOptionComplete(key){return suspend13(()=>match22(get82(this.cacheState.map,key),{onNone:()=>{let mapKey=makeMapKey2(key);return this.trackAccess(mapKey),this.trackMiss(),succeed20(none22())},onSome:(value)=>this.resolveMapValue(value,!0)}))}contains(key){return sync14(()=>has42(this.cacheState.map,key))}entryStats(key){return sync14(()=>{let option22=get82(this.cacheState.map,key);if(isSome22(option22))switch(option22.value._tag){case"Complete":{let loaded=option22.value.entryStats.loadedMillis;return some22(makeEntryStats2(loaded))}case"Pending":return none22();case"Refreshing":{let loaded=option22.value.complete.entryStats.loadedMillis;return some22(makeEntryStats2(loaded))}}return none22()})}getEither(key){return suspend13(()=>{let k=key,mapKey=void 0,deferred=void 0,value=getOrUndefined2(get82(this.cacheState.map,k));if(value===void 0)if(deferred=unsafeMake42(this.fiberId),mapKey=makeMapKey2(k),has42(this.cacheState.map,k))value=getOrUndefined2(get82(this.cacheState.map,k));else set42(this.cacheState.map,k,pending22(mapKey,deferred));if(value===void 0)return this.trackAccess(mapKey),this.trackMiss(),map92(this.lookupValueOf(key,deferred),right22);else return flatMap82(this.resolveMapValue(value),match22({onNone:()=>this.getEither(key),onSome:(value2)=>succeed20(left22(value2))}))})}invalidate(key){return sync14(()=>{remove62(this.cacheState.map,key)})}invalidateWhen(key,when22){return sync14(()=>{let value=get82(this.cacheState.map,key);if(isSome22(value)&&value.value._tag==="Complete"){if(value.value.exit._tag==="Success"){if(when22(value.value.exit.value))remove62(this.cacheState.map,key)}}})}get invalidateAll(){return sync14(()=>{this.cacheState.map=empty172()})}refresh(key){return clockWith32((clock22)=>suspend13(()=>{let k=key,deferred=unsafeMake42(this.fiberId),value=getOrUndefined2(get82(this.cacheState.map,k));if(value===void 0)if(has42(this.cacheState.map,k))value=getOrUndefined2(get82(this.cacheState.map,k));else set42(this.cacheState.map,k,pending22(makeMapKey2(k),deferred));if(value===void 0)return asVoid22(this.lookupValueOf(key,deferred));else switch(value._tag){case"Complete":{if(this.hasExpired(clock22,value.timeToLiveMillis)){let found=getOrUndefined2(get82(this.cacheState.map,k));if(equals4(found,value))remove62(this.cacheState.map,k);return asVoid22(this.get(key))}return pipe2(this.lookupValueOf(key,deferred),when5(()=>{let current2=getOrUndefined2(get82(this.cacheState.map,k));if(equals4(current2,value)){let mapValue=refreshing2(deferred,value);return set42(this.cacheState.map,k,mapValue),!0}return!1}),asVoid22)}case"Pending":return _await4(value.deferred);case"Refreshing":return _await4(value.deferred)}}))}set(key,value){return clockWith32((clock22)=>sync14(()=>{let now=clock22.unsafeCurrentTimeMillis(),k=key,lookupResult=succeed32(value),mapValue=complete22(makeMapKey2(k),lookupResult,makeEntryStats2(now),now+toMillis2(decode2(this.timeToLive(lookupResult))));set42(this.cacheState.map,k,mapValue)}))}get size(){return sync14(()=>{return size52(this.cacheState.map)})}get values(){return sync14(()=>{let values3=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")values3.push(entry[1].exit.value);return values3})}get entries(){return sync14(()=>{let values3=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")values3.push([entry[0],entry[1].exit.value]);return values3})}get keys(){return sync14(()=>{let keys32=[];for(let entry of this.cacheState.map)if(entry[1]._tag==="Complete"&&entry[1].exit._tag==="Success")keys32.push(entry[0]);return keys32})}resolveMapValue(value,ignorePending=!1){return clockWith32((clock22)=>{switch(value._tag){case"Complete":{if(this.trackAccess(value.key),this.hasExpired(clock22,value.timeToLiveMillis))return remove62(this.cacheState.map,value.key.current),succeed20(none22());return this.trackHit(),map92(value.exit,some22)}case"Pending":{if(this.trackAccess(value.key),this.trackHit(),ignorePending)return succeed20(none22());return map92(_await4(value.deferred),some22)}case"Refreshing":{if(this.trackAccess(value.complete.key),this.trackHit(),this.hasExpired(clock22,value.complete.timeToLiveMillis)){if(ignorePending)return succeed20(none22());return map92(_await4(value.deferred),some22)}return map92(value.complete.exit,some22)}}})}trackHit(){this.cacheState.hits=this.cacheState.hits+1}trackMiss(){this.cacheState.misses=this.cacheState.misses+1}trackAccess(key){if(offer6(this.cacheState.accesses,key),compareAndSet2(this.cacheState.updating,!1,!0)){let loop22=!0;while(loop22){let key2=poll22(this.cacheState.accesses,EmptyMutableQueue2);if(key2===EmptyMutableQueue2)loop22=!1;else this.cacheState.keys.add(key2)}let size62=size52(this.cacheState.map);loop22=size62>this.capacity;while(loop22){let key2=this.cacheState.keys.remove();if(key2!==void 0){if(has42(this.cacheState.map,key2.current))remove62(this.cacheState.map,key2.current),size62=size62-1,loop22=size62>this.capacity}else loop22=!1}set22(this.cacheState.updating,!1)}}hasExpired(clock22,timeToLiveMillis){return clock22.unsafeCurrentTimeMillis()>timeToLiveMillis}lookupValueOf(input,deferred){return clockWith32((clock22)=>suspend13(()=>{let key=input;return pipe2(this.lookup(input),provideContext8(this.context),exit3,flatMap82((exit22)=>{let now=clock22.unsafeCurrentTimeMillis(),stats=makeEntryStats2(now),value=complete22(makeMapKey2(key),exit22,stats,now+toMillis2(decode2(this.timeToLive(exit22))));return set42(this.cacheState.map,key,value),zipRight22(done22(deferred,exit22),exit22)}),onInterrupt3(()=>zipRight22(interrupt32(deferred),sync14(()=>{remove62(this.cacheState.map,key)}))))}))}}var unsafeMakeWith2=(capacity22,lookup,timeToLive)=>new CacheImpl2(capacity22,empty32(),none32,lookup,(exit22)=>decode2(timeToLive(exit22))),fail52=fail19,die42=die12,interrupt52=interrupt9,isDieType22=isDieType3,isInterrupted22=isInterrupted3,isInterruptedOnly22=isInterruptedOnly3,interruptors22=interruptors3,failureOrCause22=failureOrCause3,flipCauseOption22=flipCauseOption3,map112=map82,squash2=causeSquash2,IllegalArgumentException22=IllegalArgumentException3,NoSuchElementException22=NoSuchElementException3,RuntimeException22=RuntimeException3,isRuntimeException22=isRuntimeException3,exports_Effect2={};__export2(exports_Effect2,{zipWith:()=>zipWith62,zipRight:()=>zipRight42,zipLeft:()=>zipLeft32,zip:()=>zip62,yieldNow:()=>yieldNow42,withUnhandledErrorLogLevel:()=>withUnhandledErrorLogLevel22,withTracerTiming:()=>withTracerTiming22,withTracerScoped:()=>withTracerScoped22,withTracerEnabled:()=>withTracerEnabled22,withTracer:()=>withTracer22,withSpanScoped:()=>withSpanScoped22,withSpan:()=>withSpan32,withSchedulingPriority:()=>withSchedulingPriority22,withScheduler:()=>withScheduler22,withRuntimeFlagsPatchScoped:()=>withRuntimeFlagsPatchScoped2,withRuntimeFlagsPatch:()=>withRuntimeFlagsPatch2,withRequestCaching:()=>withRequestCaching22,withRequestCache:()=>withRequestCache22,withRequestBatching:()=>withRequestBatching22,withRandomScoped:()=>withRandomScoped22,withRandomFixed:()=>withRandomFixed2,withRandom:()=>withRandom22,withParentSpan:()=>withParentSpan32,withMetric:()=>withMetric22,withMaxOpsBeforeYield:()=>withMaxOpsBeforeYield22,withLogSpan:()=>withLogSpan22,withFiberRuntime:()=>withFiberRuntime22,withExecutionPlan:()=>withExecutionPlan22,withEarlyRelease:()=>withEarlyRelease22,withConsoleScoped:()=>withConsoleScoped22,withConsole:()=>withConsole22,withConfigProviderScoped:()=>withConfigProviderScoped22,withConfigProvider:()=>withConfigProvider22,withConcurrency:()=>withConcurrency22,withClockScoped:()=>withClockScoped22,withClock:()=>withClock22,whileLoop:()=>whileLoop22,whenRef:()=>whenRef22,whenLogLevel:()=>whenLogLevel22,whenFiberRef:()=>whenFiberRef22,whenEffect:()=>whenEffect22,when:()=>when22,void:()=>_void2,validateWith:()=>validateWith22,validateFirst:()=>validateFirst22,validateAll:()=>validateAll22,validate:()=>validate22,using:()=>using22,useSpan:()=>useSpan22,updateService:()=>updateService22,updateFiberRefs:()=>updateFiberRefs22,unsandbox:()=>unsandbox22,unsafeMakeSemaphore:()=>unsafeMakeSemaphore22,unsafeMakeLatch:()=>unsafeMakeLatch22,unlessEffect:()=>unlessEffect22,unless:()=>unless22,uninterruptibleMask:()=>uninterruptibleMask32,uninterruptible:()=>uninterruptible22,tryPromise:()=>tryPromise22,tryMapPromise:()=>tryMapPromise22,tryMap:()=>tryMap22,try:()=>try_22,transposeOption:()=>transposeOption2,transposeMapOption:()=>transposeMapOption2,transplant:()=>transplant22,tracerWith:()=>tracerWith42,tracer:()=>tracer22,timeoutTo:()=>timeoutTo22,timeoutOption:()=>timeoutOption22,timeoutFailCause:()=>timeoutFailCause22,timeoutFail:()=>timeoutFail22,timeout:()=>timeout22,timedWith:()=>timedWith22,timed:()=>timed22,tapErrorTag:()=>tapErrorTag22,tapErrorCause:()=>tapErrorCause32,tapError:()=>tapError32,tapDefect:()=>tapDefect22,tapBoth:()=>tapBoth22,tap:()=>tap42,takeWhile:()=>takeWhile32,takeUntil:()=>takeUntil22,tagMetricsScoped:()=>tagMetricsScoped22,tagMetrics:()=>tagMetrics22,sync:()=>sync32,suspend:()=>suspend32,supervised:()=>supervised22,summarized:()=>summarized22,succeedSome:()=>succeedSome22,succeedNone:()=>succeedNone22,succeed:()=>succeed82,step:()=>step32,spanLinks:()=>spanLinks22,spanAnnotations:()=>spanAnnotations22,sleep:()=>sleep42,setFiberRefs:()=>setFiberRefs22,serviceOptional:()=>serviceOptional22,serviceOption:()=>serviceOption22,serviceMembers:()=>serviceMembers22,serviceFunctions:()=>serviceFunctions22,serviceFunctionEffect:()=>serviceFunctionEffect22,serviceFunction:()=>serviceFunction22,serviceConstants:()=>serviceConstants22,sequentialFinalizers:()=>sequentialFinalizers22,scopedWith:()=>scopedWith22,scoped:()=>scoped22,scopeWith:()=>scopeWith22,scope:()=>scope32,scheduleFrom:()=>scheduleFrom2,scheduleForked:()=>scheduleForked22,schedule:()=>schedule4,sandbox:()=>sandbox22,runtime:()=>runtime32,runSyncExit:()=>runSyncExit2,runSync:()=>runSync2,runRequestBlock:()=>runRequestBlock22,runPromiseExit:()=>runPromiseExit3,runPromise:()=>runPromise2,runFork:()=>runFork22,runCallback:()=>runCallback2,retryOrElse:()=>retryOrElse2,retry:()=>retry22,request:()=>request2,replicateEffect:()=>replicateEffect22,replicate:()=>replicate22,repeatOrElse:()=>repeatOrElse2,repeatN:()=>repeatN22,repeat:()=>repeat6,reduceWhile:()=>reduceWhile22,reduceRight:()=>reduceRight42,reduceEffect:()=>reduceEffect22,reduce:()=>reduce102,randomWith:()=>randomWith22,random:()=>random32,raceWith:()=>raceWith22,raceFirst:()=>raceFirst22,raceAll:()=>raceAll22,race:()=>race22,provideServiceEffect:()=>provideServiceEffect22,provideService:()=>provideService22,provide:()=>provide22,promise:()=>promise22,patchRuntimeFlags:()=>patchRuntimeFlags2,patchFiberRefs:()=>patchFiberRefs22,partition:()=>partition52,parallelFinalizers:()=>parallelFinalizers22,parallelErrors:()=>parallelErrors22,orElseSucceed:()=>orElseSucceed22,orElseFail:()=>orElseFail22,orElse:()=>orElse52,orDieWith:()=>orDieWith22,orDie:()=>orDie32,optionFromOptional:()=>optionFromOptional22,option:()=>option22,once:()=>once32,onInterrupt:()=>onInterrupt22,onExit:()=>onExit32,onError:()=>onError22,none:()=>none92,never:()=>never32,negate:()=>negate22,metricLabels:()=>metricLabels22,mergeAll:()=>mergeAll52,merge:()=>merge72,matchEffect:()=>matchEffect22,matchCauseEffect:()=>matchCauseEffect32,matchCause:()=>matchCause32,match:()=>match122,mapInputContext:()=>mapInputContext22,mapErrorCause:()=>mapErrorCause22,mapError:()=>mapError32,mapBoth:()=>mapBoth32,mapAccum:()=>mapAccum42,map:()=>map152,makeSpanScoped:()=>makeSpanScoped22,makeSpan:()=>makeSpan22,makeSemaphore:()=>makeSemaphore22,makeLatch:()=>makeLatch22,loop:()=>loop22,logWithLevel:()=>logWithLevel22,logWarning:()=>logWarning22,logTrace:()=>logTrace22,logInfo:()=>logInfo22,logFatal:()=>logFatal22,logError:()=>logError22,logDebug:()=>logDebug22,logAnnotations:()=>logAnnotations22,log:()=>log22,locallyWith:()=>locallyWith3,locallyScopedWith:()=>locallyScopedWith2,locallyScoped:()=>locallyScoped3,locally:()=>locally3,linkSpans:()=>linkSpans22,linkSpanCurrent:()=>linkSpanCurrent22,liftPredicate:()=>liftPredicate32,let:()=>let_42,labelMetricsScoped:()=>labelMetricsScoped22,labelMetrics:()=>labelMetrics22,iterate:()=>iterate22,isSuccess:()=>isSuccess32,isFailure:()=>isFailure42,isEffect:()=>isEffect22,intoDeferred:()=>intoDeferred22,interruptibleMask:()=>interruptibleMask22,interruptible:()=>interruptible42,interruptWith:()=>interruptWith22,interrupt:()=>interrupt72,inheritFiberRefs:()=>inheritFiberRefs22,ignoreLogged:()=>ignoreLogged22,ignore:()=>ignore22,if:()=>if_22,head:()=>head42,getRuntimeFlags:()=>getRuntimeFlags2,getFiberRefs:()=>getFiberRefs2,gen:()=>gen32,functionWithSpan:()=>functionWithSpan22,fromNullable:()=>fromNullable32,fromFiberEffect:()=>fromFiberEffect22,fromFiber:()=>fromFiber22,forkWithErrorHandler:()=>forkWithErrorHandler22,forkScoped:()=>forkScoped22,forkIn:()=>forkIn22,forkDaemon:()=>forkDaemon22,forkAll:()=>forkAll22,fork:()=>fork32,forever:()=>forever32,forEach:()=>forEach72,fnUntraced:()=>fnUntraced22,fn:()=>fn2,flipWith:()=>flipWith22,flip:()=>flip22,flatten:()=>flatten92,flatMap:()=>flatMap112,firstSuccessOf:()=>firstSuccessOf22,findFirst:()=>findFirst62,finalizersMask:()=>finalizersMask22,filterOrFail:()=>filterOrFail22,filterOrElse:()=>filterOrElse22,filterOrDieMessage:()=>filterOrDieMessage22,filterOrDie:()=>filterOrDie22,filterMap:()=>filterMap62,filterEffectOrFail:()=>filterEffectOrFail22,filterEffectOrElse:()=>filterEffectOrElse22,filter:()=>filter82,fiberIdWith:()=>fiberIdWith22,fiberId:()=>fiberId22,failSync:()=>failSync32,failCauseSync:()=>failCauseSync32,failCause:()=>failCause82,fail:()=>fail92,exit:()=>exit22,exists:()=>exists32,every:()=>every72,eventually:()=>eventually22,ensuringChildren:()=>ensuringChildren22,ensuringChild:()=>ensuringChild22,ensuring:()=>ensuring22,ensureSuccessType:()=>ensureSuccessType2,ensureRequirementsType:()=>ensureRequirementsType2,ensureErrorType:()=>ensureErrorType2,either:()=>either32,dropWhile:()=>dropWhile32,dropUntil:()=>dropUntil22,disconnect:()=>disconnect22,diffFiberRefs:()=>diffFiberRefs22,dieSync:()=>dieSync32,dieMessage:()=>dieMessage22,die:()=>die62,descriptorWith:()=>descriptorWith22,descriptor:()=>descriptor22,delay:()=>delay22,daemonChildren:()=>daemonChildren22,custom:()=>custom22,currentSpan:()=>currentSpan22,currentParentSpan:()=>currentParentSpan22,contextWithEffect:()=>contextWithEffect22,contextWith:()=>contextWith22,context:()=>context32,consoleWith:()=>consoleWith22,console:()=>console32,configProviderWith:()=>configProviderWith22,clockWith:()=>clockWith42,clock:()=>clock22,checkInterruptible:()=>checkInterruptible22,cause:()=>cause22,catchTags:()=>catchTags22,catchTag:()=>catchTag22,catchSomeDefect:()=>catchSomeDefect22,catchSomeCause:()=>catchSomeCause22,catchSome:()=>catchSome22,catchIf:()=>catchIf22,catchAllDefect:()=>catchAllDefect22,catchAllCause:()=>catchAllCause32,catchAll:()=>catchAll32,catch:()=>_catch22,cachedWithTTL:()=>cachedWithTTL2,cachedInvalidateWithTTL:()=>cachedInvalidateWithTTL22,cachedFunction:()=>cachedFunction22,cached:()=>cached32,cacheRequestResult:()=>cacheRequestResult2,blocked:()=>blocked22,bindTo:()=>bindTo42,bindAll:()=>bindAll22,bind:()=>bind42,awaitAllChildren:()=>awaitAllChildren22,asyncEffect:()=>asyncEffect22,async:()=>async2,asVoid:()=>asVoid42,asSomeError:()=>asSomeError22,asSome:()=>asSome22,as:()=>as42,ap:()=>ap22,annotateSpans:()=>annotateSpans32,annotateLogsScoped:()=>annotateLogsScoped22,annotateLogs:()=>annotateLogs32,annotateCurrentSpan:()=>annotateCurrentSpan22,andThen:()=>andThen52,allowInterrupt:()=>allowInterrupt22,allWith:()=>allWith22,allSuccesses:()=>allSuccesses22,all:()=>all42,addFinalizer:()=>addFinalizer32,acquireUseRelease:()=>acquireUseRelease22,acquireReleaseInterruptible:()=>acquireReleaseInterruptible22,acquireRelease:()=>acquireRelease22,Tag:()=>Tag32,Service:()=>Service2,EffectTypeId:()=>EffectTypeId32,Do:()=>Do32});var IntervalSymbolKey2="effect/ScheduleInterval",IntervalTypeId2=Symbol.for(IntervalSymbolKey2),empty242={[IntervalTypeId2]:IntervalTypeId2,startMillis:0,endMillis:0},make342=(startMillis,endMillis)=>{if(startMillis>endMillis)return empty242;return{[IntervalTypeId2]:IntervalTypeId2,startMillis,endMillis}},lessThan22=dual2(2,(self,that)=>min22(self,that)===self),min22=dual2(2,(self,that)=>{if(self.endMillis<=that.startMillis)return self;if(that.endMillis<=self.startMillis)return that;if(self.startMillis<that.startMillis)return self;if(that.startMillis<self.startMillis)return that;if(self.endMillis<=that.endMillis)return self;return that}),isEmpty82=(self)=>{return self.startMillis>=self.endMillis},intersect7=dual2(2,(self,that)=>{let start3=Math.max(self.startMillis,that.startMillis),end6=Math.min(self.endMillis,that.endMillis);return make342(start3,end6)}),size72=(self)=>{return millis2(self.endMillis-self.startMillis)},after3=(startMilliseconds)=>{return make342(startMilliseconds,Number.POSITIVE_INFINITY)},make352=make342,empty252=empty242,lessThan32=lessThan22,isEmpty92=isEmpty82,intersect22=intersect7,size82=size72,after22=after3,IntervalsSymbolKey2="effect/ScheduleIntervals",IntervalsTypeId2=Symbol.for(IntervalsSymbolKey2),make362=(intervals)=>{return{[IntervalsTypeId2]:IntervalsTypeId2,intervals}},intersect32=dual2(2,(self,that)=>intersectLoop2(self.intervals,that.intervals,empty42())),intersectLoop2=(_left,_right,_acc)=>{let left32=_left,right32=_right,acc=_acc;while(isNonEmpty6(left32)&&isNonEmpty6(right32)){let interval=pipe2(headNonEmpty22(left32),intersect22(headNonEmpty22(right32))),intervals=isEmpty92(interval)?acc:pipe2(acc,prepend22(interval));if(pipe2(headNonEmpty22(left32),lessThan32(headNonEmpty22(right32))))left32=tailNonEmpty22(left32);else right32=tailNonEmpty22(right32);acc=intervals}return make362(reverse22(acc))},start3=(self)=>{return pipe2(self.intervals,head22,getOrElse6(()=>empty252)).startMillis},end6=(self)=>{return pipe2(self.intervals,head22,getOrElse6(()=>empty252)).endMillis},lessThan42=dual2(2,(self,that)=>start3(self)<start3(that)),isNonEmpty32=(self)=>{return isNonEmpty6(self.intervals)},make372=make362,intersect42=intersect32,start22=start3,end22=end6,lessThan52=lessThan42,isNonEmpty42=isNonEmpty32,OP_CONTINUE3="Continue",OP_DONE22="Done",_continue3=(intervals)=>{return{_tag:OP_CONTINUE3,intervals}},continueWith3=(interval)=>{return{_tag:OP_CONTINUE3,intervals:make372(of22(interval))}},done52={_tag:OP_DONE22},isContinue3=(self)=>{return self._tag===OP_CONTINUE3},isDone42=(self)=>{return self._tag===OP_DONE22},_continue22=_continue3,continueWith22=continueWith3,done62=done52,isContinue22=isContinue3,isDone52=isDone42,Scope2=scopeTag2,addFinalizer22=scopeAddFinalizer2,addFinalizerExit2=scopeAddFinalizerExit2,close2=scopeClose2,extend22=scopeExtend2,fork22=scopeFork2,make382=scopeMake2;class Semaphore2{permits;waiters=new Set;taken=0;constructor(permits){this.permits=permits}get free(){return this.permits-this.taken}take=(n)=>asyncInterrupt2((resume22)=>{if(this.free<n){let observer=()=>{if(this.free<n)return;this.waiters.delete(observer),this.taken+=n,resume22(succeed20(n))};return this.waiters.add(observer),sync14(()=>{this.waiters.delete(observer)})}return this.taken+=n,resume22(succeed20(n))});updateTakenUnsafe(fiber,f){if(this.taken=f(this.taken),this.waiters.size>0)fiber.getFiberRef(currentScheduler3).scheduleTask(()=>{let iter=this.waiters.values(),item=iter.next();while(item.done===!1&&this.free>0)item.value(),item=iter.next()},fiber.getFiberRef(currentSchedulingPriority3));return succeed20(this.free)}updateTaken(f){return withFiberRuntime3((fiber)=>this.updateTakenUnsafe(fiber,f))}resize=(permits)=>asVoid22(withFiberRuntime3((fiber)=>{if(this.permits=permits,this.free<0)return void_22;return this.updateTakenUnsafe(fiber,(taken)=>taken)}));release=(n)=>this.updateTaken((taken)=>taken-n);releaseAll=this.updateTaken((_)=>0);withPermits=(n)=>(self)=>uninterruptibleMask4((restore)=>flatMap82(restore(this.take(n)),(permits)=>ensuring9(restore(self),this.release(permits))));withPermitsIfAvailable=(n)=>(self)=>uninterruptibleMask4((restore)=>suspend13(()=>{if(this.free<n)return succeedNone3;return this.taken+=n,ensuring9(restore(asSome3(self)),this.release(n))}))}var unsafeMakeSemaphore3=(permits)=>new Semaphore2(permits),makeSemaphore3=(permits)=>sync14(()=>unsafeMakeSemaphore3(permits));class Latch2 extends Class4{isOpen;waiters=[];scheduled=!1;constructor(isOpen){super();this.isOpen=isOpen}commit(){return this.await}unsafeSchedule(fiber){if(this.scheduled||this.waiters.length===0)return void_22;return this.scheduled=!0,fiber.currentScheduler.scheduleTask(this.flushWaiters,fiber.getFiberRef(currentSchedulingPriority3)),void_22}flushWaiters=()=>{this.scheduled=!1;let waiters=this.waiters;this.waiters=[];for(let i=0;i<waiters.length;i++)waiters[i](exitVoid3)};open=withFiberRuntime3((fiber)=>{if(this.isOpen)return void_22;return this.isOpen=!0,this.unsafeSchedule(fiber)});unsafeOpen(){if(this.isOpen)return;this.isOpen=!0,this.flushWaiters()}release=withFiberRuntime3((fiber)=>{if(this.isOpen)return void_22;return this.unsafeSchedule(fiber)});await=asyncInterrupt2((resume22)=>{if(this.isOpen)return resume22(void_22);return this.waiters.push(resume22),sync14(()=>{let index=this.waiters.indexOf(resume22);if(index!==-1)this.waiters.splice(index,1)})});unsafeClose(){this.isOpen=!1}close=sync14(()=>{this.isOpen=!1});whenOpen=(self)=>{return zipRight22(this.await,self)}}var unsafeMakeLatch3=(open)=>new Latch2(open??!1),makeLatch3=(open)=>sync14(()=>unsafeMakeLatch3(open)),awaitAllChildren3=(self)=>ensuringChildren3(self,fiberAwaitAll2),cached22=dual2(2,(self,timeToLive)=>map92(cachedInvalidateWithTTL3(self,timeToLive),(tuple3)=>tuple3[0])),cachedInvalidateWithTTL3=dual2(2,(self,timeToLive)=>{let duration5=decode2(timeToLive);return flatMap82(context7(),(env)=>map92(makeSynchronized2(none22()),(cache)=>[provideContext8(getCachedValue2(self,duration5,cache),env),invalidateCache2(cache)]))}),computeCachedValue2=(self,timeToLive,start32)=>{let timeToLiveMillis=toMillis2(decode2(timeToLive));return pipe2(deferredMake2(),tap22((deferred)=>intoDeferred3(self,deferred)),map92((deferred)=>some22([start32+timeToLiveMillis,deferred])))},getCachedValue2=(self,timeToLive,cache)=>uninterruptibleMask4((restore)=>pipe2(clockWith32((clock22)=>clock22.currentTimeMillis),flatMap82((time3)=>updateSomeAndGetEffectSynchronized2(cache,(option22)=>{switch(option22._tag){case"None":return some22(computeCachedValue2(self,timeToLive,time3));case"Some":{let[end32]=option22.value;return end32-time3<=0?some22(computeCachedValue2(self,timeToLive,time3)):none22()}}})),flatMap82((option22)=>isNone22(option22)?dieMessage6("BUG: Effect.cachedInvalidate - please report an issue at https://github.com/Effect-TS/effect/issues"):restore(deferredAwait2(option22.value[1]))))),invalidateCache2=(cache)=>set52(cache,none22()),ensuringChild3=dual2(2,(self,f)=>ensuringChildren3(self,(children2)=>f(fiberAll2(children2)))),ensuringChildren3=dual2(2,(self,children2)=>flatMap82(track2,(supervisor)=>pipe2(supervised3(self,supervisor),ensuring9(flatMap82(supervisor.value,children2))))),forkAll3=dual2((args22)=>isIterable2(args22[0]),(effects,options)=>options?.discard?forEachSequentialDiscard2(effects,fork4):map92(forEachSequential2(effects,fork4),fiberAll2)),forkIn3=dual2(2,(self,scope22)=>withFiberRuntime3((parent,parentStatus)=>{let scopeImpl=scope22,fiber=unsafeFork3(self,parent,parentStatus.runtimeFlags,globalScope2);if(scopeImpl.state._tag==="Open"){let finalizer3=()=>fiberIdWith3((fiberId22)=>equals4(fiberId22,fiber.id())?void_22:asVoid22(interruptFiber2(fiber))),key={};scopeImpl.state.finalizers.set(key,finalizer3),fiber.addObserver(()=>{if(scopeImpl.state._tag==="Closed")return;scopeImpl.state.finalizers.delete(key)})}else fiber.unsafeInterruptAsFork(parent.id());return succeed20(fiber)})),forkScoped3=(self)=>scopeWith3((scope22)=>forkIn3(self,scope22)),fromFiber3=(fiber)=>join32(fiber),fromFiberEffect3=(fiber)=>suspend13(()=>flatMap82(fiber,join32)),memoKeySymbol2=Symbol.for("effect/Effect/memoizeFunction.key");class Key2{a;eq;[memoKeySymbol2]=memoKeySymbol2;constructor(a,eq){this.a=a,this.eq=eq}[symbol22](that){if(hasProperty2(that,memoKeySymbol2))if(this.eq)return this.eq(this.a,that.a);else return equals4(this.a,that.a);return!1}[symbol3](){return this.eq?0:cached4(this,hash2(this.a))}}var cachedFunction3=(f,eq)=>{return pipe2(sync14(()=>empty172()),flatMap82(makeSynchronized2),map92((ref)=>(a)=>pipe2(ref.modifyEffect((map122)=>{let result=pipe2(map122,get82(new Key2(a,eq)));if(isNone22(result))return pipe2(deferredMake2(),tap22((deferred)=>pipe2(diffFiberRefs3(f(a)),intoDeferred3(deferred),fork4)),map92((deferred)=>[deferred,pipe2(map122,set42(new Key2(a,eq),deferred))]));return succeed20([result.value,map122])}),flatMap82(deferredAwait2),flatMap82(([patch92,b])=>pipe2(patchFiberRefs3(patch92),as22(b))))))},raceFirst3=dual2(2,(self,that)=>pipe2(exit3(self),race5(exit3(that)),(effect4)=>flatten62(effect4))),supervised3=dual2(2,(self,supervisor)=>{return fiberRefLocallyWith3(currentSupervisor2,(s)=>s.zip(supervisor))(self)}),timeout5=dual2(2,(self,duration5)=>timeoutFail5(self,{onTimeout:()=>timeoutExceptionFromDuration2(duration5),duration:duration5})),timeoutFail5=dual2(2,(self,{duration:duration5,onTimeout})=>flatten62(timeoutTo5(self,{onTimeout:()=>failSync9(onTimeout),onSuccess:succeed20,duration:duration5}))),timeoutFailCause5=dual2(2,(self,{duration:duration5,onTimeout})=>flatten62(timeoutTo5(self,{onTimeout:()=>failCauseSync8(onTimeout),onSuccess:succeed20,duration:duration5}))),timeoutOption3=dual2(2,(self,duration5)=>timeoutTo5(self,{duration:duration5,onSuccess:some22,onTimeout:none22})),timeoutTo5=dual2(2,(self,{duration:duration5,onSuccess,onTimeout})=>fiberIdWith3((parentFiberId)=>uninterruptibleMask4((restore)=>raceFibersWith2(restore(self),interruptible22(sleep32(duration5)),{onSelfWin:(winner,loser)=>flatMap82(winner.await,(exit22)=>{if(exit22._tag==="Success")return flatMap82(winner.inheritAll,()=>as22(interruptAsFiber2(loser,parentFiberId),onSuccess(exit22.value)));else return flatMap82(interruptAsFiber2(loser,parentFiberId),()=>exitFailCause3(exit22.cause))}),onOtherWin:(winner,loser)=>flatMap82(winner.await,(exit22)=>{if(exit22._tag==="Success")return flatMap82(winner.inheritAll,()=>as22(interruptAsFiber2(loser,parentFiberId),onTimeout()));else return flatMap82(interruptAsFiber2(loser,parentFiberId),()=>exitFailCause3(exit22.cause))}),otherScope:globalScope2})))),SynchronizedSymbolKey2="effect/Ref/SynchronizedRef",SynchronizedTypeId2=Symbol.for(SynchronizedSymbolKey2),synchronizedVariance2={_A:(_)=>_};class SynchronizedImpl2 extends Class4{ref;withLock;[SynchronizedTypeId2]=synchronizedVariance2;[RefTypeId2]=refVariance2;[TypeId132]=TypeId132;constructor(ref,withLock){super();this.ref=ref,this.withLock=withLock,this.get=get112(this.ref)}get;commit(){return this.get}modify(f){return this.modifyEffect((a)=>succeed20(f(a)))}modifyEffect(f){return this.withLock(pipe2(flatMap82(get112(this.ref),f),flatMap82(([b,a])=>as22(set52(this.ref,a),b))))}}var makeSynchronized2=(value)=>sync14(()=>unsafeMakeSynchronized2(value)),unsafeMakeSynchronized2=(value)=>{let ref=unsafeMake62(value),sem=unsafeMakeSemaphore3(1);return new SynchronizedImpl2(ref,sem.withPermits(1))},updateSomeAndGetEffectSynchronized2=dual2(2,(self,pf)=>self.modifyEffect((value)=>{let result=pf(value);switch(result._tag){case"None":return succeed20([value,value]);case"Some":return map92(result.value,(a)=>[a,a])}})),bindAll3=dual2((args22)=>isEffect3(args22[0]),(self,f,options)=>flatMap82(self,(a)=>all32(f(a),options).pipe(map92((record)=>Object.assign({},a,record))))),TypeId152=Symbol.for("effect/ManagedRuntime"),OP_EXTEND_SCOPE2="ExtendScope",OP_FOLD3="Fold",OP_FRESH2="Fresh",OP_FROM_EFFECT4="FromEffect",OP_SCOPED2="Scoped",OP_SUSPEND4="Suspend",OP_PROVIDE4="Provide",OP_PROVIDE_MERGE2="ProvideMerge",OP_MERGE_ALL2="MergeAll",OP_ZIP_WITH22="ZipWith",_await32=_await22,inheritAll22=inheritAll3,interrupt62=interruptFiber2,interruptAs3=interruptAsFiber2,join42=join32,poll42=poll32,makeDual2=(f)=>function(){if(arguments.length===1){let runtime22=arguments[0];return(effect4,...args22)=>f(runtime22,effect4,...args22)}return f.apply(this,arguments)},unsafeFork22=makeDual2((runtime22,self,options)=>{let fiberId22=unsafeMake32(),fiberRefUpdates=[[currentContext3,[[fiberId22,runtime22.context]]]];if(options?.scheduler)fiberRefUpdates.push([currentScheduler3,[[fiberId22,options.scheduler]]]);let fiberRefs32=updateManyAs22(runtime22.fiberRefs,{entries:fiberRefUpdates,forkAs:fiberId22});if(options?.updateRefs)fiberRefs32=options.updateRefs(fiberRefs32,fiberId22);let fiberRuntime=new FiberRuntime2(fiberId22,fiberRefs32,runtime22.runtimeFlags),effect4=self;if(options?.scope)effect4=flatMap82(fork22(options.scope,sequential22),(closeableScope)=>zipRight22(scopeAddFinalizer2(closeableScope,fiberIdWith3((id2)=>equals4(id2,fiberRuntime.id())?void_22:interruptAsFiber2(fiberRuntime,id2))),onExit4(self,(exit22)=>close2(closeableScope,exit22))));let supervisor=fiberRuntime.currentSupervisor;if(supervisor!==none82)supervisor.onStart(runtime22.context,effect4,none22(),fiberRuntime),fiberRuntime.addObserver((exit22)=>supervisor.onEnd(exit22,fiberRuntime));if(globalScope2.add(runtime22.runtimeFlags,fiberRuntime),options?.immediate===!1)fiberRuntime.resume(effect4);else fiberRuntime.start(effect4);return fiberRuntime}),unsafeRunCallback2=makeDual2((runtime22,effect4,options={})=>{let fiberRuntime=unsafeFork22(runtime22,effect4,options);if(options.onExit)fiberRuntime.addObserver((exit22)=>{options.onExit(exit22)});return(id2,cancelOptions)=>unsafeRunCallback2(runtime22)(pipe2(fiberRuntime,interruptAs3(id2??none42)),{...cancelOptions,onExit:cancelOptions?.onExit?(exit22)=>cancelOptions.onExit(flatten72(exit22)):void 0})}),unsafeRunSync2=makeDual2((runtime22,effect4)=>{let result=unsafeRunSyncExit2(runtime22)(effect4);if(result._tag==="Failure")throw fiberFailure2(result.effect_instruction_i0);return result.effect_instruction_i0});class AsyncFiberExceptionImpl2 extends Error{fiber;_tag="AsyncFiberException";constructor(fiber){super(`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`);this.fiber=fiber,this.name=this._tag,this.stack=this.message}}var asyncFiberException2=(fiber)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=0;let error3=new AsyncFiberExceptionImpl2(fiber);return Error.stackTraceLimit=limit,error3},FiberFailureId2=Symbol.for("effect/Runtime/FiberFailure"),FiberFailureCauseId2=Symbol.for("effect/Runtime/FiberFailure/Cause");class FiberFailureImpl2 extends Error{[FiberFailureId2];[FiberFailureCauseId2];constructor(cause22){let head42=prettyErrors2(cause22)[0];super(head42?.message||"An error has occurred");if(this[FiberFailureId2]=FiberFailureId2,this[FiberFailureCauseId2]=cause22,this.name=head42?`(FiberFailure) ${head42.name}`:"FiberFailure",head42?.stack)this.stack=head42.stack}toJSON(){return{_id:"FiberFailure",cause:this[FiberFailureCauseId2].toJSON()}}toString(){return"(FiberFailure) "+pretty3(this[FiberFailureCauseId2],{renderErrorCause:!0})}[NodeInspectSymbol2](){return this.toString()}}var fiberFailure2=(cause22)=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=0;let error3=new FiberFailureImpl2(cause22);return Error.stackTraceLimit=limit,error3},fastPath2=(effect4)=>{let op=effect4;switch(op._op){case"Failure":case"Success":return op;case"Left":return exitFail2(op.left);case"Right":return exitSucceed3(op.right);case"Some":return exitSucceed3(op.value);case"None":return exitFail2(NoSuchElementException3())}},unsafeRunSyncExit2=makeDual2((runtime22,effect4)=>{let op=fastPath2(effect4);if(op)return op;let scheduler=new SyncScheduler2,fiberRuntime=unsafeFork22(runtime22)(effect4,{scheduler});scheduler.flush();let result=fiberRuntime.unsafePoll();if(result)return result;return exitDie3(capture2(asyncFiberException2(fiberRuntime),currentSpanFromFiber2(fiberRuntime)))}),unsafeRunPromise2=makeDual2((runtime22,effect4,options)=>unsafeRunPromiseExit2(runtime22,effect4,options).then((result)=>{switch(result._tag){case OP_SUCCESS2:return result.effect_instruction_i0;case OP_FAILURE2:throw fiberFailure2(result.effect_instruction_i0)}})),unsafeRunPromiseExit2=makeDual2((runtime22,effect4,options)=>new Promise((resolve)=>{let op=fastPath2(effect4);if(op)resolve(op);let fiber=unsafeFork22(runtime22)(effect4);if(fiber.addObserver((exit22)=>{resolve(exit22)}),options?.signal!==void 0)if(options.signal.aborted)fiber.unsafeInterruptAsFork(fiber.id());else options.signal.addEventListener("abort",()=>{fiber.unsafeInterruptAsFork(fiber.id())},{once:!0})}));class RuntimeImpl2{context;runtimeFlags;fiberRefs;constructor(context22,runtimeFlags22,fiberRefs32){this.context=context22,this.runtimeFlags=runtimeFlags22,this.fiberRefs=fiberRefs32}pipe(){return pipeArguments2(this,arguments)}}var make392=(options)=>new RuntimeImpl2(options.context,options.runtimeFlags,options.fiberRefs),runtime22=()=>withFiberRuntime3((state,status2)=>succeed20(new RuntimeImpl2(state.getFiberRef(currentContext3),status2.runtimeFlags,state.getFiberRefs()))),defaultRuntimeFlags2=make162(Interruption2,CooperativeYielding2,RuntimeMetrics2),defaultRuntime3=make392({context:empty32(),runtimeFlags:defaultRuntimeFlags2,fiberRefs:empty212()}),unsafeRunEffect2=unsafeRunCallback2(defaultRuntime3),unsafeForkEffect2=unsafeFork22(defaultRuntime3),unsafeRunPromiseEffect2=unsafeRunPromise2(defaultRuntime3),unsafeRunPromiseExitEffect2=unsafeRunPromiseExit2(defaultRuntime3),unsafeRunSyncEffect2=unsafeRunSync2(defaultRuntime3),unsafeRunSyncExitEffect2=unsafeRunSyncExit2(defaultRuntime3),asyncEffect5=(register)=>suspend13(()=>{let cleanup=void 0;return flatMap82(deferredMake2(),(deferred)=>flatMap82(runtime22(),(runtime32)=>uninterruptibleMask4((restore)=>zipRight22(fork4(restore(matchCauseEffect4(register((cb)=>unsafeRunCallback2(runtime32)(intoDeferred3(cb,deferred))),{onFailure:(cause22)=>deferredFailCause2(deferred,cause22),onSuccess:(cleanup_)=>{return cleanup=cleanup_,void_22}}))),restore(onInterrupt3(deferredAwait2(deferred),()=>cleanup??void_22))))))}),modifyEffect2=dual2(2,(self,f)=>self.modifyEffect(f)),LayerSymbolKey2="effect/Layer",LayerTypeId3=Symbol.for(LayerSymbolKey2),layerVariance2={_RIn:(_)=>_,_E:(_)=>_,_ROut:(_)=>_},proto32={[LayerTypeId3]:layerVariance2,pipe(){return pipeArguments2(this,arguments)}},MemoMapTypeIdKey2="effect/Layer/MemoMap",MemoMapTypeId3=Symbol.for(MemoMapTypeIdKey2),CurrentMemoMap3=Reference22()("effect/Layer/CurrentMemoMap",{defaultValue:()=>unsafeMakeMemoMap2()}),isLayer3=(u)=>hasProperty2(u,LayerTypeId3),isFresh3=(self)=>{return self._op_layer===OP_FRESH2};class MemoMapImpl2{ref;[MemoMapTypeId3];constructor(ref){this.ref=ref,this[MemoMapTypeId3]=MemoMapTypeId3}getOrElseMemoize(layer,scope22){return pipe2(modifyEffect2(this.ref,(map132)=>{let inMap=map132.get(layer);if(inMap!==void 0){let[acquire,release]=inMap,cached32=pipe2(acquire,flatMap82(([patch92,b])=>pipe2(patchFiberRefs3(patch92),as22(b))),onExit4(exitMatch2({onFailure:()=>void_22,onSuccess:()=>scopeAddFinalizerExit2(scope22,release)})));return succeed20([cached32,map132])}return pipe2(make272(0),flatMap82((observers)=>pipe2(deferredMake2(),flatMap82((deferred)=>pipe2(make272(()=>void_22),map92((finalizerRef)=>{let resource=uninterruptibleMask4((restore)=>pipe2(scopeMake2(),flatMap82((innerScope)=>pipe2(restore(flatMap82(makeBuilder2(layer,innerScope,!0),(f)=>diffFiberRefs3(f(this)))),exit3,flatMap82((exit22)=>{switch(exit22._tag){case OP_FAILURE2:return pipe2(deferredFailCause2(deferred,exit22.effect_instruction_i0),zipRight22(scopeClose2(innerScope,exit22)),zipRight22(failCause15(exit22.effect_instruction_i0)));case OP_SUCCESS2:return pipe2(set52(finalizerRef,(exit32)=>pipe2(scopeClose2(innerScope,exit32),whenEffect5(modify42(observers,(n)=>[n===1,n-1])),asVoid22)),zipRight22(update22(observers,(n)=>n+1)),zipRight22(scopeAddFinalizerExit2(scope22,(exit32)=>pipe2(sync14(()=>map132.delete(layer)),zipRight22(get112(finalizerRef)),flatMap82((finalizer3)=>finalizer3(exit32))))),zipRight22(deferredSucceed2(deferred,exit22.effect_instruction_i0)),as22(exit22.effect_instruction_i0[1]))}}))))),memoized=[pipe2(deferredAwait2(deferred),onExit4(exitMatchEffect2({onFailure:()=>void_22,onSuccess:()=>update22(observers,(n)=>n+1)}))),(exit22)=>pipe2(get112(finalizerRef),flatMap82((finalizer3)=>finalizer3(exit22)))];return[resource,isFresh3(layer)?map132:map132.set(layer,memoized)]}))))))}),flatten62)}}var makeMemoMap3=suspend13(()=>map92(makeSynchronized2(new Map),(ref)=>new MemoMapImpl2(ref))),unsafeMakeMemoMap2=()=>new MemoMapImpl2(unsafeMakeSynchronized2(new Map)),build3=(self)=>scopeWith3((scope22)=>buildWithScope3(self,scope22)),buildWithScope3=dual2(2,(self,scope22)=>flatMap82(makeMemoMap3,(memoMap)=>buildWithMemoMap3(self,memoMap,scope22))),buildWithMemoMap3=dual2(3,(self,memoMap,scope22)=>flatMap82(makeBuilder2(self,scope22),(run6)=>provideService8(run6(memoMap),CurrentMemoMap3,memoMap))),makeBuilder2=(self,scope22,inMemoMap=!1)=>{let op=self;switch(op._op_layer){case"Locally":return sync14(()=>(memoMap)=>op.f(memoMap.getOrElseMemoize(op.self,scope22)));case"ExtendScope":return sync14(()=>(memoMap)=>scopeWith3((scope32)=>memoMap.getOrElseMemoize(op.layer,scope32)));case"Fold":return sync14(()=>(memoMap)=>pipe2(memoMap.getOrElseMemoize(op.layer,scope22),matchCauseEffect4({onFailure:(cause22)=>memoMap.getOrElseMemoize(op.failureK(cause22),scope22),onSuccess:(value)=>memoMap.getOrElseMemoize(op.successK(value),scope22)})));case"Fresh":return sync14(()=>(_)=>pipe2(op.layer,buildWithScope3(scope22)));case"FromEffect":return inMemoMap?sync14(()=>(_)=>op.effect):sync14(()=>(memoMap)=>memoMap.getOrElseMemoize(self,scope22));case"Provide":return sync14(()=>(memoMap)=>pipe2(memoMap.getOrElseMemoize(op.first,scope22),flatMap82((env)=>pipe2(memoMap.getOrElseMemoize(op.second,scope22),provideContext8(env)))));case"Scoped":return inMemoMap?sync14(()=>(_)=>scopeExtend2(op.effect,scope22)):sync14(()=>(memoMap)=>memoMap.getOrElseMemoize(self,scope22));case"Suspend":return sync14(()=>(memoMap)=>memoMap.getOrElseMemoize(op.evaluate(),scope22));case"ProvideMerge":return sync14(()=>(memoMap)=>pipe2(memoMap.getOrElseMemoize(op.first,scope22),zipWith42(memoMap.getOrElseMemoize(op.second,scope22),op.zipK)));case"ZipWith":return gen22(function*(){let parallelScope=yield*scopeFork2(scope22,parallel22),firstScope=yield*scopeFork2(parallelScope,sequential22),secondScope=yield*scopeFork2(parallelScope,sequential22);return(memoMap)=>pipe2(memoMap.getOrElseMemoize(op.first,firstScope),zipWithOptions2(memoMap.getOrElseMemoize(op.second,secondScope),op.zipK,{concurrent:!0}))});case"MergeAll":{let layers=op.layers;return map92(scopeFork2(scope22,parallel22),(parallelScope)=>(memoMap)=>{let contexts=Array(layers.length);return map92(forEachConcurrentDiscard2(layers,fnUntraced3(function*(layer,i){let scope32=yield*scopeFork2(parallelScope,sequential22),context22=yield*memoMap.getOrElseMemoize(layer,scope32);contexts[i]=context22}),!1,!1),()=>mergeAll22(...contexts))})}}},catchAll22=dual2(2,(self,onFailure)=>match112(self,{onFailure,onSuccess:succeedContext3})),catchAllCause22=dual2(2,(self,onFailure)=>matchCause22(self,{onFailure,onSuccess:succeedContext3})),die52=(defect)=>failCause62(die42(defect)),dieSync22=(evaluate22)=>failCauseSync22(()=>die42(evaluate22())),discard3=(self)=>map132(self,()=>empty32()),context22=()=>fromEffectContext2(context7()),extendScope3=(self)=>{let extendScope22=Object.create(proto32);return extendScope22._op_layer=OP_EXTEND_SCOPE2,extendScope22.layer=self,extendScope22},fail72=(error3)=>failCause62(fail52(error3)),failSync22=(evaluate22)=>failCauseSync22(()=>fail52(evaluate22())),failCause62=(cause22)=>fromEffectContext2(failCause15(cause22)),failCauseSync22=(evaluate22)=>fromEffectContext2(failCauseSync8(evaluate22)),flatMap102=dual2(2,(self,f)=>match112(self,{onFailure:fail72,onSuccess:f})),flatten82=dual2(2,(self,tag)=>flatMap102(self,get32(tag))),fresh3=(self)=>{let fresh22=Object.create(proto32);return fresh22._op_layer=OP_FRESH2,fresh22.layer=self,fresh22},fromEffect32=dual2(2,(a,b)=>{let tagFirst=isTag22(a),tag=tagFirst?a:b;return fromEffectContext2(map92(tagFirst?b:a,(service3)=>make56(tag,service3)))}),fromEffectDiscard2=(effect4)=>fromEffectContext2(map92(effect4,()=>empty32()));function fromEffectContext2(effect4){let fromEffect42=Object.create(proto32);return fromEffect42._op_layer=OP_FROM_EFFECT4,fromEffect42.effect=effect4,fromEffect42}var fiberRefLocally22=dual2(3,(self,ref,value)=>locallyEffect3(self,fiberRefLocally3(ref,value))),locallyEffect3=dual2(2,(self,f)=>{let locally3=Object.create(proto32);return locally3._op_layer="Locally",locally3.self=self,locally3.f=f,locally3}),fiberRefLocallyWith22=dual2(3,(self,ref,value)=>locallyEffect3(self,fiberRefLocallyWith3(ref,value))),fiberRefLocallyScoped22=(self,value)=>scopedDiscard3(fiberRefLocallyScoped3(self,value)),fiberRefLocallyScopedWith22=(self,value)=>scopedDiscard3(fiberRefLocallyScopedWith4(self,value)),fromFunction5=(tagA,tagB,f)=>fromEffectContext2(map92(tagA,(a)=>make56(tagB,f(a)))),launch3=(self)=>scopedEffect2(zipRight22(scopeWith3((scope22)=>pipe2(self,buildWithScope3(scope22))),never6)),mock3=function(){if(arguments.length===1)return(service3)=>mockImpl2(arguments[0],service3);return mockImpl2(arguments[0],arguments[1])},mockImpl2=(tag,service3)=>succeed62(tag,new Proxy({...service3},{get(target,prop,_receiver){if(prop in target)return target[prop];let prevLimit=Error.stackTraceLimit;Error.stackTraceLimit=2;let error3=Error(`${tag.key}: Unimplemented method "${prop.toString()}"`);return Error.stackTraceLimit=prevLimit,error3.name="UnimplementedError",makeUnimplemented2(error3)},has:constTrue2})),makeUnimplemented2=(error3)=>{let dead=die22(error3);function unimplemented(){return dead}return Object.assign(unimplemented,dead),Object.setPrototypeOf(unimplemented,Object.getPrototypeOf(dead)),unimplemented},map132=dual2(2,(self,f)=>flatMap102(self,(context32)=>succeedContext3(f(context32)))),mapError22=dual2(2,(self,f)=>catchAll22(self,(error3)=>failSync22(()=>f(error3)))),matchCause22=dual2(2,(self,{onFailure,onSuccess})=>{let fold2=Object.create(proto32);return fold2._op_layer=OP_FOLD3,fold2.layer=self,fold2.failureK=onFailure,fold2.successK=onSuccess,fold2}),match112=dual2(2,(self,{onFailure,onSuccess})=>matchCause22(self,{onFailure:(cause22)=>{let failureOrCause32=failureOrCause22(cause22);switch(failureOrCause32._tag){case"Left":return onFailure(failureOrCause32.left);case"Right":return failCause62(failureOrCause32.right)}},onSuccess})),memoize22=(self)=>scopeWith3((scope22)=>map92(memoize4(buildWithScope3(self,scope22)),fromEffectContext2)),merge62=dual2(2,(self,that)=>zipWith52(self,that,(a,b)=>merge32(a,b))),mergeAll42=(...layers)=>{let mergeAll52=Object.create(proto32);return mergeAll52._op_layer=OP_MERGE_ALL2,mergeAll52.layers=layers,mergeAll52},orDie22=(self)=>catchAll22(self,(defect)=>die52(defect)),orElse42=dual2(2,(self,that)=>catchAll22(self,that)),passthrough5=(self)=>merge62(context22(),self),project3=dual2(4,(self,tagA,tagB,f)=>map132(self,(context32)=>make56(tagB,f(unsafeGet32(context32,tagA))))),retry8=dual2(2,(self,schedule4)=>suspend22(()=>{let stateTag=GenericTag2("effect/Layer/retry/{ state: unknown }");return pipe2(succeed62(stateTag,{state:schedule4.initial}),flatMap102((env)=>retryLoop2(self,schedule4,stateTag,pipe2(env,get32(stateTag)).state)))})),retryLoop2=(self,schedule4,stateTag,state)=>{return pipe2(self,catchAll22((error3)=>pipe2(retryUpdate2(schedule4,stateTag,error3,state),flatMap102((env)=>fresh3(retryLoop2(self,schedule4,stateTag,pipe2(env,get32(stateTag)).state))))))},retryUpdate2=(schedule4,stateTag,error3,state)=>{return fromEffect32(stateTag,pipe2(currentTimeMillis22,flatMap82((now)=>pipe2(schedule4.step(now,error3,state),flatMap82(([state2,_,decision])=>isDone52(decision)?fail22(error3):pipe2(sleep22(millis2(start22(decision.intervals)-now)),as22({state:state2})))))))},scoped7=dual2(2,(a,b)=>{let tagFirst=isTag22(a),tag=tagFirst?a:b;return scopedContext3(map92(tagFirst?b:a,(service3)=>make56(tag,service3)))}),scopedDiscard3=(effect4)=>scopedContext3(pipe2(effect4,as22(empty32()))),scopedContext3=(effect4)=>{let scoped22=Object.create(proto32);return scoped22._op_layer=OP_SCOPED2,scoped22.effect=effect4,scoped22},scope22=scopedContext3(map92(acquireRelease5(scopeMake2(),(scope32,exit22)=>scope32.close(exit22)),(scope32)=>make56(Scope2,scope32))),service3=(tag)=>fromEffect32(tag,tag),succeed62=dual2(2,(a,b)=>{let tagFirst=isTag22(a);return fromEffectContext2(succeed20(make56(tagFirst?a:b,tagFirst?b:a)))}),succeedContext3=(context32)=>{return fromEffectContext2(succeed20(context32))},empty272=succeedContext3(empty32()),suspend22=(evaluate22)=>{let suspend32=Object.create(proto32);return suspend32._op_layer=OP_SUSPEND4,suspend32.evaluate=evaluate22,suspend32},sync22=dual2(2,(a,b)=>{let tagFirst=isTag22(a),tag=tagFirst?a:b,evaluate22=tagFirst?b:a;return fromEffectContext2(sync14(()=>make56(tag,evaluate22())))}),syncContext3=(evaluate22)=>{return fromEffectContext2(sync14(evaluate22))},tap32=dual2(2,(self,f)=>flatMap102(self,(context32)=>fromEffectContext2(as22(f(context32),context32)))),tapError22=dual2(2,(self,f)=>catchAll22(self,(e)=>fromEffectContext2(flatMap82(f(e),()=>fail22(e))))),tapErrorCause22=dual2(2,(self,f)=>catchAllCause22(self,(cause22)=>fromEffectContext2(flatMap82(f(cause22),()=>failCause15(cause22))))),toRuntime3=(self)=>pipe2(scopeWith3((scope32)=>buildWithScope3(self,scope32)),flatMap82((context32)=>pipe2(runtime22(),provideContext8(context32)))),toRuntimeWithMemoMap3=dual2(2,(self,memoMap)=>flatMap82(scopeWith3((scope32)=>buildWithMemoMap3(self,memoMap,scope32)),(context32)=>pipe2(runtime22(),provideContext8(context32)))),provide4=dual2(2,(self,that)=>suspend22(()=>{let provideTo=Object.create(proto32);return provideTo._op_layer=OP_PROVIDE4,provideTo.first=Object.create(proto32,{_op_layer:{value:OP_PROVIDE_MERGE2,enumerable:!0},first:{value:context22(),enumerable:!0},second:{value:Array.isArray(that)?mergeAll42(...that):that},zipK:{value:(a,b)=>pipe2(a,merge32(b))}}),provideTo.second=self,provideTo})),provideMerge3=dual2(2,(that,self)=>{let zipWith52=Object.create(proto32);return zipWith52._op_layer=OP_PROVIDE_MERGE2,zipWith52.first=self,zipWith52.second=provide4(that,self),zipWith52.zipK=(a,b)=>{return pipe2(a,merge32(b))},zipWith52}),zipWith52=dual2(3,(self,that,f)=>suspend22(()=>{let zipWith62=Object.create(proto32);return zipWith62._op_layer=OP_ZIP_WITH22,zipWith62.first=self,zipWith62.second=that,zipWith62.zipK=f,zipWith62})),unwrapEffect3=(self)=>{let tag=GenericTag2("effect/Layer/unwrapEffect/Layer.Layer<R1, E1, A>");return flatMap102(fromEffect32(tag,self),(context32)=>get32(context32,tag))},unwrapScoped6=(self)=>{let tag=GenericTag2("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>");return flatMap102(scoped7(tag,self),(context32)=>get32(context32,tag))},annotateLogs22=dual2((args22)=>isLayer3(args22[0]),function(){let args22=arguments;return fiberRefLocallyWith22(args22[0],currentLogAnnotations2,typeof args22[1]==="string"?set32(args22[1],args22[2]):(annotations)=>Object.entries(args22[1]).reduce((acc,[key,value])=>set32(acc,key,value),annotations))}),annotateSpans22=dual2((args22)=>isLayer3(args22[0]),function(){let args22=arguments;return fiberRefLocallyWith22(args22[0],currentTracerSpanAnnotations2,typeof args22[1]==="string"?set32(args22[1],args22[2]):(annotations)=>Object.entries(args22[1]).reduce((acc,[key,value])=>set32(acc,key,value),annotations))}),withSpan22=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace2(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return unwrapScoped6(map92(options?.onEnd?tap22(makeSpanScoped3(name,options),(span22)=>addFinalizer4((exit22)=>options.onEnd(span22,exit22))):makeSpanScoped3(name,options),(span22)=>withParentSpan22(self,span22)))}return(self)=>unwrapScoped6(map92(options?.onEnd?tap22(makeSpanScoped3(name,options),(span22)=>addFinalizer4((exit22)=>options.onEnd(span22,exit22))):makeSpanScoped3(name,options),(span22)=>withParentSpan22(self,span22)))},withParentSpan22=dual2(2,(self,span22)=>provide4(self,succeedContext3(make56(spanTag2,span22)))),provideSomeLayer4=dual2(2,(self,layer)=>scopedWith6((scope32)=>flatMap82(buildWithScope3(layer,scope32),(context32)=>provideSomeContext4(self,context32)))),provideSomeRuntime2=dual2(2,(self,rt)=>{let patchRefs=diff62(defaultRuntime3.fiberRefs,rt.fiberRefs),patchFlags=diff42(defaultRuntime3.runtimeFlags,rt.runtimeFlags);return uninterruptibleMask4((restore)=>withFiberRuntime3((fiber)=>{let oldContext=fiber.getFiberRef(currentContext3),oldRefs=fiber.getFiberRefs(),newRefs=patch72(fiber.id(),oldRefs)(patchRefs),oldFlags=fiber.currentRuntimeFlags,newFlags=patch42(patchFlags)(oldFlags),rollbackRefs=diff62(newRefs,oldRefs),rollbackFlags=diff42(newFlags,oldFlags);return fiber.setFiberRefs(newRefs),fiber.currentRuntimeFlags=newFlags,ensuring9(provideSomeContext4(restore(self),merge32(oldContext,rt.context)),withFiberRuntime3((fiber2)=>{return fiber2.setFiberRefs(patch72(fiber2.id(),fiber2.getFiberRefs())(rollbackRefs)),fiber2.currentRuntimeFlags=patch42(rollbackFlags)(fiber2.currentRuntimeFlags),void_22}))}))}),effect_provide2=dual2(2,(self,source)=>{if(Array.isArray(source))return provideSomeLayer4(self,mergeAll42(...source));else if(isLayer3(source))return provideSomeLayer4(self,source);else if(isContext22(source))return provideSomeContext4(self,source);else if(TypeId152 in source)return flatMap82(source.runtimeEffect,(rt)=>provideSomeRuntime2(self,rt));else return provideSomeRuntime2(self,source)}),console22=map92(fiberRefGet2(currentServices2),get32(consoleTag2)),consoleWith4=(f)=>fiberRefGetWith2(currentServices2,(services)=>f(get32(services,consoleTag2))),withConsole4=dual2(2,(effect4,value)=>fiberRefLocallyWith3(effect4,currentServices2,add22(consoleTag2,value))),withConsoleScoped3=(console32)=>fiberRefLocallyScopedWith4(currentServices2,add22(consoleTag2,console32)),exports_Data2={};__export2(exports_Data2,{unsafeStruct:()=>unsafeStruct2,unsafeArray:()=>unsafeArray2,tuple:()=>tuple3,taggedEnum:()=>taggedEnum2,tagged:()=>tagged22,struct:()=>struct22,case:()=>_case2,array:()=>array32,TaggedError:()=>TaggedError2,TaggedClass:()=>TaggedClass3,Structural:()=>Structural22,Error:()=>Error32,Class:()=>Class22});var struct22=struct4,unsafeStruct2=(as42)=>Object.setPrototypeOf(as42,StructuralPrototype2),tuple3=(...as42)=>unsafeArray2(as42),array32=(as42)=>unsafeArray2(as42.slice(0)),unsafeArray2=(as42)=>Object.setPrototypeOf(as42,ArrayProto2),_case2=()=>(args22)=>args22===void 0?Object.create(StructuralPrototype2):struct22(args22),tagged22=(tag)=>(args22)=>{let value=args22===void 0?Object.create(StructuralPrototype2):struct22(args22);return value._tag=tag,value},Class22=Structural3,TaggedClass3=(tag)=>{class Base32 extends Class22{_tag=tag}return Base32},Structural22=Structural3,taggedEnum2=()=>new Proxy({},{get(_target,tag,_receiver){if(tag==="$is")return isTagged2;else if(tag==="$match")return taggedMatch2;return tagged22(tag)}});function taggedMatch2(){if(arguments.length===1){let cases2=arguments[0];return function(value2){return cases2[value2._tag](value2)}}let value=arguments[0];return arguments[1][value._tag](value)}var Error32=function(){let plainArgsSymbol=Symbol.for("effect/Data/Error/plainArgs");return class extends YieldableError2{constructor(args22){super(args22?.message,args22?.cause?{cause:args22.cause}:void 0);if(args22)Object.assign(this,args22),Object.defineProperty(this,plainArgsSymbol,{value:args22,enumerable:!1})}toJSON(){return{...this[plainArgsSymbol],...this}}}}(),TaggedError2=(tag)=>{let O={BaseEffectError:class extends Error32{_tag=tag}};return O.BaseEffectError.prototype.name=tag,O.BaseEffectError},fixed22=fixed5,ScheduleSymbolKey2="effect/Schedule",ScheduleTypeId3=Symbol.for(ScheduleSymbolKey2),isSchedule3=(u)=>hasProperty2(u,ScheduleTypeId3),ScheduleDriverSymbolKey2="effect/ScheduleDriver",ScheduleDriverTypeId3=Symbol.for(ScheduleDriverSymbolKey2),defaultIterationMetadata2={start:0,now:0,input:void 0,output:void 0,elapsed:zero2,elapsedSincePrevious:zero2,recurrence:0},CurrentIterationMetadata3=Reference22()("effect/Schedule/CurrentIterationMetadata",{defaultValue:()=>defaultIterationMetadata2}),scheduleVariance2={_Out:(_)=>_,_In:(_)=>_,_R:(_)=>_},scheduleDriverVariance2={_Out:(_)=>_,_In:(_)=>_,_R:(_)=>_};class ScheduleImpl2{initial;step;[ScheduleTypeId3]=scheduleVariance2;constructor(initial,step32){this.initial=initial,this.step=step32}pipe(){return pipeArguments2(this,arguments)}}var updateInfo2=(iterationMetaRef,now,input,output)=>update22(iterationMetaRef,(prev)=>prev.recurrence===0?{now,input,output,recurrence:prev.recurrence+1,elapsed:zero2,elapsedSincePrevious:zero2,start:now}:{now,input,output,recurrence:prev.recurrence+1,elapsed:millis2(now-prev.start),elapsedSincePrevious:millis2(now-prev.now),start:prev.start});class ScheduleDriverImpl2{schedule;ref;[ScheduleDriverTypeId3]=scheduleDriverVariance2;constructor(schedule4,ref){this.schedule=schedule4,this.ref=ref}get state(){return map92(get112(this.ref),(tuple22)=>tuple22[1])}get last(){return flatMap82(get112(this.ref),([element,_])=>{switch(element._tag){case"None":return failSync9(()=>new NoSuchElementException3);case"Some":return succeed20(element.value)}})}iterationMeta=unsafeMake62(defaultIterationMetadata2);get reset(){return set52(this.ref,[none22(),this.schedule.initial]).pipe(zipLeft22(set52(this.iterationMeta,defaultIterationMetadata2)))}next(input){return pipe2(map92(get112(this.ref),(tuple22)=>tuple22[1]),flatMap82((state)=>pipe2(currentTimeMillis22,flatMap82((now)=>pipe2(suspend13(()=>this.schedule.step(now,input,state)),flatMap82(([state2,out,decision])=>{let setState=set52(this.ref,[some22(out),state2]);if(isDone52(decision))return setState.pipe(zipRight22(fail22(none22())));let millis22=start22(decision.intervals)-now;if(millis22<=0)return setState.pipe(zipRight22(updateInfo2(this.iterationMeta,now,input,out)),as22(out));let duration5=millis2(millis22);return pipe2(setState,zipRight22(updateInfo2(this.iterationMeta,now,input,out)),zipRight22(sleep32(duration5)),as22(out))}))))))}}var makeWithState3=(initial,step32)=>new ScheduleImpl2(initial,step32),addDelay3=dual2(2,(self,f)=>addDelayEffect3(self,(out)=>sync14(()=>f(out)))),addDelayEffect3=dual2(2,(self,f)=>modifyDelayEffect3(self,(out,duration5)=>map92(f(out),(delay22)=>sum3(duration5,decode2(delay22))))),asVoid32=(self)=>map142(self,constVoid2),check3=dual2(2,(self,test)=>checkEffect3(self,(input,out)=>sync14(()=>test(input,out)))),checkEffect3=dual2(2,(self,test)=>makeWithState3(self.initial,(now,input,state)=>flatMap82(self.step(now,input,state),([state2,out,decision])=>{if(isDone52(decision))return succeed20([state2,out,done62]);return map92(test(input,out),(cont)=>cont?[state2,out,decision]:[state2,out,done62])}))),driver3=(self)=>pipe2(make272([none22(),self.initial]),map92((ref)=>new ScheduleDriverImpl2(self,ref))),intersect52=dual2(2,(self,that)=>intersectWith3(self,that,intersect42)),intersectWith3=dual2(3,(self,that,f)=>makeWithState3([self.initial,that.initial],(now,input,state)=>pipe2(zipWith42(self.step(now,input,state[0]),that.step(now,input,state[1]),(a,b)=>[a,b]),flatMap82(([[lState,out,lDecision],[rState,out2,rDecision]])=>{if(isContinue22(lDecision)&&isContinue22(rDecision))return intersectWithLoop2(self,that,input,lState,out,lDecision.intervals,rState,out2,rDecision.intervals,f);return succeed20([[lState,rState],[out,out2],done62])})))),intersectWithLoop2=(self,that,input,lState,out,lInterval,rState,out2,rInterval,f)=>{let combined=f(lInterval,rInterval);if(isNonEmpty42(combined))return succeed20([[lState,rState],[out,out2],_continue22(combined)]);if(pipe2(lInterval,lessThan52(rInterval)))return flatMap82(self.step(end22(lInterval),input,lState),([lState2,out3,decision])=>{if(isDone52(decision))return succeed20([[lState2,rState],[out3,out2],done62]);return intersectWithLoop2(self,that,input,lState2,out3,decision.intervals,rState,out2,rInterval,f)});return flatMap82(that.step(end22(rInterval),input,rState),([rState2,out22,decision])=>{if(isDone52(decision))return succeed20([[lState,rState2],[out,out22],done62]);return intersectWithLoop2(self,that,input,lState,out,lInterval,rState2,out22,decision.intervals,f)})},map142=dual2(2,(self,f)=>mapEffect22(self,(out)=>sync14(()=>f(out)))),mapEffect22=dual2(2,(self,f)=>makeWithState3(self.initial,(now,input,state)=>flatMap82(self.step(now,input,state),([state2,out,decision])=>map92(f(out),(out2)=>[state2,out2,decision])))),modifyDelayEffect3=dual2(2,(self,f)=>makeWithState3(self.initial,(now,input,state)=>flatMap82(self.step(now,input,state),([state2,out,decision])=>{if(isDone52(decision))return succeed20([state2,out,decision]);let intervals=decision.intervals,delay22=size82(make352(now,start22(intervals)));return map92(f(out,delay22),(durationInput)=>{let duration5=decode2(durationInput),oldStart=start22(intervals),newStart=now+toMillis2(duration5),delta=newStart-oldStart,newEnd=Math.max(0,end22(intervals)+delta),newInterval=make352(newStart,newEnd);return[state2,out,continueWith22(newInterval)]})}))),passthrough22=(self)=>makeWithState3(self.initial,(now,input,state)=>pipe2(self.step(now,input,state),map92(([state2,_,decision])=>[state2,input,decision]))),recurs3=(n)=>whileOutput3(forever22,(out)=>out<n),spaced3=(duration5)=>addDelay3(forever22,()=>duration5),unfold22=(initial,f)=>makeWithState3(initial,(now,_,state)=>sync14(()=>[f(state),state,continueWith22(after22(now))])),untilInputEffect3=dual2(2,(self,f)=>checkEffect3(self,(input,_)=>negate3(f(input)))),whileInputEffect3=dual2(2,(self,f)=>checkEffect3(self,(input,_)=>f(input))),whileOutput3=dual2(2,(self,f)=>check3(self,(_,out)=>f(out))),ScheduleDefectTypeId2=Symbol.for("effect/Schedule/ScheduleDefect");class ScheduleDefect2{error;[ScheduleDefectTypeId2];constructor(error3){this.error=error3,this[ScheduleDefectTypeId2]=ScheduleDefectTypeId2}}var isScheduleDefect2=(u)=>hasProperty2(u,ScheduleDefectTypeId2),scheduleDefectWrap2=(self)=>catchAll9(self,(e)=>die22(new ScheduleDefect2(e))),scheduleDefectRefailCause2=(cause22)=>match22(find4(cause22,(_)=>isDieType3(_)&&isScheduleDefect2(_.defect)?some22(_.defect):none22()),{onNone:()=>cause22,onSome:(error3)=>fail19(error3.error)}),scheduleDefectRefail3=(effect4)=>catchAllCause8(effect4,(cause22)=>failCause15(scheduleDefectRefailCause2(cause22))),repeat_Effect2=dual2(2,(self,schedule4)=>repeatOrElse_Effect2(self,schedule4,(e,_)=>fail22(e))),repeat_combined2=dual2(2,(self,options)=>{if(isSchedule3(options))return repeat_Effect2(self,options);let base=options.schedule??passthrough22(forever22),withWhile=options.while?whileInputEffect3(base,(a)=>{let applied=options.while(a);if(typeof applied==="boolean")return succeed20(applied);return scheduleDefectWrap2(applied)}):base,withUntil=options.until?untilInputEffect3(withWhile,(a)=>{let applied=options.until(a);if(typeof applied==="boolean")return succeed20(applied);return scheduleDefectWrap2(applied)}):withWhile,withTimes=options.times?intersect52(withUntil,recurs3(options.times)).pipe(map142((intersectionPair)=>intersectionPair[0])):withUntil;return scheduleDefectRefail3(repeat_Effect2(self,withTimes))}),repeatOrElse_Effect2=dual2(3,(self,schedule4,orElse52)=>flatMap82(driver3(schedule4),(driver22)=>matchEffect4(self,{onFailure:(error3)=>orElse52(error3,none22()),onSuccess:(value)=>repeatOrElseEffectLoop2(provideServiceEffect5(self,CurrentIterationMetadata3,get112(driver22.iterationMeta)),driver22,(error3,option22)=>provideServiceEffect5(orElse52(error3,option22),CurrentIterationMetadata3,get112(driver22.iterationMeta)),value)}))),repeatOrElseEffectLoop2=(self,driver22,orElse52,value)=>matchEffect4(driver22.next(value),{onFailure:()=>orDie7(driver22.last),onSuccess:(b)=>matchEffect4(self,{onFailure:(error3)=>orElse52(error3,some22(b)),onSuccess:(value2)=>repeatOrElseEffectLoop2(self,driver22,orElse52,value2)})}),retry_Effect2=dual2(2,(self,policy)=>retryOrElse_Effect2(self,policy,(e,_)=>fail22(e))),retry_combined2=dual2(2,(self,options)=>{if(isSchedule3(options))return retry_Effect2(self,options);return scheduleDefectRefail3(retry_Effect2(self,fromRetryOptions2(options)))}),fromRetryOptions2=(options)=>{let base=options.schedule??forever22,withWhile=options.while?whileInputEffect3(base,(e)=>{let applied=options.while(e);if(typeof applied==="boolean")return succeed20(applied);return scheduleDefectWrap2(applied)}):base,withUntil=options.until?untilInputEffect3(withWhile,(e)=>{let applied=options.until(e);if(typeof applied==="boolean")return succeed20(applied);return scheduleDefectWrap2(applied)}):withWhile;return options.times?intersect52(withUntil,recurs3(options.times)):withUntil},retryOrElse_Effect2=dual2(3,(self,policy,orElse52)=>flatMap82(driver3(policy),(driver22)=>retryOrElse_EffectLoop2(provideServiceEffect5(self,CurrentIterationMetadata3,get112(driver22.iterationMeta)),driver22,(e,out)=>provideServiceEffect5(orElse52(e,out),CurrentIterationMetadata3,get112(driver22.iterationMeta))))),retryOrElse_EffectLoop2=(self,driver22,orElse52)=>{return catchAll9(self,(e)=>matchEffect4(driver22.next(e),{onFailure:()=>pipe2(driver22.last,orDie7,flatMap82((out)=>orElse52(e,out))),onSuccess:()=>retryOrElse_EffectLoop2(self,driver22,orElse52)}))},schedule_Effect2=dual2(2,(self,schedule4)=>scheduleFrom_Effect2(self,void 0,schedule4)),scheduleFrom_Effect2=dual2(3,(self,initial,schedule4)=>flatMap82(driver3(schedule4),(driver22)=>scheduleFrom_EffectLoop2(provideServiceEffect5(self,CurrentIterationMetadata3,get112(driver22.iterationMeta)),initial,driver22))),scheduleFrom_EffectLoop2=(self,initial,driver22)=>matchEffect4(driver22.next(initial),{onFailure:()=>orDie7(driver22.last),onSuccess:()=>flatMap82(self,(a)=>scheduleFrom_EffectLoop2(self,a,driver22))}),forever22=unfold22(0,(n)=>n+1),once22=asVoid32(recurs3(1)),scheduleForked3=dual2(2,(self,schedule4)=>forkScoped3(schedule_Effect2(self,schedule4))),withExecutionPlan5=dual2(2,(effect4,plan)=>suspend13(()=>{let i=0,result;return flatMap82(whileLoop3({while:()=>i<plan.steps.length&&(result===void 0||isLeft22(result)),body:()=>{let step32=plan.steps[i],nextEffect=effect_provide2(effect4,step32.provide);if(result){let attempted=!1,wrapped=nextEffect;nextEffect=suspend13(()=>{if(attempted)return wrapped;return attempted=!0,result}),nextEffect=scheduleDefectRefail3(retry_Effect2(nextEffect,scheduleFromStep2(step32,!1)))}else{let schedule4=scheduleFromStep2(step32,!0);nextEffect=schedule4?scheduleDefectRefail3(retry_Effect2(nextEffect,schedule4)):nextEffect}return either22(nextEffect)},step:(either32)=>{result=either32,i++}}),()=>result)})),scheduleFromStep2=(step32,first)=>{if(!first)return fromRetryOptions2({schedule:step32.schedule?step32.schedule:step32.attempts?void 0:once22,times:step32.attempts,while:step32.while});else if(step32.attempts===1||!(step32.schedule||step32.attempts))return;return fromRetryOptions2({schedule:step32.schedule,while:step32.while,times:step32.attempts?step32.attempts-1:void 0})},currentCache2=globalValue2(Symbol.for("effect/FiberRef/currentCache"),()=>fiberRefUnsafeMake2(unsafeMakeWith2(65536,()=>map92(deferredMake2(),(handle)=>({listeners:new Listeners2,handle})),()=>seconds2(60)))),currentCacheEnabled2=globalValue2(Symbol.for("effect/FiberRef/currentCacheEnabled"),()=>fiberRefUnsafeMake2(!1)),fromRequest2=(request2,dataSource)=>flatMap82(isEffect3(dataSource)?dataSource:succeed20(dataSource),(ds)=>fiberIdWith3((id2)=>{let proxy=new Proxy(request2,{});return fiberRefGetWith2(currentCacheEnabled2,(cacheEnabled)=>{if(cacheEnabled){let cached32=fiberRefGetWith2(currentCache2,(cache)=>flatMap82(cache.getEither(proxy),(orNew)=>{switch(orNew._tag){case"Left":{if(orNew.left.listeners.interrupted)return flatMap82(cache.invalidateWhen(proxy,(entry)=>entry.handle===orNew.left.handle),()=>cached32);return orNew.left.listeners.increment(),uninterruptibleMask4((restore)=>flatMap82(exit3(blocked3(empty152,restore(deferredAwait2(orNew.left.handle)))),(exit22)=>{return orNew.left.listeners.decrement(),exit22}))}case"Right":return orNew.right.listeners.increment(),uninterruptibleMask4((restore)=>flatMap82(exit3(blocked3(single2(ds,makeEntry2({request:proxy,result:orNew.right.handle,listeners:orNew.right.listeners,ownerId:id2,state:{completed:!1}})),restore(deferredAwait2(orNew.right.handle)))),()=>{return orNew.right.listeners.decrement(),deferredAwait2(orNew.right.handle)}))}}));return cached32}let listeners=new Listeners2;return listeners.increment(),flatMap82(deferredMake2(),(ref)=>ensuring9(blocked3(single2(ds,makeEntry2({request:proxy,result:ref,listeners,ownerId:id2,state:{completed:!1}})),deferredAwait2(ref)),sync14(()=>listeners.decrement())))})})),cacheRequest2=(request2,result)=>{return fiberRefGetWith2(currentCacheEnabled2,(cacheEnabled)=>{if(cacheEnabled)return fiberRefGetWith2(currentCache2,(cache)=>flatMap82(cache.getEither(request2),(orNew)=>{switch(orNew._tag){case"Left":return void_22;case"Right":return deferredComplete2(orNew.right.handle,result)}}));return void_22})},withRequestCaching3=dual2(2,(self,strategy)=>fiberRefLocally3(self,currentCacheEnabled2,strategy)),withRequestCache3=dual2(2,(self,cache)=>fiberRefLocally3(self,currentCache2,cache)),isRequest22=isRequest3,EffectTypeId32=EffectTypeId22,isEffect22=isEffect3,cachedWithTTL2=cached22,cachedInvalidateWithTTL22=cachedInvalidateWithTTL3,cached32=memoize4,cachedFunction22=cachedFunction3,once32=once5,all42=all32,allWith22=allWith3,allSuccesses22=allSuccesses3,dropUntil22=dropUntil5,dropWhile32=dropWhile22,takeUntil22=takeUntil5,takeWhile32=takeWhile22,every72=every62,exists32=exists22,filter82=filter62,filterMap62=filterMap52,findFirst62=findFirst52,forEach72=forEach62,head42=head32,mergeAll52=mergeAll32,partition52=partition42,reduce102=reduce92,reduceWhile22=reduceWhile3,reduceRight42=reduceRight32,reduceEffect22=reduceEffect5,replicate22=replicate3,replicateEffect22=replicateEffect3,validateAll22=validateAll3,validateFirst22=validateFirst3,async2=async_2,asyncEffect22=asyncEffect5,custom22=custom3,withFiberRuntime22=withFiberRuntime3,fail92=fail22,failSync32=failSync9,failCause82=failCause15,failCauseSync32=failCauseSync8,die62=die22,dieMessage22=dieMessage6,dieSync32=dieSync8,gen32=gen22,never32=never6,none92=none62,promise22=promise3,succeed82=succeed20,succeedNone22=succeedNone3,succeedSome22=succeedSome3,suspend32=suspend13,sync32=sync14,_void2=void_22,yieldNow42=yieldNow5,_catch22=_catch3,catchAll32=catchAll9,catchAllCause32=catchAllCause8,catchAllDefect22=catchAllDefect3,catchIf22=catchIf3,catchSome22=catchSome5,catchSomeCause22=catchSomeCause5,catchSomeDefect22=catchSomeDefect3,catchTag22=catchTag5,catchTags22=catchTags5,cause22=cause3,eventually22=eventually3,ignore22=ignore3,ignoreLogged22=ignoreLogged3,parallelErrors22=parallelErrors3,sandbox22=sandbox3,retry22=retry_combined2,withExecutionPlan22=withExecutionPlan5,retryOrElse2=retryOrElse_Effect2,try_22=try_4,tryMap22=tryMap3,tryMapPromise22=tryMapPromise3,tryPromise22=tryPromise3,unsandbox22=unsandbox3,allowInterrupt22=allowInterrupt3,checkInterruptible22=checkInterruptible3,disconnect22=disconnect3,interrupt72=interrupt22,interruptWith22=interruptWith3,interruptible42=interruptible22,interruptibleMask22=interruptibleMask3,onInterrupt22=onInterrupt3,uninterruptible22=uninterruptible3,uninterruptibleMask32=uninterruptibleMask4,liftPredicate32=liftPredicate22,as42=as22,asSome22=asSome3,asSomeError22=asSomeError3,asVoid42=asVoid22,flip22=flip3,flipWith22=flipWith3,map152=map92,mapAccum42=mapAccum32,mapBoth32=mapBoth8,mapError32=mapError8,mapErrorCause22=mapErrorCause6,merge72=merge52,negate22=negate3,acquireRelease22=acquireRelease5,acquireReleaseInterruptible22=acquireReleaseInterruptible3,acquireUseRelease22=acquireUseRelease4,addFinalizer32=addFinalizer4,ensuring22=ensuring9,onError22=onError5,onExit32=onExit4,parallelFinalizers22=parallelFinalizers3,sequentialFinalizers22=sequentialFinalizers3,finalizersMask22=finalizersMask3,scope32=scope5,scopeWith22=scopeWith3,scopedWith22=scopedWith6,scoped22=scopedEffect2,using22=using3,withEarlyRelease22=withEarlyRelease3,awaitAllChildren22=awaitAllChildren3,daemonChildren22=daemonChildren3,descriptor22=descriptor3,descriptorWith22=descriptorWith3,diffFiberRefs22=diffFiberRefs3,ensuringChild22=ensuringChild3,ensuringChildren22=ensuringChildren3,fiberId22=fiberId3,fiberIdWith22=fiberIdWith3,fork32=fork4,forkDaemon22=forkDaemon3,forkAll22=forkAll3,forkIn22=forkIn3,forkScoped22=forkScoped3,forkWithErrorHandler22=forkWithErrorHandler3,fromFiber22=fromFiber3,fromFiberEffect22=fromFiberEffect3,supervised22=supervised3,transplant22=transplant3,withConcurrency22=withConcurrency3,withScheduler22=withScheduler3,withSchedulingPriority22=withSchedulingPriority3,withMaxOpsBeforeYield22=withMaxOpsBeforeYield3,clock22=clock3,clockWith42=clockWith32,withClockScoped22=withClockScoped3,withClock22=withClock3,console32=console22,consoleWith22=consoleWith4,withConsoleScoped22=withConsoleScoped3,withConsole22=withConsole4,delay22=delay3,sleep42=sleep32,timed22=timed3,timedWith22=timedWith3,timeout22=timeout5,timeoutOption22=timeoutOption3,timeoutFail22=timeoutFail5,timeoutFailCause22=timeoutFailCause5,timeoutTo22=timeoutTo5,configProviderWith22=configProviderWith3,withConfigProvider22=withConfigProvider3,withConfigProviderScoped22=withConfigProviderScoped3,context32=context7,contextWith22=contextWith5,contextWithEffect22=contextWithEffect5,mapInputContext22=mapInputContext8,provide22=effect_provide2,provideService22=provideService8,provideServiceEffect22=provideServiceEffect5,serviceFunction22=serviceFunction3,serviceFunctionEffect22=serviceFunctionEffect3,serviceFunctions22=serviceFunctions3,serviceConstants22=serviceConstants3,serviceMembers22=serviceMembers3,serviceOption22=serviceOption3,serviceOptional22=serviceOptional3,updateService22=updateService6,Do32=Do22,bind42=bind32,bindAll22=bindAll3,bindTo42=bindTo32,let_42=let_32,option22=option5,either32=either22,exit22=exit3,intoDeferred22=intoDeferred3,if_22=if_3,filterOrDie22=filterOrDie3,filterOrDieMessage22=filterOrDieMessage3,filterOrElse22=filterOrElse3,filterOrFail22=filterOrFail3,filterEffectOrElse22=filterEffectOrElse3,filterEffectOrFail22=filterEffectOrFail3,unless22=unless3,unlessEffect22=unlessEffect3,when22=when5,whenEffect22=whenEffect5,whenFiberRef22=whenFiberRef3,whenRef22=whenRef3,flatMap112=flatMap82,andThen52=andThen32,flatten92=flatten62,race22=race5,raceAll22=raceAll5,raceFirst22=raceFirst3,raceWith22=raceWith4,summarized22=summarized3,tap42=tap22,tapBoth22=tapBoth5,tapDefect22=tapDefect3,tapError32=tapError7,tapErrorTag22=tapErrorTag3,tapErrorCause32=tapErrorCause7,forever32=forever7,iterate22=iterate5,loop22=loop3,repeat6=repeat_combined2,repeatN22=repeatN3,repeatOrElse2=repeatOrElse_Effect2,schedule4=schedule_Effect2,scheduleForked22=scheduleForked3,scheduleFrom2=scheduleFrom_Effect2,whileLoop22=whileLoop3,getFiberRefs2=fiberRefs22,inheritFiberRefs22=inheritFiberRefs3,locally3=fiberRefLocally3,locallyWith3=fiberRefLocallyWith3,locallyScoped3=fiberRefLocallyScoped3,locallyScopedWith2=fiberRefLocallyScopedWith4,patchFiberRefs22=patchFiberRefs3,setFiberRefs22=setFiberRefs3,updateFiberRefs22=updateFiberRefs4,isFailure42=isFailure22,isSuccess32=isSuccess22,match122=match72,matchCause32=matchCause5,matchCauseEffect32=matchCauseEffect4,matchEffect22=matchEffect4,log22=log5,logWithLevel22=(level,...message)=>logWithLevel3(level)(...message),logTrace22=logTrace3,logDebug22=logDebug3,logInfo22=logInfo3,logWarning22=logWarning3,logError22=logError3,logFatal22=logFatal3,withLogSpan22=withLogSpan3,annotateLogs32=annotateLogs5,annotateLogsScoped22=annotateLogsScoped3,logAnnotations22=logAnnotations3,withUnhandledErrorLogLevel22=withUnhandledErrorLogLevel3,whenLogLevel22=whenLogLevel3,orDie32=orDie7,orDieWith22=orDieWith6,orElse52=orElse22,orElseFail22=orElseFail5,orElseSucceed22=orElseSucceed5,firstSuccessOf22=firstSuccessOf3,random32=random22,randomWith22=randomWith3,withRandom22=withRandom3,withRandomFixed2=dual2(2,(effect4,values3)=>withRandom22(effect4,fixed22(values3))),withRandomScoped22=withRandomScoped3,runtime32=runtime22,getRuntimeFlags2=runtimeFlags2,patchRuntimeFlags2=updateRuntimeFlags3,withRuntimeFlagsPatch2=withRuntimeFlags2,withRuntimeFlagsPatchScoped2=withRuntimeFlagsScoped2,tagMetrics22=tagMetrics3,labelMetrics22=labelMetrics3,tagMetricsScoped22=tagMetricsScoped3,labelMetricsScoped22=labelMetricsScoped3,metricLabels22=metricLabels3,withMetric22=withMetric3,unsafeMakeSemaphore22=unsafeMakeSemaphore3,makeSemaphore22=makeSemaphore3,unsafeMakeLatch22=unsafeMakeLatch3,makeLatch22=makeLatch3,runFork22=unsafeForkEffect2,runCallback2=unsafeRunEffect2,runPromise2=unsafeRunPromiseEffect2,runPromiseExit3=unsafeRunPromiseExitEffect2,runSync2=unsafeRunSyncEffect2,runSyncExit2=unsafeRunSyncExitEffect2,validate22=validate5,validateWith22=validateWith3,zip62=zipOptions2,zipLeft32=zipLeftOptions2,zipRight42=zipRightOptions2,zipWith62=zipWithOptions2,ap22=dual2(2,(self,that)=>zipWith62(self,that,(f,a)=>f(a))),blocked22=blocked3,runRequestBlock22=runRequestBlock3,step32=step22,request2=dual2((args22)=>isRequest22(args22[0]),fromRequest2),cacheRequestResult2=cacheRequest2,withRequestBatching22=withRequestBatching3,withRequestCaching22=withRequestCaching3,withRequestCache22=withRequestCache3,tracer22=tracer3,tracerWith42=tracerWith5,withTracer22=withTracer3,withTracerScoped22=withTracerScoped3,withTracerEnabled22=withTracerEnabled3,withTracerTiming22=withTracerTiming3,annotateSpans32=annotateSpans5,annotateCurrentSpan22=annotateCurrentSpan3,currentSpan22=currentSpan3,currentParentSpan22=currentParentSpan3,spanAnnotations22=spanAnnotations3,spanLinks22=spanLinks3,linkSpans22=linkSpans3,linkSpanCurrent22=linkSpanCurrent3,makeSpan22=makeSpan3,makeSpanScoped22=makeSpanScoped3,useSpan22=useSpan3,withSpan32=withSpan8,functionWithSpan22=functionWithSpan3,withSpanScoped22=withSpanScoped3,withParentSpan32=withParentSpan5,fromNullable32=fromNullable22,optionFromOptional22=optionFromOptional3,transposeOption2=(self)=>{return isNone4(self)?succeedNone22:map152(self.value,some7)},transposeMapOption2=dual2(2,(self,f)=>isNone4(self)?succeedNone22:map152(f(self.value),some7)),makeTagProxy2=(TagClass)=>{let cache=new Map;return new Proxy(TagClass,{get(target,prop,receiver){if(prop in target)return Reflect.get(target,prop,receiver);if(cache.has(prop))return cache.get(prop);let fn2=(...args22)=>andThen32(target,(s)=>{if(typeof s[prop]==="function")return cache.set(prop,(...args3)=>andThen32(target,(s2)=>s2[prop](...args3))),s[prop](...args22);return cache.set(prop,andThen32(target,(s2)=>s2[prop])),s[prop]}),cn=andThen32(target,(s)=>s[prop]);Object.assign(fn2,cn);let{apply,bind:bind52,call}=fn2,proto42=Object.setPrototypeOf({},Object.getPrototypeOf(cn));return proto42.apply=apply,proto42.bind=bind52,proto42.call=call,Object.setPrototypeOf(fn2,proto42),cache.set(prop,fn2),fn2}})},Tag32=(id2)=>()=>{let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;function TagClass(){}return Object.setPrototypeOf(TagClass,TagProto2),TagClass.key=id2,Object.defineProperty(TagClass,"use",{get(){return(body)=>andThen32(this,body)}}),Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}}),makeTagProxy2(TagClass)},Service2=function(){return function(){let[id2,maker]=arguments,proxy="accessors"in maker?maker.accessors:!1,limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let creationError=Error();Error.stackTraceLimit=limit;let patchState="unchecked",TagClass=function(service22){if(patchState==="unchecked"){let proto42=Object.getPrototypeOf(service22);if(proto42===Object.prototype||proto42===null)patchState="plain";else{let selfProto=Object.getPrototypeOf(this);Object.setPrototypeOf(selfProto,proto42),patchState="patched"}}if(patchState==="plain")Object.assign(this,service22);else if(patchState==="patched")return Object.setPrototypeOf(service22,Object.getPrototypeOf(this)),service22};TagClass.prototype._tag=id2,Object.defineProperty(TagClass,"make",{get(){return(service22)=>new this(service22)}}),Object.defineProperty(TagClass,"use",{get(){return(body)=>andThen32(this,body)}}),TagClass.key=id2,Object.assign(TagClass,TagProto2),Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}});let hasDeps="dependencies"in maker&&maker.dependencies.length>0,layerName=hasDeps?"DefaultWithoutDependencies":"Default",layerCache,isFunction32=!1;if("effect"in maker)isFunction32=typeof maker.effect==="function",Object.defineProperty(TagClass,layerName,{get(){if(isFunction32)return function(){return fromEffect32(TagClass,map152(maker.effect.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=fromEffect32(TagClass,map152(maker.effect,(_)=>new this(_)))}});else if("scoped"in maker)isFunction32=typeof maker.scoped==="function",Object.defineProperty(TagClass,layerName,{get(){if(isFunction32)return function(){return scoped7(TagClass,map152(maker.scoped.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=scoped7(TagClass,map152(maker.scoped,(_)=>new this(_)))}});else if("sync"in maker)Object.defineProperty(TagClass,layerName,{get(){return layerCache??=sync22(TagClass,()=>new this(maker.sync()))}});else Object.defineProperty(TagClass,layerName,{get(){return layerCache??=succeed62(TagClass,new this(maker.succeed))}});if(hasDeps){let layerWithDepsCache;Object.defineProperty(TagClass,"Default",{get(){if(isFunction32)return function(){return provide4(this.DefaultWithoutDependencies.apply(null,arguments),maker.dependencies)};return layerWithDepsCache??=provide4(this.DefaultWithoutDependencies,maker.dependencies)}})}return proxy===!0?makeTagProxy2(TagClass):TagClass}},fn2=function(nameOrBody,...pipeables){let limit=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorDef=Error();if(Error.stackTraceLimit=limit,typeof nameOrBody!=="string")return defineLength2(nameOrBody.length,function(...args22){let limit2=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorCall=Error();return Error.stackTraceLimit=limit2,fnApply2({self:this,body:nameOrBody,args:args22,pipeables,spanName:"<anonymous>",spanOptions:{context:DisablePropagation2.context(!0)},errorDef,errorCall})});let name=nameOrBody,options=pipeables[0];return(body,...pipeables2)=>defineLength2(body.length,{[name](...args22){let limit2=Error.stackTraceLimit;Error.stackTraceLimit=2;let errorCall=Error();return Error.stackTraceLimit=limit2,fnApply2({self:this,body,args:args22,pipeables:pipeables2,spanName:name,spanOptions:options,errorDef,errorCall})}}[name])};function defineLength2(length32,fn22){return Object.defineProperty(fn22,"length",{value:length32,configurable:!0})}function fnApply2(options){let effect4,fnError=void 0;if(isGeneratorFunction2(options.body))effect4=fromIterator2(()=>options.body.apply(options.self,options.args));else try{effect4=options.body.apply(options.self,options.args)}catch(error3){fnError=error3,effect4=die62(error3)}if(options.pipeables.length>0)try{for(let x of options.pipeables)effect4=x(effect4,...options.args)}catch(error3){effect4=fnError?failCause82(sequential4(die12(fnError),die12(error3))):die62(error3)}let cache=!1,captureStackTrace=()=>{if(cache!==!1)return cache;if(options.errorCall.stack){let stackDef=options.errorDef.stack.trim().split(`
101
+ `),stackCall=options.errorCall.stack.trim().split(`
102
+ `),endStackDef=stackDef.slice(2).join(`
103
+ `).trim();if(!endStackDef.includes("("))endStackDef=endStackDef.replace(/at (.*)/,"at ($1)");let endStackCall=stackCall.slice(2).join(`
104
+ `).trim();if(!endStackCall.includes("("))endStackCall=endStackCall.replace(/at (.*)/,"at ($1)");return cache=`${endStackDef}
105
+ ${endStackCall}`,cache}},opts=options.spanOptions&&"captureStackTrace"in options.spanOptions?options.spanOptions:{captureStackTrace,...options.spanOptions};return withSpan32(effect4,options.spanName,opts)}var fnUntraced22=fnUntraced3,ensureSuccessType2=()=>(effect4)=>effect4,ensureErrorType2=()=>(effect4)=>effect4,ensureRequirementsType2=()=>(effect4)=>effect4,get132=fiberRefGet2,getWith2=fiberRefGetWith2,currentContext22=currentContext3,currentSchedulingPriority22=currentSchedulingPriority3,currentScheduler22=currentScheduler3,currentTracerTimingEnabled22=currentTracerTimingEnabled3,exports_Layer2={};__export2(exports_Layer2,{zipWith:()=>zipWith72,withSpan:()=>withSpan42,withParentSpan:()=>withParentSpan42,updateService:()=>updateService32,unwrapScoped:()=>unwrapScoped22,unwrapEffect:()=>unwrapEffect22,toRuntimeWithMemoMap:()=>toRuntimeWithMemoMap22,toRuntime:()=>toRuntime22,tapErrorCause:()=>tapErrorCause42,tapError:()=>tapError42,tap:()=>tap52,syncContext:()=>syncContext22,sync:()=>sync42,suspend:()=>suspend42,succeedContext:()=>succeedContext22,succeed:()=>succeed92,span:()=>span32,setVersionMismatchErrorLogLevel:()=>setVersionMismatchErrorLogLevel2,setUnhandledErrorLogLevel:()=>setUnhandledErrorLogLevel2,setTracerTiming:()=>setTracerTiming2,setTracerEnabled:()=>setTracerEnabled2,setTracer:()=>setTracer22,setScheduler:()=>setScheduler2,setRequestCaching:()=>setRequestCaching2,setRequestCache:()=>setRequestCache2,setRequestBatching:()=>setRequestBatching2,setRandom:()=>setRandom2,setConfigProvider:()=>setConfigProvider22,setClock:()=>setClock2,service:()=>service22,scopedDiscard:()=>scopedDiscard22,scopedContext:()=>scopedContext22,scoped:()=>scoped32,scope:()=>scope42,retry:()=>retry32,provideMerge:()=>provideMerge22,provide:()=>provide32,project:()=>project22,passthrough:()=>passthrough32,parentSpan:()=>parentSpan22,orElse:()=>orElse62,orDie:()=>orDie42,mock:()=>mock22,mergeAll:()=>mergeAll62,merge:()=>merge82,memoize:()=>memoize32,matchCause:()=>matchCause42,match:()=>match132,mapError:()=>mapError42,map:()=>map162,makeMemoMap:()=>makeMemoMap22,locallyWith:()=>locallyWith22,locallyScoped:()=>locallyScoped22,locallyEffect:()=>locallyEffect22,locally:()=>locally22,launch:()=>launch22,isLayer:()=>isLayer22,isFresh:()=>isFresh22,function:()=>fromFunction22,fresh:()=>fresh22,flatten:()=>flatten102,flatMap:()=>flatMap122,fiberRefLocallyScopedWith:()=>fiberRefLocallyScopedWith32,failSync:()=>failSync42,failCauseSync:()=>failCauseSync42,failCause:()=>failCause92,fail:()=>fail102,extendScope:()=>extendScope22,empty:()=>empty282,effectDiscard:()=>effectDiscard2,effectContext:()=>effectContext2,effect:()=>effect4,discard:()=>discard22,dieSync:()=>dieSync42,die:()=>die72,context:()=>context42,catchAllCause:()=>catchAllCause42,catchAll:()=>catchAll42,buildWithScope:()=>buildWithScope22,buildWithMemoMap:()=>buildWithMemoMap22,build:()=>build22,annotateSpans:()=>annotateSpans42,annotateLogs:()=>annotateLogs42,MemoMapTypeId:()=>MemoMapTypeId22,LayerTypeId:()=>LayerTypeId22,CurrentMemoMap:()=>CurrentMemoMap22});var setConfigProvider3=(configProvider)=>scopedDiscard3(withConfigProviderScoped3(configProvider)),parentSpan3=(span22)=>succeedContext3(make56(spanTag2,span22)),span22=(name,options)=>{return options=addSpanStackTrace2(options),scoped7(spanTag2,options?.onEnd?tap22(makeSpanScoped3(name,options),(span32)=>addFinalizer4((exit32)=>options.onEnd(span32,exit32))):makeSpanScoped3(name,options))},setTracer3=(tracer32)=>scopedDiscard3(withTracerScoped3(tracer32)),LayerTypeId22=LayerTypeId3,MemoMapTypeId22=MemoMapTypeId3,CurrentMemoMap22=CurrentMemoMap3,isLayer22=isLayer3,isFresh22=isFresh3,annotateLogs42=annotateLogs22,annotateSpans42=annotateSpans22,build22=build3,buildWithScope22=buildWithScope3,catchAll42=catchAll22,catchAllCause42=catchAllCause22,context42=context22,die72=die52,dieSync42=dieSync22,discard22=discard3,effect4=fromEffect32,effectDiscard2=fromEffectDiscard2,effectContext2=fromEffectContext2,empty282=empty272,extendScope22=extendScope3,fail102=fail72,failSync42=failSync22,failCause92=failCause62,failCauseSync42=failCauseSync22,flatMap122=flatMap102,flatten102=flatten82,fresh22=fresh3,mock22=mock3,fromFunction22=fromFunction5,launch22=launch3,map162=map132,mapError42=mapError22,match132=match112,matchCause42=matchCause22,memoize32=memoize22,merge82=merge62,mergeAll62=mergeAll42,orDie42=orDie22,orElse62=orElse42,passthrough32=passthrough5,project22=project3,locallyEffect22=locallyEffect3,locally22=fiberRefLocally22,locallyWith22=fiberRefLocallyWith22,locallyScoped22=fiberRefLocallyScoped22,fiberRefLocallyScopedWith32=fiberRefLocallyScopedWith22,retry32=retry8,scope42=scope22,scoped32=scoped7,scopedDiscard22=scopedDiscard3,scopedContext22=scopedContext3,service22=service3,succeed92=succeed62,succeedContext22=succeedContext3,suspend42=suspend22,sync42=sync22,syncContext22=syncContext3,tap52=tap32,tapError42=tapError22,tapErrorCause42=tapErrorCause22,toRuntime22=toRuntime3,toRuntimeWithMemoMap22=toRuntimeWithMemoMap3,provide32=provide4,provideMerge22=provideMerge3,zipWith72=zipWith52,unwrapEffect22=unwrapEffect3,unwrapScoped22=unwrapScoped6,setClock2=(clock32)=>scopedDiscard22(fiberRefLocallyScopedWith4(currentServices2,add22(clockTag2,clock32))),setConfigProvider22=setConfigProvider3,parentSpan22=parentSpan3,setRandom2=(random42)=>scopedDiscard22(fiberRefLocallyScopedWith4(currentServices2,add22(randomTag2,random42))),setRequestBatching2=(requestBatching)=>scopedDiscard22(fiberRefLocallyScoped3(currentRequestBatching2,requestBatching)),setRequestCaching2=(requestCaching)=>scopedDiscard22(fiberRefLocallyScoped3(currentCacheEnabled2,requestCaching)),setRequestCache2=(cache)=>scopedDiscard22(isEffect3(cache)?flatMap82(cache,(x)=>fiberRefLocallyScoped3(currentCache2,x)):fiberRefLocallyScoped3(currentCache2,cache)),setScheduler2=(scheduler)=>scopedDiscard22(fiberRefLocallyScoped3(currentScheduler3,scheduler)),span32=span22,setTracer22=setTracer3,setTracerEnabled2=(enabled22)=>scopedDiscard22(fiberRefLocallyScoped3(currentTracerEnabled2,enabled22)),setTracerTiming2=(enabled22)=>scopedDiscard22(fiberRefLocallyScoped3(currentTracerTimingEnabled3,enabled22)),setUnhandledErrorLogLevel2=(level)=>scopedDiscard22(fiberRefLocallyScoped3(currentUnhandledErrorLogLevel2,level)),setVersionMismatchErrorLogLevel2=(level)=>scopedDiscard22(fiberRefLocallyScoped3(currentVersionMismatchErrorLogLevel2,level)),withSpan42=withSpan22,withParentSpan42=withParentSpan22,makeMemoMap22=makeMemoMap3,buildWithMemoMap22=buildWithMemoMap3,updateService32=dual2(3,(layer,tag,f)=>provide32(layer,map162(context42(),(c)=>add22(c,tag,f(unsafeGet32(c,tag)))))),EnqueueSymbolKey2="effect/QueueEnqueue",EnqueueTypeId2=Symbol.for(EnqueueSymbolKey2),DequeueSymbolKey2="effect/QueueDequeue",DequeueTypeId3=Symbol.for(DequeueSymbolKey2),QueueStrategySymbolKey2="effect/QueueStrategy",QueueStrategyTypeId2=Symbol.for(QueueStrategySymbolKey2),BackingQueueSymbolKey2="effect/BackingQueue",BackingQueueTypeId2=Symbol.for(BackingQueueSymbolKey2),queueStrategyVariance2={_A:(_)=>_},backingQueueVariance2={_A:(_)=>_},enqueueVariance2={_In:(_)=>_},dequeueVariance2={_Out:(_)=>_};class QueueImpl2 extends Class4{queue;takers;shutdownHook;shutdownFlag;strategy;[EnqueueTypeId2]=enqueueVariance2;[DequeueTypeId3]=dequeueVariance2;constructor(queue,takers,shutdownHook,shutdownFlag,strategy){super();this.queue=queue,this.takers=takers,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy}pipe(){return pipeArguments2(this,arguments)}commit(){return this.take}capacity(){return this.queue.capacity()}get size(){return suspend13(()=>catchAll9(this.unsafeSize(),()=>interrupt22))}unsafeSize(){if(get62(this.shutdownFlag))return none22();return some22(this.queue.length()-length22(this.takers)+this.strategy.surplusSize())}get isEmpty(){return map92(this.size,(size92)=>size92<=0)}get isFull(){return map92(this.size,(size92)=>size92>=this.capacity())}get shutdown(){return uninterruptible3(withFiberRuntime3((state)=>{return pipe2(this.shutdownFlag,set22(!0)),pipe2(forEachConcurrentDiscard2(unsafePollAll2(this.takers),(d)=>deferredInterruptWith2(d,state.id()),!1,!1),zipRight22(this.strategy.shutdown),whenEffect5(deferredSucceed2(this.shutdownHook,void 0)),asVoid22)}))}get isShutdown(){return sync14(()=>get62(this.shutdownFlag))}get awaitShutdown(){return deferredAwait2(this.shutdownHook)}isActive(){return!get62(this.shutdownFlag)}unsafeOffer(value){if(get62(this.shutdownFlag))return!1;let noRemaining;if(this.queue.length()===0){let taker=pipe2(this.takers,poll22(EmptyMutableQueue2));if(taker!==EmptyMutableQueue2)unsafeCompleteDeferred3(taker,value),noRemaining=!0;else noRemaining=!1}else noRemaining=!1;if(noRemaining)return!0;let succeeded=this.queue.offer(value);return unsafeCompleteTakers2(this.strategy,this.queue,this.takers),succeeded}offer(value){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;let noRemaining;if(this.queue.length()===0){let taker=pipe2(this.takers,poll22(EmptyMutableQueue2));if(taker!==EmptyMutableQueue2)unsafeCompleteDeferred3(taker,value),noRemaining=!0;else noRemaining=!1}else noRemaining=!1;if(noRemaining)return succeed20(!0);let succeeded=this.queue.offer(value);return unsafeCompleteTakers2(this.strategy,this.queue,this.takers),succeeded?succeed20(!0):this.strategy.handleSurplus([value],this.queue,this.takers,this.shutdownFlag)})}offerAll(iterable){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;let values3=fromIterable22(iterable),pTakers=this.queue.length()===0?fromIterable22(unsafePollN3(this.takers,values3.length)):empty31,[forTakers,remaining]=pipe2(values3,splitAt3(pTakers.length));for(let i=0;i<pTakers.length;i++){let taker=pTakers[i],item=forTakers[i];unsafeCompleteDeferred3(taker,item)}if(remaining.length===0)return succeed20(!0);let surplus=this.queue.offerAll(remaining);return unsafeCompleteTakers2(this.strategy,this.queue,this.takers),isEmpty15(surplus)?succeed20(!0):this.strategy.handleSurplus(surplus,this.queue,this.takers,this.shutdownFlag)})}get take(){return withFiberRuntime3((state)=>{if(get62(this.shutdownFlag))return interrupt22;let item=this.queue.poll(EmptyMutableQueue2);if(item!==EmptyMutableQueue2)return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),succeed20(item);else{let deferred=deferredUnsafeMake2(state.id());return pipe2(suspend13(()=>{return pipe2(this.takers,offer6(deferred)),unsafeCompleteTakers2(this.strategy,this.queue,this.takers),get62(this.shutdownFlag)?interrupt22:deferredAwait2(deferred)}),onInterrupt3(()=>{return sync14(()=>unsafeRemove3(this.takers,deferred))}))}})}get takeAll(){return suspend13(()=>{return get62(this.shutdownFlag)?interrupt22:sync14(()=>{let values3=this.queue.pollUpTo(Number.POSITIVE_INFINITY);return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),fromIterable32(values3)})})}takeUpTo(max52){return suspend13(()=>get62(this.shutdownFlag)?interrupt22:sync14(()=>{let values3=this.queue.pollUpTo(max52);return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),fromIterable32(values3)}))}takeBetween(min32,max52){return suspend13(()=>takeRemainderLoop3(this,min32,max52,empty42()))}}var takeRemainderLoop3=(self,min32,max52,acc)=>{if(max52<min32)return succeed20(acc);return pipe2(takeUpTo4(self,max52),flatMap82((bs)=>{let remaining=min32-bs.length;if(remaining===1)return pipe2(take22(self),map92((b)=>pipe2(acc,appendAll22(bs),append22(b))));if(remaining>1)return pipe2(take22(self),flatMap82((b)=>takeRemainderLoop3(self,remaining-1,max52-bs.length-1,pipe2(acc,appendAll22(bs),append22(b)))));return succeed20(pipe2(acc,appendAll22(bs)))}))},isQueue2=(u)=>isEnqueue2(u)&&isDequeue2(u),isEnqueue2=(u)=>hasProperty2(u,EnqueueTypeId2),isDequeue2=(u)=>hasProperty2(u,DequeueTypeId3),bounded22=(requestedCapacity)=>pipe2(sync14(()=>bounded8(requestedCapacity)),flatMap82((queue)=>make402(backingQueueFromMutableQueue2(queue),backPressureStrategy2()))),dropping7=(requestedCapacity)=>pipe2(sync14(()=>bounded8(requestedCapacity)),flatMap82((queue)=>make402(backingQueueFromMutableQueue2(queue),droppingStrategy2()))),sliding9=(requestedCapacity)=>pipe2(sync14(()=>bounded8(requestedCapacity)),flatMap82((queue)=>make402(backingQueueFromMutableQueue2(queue),slidingStrategy2()))),unbounded22=()=>pipe2(sync14(()=>unbounded8()),flatMap82((queue)=>make402(backingQueueFromMutableQueue2(queue),droppingStrategy2()))),unsafeMake92=(queue,takers,shutdownHook,shutdownFlag,strategy)=>{return new QueueImpl2(queue,takers,shutdownHook,shutdownFlag,strategy)},make402=(queue,strategy)=>pipe2(deferredMake2(),map92((deferred)=>unsafeMake92(queue,unbounded8(),deferred,make112(!1),strategy)));class BackingQueueFromMutableQueue2{mutable;[BackingQueueTypeId2]=backingQueueVariance2;constructor(mutable){this.mutable=mutable}poll(def){return poll22(this.mutable,def)}pollUpTo(limit){return pollUpTo2(this.mutable,limit)}offerAll(elements){return offerAll5(this.mutable,elements)}offer(element){return offer6(this.mutable,element)}capacity(){return capacity7(this.mutable)}length(){return length22(this.mutable)}}var backingQueueFromMutableQueue2=(mutable)=>new BackingQueueFromMutableQueue2(mutable),capacity22=(self)=>self.capacity(),size92=(self)=>self.size,isFull6=(self)=>self.isFull,isEmpty102=(self)=>self.isEmpty,isShutdown7=(self)=>self.isShutdown,awaitShutdown6=(self)=>self.awaitShutdown,shutdown7=(self)=>self.shutdown,offer22=dual2(2,(self,value)=>self.offer(value)),unsafeOffer2=dual2(2,(self,value)=>self.unsafeOffer(value)),offerAll22=dual2(2,(self,iterable)=>self.offerAll(iterable)),poll52=(self)=>map92(self.takeUpTo(1),head22),take22=(self)=>self.take,takeAll4=(self)=>self.takeAll,takeUpTo4=dual2(2,(self,max52)=>self.takeUpTo(max52)),takeBetween4=dual2(3,(self,min32,max52)=>self.takeBetween(min32,max52)),takeN4=dual2(2,(self,n)=>self.takeBetween(n,n)),backPressureStrategy2=()=>new BackPressureStrategy3,droppingStrategy2=()=>new DroppingStrategy3,slidingStrategy2=()=>new SlidingStrategy3;class BackPressureStrategy3{[QueueStrategyTypeId2]=queueStrategyVariance2;putters=unbounded8();surplusSize(){return length22(this.putters)}onCompleteTakersWithEmptyQueue(takers){while(!isEmpty72(this.putters)&&!isEmpty72(takers)){let taker=poll22(takers,void 0),putter=poll22(this.putters,void 0);if(putter[2])unsafeCompleteDeferred3(putter[1],!0);unsafeCompleteDeferred3(taker,putter[0])}}get shutdown(){return pipe2(fiberId3,flatMap82((fiberId32)=>pipe2(sync14(()=>unsafePollAll2(this.putters)),flatMap82((putters)=>forEachConcurrentDiscard2(putters,([_,deferred,isLastItem])=>isLastItem?pipe2(deferredInterruptWith2(deferred,fiberId32),asVoid22):void_22,!1,!1)))))}handleSurplus(iterable,queue,takers,isShutdown22){return withFiberRuntime3((state)=>{let deferred=deferredUnsafeMake2(state.id());return pipe2(suspend13(()=>{return this.unsafeOffer(iterable,deferred),this.unsafeOnQueueEmptySpace(queue,takers),unsafeCompleteTakers2(this,queue,takers),get62(isShutdown22)?interrupt22:deferredAwait2(deferred)}),onInterrupt3(()=>sync14(()=>this.unsafeRemove(deferred))))})}unsafeOnQueueEmptySpace(queue,takers){let keepPolling=!0;while(keepPolling&&(queue.capacity()===Number.POSITIVE_INFINITY||queue.length()<queue.capacity())){let putter=pipe2(this.putters,poll22(EmptyMutableQueue2));if(putter===EmptyMutableQueue2)keepPolling=!1;else{let offered=queue.offer(putter[0]);if(offered&&putter[2])unsafeCompleteDeferred3(putter[1],!0);else if(!offered)unsafeOfferAll3(this.putters,pipe2(unsafePollAll2(this.putters),prepend22(putter)));unsafeCompleteTakers2(this,queue,takers)}}}unsafeOffer(iterable,deferred){let stuff=fromIterable22(iterable);for(let i=0;i<stuff.length;i++){let value=stuff[i];if(i===stuff.length-1)pipe2(this.putters,offer6([value,deferred,!0]));else pipe2(this.putters,offer6([value,deferred,!1]))}}unsafeRemove(deferred){unsafeOfferAll3(this.putters,pipe2(unsafePollAll2(this.putters),filter32(([,_])=>_!==deferred)))}}class DroppingStrategy3{[QueueStrategyTypeId2]=queueStrategyVariance2;surplusSize(){return 0}get shutdown(){return void_22}onCompleteTakersWithEmptyQueue(){}handleSurplus(_iterable,_queue,_takers,_isShutdown){return succeed20(!1)}unsafeOnQueueEmptySpace(_queue,_takers){}}class SlidingStrategy3{[QueueStrategyTypeId2]=queueStrategyVariance2;surplusSize(){return 0}get shutdown(){return void_22}onCompleteTakersWithEmptyQueue(){}handleSurplus(iterable,queue,takers,_isShutdown){return sync14(()=>{return this.unsafeOffer(queue,iterable),unsafeCompleteTakers2(this,queue,takers),!0})}unsafeOnQueueEmptySpace(_queue,_takers){}unsafeOffer(queue,iterable){let iterator=iterable[Symbol.iterator](),next4,offering=!0;while(!(next4=iterator.next()).done&&offering){if(queue.capacity()===0)return;queue.poll(EmptyMutableQueue2),offering=queue.offer(next4.value)}}}var unsafeCompleteDeferred3=(deferred,a)=>{return deferredUnsafeDone2(deferred,succeed20(a))},unsafeOfferAll3=(queue,as52)=>{return pipe2(queue,offerAll5(as52))},unsafePollAll2=(queue)=>{return pipe2(queue,pollUpTo2(Number.POSITIVE_INFINITY))},unsafePollN3=(queue,max52)=>{return pipe2(queue,pollUpTo2(max52))},unsafeRemove3=(queue,a)=>{unsafeOfferAll3(queue,pipe2(unsafePollAll2(queue),filter32((b)=>a!==b)))},unsafeCompleteTakers2=(strategy,queue,takers)=>{let keepPolling=!0;while(keepPolling&&queue.length()!==0){let taker=pipe2(takers,poll22(EmptyMutableQueue2));if(taker!==EmptyMutableQueue2){let element=queue.poll(EmptyMutableQueue2);if(element!==EmptyMutableQueue2)unsafeCompleteDeferred3(taker,element),strategy.unsafeOnQueueEmptySpace(queue,takers);else unsafeOfferAll3(takers,pipe2(unsafePollAll2(takers),prepend22(taker)));keepPolling=!0}else keepPolling=!1}if(keepPolling&&queue.length()===0&&!isEmpty72(takers))strategy.onCompleteTakersWithEmptyQueue(takers)},AbsentValue3=Symbol.for("effect/PubSub/AbsentValue"),addSubscribers2=(subscription,pollers)=>(subscribers)=>{if(!subscribers.has(subscription))subscribers.set(subscription,new Set);subscribers.get(subscription).add(pollers)},removeSubscribers2=(subscription,pollers)=>(subscribers)=>{if(!subscribers.has(subscription))return;let set72=subscribers.get(subscription);if(set72.delete(pollers),set72.size===0)subscribers.delete(subscription)},bounded32=(capacity32)=>suspend13(()=>{let pubsub=makeBoundedPubSub2(capacity32);return makePubSub2(pubsub,new BackPressureStrategy22)}),dropping22=(capacity32)=>suspend13(()=>{let pubsub=makeBoundedPubSub2(capacity32);return makePubSub2(pubsub,new DroppingStrategy22)}),sliding22=(capacity32)=>suspend13(()=>{let pubsub=makeBoundedPubSub2(capacity32);return makePubSub2(pubsub,new SlidingStrategy22)}),unbounded32=(options)=>suspend13(()=>{let pubsub=makeUnboundedPubSub2(options);return makePubSub2(pubsub,new DroppingStrategy22)}),shutdown22=(self)=>self.shutdown,subscribe4=(self)=>self.subscribe,makeBoundedPubSub2=(capacity32)=>{let options=typeof capacity32==="number"?{capacity:capacity32}:capacity32;ensureCapacity2(options.capacity);let replayBuffer=options.replay&&options.replay>0?new ReplayBuffer2(Math.ceil(options.replay)):void 0;if(options.capacity===1)return new BoundedPubSubSingle2(replayBuffer);else if(nextPow22(options.capacity)===options.capacity)return new BoundedPubSubPow22(options.capacity,replayBuffer);else return new BoundedPubSubArb2(options.capacity,replayBuffer)},makeUnboundedPubSub2=(options)=>new UnboundedPubSub2(options?.replay?new ReplayBuffer2(options.replay):void 0),makeSubscription3=(pubsub,subscribers,strategy)=>map92(deferredMake2(),(deferred)=>unsafeMakeSubscription2(pubsub,subscribers,pubsub.subscribe(),unbounded8(),deferred,make112(!1),strategy)),unsafeMakeSubscription2=(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy)=>new SubscriptionImpl2(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy,pubsub.replayWindow());class BoundedPubSubArb2{capacity;replayBuffer;array;publisherIndex=0;subscribers;subscriberCount=0;subscribersIndex=0;constructor(capacity32,replayBuffer){this.capacity=capacity32,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity32}),this.subscribers=Array.from({length:capacity32})}replayWindow(){return this.replayBuffer?new ReplayWindowImpl2(this.replayBuffer):emptyReplayWindow2}isEmpty(){return this.publisherIndex===this.subscribersIndex}isFull(){return this.publisherIndex===this.subscribersIndex+this.capacity}size(){return this.publisherIndex-this.subscribersIndex}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0){let index=this.publisherIndex%this.capacity;this.array[index]=value,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1}if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty42()}let chunk22=fromIterable32(elements),n=chunk22.length,size102=this.publisherIndex-this.subscribersIndex,available=this.capacity-size102,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk22;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let a=unsafeGet42(chunk22,iteratorIndex++),index=this.publisherIndex%this.capacity;if(this.array[index]=a,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1,this.replayBuffer)this.replayBuffer.offer(a)}return drop22(chunk22,iteratorIndex)}slide(){if(this.subscribersIndex!==this.publisherIndex){let index=this.subscribersIndex%this.capacity;this.array[index]=AbsentValue3,this.subscribers[index]=0,this.subscribersIndex+=1}if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubArbSubscription2(this,this.publisherIndex,!1)}}class BoundedPubSubArbSubscription2{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.publisherIndex===this.subscriberIndex||this.self.publisherIndex===this.self.subscribersIndex}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;if(this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex),this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex%this.self.capacity,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;return this.subscriberIndex+=1,elem}return default_}pollUpTo(n){if(this.unsubscribed)return empty42();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size102=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size102);if(toPoll<=0)return empty42();let builder=[],pollUpToIndex=this.subscriberIndex+toPoll;while(this.subscriberIndex!==pollUpToIndex){let index=this.subscriberIndex%this.self.capacity,a=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;builder.push(a),this.subscriberIndex+=1}return fromIterable32(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);while(this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex%this.self.capacity;if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;this.subscriberIndex+=1}}}}class BoundedPubSubPow22{capacity;replayBuffer;array;mask;publisherIndex=0;subscribers;subscriberCount=0;subscribersIndex=0;constructor(capacity32,replayBuffer){this.capacity=capacity32,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity32}),this.mask=capacity32-1,this.subscribers=Array.from({length:capacity32})}replayWindow(){return this.replayBuffer?new ReplayWindowImpl2(this.replayBuffer):emptyReplayWindow2}isEmpty(){return this.publisherIndex===this.subscribersIndex}isFull(){return this.publisherIndex===this.subscribersIndex+this.capacity}size(){return this.publisherIndex-this.subscribersIndex}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0){let index=this.publisherIndex&this.mask;this.array[index]=value,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1}if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty42()}let chunk22=fromIterable32(elements),n=chunk22.length,size102=this.publisherIndex-this.subscribersIndex,available=this.capacity-size102,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk22;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let elem=unsafeGet42(chunk22,iteratorIndex++),index=this.publisherIndex&this.mask;if(this.array[index]=elem,this.subscribers[index]=this.subscriberCount,this.publisherIndex+=1,this.replayBuffer)this.replayBuffer.offer(elem)}return drop22(chunk22,iteratorIndex)}slide(){if(this.subscribersIndex!==this.publisherIndex){let index=this.subscribersIndex&this.mask;this.array[index]=AbsentValue3,this.subscribers[index]=0,this.subscribersIndex+=1}if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubPow2Subscription2(this,this.publisherIndex,!1)}}class BoundedPubSubPow2Subscription2{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.publisherIndex===this.subscriberIndex||this.self.publisherIndex===this.self.subscribersIndex}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;if(this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex),this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex&this.self.mask,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;return this.subscriberIndex+=1,elem}return default_}pollUpTo(n){if(this.unsubscribed)return empty42();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size102=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size102);if(toPoll<=0)return empty42();let builder=[],pollUpToIndex=this.subscriberIndex+toPoll;while(this.subscriberIndex!==pollUpToIndex){let index=this.subscriberIndex&this.self.mask,elem=this.self.array[index];if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;builder.push(elem),this.subscriberIndex+=1}return fromIterable32(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);while(this.subscriberIndex!==this.self.publisherIndex){let index=this.subscriberIndex&this.self.mask;if(this.self.subscribers[index]-=1,this.self.subscribers[index]===0)this.self.array[index]=AbsentValue3,this.self.subscribersIndex+=1;this.subscriberIndex+=1}}}}class BoundedPubSubSingle2{replayBuffer;publisherIndex=0;subscriberCount=0;subscribers=0;value=AbsentValue3;capacity=1;constructor(replayBuffer){this.replayBuffer=replayBuffer}replayWindow(){return this.replayBuffer?new ReplayWindowImpl2(this.replayBuffer):emptyReplayWindow2}pipe(){return pipeArguments2(this,arguments)}isEmpty(){return this.subscribers===0}isFull(){return!this.isEmpty()}size(){return this.isEmpty()?0:1}publish(value){if(this.isFull())return!1;if(this.subscriberCount!==0)this.value=value,this.subscribers=this.subscriberCount,this.publisherIndex+=1;if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.subscriberCount===0){if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty42()}let chunk22=fromIterable32(elements);if(isEmpty15(chunk22))return chunk22;if(this.publish(unsafeHead3(chunk22)))return drop22(chunk22,1);else return chunk22}slide(){if(this.isFull())this.subscribers=0,this.value=AbsentValue3;if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.subscriberCount+=1,new BoundedPubSubSingleSubscription2(this,this.publisherIndex,!1)}}class BoundedPubSubSingleSubscription2{self;subscriberIndex;unsubscribed;constructor(self,subscriberIndex,unsubscribed){this.self=self,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){return this.unsubscribed||this.self.subscribers===0||this.subscriberIndex===this.self.publisherIndex}size(){return this.isEmpty()?0:1}poll(default_){if(this.isEmpty())return default_;let elem=this.self.value;if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue3;return this.subscriberIndex+=1,elem}pollUpTo(n){if(this.isEmpty()||n<1)return empty42();let a=this.self.value;if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue3;return this.subscriberIndex+=1,of22(a)}unsubscribe(){if(!this.unsubscribed){if(this.unsubscribed=!0,this.self.subscriberCount-=1,this.subscriberIndex!==this.self.publisherIndex){if(this.self.subscribers-=1,this.self.subscribers===0)this.self.value=AbsentValue3}}}}class UnboundedPubSub2{replayBuffer;publisherHead={value:AbsentValue3,subscribers:0,next:null};publisherTail=this.publisherHead;publisherIndex=0;subscribersIndex=0;capacity=Number.MAX_SAFE_INTEGER;constructor(replayBuffer){this.replayBuffer=replayBuffer}replayWindow(){return this.replayBuffer?new ReplayWindowImpl2(this.replayBuffer):emptyReplayWindow2}isEmpty(){return this.publisherHead===this.publisherTail}isFull(){return!1}size(){return this.publisherIndex-this.subscribersIndex}publish(value){let subscribers=this.publisherTail.subscribers;if(subscribers!==0)this.publisherTail.next={value,subscribers,next:null},this.publisherTail=this.publisherTail.next,this.publisherIndex+=1;if(this.replayBuffer)this.replayBuffer.offer(value);return!0}publishAll(elements){if(this.publisherTail.subscribers!==0)for(let a of elements)this.publish(a);else if(this.replayBuffer)this.replayBuffer.offerAll(elements);return empty42()}slide(){if(this.publisherHead!==this.publisherTail)this.publisherHead=this.publisherHead.next,this.publisherHead.value=AbsentValue3,this.subscribersIndex+=1;if(this.replayBuffer)this.replayBuffer.slide()}subscribe(){return this.publisherTail.subscribers+=1,new UnboundedPubSubSubscription2(this,this.publisherTail,this.publisherIndex,!1)}}class UnboundedPubSubSubscription2{self;subscriberHead;subscriberIndex;unsubscribed;constructor(self,subscriberHead,subscriberIndex,unsubscribed){this.self=self,this.subscriberHead=subscriberHead,this.subscriberIndex=subscriberIndex,this.unsubscribed=unsubscribed}isEmpty(){if(this.unsubscribed)return!0;let empty292=!0,loop32=!0;while(loop32)if(this.subscriberHead===this.self.publisherTail)loop32=!1;else if(this.subscriberHead.next.value!==AbsentValue3)empty292=!1,loop32=!1;else this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1;return empty292}size(){if(this.unsubscribed)return 0;return this.self.publisherIndex-Math.max(this.subscriberIndex,this.self.subscribersIndex)}poll(default_){if(this.unsubscribed)return default_;let loop32=!0,polled=default_;while(loop32)if(this.subscriberHead===this.self.publisherTail)loop32=!1;else{let elem=this.subscriberHead.next.value;if(elem!==AbsentValue3){if(polled=elem,this.subscriberHead.subscribers-=1,this.subscriberHead.subscribers===0)this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=AbsentValue3,this.self.subscribersIndex+=1;loop32=!1}this.subscriberHead=this.subscriberHead.next,this.subscriberIndex+=1}return polled}pollUpTo(n){let builder=[],default_=AbsentValue3,i=0;while(i!==n){let a=this.poll(default_);if(a===default_)i=n;else builder.push(a),i+=1}return fromIterable32(builder)}unsubscribe(){if(!this.unsubscribed){this.unsubscribed=!0,this.self.publisherTail.subscribers-=1;while(this.subscriberHead!==this.self.publisherTail){if(this.subscriberHead.next.value!==AbsentValue3){if(this.subscriberHead.subscribers-=1,this.subscriberHead.subscribers===0)this.self.publisherHead=this.self.publisherHead.next,this.self.publisherHead.value=AbsentValue3,this.self.subscribersIndex+=1}this.subscriberHead=this.subscriberHead.next}}}}class SubscriptionImpl2 extends Class4{pubsub;subscribers;subscription;pollers;shutdownHook;shutdownFlag;strategy;replayWindow;[DequeueTypeId3]=dequeueVariance2;constructor(pubsub,subscribers,subscription,pollers,shutdownHook,shutdownFlag,strategy,replayWindow){super();this.pubsub=pubsub,this.subscribers=subscribers,this.subscription=subscription,this.pollers=pollers,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy,this.replayWindow=replayWindow}commit(){return this.take}pipe(){return pipeArguments2(this,arguments)}capacity(){return this.pubsub.capacity}isActive(){return!get62(this.shutdownFlag)}get size(){return suspend13(()=>get62(this.shutdownFlag)?interrupt22:succeed20(this.subscription.size()+this.replayWindow.remaining))}unsafeSize(){if(get62(this.shutdownFlag))return none22();return some22(this.subscription.size()+this.replayWindow.remaining)}get isFull(){return suspend13(()=>get62(this.shutdownFlag)?interrupt22:succeed20(this.subscription.size()===this.capacity()))}get isEmpty(){return map92(this.size,(size102)=>size102===0)}get shutdown(){return uninterruptible3(withFiberRuntime3((state)=>{return set22(this.shutdownFlag,!0),pipe2(forEachParUnbounded2(unsafePollAllQueue2(this.pollers),(d)=>deferredInterruptWith2(d,state.id()),!1),zipRight22(sync14(()=>{this.subscribers.delete(this.subscription),this.subscription.unsubscribe(),this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers)})),whenEffect5(deferredSucceed2(this.shutdownHook,void 0)),asVoid22)}))}get isShutdown(){return sync14(()=>get62(this.shutdownFlag))}get awaitShutdown(){return deferredAwait2(this.shutdownHook)}get take(){return withFiberRuntime3((state)=>{if(get62(this.shutdownFlag))return interrupt22;if(this.replayWindow.remaining>0){let message2=this.replayWindow.take();return succeed20(message2)}let message=isEmpty72(this.pollers)?this.subscription.poll(EmptyMutableQueue2):EmptyMutableQueue2;if(message===EmptyMutableQueue2){let deferred=deferredUnsafeMake2(state.id());return pipe2(suspend13(()=>{return pipe2(this.pollers,offer6(deferred)),pipe2(this.subscribers,addSubscribers2(this.subscription,this.pollers)),this.strategy.unsafeCompletePollers(this.pubsub,this.subscribers,this.subscription,this.pollers),get62(this.shutdownFlag)?interrupt22:deferredAwait2(deferred)}),onInterrupt3(()=>sync14(()=>unsafeRemove22(this.pollers,deferred))))}else return this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),succeed20(message)})}get takeAll(){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;let as52=isEmpty72(this.pollers)?unsafePollAllSubscription2(this.subscription):empty42();if(this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),this.replayWindow.remaining>0)return succeed20(appendAll22(this.replayWindow.takeAll(),as52));return succeed20(as52)})}takeUpTo(max52){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;let replay=void 0;if(this.replayWindow.remaining>=max52){let as62=this.replayWindow.takeN(max52);return succeed20(as62)}else if(this.replayWindow.remaining>0)replay=this.replayWindow.takeAll(),max52=max52-replay.length;let as52=isEmpty72(this.pollers)?unsafePollN22(this.subscription,max52):empty42();return this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),replay?succeed20(appendAll22(replay,as52)):succeed20(as52)})}takeBetween(min32,max52){return suspend13(()=>takeRemainderLoop22(this,min32,max52,empty42()))}}var takeRemainderLoop22=(self,min32,max52,acc)=>{if(max52<min32)return succeed20(acc);return pipe2(self.takeUpTo(max52),flatMap82((bs)=>{let remaining=min32-bs.length;if(remaining===1)return pipe2(self.take,map92((b)=>pipe2(acc,appendAll22(bs),append22(b))));if(remaining>1)return pipe2(self.take,flatMap82((b)=>takeRemainderLoop22(self,remaining-1,max52-bs.length-1,pipe2(acc,appendAll22(bs),append22(b)))));return succeed20(pipe2(acc,appendAll22(bs)))}))};class PubSubImpl2{pubsub;subscribers;scope;shutdownHook;shutdownFlag;strategy;[EnqueueTypeId2]=enqueueVariance2;[DequeueTypeId3]=dequeueVariance2;constructor(pubsub,subscribers,scope52,shutdownHook,shutdownFlag,strategy){this.pubsub=pubsub,this.subscribers=subscribers,this.scope=scope52,this.shutdownHook=shutdownHook,this.shutdownFlag=shutdownFlag,this.strategy=strategy}capacity(){return this.pubsub.capacity}get size(){return suspend13(()=>get62(this.shutdownFlag)?interrupt22:sync14(()=>this.pubsub.size()))}unsafeSize(){if(get62(this.shutdownFlag))return none22();return some22(this.pubsub.size())}get isFull(){return map92(this.size,(size102)=>size102===this.capacity())}get isEmpty(){return map92(this.size,(size102)=>size102===0)}get awaitShutdown(){return deferredAwait2(this.shutdownHook)}get isShutdown(){return sync14(()=>get62(this.shutdownFlag))}get shutdown(){return uninterruptible3(withFiberRuntime3((state)=>{return pipe2(this.shutdownFlag,set22(!0)),pipe2(this.scope.close(exitInterrupt3(state.id())),zipRight22(this.strategy.shutdown),whenEffect5(deferredSucceed2(this.shutdownHook,void 0)),asVoid22)}))}publish(value){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;if(this.pubsub.publish(value))return this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),succeed20(!0);return this.strategy.handleSurplus(this.pubsub,this.subscribers,of22(value),this.shutdownFlag)})}isActive(){return!get62(this.shutdownFlag)}unsafeOffer(value){if(get62(this.shutdownFlag))return!1;if(this.pubsub.publish(value))return this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),!0;return!1}publishAll(elements){return suspend13(()=>{if(get62(this.shutdownFlag))return interrupt22;let surplus=unsafePublishAll2(this.pubsub,elements);if(this.strategy.unsafeCompleteSubscribers(this.pubsub,this.subscribers),isEmpty15(surplus))return succeed20(!0);return this.strategy.handleSurplus(this.pubsub,this.subscribers,surplus,this.shutdownFlag)})}get subscribe(){let acquire=tap22(all32([this.scope.fork(sequential22),makeSubscription3(this.pubsub,this.subscribers,this.strategy)]),(tuple22)=>tuple22[0].addFinalizer(()=>tuple22[1].shutdown));return map92(acquireRelease5(acquire,(tuple22,exit32)=>tuple22[0].close(exit32)),(tuple22)=>tuple22[1])}offer(value){return this.publish(value)}offerAll(elements){return this.publishAll(elements)}pipe(){return pipeArguments2(this,arguments)}}var makePubSub2=(pubsub,strategy)=>flatMap82(scopeMake2(),(scope52)=>map92(deferredMake2(),(deferred)=>unsafeMakePubSub2(pubsub,new Map,scope52,deferred,make112(!1),strategy))),unsafeMakePubSub2=(pubsub,subscribers,scope52,shutdownHook,shutdownFlag,strategy)=>new PubSubImpl2(pubsub,subscribers,scope52,shutdownHook,shutdownFlag,strategy),ensureCapacity2=(capacity32)=>{if(capacity32<=0)throw new InvalidPubSubCapacityException2(`Cannot construct PubSub with capacity of ${capacity32}`)},unsafeCompleteDeferred22=(deferred,a)=>{deferredUnsafeDone2(deferred,succeed20(a))},unsafeOfferAll22=(queue,as52)=>{return pipe2(queue,offerAll5(as52))},unsafePollAllQueue2=(queue)=>{return pipe2(queue,pollUpTo2(Number.POSITIVE_INFINITY))},unsafePollAllSubscription2=(subscription)=>{return subscription.pollUpTo(Number.POSITIVE_INFINITY)},unsafePollN22=(subscription,max52)=>{return subscription.pollUpTo(max52)},unsafePublishAll2=(pubsub,as52)=>{return pubsub.publishAll(as52)},unsafeRemove22=(queue,value)=>{unsafeOfferAll22(queue,pipe2(unsafePollAllQueue2(queue),filter32((elem)=>elem!==value)))};class BackPressureStrategy22{publishers=unbounded8();get shutdown(){return flatMap82(fiberId3,(fiberId32)=>flatMap82(sync14(()=>unsafePollAllQueue2(this.publishers)),(publishers)=>forEachConcurrentDiscard2(publishers,([_,deferred,last32])=>last32?pipe2(deferredInterruptWith2(deferred,fiberId32),asVoid22):void_22,!1,!1)))}handleSurplus(pubsub,subscribers,elements,isShutdown22){return withFiberRuntime3((state)=>{let deferred=deferredUnsafeMake2(state.id());return pipe2(suspend13(()=>{return this.unsafeOffer(elements,deferred),this.unsafeOnPubSubEmptySpace(pubsub,subscribers),this.unsafeCompleteSubscribers(pubsub,subscribers),get62(isShutdown22)?interrupt22:deferredAwait2(deferred)}),onInterrupt3(()=>sync14(()=>this.unsafeRemove(deferred))))})}unsafeOnPubSubEmptySpace(pubsub,subscribers){let keepPolling=!0;while(keepPolling&&!pubsub.isFull()){let publisher=pipe2(this.publishers,poll22(EmptyMutableQueue2));if(publisher===EmptyMutableQueue2)keepPolling=!1;else{let published=pubsub.publish(publisher[0]);if(published&&publisher[2])unsafeCompleteDeferred22(publisher[1],!0);else if(!published)unsafeOfferAll22(this.publishers,pipe2(unsafePollAllQueue2(this.publishers),prepend22(publisher)));this.unsafeCompleteSubscribers(pubsub,subscribers)}}}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers2(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers2(this,pubsub,subscribers)}unsafeOffer(elements,deferred){let iterator=elements[Symbol.iterator](),next4=iterator.next();if(!next4.done)while(!0){let value=next4.value;if(next4=iterator.next(),next4.done){pipe2(this.publishers,offer6([value,deferred,!0]));break}pipe2(this.publishers,offer6([value,deferred,!1]))}}unsafeRemove(deferred){unsafeOfferAll22(this.publishers,pipe2(unsafePollAllQueue2(this.publishers),filter32(([_,a])=>a!==deferred)))}}class DroppingStrategy22{get shutdown(){return void_22}handleSurplus(_pubsub,_subscribers,_elements,_isShutdown){return succeed20(!1)}unsafeOnPubSubEmptySpace(_pubsub,_subscribers){}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers2(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers2(this,pubsub,subscribers)}}class SlidingStrategy22{get shutdown(){return void_22}handleSurplus(pubsub,subscribers,elements,_isShutdown){return sync14(()=>{return this.unsafeSlidingPublish(pubsub,elements),this.unsafeCompleteSubscribers(pubsub,subscribers),!0})}unsafeOnPubSubEmptySpace(_pubsub,_subscribers){}unsafeCompletePollers(pubsub,subscribers,subscription,pollers){return unsafeStrategyCompletePollers2(this,pubsub,subscribers,subscription,pollers)}unsafeCompleteSubscribers(pubsub,subscribers){return unsafeStrategyCompleteSubscribers2(this,pubsub,subscribers)}unsafeSlidingPublish(pubsub,elements){let it=elements[Symbol.iterator](),next4=it.next();if(!next4.done&&pubsub.capacity>0){let a=next4.value,loop32=!0;while(loop32){pubsub.slide();let pub=pubsub.publish(a);if(pub&&(next4=it.next())&&!next4.done)a=next4.value;else if(pub)loop32=!1}}}}var unsafeStrategyCompletePollers2=(strategy,pubsub,subscribers,subscription,pollers)=>{let keepPolling=!0;while(keepPolling&&!subscription.isEmpty()){let poller=pipe2(pollers,poll22(EmptyMutableQueue2));if(poller===EmptyMutableQueue2)if(pipe2(subscribers,removeSubscribers2(subscription,pollers)),isEmpty72(pollers))keepPolling=!1;else pipe2(subscribers,addSubscribers2(subscription,pollers));else{let pollResult=subscription.poll(EmptyMutableQueue2);if(pollResult===EmptyMutableQueue2)unsafeOfferAll22(pollers,pipe2(unsafePollAllQueue2(pollers),prepend22(poller)));else unsafeCompleteDeferred22(poller,pollResult),strategy.unsafeOnPubSubEmptySpace(pubsub,subscribers)}}},unsafeStrategyCompleteSubscribers2=(strategy,pubsub,subscribers)=>{for(let[subscription,pollersSet]of subscribers)for(let pollers of pollersSet)strategy.unsafeCompletePollers(pubsub,subscribers,subscription,pollers)};class ReplayBuffer2{capacity;constructor(capacity32){this.capacity=capacity32}head={value:AbsentValue3,next:null};tail=this.head;size=0;index=0;slide(){this.index++}offer(a){if(this.tail.value=a,this.tail.next={value:AbsentValue3,next:null},this.tail=this.tail.next,this.size===this.capacity)this.head=this.head.next;else this.size+=1}offerAll(as52){for(let a of as52)this.offer(a)}}class ReplayWindowImpl2{buffer;head;index;remaining;constructor(buffer3){this.buffer=buffer3,this.index=buffer3.index,this.remaining=buffer3.size,this.head=buffer3.head}fastForward(){while(this.index<this.buffer.index)this.head=this.head.next,this.index++}take(){if(this.remaining===0)return;else if(this.index<this.buffer.index)this.fastForward();this.remaining--;let value=this.head.value;return this.head=this.head.next,value}takeN(n){if(this.remaining===0)return empty42();else if(this.index<this.buffer.index)this.fastForward();let len=Math.min(n,this.remaining),items=Array(len);for(let i=0;i<len;i++){let value=this.head.value;this.head=this.head.next,items[i]=value}return this.remaining-=len,unsafeFromArray2(items)}takeAll(){return this.takeN(this.remaining)}}var emptyReplayWindow2={remaining:0,take:()=>{return},takeN:()=>empty42(),takeAll:()=>empty42()},bounded42=bounded32,dropping32=dropping22,sliding32=sliding22,unbounded42=unbounded32,shutdown32=shutdown22,subscribe22=subscribe4,exports_Queue2={};__export2(exports_Queue2,{unsafeOffer:()=>unsafeOffer22,unbounded:()=>unbounded52,takeUpTo:()=>takeUpTo22,takeN:()=>takeN22,takeBetween:()=>takeBetween22,takeAll:()=>takeAll22,take:()=>take32,slidingStrategy:()=>slidingStrategy22,sliding:()=>sliding42,size:()=>size112,shutdown:()=>shutdown42,poll:()=>poll62,offerAll:()=>offerAll32,offer:()=>offer32,make:()=>make412,isShutdown:()=>isShutdown32,isQueue:()=>isQueue22,isFull:()=>isFull32,isEnqueue:()=>isEnqueue22,isEmpty:()=>isEmpty122,isDequeue:()=>isDequeue22,droppingStrategy:()=>droppingStrategy22,dropping:()=>dropping42,capacity:()=>capacity42,bounded:()=>bounded52,backPressureStrategy:()=>backPressureStrategy22,awaitShutdown:()=>awaitShutdown32,QueueStrategyTypeId:()=>QueueStrategyTypeId22,EnqueueTypeId:()=>EnqueueTypeId22,DequeueTypeId:()=>DequeueTypeId22,BackingQueueTypeId:()=>BackingQueueTypeId22});var EnqueueTypeId22=EnqueueTypeId2,DequeueTypeId22=DequeueTypeId3,QueueStrategyTypeId22=QueueStrategyTypeId2,BackingQueueTypeId22=BackingQueueTypeId2,isQueue22=isQueue2,isDequeue22=isDequeue2,isEnqueue22=isEnqueue2,backPressureStrategy22=backPressureStrategy2,droppingStrategy22=droppingStrategy2,slidingStrategy22=slidingStrategy2,make412=make402,bounded52=bounded22,dropping42=dropping7,sliding42=sliding9,unbounded52=unbounded22,capacity42=capacity22,size112=size92,isEmpty122=isEmpty102,isFull32=isFull6,isShutdown32=isShutdown7,awaitShutdown32=awaitShutdown6,shutdown42=shutdown7,offer32=offer22,unsafeOffer22=unsafeOffer2,offerAll32=offerAll22,poll62=poll52,take32=take22,takeAll22=takeAll4,takeUpTo22=takeUpTo4,takeBetween22=takeBetween4,takeN22=takeN4,OP_CONTINUE22="Continue",OP_CLOSE2="Close",OP_YIELD22="Yield",ChildExecutorDecisionSymbolKey2="effect/ChannelChildExecutorDecision",ChildExecutorDecisionTypeId2=Symbol.for(ChildExecutorDecisionSymbolKey2),proto42={[ChildExecutorDecisionTypeId2]:ChildExecutorDecisionTypeId2},Continue2=(_)=>{let op=Object.create(proto42);return op._tag=OP_CONTINUE22,op},OP_CONTINUATION_K2="ContinuationK",OP_CONTINUATION_FINALIZER2="ContinuationFinalizer",ContinuationTypeId2=Symbol.for("effect/ChannelContinuation"),continuationVariance2={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutDone:(_)=>_,_OutErr2:(_)=>_,_OutElem:(_)=>_,_OutDone2:(_)=>_};class ContinuationKImpl2{onSuccess;onHalt;_tag=OP_CONTINUATION_K2;[ContinuationTypeId2]=continuationVariance2;constructor(onSuccess,onHalt){this.onSuccess=onSuccess,this.onHalt=onHalt}onExit(exit32){return isFailure5(exit32)?this.onHalt(exit32.cause):this.onSuccess(exit32.value)}}class ContinuationFinalizerImpl2{finalizer;_tag=OP_CONTINUATION_FINALIZER2;[ContinuationTypeId2]=continuationVariance2;constructor(finalizer3){this.finalizer=finalizer3}}var OP_PULL_AFTER_NEXT2="PullAfterNext",OP_PULL_AFTER_ALL_ENQUEUED2="PullAfterAllEnqueued",UpstreamPullStrategySymbolKey2="effect/ChannelUpstreamPullStrategy",UpstreamPullStrategyTypeId2=Symbol.for(UpstreamPullStrategySymbolKey2),upstreamPullStrategyVariance2={_A:(_)=>_},proto52={[UpstreamPullStrategyTypeId2]:upstreamPullStrategyVariance2},PullAfterNext2=(emitSeparator)=>{let op=Object.create(proto52);return op._tag=OP_PULL_AFTER_NEXT2,op.emitSeparator=emitSeparator,op},OP_BRACKET_OUT2="BracketOut",OP_BRIDGE2="Bridge",OP_CONCAT_ALL2="ConcatAll",OP_EMIT5="Emit",OP_ENSURING2="Ensuring",OP_FAIL32="Fail",OP_FOLD22="Fold",OP_FROM_EFFECT22="FromEffect",OP_PIPE_TO2="PipeTo",OP_PROVIDE22="Provide",OP_READ3="Read",OP_SUCCEED4="Succeed",OP_SUCCEED_NOW2="SucceedNow",OP_SUSPEND22="Suspend",ChannelSymbolKey2="effect/Channel",ChannelTypeId22=Symbol.for(ChannelSymbolKey2),channelVariance22={_Env:(_)=>_,_InErr:(_)=>_,_InElem:(_)=>_,_InDone:(_)=>_,_OutErr:(_)=>_,_OutElem:(_)=>_,_OutDone:(_)=>_},proto62={[ChannelTypeId22]:channelVariance22,pipe(){return pipeArguments2(this,arguments)}},isChannel2=(u)=>hasProperty2(u,ChannelTypeId22)||isEffect22(u),acquireReleaseOut2=dual2(2,(self,release)=>{let op=Object.create(proto62);return op._tag=OP_BRACKET_OUT2,op.acquire=()=>self,op.finalizer=release,op}),catchAllCause52=dual2(2,(self,f)=>{let op=Object.create(proto62);return op._tag=OP_FOLD22,op.channel=self,op.k=new ContinuationKImpl2(succeed102,f),op}),collectElements2=(self)=>{return suspend52(()=>{let builder=[];return flatMap132(pipeTo2(self,collectElementsReader2(builder)),(value)=>sync52(()=>[fromIterable32(builder),value]))})},collectElementsReader2=(builder)=>readWith2({onInput:(outElem)=>flatMap132(sync52(()=>{builder.push(outElem)}),()=>collectElementsReader2(builder)),onFailure:fail112,onDone:succeedNow2}),concatAllWith2=(channels,f,g)=>{let op=Object.create(proto62);return op._tag=OP_CONCAT_ALL2,op.combineInners=f,op.combineAll=g,op.onPull=()=>PullAfterNext2(none22()),op.onEmit=()=>Continue2,op.value=()=>channels,op.k=identity5,op},concatMapWith2=dual2(4,(self,f,g,h)=>{let op=Object.create(proto62);return op._tag=OP_CONCAT_ALL2,op.combineInners=g,op.combineAll=h,op.onPull=()=>PullAfterNext2(none22()),op.onEmit=()=>Continue2,op.value=()=>self,op.k=f,op}),embedInput2=dual2(2,(self,input)=>{let op=Object.create(proto62);return op._tag=OP_BRIDGE2,op.input=input,op.channel=self,op}),ensuringWith4=dual2(2,(self,finalizer3)=>{let op=Object.create(proto62);return op._tag=OP_ENSURING2,op.channel=self,op.finalizer=finalizer3,op}),fail112=(error3)=>failCause102(fail52(error3)),failCause102=(cause32)=>failCauseSync52(()=>cause32),failCauseSync52=(evaluate22)=>{let op=Object.create(proto62);return op._tag=OP_FAIL32,op.error=evaluate22,op},flatMap132=dual2(2,(self,f)=>{let op=Object.create(proto62);return op._tag=OP_FOLD22,op.channel=self,op.k=new ContinuationKImpl2(f,failCause102),op}),foldCauseChannel2=dual2(2,(self,options)=>{let op=Object.create(proto62);return op._tag=OP_FOLD22,op.channel=self,op.k=new ContinuationKImpl2(options.onSuccess,options.onFailure),op}),fromEffect42=(effect22)=>{let op=Object.create(proto62);return op._tag=OP_FROM_EFFECT22,op.effect=()=>effect22,op},pipeTo2=dual2(2,(self,that)=>{let op=Object.create(proto62);return op._tag=OP_PIPE_TO2,op.left=()=>self,op.right=()=>that,op}),provideContext32=dual2(2,(self,env)=>{let op=Object.create(proto62);return op._tag=OP_PROVIDE22,op.context=()=>env,op.inner=self,op}),readWith2=(options)=>readWithCause2({onInput:options.onInput,onFailure:(cause32)=>match19(failureOrCause22(cause32),{onLeft:options.onFailure,onRight:failCause102}),onDone:options.onDone}),readWithCause2=(options)=>{let op=Object.create(proto62);return op._tag=OP_READ3,op.more=options.onInput,op.done=new ContinuationKImpl2(options.onDone,options.onFailure),op},succeed102=(value)=>sync52(()=>value),succeedNow2=(result)=>{let op=Object.create(proto62);return op._tag=OP_SUCCEED_NOW2,op.terminal=result,op},suspend52=(evaluate22)=>{let op=Object.create(proto62);return op._tag=OP_SUSPEND22,op.channel=evaluate22,op},sync52=(evaluate22)=>{let op=Object.create(proto62);return op._tag=OP_SUCCEED4,op.evaluate=evaluate22,op},void_62=succeedNow2(void 0),write2=(out)=>{let op=Object.create(proto62);return op._tag=OP_EMIT5,op.out=out,op},OP_DONE32="Done",OP_EMIT22="Emit",OP_FROM_EFFECT32="FromEffect",OP_READ22="Read",ChannelStateTypeId2=Symbol.for("effect/ChannelState"),channelStateVariance2={_E:(_)=>_,_R:(_)=>_},proto72={[ChannelStateTypeId2]:channelStateVariance2},Done22=()=>{let op=Object.create(proto72);return op._tag=OP_DONE32,op},Emit3=()=>{let op=Object.create(proto72);return op._tag=OP_EMIT22,op},fromEffect52=(effect22)=>{let op=Object.create(proto72);return op._tag=OP_FROM_EFFECT32,op.effect=effect22,op},Read2=(upstream,onEffect,onEmit,onDone3)=>{let op=Object.create(proto72);return op._tag=OP_READ22,op.upstream=upstream,op.onEffect=onEffect,op.onEmit=onEmit,op.onDone=onDone3,op},isFromEffect2=(self)=>self._tag===OP_FROM_EFFECT32,effect22=(self)=>isFromEffect2(self)?self.effect:_void2,effectOrUndefinedIgnored2=(self)=>isFromEffect2(self)?ignore22(self.effect):void 0,OP_PULL_FROM_CHILD2="PullFromChild",OP_PULL_FROM_UPSTREAM2="PullFromUpstream",OP_DRAIN_CHILD_EXECUTORS2="DrainChildExecutors",OP_EMIT32="Emit";class PullFromChild2{childExecutor;parentSubexecutor;onEmit;_tag=OP_PULL_FROM_CHILD2;constructor(childExecutor,parentSubexecutor,onEmit){this.childExecutor=childExecutor,this.parentSubexecutor=parentSubexecutor,this.onEmit=onEmit}close(exit32){let fin1=this.childExecutor.close(exit32),fin2=this.parentSubexecutor.close(exit32);if(fin1!==void 0&&fin2!==void 0)return zipWith62(exit22(fin1),exit22(fin2),(exit1,exit222)=>pipe2(exit1,zipRight32(exit222)));else if(fin1!==void 0)return fin1;else if(fin2!==void 0)return fin2;else return}enqueuePullFromChild(_child){return this}}class PullFromUpstream2{upstreamExecutor;createChild;lastDone;activeChildExecutors;combineChildResults;combineWithChildResult;onPull;onEmit;_tag=OP_PULL_FROM_UPSTREAM2;constructor(upstreamExecutor,createChild,lastDone,activeChildExecutors,combineChildResults,combineWithChildResult,onPull,onEmit){this.upstreamExecutor=upstreamExecutor,this.createChild=createChild,this.lastDone=lastDone,this.activeChildExecutors=activeChildExecutors,this.combineChildResults=combineChildResults,this.combineWithChildResult=combineWithChildResult,this.onPull=onPull,this.onEmit=onEmit}close(exit32){let fin1=this.upstreamExecutor.close(exit32),result=[...this.activeChildExecutors.map((child)=>child!==void 0?child.childExecutor.close(exit32):void 0),fin1].reduce((acc,next4)=>{if(acc!==void 0&&next4!==void 0)return zipWith62(acc,exit22(next4),(exit1,exit222)=>zipRight32(exit1,exit222));else if(acc!==void 0)return acc;else if(next4!==void 0)return exit22(next4);else return},void 0);return result===void 0?result:result}enqueuePullFromChild(child){return new PullFromUpstream2(this.upstreamExecutor,this.createChild,this.lastDone,[...this.activeChildExecutors,child],this.combineChildResults,this.combineWithChildResult,this.onPull,this.onEmit)}}class DrainChildExecutors2{upstreamExecutor;lastDone;activeChildExecutors;upstreamDone;combineChildResults;combineWithChildResult;onPull;_tag=OP_DRAIN_CHILD_EXECUTORS2;constructor(upstreamExecutor,lastDone,activeChildExecutors,upstreamDone,combineChildResults,combineWithChildResult,onPull){this.upstreamExecutor=upstreamExecutor,this.lastDone=lastDone,this.activeChildExecutors=activeChildExecutors,this.upstreamDone=upstreamDone,this.combineChildResults=combineChildResults,this.combineWithChildResult=combineWithChildResult,this.onPull=onPull}close(exit32){let fin1=this.upstreamExecutor.close(exit32),result=[...this.activeChildExecutors.map((child)=>child!==void 0?child.childExecutor.close(exit32):void 0),fin1].reduce((acc,next4)=>{if(acc!==void 0&&next4!==void 0)return zipWith62(acc,exit22(next4),(exit1,exit222)=>zipRight32(exit1,exit222));else if(acc!==void 0)return acc;else if(next4!==void 0)return exit22(next4);else return},void 0);return result===void 0?result:result}enqueuePullFromChild(child){return new DrainChildExecutors2(this.upstreamExecutor,this.lastDone,[...this.activeChildExecutors,child],this.upstreamDone,this.combineChildResults,this.combineWithChildResult,this.onPull)}}class Emit22{value;next;_tag=OP_EMIT32;constructor(value,next4){this.value=value,this.next=next4}close(exit32){let result=this.next.close(exit32);return result===void 0?result:result}enqueuePullFromChild(_child){return this}}var OP_PULLED2="Pulled",OP_NO_UPSTREAM2="NoUpstream",UpstreamPullRequestSymbolKey2="effect/ChannelUpstreamPullRequest",UpstreamPullRequestTypeId2=Symbol.for(UpstreamPullRequestSymbolKey2),upstreamPullRequestVariance2={_A:(_)=>_},proto82={[UpstreamPullRequestTypeId2]:upstreamPullRequestVariance2},Pulled2=(value)=>{let op=Object.create(proto82);return op._tag=OP_PULLED2,op.value=value,op},NoUpstream2=(activeDownstreamCount)=>{let op=Object.create(proto82);return op._tag=OP_NO_UPSTREAM2,op.activeDownstreamCount=activeDownstreamCount,op};class ChannelExecutor2{_activeSubexecutor=void 0;_cancelled=void 0;_closeLastSubstream=void 0;_currentChannel;_done=void 0;_doneStack=[];_emitted=void 0;_executeCloseLastSubstream;_input=void 0;_inProgressFinalizer=void 0;_providedEnv;constructor(initialChannel,providedEnv,executeCloseLastSubstream){this._currentChannel=initialChannel,this._executeCloseLastSubstream=executeCloseLastSubstream,this._providedEnv=providedEnv}run(){let result=void 0;while(result===void 0)if(this._cancelled!==void 0)result=this.processCancellation();else if(this._activeSubexecutor!==void 0)result=this.runSubexecutor();else try{if(this._currentChannel===void 0)result=Done22();else{if(isEffect22(this._currentChannel))this._currentChannel=fromEffect42(this._currentChannel);switch(this._currentChannel._tag){case OP_BRACKET_OUT2:{result=this.runBracketOut(this._currentChannel);break}case OP_BRIDGE2:{let bridgeInput=this._currentChannel.input;if(this._currentChannel=this._currentChannel.channel,this._input!==void 0){let inputExecutor=this._input;this._input=void 0;let drainer=()=>flatMap112(bridgeInput.awaitRead(),()=>suspend32(()=>{let state=inputExecutor.run();switch(state._tag){case OP_DONE32:return match52(inputExecutor.getDone(),{onFailure:(cause32)=>bridgeInput.error(cause32),onSuccess:(value)=>bridgeInput.done(value)});case OP_EMIT22:return flatMap112(bridgeInput.emit(inputExecutor.getEmit()),()=>drainer());case OP_FROM_EFFECT32:return matchCauseEffect32(state.effect,{onFailure:(cause32)=>bridgeInput.error(cause32),onSuccess:()=>drainer()});case OP_READ22:return readUpstream2(state,()=>drainer(),(cause32)=>bridgeInput.error(cause32))}}));result=fromEffect52(flatMap112(forkDaemon22(interruptible42(drainer())),(fiber)=>sync32(()=>this.addFinalizer((exit32)=>flatMap112(interrupt62(fiber),()=>suspend32(()=>{let effect32=this.restorePipe(exit32,inputExecutor);return effect32!==void 0?effect32:_void2}))))))}break}case OP_CONCAT_ALL2:{let executor=new ChannelExecutor2(this._currentChannel.value(),this._providedEnv,(effect32)=>sync32(()=>{let prevLastClose=this._closeLastSubstream===void 0?_void2:this._closeLastSubstream;this._closeLastSubstream=pipe2(prevLastClose,zipRight42(effect32))}));executor._input=this._input;let channel=this._currentChannel;this._activeSubexecutor=new PullFromUpstream2(executor,(value)=>channel.k(value),void 0,[],(x,y)=>channel.combineInners(x,y),(x,y)=>channel.combineAll(x,y),(request22)=>channel.onPull(request22),(value)=>channel.onEmit(value)),this._closeLastSubstream=void 0,this._currentChannel=void 0;break}case OP_EMIT5:{this._emitted=this._currentChannel.out,this._currentChannel=this._activeSubexecutor!==void 0?void 0:void_62,result=Emit3();break}case OP_ENSURING2:{this.runEnsuring(this._currentChannel);break}case OP_FAIL32:{result=this.doneHalt(this._currentChannel.error());break}case OP_FOLD22:{this._doneStack.push(this._currentChannel.k),this._currentChannel=this._currentChannel.channel;break}case OP_FROM_EFFECT22:{let effect32=this._providedEnv===void 0?this._currentChannel.effect():pipe2(this._currentChannel.effect(),provide22(this._providedEnv));result=fromEffect52(matchCauseEffect32(effect32,{onFailure:(cause32)=>{let state=this.doneHalt(cause32);return state!==void 0&&isFromEffect2(state)?state.effect:_void2},onSuccess:(value)=>{let state=this.doneSucceed(value);return state!==void 0&&isFromEffect2(state)?state.effect:_void2}}));break}case OP_PIPE_TO2:{let previousInput=this._input,leftExec=new ChannelExecutor2(this._currentChannel.left(),this._providedEnv,(effect32)=>this._executeCloseLastSubstream(effect32));leftExec._input=previousInput,this._input=leftExec,this.addFinalizer((exit32)=>{let effect32=this.restorePipe(exit32,previousInput);return effect32!==void 0?effect32:_void2}),this._currentChannel=this._currentChannel.right();break}case OP_PROVIDE22:{let previousEnv=this._providedEnv;this._providedEnv=this._currentChannel.context(),this._currentChannel=this._currentChannel.inner,this.addFinalizer(()=>sync32(()=>{this._providedEnv=previousEnv}));break}case OP_READ3:{let read=this._currentChannel;result=Read2(this._input,identity5,(emitted)=>{try{this._currentChannel=read.more(emitted)}catch(error3){this._currentChannel=read.done.onExit(die32(error3))}return},(exit32)=>{let onExit42=(exit4)=>{return read.done.onExit(exit4)};this._currentChannel=onExit42(exit32);return});break}case OP_SUCCEED4:{result=this.doneSucceed(this._currentChannel.evaluate());break}case OP_SUCCEED_NOW2:{result=this.doneSucceed(this._currentChannel.terminal);break}case OP_SUSPEND22:{this._currentChannel=this._currentChannel.channel();break}}}}catch(error3){this._currentChannel=failCause102(die42(error3))}return result}getDone(){return this._done}getEmit(){return this._emitted}cancelWith(exit32){this._cancelled=exit32}clearInProgressFinalizer(){this._inProgressFinalizer=void 0}storeInProgressFinalizer(finalizer3){this._inProgressFinalizer=finalizer3}popAllFinalizers(exit32){let finalizers=[],next4=this._doneStack.pop();while(next4){if(next4._tag==="ContinuationFinalizer")finalizers.push(next4.finalizer);next4=this._doneStack.pop()}let effect32=finalizers.length===0?_void2:runFinalizers2(finalizers,exit32);return this.storeInProgressFinalizer(effect32),effect32}popNextFinalizers(){let builder=[];while(this._doneStack.length!==0){let cont=this._doneStack[this._doneStack.length-1];if(cont._tag===OP_CONTINUATION_K2)return builder;builder.push(cont),this._doneStack.pop()}return builder}restorePipe(exit32,prev){let currInput=this._input;if(this._input=prev,currInput!==void 0)return currInput.close(exit32);return _void2}close(exit32){let runInProgressFinalizers=void 0,finalizer3=this._inProgressFinalizer;if(finalizer3!==void 0)runInProgressFinalizers=pipe2(finalizer3,ensuring22(sync32(()=>this.clearInProgressFinalizer())));let closeSelf=void 0,selfFinalizers=this.popAllFinalizers(exit32);if(selfFinalizers!==void 0)closeSelf=pipe2(selfFinalizers,ensuring22(sync32(()=>this.clearInProgressFinalizer())));let closeSubexecutors=this._activeSubexecutor===void 0?void 0:this._activeSubexecutor.close(exit32);if(closeSubexecutors===void 0&&runInProgressFinalizers===void 0&&closeSelf===void 0)return;return pipe2(exit22(ifNotNull2(closeSubexecutors)),zip62(exit22(ifNotNull2(runInProgressFinalizers))),zip62(exit22(ifNotNull2(closeSelf))),map152(([[exit1,exit222],exit322])=>pipe2(exit1,zipRight32(exit222),zipRight32(exit322))),uninterruptible22,flatMap112((exit4)=>suspend32(()=>exit4)))}doneSucceed(value){if(this._doneStack.length===0)return this._done=succeed32(value),this._currentChannel=void 0,Done22();let head52=this._doneStack[this._doneStack.length-1];if(head52._tag===OP_CONTINUATION_K2){this._doneStack.pop(),this._currentChannel=head52.onSuccess(value);return}let finalizers=this.popNextFinalizers();if(this._doneStack.length===0)return this._doneStack=finalizers.reverse(),this._done=succeed32(value),this._currentChannel=void 0,Done22();let finalizerEffect=runFinalizers2(finalizers.map((f)=>f.finalizer),succeed32(value));this.storeInProgressFinalizer(finalizerEffect);let effect32=pipe2(finalizerEffect,ensuring22(sync32(()=>this.clearInProgressFinalizer())),uninterruptible22,flatMap112(()=>sync32(()=>this.doneSucceed(value))));return fromEffect52(effect32)}doneHalt(cause32){if(this._doneStack.length===0)return this._done=failCause32(cause32),this._currentChannel=void 0,Done22();let head52=this._doneStack[this._doneStack.length-1];if(head52._tag===OP_CONTINUATION_K2){this._doneStack.pop();try{this._currentChannel=head52.onHalt(cause32)}catch(error3){this._currentChannel=failCause102(die42(error3))}return}let finalizers=this.popNextFinalizers();if(this._doneStack.length===0)return this._doneStack=finalizers.reverse(),this._done=failCause32(cause32),this._currentChannel=void 0,Done22();let finalizerEffect=runFinalizers2(finalizers.map((f)=>f.finalizer),failCause32(cause32));this.storeInProgressFinalizer(finalizerEffect);let effect32=pipe2(finalizerEffect,ensuring22(sync32(()=>this.clearInProgressFinalizer())),uninterruptible22,flatMap112(()=>sync32(()=>this.doneHalt(cause32))));return fromEffect52(effect32)}processCancellation(){return this._currentChannel=void 0,this._done=this._cancelled,this._cancelled=void 0,Done22()}runBracketOut(bracketOut){let effect32=uninterruptible22(matchCauseEffect32(this.provide(bracketOut.acquire()),{onFailure:(cause32)=>sync32(()=>{this._currentChannel=failCause102(cause32)}),onSuccess:(out)=>sync32(()=>{this.addFinalizer((exit32)=>this.provide(bracketOut.finalizer(out,exit32))),this._currentChannel=write2(out)})}));return fromEffect52(effect32)}provide(effect32){if(this._providedEnv===void 0)return effect32;return pipe2(effect32,provide22(this._providedEnv))}runEnsuring(ensuring32){this.addFinalizer(ensuring32.finalizer),this._currentChannel=ensuring32.channel}addFinalizer(f){this._doneStack.push(new ContinuationFinalizerImpl2(f))}runSubexecutor(){let subexecutor=this._activeSubexecutor;switch(subexecutor._tag){case OP_PULL_FROM_CHILD2:return this.pullFromChild(subexecutor.childExecutor,subexecutor.parentSubexecutor,subexecutor.onEmit,subexecutor);case OP_PULL_FROM_UPSTREAM2:return this.pullFromUpstream(subexecutor);case OP_DRAIN_CHILD_EXECUTORS2:return this.drainChildExecutors(subexecutor);case OP_EMIT32:return this._emitted=subexecutor.value,this._activeSubexecutor=subexecutor.next,Emit3()}}replaceSubexecutor(nextSubExec){this._currentChannel=void 0,this._activeSubexecutor=nextSubExec}finishWithExit(exit32){let state=match52(exit32,{onFailure:(cause32)=>this.doneHalt(cause32),onSuccess:(value)=>this.doneSucceed(value)});return this._activeSubexecutor=void 0,state===void 0?_void2:effect22(state)}finishSubexecutorWithCloseEffect(subexecutorDone,...closeFuncs){this.addFinalizer(()=>pipe2(closeFuncs,forEach72((closeFunc)=>pipe2(sync32(()=>closeFunc(subexecutorDone)),flatMap112((closeEffect)=>closeEffect!==void 0?closeEffect:_void2)),{discard:!0})));let state=pipe2(subexecutorDone,match52({onFailure:(cause32)=>this.doneHalt(cause32),onSuccess:(value)=>this.doneSucceed(value)}));return this._activeSubexecutor=void 0,state}applyUpstreamPullStrategy(upstreamFinished,queue,strategy){switch(strategy._tag){case OP_PULL_AFTER_NEXT2:{let shouldPrepend=!upstreamFinished||queue.some((subexecutor)=>subexecutor!==void 0);return[strategy.emitSeparator,shouldPrepend?[void 0,...queue]:queue]}case OP_PULL_AFTER_ALL_ENQUEUED2:{let shouldEnqueue=!upstreamFinished||queue.some((subexecutor)=>subexecutor!==void 0);return[strategy.emitSeparator,shouldEnqueue?[...queue,void 0]:queue]}}}pullFromChild(childExecutor,parentSubexecutor,onEmitted,subexecutor){return Read2(childExecutor,identity5,(emitted)=>{let childExecutorDecision=onEmitted(emitted);switch(childExecutorDecision._tag){case OP_CONTINUE22:break;case OP_CLOSE2:{this.finishWithDoneValue(childExecutor,parentSubexecutor,childExecutorDecision.value);break}case OP_YIELD22:{let modifiedParent=parentSubexecutor.enqueuePullFromChild(subexecutor);this.replaceSubexecutor(modifiedParent);break}}this._activeSubexecutor=new Emit22(emitted,this._activeSubexecutor);return},match52({onFailure:(cause32)=>{let state=this.handleSubexecutorFailure(childExecutor,parentSubexecutor,cause32);return state===void 0?void 0:effectOrUndefinedIgnored2(state)},onSuccess:(doneValue)=>{this.finishWithDoneValue(childExecutor,parentSubexecutor,doneValue);return}}))}finishWithDoneValue(childExecutor,parentSubexecutor,doneValue){let subexecutor=parentSubexecutor;switch(subexecutor._tag){case OP_PULL_FROM_UPSTREAM2:{let modifiedParent=new PullFromUpstream2(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone!==void 0?subexecutor.combineChildResults(subexecutor.lastDone,doneValue):doneValue,subexecutor.activeChildExecutors,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit);this._closeLastSubstream=childExecutor.close(succeed32(doneValue)),this.replaceSubexecutor(modifiedParent);break}case OP_DRAIN_CHILD_EXECUTORS2:{let modifiedParent=new DrainChildExecutors2(subexecutor.upstreamExecutor,subexecutor.lastDone!==void 0?subexecutor.combineChildResults(subexecutor.lastDone,doneValue):doneValue,subexecutor.activeChildExecutors,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);this._closeLastSubstream=childExecutor.close(succeed32(doneValue)),this.replaceSubexecutor(modifiedParent);break}default:break}}handleSubexecutorFailure(childExecutor,parentSubexecutor,cause32){return this.finishSubexecutorWithCloseEffect(failCause32(cause32),(exit32)=>parentSubexecutor.close(exit32),(exit32)=>childExecutor.close(exit32))}pullFromUpstream(subexecutor){if(subexecutor.activeChildExecutors.length===0)return this.performPullFromUpstream(subexecutor);let activeChild=subexecutor.activeChildExecutors[0],parentSubexecutor=new PullFromUpstream2(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,subexecutor.activeChildExecutors.slice(1),subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit);if(activeChild===void 0)return this.performPullFromUpstream(parentSubexecutor);this.replaceSubexecutor(new PullFromChild2(activeChild.childExecutor,parentSubexecutor,activeChild.onEmit));return}performPullFromUpstream(subexecutor){return Read2(subexecutor.upstreamExecutor,(effect32)=>{let closeLastSubstream=this._closeLastSubstream===void 0?_void2:this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe2(this._executeCloseLastSubstream(closeLastSubstream),zipRight42(effect32))},(emitted)=>{if(this._closeLastSubstream!==void 0){let closeLastSubstream=this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe2(this._executeCloseLastSubstream(closeLastSubstream),map152(()=>{let childExecutor2=new ChannelExecutor2(subexecutor.createChild(emitted),this._providedEnv,this._executeCloseLastSubstream);childExecutor2._input=this._input;let[emitSeparator2,updatedChildExecutors2]=this.applyUpstreamPullStrategy(!1,subexecutor.activeChildExecutors,subexecutor.onPull(Pulled2(emitted)));if(this._activeSubexecutor=new PullFromChild2(childExecutor2,new PullFromUpstream2(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,updatedChildExecutors2,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit),subexecutor.onEmit),isSome22(emitSeparator2))this._activeSubexecutor=new Emit22(emitSeparator2.value,this._activeSubexecutor);return}))}let childExecutor=new ChannelExecutor2(subexecutor.createChild(emitted),this._providedEnv,this._executeCloseLastSubstream);childExecutor._input=this._input;let[emitSeparator,updatedChildExecutors]=this.applyUpstreamPullStrategy(!1,subexecutor.activeChildExecutors,subexecutor.onPull(Pulled2(emitted)));if(this._activeSubexecutor=new PullFromChild2(childExecutor,new PullFromUpstream2(subexecutor.upstreamExecutor,subexecutor.createChild,subexecutor.lastDone,updatedChildExecutors,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull,subexecutor.onEmit),subexecutor.onEmit),isSome22(emitSeparator))this._activeSubexecutor=new Emit22(emitSeparator.value,this._activeSubexecutor);return},(exit32)=>{if(subexecutor.activeChildExecutors.some((subexecutor2)=>subexecutor2!==void 0)){let drain5=new DrainChildExecutors2(subexecutor.upstreamExecutor,subexecutor.lastDone,[void 0,...subexecutor.activeChildExecutors],subexecutor.upstreamExecutor.getDone(),subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);if(this._closeLastSubstream!==void 0){let closeLastSubstream2=this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe2(this._executeCloseLastSubstream(closeLastSubstream2),map152(()=>this.replaceSubexecutor(drain5)))}this.replaceSubexecutor(drain5);return}let closeLastSubstream=this._closeLastSubstream,state=this.finishSubexecutorWithCloseEffect(pipe2(exit32,map102((a)=>subexecutor.combineWithChildResult(subexecutor.lastDone,a))),()=>closeLastSubstream,(exit4)=>subexecutor.upstreamExecutor.close(exit4));return state===void 0?void 0:effectOrUndefinedIgnored2(state)})}drainChildExecutors(subexecutor){if(subexecutor.activeChildExecutors.length===0){let lastClose=this._closeLastSubstream;if(lastClose!==void 0)this.addFinalizer(()=>succeed82(lastClose));return this.finishSubexecutorWithCloseEffect(subexecutor.upstreamDone,()=>lastClose,(exit32)=>subexecutor.upstreamExecutor.close(exit32))}let activeChild=subexecutor.activeChildExecutors[0],rest=subexecutor.activeChildExecutors.slice(1);if(activeChild===void 0){let[emitSeparator,remainingExecutors]=this.applyUpstreamPullStrategy(!0,rest,subexecutor.onPull(NoUpstream2(rest.reduce((n,curr)=>curr!==void 0?n+1:n,0))));if(this.replaceSubexecutor(new DrainChildExecutors2(subexecutor.upstreamExecutor,subexecutor.lastDone,remainingExecutors,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull)),isSome22(emitSeparator))return this._emitted=emitSeparator.value,Emit3();return}let parentSubexecutor=new DrainChildExecutors2(subexecutor.upstreamExecutor,subexecutor.lastDone,rest,subexecutor.upstreamDone,subexecutor.combineChildResults,subexecutor.combineWithChildResult,subexecutor.onPull);this.replaceSubexecutor(new PullFromChild2(activeChild.childExecutor,parentSubexecutor,activeChild.onEmit));return}}var ifNotNull2=(effect32)=>effect32!==void 0?effect32:_void2,runFinalizers2=(finalizers,exit32)=>{return pipe2(forEach72(finalizers,(fin)=>exit22(fin(exit32))),map152((exits)=>pipe2(all22(exits),getOrElse6(()=>void_32))),flatMap112((exit4)=>suspend32(()=>exit4)))},readUpstream2=(r,onSuccess,onFailure)=>{let readStack=[r],read=()=>{let current2=readStack.pop();if(current2===void 0||current2.upstream===void 0)return dieMessage22("Unexpected end of input for channel execution");let state=current2.upstream.run();switch(state._tag){case OP_EMIT22:{let emitEffect=current2.onEmit(current2.upstream.getEmit());if(readStack.length===0){if(emitEffect===void 0)return suspend32(onSuccess);return pipe2(emitEffect,matchCauseEffect32({onFailure,onSuccess}))}if(emitEffect===void 0)return suspend32(()=>read());return pipe2(emitEffect,matchCauseEffect32({onFailure,onSuccess:()=>read()}))}case OP_DONE32:{let doneEffect=current2.onDone(current2.upstream.getDone());if(readStack.length===0){if(doneEffect===void 0)return suspend32(onSuccess);return pipe2(doneEffect,matchCauseEffect32({onFailure,onSuccess}))}if(doneEffect===void 0)return suspend32(()=>read());return pipe2(doneEffect,matchCauseEffect32({onFailure,onSuccess:()=>read()}))}case OP_FROM_EFFECT32:return readStack.push(current2),pipe2(current2.onEffect(state.effect),catchAllCause32((cause32)=>suspend32(()=>{let doneEffect=current2.onDone(failCause32(cause32));return doneEffect===void 0?_void2:doneEffect})),matchCauseEffect32({onFailure,onSuccess:()=>read()}));case OP_READ22:return readStack.push(current2),readStack.push(state),suspend32(()=>read())}};return read()},runIn2=dual2(2,(self,scope52)=>{let run6=(channelDeferred,scopeDeferred,scope6)=>acquireUseRelease22(sync32(()=>new ChannelExecutor2(self,void 0,identity5)),(exec)=>suspend32(()=>runScopedInterpret2(exec.run(),exec).pipe(intoDeferred22(channelDeferred),zipRight42(_await4(channelDeferred)),zipLeft32(_await4(scopeDeferred)))),(exec,exit32)=>{let finalize=exec.close(exit32);if(finalize===void 0)return _void2;return tapErrorCause32(finalize,(cause32)=>addFinalizer22(scope6,failCause82(cause32)))});return uninterruptibleMask32((restore)=>all42([fork22(scope52,sequential32),make182(),make182()]).pipe(flatMap112(([child,channelDeferred,scopeDeferred])=>restore(run6(channelDeferred,scopeDeferred,child)).pipe(forkIn22(scope52),flatMap112((fiber)=>scope52.addFinalizer((exit32)=>{let interruptors32=isFailure5(exit32)?interruptors22(exit32.cause):void 0;return isDone7(channelDeferred).pipe(flatMap112((isDone62)=>isDone62?succeed22(scopeDeferred,void 0).pipe(zipRight42(_await32(fiber)),zipRight42(inheritAll22(fiber))):succeed22(scopeDeferred,void 0).pipe(zipRight42(interruptors32&&size42(interruptors32)>0?interruptAs3(fiber,combineAll22(interruptors32)):interrupt62(fiber)),zipRight42(inheritAll22(fiber)))))}).pipe(zipRight42(restore(_await4(channelDeferred)))))))))}),runScopedInterpret2=(channelState,exec)=>{let op=channelState;switch(op._tag){case OP_FROM_EFFECT32:return pipe2(op.effect,flatMap112(()=>runScopedInterpret2(exec.run(),exec)));case OP_EMIT22:return runScopedInterpret2(exec.run(),exec);case OP_DONE32:return suspend32(()=>exec.getDone());case OP_READ22:return readUpstream2(op,()=>runScopedInterpret2(exec.run(),exec),failCause82)}},OP_DONE42="Done",OP_AWAIT2="Await",MergeDecisionSymbolKey2="effect/ChannelMergeDecision",MergeDecisionTypeId2=Symbol.for(MergeDecisionSymbolKey2),proto92={[MergeDecisionTypeId2]:{_R:(_)=>_,_E0:(_)=>_,_Z0:(_)=>_,_E:(_)=>_,_Z:(_)=>_}},Done32=(effect32)=>{let op=Object.create(proto92);return op._tag=OP_DONE42,op.effect=effect32,op},Await3=(f)=>{let op=Object.create(proto92);return op._tag=OP_AWAIT2,op.f=f,op},OP_BOTH_RUNNING2="BothRunning",OP_LEFT_DONE2="LeftDone",OP_RIGHT_DONE2="RightDone",MergeStateSymbolKey2="effect/ChannelMergeState",MergeStateTypeId2=Symbol.for(MergeStateSymbolKey2),proto102={[MergeStateTypeId2]:MergeStateTypeId2},BothRunning2=(left32,right32)=>{let op=Object.create(proto102);return op._tag=OP_BOTH_RUNNING2,op.left=left32,op.right=right32,op},LeftDone2=(f)=>{let op=Object.create(proto102);return op._tag=OP_LEFT_DONE2,op.f=f,op},RightDone2=(f)=>{let op=Object.create(proto102);return op._tag=OP_RIGHT_DONE2,op.f=f,op},OP_BACK_PRESSURE2="BackPressure",OP_BUFFER_SLIDING2="BufferSliding",MergeStrategySymbolKey2="effect/ChannelMergeStrategy",MergeStrategyTypeId2=Symbol.for(MergeStrategySymbolKey2),proto112={[MergeStrategyTypeId2]:MergeStrategyTypeId2},BackPressure3=(_)=>{let op=Object.create(proto112);return op._tag=OP_BACK_PRESSURE2,op},BufferSliding2=(_)=>{let op=Object.create(proto112);return op._tag=OP_BUFFER_SLIDING2,op},match142=dual2(2,(self,{onBackPressure,onBufferSliding})=>{switch(self._tag){case OP_BACK_PRESSURE2:return onBackPressure();case OP_BUFFER_SLIDING2:return onBufferSliding()}}),OP_STATE_EMPTY2="Empty",OP_STATE_EMIT2="Emit",OP_STATE_ERROR2="Error",OP_STATE_DONE22="Done",stateEmpty3=(notifyProducer)=>({_tag:OP_STATE_EMPTY2,notifyProducer}),stateEmit2=(notifyConsumers)=>({_tag:OP_STATE_EMIT2,notifyConsumers}),stateError2=(cause32)=>({_tag:OP_STATE_ERROR2,cause:cause32}),stateDone2=(done82)=>({_tag:OP_STATE_DONE22,done:done82});class SingleProducerAsyncInputImpl2{ref;constructor(ref){this.ref=ref}awaitRead(){return flatten92(modify52(this.ref,(state)=>state._tag===OP_STATE_EMPTY2?[_await4(state.notifyProducer),state]:[_void2,state]))}get close(){return fiberIdWith22((fiberId32)=>this.error(interrupt52(fiberId32)))}done(value){return flatten92(modify52(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY2:return[_await4(state.notifyProducer),state];case OP_STATE_EMIT2:return[forEach72(state.notifyConsumers,(deferred)=>succeed22(deferred,left22(value)),{discard:!0}),stateDone2(value)];case OP_STATE_ERROR2:return[interrupt72,state];case OP_STATE_DONE22:return[interrupt72,state]}}))}emit(element){return flatMap112(make182(),(deferred)=>flatten92(modify52(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY2:return[_await4(state.notifyProducer),state];case OP_STATE_EMIT2:{let notifyConsumer=state.notifyConsumers[0],notifyConsumers=state.notifyConsumers.slice(1);if(notifyConsumer!==void 0)return[succeed22(notifyConsumer,right22(element)),notifyConsumers.length===0?stateEmpty3(deferred):stateEmit2(notifyConsumers)];throw Error("Bug: Channel.SingleProducerAsyncInput.emit - Queue was empty! please report an issue at https://github.com/Effect-TS/effect/issues")}case OP_STATE_ERROR2:return[interrupt72,state];case OP_STATE_DONE22:return[interrupt72,state]}})))}error(cause32){return flatten92(modify52(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY2:return[_await4(state.notifyProducer),state];case OP_STATE_EMIT2:return[forEach72(state.notifyConsumers,(deferred)=>failCause22(deferred,cause32),{discard:!0}),stateError2(cause32)];case OP_STATE_ERROR2:return[interrupt72,state];case OP_STATE_DONE22:return[interrupt72,state]}}))}get take(){return this.takeWith((cause32)=>failCause32(map112(cause32,left22)),(elem)=>succeed32(elem),(done82)=>fail42(right22(done82)))}takeWith(onError32,onElement,onDone3){return flatMap112(make182(),(deferred)=>flatten92(modify52(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY2:return[zipRight42(succeed22(state.notifyProducer,void 0),matchCause32(_await4(deferred),{onFailure:onError32,onSuccess:match19({onLeft:onDone3,onRight:onElement})})),stateEmit2([deferred])];case OP_STATE_EMIT2:return[matchCause32(_await4(deferred),{onFailure:onError32,onSuccess:match19({onLeft:onDone3,onRight:onElement})}),stateEmit2([...state.notifyConsumers,deferred])];case OP_STATE_ERROR2:return[succeed82(onError32(state.cause)),state];case OP_STATE_DONE22:return[succeed82(onDone3(state.done)),state]}})))}}var make422=()=>pipe2(make182(),flatMap112((deferred)=>make282(stateEmpty3(deferred))),map152((ref)=>new SingleProducerAsyncInputImpl2(ref))),acquireUseRelease32=(acquire,use,release)=>flatMap132(fromEffect42(make282(()=>_void2)),(ref)=>pipe2(fromEffect42(uninterruptible22(tap42(acquire,(a)=>set62(ref,(exit32)=>release(a,exit32))))),flatMap132(use),ensuringWith4((exit32)=>flatMap112(get122(ref),(f)=>f(exit32))))),as52=dual2(2,(self,value)=>map172(self,()=>value)),catchAll52=dual2(2,(self,f)=>catchAllCause52(self,(cause32)=>match19(failureOrCause22(cause32),{onLeft:f,onRight:failCause102}))),concatMap2=dual2(2,(self,f)=>concatMapWith2(self,f,()=>{return},()=>{return})),drain5=(self)=>{let drainer=readWithCause2({onInput:()=>drainer,onFailure:failCause102,onDone:succeed102});return pipeTo2(self,drainer)},ensuring32=dual2(2,(self,finalizer3)=>ensuringWith4(self,()=>finalizer3)),flatten112=(self)=>flatMap132(self,identity5),foldChannel2=dual2(2,(self,options)=>foldCauseChannel2(self,{onFailure:(cause32)=>{let either42=failureOrCause22(cause32);switch(either42._tag){case"Left":return options.onFailure(either42.left);case"Right":return failCause102(either42.right)}},onSuccess:options.onSuccess})),fromInput3=(input)=>unwrap6(input.takeWith(failCause102,(elem)=>flatMap132(write2(elem),()=>fromInput3(input)),succeed102)),fromQueue4=(queue)=>suspend52(()=>fromQueueInternal2(queue)),fromQueueInternal2=(queue)=>pipe2(fromEffect42(take32(queue)),flatMap132(match19({onLeft:match52({onFailure:failCause102,onSuccess:succeedNow2}),onRight:(elem)=>flatMap132(write2(elem),()=>fromQueueInternal2(queue))}))),identityChannel2=()=>readWith2({onInput:(input)=>flatMap132(write2(input),()=>identityChannel2()),onFailure:fail112,onDone:succeedNow2}),interruptWhen4=dual2(2,(self,effect32)=>mergeWith22(self,{other:fromEffect42(effect32),onSelfDone:(selfDone)=>Done32(suspend32(()=>selfDone)),onOtherDone:(effectDone)=>Done32(suspend32(()=>effectDone))})),interruptWhenDeferred4=dual2(2,(self,deferred)=>interruptWhen4(self,_await4(deferred))),map172=dual2(2,(self,f)=>flatMap132(self,(a)=>sync52(()=>f(a)))),mapError52=dual2(2,(self,f)=>mapErrorCause32(self,map112(f))),mapErrorCause32=dual2(2,(self,f)=>catchAllCause52(self,(cause32)=>failCause102(f(cause32)))),mapOut2=dual2(2,(self,f)=>{let reader=readWith2({onInput:(outElem)=>flatMap132(write2(f(outElem)),()=>reader),onFailure:fail112,onDone:succeedNow2});return pipeTo2(self,reader)}),mapOutEffect2=dual2(2,(self,f)=>{let reader=readWithCause2({onInput:(outElem)=>pipe2(fromEffect42(f(outElem)),flatMap132(write2),flatMap132(()=>reader)),onFailure:failCause102,onDone:succeedNow2});return pipeTo2(self,reader)}),mapOutEffectPar2=dual2(3,(self,f,n)=>unwrapScopedWith5((scope52)=>gen32(function*(){let input=yield*make422(),queueReader=fromInput3(input),queue=yield*bounded52(n);yield*addFinalizer22(scope52,shutdown42(queue));let errorSignal=yield*make182(),withPermits=n===Number.POSITIVE_INFINITY?(_)=>identity5:(yield*makeSemaphore22(n)).withPermits;yield*(yield*queueReader.pipe(pipeTo2(self),toPullIn2(scope52))).pipe(matchCauseEffect32({onFailure:(cause32)=>offer32(queue,failCause82(cause32)),onSuccess:match19({onLeft:(outDone)=>zipRight42(interruptible42(withPermits(n)(_void2)),asVoid42(offer32(queue,succeed82(left22(outDone))))),onRight:(outElem)=>gen32(function*(){let deferred=yield*make182(),latch=yield*make182();yield*offer32(queue,map152(_await4(deferred),right22)),yield*succeed22(latch,void 0).pipe(zipRight42(uninterruptibleMask32((restore)=>exit22(restore(_await4(errorSignal))).pipe(raceFirst22(exit22(restore(f(outElem)))),flatMap112(identity5))).pipe(tapErrorCause32((cause32)=>failCause22(errorSignal,cause32)),intoDeferred22(deferred))),withPermits(1),forkIn22(scope52)),yield*_await4(latch)})})}),forever32,interruptible42,forkIn22(scope52));let consumer=unwrap6(matchCause32(flatten92(take32(queue)),{onFailure:failCause102,onSuccess:match19({onLeft:succeedNow2,onRight:(outElem)=>flatMap132(write2(outElem),()=>consumer)})}));return embedInput2(consumer,input)}))),mergeAll72=(options)=>{return(channels)=>mergeAllWith2(options)(channels,constVoid2)},mergeAllWith2=({bufferSize=16,concurrency,mergeStrategy=BackPressure3()})=>(channels,f)=>unwrapScopedWith5((scope52)=>gen32(function*(){let concurrencyN=concurrency==="unbounded"?Number.MAX_SAFE_INTEGER:concurrency,input=yield*make422(),queueReader=fromInput3(input),queue=yield*bounded52(bufferSize);yield*addFinalizer22(scope52,shutdown42(queue));let cancelers=yield*unbounded52();yield*addFinalizer22(scope52,shutdown42(cancelers));let lastDone=yield*make282(none22()),errorSignal=yield*make182(),withPermits=(yield*makeSemaphore22(concurrencyN)).withPermits,pull=yield*toPullIn2(pipeTo2(queueReader,channels),scope52);function evaluatePull(pull2){return pull2.pipe(flatMap112(match19({onLeft:(done82)=>succeed82(some22(done82)),onRight:(outElem)=>as42(offer32(queue,succeed82(right22(outElem))),none22())})),repeat6({until:(_)=>isSome22(_)}),flatMap112((outDone)=>update32(lastDone,match22({onNone:()=>some22(outDone.value),onSome:(lastDone2)=>some22(f(lastDone2,outDone.value))}))),catchAllCause32((cause32)=>isInterrupted22(cause32)?failCause82(cause32):offer32(queue,failCause82(cause32)).pipe(zipRight42(succeed22(errorSignal,void 0)),asVoid42)))}yield*pull.pipe(matchCauseEffect32({onFailure:(cause32)=>offer32(queue,failCause82(cause32)).pipe(zipRight42(succeed82(!1))),onSuccess:match19({onLeft:(outDone)=>raceWith22(interruptible42(_await4(errorSignal)),interruptible42(withPermits(concurrencyN)(_void2)),{onSelfDone:(_,permitAcquisition)=>as42(interrupt62(permitAcquisition),!1),onOtherDone:(_,failureAwait)=>zipRight42(interrupt62(failureAwait),get122(lastDone).pipe(flatMap112(match22({onNone:()=>offer32(queue,succeed82(left22(outDone))),onSome:(lastDone2)=>offer32(queue,succeed82(left22(f(lastDone2,outDone))))})),as42(!1)))}),onRight:(channel)=>match142(mergeStrategy,{onBackPressure:()=>gen32(function*(){let latch=yield*make182(),raceEffects=scopedWith22((scope6)=>toPullIn2(pipeTo2(queueReader,channel),scope6).pipe(flatMap112((pull2)=>race22(exit22(evaluatePull(pull2)),exit22(interruptible42(_await4(errorSignal))))),flatMap112(identity5)));return yield*succeed22(latch,void 0).pipe(zipRight42(raceEffects),withPermits(1),forkIn22(scope52)),yield*_await4(latch),!(yield*isDone7(errorSignal))}),onBufferSliding:()=>gen32(function*(){let canceler=yield*make182(),latch=yield*make182(),size122=yield*size112(cancelers);yield*take32(cancelers).pipe(flatMap112((canceler2)=>succeed22(canceler2,void 0)),when22(()=>size122>=concurrencyN)),yield*offer32(cancelers,canceler);let raceEffects=scopedWith22((scope6)=>toPullIn2(pipeTo2(queueReader,channel),scope6).pipe(flatMap112((pull2)=>exit22(evaluatePull(pull2)).pipe(race22(exit22(interruptible42(_await4(errorSignal)))),race22(exit22(interruptible42(_await4(canceler)))))),flatMap112(identity5)));return yield*succeed22(latch,void 0).pipe(zipRight42(raceEffects),withPermits(1),forkIn22(scope52)),yield*_await4(latch),!(yield*isDone7(errorSignal))})})})}),repeat6({while:(_)=>_}),forkIn22(scope52));let consumer=pipe2(take32(queue),flatten92,matchCause32({onFailure:failCause102,onSuccess:match19({onLeft:succeedNow2,onRight:(outElem)=>flatMap132(write2(outElem),()=>consumer)})}),unwrap6);return embedInput2(consumer,input)})),mergeMap2=dual2(3,(self,f,options)=>mergeAll72(options)(mapOut2(self,f))),mergeWith22=dual2(2,(self,options)=>{function merge92(scope52){return gen32(function*(){let input=yield*make422(),queueReader=fromInput3(input),pullL=yield*toPullIn2(pipeTo2(queueReader,self),scope52),pullR=yield*toPullIn2(pipeTo2(queueReader,options.other),scope52);function handleSide(exit32,fiber,pull){return(done82,both2,single22)=>{function onDecision3(decision){let op=decision;if(op._tag===OP_DONE42)return succeed82(fromEffect42(zipRight42(interrupt62(fiber),op.effect)));return map152(_await32(fiber),match52({onFailure:(cause32)=>fromEffect42(op.f(failCause32(cause32))),onSuccess:match19({onLeft:(done92)=>fromEffect42(op.f(succeed32(done92))),onRight:(elem)=>zipRight52(write2(elem),go(single22(op.f)))})}))}return match52(exit32,{onFailure:(cause32)=>onDecision3(done82(failCause32(cause32))),onSuccess:match19({onLeft:(z)=>onDecision3(done82(succeed32(z))),onRight:(elem)=>succeed82(flatMap132(write2(elem),()=>flatMap132(fromEffect42(forkIn22(interruptible42(pull),scope52)),(leftFiber)=>go(both2(leftFiber,fiber)))))})})}}function go(state){switch(state._tag){case OP_BOTH_RUNNING2:{let leftJoin=interruptible42(join42(state.left)),rightJoin=interruptible42(join42(state.right));return unwrap6(raceWith22(leftJoin,rightJoin,{onSelfDone:(leftExit,rf)=>zipRight42(interrupt62(rf),handleSide(leftExit,state.right,pullL)(options.onSelfDone,BothRunning2,(f)=>LeftDone2(f))),onOtherDone:(rightExit,lf)=>zipRight42(interrupt62(lf),handleSide(rightExit,state.left,pullR)(options.onOtherDone,(left32,right32)=>BothRunning2(right32,left32),(f)=>RightDone2(f)))}))}case OP_LEFT_DONE2:return unwrap6(map152(exit22(pullR),match52({onFailure:(cause32)=>fromEffect42(state.f(failCause32(cause32))),onSuccess:match19({onLeft:(done82)=>fromEffect42(state.f(succeed32(done82))),onRight:(elem)=>flatMap132(write2(elem),()=>go(LeftDone2(state.f)))})})));case OP_RIGHT_DONE2:return unwrap6(map152(exit22(pullL),match52({onFailure:(cause32)=>fromEffect42(state.f(failCause32(cause32))),onSuccess:match19({onLeft:(done82)=>fromEffect42(state.f(succeed32(done82))),onRight:(elem)=>flatMap132(write2(elem),()=>go(RightDone2(state.f)))})})))}}return fromEffect42(withFiberRuntime22((parent)=>{let inherit=withFiberRuntime22((state)=>{return state.transferChildren(parent.scope()),_void2}),leftFiber=interruptible42(pullL).pipe(ensuring22(inherit),forkIn22(scope52)),rightFiber=interruptible42(pullR).pipe(ensuring22(inherit),forkIn22(scope52));return zipWith62(leftFiber,rightFiber,(left32,right32)=>BothRunning2(left32,right32))})).pipe(flatMap132(go),embedInput2(input))})}return unwrapScopedWith5(merge92)}),orDieWith32=dual2(2,(self,f)=>catchAll52(self,(e)=>failCauseSync52(()=>die42(f(e))))),orElse72=dual2(2,(self,that)=>catchAll52(self,that)),pipeToOrFail2=dual2(2,(self,that)=>suspend52(()=>{let channelException=void 0,reader=readWith2({onInput:(outElem)=>flatMap132(write2(outElem),()=>reader),onFailure:(outErr)=>{return channelException=ChannelException2(outErr),failCause102(die42(channelException))},onDone:succeedNow2}),writer=readWithCause2({onInput:(outElem)=>pipe2(write2(outElem),flatMap132(()=>writer)),onFailure:(cause32)=>isDieType22(cause32)&&isChannelException2(cause32.defect)&&equals4(cause32.defect,channelException)?fail112(cause32.defect.error):failCause102(cause32),onDone:succeedNow2});return pipeTo2(pipeTo2(pipeTo2(self,reader),that),writer)})),repeated2=(self)=>flatMap132(self,()=>repeated2(self)),run6=(self)=>scopedWith22((scope52)=>runIn2(self,scope52)),runDrain4=(self)=>run6(drain5(self)),runScoped4=(self)=>scopeWith22((scope52)=>runIn2(self,scope52)),scoped42=(effect32)=>unwrap6(uninterruptibleMask32((restore)=>map152(make382(),(scope52)=>acquireReleaseOut2(tapErrorCause32(restore(extend22(effect32,scope52)),(cause32)=>close2(scope52,failCause32(cause32))),(_,exit32)=>close2(scope52,exit32))))),scopedWith32=(f)=>unwrapScoped32(map152(scope32,(scope52)=>flatMap132(fromEffect42(f(scope52)),write2))),splitLines4=()=>suspend52(()=>{let stringBuilder="",midCRLF=!1,splitLinesChunk=(chunk22)=>{let chunkBuilder=[];return map32(chunk22,(str)=>{if(str.length!==0){let from=0,indexOfCR=str.indexOf("\r"),indexOfLF=str.indexOf(`
106
+ `);if(midCRLF){if(indexOfLF===0)chunkBuilder.push(stringBuilder),stringBuilder="",from=1,indexOfLF=str.indexOf(`
107
+ `,from);else stringBuilder=stringBuilder+"\r";midCRLF=!1}while(indexOfCR!==-1||indexOfLF!==-1)if(indexOfCR===-1||indexOfLF!==-1&&indexOfLF<indexOfCR){if(stringBuilder.length===0)chunkBuilder.push(str.substring(from,indexOfLF));else chunkBuilder.push(stringBuilder+str.substring(from,indexOfLF)),stringBuilder="";from=indexOfLF+1,indexOfLF=str.indexOf(`
108
+ `,from)}else if(str.length===indexOfCR+1)midCRLF=!0,indexOfCR=-1;else if(indexOfLF===indexOfCR+1){if(stringBuilder.length===0)chunkBuilder.push(str.substring(from,indexOfCR));else stringBuilder=stringBuilder+str.substring(from,indexOfCR),chunkBuilder.push(stringBuilder),stringBuilder="";from=indexOfCR+2,indexOfCR=str.indexOf("\r",from),indexOfLF=str.indexOf(`
109
+ `,from)}else indexOfCR=str.indexOf("\r",indexOfCR+1);if(midCRLF)stringBuilder=stringBuilder+str.substring(from,str.length-1);else stringBuilder=stringBuilder+str.substring(from,str.length)}}),unsafeFromArray2(chunkBuilder)},loop32=readWithCause2({onInput:(input)=>{let out=splitLinesChunk(input);return isEmpty15(out)?loop32:flatMap132(write2(out),()=>loop32)},onFailure:(cause32)=>stringBuilder.length===0?failCause102(cause32):flatMap132(write2(of22(stringBuilder)),()=>failCause102(cause32)),onDone:(done82)=>stringBuilder.length===0?succeed102(done82):flatMap132(write2(of22(stringBuilder)),()=>succeed102(done82))});return loop32}),toPubSub4=(pubsub)=>toQueue4(pubsub),toPull4=(self)=>flatMap112(scope32,(scope52)=>toPullIn2(self,scope52)),toPullIn2=dual2(2,(self,scope52)=>zip62(sync32(()=>new ChannelExecutor2(self,void 0,identity5)),runtime32()).pipe(tap42(([executor,runtime4])=>addFinalizerExit2(scope52,(exit32)=>{let finalizer3=executor.close(exit32);return finalizer3!==void 0?provide22(finalizer3,runtime4):_void2})),uninterruptible22,map152(([executor])=>suspend32(()=>interpretToPull2(executor.run(),executor))))),interpretToPull2=(channelState,exec)=>{let state=channelState;switch(state._tag){case OP_DONE32:return match52(exec.getDone(),{onFailure:failCause82,onSuccess:(done82)=>succeed82(left22(done82))});case OP_EMIT22:return succeed82(right22(exec.getEmit()));case OP_FROM_EFFECT32:return pipe2(state.effect,flatMap112(()=>interpretToPull2(exec.run(),exec)));case OP_READ22:return readUpstream2(state,()=>interpretToPull2(exec.run(),exec),(cause32)=>failCause82(cause32))}},toQueue4=(queue)=>suspend52(()=>toQueueInternal2(queue)),toQueueInternal2=(queue)=>{return readWithCause2({onInput:(elem)=>flatMap132(fromEffect42(offer32(queue,right22(elem))),()=>toQueueInternal2(queue)),onFailure:(cause32)=>fromEffect42(offer32(queue,left22(failCause32(cause32)))),onDone:(done82)=>fromEffect42(offer32(queue,left22(succeed32(done82))))})},unwrap6=(channel)=>flatten112(fromEffect42(channel)),unwrapScoped32=(self)=>concatAllWith2(scoped42(self),(d,_)=>d,(d,_)=>d),unwrapScopedWith5=(f)=>concatAllWith2(scopedWith32(f),(d,_)=>d,(d,_)=>d),withSpan52=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace2(dataFirst?arguments[2]:arguments[1]),acquire=all42([makeSpan22(name,options),context32(),clock22,get132(currentTracerTimingEnabled22)]);if(dataFirst){let self=arguments[0];return acquireUseRelease32(acquire,([span42,context52])=>provideContext32(self,add22(context52,spanTag2,span42)),([span42,,clock32,timingEnabled],exit32)=>endSpan2(span42,exit32,clock32,timingEnabled))}return(self)=>acquireUseRelease32(acquire,([span42,context52])=>provideContext32(self,add22(context52,spanTag2,span42)),([span42,,clock32,timingEnabled],exit32)=>endSpan2(span42,exit32,clock32,timingEnabled))},writeAll2=(...outs)=>writeChunk2(fromIterable32(outs)),writeChunk2=(outs)=>writeChunkWriter2(0,outs.length,outs),writeChunkWriter2=(idx,len,chunk22)=>{return idx===len?void_62:pipe2(write2(pipe2(chunk22,unsafeGet42(idx))),flatMap132(()=>writeChunkWriter2(idx+1,len,chunk22)))},zip72=dual2((args22)=>isChannel2(args22[1]),(self,that,options)=>options?.concurrent?mergeWith22(self,{other:that,onSelfDone:(exit1)=>Await3((exit222)=>suspend32(()=>zip42(exit1,exit222))),onOtherDone:(exit222)=>Await3((exit1)=>suspend32(()=>zip42(exit1,exit222)))}):flatMap132(self,(a)=>map172(that,(b)=>[a,b]))),zipLeft42=dual2((args22)=>isChannel2(args22[1]),(self,that,options)=>options?.concurrent?map172(zip72(self,that,{concurrent:!0}),(tuple22)=>tuple22[0]):flatMap132(self,(z)=>as52(that,z))),zipRight52=dual2((args22)=>isChannel2(args22[1]),(self,that,options)=>options?.concurrent?map172(zip72(self,that,{concurrent:!0}),(tuple22)=>tuple22[1]):flatMap132(self,()=>that)),ChannelExceptionTypeId2=Symbol.for("effect/Channel/ChannelException"),ChannelException2=(error3)=>({_tag:"ChannelException",[ChannelExceptionTypeId2]:ChannelExceptionTypeId2,error:error3}),isChannelException2=(u)=>hasProperty2(u,ChannelExceptionTypeId2),SinkTypeId22=Symbol.for("effect/Sink"),sinkVariance22={_A:(_)=>_,_In:(_)=>_,_L:(_)=>_,_E:(_)=>_,_R:(_)=>_};class SinkImpl2{channel;[SinkTypeId22]=sinkVariance22;constructor(channel){this.channel=channel}pipe(){return pipeArguments2(this,arguments)}}var isSink2=(u)=>hasProperty2(u,SinkTypeId22),suspend62=(evaluate22)=>new SinkImpl2(suspend52(()=>toChannel4(evaluate22()))),collectAll2=()=>new SinkImpl2(collectAllLoop2(empty42())),collectAllLoop2=(acc)=>readWithCause2({onInput:(chunk22)=>collectAllLoop2(pipe2(acc,appendAll22(chunk22))),onFailure:failCause102,onDone:()=>succeed102(acc)}),collectAllN2=(n)=>suspend62(()=>fromChannel4(collectAllNLoop2(n,empty42()))),collectAllNLoop2=(n,acc)=>readWithCause2({onInput:(chunk22)=>{let[collected,leftovers]=splitAt22(chunk22,n);if(collected.length<n)return collectAllNLoop2(n-collected.length,appendAll22(acc,collected));if(isEmpty15(leftovers))return succeed102(appendAll22(acc,collected));return flatMap132(write2(leftovers),()=>succeed102(appendAll22(acc,collected)))},onFailure:failCause102,onDone:()=>succeed102(acc)}),collectLeftover2=(self)=>new SinkImpl2(pipe2(collectElements2(toChannel4(self)),map172(([chunks3,z])=>[z,flatten32(chunks3)]))),drain22=new SinkImpl2(drain5(identityChannel2())),fail122=(e)=>new SinkImpl2(fail112(e)),fold2=(s,contFn,f)=>suspend62(()=>new SinkImpl2(foldReader2(s,contFn,f))),foldReader2=(s,contFn,f)=>{if(!contFn(s))return succeedNow2(s);return readWith2({onInput:(input)=>{let[nextS,leftovers]=foldChunkSplit2(s,input,contFn,f,0,input.length);if(isNonEmpty6(leftovers))return pipe2(write2(leftovers),as52(nextS));return foldReader2(nextS,contFn,f)},onFailure:fail112,onDone:()=>succeedNow2(s)})},foldChunkSplit2=(s,chunk22,contFn,f,index,length32)=>{if(index===length32)return[s,empty42()];let s1=f(s,pipe2(chunk22,unsafeGet42(index)));if(contFn(s1))return foldChunkSplit2(s1,chunk22,contFn,f,index+1,length32);return[s1,pipe2(chunk22,drop22(index+1))]},foldSink2=dual2(2,(self,options)=>{let newChannel=pipe2(toChannel4(self),collectElements2,foldChannel2({onFailure:(error3)=>toChannel4(options.onFailure(error3)),onSuccess:([leftovers,z])=>suspend52(()=>{let leftoversRef={ref:pipe2(leftovers,filter32(isNonEmpty6))},refReader=pipe2(sync52(()=>{let ref=leftoversRef.ref;return leftoversRef.ref=empty42(),ref}),flatMap132((chunk22)=>writeChunk2(chunk22))),passthrough42=identityChannel2(),continuationSink=pipe2(refReader,zipRight52(passthrough42),pipeTo2(toChannel4(options.onSuccess(z))));return flatMap132(collectElements2(continuationSink),([newLeftovers,z1])=>pipe2(succeed102(leftoversRef.ref),flatMap132(writeChunk2),zipRight52(writeChunk2(newLeftovers)),as52(z1)))})}));return new SinkImpl2(newChannel)}),foldChunks2=(s,contFn,f)=>suspend62(()=>new SinkImpl2(foldChunksReader2(s,contFn,f))),foldChunksReader2=(s,contFn,f)=>{if(!contFn(s))return succeedNow2(s);return readWith2({onInput:(input)=>foldChunksReader2(f(s,input),contFn,f),onFailure:fail112,onDone:()=>succeedNow2(s)})},foldEffect2=(s,contFn,f)=>suspend62(()=>new SinkImpl2(foldEffectReader2(s,contFn,f))),foldEffectReader2=(s,contFn,f)=>{if(!contFn(s))return succeedNow2(s);return readWith2({onInput:(input)=>pipe2(fromEffect42(foldChunkSplitEffect2(s,input,contFn,f)),flatMap132(([nextS,leftovers])=>pipe2(leftovers,match22({onNone:()=>foldEffectReader2(nextS,contFn,f),onSome:(leftover)=>pipe2(write2(leftover),as52(nextS))})))),onFailure:fail112,onDone:()=>succeedNow2(s)})},foldChunkSplitEffect2=(s,chunk22,contFn,f)=>foldChunkSplitEffectInternal2(s,chunk22,0,chunk22.length,contFn,f),foldChunkSplitEffectInternal2=(s,chunk22,index,length32,contFn,f)=>{if(index===length32)return succeed82([s,none22()]);return pipe2(f(s,pipe2(chunk22,unsafeGet42(index))),flatMap112((s1)=>contFn(s1)?foldChunkSplitEffectInternal2(s1,chunk22,index+1,length32,contFn,f):succeed82([s1,some22(pipe2(chunk22,drop22(index+1)))])))},foldLeftChunks2=(s,f)=>foldChunks2(s,constTrue2,f),flatMap142=dual2(2,(self,f)=>foldSink2(self,{onFailure:fail122,onSuccess:f})),forEach82=(f)=>{let process2=readWithCause2({onInput:(input)=>pipe2(fromEffect42(forEach72(input,(v)=>f(v),{discard:!0})),flatMap132(()=>process2)),onFailure:failCause102,onDone:()=>void_62});return new SinkImpl2(process2)},forEachChunk2=(f)=>{let process2=readWithCause2({onInput:(input)=>pipe2(fromEffect42(f(input)),flatMap132(()=>process2)),onFailure:failCause102,onDone:()=>void_62});return new SinkImpl2(process2)},forEachWhile2=(f)=>{let process2=readWithCause2({onInput:(input)=>forEachWhileReader2(f,input,0,input.length,process2),onFailure:failCause102,onDone:()=>void_62});return new SinkImpl2(process2)},forEachWhileReader2=(f,input,index,length32,cont)=>{if(index===length32)return cont;return pipe2(fromEffect42(f(pipe2(input,unsafeGet42(index)))),flatMap132((bool)=>bool?forEachWhileReader2(f,input,index+1,length32,cont):write2(pipe2(input,drop22(index)))),catchAll52((error3)=>pipe2(write2(pipe2(input,drop22(index))),zipRight52(fail112(error3)))))},fromChannel4=(channel)=>new SinkImpl2(channel),fromEffect62=(effect32)=>new SinkImpl2(fromEffect42(effect32)),head52=()=>fold2(none22(),isNone22,(option32,input)=>match22(option32,{onNone:()=>some22(input),onSome:()=>option32})),last32=()=>foldLeftChunks2(none22(),(s,input)=>orElse12(last22(input),()=>s)),map182=dual2(2,(self,f)=>{return new SinkImpl2(pipe2(toChannel4(self),map172(f)))}),raceWith32=dual2(2,(self,options)=>{function race32(scope52){return gen32(function*(){let pubsub=yield*bounded42(options?.capacity??16),subscription1=yield*extend22(subscribe22(pubsub),scope52),subscription2=yield*extend22(subscribe22(pubsub),scope52),reader=toPubSub4(pubsub),writer=fromQueue4(subscription1).pipe(pipeTo2(toChannel4(self)),zipLeft42(fromEffect42(shutdown42(subscription1))),mergeWith22({other:fromQueue4(subscription2).pipe(pipeTo2(toChannel4(options.other)),zipLeft42(fromEffect42(shutdown42(subscription2)))),onSelfDone:options.onSelfDone,onOtherDone:options.onOtherDone})),racedChannel=mergeWith22(reader,{other:writer,onSelfDone:()=>Await3(identity5),onOtherDone:(exit32)=>Done32(exit32)});return new SinkImpl2(racedChannel)})}return unwrapScopedWith22(race32)}),sum22=foldLeftChunks2(0,(acc,chunk22)=>acc+reduce22(chunk22,0,(s,a)=>s+a)),toChannel4=(self)=>isEffect22(self)?toChannel4(fromEffect62(self)):self.channel,unwrapScopedWith22=(f)=>new SinkImpl2(unwrapScopedWith5((scope52)=>f(scope52).pipe(map152((sink)=>toChannel4(sink))))),zipRight62=dual2((args22)=>isSink2(args22[1]),(self,that,options)=>zipWith82(self,that,(_,z2)=>z2,options)),zipWith82=dual2((args22)=>isSink2(args22[1]),(self,that,f,options)=>options?.concurrent?raceWith32(self,{other:that,onSelfDone:match52({onFailure:(cause32)=>Done32(failCause82(cause32)),onSuccess:(leftZ)=>Await3(match52({onFailure:failCause82,onSuccess:(rightZ)=>succeed82(f(leftZ,rightZ))}))}),onOtherDone:match52({onFailure:(cause32)=>Done32(failCause82(cause32)),onSuccess:(rightZ)=>Await3(match52({onFailure:failCause82,onSuccess:(leftZ)=>succeed82(f(leftZ,rightZ))}))})}):flatMap142(self,(z)=>map182(that,(z2)=>f(z,z2)))),count6=foldLeftChunks2(0,(acc,chunk22)=>acc+chunk22.length),mkString4=suspend62(()=>{let strings=[];return pipe2(foldLeftChunks2(void 0,(_,elems)=>map32(elems,(elem)=>{strings.push(String(elem))})),map182(()=>strings.join("")))}),Done42=Done32,Await22=Await3,TypeId162=Symbol.for("effect/RcRef"),stateEmpty22={_tag:"Empty"},stateClosed2={_tag:"Closed"},variance52={_A:identity5,_E:identity5};class RcRefImpl2 extends Class4{acquire;context;scope;idleTimeToLive;[TypeId162]=variance52;[TypeId132]=TypeId132;state=stateEmpty22;semaphore=unsafeMakeSemaphore3(1);constructor(acquire,context52,scope52,idleTimeToLive){super();this.acquire=acquire,this.context=context52,this.scope=scope52,this.idleTimeToLive=idleTimeToLive,this.get=get142(this)}get;commit(){return this.get}}var make432=(options)=>withFiberRuntime3((fiber)=>{let context52=fiber.getFiberRef(currentContext3),scope52=get32(context52,scopeTag2),ref=new RcRefImpl2(options.acquire,context52,scope52,options.idleTimeToLive?decode2(options.idleTimeToLive):void 0);return as22(scope52.addFinalizer(()=>ref.semaphore.withPermits(1)(suspend13(()=>{let close22=ref.state._tag==="Acquired"?scopeClose2(ref.state.scope,exitVoid3):void_22;return ref.state=stateClosed2,close22}))),ref)}),get142=(self_)=>{let self=self_,isInfinite=self.idleTimeToLive&&!isFinite2(self.idleTimeToLive);return uninterruptibleMask4((restore)=>suspend13(()=>{switch(self.state._tag){case"Closed":return interrupt22;case"Acquired":return self.state.refCount++,self.state.fiber?as22(interruptFiber2(self.state.fiber),self.state):succeed20(self.state);case"Empty":return scopeMake2().pipe(bindTo32("scope"),bind32("value",({scope:scope52})=>restore(fiberRefLocally3(self.acquire,currentContext3,add22(self.context,scopeTag2,scope52)))),map92(({scope:scope52,value})=>{let state={_tag:"Acquired",value,scope:scope52,fiber:void 0,refCount:1};return self.state=state,state}))}})).pipe(self.semaphore.withPermits(1),bindTo32("state"),bind32("scope",()=>scopeTag2),tap22(({scope:scope52,state})=>scope52.addFinalizer(()=>suspend13(()=>{if(state.refCount--,state.refCount>0||isInfinite)return void_22;if(self.idleTimeToLive===void 0)return self.state=stateEmpty22,scopeClose2(state.scope,exitVoid3);return sleep32(self.idleTimeToLive).pipe(interruptible22,zipRight22(suspend13(()=>{if(self.state._tag==="Acquired"&&self.state.refCount===0)return self.state=stateEmpty22,scopeClose2(state.scope,exitVoid3);return void_22})),ensuring9(sync14(()=>{state.fiber=void 0})),forkIn3(self.scope),tap22((fiber)=>{state.fiber=fiber}),self.semaphore.withPermits(1))}))),map92(({state})=>state.value))},make442=make432,get152=get142,runFork32=unsafeFork22,runPromiseExit22=unsafeRunPromiseExit2,defaultRuntime22=defaultRuntime3,driver22=driver3,forever42=forever22,spaced22=spaced3,CurrentIterationMetadata22=CurrentIterationMetadata3,OP_LEFT2="Left",OP_RIGHT2="Right",OP_BOTH2="Both",OP_EITHER2="Either",Left2={_tag:OP_LEFT2},Right2={_tag:OP_RIGHT2},Both3={_tag:OP_BOTH2},Either2={_tag:OP_EITHER2},fromInput22=(input)=>{switch(input){case"left":return Left2;case"right":return Right2;case"both":return Both3;case"either":return Either2;default:return input}},Both22=Both3;class Versioned2{value;constructor(value){this.value=value}}var make452=(ref,isNew)=>({ref,isNew,isChanged:!1,expected:ref.versioned,newValue:ref.versioned.value}),unsafeGet62=(self)=>{return self.newValue},unsafeSet3=(self,value)=>{self.isChanged=!0,self.newValue=value},commit3=(self)=>{self.ref.versioned=new Versioned2(self.newValue)},isInvalid2=(self)=>{return self.ref.versioned!==self.expected},isChanged2=(self)=>{return self.isChanged},JournalAnalysisInvalid2="Invalid",JournalAnalysisReadWrite2="ReadWrite",JournalAnalysisReadOnly2="ReadOnly",commitJournal2=(journal)=>{for(let entry of journal)commit3(entry[1])},analyzeJournal2=(journal)=>{let val=JournalAnalysisReadOnly2;for(let[,entry]of journal)if(val=isInvalid2(entry)?JournalAnalysisInvalid2:isChanged2(entry)?JournalAnalysisReadWrite2:val,val===JournalAnalysisInvalid2)return val;return val},collectTodos2=(journal)=>{let allTodos=new Map;for(let[,entry]of journal){for(let todo of entry.ref.todos)allTodos.set(todo[0],todo[1]);entry.ref.todos=new Map}return allTodos},execTodos2=(todos)=>{let todosSorted=Array.from(todos.entries()).sort((x,y)=>x[0]-y[0]);for(let[_,todo]of todosSorted)todo()},addTodo2=(txnId,journal,todoEffect)=>{let added=!1;for(let[,entry]of journal)if(!entry.ref.todos.has(txnId))entry.ref.todos.set(txnId,todoEffect),added=!0;return added},OP_WITH_STM_RUNTIME2="WithSTMRuntime",OP_ON_FAILURE22="OnFailure",OP_ON_RETRY2="OnRetry",OP_ON_SUCCESS22="OnSuccess",OP_PROVIDE32="Provide",OP_SYNC22="Sync",OP_SUCCEED22="Succeed",OP_RETRY3="Retry",OP_FAIL42="Fail",OP_DIE22="Die",OP_INTERRUPT22="Interrupt",OP_FAIL52="Fail",OP_DIE32="Die",OP_INTERRUPT32="Interrupt",OP_SUCCEED32="Succeed",OP_RETRY22="Retry",OP_DONE52="Done",OP_SUSPEND32="Suspend",OP_DONE62="Done",OP_INTERRUPTED2="Interrupted",OP_RUNNING22="Running",STMStateSymbolKey2="effect/STM/State",STMStateTypeId2=Symbol.for(STMStateSymbolKey2),isSTMState2=(u)=>hasProperty2(u,STMStateTypeId2),isRunning22=(self)=>{return self._tag===OP_RUNNING22},isDone62=(self)=>{return self._tag===OP_DONE62},done82=(exit32)=>{return{[STMStateTypeId2]:STMStateTypeId2,_tag:OP_DONE62,exit:exit32,[symbol3](){return pipe2(hash2(STMStateSymbolKey2),combine11(hash2(OP_DONE62)),combine11(hash2(exit32)),cached4(this))},[symbol22](that){return isSTMState2(that)&&that._tag===OP_DONE62&&equals4(exit32,that.exit)}}},interruptedHash2=pipe2(hash2(STMStateSymbolKey2),combine11(hash2(OP_INTERRUPTED2)),combine11(hash2("interrupted"))),interrupted22={[STMStateTypeId2]:STMStateTypeId2,_tag:OP_INTERRUPTED2,[symbol3](){return interruptedHash2},[symbol22](that){return isSTMState2(that)&&that._tag===OP_INTERRUPTED2}},runningHash2=pipe2(hash2(STMStateSymbolKey2),combine11(hash2(OP_RUNNING22)),combine11(hash2("running"))),running32={[STMStateTypeId2]:STMStateTypeId2,_tag:OP_RUNNING22,[symbol3](){return runningHash2},[symbol22](that){return isSTMState2(that)&&that._tag===OP_RUNNING22}},fromTExit2=(tExit)=>{switch(tExit._tag){case OP_FAIL52:return done82(fail42(tExit.error));case OP_DIE32:return done82(die32(tExit.defect));case OP_INTERRUPT32:return done82(interrupt42(tExit.fiberId));case OP_SUCCEED32:return done82(succeed32(tExit.value));case OP_RETRY22:throw Error("BUG: STM.STMState.fromTExit - please report an issue at https://github.com/Effect-TS/effect/issues")}},TExitSymbolKey2="effect/TExit",TExitTypeId2=Symbol.for(TExitSymbolKey2),variance62={_A:(_)=>_,_E:(_)=>_},isExit22=(u)=>hasProperty2(u,TExitTypeId2),isSuccess42=(self)=>{return self._tag===OP_SUCCEED32},isRetry2=(self)=>{return self._tag===OP_RETRY22},fail132=(error3)=>({[TExitTypeId2]:variance62,_tag:OP_FAIL52,error:error3,[symbol3](){return pipe2(hash2(TExitSymbolKey2),combine11(hash2(OP_FAIL52)),combine11(hash2(error3)),cached4(this))},[symbol22](that){return isExit22(that)&&that._tag===OP_FAIL52&&equals4(error3,that.error)}}),die82=(defect)=>({[TExitTypeId2]:variance62,_tag:OP_DIE32,defect,[symbol3](){return pipe2(hash2(TExitSymbolKey2),combine11(hash2(OP_DIE32)),combine11(hash2(defect)),cached4(this))},[symbol22](that){return isExit22(that)&&that._tag===OP_DIE32&&equals4(defect,that.defect)}}),interrupt82=(fiberId32)=>({[TExitTypeId2]:variance62,_tag:OP_INTERRUPT32,fiberId:fiberId32,[symbol3](){return pipe2(hash2(TExitSymbolKey2),combine11(hash2(OP_INTERRUPT32)),combine11(hash2(fiberId32)),cached4(this))},[symbol22](that){return isExit22(that)&&that._tag===OP_INTERRUPT32&&equals4(fiberId32,that.fiberId)}}),succeed122=(value)=>({[TExitTypeId2]:variance62,_tag:OP_SUCCEED32,value,[symbol3](){return pipe2(hash2(TExitSymbolKey2),combine11(hash2(OP_SUCCEED32)),combine11(hash2(value)),cached4(this))},[symbol22](that){return isExit22(that)&&that._tag===OP_SUCCEED32&&equals4(value,that.value)}}),retryHash2=pipe2(hash2(TExitSymbolKey2),combine11(hash2(OP_RETRY22)),combine11(hash2("retry"))),retry42={[TExitTypeId2]:variance62,_tag:OP_RETRY22,[symbol3](){return retryHash2},[symbol22](that){return isExit22(that)&&isRetry2(that)}},done92=(exit32)=>{return{_tag:OP_DONE52,exit:exit32}},suspend72=(journal)=>{return{_tag:OP_SUSPEND32,journal}},txnCounter2={ref:0},make462=()=>{let newId=txnCounter2.ref+1;return txnCounter2.ref=newId,newId},STMSymbolKey22="effect/STM",STMTypeId22=Symbol.for(STMSymbolKey22),stmVariance2={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_};class STMPrimitive2{effect_instruction_i0;_op=OP_COMMIT2;effect_instruction_i1=void 0;effect_instruction_i2=void 0;[EffectTypeId32];[StreamTypeId4];[SinkTypeId22];[ChannelTypeId22];get[STMTypeId22](){return stmVariance2}constructor(effect_instruction_i0){this.effect_instruction_i0=effect_instruction_i0,this[EffectTypeId32]=effectVariance2,this[StreamTypeId4]=stmVariance2,this[SinkTypeId22]=stmVariance2,this[ChannelTypeId22]=stmVariance2}[symbol22](that){return this===that}[symbol3](){return cached4(this,random4(this))}[Symbol.iterator](){return new SingleShotGen22(new YieldWrap2(this))}commit(){return unsafeAtomically2(this,constVoid2,constVoid2)}pipe(){return pipeArguments2(this,arguments)}}var unsafeAtomically2=(self,onDone3,onInterrupt32)=>withFiberRuntime3((state)=>{let fiberId32=state.id(),env=state.getFiberRef(currentContext22),scheduler=state.getFiberRef(currentScheduler22),priority=state.getFiberRef(currentSchedulingPriority22),commitResult=tryCommitSync2(fiberId32,self,env,scheduler,priority);switch(commitResult._tag){case OP_DONE52:return onDone3(commitResult.exit),commitResult.exit;case OP_SUSPEND32:{let txnId=make462(),state2={value:running32},effect32=async2((k)=>tryCommitAsync2(fiberId32,self,txnId,state2,env,scheduler,priority,k));return uninterruptibleMask32((restore)=>pipe2(restore(effect32),catchAllCause32((cause32)=>{let currentState=state2.value;if(isRunning22(currentState))state2.value=interrupted22;if(currentState=state2.value,isDone62(currentState))return onDone3(currentState.exit),currentState.exit;return onInterrupt32(),failCause82(cause32)})))}}}),tryCommit2=(fiberId32,stm,state,env,scheduler,priority)=>{let journal=new Map,tExit=new STMDriver2(stm,journal,fiberId32,env).run(),analysis=analyzeJournal2(journal);if(analysis===JournalAnalysisReadWrite2)commitJournal2(journal);else if(analysis===JournalAnalysisInvalid2)throw Error("BUG: STM.TryCommit.tryCommit - please report an issue at https://github.com/Effect-TS/effect/issues");switch(tExit._tag){case OP_SUCCEED32:return state.value=fromTExit2(tExit),completeTodos2(succeed32(tExit.value),journal,scheduler,priority);case OP_FAIL52:{state.value=fromTExit2(tExit);let cause32=fail52(tExit.error);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_DIE32:{state.value=fromTExit2(tExit);let cause32=die42(tExit.defect);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_INTERRUPT32:{state.value=fromTExit2(tExit);let cause32=interrupt52(fiberId32);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_RETRY22:return suspend72(journal)}},tryCommitSync2=(fiberId32,stm,env,scheduler,priority)=>{let journal=new Map,tExit=new STMDriver2(stm,journal,fiberId32,env).run(),analysis=analyzeJournal2(journal);if(analysis===JournalAnalysisReadWrite2&&isSuccess42(tExit))commitJournal2(journal);else if(analysis===JournalAnalysisInvalid2)throw Error("BUG: STM.TryCommit.tryCommitSync - please report an issue at https://github.com/Effect-TS/effect/issues");switch(tExit._tag){case OP_SUCCEED32:return completeTodos2(succeed32(tExit.value),journal,scheduler,priority);case OP_FAIL52:{let cause32=fail52(tExit.error);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_DIE32:{let cause32=die42(tExit.defect);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_INTERRUPT32:{let cause32=interrupt52(fiberId32);return completeTodos2(failCause32(cause32),journal,scheduler,priority)}case OP_RETRY22:return suspend72(journal)}},tryCommitAsync2=(fiberId32,self,txnId,state,context52,scheduler,priority,k)=>{if(isRunning22(state.value)){let result=tryCommit2(fiberId32,self,state,context52,scheduler,priority);switch(result._tag){case OP_DONE52:{completeTryCommit2(result.exit,k);break}case OP_SUSPEND32:{addTodo2(txnId,result.journal,()=>tryCommitAsync2(fiberId32,self,txnId,state,context52,scheduler,priority,k));break}}}},completeTodos2=(exit32,journal,scheduler,priority)=>{let todos=collectTodos2(journal);if(todos.size>0)scheduler.scheduleTask(()=>execTodos2(todos),priority);return done92(exit32)},completeTryCommit2=(exit32,k)=>{k(exit32)};class STMDriver2{self;journal;fiberId;contStack=[];env;constructor(self,journal,fiberId32,r0){this.self=self,this.journal=journal,this.fiberId=fiberId32,this.env=r0}getEnv(){return this.env}pushStack(cont){this.contStack.push(cont)}popStack(){return this.contStack.pop()}nextSuccess(){let current2=this.popStack();while(current2!==void 0&&current2.effect_instruction_i0!==OP_ON_SUCCESS22)current2=this.popStack();return current2}nextFailure(){let current2=this.popStack();while(current2!==void 0&&current2.effect_instruction_i0!==OP_ON_FAILURE22)current2=this.popStack();return current2}nextRetry(){let current2=this.popStack();while(current2!==void 0&&current2.effect_instruction_i0!==OP_ON_RETRY2)current2=this.popStack();return current2}run(){let curr=this.self,exit32=void 0;while(exit32===void 0&&curr!==void 0)try{let current2=curr;if(current2)switch(current2._op){case"Tag":{curr=effect32((_,__,env)=>unsafeGet32(env,current2));break}case"Left":{curr=fail142(current2.left);break}case"None":{curr=fail142(new NoSuchElementException22);break}case"Right":{curr=succeed132(current2.right);break}case"Some":{curr=succeed132(current2.value);break}case"Commit":{switch(current2.effect_instruction_i0){case OP_DIE22:{exit32=die82(internalCall2(()=>current2.effect_instruction_i1()));break}case OP_FAIL42:{let cont=this.nextFailure();if(cont===void 0)exit32=fail132(internalCall2(()=>current2.effect_instruction_i1()));else curr=internalCall2(()=>cont.effect_instruction_i2(internalCall2(()=>current2.effect_instruction_i1())));break}case OP_RETRY3:{let cont=this.nextRetry();if(cont===void 0)exit32=retry42;else curr=internalCall2(()=>cont.effect_instruction_i2());break}case OP_INTERRUPT22:{exit32=interrupt82(this.fiberId);break}case OP_WITH_STM_RUNTIME2:{curr=internalCall2(()=>current2.effect_instruction_i1(this));break}case OP_ON_SUCCESS22:case OP_ON_FAILURE22:case OP_ON_RETRY2:{this.pushStack(current2),curr=current2.effect_instruction_i1;break}case OP_PROVIDE32:{let env=this.env;this.env=internalCall2(()=>current2.effect_instruction_i2(env)),curr=pipe2(current2.effect_instruction_i1,ensuring52(sync72(()=>this.env=env)));break}case OP_SUCCEED22:{let value=current2.effect_instruction_i1,cont=this.nextSuccess();if(cont===void 0)exit32=succeed122(value);else curr=internalCall2(()=>cont.effect_instruction_i2(value));break}case OP_SYNC22:{let value=internalCall2(()=>current2.effect_instruction_i1()),cont=this.nextSuccess();if(cont===void 0)exit32=succeed122(value);else curr=internalCall2(()=>cont.effect_instruction_i2(value));break}}break}}}catch(e){curr=die92(e)}return exit32}}var catchAll62=dual2(2,(self,f)=>{let stm=new STMPrimitive2(OP_ON_FAILURE22);return stm.effect_instruction_i1=self,stm.effect_instruction_i2=f,stm}),die92=(defect)=>dieSync52(()=>defect),dieSync52=(evaluate22)=>{let stm=new STMPrimitive2(OP_DIE22);return stm.effect_instruction_i1=evaluate22,stm},effect32=(f)=>withSTMRuntime2((_)=>succeed132(f(_.journal,_.fiberId,_.getEnv()))),ensuring52=dual2(2,(self,finalizer3)=>matchSTM2(self,{onFailure:(e)=>zipRight82(finalizer3,fail142(e)),onSuccess:(a)=>zipRight82(finalizer3,succeed132(a))})),fail142=(error3)=>failSync62(()=>error3),failSync62=(evaluate22)=>{let stm=new STMPrimitive2(OP_FAIL42);return stm.effect_instruction_i1=evaluate22,stm},flatMap152=dual2(2,(self,f)=>{let stm=new STMPrimitive2(OP_ON_SUCCESS22);return stm.effect_instruction_i1=self,stm.effect_instruction_i2=f,stm}),matchSTM2=dual2(2,(self,{onFailure,onSuccess})=>pipe2(self,map192(right22),catchAll62((e)=>pipe2(onFailure(e),map192(left22))),flatMap152((either52)=>{switch(either52._tag){case"Left":return succeed132(either52.left);case"Right":return onSuccess(either52.right)}}))),withSTMRuntime2=(f)=>{let stm=new STMPrimitive2(OP_WITH_STM_RUNTIME2);return stm.effect_instruction_i1=f,stm},interruptAs22=(fiberId32)=>{let stm=new STMPrimitive2(OP_INTERRUPT22);return stm.effect_instruction_i1=fiberId32,stm},map192=dual2(2,(self,f)=>pipe2(self,flatMap152((a)=>sync72(()=>f(a))))),retry52=new STMPrimitive2(OP_RETRY3),succeed132=(value)=>{let stm=new STMPrimitive2(OP_SUCCEED22);return stm.effect_instruction_i1=value,stm},sync72=(evaluate22)=>{let stm=new STMPrimitive2(OP_SYNC22);return stm.effect_instruction_i1=evaluate22,stm},zipRight82=dual2(2,(self,that)=>pipe2(self,flatMap152(()=>that))),zipWith102=dual2(3,(self,that,f)=>pipe2(self,flatMap152((a)=>pipe2(that,map192((b)=>f(a,b)))))),OP_BACKPRESSURE_STRATEGY2="BackPressure",OP_DROPPING_STRATEGY2="Dropping",OP_SLIDING_STRATEGY2="Sliding",as72=dual2(2,(self,value)=>pipe2(self,map192(()=>value))),flatten122=(self)=>flatMap152(self,identity5),forEach92=dual2((args22)=>isIterable2(args22[0]),(iterable,f,options)=>{if(options?.discard)return pipe2(sync72(()=>iterable[Symbol.iterator]()),flatMap152((iterator)=>{let loop32=suspend82(()=>{let next4=iterator.next();if(next4.done)return void_72;return pipe2(f(next4.value),flatMap152(()=>loop32))});return loop32}));return suspend82(()=>fromIterable22(iterable).reduce((acc,curr)=>zipWith102(acc,f(curr),(array42,elem)=>{return array42.push(elem),array42}),succeed132([])))}),all52=(input,options)=>{if(Symbol.iterator in input)return forEach92(input,identity5,options);else if(options?.discard)return forEach92(Object.values(input),identity5,options);return map192(forEach92(Object.entries(input),([_,e])=>map192(e,(a)=>[_,a])),(values3)=>{let res={};for(let[k,v]of values3)res[k]=v;return res})},suspend82=(evaluate22)=>flatten122(sync72(evaluate22)),tap62=dual2(2,(self,f)=>flatMap152(self,(a)=>as72(f(a),a))),void_72=succeed132(void 0),TRefSymbolKey2="effect/TRef",TRefTypeId2=Symbol.for(TRefSymbolKey2),tRefVariance2={_A:(_)=>_};class TRefImpl2{[TRefTypeId2]=tRefVariance2;todos;versioned;constructor(value){this.versioned=new Versioned2(value),this.todos=new Map}modify(f){return effect32((journal)=>{let entry=getOrMakeEntry2(this,journal),[retValue,newValue]=f(unsafeGet62(entry));return unsafeSet3(entry,newValue),retValue})}pipe(){return pipeArguments2(this,arguments)}}var make472=(value)=>effect32((journal)=>{let ref=new TRefImpl2(value);return journal.set(ref,make452(ref,!0)),ref}),get162=(self)=>self.modify((a)=>[a,a]),set72=dual2(2,(self,value)=>self.modify(()=>[void 0,value])),getOrMakeEntry2=(self,journal)=>{if(journal.has(self))return journal.get(self);let entry=make452(self,!1);return journal.set(self,entry),entry},unsafeGet72=dual2(2,(self,journal)=>unsafeGet62(getOrMakeEntry2(self,journal))),unsafeSet22=dual2(3,(self,value,journal)=>{let entry=getOrMakeEntry2(self,journal);unsafeSet3(entry,value);return}),TEnqueueSymbolKey2="effect/TQueue/TEnqueue",TEnqueueTypeId2=Symbol.for(TEnqueueSymbolKey2),TDequeueSymbolKey2="effect/TQueue/TDequeue",TDequeueTypeId2=Symbol.for(TDequeueSymbolKey2),tDequeueVariance2={_Out:(_)=>_},tEnqueueVariance2={_In:(_)=>_};class TQueueImpl2{ref;requestedCapacity;strategy;[TDequeueTypeId2]=tDequeueVariance2;[TEnqueueTypeId2]=tEnqueueVariance2;constructor(ref,requestedCapacity,strategy){this.ref=ref,this.requestedCapacity=requestedCapacity,this.strategy=strategy}capacity(){return this.requestedCapacity}size=withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);return succeed132(queue.length)});isFull=map192(this.size,(size122)=>size122===this.requestedCapacity);isEmpty=map192(this.size,(size122)=>size122===0);shutdown=withSTMRuntime2((runtime4)=>{return unsafeSet22(this.ref,void 0,runtime4.journal),void_72});isShutdown=effect32((journal)=>{return unsafeGet72(this.ref,journal)===void 0});awaitShutdown=flatMap152(this.isShutdown,(isShutdown42)=>isShutdown42?void_72:retry52);offer(value){return withSTMRuntime2((runtime4)=>{let queue=pipe2(this.ref,unsafeGet72(runtime4.journal));if(queue===void 0)return interruptAs22(runtime4.fiberId);if(queue.length<this.requestedCapacity)return queue.push(value),unsafeSet22(this.ref,queue,runtime4.journal),succeed132(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY2:return retry52;case OP_DROPPING_STRATEGY2:return succeed132(!1);case OP_SLIDING_STRATEGY2:{if(queue.length===0)return succeed132(!0);return queue.shift(),queue.push(value),unsafeSet22(this.ref,queue,runtime4.journal),succeed132(!0)}}})}offerAll(iterable){return withSTMRuntime2((runtime4)=>{let as82=Array.from(iterable),queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);if(queue.length+as82.length<=this.requestedCapacity)return unsafeSet22(this.ref,[...queue,...as82],runtime4.journal),succeed132(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY2:return retry52;case OP_DROPPING_STRATEGY2:{let forQueue=as82.slice(0,this.requestedCapacity-queue.length);return unsafeSet22(this.ref,[...queue,...forQueue],runtime4.journal),succeed132(!1)}case OP_SLIDING_STRATEGY2:{let forQueue=as82.slice(0,this.requestedCapacity-queue.length),toDrop=queue.length+forQueue.length-this.requestedCapacity,newQueue=queue.slice(toDrop);return unsafeSet22(this.ref,[...newQueue,...forQueue],runtime4.journal),succeed132(!0)}}})}peek=withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);if(queue.length===0)return retry52;return succeed132(queue[0])});peekOption=withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);return succeed132(fromNullable4(queue[0]))});take=withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);if(queue.length===0)return retry52;let dequeued=queue.shift();return unsafeSet22(this.ref,queue,runtime4.journal),succeed132(dequeued)});takeAll=withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);return unsafeSet22(this.ref,[],runtime4.journal),succeed132(queue)});takeUpTo(max52){return withSTMRuntime2((runtime4)=>{let queue=unsafeGet72(this.ref,runtime4.journal);if(queue===void 0)return interruptAs22(runtime4.fiberId);let[toTake,remaining]=splitAt22(unsafeFromArray2(queue),max52);return unsafeSet22(this.ref,Array.from(remaining),runtime4.journal),succeed132(Array.from(toTake))})}}var isShutdown42=(self)=>self.isShutdown,shutdown52=(self)=>self.shutdown,take42=(self)=>self.take,TPubSubSymbolKey2="effect/TPubSub",TPubSubTypeId2=Symbol.for(TPubSubSymbolKey2),AbsentValue22=Symbol.for("effect/TPubSub/AbsentValue"),makeNode22=(head62,subscribers,tail2)=>({head:head62,subscribers,tail:tail2});class TPubSubImpl2{pubsubSize;publisherHead;publisherTail;requestedCapacity;strategy;subscriberCount;subscribers;[TPubSubTypeId2]={_A:(_)=>_};[TEnqueueTypeId2]=tEnqueueVariance2;constructor(pubsubSize,publisherHead,publisherTail,requestedCapacity,strategy,subscriberCount,subscribers){this.pubsubSize=pubsubSize,this.publisherHead=publisherHead,this.publisherTail=publisherTail,this.requestedCapacity=requestedCapacity,this.strategy=strategy,this.subscriberCount=subscriberCount,this.subscribers=subscribers}isShutdown=effect32((journal)=>{return unsafeGet72(this.publisherTail,journal)===void 0});awaitShutdown=flatMap152(this.isShutdown,(isShutdown52)=>isShutdown52?void_72:retry52);capacity(){return this.requestedCapacity}size=withSTMRuntime2((runtime4)=>{if(unsafeGet72(this.publisherTail,runtime4.journal)===void 0)return interruptAs22(runtime4.fiberId);return succeed132(unsafeGet72(this.pubsubSize,runtime4.journal))});isEmpty=map192(this.size,(size122)=>size122===0);isFull=map192(this.size,(size122)=>size122===this.capacity());offer(value){return withSTMRuntime2((runtime4)=>{let currentPublisherTail=unsafeGet72(this.publisherTail,runtime4.journal);if(currentPublisherTail===void 0)return interruptAs22(runtime4.fiberId);let currentSubscriberCount=unsafeGet72(this.subscriberCount,runtime4.journal);if(currentSubscriberCount===0)return succeed132(!0);let currentPubSubSize=unsafeGet72(this.pubsubSize,runtime4.journal);if(currentPubSubSize<this.requestedCapacity){let updatedPublisherTail=new TRefImpl2(void 0),updatedNode=makeNode22(value,currentSubscriberCount,updatedPublisherTail);return unsafeSet22(currentPublisherTail,updatedNode,runtime4.journal),unsafeSet22(this.publisherTail,updatedPublisherTail,runtime4.journal),unsafeSet22(this.pubsubSize,currentPubSubSize+1,runtime4.journal),succeed132(!0)}switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY2:return retry52;case OP_DROPPING_STRATEGY2:return succeed132(!1);case OP_SLIDING_STRATEGY2:{if(this.requestedCapacity>0){let currentPublisherHead=unsafeGet72(this.publisherHead,runtime4.journal),loop32=!0;while(loop32){let node=unsafeGet72(currentPublisherHead,runtime4.journal);if(node===void 0)return retry52;let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22){let updatedNode2=makeNode22(AbsentValue22,node.subscribers,node.tail);unsafeSet22(currentPublisherHead,updatedNode2,runtime4.journal),unsafeSet22(this.publisherHead,tail2,runtime4.journal),loop32=!1}else currentPublisherHead=tail2}}let updatedPublisherTail=new TRefImpl2(void 0),updatedNode=makeNode22(value,currentSubscriberCount,updatedPublisherTail);return unsafeSet22(currentPublisherTail,updatedNode,runtime4.journal),unsafeSet22(this.publisherTail,updatedPublisherTail,runtime4.journal),succeed132(!0)}}})}offerAll(iterable){return map192(forEach92(iterable,(a)=>this.offer(a)),every7(identity5))}shutdown=effect32((journal)=>{if(unsafeGet72(this.publisherTail,journal)!==void 0){unsafeSet22(this.publisherTail,void 0,journal);let currentSubscribers=unsafeGet72(this.subscribers,journal);forEach42(currentSubscribers,(subscriber)=>{unsafeSet22(subscriber,void 0,journal)}),unsafeSet22(this.subscribers,empty72(),journal)}})}class TPubSubSubscriptionImpl2{pubsubSize;publisherHead;requestedCapacity;subscriberHead;subscriberCount;subscribers;[TPubSubTypeId2]=TPubSubTypeId2;[TDequeueTypeId2]=tDequeueVariance2;constructor(pubsubSize,publisherHead,requestedCapacity,subscriberHead,subscriberCount,subscribers){this.pubsubSize=pubsubSize,this.publisherHead=publisherHead,this.requestedCapacity=requestedCapacity,this.subscriberHead=subscriberHead,this.subscriberCount=subscriberCount,this.subscribers=subscribers}isShutdown=effect32((journal)=>{return unsafeGet72(this.subscriberHead,journal)===void 0});awaitShutdown=flatMap152(this.isShutdown,(isShutdown52)=>isShutdown52?void_72:retry52);capacity(){return this.requestedCapacity}size=withSTMRuntime2((runtime4)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs22(runtime4.fiberId);let loop32=!0,size122=0;while(loop32){let node=unsafeGet72(currentSubscriberHead,runtime4.journal);if(node===void 0)loop32=!1;else{let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22){if(size122=size122+1,size122>=Number.MAX_SAFE_INTEGER)loop32=!1}currentSubscriberHead=tail2}}return succeed132(size122)});isEmpty=map192(this.size,(size122)=>size122===0);isFull=map192(this.size,(size122)=>size122===this.capacity());peek=withSTMRuntime2((runtime4)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs22(runtime4.fiberId);let value=AbsentValue22,loop32=!0;while(loop32){let node=unsafeGet72(currentSubscriberHead,runtime4.journal);if(node===void 0)return retry52;let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22)value=head62,loop32=!1;else currentSubscriberHead=tail2}return succeed132(value)});peekOption=withSTMRuntime2((runtime4)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs22(runtime4.fiberId);let value=none22(),loop32=!0;while(loop32){let node=unsafeGet72(currentSubscriberHead,runtime4.journal);if(node===void 0)value=none22(),loop32=!1;else{let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22)value=some22(head62),loop32=!1;else currentSubscriberHead=tail2}}return succeed132(value)});shutdown=effect32((journal)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,journal);if(currentSubscriberHead!==void 0){unsafeSet22(this.subscriberHead,void 0,journal);let loop32=!0;while(loop32){let node=unsafeGet72(currentSubscriberHead,journal);if(node===void 0)loop32=!1;else{let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22){let subscribers=node.subscribers;if(subscribers===1){let size122=unsafeGet72(this.pubsubSize,journal),updatedNode=makeNode22(AbsentValue22,0,tail2);unsafeSet22(currentSubscriberHead,updatedNode,journal),unsafeSet22(this.publisherHead,tail2,journal),unsafeSet22(this.pubsubSize,size122-1,journal)}else{let updatedNode=makeNode22(head62,subscribers-1,tail2);unsafeSet22(currentSubscriberHead,updatedNode,journal)}}currentSubscriberHead=tail2}}let currentSubscriberCount=unsafeGet72(this.subscriberCount,journal);unsafeSet22(this.subscriberCount,currentSubscriberCount-1,journal),unsafeSet22(this.subscribers,remove52(unsafeGet72(this.subscribers,journal),this.subscriberHead),journal)}});take=withSTMRuntime2((runtime4)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs22(runtime4.fiberId);let value=AbsentValue22,loop32=!0;while(loop32){let node=unsafeGet72(currentSubscriberHead,runtime4.journal);if(node===void 0)return retry52;let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22){let subscribers=node.subscribers;if(subscribers===1){let size122=unsafeGet72(this.pubsubSize,runtime4.journal),updatedNode=makeNode22(AbsentValue22,0,tail2);unsafeSet22(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet22(this.publisherHead,tail2,runtime4.journal),unsafeSet22(this.pubsubSize,size122-1,runtime4.journal)}else{let updatedNode=makeNode22(head62,subscribers-1,tail2);unsafeSet22(currentSubscriberHead,updatedNode,runtime4.journal)}unsafeSet22(this.subscriberHead,tail2,runtime4.journal),value=head62,loop32=!1}else currentSubscriberHead=tail2}return succeed132(value)});takeAll=this.takeUpTo(Number.POSITIVE_INFINITY);takeUpTo(max52){return withSTMRuntime2((runtime4)=>{let currentSubscriberHead=unsafeGet72(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs22(runtime4.fiberId);let builder=[],n=0;while(n!==max52){let node=unsafeGet72(currentSubscriberHead,runtime4.journal);if(node===void 0)n=max52;else{let{head:head62,tail:tail2}=node;if(head62!==AbsentValue22){let subscribers=node.subscribers;if(subscribers===1){let size122=unsafeGet72(this.pubsubSize,runtime4.journal),updatedNode=makeNode22(AbsentValue22,0,tail2);unsafeSet22(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet22(this.publisherHead,tail2,runtime4.journal),unsafeSet22(this.pubsubSize,size122-1,runtime4.journal)}else{let updatedNode=makeNode22(head62,subscribers-1,tail2);unsafeSet22(currentSubscriberHead,updatedNode,runtime4.journal)}builder.push(head62),n=n+1}currentSubscriberHead=tail2}}return unsafeSet22(this.subscriberHead,currentSubscriberHead,runtime4.journal),succeed132(builder)})}}var makeSubscription22=(pubsubSize,publisherHead,publisherTail,requestedCapacity,subscriberCount,subscribers)=>pipe2(get162(publisherTail),flatMap152((currentPublisherTail)=>pipe2(all52([make472(currentPublisherTail),get162(subscriberCount),get162(subscribers)]),tap62(([_,currentSubscriberCount])=>pipe2(subscriberCount,set72(currentSubscriberCount+1))),tap62(([subscriberHead,_,currentSubscribers])=>pipe2(subscribers,set72(pipe2(currentSubscribers,add42(subscriberHead))))),map192(([subscriberHead])=>new TPubSubSubscriptionImpl2(pubsubSize,publisherHead,requestedCapacity,subscriberHead,subscriberCount,subscribers))))),subscribe32=(self)=>makeSubscription22(self.pubsubSize,self.publisherHead,self.publisherTail,self.requestedCapacity,self.subscriberCount,self.subscribers),subscribeScoped3=(self)=>acquireRelease22(subscribe32(self),(dequeue)=>shutdown52(dequeue)),subscribeScoped22=subscribeScoped3,isShutdown62=isShutdown42,take52=take42;class RingBuffer2{capacity;array;size=0;current=0;constructor(capacity72){this.capacity=capacity72,this.array=Array.from({length:capacity72},constUndefined2)}head(){return fromNullable4(this.array[this.current])}lastOrNull(){if(this.size===0)return;let index=this.current===0?this.array.length-1:this.current-1;return this.array[index]??void 0}put(value){this.array[this.current]=value,this.increment()}dropLast(){if(this.size>0)this.decrement(),this.array[this.current]=void 0}toChunk(){let begin=this.current-this.size,newArray=begin<0?[...this.array.slice(this.capacity+begin,this.capacity),...this.array.slice(0,this.current)]:this.array.slice(begin,this.current);return fromIterable32(newArray)}increment(){if(this.size<this.capacity)this.size+=1;this.current=(this.current+1)%this.capacity}decrement(){if(this.size-=1,this.current>0)this.current-=1;else this.current=this.capacity-1}}var OP_NOT_STARTED2="NotStarted",OP_PREVIOUS2="Previous",OP_CURRENT2="Current",notStarted2={_tag:"NotStarted"},previous2=(fiber)=>({_tag:"Previous",fiber}),current2=(fiber)=>({_tag:"Current",fiber}),make482=(emit2)=>{return Object.assign(emit2,{chunk(as82){return this(succeed82(as82))},die(defect){return this(die62(defect))},dieMessage(message){return this(dieMessage22(message))},done(exit32){return this(suspend32(()=>mapBoth22(exit32,{onFailure:some22,onSuccess:of22})))},end(){return this(fail92(none22()))},fail(e){return this(fail92(some22(e)))},fromEffect(effect42){return this(mapBoth32(effect42,{onFailure:some22,onSuccess:of22}))},fromEffectChunk(effect42){return this(pipe2(effect42,mapError32(some22)))},halt(cause32){return this(failCause82(pipe2(cause32,map112(some22))))},single(value){return this(succeed82(of22(value)))}})},makePush2=(queue,scheduler)=>{let finished=!1,buffer3=[],running42=!1;function array42(items){if(finished)return!1;if(items.length<=50000)buffer3.push.apply(buffer3,items);else for(let i=0;i<items.length;i++)buffer3.push(items[0]);if(!running42)running42=!0,scheduler.scheduleTask(flush,0);return!0}function flush(){if(running42=!1,buffer3.length>0)queue.unsafeOffer(buffer3),buffer3=[]}function done102(exit32){if(finished)return;if(finished=!0,exit32._tag==="Success")buffer3.push(exit32.value);flush(),queue.unsafeOffer(exit32._tag==="Success"?void_32:exit32)}return{single(value){if(finished)return!1;if(buffer3.push(value),!running42)running42=!0,scheduler.scheduleTask(flush,0);return!0},array:array42,chunk(chunk22){return array42(toReadonlyArray2(chunk22))},done:done102,end(){if(finished)return;finished=!0,flush(),queue.unsafeOffer(void_32)},halt(cause32){return done102(failCause32(cause32))},fail(error3){return done102(fail42(error3))},die(defect){return done102(die32(defect))},dieMessage(message){return done102(die32(Error(message)))}}},HandoffTypeId2=Symbol.for("effect/Stream/Handoff"),OP_HANDOFF_STATE_EMPTY2="Empty",OP_HANDOFF_STATE_FULL2="Full",handoffStateEmpty2=(notifyConsumer)=>({_tag:OP_HANDOFF_STATE_EMPTY2,notifyConsumer}),handoffStateFull2=(value,notifyProducer)=>({_tag:OP_HANDOFF_STATE_FULL2,value,notifyProducer}),handoffStateMatch2=(onEmpty,onFull)=>{return(self)=>{switch(self._tag){case OP_HANDOFF_STATE_EMPTY2:return onEmpty(self.notifyConsumer);case OP_HANDOFF_STATE_FULL2:return onFull(self.value,self.notifyProducer)}}},handoffVariance2={_A:(_)=>_},make492=()=>pipe2(make182(),flatMap112((deferred)=>make282(handoffStateEmpty2(deferred))),map152((ref)=>({[HandoffTypeId2]:handoffVariance2,ref}))),offer52=dual2(2,(self,value)=>{return flatMap112(make182(),(deferred)=>flatten92(modify52(self.ref,(state)=>pipe2(state,handoffStateMatch2((notifyConsumer)=>[zipRight42(succeed22(notifyConsumer,void 0),_await4(deferred)),handoffStateFull2(value,deferred)],(_,notifyProducer)=>[flatMap112(_await4(notifyProducer),()=>pipe2(self,offer52(value))),state])))))}),take62=(self)=>flatMap112(make182(),(deferred)=>flatten92(modify52(self.ref,(state)=>pipe2(state,handoffStateMatch2((notifyConsumer)=>[flatMap112(_await4(notifyConsumer),()=>take62(self)),state],(value,notifyProducer)=>[as42(succeed22(notifyProducer,void 0),value),handoffStateEmpty2(deferred)]))))),OP_EMIT42="Emit",OP_HALT2="Halt",OP_END2="End",emit2=(elements)=>({_tag:"Emit",elements}),halt2=(cause32)=>({_tag:"Halt",cause:cause32}),end32=(reason)=>({_tag:"End",reason}),TakeSymbolKey2="effect/Take",TakeTypeId2=Symbol.for(TakeSymbolKey2),takeVariance2={_A:(_)=>_,_E:(_)=>_};class TakeImpl2{exit;[TakeTypeId2]=takeVariance2;constructor(exit32){this.exit=exit32}pipe(){return pipeArguments2(this,arguments)}}var chunk22=(chunk32)=>new TakeImpl2(succeed32(chunk32)),done102=(self)=>suspend32(()=>self.exit),end42=new TakeImpl2(fail42(none22())),failCause112=(cause32)=>new TakeImpl2(failCause32(pipe2(cause32,map112(some22)))),fromPull4=(pull)=>matchCause32(pull,{onFailure:(cause32)=>match22(flipCauseOption22(cause32),{onNone:()=>end42,onSome:failCause112}),onSuccess:chunk22}),match172=dual2(2,(self,{onEnd:onEnd3,onFailure,onSuccess})=>match52(self.exit,{onFailure:(cause32)=>match22(flipCauseOption22(cause32),{onNone:onEnd3,onSome:onFailure}),onSuccess})),of52=(value)=>new TakeImpl2(succeed32(of22(value))),end52=()=>fail92(none22()),failCause122=(cause32)=>mapError32(failCause82(cause32),some22),OP_SCHEDULE_END2="ScheduleEnd",OP_UPSTREAM_END2="UpstreamEnd",ScheduleEnd2={_tag:"ScheduleEnd"},UpstreamEnd2={_tag:"UpstreamEnd"},OP_DRAIN_LEFT2="DrainLeft",OP_DRAIN_RIGHT2="DrainRight",OP_PULL_BOTH3="PullBoth",OP_PULL_LEFT3="PullLeft",OP_PULL_RIGHT3="PullRight",DrainLeft2={_tag:"DrainLeft"},DrainRight2={_tag:"DrainRight"},PullBoth3={_tag:"PullBoth"},PullLeft3=(rightChunk)=>({_tag:"PullLeft",rightChunk}),PullRight3=(leftChunk)=>({_tag:"PullRight",leftChunk}),OP_PULL_BOTH22="PullBoth",OP_PULL_LEFT22="PullLet",OP_PULL_RIGHT22="PullRight",PullBoth22={_tag:"PullBoth"},PullLeft22=(rightChunk)=>({_tag:"PullLet",rightChunk}),PullRight22=(leftChunk)=>({_tag:"PullRight",leftChunk}),StreamSymbolKey2="effect/Stream",StreamTypeId22=Symbol.for(StreamSymbolKey2),streamVariance2={_R:(_)=>_,_E:(_)=>_,_A:(_)=>_};class StreamImpl2{channel;[StreamTypeId22]=streamVariance2;constructor(channel){this.channel=channel}pipe(){return pipeArguments2(this,arguments)}}var isStream2=(u)=>hasProperty2(u,StreamTypeId22)||isEffect22(u),DefaultChunkSize3=4096,accumulate3=(self)=>chunks3(accumulateChunks3(self)),accumulateChunks3=(self)=>{let accumulator=(s)=>readWith2({onInput:(input)=>{let next4=appendAll22(s,input);return flatMap132(write2(next4),()=>accumulator(next4))},onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipeTo2(toChannel22(self),accumulator(empty42())))},acquireRelease32=(acquire,release)=>scoped52(acquireRelease22(acquire,release)),aggregate3=dual2(2,(self,sink)=>aggregateWithin3(self,sink,forever42)),aggregateWithin3=dual2(3,(self,sink,schedule22)=>filterMap72(aggregateWithinEither3(self,sink,schedule22),(_)=>match19(_,{onLeft:none22,onRight:some22}))),aggregateWithinEither3=dual2(3,(self,sink,schedule22)=>{let layer=all42([make492(),make282(ScheduleEnd2),make282(empty42()),driver22(schedule22),make282(!1),make282(!1)]);return fromEffect72(layer).pipe(flatMap162(([handoff,sinkEndReason,sinkLeftovers,scheduleDriver,consumed,endAfterEmit])=>{let handoffProducer=readWithCause2({onInput:(input)=>flatMap132(fromEffect42(pipe2(handoff,offer52(emit2(input)),when22(()=>isNonEmpty6(input)))),()=>handoffProducer),onFailure:(cause32)=>fromEffect42(offer52(handoff,halt2(cause32))),onDone:()=>fromEffect42(offer52(handoff,end32(UpstreamEnd2)))}),handoffConsumer=pipe2(getAndSet22(sinkLeftovers,empty42()),flatMap112((leftovers)=>{if(isNonEmpty6(leftovers))return pipe2(set62(consumed,!0),zipRight42(succeed82(pipe2(write2(leftovers),flatMap132(()=>handoffConsumer)))));return pipe2(take62(handoff),map152((signal)=>{switch(signal._tag){case OP_EMIT42:return pipe2(fromEffect42(set62(consumed,!0)),zipRight52(write2(signal.elements)),zipRight52(fromEffect42(get122(endAfterEmit))),flatMap132((bool)=>bool?void_62:handoffConsumer));case OP_HALT2:return failCause102(signal.cause);case OP_END2:{if(signal.reason._tag===OP_SCHEDULE_END2)return pipe2(get122(consumed),map152((bool)=>bool?fromEffect42(pipe2(set62(sinkEndReason,ScheduleEnd2),zipRight42(set62(endAfterEmit,!0)))):pipe2(fromEffect42(pipe2(set62(sinkEndReason,ScheduleEnd2),zipRight42(set62(endAfterEmit,!0)))),flatMap132(()=>handoffConsumer))),unwrap6);return pipe2(set62(sinkEndReason,signal.reason),zipRight42(set62(endAfterEmit,!0)),fromEffect42)}}}))}),unwrap6),timeout32=(lastB)=>scheduleDriver.next(lastB),scheduledAggregator=(sinkFiber,scheduleFiber,scope52)=>{let forkSink=pipe2(set62(consumed,!1),zipRight42(set62(endAfterEmit,!1)),zipRight42(pipe2(handoffConsumer,pipeToOrFail2(toChannel4(sink)),collectElements2,run6,forkIn22(scope52)))),handleSide=(leftovers,b,c)=>pipe2(set62(sinkLeftovers,flatten32(leftovers)),zipRight42(map152(get122(sinkEndReason),(reason)=>{switch(reason._tag){case OP_SCHEDULE_END2:return pipe2(all42([get122(consumed),forkSink,pipe2(timeout32(some22(b)),forkIn22(scope52))]),map152(([wasConsumed,sinkFiber2,scheduleFiber2])=>{let toWrite=pipe2(c,match22({onNone:()=>of22(right22(b)),onSome:(c2)=>make62(right22(b),left22(c2))}));if(wasConsumed)return pipe2(write2(toWrite),flatMap132(()=>scheduledAggregator(sinkFiber2,scheduleFiber2,scope52)));return scheduledAggregator(sinkFiber2,scheduleFiber2,scope52)}),unwrap6);case OP_UPSTREAM_END2:return pipe2(get122(consumed),map152((wasConsumed)=>wasConsumed?write2(of22(right22(b))):void_62),unwrap6)}})),unwrap6);return unwrap6(raceWith22(join42(sinkFiber),join42(scheduleFiber),{onSelfDone:(sinkExit,_)=>pipe2(interrupt62(scheduleFiber),zipRight42(pipe2(suspend32(()=>sinkExit),map152(([leftovers,b])=>handleSide(leftovers,b,none22()))))),onOtherDone:(scheduleExit,_)=>matchCauseEffect32(suspend32(()=>scheduleExit),{onFailure:(cause32)=>match19(failureOrCause22(cause32),{onLeft:()=>pipe2(handoff,offer52(end32(ScheduleEnd2)),forkDaemon22,zipRight42(pipe2(join42(sinkFiber),map152(([leftovers,b])=>handleSide(leftovers,b,none22()))))),onRight:(cause4)=>pipe2(handoff,offer52(halt2(cause4)),forkDaemon22,zipRight42(pipe2(join42(sinkFiber),map152(([leftovers,b])=>handleSide(leftovers,b,none22())))))}),onSuccess:(c)=>pipe2(handoff,offer52(end32(ScheduleEnd2)),forkDaemon22,zipRight42(pipe2(join42(sinkFiber),map152(([leftovers,b])=>handleSide(leftovers,b,some22(c))))))})}))};return unwrapScopedWith32((scope52)=>pipeTo2(toChannel22(self),handoffProducer).pipe(run6,forkIn22(scope52),zipRight42(pipeToOrFail2(handoffConsumer,toChannel4(sink)).pipe(collectElements2,run6,forkIn22(scope52),flatMap112((sinkFiber)=>timeout32(none22()).pipe(forkIn22(scope52),map152((scheduleFiber)=>new StreamImpl2(scheduledAggregator(sinkFiber,scheduleFiber,scope52)))))))))}))}),as82=dual2(2,(self,value)=>map202(self,()=>value)),queueFromBufferOptions2=(bufferSize)=>{if(bufferSize==="unbounded")return unbounded52();else if(typeof bufferSize==="number"||bufferSize===void 0)return bounded52(bufferSize??16);switch(bufferSize.strategy){case"dropping":return dropping42(bufferSize.bufferSize??16);case"sliding":return sliding42(bufferSize.bufferSize??16);default:return bounded52(bufferSize.bufferSize??16)}},_async3=(register,bufferSize)=>acquireRelease22(queueFromBufferOptions2(bufferSize),(queue)=>shutdown42(queue)).pipe(flatMap112((output)=>runtime32().pipe(flatMap112((runtime4)=>sync32(()=>{let runPromiseExit32=runPromiseExit22(runtime4);return register(make482((resume22)=>fromPull4(resume22).pipe(flatMap112((take72)=>offer32(output,take72)),asVoid42,runPromiseExit32).then((exit32)=>{if(isFailure5(exit32)){if(!isInterrupted22(exit32.cause))throw squash2(exit32.cause)}})))})),map152((value)=>{let loop32=take32(output).pipe(flatMap112((take72)=>done102(take72)),match122({onFailure:(maybeError)=>fromEffect42(shutdown42(output)).pipe(zipRight52(match22(maybeError,{onNone:()=>void_62,onSome:(error3)=>fail112(error3)}))),onSuccess:(chunk32)=>write2(chunk32).pipe(flatMap132(()=>loop32))}),unwrap6);return fromChannel22(loop32).pipe(ensuring62(value??_void2))}))),unwrapScoped42),asyncEffect32=(register,bufferSize)=>pipe2(acquireRelease22(queueFromBufferOptions2(bufferSize),(queue)=>shutdown42(queue)),flatMap112((output)=>pipe2(runtime32(),flatMap112((runtime4)=>pipe2(register(make482((k)=>pipe2(fromPull4(k),flatMap112((take72)=>offer32(output,take72)),asVoid42,runPromiseExit22(runtime4)).then((exit32)=>{if(isFailure5(exit32)){if(!isInterrupted22(exit32.cause))throw squash2(exit32.cause)}}))),map152(()=>{let loop32=pipe2(take32(output),flatMap112(done102),match122({onFailure:(maybeError)=>pipe2(fromEffect42(shutdown42(output)),zipRight52(match22(maybeError,{onNone:()=>void_62,onSome:fail112}))),onSuccess:(chunk32)=>pipe2(write2(chunk32),flatMap132(()=>loop32))}),unwrap6);return loop32}))))),unwrapScoped32,fromChannel22),queueFromBufferOptionsPush2=(options)=>{if(options?.bufferSize==="unbounded"||options?.bufferSize===void 0&&options?.strategy===void 0)return unbounded52();switch(options?.strategy){case"sliding":return sliding42(options.bufferSize??16);default:return dropping42(options?.bufferSize??16)}},asyncPush3=(register,options)=>acquireRelease22(queueFromBufferOptionsPush2(options),shutdown42).pipe(tap42((queue)=>getWith2(currentScheduler22,(scheduler)=>register(makePush2(queue,scheduler)))),map152((queue)=>{let loop32=flatMap132(take32(queue),(item)=>isExit3(item)?isSuccess5(item)?void_62:failCause102(item.cause):zipRight52(write2(unsafeFromArray2(item)),loop32));return loop32}),unwrapScoped32,fromChannel22),asyncScoped3=(register,bufferSize)=>pipe2(acquireRelease22(queueFromBufferOptions2(bufferSize),(queue)=>shutdown42(queue)),flatMap112((output)=>pipe2(runtime32(),flatMap112((runtime4)=>pipe2(register(make482((k)=>pipe2(fromPull4(k),flatMap112((take72)=>offer32(output,take72)),asVoid42,runPromiseExit22(runtime4)).then((exit32)=>{if(isFailure5(exit32)){if(!isInterrupted22(exit32.cause))throw squash2(exit32.cause)}}))),zipRight42(make282(!1)),flatMap112((ref)=>pipe2(get122(ref),map152((isDone72)=>isDone72?end52():pipe2(take32(output),flatMap112(done102),onError22(()=>pipe2(set62(ref,!0),zipRight42(shutdown42(output)))))))))))),scoped52,flatMap162(repeatEffectChunkOption3)),branchAfter3=dual2(3,(self,n,f)=>suspend92(()=>{let buffering=(acc)=>readWith2({onInput:(input)=>{if(acc.length+input.length>=n){let[b1,b2]=pipe2(input,splitAt22(n-acc.length));return running42(pipe2(acc,appendAll22(b1)),b2)}return buffering(pipe2(acc,appendAll22(input)))},onFailure:fail112,onDone:()=>running42(acc,empty42())}),running42=(prefix,leftover)=>pipeTo2(zipRight52(write2(leftover),identityChannel2()),toChannel22(f(prefix)));return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(buffering(empty42()))))})),broadcast3=dual2(3,(self,n,maximumLag)=>pipe2(self,broadcastedQueues3(n,maximumLag),map152((tuple22)=>tuple22.map((queue)=>flattenTake3(fromQueue22(queue,{shutdown:!0})))))),broadcastDynamic3=dual2(2,(self,maximumLag)=>map152(toPubSub22(self,maximumLag),(pubsub)=>flattenTake3(fromPubSub3(pubsub)))),share3=dual2(2,(self,options)=>map152(make442({acquire:broadcastDynamic3(self,options),idleTimeToLive:options.idleTimeToLive}),(rcRef)=>unwrapScoped42(get152(rcRef)))),broadcastedQueues3=dual2(3,(self,n,maximumLag)=>flatMap112(pubsubFromOptions2(maximumLag),(pubsub)=>pipe2(all42(Array.from({length:n},()=>subscribe22(pubsub))),tap42(()=>forkScoped22(runIntoPubSubScoped3(self,pubsub)))))),broadcastedQueuesDynamic3=dual2(2,(self,maximumLag)=>map152(toPubSub22(self,maximumLag),subscribe22)),buffer3=dual2(2,(self,options)=>{if(options.capacity==="unbounded")return bufferUnbounded2(self);else if(options.strategy==="dropping")return bufferDropping2(self,options.capacity);else if(options.strategy==="sliding")return bufferSliding2(self,options.capacity);let queue=toQueueOfElements3(self,options);return new StreamImpl2(unwrapScoped32(map152(queue,(queue2)=>{let process2=pipe2(fromEffect42(take32(queue2)),flatMap132(match52({onFailure:(cause32)=>pipe2(flipCauseOption22(cause32),match22({onNone:()=>void_62,onSome:failCause102})),onSuccess:(value)=>flatMap132(write2(of22(value)),()=>process2)})));return process2})))}),bufferChunks3=dual2(2,(self,options)=>{if(options.strategy==="dropping")return bufferChunksDropping2(self,options.capacity);else if(options.strategy==="sliding")return bufferChunksSliding2(self,options.capacity);let queue=toQueue22(self,options);return new StreamImpl2(unwrapScoped32(map152(queue,(queue2)=>{let process2=pipe2(fromEffect42(take32(queue2)),flatMap132(match172({onEnd:()=>void_62,onFailure:failCause102,onSuccess:(value)=>pipe2(write2(value),flatMap132(()=>process2))})));return process2})))}),bufferChunksDropping2=dual2(2,(self,capacity72)=>{let queue=acquireRelease22(dropping42(capacity72),(queue2)=>shutdown42(queue2));return new StreamImpl2(bufferSignal2(queue,toChannel22(self)))}),bufferChunksSliding2=dual2(2,(self,capacity72)=>{let queue=acquireRelease22(sliding42(capacity72),(queue2)=>shutdown42(queue2));return new StreamImpl2(bufferSignal2(queue,toChannel22(self)))}),bufferDropping2=dual2(2,(self,capacity72)=>{let queue=acquireRelease22(dropping42(capacity72),(queue2)=>shutdown42(queue2));return new StreamImpl2(bufferSignal2(queue,toChannel22(rechunk3(1)(self))))}),bufferSliding2=dual2(2,(self,capacity72)=>{let queue=acquireRelease22(sliding42(capacity72),(queue2)=>shutdown42(queue2));return new StreamImpl2(bufferSignal2(queue,toChannel22(pipe2(self,rechunk3(1)))))}),bufferUnbounded2=(self)=>{let queue=toQueue22(self,{strategy:"unbounded"});return new StreamImpl2(unwrapScoped32(map152(queue,(queue2)=>{let process2=pipe2(fromEffect42(take32(queue2)),flatMap132(match172({onEnd:()=>void_62,onFailure:failCause102,onSuccess:(value)=>flatMap132(write2(value),()=>process2)})));return process2})))},bufferSignal2=(scoped52,bufferChannel)=>{let producer=(queue,ref)=>{let terminate=(take72)=>pipe2(get122(ref),tap42(_await4),zipRight42(make182()),flatMap112((deferred)=>pipe2(offer32(queue,[take72,deferred]),zipRight42(set62(ref,deferred)),zipRight42(_await4(deferred)))),asVoid42,fromEffect42);return readWithCause2({onInput:(input)=>pipe2(make182(),flatMap112((deferred)=>pipe2(offer32(queue,[chunk22(input),deferred]),flatMap112((added)=>pipe2(set62(ref,deferred),when22(()=>added))))),asVoid42,fromEffect42,flatMap132(()=>producer(queue,ref))),onFailure:(error3)=>terminate(failCause112(error3)),onDone:()=>terminate(end42)})},consumer=(queue)=>{let process2=pipe2(fromEffect42(take32(queue)),flatMap132(([take72,deferred])=>zipRight52(fromEffect42(succeed22(deferred,void 0)),match172(take72,{onEnd:()=>void_62,onFailure:failCause102,onSuccess:(value)=>pipe2(write2(value),flatMap132(()=>process2))}))));return process2};return unwrapScoped32(pipe2(scoped52,flatMap112((queue)=>pipe2(make182(),tap42((start32)=>succeed22(start32,void 0)),flatMap112((start32)=>pipe2(make282(start32),flatMap112((ref)=>pipe2(bufferChannel,pipeTo2(producer(queue,ref)),runScoped4,forkScoped22)),as42(consumer(queue))))))))},catchAll72=dual2(2,(self,f)=>catchAllCause62(self,(cause32)=>match19(failureOrCause22(cause32),{onLeft:f,onRight:failCause132}))),catchAllCause62=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),catchAllCause52((cause32)=>toChannel22(f(cause32)))))),catchSome32=dual2(2,(self,pf)=>pipe2(self,catchAll72((error3)=>pipe2(pf(error3),getOrElse6(()=>fail152(error3)))))),catchSomeCause32=dual2(2,(self,pf)=>pipe2(self,catchAllCause62((cause32)=>pipe2(pf(cause32),getOrElse6(()=>failCause132(cause32)))))),catchTag32=dual2(3,(self,k,f)=>catchAll72(self,(e)=>{if("_tag"in e&&e._tag===k)return f(e);return fail152(e)})),catchTags32=dual2(2,(self,cases)=>catchAll72(self,(e)=>{let keys32=Object.keys(cases);if("_tag"in e&&keys32.includes(e._tag))return cases[e._tag](e);return fail152(e)})),changes3=(self)=>pipe2(self,changesWith3((x,y)=>equals4(y)(x))),changesWith3=dual2(2,(self,f)=>{let writer=(last42)=>readWithCause2({onInput:(input)=>{let[newLast,newChunk]=reduce22(input,[last42,empty42()],([option32,outputs],output)=>{if(isSome22(option32)&&f(option32.value,output))return[some22(output),outputs];return[some22(output),pipe2(outputs,append22(output))]});return flatMap132(write2(newChunk),()=>writer(newLast))},onFailure:failCause102,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(writer(none22()))))}),changesWithEffect3=dual2(2,(self,f)=>{let writer=(last42)=>readWithCause2({onInput:(input)=>pipe2(input,reduce102([last42,empty42()],([option32,outputs],output)=>{if(isSome22(option32))return pipe2(f(option32.value,output),map152((bool)=>bool?[some22(output),outputs]:[some22(output),pipe2(outputs,append22(output))]));return succeed82([some22(output),pipe2(outputs,append22(output))])}),fromEffect42,flatMap132(([newLast,newChunk])=>pipe2(write2(newChunk),flatMap132(()=>writer(newLast))))),onFailure:failCause102,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(writer(none22()))))}),chunks3=(self)=>pipe2(self,mapChunks3(of22)),chunksWith3=dual2(2,(self,f)=>flattenChunks3(f(chunks3(self)))),unsome2=(effect42)=>catchAll32(asSome22(effect42),(o)=>o._tag==="None"?succeedNone22:fail92(o.value)),combine92=dual2(4,(self,that,s,f)=>{function producer(handoff,latch){return fromEffect42(take62(latch)).pipe(zipRight52(readWithCause2({onInput:(input)=>flatMap132(fromEffect42(offer52(handoff,succeed32(input))),()=>producer(handoff,latch)),onFailure:(cause32)=>fromEffect42(offer52(handoff,failCause32(pipe2(cause32,map112(some22))))),onDone:()=>flatMap132(fromEffect42(offer52(handoff,fail42(none22()))),()=>producer(handoff,latch))})))}return new StreamImpl2(unwrapScopedWith5((scope52)=>all42([make492(),make492(),make492(),make492()]).pipe(tap42(([left32,_,latchL])=>toChannel22(self).pipe(concatMap2(writeChunk2),pipeTo2(producer(left32,latchL)),runIn2(scope52),forkIn22(scope52))),tap42(([,right32,_,rightL])=>toChannel22(that).pipe(concatMap2(writeChunk2),pipeTo2(producer(right32,rightL)),runIn2(scope52),forkIn22(scope52))),map152(([left32,right32,latchL,latchR])=>{let pullLeft=offer52(latchL,void 0).pipe(zipRight42(take62(left32).pipe(flatMap112(identity5)))),pullRight=offer52(latchR,void 0).pipe(zipRight42(take62(right32).pipe(flatMap112(identity5))));return toChannel22(unfoldEffect3(s,(s2)=>flatMap112(f(s2,pullLeft,pullRight),unsome2)))}))))}),combineChunks3=dual2(4,(self,that,s,f)=>{let producer=(handoff,latch)=>zipRight52(fromEffect42(take62(latch)),readWithCause2({onInput:(input)=>flatMap132(fromEffect42(pipe2(handoff,offer52(chunk22(input)))),()=>producer(handoff,latch)),onFailure:(cause32)=>fromEffect42(offer52(handoff,failCause112(cause32))),onDone:()=>fromEffect42(offer52(handoff,end42))}));return new StreamImpl2(unwrapScopedWith5((scope52)=>all42([make492(),make492(),make492(),make492()]).pipe(tap42(([left32,_,latchL])=>pipeTo2(toChannel22(self),producer(left32,latchL)).pipe(runIn2(scope52),forkIn22(scope52))),tap42(([_,right32,__,latchR])=>pipeTo2(toChannel22(that),producer(right32,latchR)).pipe(runIn2(scope52),forkIn22(scope52))),map152(([left32,right32,latchL,latchR])=>{let pullLeft=offer52(latchL,void 0).pipe(zipRight42(take62(left32).pipe(flatMap112(done102)))),pullRight=offer52(latchR,void 0).pipe(zipRight42(take62(right32).pipe(flatMap112(done102))));return toChannel22(unfoldChunkEffect3(s,(s2)=>flatMap112(f(s2,pullLeft,pullRight),unsome2)))}))))}),concat22=dual2(2,(self,that)=>new StreamImpl2(pipe2(toChannel22(self),zipRight52(toChannel22(that))))),concatAll22=(streams)=>suspend92(()=>pipe2(streams,reduce22(empty292,(x,y)=>concat22(y)(x)))),cross3=dual2(2,(left32,right32)=>pipe2(left32,crossWith3(right32,(a,a2)=>[a,a2]))),crossLeft3=dual2(2,(left32,right32)=>pipe2(left32,crossWith3(right32,(a,_)=>a))),crossRight3=dual2(2,(left32,right32)=>flatMap162(left32,()=>right32)),crossWith3=dual2(3,(left32,right32,f)=>pipe2(left32,flatMap162((a)=>pipe2(right32,map202((b)=>f(a,b)))))),debounce3=dual2(2,(self,duration22)=>unwrapScopedWith32((scope52)=>gen32(function*(){let handoff=yield*make492();function enqueue(last42){return sleep22(duration22).pipe(as42(last42),forkIn22(scope52),map152((fiber)=>consumer(previous2(fiber))))}let producer=readWithCause2({onInput:(input)=>match22(last22(input),{onNone:()=>producer,onSome:(elem)=>fromEffect42(offer52(handoff,emit2(of22(elem)))).pipe(flatMap132(()=>producer))}),onFailure:(cause32)=>fromEffect42(offer52(handoff,halt2(cause32))),onDone:()=>fromEffect42(offer52(handoff,end32(UpstreamEnd2)))});function consumer(state){switch(state._tag){case OP_NOT_STARTED2:return unwrap6(take62(handoff).pipe(map152((signal)=>{switch(signal._tag){case OP_EMIT42:return unwrap6(enqueue(signal.elements));case OP_HALT2:return failCause102(signal.cause);case OP_END2:return void_62}})));case OP_PREVIOUS2:return unwrap6(take62(handoff).pipe(forkIn22(scope52),flatMap112((handoffFiber)=>raceWith22(join42(state.fiber),join42(handoffFiber),{onSelfDone:(leftExit,current22)=>match52(leftExit,{onFailure:(cause32)=>interrupt62(current22).pipe(as42(failCause102(cause32))),onSuccess:(chunk32)=>interrupt62(current22).pipe(zipRight42(succeed82(write2(chunk32).pipe(flatMap132(()=>consumer(current2(handoffFiber)))))))}),onOtherDone:(rightExit,previous22)=>match52(rightExit,{onFailure:(cause32)=>interrupt62(previous22).pipe(as42(failCause102(cause32))),onSuccess:(signal)=>{switch(signal._tag){case OP_EMIT42:return interrupt62(previous22).pipe(zipRight42(enqueue(signal.elements)));case OP_HALT2:return interrupt62(previous22).pipe(as42(failCause102(signal.cause)));case OP_END2:return join42(previous22).pipe(map152((chunk32)=>write2(chunk32).pipe(zipRight52(void_62))))}}})}))));case OP_CURRENT2:return unwrap6(join42(state.fiber).pipe(map152((signal)=>{switch(signal._tag){case OP_EMIT42:return unwrap6(enqueue(signal.elements));case OP_HALT2:return failCause102(signal.cause);case OP_END2:return void_62}})))}}return scopedWith42((scope6)=>pipeTo2(toChannel22(self),producer).pipe(runIn2(scope6),forkIn22(scope6))).pipe(crossRight3(new StreamImpl2(consumer(notStarted2))))}))),die102=(defect)=>fromEffect72(die62(defect)),dieSync62=(evaluate22)=>fromEffect72(dieSync32(evaluate22)),dieMessage42=(message)=>fromEffect72(dieMessage22(message)),distributedWith3=dual2(2,(self,options)=>pipe2(make182(),flatMap112((deferred)=>pipe2(self,distributedWithDynamic3({maximumLag:options.maximumLag,decide:(a)=>flatMap112(_await4(deferred),(f)=>f(a))}),flatMap112((next4)=>pipe2(all42(map32(range4(0,options.size-1),(id2)=>map152(next4,([key,queue])=>[[key,id2],queue]))),map152(unsafeFromArray2),flatMap112((entries2)=>{let[mappings,queues]=reduceRight22(entries2,[new Map,empty42()],([mappings2,queues2],[mapping,queue])=>[mappings2.set(mapping[0],mapping[1]),pipe2(queues2,prepend22(queue))]);return pipe2(succeed22(deferred,(a)=>map152(options.decide(a),(f)=>(key)=>f(mappings.get(key)))),as42(Array.from(queues)))}))))))),distributedWithDynamicId2={ref:0},newDistributedWithDynamicId2=()=>{let current22=distributedWithDynamicId2.ref;return distributedWithDynamicId2.ref=current22+1,current22},distributedWithDynamic3=dual2(2,(self,options)=>distributedWithDynamicCallback2(self,options.maximumLag,options.decide,()=>_void2)),distributedWithDynamicCallback2=dual2(4,(self,maximumLag,decide,done112)=>pipe2(acquireRelease22(make282(new Map),(ref,_)=>pipe2(get122(ref),flatMap112((queues)=>pipe2(queues.values(),forEach72(shutdown42))))),flatMap112((queuesRef)=>gen32(function*(){let offer62=(a)=>pipe2(decide(a),flatMap112((shouldProcess)=>pipe2(get122(queuesRef),flatMap112((queues)=>pipe2(queues.entries(),reduce102(empty42(),(acc,[id2,queue])=>{if(shouldProcess(id2))return pipe2(offer32(queue,succeed32(a)),matchCauseEffect32({onFailure:(cause32)=>isInterrupted22(cause32)?succeed82(pipe2(acc,prepend22(id2))):failCause82(cause32),onSuccess:()=>succeed82(acc)}));return succeed82(acc)}),flatMap112((ids32)=>{if(isNonEmpty6(ids32))return update32(queuesRef,(map202)=>{for(let id2 of ids32)map202.delete(id2);return map202});return _void2}))))),asVoid42),queuesLock=yield*makeSemaphore22(1),newQueue=yield*make282(pipe2(bounded52(maximumLag),flatMap112((queue)=>{let id2=newDistributedWithDynamicId2();return pipe2(update32(queuesRef,(map202)=>map202.set(id2,queue)),as42([id2,queue]))}))),finalize=(endTake)=>queuesLock.withPermits(1)(pipe2(set62(newQueue,pipe2(bounded52(1),tap42((queue)=>offer32(queue,endTake)),flatMap112((queue)=>{let id2=newDistributedWithDynamicId2();return pipe2(update32(queuesRef,(map202)=>map202.set(id2,queue)),as42(make310(id2,queue)))}))),zipRight42(pipe2(get122(queuesRef),flatMap112((map202)=>pipe2(fromIterable32(map202.values()),forEach72((queue)=>pipe2(offer32(queue,endTake),catchSomeCause22((cause32)=>isInterrupted22(cause32)?some22(_void2):none22()))))))),zipRight42(done112(endTake)),asVoid42));return yield*pipe2(self,runForEachScoped3(offer62),matchCauseEffect32({onFailure:(cause32)=>finalize(failCause32(pipe2(cause32,map112(some22)))),onSuccess:()=>finalize(fail42(none22()))}),forkScoped22),queuesLock.withPermits(1)(flatten92(get122(newQueue)))})))),drain32=(self)=>new StreamImpl2(drain5(toChannel22(self))),drainFork3=dual2(2,(self,that)=>fromEffect72(make182()).pipe(flatMap162((backgroundDied)=>scopedWith42((scope52)=>toChannel22(that).pipe(drain5,runIn2(scope52),catchAllCause32((cause32)=>failCause22(backgroundDied,cause32)),forkIn22(scope52))).pipe(crossRight3(interruptWhenDeferred22(self,backgroundDied)))))),drop32=dual2(2,(self,n)=>{let loop32=(r)=>readWith2({onInput:(input)=>{let dropped=pipe2(input,drop22(r)),leftover=Math.max(0,r-input.length);if(isEmpty15(input)||leftover>0)return loop32(leftover);return pipe2(write2(dropped),zipRight52(identityChannel2()))},onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32(n))))}),dropRight22=dual2(2,(self,n)=>{if(n<=0)return identityStream2();return suspend92(()=>{let queue=new RingBuffer2(n),reader=readWith2({onInput:(input)=>{let outputs=pipe2(input,filterMap32((elem)=>{let head62=queue.head();return queue.put(elem),head62}));return pipe2(write2(outputs),flatMap132(()=>reader))},onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(reader)))})}),dropUntil32=dual2(2,(self,predicate)=>drop32(dropWhile42(self,(a)=>!predicate(a)),1)),dropUntilEffect3=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>pipe2(dropUntil22(input,predicate),map152(unsafeFromArray2),map152((leftover)=>{if(isEmpty15(leftover))return suspend52(()=>loop32);return pipe2(write2(leftover),zipRight52(identityChannel2()))}),unwrap6),onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32)))}),dropWhile42=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>{let output=dropWhile6(input,predicate);if(isEmpty15(output))return suspend52(()=>loop32);return zipRight52(write2(output),identityChannel2())},onFailure:fail112,onDone:succeedNow2});return new StreamImpl2(pipeToOrFail2(toChannel22(self),loop32))}),dropWhileEffect3=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>pipe2(dropWhile32(input,predicate),map152(unsafeFromArray2),map152((leftover)=>{if(isEmpty15(leftover))return suspend52(()=>loop32);return zipRight52(write2(leftover),identityChannel2())}),unwrap6),onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipeToOrFail2(toChannel22(self),loop32))}),either52=(self)=>pipe2(self,map202(right22),catchAll72((error3)=>make502(left22(error3)))),empty292=new StreamImpl2(void_62),ensuring62=dual2(2,(self,finalizer3)=>new StreamImpl2(pipe2(toChannel22(self),ensuring32(finalizer3)))),ensuringWith22=dual2(2,(self,finalizer3)=>new StreamImpl2(ensuringWith4(toChannel22(self),finalizer3))),context52=()=>fromEffect72(context32()),contextWith32=(f)=>pipe2(context52(),map202(f)),contextWithEffect32=(f)=>pipe2(context52(),mapEffectSequential2(f)),contextWithStream3=(f)=>pipe2(context52(),flatMap162(f)),execute3=(effect42)=>drain32(fromEffect72(effect42)),fail152=(error3)=>fromEffectOption3(fail92(some22(error3))),failSync72=(evaluate22)=>fromEffectOption3(failSync32(()=>some22(evaluate22()))),failCause132=(cause32)=>fromEffect72(failCause82(cause32)),failCauseSync62=(evaluate22)=>fromEffect72(failCauseSync32(evaluate22)),filter92=dual2(2,(self,predicate)=>mapChunks3(self,filter32(predicate))),filterEffect3=dual2(2,(self,f)=>{let loop32=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(input)=>loop32(input[Symbol.iterator]()),onFailure:failCause102,onDone:succeed102});else return pipe2(f(next4.value),map152((bool)=>bool?pipe2(write2(of22(next4.value)),flatMap132(()=>loop32(iterator))):loop32(iterator)),unwrap6)};return new StreamImpl2(suspend52(()=>pipe2(toChannel22(self),pipeTo2(loop32(empty42()[Symbol.iterator]())))))}),filterMap72=dual2(2,(self,pf)=>mapChunks3(self,filterMap32(pf))),filterMapEffect3=dual2(2,(self,pf)=>suspend92(()=>{let loop32=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(input)=>loop32(input[Symbol.iterator]()),onFailure:failCause102,onDone:succeed102});else return pipe2(pf(next4.value),match22({onNone:()=>sync32(()=>loop32(iterator)),onSome:map152((a2)=>flatMap132(write2(of22(a2)),()=>loop32(iterator)))}),unwrap6)};return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32(empty42()[Symbol.iterator]()))))})),filterMapWhile32=dual2(2,(self,pf)=>{let loop32=readWith2({onInput:(input)=>{let mapped=filterMapWhile22(input,pf);if(mapped.length===input.length)return pipe2(write2(mapped),flatMap132(()=>loop32));return write2(mapped)},onFailure:fail112,onDone:succeed102});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32)))}),filterMapWhileEffect3=dual2(2,(self,pf)=>suspend92(()=>{let loop32=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(input)=>loop32(input[Symbol.iterator]()),onFailure:failCause102,onDone:succeed102});else return unwrap6(match22(pf(next4.value),{onNone:()=>succeed82(void_62),onSome:map152((a2)=>flatMap132(write2(of22(a2)),()=>loop32(iterator)))}))};return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32(empty42()[Symbol.iterator]()))))})),finalizer3=(finalizer22)=>acquireRelease32(_void2,()=>finalizer22),find22=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>match22(findFirst32(input,predicate),{onNone:()=>loop32,onSome:(n)=>write2(of22(n))}),onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32)))}),findEffect3=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>pipe2(findFirst62(input,predicate),map152(match22({onNone:()=>loop32,onSome:(n)=>write2(of22(n))})),unwrap6),onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32)))}),flatMap162=dual2((args22)=>isStream2(args22[0]),(self,f,options)=>{let bufferSize=options?.bufferSize??16;if(options?.switch)return matchConcurrency2(options?.concurrency,()=>flatMapParSwitchBuffer2(self,1,bufferSize,f),(n)=>flatMapParSwitchBuffer2(self,n,bufferSize,f));return matchConcurrency2(options?.concurrency,()=>new StreamImpl2(concatMap2(toChannel22(self),(as92)=>pipe2(as92,map32((a)=>toChannel22(f(a))),reduce22(void_62,(left32,right32)=>pipe2(left32,zipRight52(right32)))))),(_)=>new StreamImpl2(pipe2(toChannel22(self),concatMap2(writeChunk2),mergeMap2((out)=>toChannel22(f(out)),options))))}),matchConcurrency2=(concurrency,sequential42,bounded82)=>{switch(concurrency){case void 0:return sequential42();case"unbounded":return bounded82(Number.MAX_SAFE_INTEGER);default:return concurrency>1?bounded82(concurrency):sequential42()}},flatMapParSwitchBuffer2=dual2(4,(self,n,bufferSize,f)=>new StreamImpl2(pipe2(toChannel22(self),concatMap2(writeChunk2),mergeMap2((out)=>toChannel22(f(out)),{concurrency:n,mergeStrategy:BufferSliding2(),bufferSize})))),flatten132=dual2((args22)=>isStream2(args22[0]),(self,options)=>flatMap162(self,identity5,options)),flattenChunks3=(self)=>{let flatten142=readWithCause2({onInput:(chunks22)=>flatMap132(writeChunk2(chunks22),()=>flatten142),onFailure:failCause102,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(flatten142)))},flattenEffect3=dual2((args22)=>isStream2(args22[0]),(self,options)=>options?.unordered?flatMap162(self,(a)=>fromEffect72(a),{concurrency:options.concurrency}):matchConcurrency2(options?.concurrency,()=>mapEffectSequential2(self,identity5),(n)=>new StreamImpl2(pipe2(toChannel22(self),concatMap2(writeChunk2),mapOutEffectPar2(identity5,n),mapOut2(of22))))),flattenExitOption3=(self)=>{let processChunk=(chunk32,cont)=>{let[toEmit,rest]=pipe2(chunk32,splitWhere2((exit32)=>!isSuccess5(exit32))),next4=pipe2(head22(rest),match22({onNone:()=>cont,onSome:match52({onFailure:(cause32)=>match22(flipCauseOption22(cause32),{onNone:()=>void_62,onSome:failCause102}),onSuccess:()=>void_62})}));return pipe2(write2(pipe2(toEmit,filterMap32((exit32)=>isSuccess5(exit32)?some22(exit32.value):none22()))),flatMap132(()=>next4))},process2=readWithCause2({onInput:(chunk32)=>processChunk(chunk32,process2),onFailure:(cause32)=>failCause102(cause32),onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(process2)))},flattenIterables3=(self)=>pipe2(self,map202(fromIterable32),flattenChunks3),flattenTake3=(self)=>flattenChunks3(flattenExitOption3(pipe2(self,map202((take72)=>take72.exit)))),forever52=(self)=>new StreamImpl2(repeated2(toChannel22(self))),fromAsyncIterable3=(iterable,onError32)=>pipe2(acquireRelease22(sync32(()=>iterable[Symbol.asyncIterator]()),(iterator)=>iterator.return?promise22(async()=>iterator.return()):_void2),map152((iterator)=>repeatEffectOption3(pipe2(tryPromise22({try:async()=>iterator.next(),catch:(reason)=>some22(onError32(reason))}),flatMap112((result)=>result.done?fail92(none22()):succeed82(result.value))))),unwrapScoped42),fromChannel22=(channel)=>new StreamImpl2(channel),toChannel22=(stream)=>{if("channel"in stream)return stream.channel;else if(isEffect22(stream))return toChannel22(fromEffect72(stream));else throw TypeError("Expected a Stream.")},fromChunk3=(chunk32)=>new StreamImpl2(isEmpty15(chunk32)?void_62:write2(chunk32)),fromChunkPubSub3=(pubsub,options)=>{if(options?.scoped){let effect42=map152(subscribe22(pubsub),fromChunkQueue3);return options.shutdown?map152(effect42,ensuring62(shutdown32(pubsub))):effect42}let stream=flatMap162(scoped52(subscribe22(pubsub)),fromChunkQueue3);return options?.shutdown?ensuring62(stream,shutdown32(pubsub)):stream},fromChunkQueue3=(queue,options)=>pipe2(take32(queue),catchAllCause32((cause32)=>pipe2(isShutdown32(queue),flatMap112((isShutdown72)=>isShutdown72&&isInterrupted22(cause32)?end52():failCause122(cause32)))),repeatEffectChunkOption3,options?.shutdown?ensuring62(shutdown42(queue)):identity5),fromChunks3=(...chunks22)=>pipe2(fromIterable102(chunks22),flatMap162(fromChunk3)),fromEffect72=(effect42)=>pipe2(effect42,mapError32(some22),fromEffectOption3),fromEffectOption3=(effect42)=>new StreamImpl2(unwrap6(match122(effect42,{onFailure:match22({onNone:()=>void_62,onSome:fail112}),onSuccess:(a)=>write2(of22(a))}))),fromPubSub3=(pubsub,options)=>{let maxChunkSize=options?.maxChunkSize??DefaultChunkSize3;if(options?.scoped){let effect42=map152(subscribe22(pubsub),(queue)=>fromQueue22(queue,{maxChunkSize,shutdown:!0}));return options.shutdown?map152(effect42,ensuring62(shutdown32(pubsub))):effect42}let stream=flatMap162(scoped52(subscribe22(pubsub)),(queue)=>fromQueue22(queue,{maxChunkSize}));return options?.shutdown?ensuring62(stream,shutdown32(pubsub)):stream},fromTPubSub3=(pubsub)=>{return unwrapScoped42(map152(subscribeScoped22(pubsub),(queue)=>fromTQueue3(queue)))},fromIterable102=(iterable)=>suspend92(()=>isChunk2(iterable)?fromChunk3(iterable):fromIteratorSucceed3(iterable[Symbol.iterator]())),fromIterableEffect3=(effect42)=>pipe2(effect42,map152(fromIterable102),unwrap22),fromIteratorSucceed3=(iterator,maxChunkSize=DefaultChunkSize3)=>{return pipe2(sync32(()=>{let builder=[],loop32=(iterator2)=>pipe2(sync32(()=>{let next4=iterator2.next();if(maxChunkSize===1){if(next4.done)return void_62;return pipe2(write2(of22(next4.value)),flatMap132(()=>loop32(iterator2)))}builder=[];let count32=0;while(next4.done===!1){if(builder.push(next4.value),count32=count32+1,count32>=maxChunkSize)break;next4=iterator2.next()}if(count32>0)return pipe2(write2(unsafeFromArray2(builder)),flatMap132(()=>loop32(iterator2)));return void_62}),unwrap6);return new StreamImpl2(loop32(iterator))}),unwrap22)},fromPull22=(effect42)=>pipe2(effect42,map152(repeatEffectChunkOption3),unwrapScoped42),fromQueue22=(queue,options)=>pipe2(takeBetween22(queue,1,options?.maxChunkSize??DefaultChunkSize3),catchAllCause32((cause32)=>pipe2(isShutdown32(queue),flatMap112((isShutdown72)=>isShutdown72&&isInterrupted22(cause32)?end52():failCause122(cause32)))),repeatEffectChunkOption3,options?.shutdown?ensuring62(shutdown42(queue)):identity5),fromTQueue3=(queue)=>pipe2(take52(queue),map152(of22),catchAllCause32((cause32)=>pipe2(isShutdown62(queue),flatMap112((isShutdown72)=>isShutdown72&&isInterrupted22(cause32)?end52():failCause122(cause32)))),repeatEffectChunkOption3),fromSchedule3=(schedule22)=>pipe2(driver22(schedule22),map152((driver32)=>repeatEffectOption3(driver32.next(void 0))),unwrap22),fromReadableStream3=(...args22)=>{let evaluate22=args22.length===1?args22[0].evaluate:args22[0],onError32=args22.length===1?args22[0].onError:args22[1],releaseLockOnEnd=args22.length===1?args22[0].releaseLockOnEnd===!0:!1;return unwrapScoped42(map152(acquireRelease22(sync32(()=>evaluate22().getReader()),(reader)=>releaseLockOnEnd?sync32(()=>reader.releaseLock()):promise22(()=>reader.cancel())),(reader)=>repeatEffectOption3(flatMap112(tryPromise22({try:()=>reader.read(),catch:(reason)=>some22(onError32(reason))}),({done:done112,value})=>done112?fail92(none22()):succeed82(value)))))},fromReadableStreamByob3=(...args22)=>{let evaluate22=args22.length===1?args22[0].evaluate:args22[0],onError32=args22.length===1?args22[0].onError:args22[1],allocSize=(args22.length===1?args22[0].bufferSize:args22[2])??4096,releaseLockOnEnd=args22.length===1?args22[0].releaseLockOnEnd===!0:!1;return unwrapScoped42(map152(acquireRelease22(sync32(()=>evaluate22().getReader({mode:"byob"})),(reader)=>releaseLockOnEnd?sync32(()=>reader.releaseLock()):promise22(()=>reader.cancel())),(reader)=>catchAll72(forever52(readChunkStreamByobReader2(reader,onError32,allocSize)),(error3)=>error3===EOF2?empty292:fail152(error3))))},EOF2=Symbol.for("effect/Stream/EOF"),readChunkStreamByobReader2=(reader,onError32,size142)=>{let buffer22=new ArrayBuffer(size142);return paginateEffect3(0,(offset)=>flatMap112(tryPromise22({try:()=>reader.read(new Uint8Array(buffer22,offset,buffer22.byteLength-offset)),catch:(reason)=>onError32(reason)}),({done:done112,value})=>{if(done112)return fail92(EOF2);let newOffset=offset+value.byteLength;return succeed82([value,newOffset>=buffer22.byteLength?none22():some22(newOffset)])}))},groupAdjacentBy3=dual2(2,(self,f)=>{let groupAdjacentByChunk=(state,chunk32)=>{if(isEmpty15(chunk32))return[state,empty42()];let builder=[],from=0,until=0,key=void 0,previousChunk=empty42();switch(state._tag){case"Some":{let tuple22=state.value;key=tuple22[0];let loop32=!0;while(loop32&&until<chunk32.length){let input=unsafeGet42(chunk32,until),updatedKey=f(input);if(!equals4(key,updatedKey)){let previousChunk2=tuple22[1],additionalChunk=unsafeFromArray2(Array.from(chunk32).slice(from,until)),group3=appendAll22(previousChunk2,additionalChunk);builder.push([key,group3]),key=updatedKey,from=until,loop32=!1}until=until+1}if(loop32)previousChunk=tuple22[1];break}case"None":{key=f(unsafeGet42(chunk32,until)),until=until+1;break}}while(until<chunk32.length){let input=unsafeGet42(chunk32,until),updatedKey=f(input);if(!equals4(key,updatedKey))builder.push([key,unsafeFromArray2(Array.from(chunk32).slice(from,until))]),key=updatedKey,from=until;until=until+1}let nonEmptyChunk=appendAll22(previousChunk,unsafeFromArray2(Array.from(chunk32).slice(from,until))),output=unsafeFromArray2(builder);return[some22([key,nonEmptyChunk]),output]},groupAdjacent=(state)=>readWithCause2({onInput:(input)=>{let[updatedState,output]=groupAdjacentByChunk(state,input);return isEmpty15(output)?groupAdjacent(updatedState):flatMap132(write2(output),()=>groupAdjacent(updatedState))},onFailure:(cause32)=>match22(state,{onNone:()=>failCause102(cause32),onSome:(output)=>flatMap132(write2(of22(output)),()=>failCause102(cause32))}),onDone:(done112)=>match22(state,{onNone:()=>succeedNow2(done112),onSome:(output)=>flatMap132(write2(of22(output)),()=>succeedNow2(done112))})});return new StreamImpl2(pipeToOrFail2(toChannel22(self),groupAdjacent(none22())))}),grouped3=dual2(2,(self,chunkSize)=>pipe2(self,rechunk3(chunkSize),chunks3)),groupedWithin3=dual2(3,(self,chunkSize,duration22)=>aggregateWithin3(self,collectAllN2(chunkSize),spaced22(duration22))),haltWhen3=dual2(2,(self,effect42)=>{let writer=(fiber)=>pipe2(poll42(fiber),map152(match22({onNone:()=>readWith2({onInput:(input)=>flatMap132(write2(input),()=>writer(fiber)),onFailure:fail112,onDone:()=>void_62}),onSome:match52({onFailure:failCause102,onSuccess:()=>void_62})})),unwrap6);return new StreamImpl2(unwrapScopedWith5((scope52)=>effect42.pipe(forkIn22(scope52),map152((fiber)=>toChannel22(self).pipe(pipeTo2(writer(fiber)))))))}),haltAfter3=dual2(2,(self,duration22)=>pipe2(self,haltWhen3(sleep22(duration22)))),haltWhenDeferred3=dual2(2,(self,deferred)=>{let writer=pipe2(poll8(deferred),map152(match22({onNone:()=>readWith2({onInput:(input)=>pipe2(write2(input),flatMap132(()=>writer)),onFailure:fail112,onDone:()=>void_62}),onSome:(effect42)=>unwrap6(match122(effect42,{onFailure:fail112,onSuccess:()=>void_62}))})),unwrap6);return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(writer)))}),identityStream2=()=>new StreamImpl2(identityChannel2()),interleave3=dual2(2,(self,that)=>pipe2(self,interleaveWith3(that,forever52(make502(!0,!1))))),interleaveWith3=dual2(3,(self,that,decider)=>{let producer=(handoff)=>readWithCause2({onInput:(value)=>flatMap132(fromEffect42(offer52(handoff,of52(value))),()=>producer(handoff)),onFailure:(cause32)=>fromEffect42(offer52(handoff,failCause112(cause32))),onDone:()=>fromEffect42(offer52(handoff,end42))});return new StreamImpl2(unwrapScopedWith5((scope52)=>pipe2(make492(),zip62(make492()),tap42(([left32])=>toChannel22(self).pipe(concatMap2(writeChunk2),pipeTo2(producer(left32)),runIn2(scope52),forkIn22(scope52))),tap42(([_,right32])=>toChannel22(that).pipe(concatMap2(writeChunk2),pipeTo2(producer(right32)),runIn2(scope52),forkIn22(scope52))),map152(([left32,right32])=>{let process2=(leftDone,rightDone)=>readWithCause2({onInput:(bool)=>{if(bool&&!leftDone)return pipe2(fromEffect42(take62(left32)),flatMap132(match172({onEnd:()=>rightDone?void_62:process2(!0,rightDone),onFailure:failCause102,onSuccess:(chunk32)=>pipe2(write2(chunk32),flatMap132(()=>process2(leftDone,rightDone)))})));if(!bool&&!rightDone)return pipe2(fromEffect42(take62(right32)),flatMap132(match172({onEnd:()=>leftDone?void_62:process2(leftDone,!0),onFailure:failCause102,onSuccess:(chunk32)=>pipe2(write2(chunk32),flatMap132(()=>process2(leftDone,rightDone)))})));return process2(leftDone,rightDone)},onFailure:failCause102,onDone:()=>void_62});return pipe2(toChannel22(decider),concatMap2(writeChunk2),pipeTo2(process2(!1,!1)))}))))}),intersperse3=dual2(2,(self,element)=>new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(suspend52(()=>{let writer=(isFirst)=>readWithCause2({onInput:(chunk32)=>{let builder=[],flagResult=isFirst;for(let output of chunk32)if(flagResult)flagResult=!1,builder.push(output);else builder.push(element),builder.push(output);return pipe2(write2(unsafeFromArray2(builder)),flatMap132(()=>writer(flagResult)))},onFailure:failCause102,onDone:()=>void_62});return writer(!0)}))))),intersperseAffixes3=dual2(2,(self,{end:end62,middle,start:start32})=>pipe2(make502(start32),concat22(pipe2(self,intersperse3(middle))),concat22(make502(end62)))),interruptAfter3=dual2(2,(self,duration22)=>pipe2(self,interruptWhen22(sleep22(duration22)))),interruptWhen22=dual2(2,(self,effect42)=>new StreamImpl2(pipe2(toChannel22(self),interruptWhen4(effect42)))),interruptWhenDeferred22=dual2(2,(self,deferred)=>new StreamImpl2(pipe2(toChannel22(self),interruptWhenDeferred4(deferred)))),iterate32=(value,next4)=>unfold32(value,(a)=>some22([a,next4(a)])),make502=(...as92)=>fromIterable102(as92),map202=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),mapOut2(map32(f))))),mapAccum52=dual2(3,(self,s,f)=>{let accumulator=(s2)=>readWith2({onInput:(input)=>{let[nextS,chunk32]=mapAccum22(input,s2,f);return flatMap132(write2(chunk32),()=>accumulator(nextS))},onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(accumulator(s))))}),mapAccumEffect3=dual2(3,(self,s,f)=>suspend92(()=>{let accumulator=(s2)=>readWith2({onInput:(input)=>pipe2(suspend32(()=>{let outputs=[],emit22=(output)=>sync32(()=>{outputs.push(output)});return pipe2(input,reduce102(s2,(s3,a)=>pipe2(f(s3,a),flatMap112(([s4,a2])=>pipe2(emit22(a2),as42(s4))))),match122({onFailure:(error3)=>{if(outputs.length!==0)return zipRight52(write2(unsafeFromArray2(outputs)),fail112(error3));return fail112(error3)},onSuccess:(s3)=>flatMap132(write2(unsafeFromArray2(outputs)),()=>accumulator(s3))}))}),unwrap6),onFailure:fail112,onDone:()=>void_62});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(accumulator(s))))})),mapBoth52=dual2(2,(self,options)=>pipe2(self,mapError62(options.onFailure),map202(options.onSuccess))),mapChunks3=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),mapOut2(f)))),mapChunksEffect3=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),mapOutEffect2(f)))),mapConcat3=dual2(2,(self,f)=>pipe2(self,mapConcatChunk3((a)=>fromIterable32(f(a))))),mapConcatChunk3=dual2(2,(self,f)=>pipe2(self,mapChunks3(flatMap32(f)))),mapConcatChunkEffect3=dual2(2,(self,f)=>pipe2(self,mapEffectSequential2(f),mapConcatChunk3(identity5))),mapConcatEffect3=dual2(2,(self,f)=>pipe2(self,mapEffectSequential2((a)=>pipe2(f(a),map152(fromIterable32))),mapConcatChunk3(identity5))),mapEffectSequential2=dual2(2,(self,f)=>{let loop32=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(elem)=>loop32(elem[Symbol.iterator]()),onFailure:failCause102,onDone:succeed102});else{let value=next4.value;return unwrap6(map152(f(value),(a2)=>flatMap132(write2(of22(a2)),()=>loop32(iterator))))}};return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(suspend52(()=>loop32(empty42()[Symbol.iterator]())))))}),mapEffectPar2=dual2(3,(self,n,f)=>new StreamImpl2(pipe2(toChannel22(self),concatMap2(writeChunk2),mapOutEffectPar2(f,n),mapOut2(of22)))),mapError62=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),mapError52(f)))),mapErrorCause42=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),mapErrorCause32(f)))),merge92=dual2((args22)=>isStream2(args22[1]),(self,that,options)=>mergeWith32(self,that,{onSelf:identity5,onOther:identity5,haltStrategy:options?.haltStrategy})),mergeAll82=dual2((args22)=>(Symbol.iterator in args22[0]),(streams,options)=>flatten132(fromIterable102(streams),options)),mergeWithTag3=dual2(2,(streams,options)=>{let values3=Object.keys(streams).map((key)=>streams[key].pipe(map202((value)=>({_tag:key,value}))));return mergeAll82(values3,options)}),mergeEither3=dual2(2,(self,that)=>mergeWith32(self,that,{onSelf:left22,onOther:right22})),mergeLeft3=dual2(2,(left32,right32)=>pipe2(left32,merge92(drain32(right32)))),mergeRight3=dual2(2,(left32,right32)=>pipe2(drain32(left32),merge92(right32))),mergeWith32=dual2(3,(self,other,options)=>{let strategy=options.haltStrategy?fromInput22(options.haltStrategy):Both22,handler=(terminate)=>(exit32)=>terminate||!isSuccess5(exit32)?Done42(suspend32(()=>exit32)):Await22((exit4)=>suspend32(()=>exit4));return new StreamImpl2(mergeWith22(toChannel22(map202(self,options.onSelf)),{other:toChannel22(map202(other,options.onOther)),onSelfDone:handler(strategy._tag==="Either"||strategy._tag==="Left"),onOtherDone:handler(strategy._tag==="Either"||strategy._tag==="Right")}))}),mkString22=(self)=>run32(self,mkString4),never42=fromEffect72(never32),onEnd3=dual2(2,(self,effect42)=>concat22(self,drain32(fromEffect72(effect42)))),onError32=dual2(2,(self,cleanup)=>pipe2(self,catchAllCause62((cause32)=>fromEffect72(pipe2(cleanup(cause32),zipRight42(failCause82(cause32))))))),onDone3=dual2(2,(self,cleanup)=>new StreamImpl2(pipe2(toChannel22(self),ensuringWith4((exit32)=>isSuccess5(exit32)?cleanup():_void2)))),onStart3=dual2(2,(self,effect42)=>unwrap22(as42(effect42,self))),orDie52=(self)=>pipe2(self,orDieWith42(identity5)),orDieWith42=dual2(2,(self,f)=>new StreamImpl2(pipe2(toChannel22(self),orDieWith32(f)))),orElse82=dual2(2,(self,that)=>new StreamImpl2(pipe2(toChannel22(self),orElse72(()=>toChannel22(that()))))),orElseEither42=dual2(2,(self,that)=>pipe2(self,map202(left22),orElse82(()=>pipe2(that(),map202(right22))))),orElseFail32=dual2(2,(self,error3)=>pipe2(self,orElse82(()=>failSync72(error3)))),orElseIfEmpty3=dual2(2,(self,element)=>pipe2(self,orElseIfEmptyChunk3(()=>of22(element())))),orElseIfEmptyChunk3=dual2(2,(self,chunk32)=>pipe2(self,orElseIfEmptyStream3(()=>new StreamImpl2(write2(chunk32()))))),orElseIfEmptyStream3=dual2(2,(self,stream)=>{let writer=readWith2({onInput:(input)=>{if(isEmpty15(input))return suspend52(()=>writer);return pipe2(write2(input),zipRight52(identityChannel2()))},onFailure:fail112,onDone:()=>suspend52(()=>toChannel22(stream()))});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(writer)))}),orElseSucceed32=dual2(2,(self,value)=>pipe2(self,orElse82(()=>sync82(value)))),paginate3=(s,f)=>paginateChunk3(s,(s2)=>{let page=f(s2);return[of22(page[0]),page[1]]}),paginateChunk3=(s,f)=>{let loop32=(s2)=>{let page=f(s2);return match22(page[1],{onNone:()=>zipRight52(write2(page[0]),void_62),onSome:(s3)=>flatMap132(write2(page[0]),()=>loop32(s3))})};return new StreamImpl2(suspend52(()=>loop32(s)))},paginateChunkEffect3=(s,f)=>{let loop32=(s2)=>unwrap6(map152(f(s2),([chunk32,option32])=>match22(option32,{onNone:()=>zipRight52(write2(chunk32),void_62),onSome:(s3)=>flatMap132(write2(chunk32),()=>loop32(s3))})));return new StreamImpl2(suspend52(()=>loop32(s)))},paginateEffect3=(s,f)=>paginateChunkEffect3(s,(s2)=>pipe2(f(s2),map152(([a,s3])=>[of22(a),s3]))),peel3=dual2(2,(self,sink)=>{return pipe2(make182(),flatMap112((deferred)=>pipe2(make492(),map152((handoff)=>{let consumer=foldSink2(collectLeftover2(sink),{onFailure:(error3)=>zipRight62(fromEffect62(fail32(deferred,error3)),fail122(error3)),onSuccess:([z,leftovers])=>{let loop32=readWithCause2({onInput:(elements)=>flatMap132(fromEffect42(offer52(handoff,{_tag:"Emit",elements})),()=>loop32),onFailure:(cause32)=>zipRight52(fromEffect42(offer52(handoff,{_tag:"Halt",cause:cause32})),failCause102(cause32)),onDone:(_)=>zipRight52(fromEffect42(offer52(handoff,{_tag:"End"})),void_62)});return fromChannel4(pipe2(fromEffect42(succeed22(deferred,z)),zipRight52(fromEffect42(pipe2(handoff,offer52({_tag:"Emit",elements:leftovers})))),zipRight52(loop32)))}}),producer=pipe2(take62(handoff),map152((signal)=>{switch(signal._tag){case"Emit":return pipe2(write2(signal.elements),flatMap132(()=>producer));case"Halt":return failCause102(signal.cause);case"End":return void_62}}),unwrap6);return pipe2(self,tapErrorCause52((cause32)=>failCause22(deferred,cause32)),run32(consumer),forkScoped22,zipRight42(_await4(deferred)),map152((z)=>[z,new StreamImpl2(producer)]))}))),flatten92)}),partition62=dual2((args22)=>typeof args22[1]==="function",(self,predicate,options)=>partitionEither3(self,(a)=>succeed82(predicate(a)?right22(a):left22(a)),options)),partitionEither3=dual2((args22)=>typeof args22[1]==="function",(self,predicate,options)=>pipe2(mapEffectSequential2(self,predicate),distributedWith3({size:2,maximumLag:options?.bufferSize??16,decide:match19({onLeft:()=>succeed82((n)=>n===0),onRight:()=>succeed82((n)=>n===1)})}),flatMap112(([queue1,queue2])=>succeed82([filterMap72(flattenExitOption3(fromQueue22(queue1,{shutdown:!0})),(_)=>match19(_,{onLeft:some22,onRight:none22})),filterMap72(flattenExitOption3(fromQueue22(queue2,{shutdown:!0})),(_)=>match19(_,{onLeft:none22,onRight:some22}))])))),pipeThrough3=dual2(2,(self,sink)=>new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(toChannel4(sink))))),pipeThroughChannel3=dual2(2,(self,channel)=>new StreamImpl2(pipeTo2(toChannel22(self),channel))),pipeThroughChannelOrFail3=dual2(2,(self,chan)=>new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(chan)))),prepend42=dual2(2,(self,values3)=>new StreamImpl2(zipRight52(write2(values3),toChannel22(self)))),provideContext52=dual2(2,(self,context62)=>new StreamImpl2(pipe2(toChannel22(self),provideContext32(context62)))),provideSomeContext22=dual2(2,(self,context62)=>mapInputContext52(self,merge32(context62))),provideLayer3=dual2(2,(self,layer)=>new StreamImpl2(unwrapScopedWith5((scope52)=>buildWithScope22(layer,scope52).pipe(map152((env)=>pipe2(toChannel22(self),provideContext32(env))))))),provideService52=dual2(3,(self,tag,resource)=>provideServiceEffect32(self,tag,succeed82(resource))),provideServiceEffect32=dual2(3,(self,tag,effect42)=>provideServiceStream3(self,tag,fromEffect72(effect42))),provideServiceStream3=dual2(3,(self,tag,stream)=>contextWithStream3((env)=>flatMap162(stream,(service32)=>pipe2(self,provideContext52(add22(env,tag,service32)))))),mapInputContext52=dual2(2,(self,f)=>contextWithStream3((env)=>pipe2(self,provideContext52(f(env))))),provideSomeLayer22=dual2(2,(self,layer)=>pipe2(self,provideLayer3(pipe2(context42(),merge82(layer))))),range22=(min32,max52,chunkSize=DefaultChunkSize3)=>suspend92(()=>{if(min32>max52)return empty292;let go=(min4,max6,chunkSize2)=>{let remaining=max6-min4+1;if(remaining>chunkSize2)return pipe2(write2(range4(min4,min4+chunkSize2-1)),flatMap132(()=>go(min4+chunkSize2,max6,chunkSize2)));return write2(range4(min4,min4+remaining-1))};return new StreamImpl2(go(min32,max52,chunkSize))}),race32=dual2(2,(left32,right32)=>raceAll32(left32,right32)),raceAll32=(...streams)=>make182().pipe(map152((halt22)=>{let winner=null;return mergeAll82(streams.map((stream,index)=>stream.pipe(takeWhile42(()=>{if(winner===null)return winner=index,unsafeDone2(halt22,void_32),!0;return winner===index}),interruptWhen22(_await4(halt22).pipe(flatMap112(()=>winner===index?never32:_void2))))),{concurrency:streams.length})}),unwrap22),rechunk3=dual2(2,(self,n)=>suspend92(()=>{let target=Math.max(n,1),process2=rechunkProcess2(new StreamRechunker2(target),target);return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(process2)))})),rechunkProcess2=(rechunker,target)=>readWithCause2({onInput:(chunk32)=>{if(chunk32.length===target&&rechunker.isEmpty())return flatMap132(write2(chunk32),()=>rechunkProcess2(rechunker,target));if(chunk32.length>0){let chunks22=[],result=void 0,index=0;while(index<chunk32.length){while(index<chunk32.length&&result===void 0)result=rechunker.write(pipe2(chunk32,unsafeGet42(index))),index=index+1;if(result!==void 0)chunks22.push(result),result=void 0}return flatMap132(writeAll2(...chunks22),()=>rechunkProcess2(rechunker,target))}return suspend52(()=>rechunkProcess2(rechunker,target))},onFailure:(cause32)=>zipRight52(rechunker.emitIfNotEmpty(),failCause102(cause32)),onDone:()=>rechunker.emitIfNotEmpty()});class StreamRechunker2{n;builder=[];pos=0;constructor(n){this.n=n}isEmpty(){return this.pos===0}write(elem){if(this.builder.push(elem),this.pos+=1,this.pos===this.n){let result=unsafeFromArray2(this.builder);return this.builder=[],this.pos=0,result}return}emitIfNotEmpty(){if(this.pos!==0)return write2(unsafeFromArray2(this.builder));return void_62}}var refineOrDie3=dual2(2,(self,pf)=>pipe2(self,refineOrDieWith3(pf,identity5))),refineOrDieWith3=dual2(3,(self,pf,f)=>new StreamImpl2(catchAll52(toChannel22(self),(error3)=>match22(pf(error3),{onNone:()=>failCause102(die42(f(error3))),onSome:fail112})))),repeat22=dual2(2,(self,schedule22)=>filterMap72(repeatEither3(self,schedule22),(_)=>match19(_,{onLeft:none22,onRight:some22}))),repeatEffect3=(effect42)=>repeatEffectOption3(pipe2(effect42,mapError32(some22))),repeatEffectChunk3=(effect42)=>repeatEffectChunkOption3(pipe2(effect42,mapError32(some22))),repeatEffectChunkOption3=(effect42)=>unfoldChunkEffect3(effect42,(effect5)=>pipe2(map152(effect5,(chunk32)=>some22([chunk32,effect5])),catchAll32(match22({onNone:()=>succeed82(none22()),onSome:fail92})))),repeatEffectOption3=(effect42)=>repeatEffectChunkOption3(pipe2(effect42,map152(of22))),repeatEither3=dual2(2,(self,schedule22)=>repeatWith3(self,schedule22,{onElement:(a)=>right22(a),onSchedule:left22})),repeatElements3=dual2(2,(self,schedule22)=>filterMap72(repeatElementsWith3(self,schedule22,{onElement:(a)=>some22(a),onSchedule:none22}),identity5)),repeatElementsWith3=dual2(3,(self,schedule22,options)=>{let driver32=pipe2(driver22(schedule22),map152((driver4)=>{let feed=(input)=>match22(head22(input),{onNone:()=>loop32,onSome:(a)=>zipRight52(write2(of22(options.onElement(a))),step42(pipe2(input,drop22(1)),a))}),step42=(input,a)=>{let advance=pipe2(driver4.next(a),as42(pipe2(write2(of22(options.onElement(a))),flatMap132(()=>step42(input,a))))),reset=pipe2(driver4.last,orDie32,flatMap112((b)=>pipe2(driver4.reset,map152(()=>pipe2(write2(of22(options.onSchedule(b))),zipRight52(feed(input)))))));return pipe2(advance,orElse52(()=>reset),unwrap6)},loop32=readWith2({onInput:feed,onFailure:fail112,onDone:()=>void_62});return loop32}),unwrap6);return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(driver32)))}),repeatValue3=(value)=>new StreamImpl2(repeated2(write2(of22(value)))),repeatWith3=dual2(3,(self,schedule22,options)=>{return pipe2(driver22(schedule22),map152((driver32)=>{let provideLastIterationInfo=provideServiceEffect32(CurrentIterationMetadata22,get122(driver32.iterationMeta)),process2=pipe2(self,provideLastIterationInfo,map202(options.onElement),toChannel22),loop32=unwrap6(match122(driver32.next(void 0),{onFailure:()=>void_62,onSuccess:(output)=>flatMap132(process2,()=>zipRight52(write2(of22(options.onSchedule(output))),loop32))}));return new StreamImpl2(zipRight52(process2,loop32))}),unwrap22)}),repeatWithSchedule2=(value,schedule22)=>repeatEffectWithSchedule3(succeed82(value),schedule22),repeatEffectWithSchedule3=(effect42,schedule22)=>flatMap162(fromEffect72(zip62(effect42,driver22(schedule22))),([a,driver32])=>{let provideLastIterationInfo=provideServiceEffect22(CurrentIterationMetadata22,get122(driver32.iterationMeta));return concat22(succeed142(a),unfoldEffect3(a,(s)=>matchEffect22(driver32.next(s),{onFailure:succeed82,onSuccess:()=>map152(provideLastIterationInfo(effect42),(nextA)=>some22([nextA,nextA]))})))}),retry62=dual2(2,(self,policy)=>driver22(policy).pipe(map152((driver32)=>{let provideLastIterationInfo=provideServiceEffect32(CurrentIterationMetadata22,get122(driver32.iterationMeta)),loop32=toChannel22(provideLastIterationInfo(self)).pipe(mapOutEffect2((out)=>as42(driver32.reset,out)),catchAll52((error3)=>driver32.next(error3).pipe(match122({onFailure:()=>fail112(error3),onSuccess:()=>loop32}),unwrap6)));return loop32}),unwrap6,fromChannel22)),withExecutionPlan32=dual2((args22)=>isStream2(args22[0]),(self,policy,options)=>suspend92(()=>{let preventFallbackOnPartialStream=options?.preventFallbackOnPartialStream??!1,i=0,lastError=none22(),loop32=suspend92(()=>{let step42=policy.steps[i++];if(!step42)return fail152(getOrThrow2(lastError));let nextStream=isContext22(step42.provide)?provideSomeContext22(self,step42.provide):provideSomeLayer22(self,step42.provide),receivedElements=!1;if(isSome22(lastError)){let error3=lastError.value,attempted=!1,wrapped=nextStream;nextStream=suspend92(()=>{if(attempted)return wrapped;return attempted=!0,fail152(error3)}),nextStream=scheduleDefectRefail22(retry62(nextStream,scheduleFromStep2(step42,!1)))}else{let schedule22=scheduleFromStep2(step42,!0);nextStream=schedule22?scheduleDefectRefail22(retry62(nextStream,schedule22)):nextStream}return catchAll72(preventFallbackOnPartialStream?mapChunks3(nextStream,(chunk32)=>{return receivedElements=!0,chunk32}):nextStream,(error3)=>{if(preventFallbackOnPartialStream&&receivedElements)return fail152(error3);return lastError=some22(error3),loop32})});return loop32})),scheduleDefectRefail22=(self)=>catchAllCause62(self,(cause32)=>failCause132(scheduleDefectRefailCause2(cause32))),run32=dual2(2,(self,sink)=>toChannel22(self).pipe(pipeToOrFail2(toChannel4(sink)),runDrain4)),runCollect3=(self)=>run32(self,collectAll2()),runCount3=(self)=>run32(self,count6),runDrain22=(self)=>run32(self,drain22),runFold3=dual2(3,(self,s,f)=>runFoldWhile3(self,s,constTrue2,f)),runFoldEffect3=dual2(3,(self,s,f)=>runFoldWhileEffect3(self,s,constTrue2,f)),runFoldScoped3=dual2(3,(self,s,f)=>pipe2(self,runFoldWhileScoped3(s,constTrue2,f))),runFoldScopedEffect3=dual2(3,(self,s,f)=>pipe2(self,runFoldWhileScopedEffect3(s,constTrue2,f))),runFoldWhile3=dual2(4,(self,s,cont,f)=>run32(self,fold2(s,cont,f))),runFoldWhileEffect3=dual2(4,(self,s,cont,f)=>run32(self,foldEffect2(s,cont,f))),runFoldWhileScoped3=dual2(4,(self,s,cont,f)=>pipe2(self,runScoped22(fold2(s,cont,f)))),runFoldWhileScopedEffect3=dual2(4,(self,s,cont,f)=>pipe2(self,runScoped22(foldEffect2(s,cont,f)))),runForEach3=dual2(2,(self,f)=>run32(self,forEach82(f))),runForEachChunk3=dual2(2,(self,f)=>run32(self,forEachChunk2(f))),runForEachChunkScoped3=dual2(2,(self,f)=>pipe2(self,runScoped22(forEachChunk2(f)))),runForEachScoped3=dual2(2,(self,f)=>pipe2(self,runScoped22(forEach82(f)))),runForEachWhile3=dual2(2,(self,f)=>run32(self,forEachWhile2(f))),runForEachWhileScoped3=dual2(2,(self,f)=>pipe2(self,runScoped22(forEachWhile2(f)))),runHead3=(self)=>run32(self,head52()),runIntoPubSub3=dual2(2,(self,pubsub)=>pipe2(self,runIntoQueue3(pubsub))),runIntoPubSubScoped3=dual2(2,(self,pubsub)=>pipe2(self,runIntoQueueScoped3(pubsub))),runIntoQueue3=dual2(2,(self,queue)=>pipe2(self,runIntoQueueScoped3(queue),scoped22)),runIntoQueueElementsScoped3=dual2(2,(self,queue)=>{let writer=readWithCause2({onInput:(input)=>flatMap132(fromEffect42(offerAll32(queue,map32(input,succeed32))),()=>writer),onFailure:(cause32)=>fromEffect42(offer32(queue,failCause32(map112(cause32,some22)))),onDone:()=>fromEffect42(offer32(queue,fail42(none22())))});return pipe2(pipeTo2(toChannel22(self),writer),drain5,runScoped4,asVoid42)}),runIntoQueueScoped3=dual2(2,(self,queue)=>{let writer=readWithCause2({onInput:(input)=>flatMap132(write2(chunk22(input)),()=>writer),onFailure:(cause32)=>write2(failCause112(cause32)),onDone:()=>write2(end42)});return pipe2(pipeTo2(toChannel22(self),writer),mapOutEffect2((take72)=>offer32(queue,take72)),drain5,runScoped4,asVoid42)}),runLast3=(self)=>run32(self,last32()),runScoped22=dual2(2,(self,sink)=>pipe2(toChannel22(self),pipeToOrFail2(toChannel4(sink)),drain5,runScoped4)),runSum3=(self)=>run32(self,sum22),scan3=dual2(3,(self,s,f)=>pipe2(self,scanEffect3(s,(s2,a)=>succeed82(f(s2,a))))),scanReduce3=dual2(2,(self,f)=>pipe2(self,scanReduceEffect3((a2,a)=>succeed82(f(a2,a))))),scanReduceEffect3=dual2(2,(self,f)=>pipe2(self,mapAccumEffect3(none22(),(option32,a)=>{switch(option32._tag){case"None":return succeed82([some22(a),a]);case"Some":return pipe2(f(option32.value,a),map152((b)=>[some22(b),b]))}}))),schedule22=dual2(2,(self,schedule32)=>filterMap72(scheduleWith3(self,schedule32,{onElement:some22,onSchedule:none22}),identity5)),scheduleWith3=dual2(3,(self,schedule32,options)=>{let loop32=(driver32,iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(chunk32)=>loop32(driver32,chunk32[Symbol.iterator]()),onFailure:failCause102,onDone:succeedNow2});return unwrap6(matchEffect22(driver32.next(next4.value),{onFailure:()=>pipe2(driver32.last,orDie32,map152((b)=>pipe2(write2(make62(options.onElement(next4.value),options.onSchedule(b))),flatMap132(()=>loop32(driver32,iterator)))),zipLeft32(driver32.reset)),onSuccess:()=>succeed82(pipe2(write2(of22(options.onElement(next4.value))),flatMap132(()=>loop32(driver32,iterator))))}))};return new StreamImpl2(pipe2(fromEffect42(driver22(schedule32)),flatMap132((driver32)=>pipe2(toChannel22(self),pipeTo2(loop32(driver32,empty42()[Symbol.iterator]()))))))}),scanEffect3=dual2(3,(self,s,f)=>new StreamImpl2(pipe2(write2(of22(s)),flatMap132(()=>toChannel22(pipe2(self,mapAccumEffect3(s,(s2,a)=>pipe2(f(s2,a),map152((s3)=>[s3,s3]))))))))),scoped52=(effect42)=>new StreamImpl2(ensuring32(scoped42(pipe2(effect42,map152(of22))),_void2)),scopedWith42=(f)=>new StreamImpl2(scopedWith32((scope52)=>f(scope52).pipe(map152(of22)))),some62=(self)=>pipe2(self,mapError62(some22),someOrFail3(()=>none22())),someOrElse3=dual2(2,(self,fallback)=>pipe2(self,map202(getOrElse6(fallback)))),someOrFail3=dual2(2,(self,error3)=>mapEffectSequential2(self,match22({onNone:()=>failSync32(error3),onSome:succeed82}))),sliding72=dual2(2,(self,chunkSize)=>slidingSize3(self,chunkSize,1)),slidingSize3=dual2(3,(self,chunkSize,stepSize)=>{if(chunkSize<=0||stepSize<=0)return die102(new IllegalArgumentException22("Invalid bounds - `chunkSize` and `stepSize` must be greater than zero"));return new StreamImpl2(suspend52(()=>{let queue=new RingBuffer2(chunkSize),emitOnStreamEnd=(queueSize,channelEnd)=>{if(queueSize<chunkSize){let items=queue.toChunk(),result2=isEmpty15(items)?empty42():of22(items);return pipe2(write2(result2),flatMap132(()=>channelEnd))}let lastEmitIndex=queueSize-(queueSize-chunkSize)%stepSize;if(lastEmitIndex===queueSize)return channelEnd;let leftovers=queueSize-(lastEmitIndex-chunkSize+stepSize),lastItems=pipe2(queue.toChunk(),takeRight4(leftovers)),result=isEmpty15(lastItems)?empty42():of22(lastItems);return pipe2(write2(result),flatMap132(()=>channelEnd))},reader=(queueSize)=>readWithCause2({onInput:(input)=>flatMap132(write2(filterMap32(input,(element,index)=>{queue.put(element);let currentIndex=queueSize+index+1;if(currentIndex<chunkSize||(currentIndex-chunkSize)%stepSize>0)return none22();return some22(queue.toChunk())})),()=>reader(queueSize+input.length)),onFailure:(cause32)=>emitOnStreamEnd(queueSize,failCause102(cause32)),onDone:()=>emitOnStreamEnd(queueSize,void_62)});return pipe2(toChannel22(self),pipeTo2(reader(0)))}))}),split22=dual2(2,(self,predicate)=>{let split32=(leftovers,input)=>{let[chunk32,remaining]=pipe2(leftovers,appendAll22(input),splitWhere2(predicate));if(isEmpty15(chunk32)||isEmpty15(remaining))return loop32(pipe2(chunk32,appendAll22(pipe2(remaining,drop22(1)))));return pipe2(write2(of22(chunk32)),flatMap132(()=>split32(empty42(),pipe2(remaining,drop22(1)))))},loop32=(leftovers)=>readWith2({onInput:(input)=>split32(leftovers,input),onFailure:fail112,onDone:()=>{if(isEmpty15(leftovers))return void_62;if(isNone22(pipe2(leftovers,findFirst32(predicate))))return zipRight52(write2(of22(leftovers)),void_62);return zipRight52(split32(empty42(),leftovers),void_62)}});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32(empty42()))))}),splitOnChunk3=dual2(2,(self,delimiter)=>{let next4=(leftover,delimiterIndex)=>readWithCause2({onInput:(inputChunk)=>{let buffer22,[carry,delimiterCursor]=pipe2(inputChunk,reduce22([pipe2(leftover,getOrElse6(()=>empty42())),delimiterIndex],([carry2,delimiterCursor2],a)=>{let concatenated=pipe2(carry2,append22(a));if(delimiterCursor2<delimiter.length&&equals4(a,pipe2(delimiter,unsafeGet42(delimiterCursor2)))){if(delimiterCursor2+1===delimiter.length){if(buffer22===void 0)buffer22=[];return buffer22.push(pipe2(concatenated,take9(concatenated.length-delimiter.length))),[empty42(),0]}return[concatenated,delimiterCursor2+1]}return[concatenated,equals4(a,pipe2(delimiter,unsafeGet42(0)))?1:0]})),output=buffer22===void 0?empty42():unsafeFromArray2(buffer22);return flatMap132(write2(output),()=>next4(isNonEmpty6(carry)?some22(carry):none22(),delimiterCursor))},onFailure:(cause32)=>match22(leftover,{onNone:()=>failCause102(cause32),onSome:(chunk32)=>zipRight52(write2(of22(chunk32)),failCause102(cause32))}),onDone:(done112)=>match22(leftover,{onNone:()=>succeed102(done112),onSome:(chunk32)=>zipRight52(write2(of22(chunk32)),succeed102(done112))})});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(next4(none22(),0))))}),splitLines22=(self)=>pipeThroughChannel3(self,splitLines4()),succeed142=(value)=>fromChunk3(of22(value)),sync82=(evaluate22)=>suspend92(()=>fromChunk3(of22(evaluate22()))),suspend92=(stream)=>new StreamImpl2(suspend52(()=>toChannel22(stream()))),take72=dual2(2,(self,n)=>{if(!Number.isInteger(n))return die102(new IllegalArgumentException22(`${n} must be an integer`));let loop32=(n2)=>readWith2({onInput:(input)=>{let taken=pipe2(input,take9(Math.min(n2,Number.POSITIVE_INFINITY))),leftover=Math.max(0,n2-taken.length);if(leftover>0)return pipe2(write2(taken),flatMap132(()=>loop32(leftover)));return write2(taken)},onFailure:fail112,onDone:succeed102});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(0<n?loop32(n):void_62)))}),takeRight22=dual2(2,(self,n)=>{if(n<=0)return empty292;return new StreamImpl2(pipe2(succeed82(new RingBuffer2(n)),map152((queue)=>{let reader=readWith2({onInput:(input)=>{for(let element of input)queue.put(element);return reader},onFailure:fail112,onDone:()=>pipe2(write2(queue.toChunk()),zipRight52(void_62))});return pipe2(toChannel22(self),pipeTo2(reader))}),unwrap6))}),takeUntil32=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>{let taken=pipe2(input,takeWhile6((a)=>!predicate(a))),last42=pipe2(input,drop22(taken.length),take9(1));if(isEmpty15(last42))return pipe2(write2(taken),flatMap132(()=>loop32));return write2(pipe2(taken,appendAll22(last42)))},onFailure:fail112,onDone:succeed102});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32)))}),takeUntilEffect3=dual2(2,(self,predicate)=>{let loop32=(iterator)=>{let next4=iterator.next();if(next4.done)return readWithCause2({onInput:(elem)=>loop32(elem[Symbol.iterator]()),onFailure:failCause102,onDone:succeed102});return pipe2(predicate(next4.value),map152((bool)=>bool?write2(of22(next4.value)):pipe2(write2(of22(next4.value)),flatMap132(()=>loop32(iterator)))),unwrap6)};return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32(empty42()[Symbol.iterator]()))))}),takeWhile42=dual2(2,(self,predicate)=>{let loop32=readWith2({onInput:(input)=>{let taken=pipe2(input,takeWhile6(predicate));if(taken.length===input.length)return pipe2(write2(taken),flatMap132(()=>loop32));return write2(taken)},onFailure:fail112,onDone:succeed102});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(loop32)))}),tap72=dual2(2,(self,f)=>mapEffectSequential2(self,(a)=>as42(f(a),a))),tapBoth32=dual2(2,(self,options)=>pipe2(self,tapError52(options.onFailure),tap72(options.onSuccess))),tapError52=dual2(2,(self,f)=>catchAll72(self,(error3)=>fromEffect72(zipRight42(f(error3),fail92(error3))))),tapErrorCause52=dual2(2,(self,f)=>{let loop32=readWithCause2({onInput:(chunk32)=>flatMap132(write2(chunk32),()=>loop32),onFailure:(cause32)=>fromEffect42(zipRight42(f(cause32),failCause82(cause32))),onDone:succeedNow2});return new StreamImpl2(pipe2(toChannel22(self),pipeTo2(loop32)))}),tapSink3=dual2(2,(self,sink)=>pipe2(fromEffect72(all42([bounded52(1),make182()])),flatMap162(([queue,deferred])=>{let right32=flattenTake3(fromQueue22(queue,{maxChunkSize:1})),loop32=readWithCause2({onInput:(chunk32)=>pipe2(fromEffect42(offer32(queue,chunk22(chunk32))),foldCauseChannel2({onFailure:()=>flatMap132(write2(chunk32),()=>identityChannel2()),onSuccess:()=>flatMap132(write2(chunk32),()=>loop32)})),onFailure:(cause32)=>pipe2(fromEffect42(offer32(queue,failCause112(cause32))),foldCauseChannel2({onFailure:()=>failCause102(cause32),onSuccess:()=>failCause102(cause32)})),onDone:()=>pipe2(fromEffect42(offer32(queue,end42)),foldCauseChannel2({onFailure:()=>void_62,onSuccess:()=>void_62}))});return pipe2(new StreamImpl2(pipe2(pipeTo2(toChannel22(self),loop32),ensuring32(zipRight42(forkDaemon22(offer32(queue,end42)),_await4(deferred))))),merge92(execute3(pipe2(run32(right32,sink),ensuring22(zipRight42(shutdown42(queue),succeed22(deferred,void 0)))))))}))),throttle3=dual2(2,(self,options)=>throttleEffect3(self,{...options,cost:(chunk32)=>succeed82(options.cost(chunk32))})),throttleEffect3=dual2(2,(self,options)=>{if(options.strategy==="enforce")return throttleEnforceEffect2(self,options.cost,options.units,options.duration,options.burst??0);return throttleShapeEffect2(self,options.cost,options.units,options.duration,options.burst??0)}),throttleEnforceEffect2=(self,cost,units,duration22,burst)=>{let loop32=(tokens,timestampMillis)=>readWithCause2({onInput:(input)=>pipe2(cost(input),zip62(currentTimeMillis22),map152(([weight,currentTimeMillis32])=>{let cycles=(currentTimeMillis32-timestampMillis)/toMillis2(duration22),sum32=tokens+cycles*units,max52=units+burst<0?Number.POSITIVE_INFINITY:units+burst,available=sum32<0?max52:Math.min(sum32,max52);if(weight<=available)return pipe2(write2(input),flatMap132(()=>loop32(available-weight,currentTimeMillis32)));return loop32(tokens,timestampMillis)}),unwrap6),onFailure:failCause102,onDone:()=>void_62}),throttled=pipe2(currentTimeMillis22,map152((currentTimeMillis32)=>loop32(units,currentTimeMillis32)),unwrap6);return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(throttled)))},throttleShapeEffect2=(self,costFn,units,duration22,burst)=>{let loop32=(tokens,timestampMillis)=>readWithCause2({onInput:(input)=>pipe2(costFn(input),zip62(currentTimeMillis22),map152(([weight,currentTimeMillis32])=>{let cycles=(currentTimeMillis32-timestampMillis)/toMillis2(duration22),sum32=tokens+cycles*units,max52=units+burst<0?Number.POSITIVE_INFINITY:units+burst,remaining=(sum32<0?max52:Math.min(sum32,max52))-weight,waitCycles=remaining>=0?0:-remaining/units,delay32=millis2(Math.max(0,waitCycles*toMillis2(duration22)));if(greaterThan22(delay32,zero2))return pipe2(fromEffect42(sleep22(delay32)),zipRight52(write2(input)),flatMap132(()=>loop32(remaining,currentTimeMillis32)));return flatMap132(write2(input),()=>loop32(remaining,currentTimeMillis32))}),unwrap6),onFailure:failCause102,onDone:()=>void_62}),throttled=pipe2(currentTimeMillis22,map152((currentTimeMillis32)=>loop32(units,currentTimeMillis32)),unwrap6);return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(throttled)))},tick3=(interval)=>repeatWithSchedule2(void 0,spaced22(interval)),timeout32=dual2(2,(self,duration22)=>pipe2(toPull22(self),map152(timeoutFail22({onTimeout:()=>none22(),duration:duration22})),fromPull22)),timeoutFail32=dual2(3,(self,error3,duration22)=>pipe2(self,timeoutTo32(duration22,failSync72(error3)))),timeoutFailCause32=dual2(3,(self,cause32,duration22)=>pipe2(toPull22(self),map152(timeoutFailCause22({onTimeout:()=>map112(cause32(),some22),duration:duration22})),fromPull22)),timeoutTo32=dual2(3,(self,duration22,that)=>{let StreamTimeout=new RuntimeException22("Stream Timeout");return pipe2(self,timeoutFailCause32(()=>die42(StreamTimeout),duration22),catchSomeCause32((cause32)=>isDieType22(cause32)&&isRuntimeException22(cause32.defect)&&cause32.defect.message!==void 0&&cause32.defect.message==="Stream Timeout"?some22(that):none22()))}),pubsubFromOptions2=(options)=>{if(typeof options==="number")return bounded42(options);else if(options.capacity==="unbounded")return unbounded42({replay:options.replay});switch(options.strategy){case"dropping":return dropping32(options);case"sliding":return sliding32(options);default:return bounded42(options)}},toPubSub22=dual2(2,(self,capacity72)=>pipe2(acquireRelease22(pubsubFromOptions2(capacity72),(pubsub)=>shutdown32(pubsub)),tap42((pubsub)=>pipe2(self,runIntoPubSubScoped3(pubsub),forkScoped22)))),toPull22=(self)=>map152(toPull4(toChannel22(self)),(pull)=>pipe2(pull,mapError32(some22),flatMap112(match19({onLeft:()=>fail92(none22()),onRight:succeed82})))),toQueue22=dual2((args22)=>isStream2(args22[0]),(self,options)=>tap42(acquireRelease22(options?.strategy==="unbounded"?unbounded52():options?.strategy==="dropping"?dropping42(options.capacity??2):options?.strategy==="sliding"?sliding42(options.capacity??2):bounded52(options?.capacity??2),(queue)=>shutdown42(queue)),(queue)=>forkScoped22(runIntoQueueScoped3(self,queue)))),toQueueOfElements3=dual2((args22)=>isStream2(args22[0]),(self,options)=>tap42(acquireRelease22(bounded52(options?.capacity??2),(queue)=>shutdown42(queue)),(queue)=>forkScoped22(runIntoQueueElementsScoped3(self,queue)))),toReadableStream3=dual2((args22)=>isStream2(args22[0]),(self,options)=>toReadableStreamRuntime3(self,defaultRuntime22,options)),toReadableStreamEffect3=dual2((args22)=>isStream2(args22[0]),(self,options)=>map152(runtime32(),(runtime4)=>toReadableStreamRuntime3(self,runtime4,options))),toReadableStreamRuntime3=dual2((args22)=>isStream2(args22[0]),(self,runtime4,options)=>{let runFork42=runFork32(runtime4),currentResolve=void 0,fiber=void 0,latch=unsafeMakeLatch22(!1);return new ReadableStream({start(controller){fiber=runFork42(runForEachChunk3(self,(chunk32)=>{if(chunk32.length===0)return _void2;return latch.whenOpen(sync32(()=>{latch.unsafeClose();for(let item of chunk32)controller.enqueue(item);currentResolve(),currentResolve=void 0}))})),fiber.addObserver((exit32)=>{try{if(exit32._tag==="Failure")controller.error(squash2(exit32.cause));else controller.close()}catch{}})},pull(){return new Promise((resolve)=>{currentResolve=resolve,runSync2(latch.open)})},cancel(){if(!fiber)return;return runPromise2(asVoid42(interrupt62(fiber)))}},options?.strategy)}),transduce3=dual2(2,(self,sink)=>{let newChannel=suspend52(()=>{let leftovers={ref:empty42()},upstreamDone={ref:!1},buffer22=suspend52(()=>{let leftover=leftovers.ref;if(isEmpty15(leftover))return readWith2({onInput:(input)=>pipe2(write2(input),flatMap132(()=>buffer22)),onFailure:fail112,onDone:succeedNow2});return leftovers.ref=empty42(),pipe2(writeChunk2(leftover),flatMap132(()=>buffer22))}),concatAndGet=(chunk32)=>{let leftover=leftovers.ref,concatenated=appendAll22(leftover,filter32(chunk32,(chunk42)=>chunk42.length!==0));return leftovers.ref=concatenated,concatenated},upstreamMarker=readWith2({onInput:(input)=>flatMap132(write2(input),()=>upstreamMarker),onFailure:fail112,onDone:(done112)=>zipRight52(sync52(()=>{upstreamDone.ref=!0}),succeedNow2(done112))}),transducer=pipe2(sink,toChannel4,collectElements2,flatMap132(([leftover,z])=>pipe2(succeed102([upstreamDone.ref,concatAndGet(leftover)]),flatMap132(([done112,newLeftovers])=>{let nextChannel=done112&&isEmpty15(newLeftovers)?void_62:transducer;return pipe2(write2(of22(z)),flatMap132(()=>nextChannel))}))));return pipe2(toChannel22(self),pipeTo2(upstreamMarker),pipeTo2(buffer22),pipeToOrFail2(transducer))});return new StreamImpl2(newChannel)}),toAsyncIterableRuntime3=dual2((args22)=>isStream2(args22[0]),(self,runtime4)=>{let runFork42=runFork32(runtime4);return{[Symbol.asyncIterator](){let currentResolve=void 0,currentReject=void 0,fiber=void 0,latch=unsafeMakeLatch22(!1),returned=!1;return{next(){if(!fiber)fiber=runFork42(runForEach3(self,(value)=>latch.whenOpen(sync32(()=>{latch.unsafeClose(),currentResolve({done:!1,value}),currentResolve=currentReject=void 0})))),fiber.addObserver((exit32)=>{if(returned)return;fiber=runFork22(latch.whenOpen(sync32(()=>{if(exit32._tag==="Failure")currentReject(squash2(exit32.cause));else currentResolve({done:!0,value:void 0});currentResolve=currentReject=void 0})))});return new Promise((resolve,reject)=>{currentResolve=resolve,currentReject=reject,latch.unsafeOpen()})},return(){if(returned=!0,!fiber)return Promise.resolve({done:!0,value:void 0});return runPromise2(as42(interrupt62(fiber),{done:!0,value:void 0}))}}}}}),toAsyncIterable3=(self)=>toAsyncIterableRuntime3(self,defaultRuntime22),toAsyncIterableEffect3=(self)=>map152(runtime32(),(runtime4)=>toAsyncIterableRuntime3(self,runtime4)),unfold32=(s,f)=>unfoldChunk3(s,(s2)=>pipe2(f(s2),map27(([a,s3])=>[of22(a),s3]))),unfoldChunk3=(s,f)=>{let loop32=(s2)=>match22(f(s2),{onNone:()=>void_62,onSome:([chunk32,s3])=>flatMap132(write2(chunk32),()=>loop32(s3))});return new StreamImpl2(suspend52(()=>loop32(s)))},unfoldChunkEffect3=(s,f)=>suspend92(()=>{let loop32=(s2)=>unwrap6(map152(f(s2),match22({onNone:()=>void_62,onSome:([chunk32,s3])=>flatMap132(write2(chunk32),()=>loop32(s3))})));return new StreamImpl2(loop32(s))}),unfoldEffect3=(s,f)=>unfoldChunkEffect3(s,(s2)=>pipe2(f(s2),map152(map27(([a,s3])=>[of22(a),s3])))),void_82=succeed142(void 0),unwrap22=(effect42)=>flatten132(fromEffect72(effect42)),unwrapScoped42=(effect42)=>flatten132(scoped52(effect42)),unwrapScopedWith32=(f)=>flatten132(scopedWith42((scope52)=>f(scope52))),updateService42=dual2(3,(self,tag,f)=>pipe2(self,mapInputContext52((context62)=>pipe2(context62,add22(tag,f(pipe2(context62,unsafeGet32(tag)))))))),when32=dual2(2,(self,test)=>pipe2(self,whenEffect32(sync32(test)))),whenCase3=(evaluate22,pf)=>whenCaseEffect3(pf)(sync32(evaluate22)),whenCaseEffect3=dual2(2,(self,pf)=>pipe2(fromEffect72(self),flatMap162((a)=>pipe2(pf(a),getOrElse6(()=>empty292))))),whenEffect32=dual2(2,(self,effect42)=>pipe2(fromEffect72(effect42),flatMap162((bool)=>bool?self:empty292))),withSpan62=function(){let dataFirst=typeof arguments[0]!=="string",name=dataFirst?arguments[1]:arguments[0],options=addSpanStackTrace2(dataFirst?arguments[2]:arguments[1]);if(dataFirst){let self=arguments[0];return new StreamImpl2(withSpan52(toChannel22(self),name,options))}return(self)=>new StreamImpl2(withSpan52(toChannel22(self),name,options))},zip82=dual2(2,(self,that)=>pipe2(self,zipWith112(that,(a,a2)=>[a,a2]))),zipFlatten3=dual2(2,(self,that)=>pipe2(self,zipWith112(that,(a,a2)=>[...a,a2]))),zipAll3=dual2(2,(self,options)=>zipAllWith3(self,{other:options.other,onSelf:(a)=>[a,options.defaultOther],onOther:(a2)=>[options.defaultSelf,a2],onBoth:(a,a2)=>[a,a2]})),zipAllLeft3=dual2(3,(self,other,defaultSelf)=>zipAllWith3(self,{other,onSelf:identity5,onOther:()=>defaultSelf,onBoth:(a)=>a})),zipAllRight3=dual2(3,(self,other,defaultRight)=>zipAllWith3(self,{other,onSelf:()=>defaultRight,onOther:identity5,onBoth:(_,a2)=>a2})),zipAllSortedByKey3=dual2(2,(self,options)=>zipAllSortedByKeyWith3(self,{other:options.other,onSelf:(a)=>[a,options.defaultOther],onOther:(a2)=>[options.defaultSelf,a2],onBoth:(a,a2)=>[a,a2],order:options.order})),zipAllSortedByKeyLeft3=dual2(2,(self,options)=>zipAllSortedByKeyWith3(self,{other:options.other,onSelf:identity5,onOther:()=>options.defaultSelf,onBoth:(a)=>a,order:options.order})),zipAllSortedByKeyRight3=dual2(2,(self,options)=>zipAllSortedByKeyWith3(self,{other:options.other,onSelf:()=>options.defaultOther,onOther:identity5,onBoth:(_,a2)=>a2,order:options.order})),zipAllSortedByKeyWith3=dual2(2,(self,options)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_DRAIN_LEFT2:return pipe2(pullLeft,match122({onFailure:fail42,onSuccess:(leftChunk)=>succeed32([map32(leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft2])}));case OP_DRAIN_RIGHT2:return pipe2(pullRight,match122({onFailure:fail42,onSuccess:(rightChunk)=>succeed32([map32(rightChunk,([k,a2])=>[k,options.onOther(a2)]),DrainRight2])}));case OP_PULL_BOTH3:return pipe2(unsome2(pullLeft),zip62(unsome2(pullRight),{concurrent:!0}),matchEffect22({onFailure:(error3)=>succeed82(fail42(some22(error3))),onSuccess:([leftOption,rightOption])=>{if(isSome22(leftOption)&&isSome22(rightOption)){if(isEmpty15(leftOption.value)&&isEmpty15(rightOption.value))return pull(PullBoth3,pullLeft,pullRight);if(isEmpty15(leftOption.value))return pull(PullLeft3(rightOption.value),pullLeft,pullRight);if(isEmpty15(rightOption.value))return pull(PullRight3(leftOption.value),pullLeft,pullRight);return succeed82(succeed32(merge102(leftOption.value,rightOption.value)))}if(isSome22(leftOption)&&isNone22(rightOption)){if(isEmpty15(leftOption.value))return pull(DrainLeft2,pullLeft,pullRight);return succeed82(succeed32([pipe2(leftOption.value,map32(([k,a])=>[k,options.onSelf(a)])),DrainLeft2]))}if(isNone22(leftOption)&&isSome22(rightOption)){if(isEmpty15(rightOption.value))return pull(DrainRight2,pullLeft,pullRight);return succeed82(succeed32([pipe2(rightOption.value,map32(([k,a2])=>[k,options.onOther(a2)])),DrainRight2]))}return succeed82(fail42(none22()))}}));case OP_PULL_LEFT3:return matchEffect22(pullLeft,{onFailure:match22({onNone:()=>succeed82(succeed32([pipe2(state.rightChunk,map32(([k,a2])=>[k,options.onOther(a2)])),DrainRight2])),onSome:(error3)=>succeed82(fail42(some22(error3)))}),onSuccess:(leftChunk)=>isEmpty15(leftChunk)?pull(PullLeft3(state.rightChunk),pullLeft,pullRight):succeed82(succeed32(merge102(leftChunk,state.rightChunk)))});case OP_PULL_RIGHT3:return matchEffect22(pullRight,{onFailure:match22({onNone:()=>succeed82(succeed32([map32(state.leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft2])),onSome:(error3)=>succeed82(fail42(some22(error3)))}),onSuccess:(rightChunk)=>isEmpty15(rightChunk)?pull(PullRight3(state.leftChunk),pullLeft,pullRight):succeed82(succeed32(merge102(state.leftChunk,rightChunk)))})}},merge102=(leftChunk,rightChunk)=>{let hasNext=(chunk32,index)=>index<chunk32.length-1,builder=[],state=void 0,leftIndex=0,rightIndex=0,leftTuple=pipe2(leftChunk,unsafeGet42(leftIndex)),rightTuple=pipe2(rightChunk,unsafeGet42(rightIndex)),k1=leftTuple[0],a=leftTuple[1],k2=rightTuple[0],a2=rightTuple[1],loop32=!0;while(loop32){let compare=options.order(k1,k2);if(compare===0)if(builder.push([k1,options.onBoth(a,a2)]),hasNext(leftChunk,leftIndex)&&hasNext(rightChunk,rightIndex))leftIndex=leftIndex+1,rightIndex=rightIndex+1,leftTuple=pipe2(leftChunk,unsafeGet42(leftIndex)),rightTuple=pipe2(rightChunk,unsafeGet42(rightIndex)),k1=leftTuple[0],a=leftTuple[1],k2=rightTuple[0],a2=rightTuple[1];else if(hasNext(leftChunk,leftIndex))state=PullRight3(pipe2(leftChunk,drop22(leftIndex+1))),loop32=!1;else if(hasNext(rightChunk,rightIndex))state=PullLeft3(pipe2(rightChunk,drop22(rightIndex+1))),loop32=!1;else state=PullBoth3,loop32=!1;else if(compare<0)if(builder.push([k1,options.onSelf(a)]),hasNext(leftChunk,leftIndex))leftIndex=leftIndex+1,leftTuple=pipe2(leftChunk,unsafeGet42(leftIndex)),k1=leftTuple[0],a=leftTuple[1];else{let rightBuilder=[];rightBuilder.push(rightTuple);while(hasNext(rightChunk,rightIndex))rightIndex=rightIndex+1,rightTuple=pipe2(rightChunk,unsafeGet42(rightIndex)),rightBuilder.push(rightTuple);state=PullLeft3(unsafeFromArray2(rightBuilder)),loop32=!1}else if(builder.push([k2,options.onOther(a2)]),hasNext(rightChunk,rightIndex))rightIndex=rightIndex+1,rightTuple=pipe2(rightChunk,unsafeGet42(rightIndex)),k2=rightTuple[0],a2=rightTuple[1];else{let leftBuilder=[];leftBuilder.push(leftTuple);while(hasNext(leftChunk,leftIndex))leftIndex=leftIndex+1,leftTuple=pipe2(leftChunk,unsafeGet42(leftIndex)),leftBuilder.push(leftTuple);state=PullRight3(unsafeFromArray2(leftBuilder)),loop32=!1}}return[unsafeFromArray2(builder),state]};return combineChunks3(self,options.other,PullBoth3,pull)}),zipAllWith3=dual2(2,(self,options)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_DRAIN_LEFT2:return matchEffect22(pullLeft,{onFailure:(error3)=>succeed82(fail42(error3)),onSuccess:(leftChunk)=>succeed82(succeed32([map32(leftChunk,options.onSelf),DrainLeft2]))});case OP_DRAIN_RIGHT2:return matchEffect22(pullRight,{onFailure:(error3)=>succeed82(fail42(error3)),onSuccess:(rightChunk)=>succeed82(succeed32([map32(rightChunk,options.onOther),DrainRight2]))});case OP_PULL_BOTH3:return pipe2(unsome2(pullLeft),zip62(unsome2(pullRight),{concurrent:!0}),matchEffect22({onFailure:(error3)=>succeed82(fail42(some22(error3))),onSuccess:([leftOption,rightOption])=>{if(isSome22(leftOption)&&isSome22(rightOption)){if(isEmpty15(leftOption.value)&&isEmpty15(rightOption.value))return pull(PullBoth3,pullLeft,pullRight);if(isEmpty15(leftOption.value))return pull(PullLeft3(rightOption.value),pullLeft,pullRight);if(isEmpty15(rightOption.value))return pull(PullRight3(leftOption.value),pullLeft,pullRight);return succeed82(succeed32(zip92(leftOption.value,rightOption.value,options.onBoth)))}if(isSome22(leftOption)&&isNone22(rightOption))return succeed82(succeed32([map32(leftOption.value,options.onSelf),DrainLeft2]));if(isNone22(leftOption)&&isSome22(rightOption))return succeed82(succeed32([map32(rightOption.value,options.onOther),DrainRight2]));return succeed82(fail42(none22()))}}));case OP_PULL_LEFT3:return matchEffect22(pullLeft,{onFailure:match22({onNone:()=>succeed82(succeed32([map32(state.rightChunk,options.onOther),DrainRight2])),onSome:(error3)=>succeed82(fail42(some22(error3)))}),onSuccess:(leftChunk)=>{if(isEmpty15(leftChunk))return pull(PullLeft3(state.rightChunk),pullLeft,pullRight);if(isEmpty15(state.rightChunk))return pull(PullRight3(leftChunk),pullLeft,pullRight);return succeed82(succeed32(zip92(leftChunk,state.rightChunk,options.onBoth)))}});case OP_PULL_RIGHT3:return matchEffect22(pullRight,{onFailure:match22({onNone:()=>succeed82(succeed32([map32(state.leftChunk,options.onSelf),DrainLeft2])),onSome:(error3)=>succeed82(fail42(some22(error3)))}),onSuccess:(rightChunk)=>{if(isEmpty15(rightChunk))return pull(PullRight3(state.leftChunk),pullLeft,pullRight);if(isEmpty15(state.leftChunk))return pull(PullLeft3(rightChunk),pullLeft,pullRight);return succeed82(succeed32(zip92(state.leftChunk,rightChunk,options.onBoth)))}})}},zip92=(leftChunk,rightChunk,f)=>{let[output,either62]=zipChunks2(leftChunk,rightChunk,f);switch(either62._tag){case"Left":{if(isEmpty15(either62.left))return[output,PullBoth3];return[output,PullRight3(either62.left)]}case"Right":{if(isEmpty15(either62.right))return[output,PullBoth3];return[output,PullLeft3(either62.right)]}}};return combineChunks3(self,options.other,PullBoth3,pull)}),zipLatest3=dual2(2,(left32,right32)=>pipe2(left32,zipLatestWith3(right32,(a,a2)=>[a,a2]))),zipLatestAll3=(...streams)=>{if(streams.length===0)return empty292;else if(streams.length===1)return map202(streams[0],(x)=>[x]);let[head62,...tail2]=streams;return zipLatestWith3(head62,zipLatestAll3(...tail2),(first,second)=>[first,...second])},zipLatestWith3=dual2(3,(left32,right32,f)=>{let pullNonEmpty=(pull)=>pipe2(pull,flatMap112((chunk32)=>isEmpty15(chunk32)?pullNonEmpty(pull):succeed82(chunk32)));return pipe2(toPull22(left32),map152(pullNonEmpty),zip62(pipe2(toPull22(right32),map152(pullNonEmpty))),flatMap112(([left4,right4])=>pipe2(fromEffectOption3(raceWith22(left4,right4,{onSelfDone:(leftDone,rightFiber)=>pipe2(suspend32(()=>leftDone),zipWith62(join42(rightFiber),(l,r)=>[l,r,!0])),onOtherDone:(rightDone,leftFiber)=>pipe2(suspend32(()=>rightDone),zipWith62(join42(leftFiber),(l,r)=>[r,l,!1]))})),flatMap162(([l,r,leftFirst])=>pipe2(fromEffect72(make282([unsafeLast2(l),unsafeLast2(r)])),flatMap162((latest)=>pipe2(fromChunk3(leftFirst?pipe2(r,map32((a2)=>f(unsafeLast2(l),a2))):pipe2(l,map32((a)=>f(a,unsafeLast2(r))))),concat22(pipe2(repeatEffectOption3(left4),mergeEither3(repeatEffectOption3(right4)),mapEffectSequential2(match19({onLeft:(leftChunk)=>modify52(latest,([_,rightLatest])=>[pipe2(leftChunk,map32((a)=>f(a,rightLatest))),[unsafeLast2(leftChunk),rightLatest]]),onRight:(rightChunk)=>modify52(latest,([leftLatest,_])=>[pipe2(rightChunk,map32((a2)=>f(leftLatest,a2))),[leftLatest,unsafeLast2(rightChunk)]])})),flatMap162(fromChunk3))))))),toPull22)),fromPull22)}),zipLeft62=dual2(2,(left32,right32)=>pipe2(left32,zipWithChunks3(right32,(left4,right4)=>{if(left4.length>right4.length)return[pipe2(left4,take9(right4.length)),left22(pipe2(left4,take9(right4.length)))];return[left4,right22(pipe2(right4,drop22(left4.length)))]}))),zipRight92=dual2(2,(left32,right32)=>pipe2(left32,zipWithChunks3(right32,(left4,right4)=>{if(left4.length>right4.length)return[right4,left22(pipe2(left4,take9(right4.length)))];return[pipe2(right4,take9(left4.length)),right22(pipe2(right4,drop22(left4.length)))]}))),zipWith112=dual2(3,(left32,right32,f)=>pipe2(left32,zipWithChunks3(right32,(leftChunk,rightChunk)=>zipChunks2(leftChunk,rightChunk,f)))),zipWithChunks3=dual2(3,(self,that,f)=>{let pull=(state,pullLeft,pullRight)=>{switch(state._tag){case OP_PULL_BOTH22:return pipe2(unsome2(pullLeft),zip62(unsome2(pullRight),{concurrent:!0}),matchEffect22({onFailure:(error3)=>succeed82(fail42(some22(error3))),onSuccess:([leftOption,rightOption])=>{if(isSome22(leftOption)&&isSome22(rightOption)){if(isEmpty15(leftOption.value)&&isEmpty15(rightOption.value))return pull(PullBoth22,pullLeft,pullRight);if(isEmpty15(leftOption.value))return pull(PullLeft22(rightOption.value),pullLeft,pullRight);if(isEmpty15(rightOption.value))return pull(PullRight22(leftOption.value),pullLeft,pullRight);return succeed82(succeed32(zip92(leftOption.value,rightOption.value)))}return succeed82(fail42(none22()))}}));case OP_PULL_LEFT22:return matchEffect22(pullLeft,{onFailure:(error3)=>succeed82(fail42(error3)),onSuccess:(leftChunk)=>{if(isEmpty15(leftChunk))return pull(PullLeft22(state.rightChunk),pullLeft,pullRight);if(isEmpty15(state.rightChunk))return pull(PullRight22(leftChunk),pullLeft,pullRight);return succeed82(succeed32(zip92(leftChunk,state.rightChunk)))}});case OP_PULL_RIGHT22:return matchEffect22(pullRight,{onFailure:(error3)=>succeed82(fail42(error3)),onSuccess:(rightChunk)=>{if(isEmpty15(rightChunk))return pull(PullRight22(state.leftChunk),pullLeft,pullRight);if(isEmpty15(state.leftChunk))return pull(PullLeft22(rightChunk),pullLeft,pullRight);return succeed82(succeed32(zip92(state.leftChunk,rightChunk)))}})}},zip92=(leftChunk,rightChunk)=>{let[output,either62]=f(leftChunk,rightChunk);switch(either62._tag){case"Left":{if(isEmpty15(either62.left))return[output,PullBoth22];return[output,PullRight22(either62.left)]}case"Right":{if(isEmpty15(either62.right))return[output,PullBoth22];return[output,PullLeft22(either62.right)]}}};return pipe2(self,combineChunks3(that,PullBoth22,pull))}),zipWithIndex3=(self)=>pipe2(self,mapAccum52(0,(index,a)=>[index+1,[a,index]])),zipWithNext3=(self)=>{let process2=(last42)=>readWithCause2({onInput:(input)=>{let[newLast,chunk32]=mapAccum22(input,last42,(prev,curr)=>[some22(curr),pipe2(prev,map27((a)=>[a,curr]))]),output=filterMap32(chunk32,(option32)=>isSome22(option32)?some22([option32.value[0],some22(option32.value[1])]):none22());return flatMap132(write2(output),()=>process2(newLast))},onFailure:failCause102,onDone:()=>match22(last42,{onNone:()=>void_62,onSome:(value)=>zipRight52(write2(of22([value,none22()])),void_62)})});return new StreamImpl2(pipe2(toChannel22(self),pipeToOrFail2(process2(none22()))))},zipWithPrevious3=(self)=>pipe2(self,mapAccum52(none22(),(prev,curr)=>[some22(curr),[prev,curr]])),zipWithPreviousAndNext3=(self)=>pipe2(zipWithNext3(zipWithPrevious3(self)),map202(([[prev,curr],next4])=>[prev,curr,pipe2(next4,map27((tuple22)=>tuple22[1]))])),zipChunks2=(left32,right32,f)=>{if(left32.length>right32.length)return[pipe2(left32,take9(right32.length),zipWith32(right32,f)),left22(pipe2(left32,drop22(right32.length)))];return[pipe2(left32,zipWith32(pipe2(right32,take9(left32.length)),f)),right22(pipe2(right32,drop22(left32.length)))]},Do42=succeed142({}),bind52=dual2((args22)=>typeof args22[0]!=="string",(self,tag,f,options)=>flatMap162(self,(k)=>map202(f(k),(a)=>({...k,[tag]:a})),options)),bindTo52=bindTo6(map202),let_52=let_6(map202),decodeText3=dual2((args22)=>isStream2(args22[0]),(self,encoding="utf-8")=>suspend92(()=>{let decoder=new TextDecoder(encoding);return map202(self,(s)=>decoder.decode(s))})),encodeText3=(self)=>suspend92(()=>{let encoder=new TextEncoder;return map202(self,(s)=>encoder.encode(s))}),fromEventListener3=(target,type,options)=>asyncPush3((emit22)=>acquireRelease22(sync32(()=>target.addEventListener(type,emit22.single,options)),()=>sync32(()=>target.removeEventListener(type,emit22.single,options))),{bufferSize:typeof options==="object"?options.bufferSize:void 0}),GroupBySymbolKey2="effect/GroupBy",GroupByTypeId2=Symbol.for(GroupBySymbolKey2),groupByVariance2={_R:(_)=>_,_E:(_)=>_,_K:(_)=>_,_V:(_)=>_},isGroupBy2=(u)=>hasProperty2(u,GroupByTypeId2),evaluate22=dual2((args22)=>isGroupBy2(args22[0]),(self,f,options)=>flatMap162(self.grouped,([key,queue])=>f(key,flattenTake3(fromQueue22(queue,{shutdown:!0}))),{concurrency:"unbounded",bufferSize:options?.bufferSize??16})),make512=(grouped22)=>({[GroupByTypeId2]:groupByVariance2,pipe(){return pipeArguments2(this,arguments)},grouped:grouped22}),groupBy3=dual2((args22)=>isStream2(args22[0]),(self,f,options)=>make512(unwrapScoped42(gen32(function*(){let decider=yield*make182(),output=yield*acquireRelease22(bounded52(options?.bufferSize??16),(queue)=>shutdown42(queue)),ref=yield*make282(new Map),add52=yield*pipe2(mapEffectSequential2(self,f),distributedWithDynamicCallback2(options?.bufferSize??16,([key,value])=>flatMap112(_await4(decider),(f2)=>f2(key,value)),(exit32)=>offer32(output,exit32)));return yield*succeed22(decider,(key,_)=>pipe2(get122(ref),map152((map212)=>fromNullable4(map212.get(key))),flatMap112(match22({onNone:()=>flatMap112(add52,([index,queue])=>zipRight42(update32(ref,(map212)=>map212.set(key,index)),pipe2(offer32(output,succeed32([key,mapDequeue2(queue,(exit32)=>new TakeImpl2(pipe2(exit32,map102((tuple22)=>of22(tuple22[1])))))])),as42((n)=>n===index)))),onSome:(index)=>succeed82((n)=>n===index)})))),flattenExitOption3(fromQueue22(output,{shutdown:!0}))})))),mapEffectOptions2=dual2((args22)=>typeof args22[0]!=="function",(self,f,options)=>{if(options?.key)return evaluate22(groupByKey3(self,options.key,{bufferSize:options.bufferSize}),(_,s)=>mapEffectSequential2(s,f));return matchConcurrency2(options?.concurrency,()=>mapEffectSequential2(self,f),(n)=>options?.unordered?flatMap162(self,(a)=>fromEffect72(f(a)),{concurrency:n}):mapEffectPar2(self,n,f))}),bindEffect3=dual2((args22)=>typeof args22[0]!=="string",(self,tag,f,options)=>mapEffectOptions2(self,(k)=>map152(f(k),(a)=>({...k,[tag]:a})),options)),mapDequeue2=(dequeue,f)=>new MapDequeue2(dequeue,f);class MapDequeue2 extends Class4{dequeue;f;[DequeueTypeId22]={_Out:(_)=>_};constructor(dequeue,f){super();this.dequeue=dequeue,this.f=f}capacity(){return capacity42(this.dequeue)}get size(){return size112(this.dequeue)}unsafeSize(){return this.dequeue.unsafeSize()}get awaitShutdown(){return awaitShutdown32(this.dequeue)}isActive(){return this.dequeue.isActive()}get isShutdown(){return isShutdown32(this.dequeue)}get shutdown(){return shutdown42(this.dequeue)}get isFull(){return isFull32(this.dequeue)}get isEmpty(){return isEmpty122(this.dequeue)}get take(){return pipe2(take32(this.dequeue),map152((a)=>this.f(a)))}get takeAll(){return pipe2(takeAll22(this.dequeue),map152(map32((a)=>this.f(a))))}takeUpTo(max52){return pipe2(takeUpTo22(this.dequeue,max52),map152(map32((a)=>this.f(a))))}takeBetween(min32,max52){return pipe2(takeBetween22(this.dequeue,min32,max52),map152(map32((a)=>this.f(a))))}takeN(n){return pipe2(takeN22(this.dequeue,n),map152(map32((a)=>this.f(a))))}poll(){return pipe2(poll62(this.dequeue),map152(map27((a)=>this.f(a))))}pipe(){return pipeArguments2(this,arguments)}commit(){return this.take}}var groupByKey3=dual2((args22)=>typeof args22[0]!=="function",(self,f,options)=>{let loop32=(map212,outerQueue)=>readWithCause2({onInput:(input)=>flatMap132(fromEffect42(forEach72(groupByIterable2(input,f),([key,values3])=>{let innerQueue=map212.get(key);if(innerQueue===void 0)return pipe2(bounded52(options?.bufferSize??16),flatMap112((innerQueue2)=>pipe2(sync32(()=>{map212.set(key,innerQueue2)}),zipRight42(offer32(outerQueue,of52([key,innerQueue2]))),zipRight42(pipe2(offer32(innerQueue2,chunk22(values3)),catchSomeCause22((cause32)=>isInterruptedOnly22(cause32)?some22(_void2):none22()))))));return catchSomeCause22(offer32(innerQueue,chunk22(values3)),(cause32)=>isInterruptedOnly22(cause32)?some22(_void2):none22())},{discard:!0})),()=>loop32(map212,outerQueue)),onFailure:(cause32)=>fromEffect42(offer32(outerQueue,failCause112(cause32))),onDone:()=>fromEffect42(pipe2(forEach72(map212.entries(),([_,innerQueue])=>pipe2(offer32(innerQueue,end42),catchSomeCause22((cause32)=>isInterruptedOnly22(cause32)?some22(_void2):none22())),{discard:!0}),zipRight42(offer32(outerQueue,end42))))});return make512(unwrapScopedWith32((scope52)=>gen32(function*(){let map212=new Map,queue=yield*unbounded52();return yield*addFinalizer22(scope52,shutdown42(queue)),yield*toChannel22(self).pipe(pipeTo2(loop32(map212,queue)),drain5,runIn2(scope52),forkIn22(scope52),as42(flattenTake3(fromQueue22(queue,{shutdown:!0}))))})))}),groupByIterable2=dual2(2,(iterable,f)=>{let builder=[],iterator=iterable[Symbol.iterator](),map212=new Map,next4;while((next4=iterator.next())&&!next4.done){let value=next4.value,key=f(value);if(map212.has(key))map212.get(key).push(value);else{let innerBuilder=[value];builder.push([key,innerBuilder]),map212.set(key,innerBuilder)}}return unsafeFromArray2(builder.map((tuple22)=>[tuple22[0],unsafeFromArray2(tuple22[1])]))}),exports_Stream2={};__export2(exports_Stream2,{zipWithPreviousAndNext:()=>zipWithPreviousAndNext22,zipWithPrevious:()=>zipWithPrevious22,zipWithNext:()=>zipWithNext22,zipWithIndex:()=>zipWithIndex22,zipWithChunks:()=>zipWithChunks22,zipWith:()=>zipWith122,zipRight:()=>zipRight102,zipLeft:()=>zipLeft72,zipLatestWith:()=>zipLatestWith22,zipLatestAll:()=>zipLatestAll22,zipLatest:()=>zipLatest22,zipFlatten:()=>zipFlatten22,zipAllWith:()=>zipAllWith22,zipAllSortedByKeyWith:()=>zipAllSortedByKeyWith22,zipAllSortedByKeyRight:()=>zipAllSortedByKeyRight22,zipAllSortedByKeyLeft:()=>zipAllSortedByKeyLeft22,zipAllSortedByKey:()=>zipAllSortedByKey22,zipAllRight:()=>zipAllRight22,zipAllLeft:()=>zipAllLeft22,zipAll:()=>zipAll22,zip:()=>zip92,withSpan:()=>withSpan72,withExecutionPlan:()=>withExecutionPlan42,whenEffect:()=>whenEffect42,whenCaseEffect:()=>whenCaseEffect22,whenCase:()=>whenCase22,when:()=>when42,void:()=>void_92,updateService:()=>updateService52,unwrapScopedWith:()=>unwrapScopedWith42,unwrapScoped:()=>unwrapScoped52,unwrap:()=>unwrap32,unfoldEffect:()=>unfoldEffect22,unfoldChunkEffect:()=>unfoldChunkEffect22,unfoldChunk:()=>unfoldChunk22,unfold:()=>unfold42,transduce:()=>transduce22,toReadableStreamRuntime:()=>toReadableStreamRuntime22,toReadableStreamEffect:()=>toReadableStreamEffect22,toReadableStream:()=>toReadableStream22,toQueueOfElements:()=>toQueueOfElements22,toQueue:()=>toQueue32,toPull:()=>toPull32,toPubSub:()=>toPubSub32,toChannel:()=>toChannel32,toAsyncIterableRuntime:()=>toAsyncIterableRuntime22,toAsyncIterableEffect:()=>toAsyncIterableEffect22,toAsyncIterable:()=>toAsyncIterable22,timeoutTo:()=>timeoutTo42,timeoutFailCause:()=>timeoutFailCause42,timeoutFail:()=>timeoutFail42,timeout:()=>timeout42,tick:()=>tick22,throttleEffect:()=>throttleEffect22,throttle:()=>throttle22,tapSink:()=>tapSink22,tapErrorCause:()=>tapErrorCause62,tapError:()=>tapError62,tapBoth:()=>tapBoth42,tap:()=>tap82,takeWhile:()=>takeWhile52,takeUntilEffect:()=>takeUntilEffect22,takeUntil:()=>takeUntil42,takeRight:()=>takeRight32,take:()=>take82,sync:()=>sync92,suspend:()=>suspend102,succeed:()=>succeed152,splitOnChunk:()=>splitOnChunk22,splitLines:()=>splitLines32,split:()=>split32,someOrFail:()=>someOrFail22,someOrElse:()=>someOrElse22,some:()=>some72,slidingSize:()=>slidingSize22,sliding:()=>sliding82,share:()=>share22,scopedWith:()=>scopedWith52,scoped:()=>scoped62,scheduleWith:()=>scheduleWith22,schedule:()=>schedule32,scanReduceEffect:()=>scanReduceEffect22,scanReduce:()=>scanReduce22,scanEffect:()=>scanEffect22,scan:()=>scan22,runSum:()=>runSum22,runScoped:()=>runScoped32,runLast:()=>runLast22,runIntoQueueScoped:()=>runIntoQueueScoped22,runIntoQueueElementsScoped:()=>runIntoQueueElementsScoped22,runIntoQueue:()=>runIntoQueue22,runIntoPubSubScoped:()=>runIntoPubSubScoped22,runIntoPubSub:()=>runIntoPubSub22,runHead:()=>runHead22,runForEachWhileScoped:()=>runForEachWhileScoped22,runForEachWhile:()=>runForEachWhile22,runForEachScoped:()=>runForEachScoped22,runForEachChunkScoped:()=>runForEachChunkScoped22,runForEachChunk:()=>runForEachChunk22,runForEach:()=>runForEach22,runFoldWhileScopedEffect:()=>runFoldWhileScopedEffect22,runFoldWhileScoped:()=>runFoldWhileScoped22,runFoldWhileEffect:()=>runFoldWhileEffect22,runFoldWhile:()=>runFoldWhile22,runFoldScopedEffect:()=>runFoldScopedEffect22,runFoldScoped:()=>runFoldScoped22,runFoldEffect:()=>runFoldEffect22,runFold:()=>runFold22,runDrain:()=>runDrain32,runCount:()=>runCount22,runCollect:()=>runCollect22,run:()=>run42,retry:()=>retry72,repeatWith:()=>repeatWith22,repeatValue:()=>repeatValue22,repeatElementsWith:()=>repeatElementsWith22,repeatElements:()=>repeatElements22,repeatEither:()=>repeatEither22,repeatEffectWithSchedule:()=>repeatEffectWithSchedule22,repeatEffectOption:()=>repeatEffectOption22,repeatEffectChunkOption:()=>repeatEffectChunkOption22,repeatEffectChunk:()=>repeatEffectChunk22,repeatEffect:()=>repeatEffect22,repeat:()=>repeat32,refineOrDieWith:()=>refineOrDieWith22,refineOrDie:()=>refineOrDie22,rechunk:()=>rechunk22,range:()=>range32,raceAll:()=>raceAll42,race:()=>race42,provideSomeLayer:()=>provideSomeLayer32,provideSomeContext:()=>provideSomeContext32,provideServiceStream:()=>provideServiceStream22,provideServiceEffect:()=>provideServiceEffect42,provideService:()=>provideService62,provideLayer:()=>provideLayer22,provideContext:()=>provideContext62,prepend:()=>prepend52,pipeThroughChannelOrFail:()=>pipeThroughChannelOrFail22,pipeThroughChannel:()=>pipeThroughChannel22,pipeThrough:()=>pipeThrough22,peel:()=>peel22,partitionEither:()=>partitionEither22,partition:()=>partition72,paginateEffect:()=>paginateEffect22,paginateChunkEffect:()=>paginateChunkEffect22,paginateChunk:()=>paginateChunk22,paginate:()=>paginate22,orElseSucceed:()=>orElseSucceed42,orElseIfEmptyStream:()=>orElseIfEmptyStream22,orElseIfEmptyChunk:()=>orElseIfEmptyChunk22,orElseIfEmpty:()=>orElseIfEmpty22,orElseFail:()=>orElseFail42,orElseEither:()=>orElseEither52,orElse:()=>orElse92,orDieWith:()=>orDieWith52,orDie:()=>orDie62,onStart:()=>onStart22,onError:()=>onError42,onEnd:()=>onEnd22,onDone:()=>onDone22,never:()=>never52,mkString:()=>mkString32,mergeWithTag:()=>mergeWithTag22,mergeWith:()=>mergeWith42,mergeRight:()=>mergeRight22,mergeLeft:()=>mergeLeft22,mergeEither:()=>mergeEither22,mergeAll:()=>mergeAll92,merge:()=>merge102,mapInputContext:()=>mapInputContext62,mapErrorCause:()=>mapErrorCause52,mapError:()=>mapError72,mapEffect:()=>mapEffect42,mapConcatEffect:()=>mapConcatEffect22,mapConcatChunkEffect:()=>mapConcatChunkEffect22,mapConcatChunk:()=>mapConcatChunk22,mapConcat:()=>mapConcat22,mapChunksEffect:()=>mapChunksEffect22,mapChunks:()=>mapChunks22,mapBoth:()=>mapBoth62,mapAccumEffect:()=>mapAccumEffect22,mapAccum:()=>mapAccum62,map:()=>map212,make:()=>make522,let:()=>let_62,iterate:()=>iterate42,intersperseAffixes:()=>intersperseAffixes22,intersperse:()=>intersperse22,interruptWhenDeferred:()=>interruptWhenDeferred32,interruptWhen:()=>interruptWhen32,interruptAfter:()=>interruptAfter22,interleaveWith:()=>interleaveWith22,interleave:()=>interleave22,identity:()=>identity32,haltWhenDeferred:()=>haltWhenDeferred22,haltWhen:()=>haltWhen22,haltAfter:()=>haltAfter22,groupedWithin:()=>groupedWithin22,grouped:()=>grouped22,groupByKey:()=>groupByKey22,groupBy:()=>groupBy22,groupAdjacentBy:()=>groupAdjacentBy22,fromTQueue:()=>fromTQueue22,fromTPubSub:()=>fromTPubSub22,fromSchedule:()=>fromSchedule22,fromReadableStreamByob:()=>fromReadableStreamByob22,fromReadableStream:()=>fromReadableStream22,fromQueue:()=>fromQueue32,fromPull:()=>fromPull32,fromPubSub:()=>fromPubSub22,fromIteratorSucceed:()=>fromIteratorSucceed22,fromIterableEffect:()=>fromIterableEffect22,fromIterable:()=>fromIterable112,fromEventListener:()=>fromEventListener22,fromEffectOption:()=>fromEffectOption22,fromEffect:()=>fromEffect82,fromChunks:()=>fromChunks22,fromChunkQueue:()=>fromChunkQueue22,fromChunkPubSub:()=>fromChunkPubSub22,fromChunk:()=>fromChunk22,fromChannel:()=>fromChannel32,fromAsyncIterable:()=>fromAsyncIterable22,forever:()=>forever62,flattenTake:()=>flattenTake22,flattenIterables:()=>flattenIterables22,flattenExitOption:()=>flattenExitOption22,flattenEffect:()=>flattenEffect22,flattenChunks:()=>flattenChunks22,flatten:()=>flatten142,flatMap:()=>flatMap172,findEffect:()=>findEffect22,find:()=>find32,finalizer:()=>finalizer22,filterMapWhileEffect:()=>filterMapWhileEffect22,filterMapWhile:()=>filterMapWhile42,filterMapEffect:()=>filterMapEffect22,filterMap:()=>filterMap82,filterEffect:()=>filterEffect22,filter:()=>filter102,failSync:()=>failSync82,failCauseSync:()=>failCauseSync72,failCause:()=>failCause142,fail:()=>fail162,execute:()=>execute22,ensuringWith:()=>ensuringWith32,ensuring:()=>ensuring72,encodeText:()=>encodeText22,empty:()=>empty302,either:()=>either62,dropWhileEffect:()=>dropWhileEffect22,dropWhile:()=>dropWhile52,dropUntilEffect:()=>dropUntilEffect22,dropUntil:()=>dropUntil42,dropRight:()=>dropRight32,drop:()=>drop42,drainFork:()=>drainFork22,drain:()=>drain42,distributedWithDynamic:()=>distributedWithDynamic22,distributedWith:()=>distributedWith22,dieSync:()=>dieSync72,dieMessage:()=>dieMessage52,die:()=>die112,decodeText:()=>decodeText22,debounce:()=>debounce22,crossWith:()=>crossWith22,crossRight:()=>crossRight22,crossLeft:()=>crossLeft22,cross:()=>cross22,contextWithStream:()=>contextWithStream22,contextWithEffect:()=>contextWithEffect42,contextWith:()=>contextWith42,context:()=>context62,concatAll:()=>concatAll32,concat:()=>concat32,combineChunks:()=>combineChunks22,combine:()=>combine102,chunksWith:()=>chunksWith22,chunks:()=>chunks22,changesWithEffect:()=>changesWithEffect22,changesWith:()=>changesWith22,changes:()=>changes22,catchTags:()=>catchTags42,catchTag:()=>catchTag42,catchSomeCause:()=>catchSomeCause42,catchSome:()=>catchSome42,catchAllCause:()=>catchAllCause72,catchAll:()=>catchAll82,bufferChunks:()=>bufferChunks22,buffer:()=>buffer22,broadcastedQueuesDynamic:()=>broadcastedQueuesDynamic22,broadcastedQueues:()=>broadcastedQueues22,broadcastDynamic:()=>broadcastDynamic22,broadcast:()=>broadcast22,branchAfter:()=>branchAfter22,bindTo:()=>bindTo62,bindEffect:()=>bindEffect22,bind:()=>bind62,asyncScoped:()=>asyncScoped22,asyncPush:()=>asyncPush22,asyncEffect:()=>asyncEffect42,async:()=>_async22,as:()=>as92,aggregateWithinEither:()=>aggregateWithinEither22,aggregateWithin:()=>aggregateWithin22,aggregate:()=>aggregate22,acquireRelease:()=>acquireRelease42,accumulateChunks:()=>accumulateChunks22,accumulate:()=>accumulate22,StreamTypeId:()=>StreamTypeId32,Do:()=>Do52,DefaultChunkSize:()=>DefaultChunkSize22});var StreamTypeId32=StreamTypeId22,DefaultChunkSize22=DefaultChunkSize3,accumulate22=accumulate3,accumulateChunks22=accumulateChunks3,acquireRelease42=acquireRelease32,aggregate22=aggregate3,aggregateWithin22=aggregateWithin3,aggregateWithinEither22=aggregateWithinEither3,as92=as82,_async22=_async3,asyncEffect42=asyncEffect32,asyncPush22=asyncPush3,asyncScoped22=asyncScoped3,branchAfter22=branchAfter3,broadcast22=broadcast3,share22=share3,broadcastDynamic22=broadcastDynamic3,broadcastedQueues22=broadcastedQueues3,broadcastedQueuesDynamic22=broadcastedQueuesDynamic3,buffer22=buffer3,bufferChunks22=bufferChunks3,catchAll82=catchAll72,catchAllCause72=catchAllCause62,catchSome42=catchSome32,catchTag42=catchTag32,catchTags42=catchTags32,catchSomeCause42=catchSomeCause32,changes22=changes3,changesWith22=changesWith3,changesWithEffect22=changesWithEffect3,chunks22=chunks3,chunksWith22=chunksWith3,combine102=combine92,combineChunks22=combineChunks3,concat32=concat22,concatAll32=concatAll22,cross22=cross3,crossLeft22=crossLeft3,crossRight22=crossRight3,crossWith22=crossWith3,debounce22=debounce3,die112=die102,dieSync72=dieSync62,dieMessage52=dieMessage42,distributedWith22=distributedWith3,distributedWithDynamic22=distributedWithDynamic3,drain42=drain32,drainFork22=drainFork3,drop42=drop32,dropRight32=dropRight22,dropUntil42=dropUntil32,dropUntilEffect22=dropUntilEffect3,dropWhile52=dropWhile42,dropWhileEffect22=dropWhileEffect3,either62=either52,empty302=empty292,ensuring72=ensuring62,ensuringWith32=ensuringWith22,context62=context52,contextWith42=contextWith32,contextWithEffect42=contextWithEffect32,contextWithStream22=contextWithStream3,execute22=execute3,fail162=fail152,failSync82=failSync72,failCause142=failCause132,failCauseSync72=failCauseSync62,filter102=filter92,filterEffect22=filterEffect3,filterMap82=filterMap72,filterMapEffect22=filterMapEffect3,filterMapWhile42=filterMapWhile32,filterMapWhileEffect22=filterMapWhileEffect3,finalizer22=finalizer3,find32=find22,findEffect22=findEffect3,flatMap172=flatMap162,flatten142=flatten132,flattenChunks22=flattenChunks3,flattenEffect22=flattenEffect3,flattenExitOption22=flattenExitOption3,flattenIterables22=flattenIterables3,flattenTake22=flattenTake3,forever62=forever52,fromAsyncIterable22=fromAsyncIterable3,fromChannel32=fromChannel22,toChannel32=toChannel22,fromChunk22=fromChunk3,fromChunkPubSub22=fromChunkPubSub3,fromChunkQueue22=fromChunkQueue3,fromChunks22=fromChunks3,fromEffect82=fromEffect72,fromEffectOption22=fromEffectOption3,fromPubSub22=fromPubSub3,fromTPubSub22=fromTPubSub3,fromIterable112=fromIterable102,fromIterableEffect22=fromIterableEffect3,fromIteratorSucceed22=fromIteratorSucceed3,fromPull32=fromPull22,fromQueue32=fromQueue22,fromTQueue22=fromTQueue3,fromReadableStream22=fromReadableStream3,fromReadableStreamByob22=fromReadableStreamByob3,fromSchedule22=fromSchedule3,groupAdjacentBy22=groupAdjacentBy3,groupBy22=groupBy3,groupByKey22=groupByKey3,grouped22=grouped3,groupedWithin22=groupedWithin3,haltAfter22=haltAfter3,haltWhen22=haltWhen3,haltWhenDeferred22=haltWhenDeferred3,identity32=identityStream2,interleave22=interleave3,interleaveWith22=interleaveWith3,intersperse22=intersperse3,intersperseAffixes22=intersperseAffixes3,interruptAfter22=interruptAfter3,interruptWhen32=interruptWhen22,interruptWhenDeferred32=interruptWhenDeferred22,iterate42=iterate32,make522=make502,map212=map202,mapAccum62=mapAccum52,mapAccumEffect22=mapAccumEffect3,mapBoth62=mapBoth52,mapChunks22=mapChunks3,mapChunksEffect22=mapChunksEffect3,mapConcat22=mapConcat3,mapConcatChunk22=mapConcatChunk3,mapConcatChunkEffect22=mapConcatChunkEffect3,mapConcatEffect22=mapConcatEffect3,mapEffect42=mapEffectOptions2,mapError72=mapError62,mapErrorCause52=mapErrorCause42,merge102=merge92,mergeAll92=mergeAll82,mergeWithTag22=mergeWithTag3,mergeWith42=mergeWith32,mergeEither22=mergeEither3,mergeLeft22=mergeLeft3,mergeRight22=mergeRight3,mkString32=mkString22,never52=never42,onEnd22=onEnd3,onError42=onError32,onDone22=onDone3,onStart22=onStart3,orDie62=orDie52,orDieWith52=orDieWith42,orElse92=orElse82,orElseEither52=orElseEither42,orElseFail42=orElseFail32,orElseIfEmpty22=orElseIfEmpty3,orElseIfEmptyChunk22=orElseIfEmptyChunk3,orElseIfEmptyStream22=orElseIfEmptyStream3,orElseSucceed42=orElseSucceed32,paginate22=paginate3,paginateChunk22=paginateChunk3,paginateChunkEffect22=paginateChunkEffect3,paginateEffect22=paginateEffect3,partition72=partition62,partitionEither22=partitionEither3,peel22=peel3,pipeThrough22=pipeThrough3,pipeThroughChannel22=pipeThroughChannel3,pipeThroughChannelOrFail22=pipeThroughChannelOrFail3,prepend52=prepend42,provideContext62=provideContext52,provideSomeContext32=provideSomeContext22,provideLayer22=provideLayer3,provideService62=provideService52,provideServiceEffect42=provideServiceEffect32,provideServiceStream22=provideServiceStream3,mapInputContext62=mapInputContext52,provideSomeLayer32=provideSomeLayer22,race42=race32,raceAll42=raceAll32,range32=range22,rechunk22=rechunk3,refineOrDie22=refineOrDie3,refineOrDieWith22=refineOrDieWith3,repeat32=repeat22,repeatEffect22=repeatEffect3,repeatEffectChunk22=repeatEffectChunk3,repeatEffectChunkOption22=repeatEffectChunkOption3,repeatEffectOption22=repeatEffectOption3,repeatEffectWithSchedule22=repeatEffectWithSchedule3,repeatEither22=repeatEither3,repeatElements22=repeatElements3,repeatElementsWith22=repeatElementsWith3,repeatValue22=repeatValue3,repeatWith22=repeatWith3,retry72=retry62,withExecutionPlan42=withExecutionPlan32,run42=run32,runCollect22=runCollect3,runCount22=runCount3,runDrain32=runDrain22,runFold22=runFold3,runFoldEffect22=runFoldEffect3,runFoldScoped22=runFoldScoped3,runFoldScopedEffect22=runFoldScopedEffect3,runFoldWhile22=runFoldWhile3,runFoldWhileEffect22=runFoldWhileEffect3,runFoldWhileScoped22=runFoldWhileScoped3,runFoldWhileScopedEffect22=runFoldWhileScopedEffect3,runForEach22=runForEach3,runForEachChunk22=runForEachChunk3,runForEachChunkScoped22=runForEachChunkScoped3,runForEachScoped22=runForEachScoped3,runForEachWhile22=runForEachWhile3,runForEachWhileScoped22=runForEachWhileScoped3,runHead22=runHead3,runIntoPubSub22=runIntoPubSub3,runIntoPubSubScoped22=runIntoPubSubScoped3,runIntoQueue22=runIntoQueue3,runIntoQueueElementsScoped22=runIntoQueueElementsScoped3,runIntoQueueScoped22=runIntoQueueScoped3,runLast22=runLast3,runScoped32=runScoped22,runSum22=runSum3,scan22=scan3,scanEffect22=scanEffect3,scanReduce22=scanReduce3,scanReduceEffect22=scanReduceEffect3,schedule32=schedule22,scheduleWith22=scheduleWith3,scoped62=scoped52,scopedWith52=scopedWith42,sliding82=sliding72,slidingSize22=slidingSize3,some72=some62,someOrElse22=someOrElse3,someOrFail22=someOrFail3,split32=split22,splitOnChunk22=splitOnChunk3,splitLines32=splitLines22,succeed152=succeed142,sync92=sync82,suspend102=suspend92,take82=take72,takeRight32=takeRight22,takeUntil42=takeUntil32,takeUntilEffect22=takeUntilEffect3,takeWhile52=takeWhile42,tap82=tap72,tapBoth42=tapBoth32,tapError62=tapError52,tapErrorCause62=tapErrorCause52,tapSink22=tapSink3,throttle22=throttle3,throttleEffect22=throttleEffect3,tick22=tick3,timeout42=timeout32,timeoutFail42=timeoutFail32,timeoutFailCause42=timeoutFailCause32,timeoutTo42=timeoutTo32,toPubSub32=toPubSub22,toPull32=toPull22,toQueue32=toQueue22,toQueueOfElements22=toQueueOfElements3,toReadableStream22=toReadableStream3,toReadableStreamEffect22=toReadableStreamEffect3,toReadableStreamRuntime22=toReadableStreamRuntime3,toAsyncIterableRuntime22=toAsyncIterableRuntime3,toAsyncIterableEffect22=toAsyncIterableEffect3,toAsyncIterable22=toAsyncIterable3,transduce22=transduce3,unfold42=unfold32,unfoldChunk22=unfoldChunk3,unfoldChunkEffect22=unfoldChunkEffect3,unfoldEffect22=unfoldEffect3,void_92=void_82,unwrap32=unwrap22,unwrapScoped52=unwrapScoped42,unwrapScopedWith42=unwrapScopedWith32,updateService52=updateService42,when42=when32,whenCase22=whenCase3,whenCaseEffect22=whenCaseEffect3,whenEffect42=whenEffect32,withSpan72=withSpan62,zip92=zip82,zipFlatten22=zipFlatten3,zipAll22=zipAll3,zipAllLeft22=zipAllLeft3,zipAllRight22=zipAllRight3,zipAllSortedByKey22=zipAllSortedByKey3,zipAllSortedByKeyLeft22=zipAllSortedByKeyLeft3,zipAllSortedByKeyRight22=zipAllSortedByKeyRight3,zipAllSortedByKeyWith22=zipAllSortedByKeyWith3,zipAllWith22=zipAllWith3,zipLatest22=zipLatest3,zipLatestAll22=zipLatestAll3,zipLatestWith22=zipLatestWith3,zipLeft72=zipLeft62,zipRight102=zipRight92,zipWith122=zipWith112,zipWithChunks22=zipWithChunks3,zipWithNext22=zipWithNext3,zipWithPrevious22=zipWithPrevious3,zipWithPreviousAndNext22=zipWithPreviousAndNext3,zipWithIndex22=zipWithIndex3,Do52=Do42,bind62=bind52,bindEffect22=bindEffect3,bindTo62=bindTo52,let_62=let_52,decodeText22=decodeText3,encodeText22=encodeText3,fromEventListener22=fromEventListener3,import_redis=__toESM(require_dist2(),1);class RedisConnectionError extends exports_Data2.TaggedError("RedisConnectionError"){}class RedisCommandError extends exports_Data2.TaggedError("RedisCommandError"){}class RedisGeneralError extends exports_Data2.TaggedError("RedisGeneralError"){}class RedisConnectionOptions extends exports_Context2.Tag("RedisConnectionOptions")(){}var redisClientEffect=exports_Effect2.gen(function*(){let{options,createClient:createClientFromContext}=yield*RedisConnectionOptions,create=createClientFromContext??import_redis.createClient;return yield*exports_Effect2.acquireRelease(exports_Effect2.gen(function*(){yield*exports_Effect2.log("Connecting to Redis");let client=yield*exports_Effect2.tryPromise({try:()=>create(options).connect(),catch:(error3)=>new RedisConnectionError({cause:error3,message:"Error while connecting to Redis"})});return client.on("error",(error3)=>{exports_Effect2.runSync(exports_Effect2.logError(`Redis connection error: ${error3.message}`)),client.destroy()}),client.on("end",()=>{exports_Effect2.runSync(exports_Effect2.logInfo("Redis connection ended"))}),client}),(client)=>exports_Effect2.gen(function*(){yield*exports_Effect2.log("Cleaning up Redis connection"),yield*exports_Effect2.tryPromise(()=>client.close()).pipe(exports_Effect2.catchAll(()=>exports_Effect2.void))}))}),CONNECTION_ERROR_CODES=new Set(["ECONNREFUSED","ETIMEDOUT","ECONNRESET","EPIPE","ENOTFOUND","ENETUNREACH","EHOSTUNREACH","EAI_AGAIN"]),CONNECTION_ERROR_PATTERN=/\b(?:socket|connect|connection)\b/i,REDIS_COMMAND_ERROR_PATTERN=/^(?:WRONGTYPE|NOAUTH|WRONGPASS|NOPERM|READONLY|MOVED|ASK|NOSCRIPT|BUSY|ERR)\b/,COMMAND_EXTRACTION_PATTERN=/^(?:ERR|WRONGTYPE).*?(?:for|on|with)\s+(\w+)/i,DIRECT_COMMAND_PATTERN=/^(\w+):/,isNodeSystemError=(error3)=>{return error3 instanceof Error&&"code"in error3&&typeof error3.code==="string"},isConnectionError=(message,code)=>{if(code!==void 0&&CONNECTION_ERROR_CODES.has(code))return!0;return CONNECTION_ERROR_PATTERN.test(message)},isRedisCommandError=(message)=>{return REDIS_COMMAND_ERROR_PATTERN.test(message)},extractCommandFromError=(message)=>{let commandMatch=COMMAND_EXTRACTION_PATTERN.exec(message);if(commandMatch?.[1])return commandMatch[1].toUpperCase();let directCommandMatch=DIRECT_COMMAND_PATTERN.exec(message);if(directCommandMatch?.[1])return directCommandMatch[1].toUpperCase();return"Unknown"},toRedisError=(error3)=>{let message=error3 instanceof Error?error3.message:String(error3);if(error3 instanceof Error){let code=isNodeSystemError(error3)?error3.code:void 0;if(isConnectionError(message,code))return new RedisConnectionError({cause:error3,message:`Redis connection failed: ${message}`});if(isRedisCommandError(message)){let command=extractCommandFromError(message);return new RedisCommandError({cause:error3,message:`Redis command failed: ${message}`,command})}}return new RedisGeneralError({cause:error3,message:`Redis operation failed: ${message}`})};var createRedisCommandWithCustomError=(fn22)=>(...args22)=>exports_Effect2.tryPromise({try:()=>fn22(...args22),catch:toRedisError}),createGenericRedisCommand=(client,fn22)=>exports_Effect2.gen(function*(){let result=yield*exports_Effect2.try({try:()=>fn22(client),catch:(e)=>new RedisCommandError({cause:e,message:"Synchronous error in Redis operation",command:"Generic"})});if(result instanceof Promise)return yield*exports_Effect2.tryPromise({try:()=>result,catch:(e)=>new RedisCommandError({cause:e,message:"Asynchronous error in Redis operation",command:"Generic"})});return result});class Redis extends exports_Context2.Tag("Redis")(){}var bootstrapRedisServiceEffect=exports_Effect2.gen(function*(){let client=yield*redisClientEffect;return Redis.of({use:(fn22)=>createGenericRedisCommand(client,fn22),get:createRedisCommandWithCustomError((key)=>client.get(key)),set:(key,value,options)=>createRedisCommandWithCustomError((key2,value2,options2)=>{if(!options2)return client.set(key2,value2);let setOptions={};if(options2.expiration)setOptions[options2.expiration.mode]=options2.expiration.time;if(options2.condition)setOptions[options2.condition]=!0;if(options2.get)setOptions.GET=!0;return Object.keys(setOptions).length>0?client.set(key2,value2,setOptions):client.set(key2,value2)})(key,value,options),del:createRedisCommandWithCustomError((...keys32)=>client.del(keys32)),exists:createRedisCommandWithCustomError((...keys32)=>client.exists(keys32)),expire:createRedisCommandWithCustomError((key,seconds22)=>client.expire(key,seconds22)),ttl:createRedisCommandWithCustomError((key)=>client.ttl(key)),pexpire:createRedisCommandWithCustomError((key,milliseconds)=>client.pExpire(key,milliseconds)),pttl:createRedisCommandWithCustomError((key)=>client.pTTL(key)),hset:createRedisCommandWithCustomError((key,field,value)=>client.hSet(key,field,value)),hget:createRedisCommandWithCustomError((key,field)=>client.hGet(key,field)),hgetall:createRedisCommandWithCustomError((key)=>client.hGetAll(key)),hdel:createRedisCommandWithCustomError((key,...fields)=>client.hDel(key,fields)),hexists:createRedisCommandWithCustomError(async(key,field)=>await client.hExists(key,field)===1),hkeys:createRedisCommandWithCustomError((key)=>client.hKeys(key)),hvals:createRedisCommandWithCustomError((key)=>client.hVals(key)),hlen:createRedisCommandWithCustomError((key)=>client.hLen(key)),lpush:createRedisCommandWithCustomError((key,...values3)=>client.lPush(key,values3)),rpush:createRedisCommandWithCustomError((key,...values3)=>client.rPush(key,values3)),lpop:createRedisCommandWithCustomError(async(key,count32)=>{if(count32!==void 0)return client.lPopCount(key,count32);return client.lPop(key)}),rpop:createRedisCommandWithCustomError(async(key,count32)=>{if(count32!==void 0)return client.rPopCount(key,count32);return client.rPop(key)}),lrange:createRedisCommandWithCustomError((key,start32,stop22)=>client.lRange(key,start32,stop22)),llen:createRedisCommandWithCustomError((key)=>client.lLen(key)),lrem:createRedisCommandWithCustomError((key,count32,element)=>client.lRem(key,count32,element)),sadd:createRedisCommandWithCustomError((key,...members)=>client.sAdd(key,members)),srem:createRedisCommandWithCustomError((key,...members)=>client.sRem(key,members)),sismember:createRedisCommandWithCustomError(async(key,member)=>await client.sIsMember(key,member)===1),smembers:createRedisCommandWithCustomError((key)=>client.sMembers(key)),scard:createRedisCommandWithCustomError((key)=>client.sCard(key)),zadd:(key,score,member,...rest)=>{if(rest.length%2!==0)return exports_Effect2.fail(new RedisCommandError({cause:Error("Invalid zadd arguments: score-member pairs required"),message:"zadd requires score-member pairs",command:"ZADD"}));let members=[{score,value:member}];for(let i=0;i<rest.length;i+=2)members.push({score:rest[i],value:rest[i+1]});return exports_Effect2.tryPromise({try:()=>client.zAdd(key,members),catch:toRedisError})},zrange:createRedisCommandWithCustomError(async(key,start32,stop22,withScores)=>{if(withScores)return client.zRangeWithScores(key,start32,stop22);return client.zRange(key,start32,stop22)}),zrangebyscore:createRedisCommandWithCustomError(async(key,min32,max52,withScores)=>{if(withScores)return client.zRangeByScoreWithScores(key,min32,max52);return client.zRangeByScore(key,min32,max52)}),zscore:createRedisCommandWithCustomError((key,member)=>client.zScore(key,member)),zrem:createRedisCommandWithCustomError((key,...members)=>client.zRem(key,members)),zcard:createRedisCommandWithCustomError((key)=>client.zCard(key)),incr:createRedisCommandWithCustomError((key)=>client.incr(key)),decr:createRedisCommandWithCustomError((key)=>client.decr(key)),incrby:createRedisCommandWithCustomError((key,increment)=>client.incrBy(key,increment)),decrby:createRedisCommandWithCustomError((key,decrement)=>client.decrBy(key,decrement)),scan:createRedisCommandWithCustomError(async(options)=>{let scanOptions={};if(options?.match)scanOptions.MATCH=options.match;if(options?.count)scanOptions.COUNT=options.count;if(options?.type)scanOptions.TYPE=options.type;let cursor=options?.cursor??"0",result=await client.scan(cursor,scanOptions);return{cursor:result.cursor.toString(),keys:result.keys}}),flushdb:createRedisCommandWithCustomError(async()=>{return await client.flushDb(),"OK"}),flushall:createRedisCommandWithCustomError(async()=>{return await client.flushAll(),"OK"}),dbsize:createRedisCommandWithCustomError(()=>client.dbSize()),ping:createRedisCommandWithCustomError(async(message)=>{return await(message?client.ping(message):client.ping())}),execute:(command,...args22)=>createRedisCommandWithCustomError(()=>client.sendCommand([command,...args22.map((a)=>String(a))]))(),multi:createRedisCommandWithCustomError(async(commands)=>{let multi=client.multi();for(let[cmd,...args22]of commands)multi.addCommand([cmd,...args22.map((a)=>String(a))]);return multi.exec()}),quit:createRedisCommandWithCustomError(async()=>{return await client.quit(),"OK"}),disconnect:createRedisCommandWithCustomError(()=>client.disconnect())})}),RedisLive=exports_Layer2.scoped(Redis,bootstrapRedisServiceEffect);class RedisPubSub extends exports_Context2.Tag("RedisPubSub")(){}var bootstrapRedisPubSubServiceEffect=exports_Effect2.gen(function*(){let clientPublish=yield*redisClientEffect,clientSubscribe=yield*redisClientEffect;return RedisPubSub.of({publish:(channel,message)=>exports_Effect2.tryPromise({try:()=>clientPublish.publish(channel,message),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.publish`",command:"PUBLISH"})}),subscribe:(channel)=>{return exports_Effect2.gen(function*(){let incomingQueue=yield*exports_Queue2.unbounded();return yield*exports_Effect2.tryPromise({try:()=>clientSubscribe.subscribe(channel,(message)=>{return exports_Queue2.unsafeOffer(incomingQueue,message)}),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.subscribe`",command:"SUBSCRIBE"})}),exports_Stream2.fromQueue(incomingQueue)})}})}),RedisPubSubLive=exports_Layer2.scoped(RedisPubSub,bootstrapRedisPubSubServiceEffect);class RedisPersistence extends exports_Context2.Tag("RedisPersistence")(){}var bootstrapRedisPersistenceServiceEffect=exports_Effect2.gen(function*(){let client=yield*redisClientEffect;return RedisPersistence.of({setValue:(key,value)=>exports_Effect2.tryPromise({try:()=>client.set(key,value),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.setValue`",command:"SET"})}),getValue:(key)=>exports_Effect2.tryPromise({try:()=>client.get(key),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.getValue`",command:"GET"})}),del:(key)=>exports_Effect2.tryPromise({try:()=>client.del(key),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.del`",command:"DEL"})}),exists:(key)=>exports_Effect2.tryPromise({try:async()=>{return await client.exists(key)===1},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.exists`",command:"EXISTS"})}),sAdd:(key,members)=>exports_Effect2.tryPromise({try:()=>client.sAdd(key,members),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.sAdd`",command:"SADD"})})})}),RedisPersistenceLive=exports_Layer2.scoped(RedisPersistence,bootstrapRedisPersistenceServiceEffect),TIMEOUTS={DEFAULT_CONNECT:1e4,DEFAULT_COMMAND:5000,DEFAULT_STREAM_BLOCK:5000},DEFAULTS={HOST:"localhost",PORT:6379,DATABASE:0,STREAM_ID:"$"};var DEFAULT_STREAM_BLOCK_TIME=TIMEOUTS.DEFAULT_STREAM_BLOCK,DEFAULT_STREAM_ID=DEFAULTS.STREAM_ID,isValidStreamMessage=(msg)=>{return msg!==null&&typeof msg==="object"&&"id"in msg&&"message"in msg&&typeof msg.id==="string"},isValidStream=(stream)=>{return stream!==null&&typeof stream==="object"&&"messages"in stream&&Array.isArray(stream.messages)},transformStreamMessage=(msg)=>{if(isValidStreamMessage(msg))return{id:String(msg.id),message:msg.message};return{id:"",message:{}}},buildReadOptions=(block,count32)=>{let options={};if(block!==void 0)options.BLOCK=block;if(count32!==void 0)options.COUNT=count32;return options};class RedisStream extends exports_Context2.Tag("RedisStream")(){}var bootstrapRedisStreamServiceEffect=exports_Effect2.gen(function*(){let clientProducer=yield*redisClientEffect,clientConsumer=yield*redisClientEffect;return RedisStream.of({xadd:(key,id2,message)=>exports_Effect2.tryPromise({try:()=>clientProducer.xAdd(key,id2,message),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xadd`",command:"XADD"})}),xread:(key,id2,options)=>exports_Effect2.tryPromise({try:async()=>{let readOptions=buildReadOptions(options?.block,options?.count),streams=[{key,id:id2}],result=await clientConsumer.xRead(streams,readOptions);if(!result||!Array.isArray(result))return[];return result.flatMap((stream)=>{if(!isValidStream(stream))return[];return stream.messages.map(transformStreamMessage)})},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xread`",command:"XREAD"})}),xrange:(key,start32,end62,options)=>exports_Effect2.tryPromise({try:async()=>{let rangeOptions=options?.count?{COUNT:options.count}:{};return(await clientConsumer.xRange(key,start32,end62,rangeOptions)).map(transformStreamMessage)},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xrange`",command:"XRANGE"})}),subscribe:(key,options)=>{let initialId=options?.id??DEFAULT_STREAM_ID,block=options?.block??DEFAULT_STREAM_BLOCK_TIME,count32=options?.count;return exports_Stream2.unfoldChunkEffect(initialId,(currentId)=>exports_Effect2.gen(function*(){let readOptions=buildReadOptions(block,count32),result=yield*exports_Effect2.tryPromise({try:()=>clientConsumer.xRead([{key,id:currentId}],readOptions),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.subscribe` polling",command:"XREAD"})}),firstStream=(Array.isArray(result)?result:[])[0];if(!firstStream||!isValidStream(firstStream))return exports_Option2.some([exports_Chunk2.empty(),String(currentId)]);let{messages}=firstStream;if(messages.length===0)return exports_Option2.some([exports_Chunk2.empty(),String(currentId)]);let entries2=messages.map(transformStreamMessage),nextId=String(entries2[entries2.length-1]?.id??currentId);return exports_Option2.some([exports_Chunk2.fromIterable(entries2),nextId])}))},xack:(key,group3,...ids32)=>exports_Effect2.tryPromise({try:()=>clientProducer.xAck(key,group3,ids32),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xack`",command:"XACK"})})})}),RedisStreamLive=exports_Layer2.scoped(RedisStream,bootstrapRedisStreamServiceEffect);var PubSubMonitorService=exports_Context.GenericTag("PubSubMonitorService"),convertRedisError=(error3,context8)=>{return createSubscriptionFailedError(`${context8}: ${error3.message}`,!0,error3)},createPubSubMonitorService=(redisPubSubService,config2)=>({monitor:(channel)=>pipe(exports_Effect.mapError(redisPubSubService.subscribe(channel),(error3)=>convertRedisError(error3,`Failed to subscribe to channel '${channel}'`)),exports_Stream.unwrap,exports_Stream.map((content)=>PubSubMessage({timestamp:new Date,channel,content})),exports_Stream.mapError((error3)=>createConnectionLostError(`Connection lost while monitoring channel '${channel}': ${error3.message}`,error3)),exports_Stream.retry(pipe(exports_Schedule.exponential(exports_Duration.seconds(1)),exports_Schedule.intersect(exports_Schedule.recurs(config2.monitoring.maxReconnectAttempts)),exports_Schedule.tapInput((error3)=>exports_Effect.logWarning(`PubSub monitoring error for channel '${channel}': ${error3.message}. Retrying...`)))),exports_Stream.catchAll((error3)=>exports_Stream.fail(createSubscriptionFailedError(`Failed to monitor channel '${channel}' after ${config2.monitoring.maxReconnectAttempts} attempts: ${error3.message}`,!1,error3)))),subscribe:(channel)=>exports_Effect.gen(function*(){let messageStream=yield*exports_Effect.mapError(redisPubSubService.subscribe(channel),(error3)=>convertRedisError(error3,`Failed to subscribe to channel '${channel}'`));return pipe(messageStream,exports_Stream.map((content)=>PubSubMessage({timestamp:new Date,channel,content})),exports_Stream.mapError((error3)=>createConnectionLostError(`Stream error for channel '${channel}': ${error3.message}`,error3)))})}),PubSubMonitorServiceLive=exports_Layer.effect(PubSubMonitorService,exports_Effect.gen(function*(){let redisPubSubService=yield*RedisPubSub,config2=yield*(yield*CLIConfigService).loadConfig();return createPubSubMonitorService(redisPubSubService,config2)}));var StreamMonitorService=exports_Context.GenericTag("StreamMonitorService"),convertRedisError2=(error3,context8)=>{return createStreamReadFailedError(`${context8}: ${error3.message}`,!0,error3)},transformStreamEntry=(streamKey,entry)=>StreamMessage({timestamp:new Date,streamKey,entryId:String(entry.id),fields:entry.message}),createStreamSubscription=(redisStreamService,streamKey,config2,options)=>{let startId=options?.startId??"$",blockTimeout=options?.blockTimeout??config2.monitoring.blockTimeout,count7=options?.count;return pipe(redisStreamService.subscribe(streamKey,{id:startId,block:blockTimeout,count:count7}),exports_Stream.mapError((error3)=>convertRedisError2(error3,`Failed to read from stream '${streamKey}'`)),exports_Stream.map((entry)=>transformStreamEntry(streamKey,entry)),exports_Stream.retry(pipe(exports_Schedule.exponential(exports_Duration.seconds(1)),exports_Schedule.intersect(exports_Schedule.recurs(config2.monitoring.maxReconnectAttempts)),exports_Schedule.tapInput((error3)=>exports_Effect.logWarning(`Stream monitoring error for '${streamKey}': ${error3.message}. Retrying...`)))),exports_Stream.catchAll((error3)=>exports_Stream.fail(createStreamReadFailedError(`Failed to monitor stream '${streamKey}' after ${config2.monitoring.maxReconnectAttempts} attempts: ${error3.message}`,!1,error3))))},createStreamMonitorService=(redisStreamService,config2)=>({monitor:(streamKey,options)=>createStreamSubscription(redisStreamService,streamKey,config2,options),subscribeFromLatest:(streamKey)=>exports_Effect.gen(function*(){return pipe(redisStreamService.subscribe(streamKey,{id:"$",block:config2.monitoring.blockTimeout}),exports_Stream.mapError((error3)=>convertRedisError2(error3,`Failed to subscribe to stream '${streamKey}'`)),exports_Stream.map((entry)=>transformStreamEntry(streamKey,entry)))}),subscribeWithOptions:(streamKey,options)=>exports_Effect.gen(function*(){let subscribeOptions={id:options.startId??"$",block:options.blockTimeout??config2.monitoring.blockTimeout,count:options.count};return pipe(redisStreamService.subscribe(streamKey,subscribeOptions),exports_Stream.mapError((error3)=>convertRedisError2(error3,`Failed to subscribe to stream '${streamKey}' with options`)),exports_Stream.map((entry)=>transformStreamEntry(streamKey,entry)))})}),StreamMonitorServiceLive=exports_Layer.effect(StreamMonitorService,exports_Effect.gen(function*(){let redisStreamService=yield*RedisStream,config2=yield*(yield*CLIConfigService).loadConfig();return createStreamMonitorService(redisStreamService,config2)}));var SignalHandlerService=exports_Context.GenericTag("SignalHandlerService"),createSignalHandler=()=>{let state={shutdownInProgress:!1},gracefulShutdown=()=>exports_Effect.gen(function*(){if(state.shutdownInProgress)return;return state.shutdownInProgress=!0,yield*exports_Console.error("\uD83D\uDED1 Shutting down redistail..."),yield*exports_Effect.sleep("100 millis"),yield*exports_Console.error("✅ Shutdown complete"),yield*exports_Effect.sync(()=>process.exit(0))}),handleShutdownSignal=(signal)=>exports_Effect.gen(function*(){if(state.shutdownInProgress)return;state.shutdownInProgress=!0,yield*exports_Console.error(`
110
+ \uD83D\uDED1 Received ${signal}, shutting down gracefully...`),yield*gracefulShutdown()});return{setupSignalHandlers:()=>exports_Effect.sync(()=>{process.on("SIGINT",()=>{exports_Effect.runSync(handleShutdownSignal("SIGINT"))}),process.on("SIGTERM",()=>{exports_Effect.runSync(handleShutdownSignal("SIGTERM"))}),process.on("uncaughtException",(error3)=>{exports_Effect.runSync(exports_Effect.gen(function*(){yield*exports_Console.error(`❌ Uncaught exception: ${error3.message}`),yield*gracefulShutdown()}))}),process.on("unhandledRejection",(reason)=>{exports_Effect.runSync(exports_Effect.gen(function*(){yield*exports_Console.error(`❌ Unhandled rejection: ${reason}`),yield*gracefulShutdown()}))})}),gracefulShutdown,isShutdownRequested:()=>exports_Effect.sync(()=>state.shutdownInProgress)}},SignalHandlerServiceLive=exports_Layer.succeed(SignalHandlerService,createSignalHandler());var RedistailConfigTag=exports_Context.GenericTag("@redistail/RedistailConfig"),RedistailConfigLive=exports_Layer.effect(RedistailConfigTag,exports_Effect.gen(function*(){return yield*(yield*CLIConfigService).loadConfig()})),RedisConnectionLive=exports_Layer.effect(RedisConnectionOptions,exports_Effect.gen(function*(){let config2=yield*RedistailConfigTag;return{options:{url:config2.redis.url??`redis://${config2.redis.host}:${config2.redis.port}`,socket:{connectTimeout:config2.redis.timeout,reconnectStrategy:(retries)=>{if(retries>=config2.redis.retryAttempts)return!1;return Math.min(config2.redis.retryDelay*2**retries,30000)}},commandsQueueMaxLength:1000},createClient:void 0}})),DisplayServiceLive2=exports_Layer.effect(DisplayServiceTag,exports_Effect.gen(function*(){let config2=yield*RedistailConfigTag;return createTestDisplayService(config2)}));var ConfigLayer=exports_Layer.provide(RedistailConfigLive,CLIConfigServiceLive),ConnectionLayer=exports_Layer.provide(RedisConnectionLive,ConfigLayer),RedisPubSubServiceLayer=exports_Layer.provide(RedisPubSubLive,ConnectionLayer),RedisStreamServiceLayer=exports_Layer.provide(RedisStreamLive,ConnectionLayer),RequiredRedisServicesLayer=exports_Layer.mergeAll(RedisPubSubServiceLayer,RedisStreamServiceLayer),DisplayLayer=exports_Layer.provide(DisplayServiceLive2,ConfigLayer),PubSubMonitorLayer=exports_Layer.provide(PubSubMonitorServiceLive,exports_Layer.merge(RedisPubSubServiceLayer,CLIConfigServiceLive)),StreamMonitorLayer=exports_Layer.provide(StreamMonitorServiceLive,exports_Layer.merge(RedisStreamServiceLayer,CLIConfigServiceLive)),AppLive=exports_Layer.mergeAll(CLIConfigServiceLive,SignalHandlerServiceLive,ConfigLayer,DisplayLayer,RequiredRedisServicesLayer,PubSubMonitorLayer,StreamMonitorLayer),PubSubAppLive=(()=>{let configLayer=exports_Layer.provide(RedistailConfigLive,CLIConfigServiceLive),connectionLayer=exports_Layer.provide(RedisConnectionLive,configLayer),displayLayer=exports_Layer.provide(DisplayServiceLive2,configLayer),pubsubLayer=exports_Layer.provide(RedisPubSubLive,connectionLayer),monitorLayer=exports_Layer.provide(PubSubMonitorServiceLive,exports_Layer.merge(pubsubLayer,CLIConfigServiceLive));return exports_Layer.mergeAll(CLIConfigServiceLive,SignalHandlerServiceLive,configLayer,displayLayer,pubsubLayer,monitorLayer)})(),StreamAppLive=(()=>{let configLayer=exports_Layer.provide(RedistailConfigLive,CLIConfigServiceLive),connectionLayer=exports_Layer.provide(RedisConnectionLive,configLayer),displayLayer=exports_Layer.provide(DisplayServiceLive2,configLayer),streamLayer=exports_Layer.provide(RedisStreamLive,connectionLayer),monitorLayer=exports_Layer.provide(StreamMonitorServiceLive,exports_Layer.merge(streamLayer,CLIConfigServiceLive));return exports_Layer.mergeAll(CLIConfigServiceLive,SignalHandlerServiceLive,configLayer,displayLayer,streamLayer,monitorLayer)})();var redistailProgram=(args3)=>exports_Effect.gen(function*(){let cliConfigService=yield*CLIConfigService,cliConfig=yield*cliConfigService.parseArgs(args3);if(cliConfig.help){yield*cliConfigService.showHelp();return}if(cliConfig.version){yield*cliConfigService.showVersion();return}yield*(yield*SignalHandlerService).setupSignalHandlers();let displayService=yield*DisplayServiceTag;yield*startMonitoring(cliConfig,displayService)}),startMonitoring=(cliConfig,displayService)=>exports_Effect.gen(function*(){if(!cliConfig.topicName||cliConfig.topicName.trim().length===0)return yield*displayService.outputError("❌ Error: Topic name cannot be empty"),yield*exports_Effect.fail(Error("Invalid topic name"));let topicName=cliConfig.topicName.trim();if(yield*displayService.outputError(`\uD83D\uDD17 Connecting to Redis ${cliConfig.connectionType} monitoring for topic: ${topicName}`),cliConfig.connectionType==="pubsub")yield*startPubSubMonitoring(topicName,displayService);else yield*startStreamMonitoring(topicName,displayService)}),startPubSubMonitoring=(channel,displayService)=>exports_Effect.gen(function*(){let pubSubMonitor=yield*PubSubMonitorService;yield*displayService.outputError(`✅ Connected to PubSub channel: ${channel}`),yield*displayService.outputError("\uD83D\uDCE1 Waiting for messages... (Press Ctrl+C to exit)");let messageStream=pubSubMonitor.monitor(channel).pipe(exports_Stream.mapEffect((message)=>displayService.formatPubSubMessage(message)),exports_Stream.mapEffect((formatted)=>displayService.outputMessage(formatted)),exports_Stream.retry(pipe(exports_Schedule.exponential(exports_Duration.seconds(1)),exports_Schedule.intersect(exports_Schedule.recurs(5)),exports_Schedule.tapInput((error3)=>displayService.outputError(`⚠️ Connection error, retrying... ${String(error3)}`)))),exports_Stream.catchAll((error3)=>exports_Stream.fromEffect(pipe(exports_Effect.all([displayService.outputError(`❌ Fatal error in PubSub monitoring: ${String(error3)}`),displayService.outputError("\uD83D\uDCA1 Check Redis connection and try again")]),exports_Effect.asVoid))));yield*exports_Stream.runDrain(messageStream)}),startStreamMonitoring=(streamKey,displayService)=>exports_Effect.gen(function*(){let streamMonitor=yield*StreamMonitorService;yield*displayService.outputError(`✅ Connected to Stream: ${streamKey}`),yield*displayService.outputError("\uD83D\uDCE1 Waiting for stream entries... (Press Ctrl+C to exit)");let messageStream=streamMonitor.monitor(streamKey).pipe(exports_Stream.mapEffect((message)=>displayService.formatStreamMessage(message)),exports_Stream.mapEffect((formatted)=>displayService.outputMessage(formatted)),exports_Stream.retry(pipe(exports_Schedule.exponential(exports_Duration.seconds(1)),exports_Schedule.intersect(exports_Schedule.recurs(5)),exports_Schedule.tapInput((error3)=>displayService.outputError(`⚠️ Connection error, retrying... ${String(error3)}`)))),exports_Stream.catchAll((error3)=>exports_Stream.fromEffect(pipe(exports_Effect.all([displayService.outputError(`❌ Fatal error in Stream monitoring: ${String(error3)}`),displayService.outputError("\uD83D\uDCA1 Check Redis connection and stream name, then try again")]),exports_Effect.asVoid))));yield*exports_Stream.runDrain(messageStream)}),cliMain=(args3)=>{let hasHelpFlag=args3.includes("--help")||args3.includes("-h"),hasVersionFlag=args3.includes("--version")||args3.includes("-v"),hasMissingArgs=args3.length<2&&!hasHelpFlag&&!hasVersionFlag;if(hasHelpFlag||hasVersionFlag||hasMissingArgs){let simpleProgram=exports_Effect.gen(function*(){let cliConfigService=yield*CLIConfigService;if(hasHelpFlag){yield*cliConfigService.showHelp();return}if(hasVersionFlag){yield*cliConfigService.showVersion();return}if(hasMissingArgs)return yield*exports_Console.error("❌ CLI Error: Missing required arguments. Usage: redistail <pubsub|stream> <topic-name>"),yield*exports_Console.error("\uD83D\uDCA1 Use --help for usage information"),yield*exports_Effect.sync(()=>process.exit(1))});return exports_Effect.provide(simpleProgram,CLIConfigServiceLive)}let connectionType=args3[0],programWithErrorHandling=pipe(redistailProgram(args3),exports_Effect.catchAll((error3)=>exports_Effect.gen(function*(){if(typeof error3==="object"&&error3!==null&&"_tag"in error3){let taggedError=error3;switch(taggedError._tag){case"CLIError":yield*exports_Console.error(`❌ CLI Error: ${taggedError.message||String(error3)}`),yield*exports_Console.error("\uD83D\uDCA1 Use --help for usage information");break;case"ConfigError":yield*exports_Console.error(`❌ Configuration Error: ${taggedError.message||String(error3)}`),yield*exports_Console.error("\uD83D\uDCA1 Check environment variables and Redis connection settings");break;case"MonitoringError":yield*exports_Console.error(`❌ Monitoring Error: ${taggedError.message||String(error3)}`),yield*exports_Console.error("\uD83D\uDCA1 Check Redis server availability and topic names");break;default:yield*exports_Console.error(`❌ Unexpected Error: ${String(error3)}`)}}else yield*exports_Console.error(`❌ Error: ${String(error3)}`);return yield*exports_Effect.sync(()=>process.exit(1))})));if(connectionType==="pubsub")return exports_Effect.provide(programWithErrorHandling,PubSubAppLive);if(connectionType==="stream")return exports_Effect.provide(programWithErrorHandling,StreamAppLive);let errorProgram=exports_Effect.gen(function*(){return yield*exports_Console.error(`❌ CLI Error: Invalid connection type '${connectionType}'. Must be 'pubsub' or 'stream'`),yield*exports_Console.error("\uD83D\uDCA1 Use --help for usage information"),yield*exports_Effect.sync(()=>process.exit(1))});return exports_Effect.provide(errorProgram,CLIConfigServiceLive)};if(__require.main==__require.module){let args3=process.argv.slice(2);exports_BunRuntime.runMain(cliMain(args3))}export{redistailProgram,cliMain,StreamMonitorService,StreamAppLive,SignalHandlerService,PubSubMonitorService,PubSubAppLive,DisplayServiceTag,CLIConfigService,AppLive};