effect-redis 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import{createRequire}from"node:module";var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;var __toESM=(mod,isNodeMode,target)=>{target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:()=>mod[key],enumerable:!0});return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);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 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});var require_errors=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.MultiErrorReply=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(timeout3){super(`Socket timeout timeout. Expecting data, but didn't receive any in ${timeout3}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{constructor(message){super(message);this.stack=void 0}}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 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});var 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(config){this.onReply=config.onReply,this.onErrorReply=config.onErrorReply,this.onPush=config.onPush,this.getTypeMapping=config.getTypeMapping}reset(){this.#cursor=0,this.#next=void 0}write(chunk2){if(this.#cursor>=chunk2.length){this.#cursor-=chunk2.length;return}if(this.#next){if(this.#next(chunk2)||this.#cursor>=chunk2.length){this.#cursor-=chunk2.length;return}}do{let type=chunk2[this.#cursor];if(++this.#cursor===chunk2.length){this.#next=this.#continueDecodeTypeValue.bind(this,type);break}if(this.#decodeTypeValue(type,chunk2))break}while(this.#cursor<chunk2.length);this.#cursor-=chunk2.length}#continueDecodeTypeValue(type,chunk2){return this.#next=void 0,this.#decodeTypeValue(type,chunk2)}#decodeTypeValue(type,chunk2){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(chunk2));case exports.RESP_TYPES.NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeNumber(this.getTypeMapping()[exports.RESP_TYPES.NUMBER],chunk2));case exports.RESP_TYPES.BIG_NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeBigNumber(this.getTypeMapping()[exports.RESP_TYPES.BIG_NUMBER],chunk2));case exports.RESP_TYPES.DOUBLE:return this.#handleDecodedValue(this.onReply,this.#decodeDouble(this.getTypeMapping()[exports.RESP_TYPES.DOUBLE],chunk2));case exports.RESP_TYPES.SIMPLE_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeSimpleString(this.getTypeMapping()[exports.RESP_TYPES.SIMPLE_STRING],chunk2));case exports.RESP_TYPES.BLOB_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeBlobString(this.getTypeMapping()[exports.RESP_TYPES.BLOB_STRING],chunk2));case exports.RESP_TYPES.VERBATIM_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeVerbatimString(this.getTypeMapping()[exports.RESP_TYPES.VERBATIM_STRING],chunk2));case exports.RESP_TYPES.SIMPLE_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeSimpleError(chunk2));case exports.RESP_TYPES.BLOB_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeBlobError(chunk2));case exports.RESP_TYPES.ARRAY:return this.#handleDecodedValue(this.onReply,this.#decodeArray(this.getTypeMapping(),chunk2));case exports.RESP_TYPES.SET:return this.#handleDecodedValue(this.onReply,this.#decodeSet(this.getTypeMapping(),chunk2));case exports.RESP_TYPES.MAP:return this.#handleDecodedValue(this.onReply,this.#decodeMap(this.getTypeMapping(),chunk2));case exports.RESP_TYPES.PUSH:return this.#handleDecodedValue(this.onPush,this.#decodeArray(exports.PUSH_TYPE_MAPPING,chunk2));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,next,chunk2){return this.#next=void 0,this.#handleDecodedValue(cb,next(chunk2))}#decodeNull(){return this.#cursor+=2,null}#decodeBoolean(chunk2){let boolean=chunk2[this.#cursor]===ASCII.t;return this.#cursor+=3,boolean}#decodeNumber(type,chunk2){if(type===String)return this.#decodeSimpleString(String,chunk2);switch(chunk2[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeNumberValue(!1,chunk2);case ASCII["-"]:return this.#maybeDecodeNumberValue(!0,chunk2);default:return this.#decodeNumberValue(!1,this.#decodeUnsingedNumber.bind(this,0),chunk2)}}#maybeDecodeNumberValue(isNegative,chunk2){let cb=this.#decodeUnsingedNumber.bind(this,0);return++this.#cursor===chunk2.length?this.#decodeNumberValue.bind(this,isNegative,cb):this.#decodeNumberValue(isNegative,cb,chunk2)}#decodeNumberValue(isNegative,numberCb,chunk2){let number3=numberCb(chunk2);return typeof number3==="function"?this.#decodeNumberValue.bind(this,isNegative,number3):isNegative?-number3:number3}#decodeUnsingedNumber(number3,chunk2){let cursor=this.#cursor;do{let byte=chunk2[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,number3;number3=number3*10+byte-ASCII["0"]}while(++cursor<chunk2.length);return this.#cursor=cursor,this.#decodeUnsingedNumber.bind(this,number3)}#decodeBigNumber(type,chunk2){if(type===String)return this.#decodeSimpleString(String,chunk2);switch(chunk2[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeBigNumberValue(!1,chunk2);case ASCII["-"]:return this.#maybeDecodeBigNumberValue(!0,chunk2);default:return this.#decodeBigNumberValue(!1,this.#decodeUnsingedBigNumber.bind(this,0n),chunk2)}}#maybeDecodeBigNumberValue(isNegative,chunk2){let cb=this.#decodeUnsingedBigNumber.bind(this,0n);return++this.#cursor===chunk2.length?this.#decodeBigNumberValue.bind(this,isNegative,cb):this.#decodeBigNumberValue(isNegative,cb,chunk2)}#decodeBigNumberValue(isNegative,bigNumberCb,chunk2){let bigNumber=bigNumberCb(chunk2);return typeof bigNumber==="function"?this.#decodeBigNumberValue.bind(this,isNegative,bigNumber):isNegative?-bigNumber:bigNumber}#decodeUnsingedBigNumber(bigNumber,chunk2){let cursor=this.#cursor;do{let byte=chunk2[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,bigNumber;bigNumber=bigNumber*10n+BigInt(byte-ASCII["0"])}while(++cursor<chunk2.length);return this.#cursor=cursor,this.#decodeUnsingedBigNumber.bind(this,bigNumber)}#decodeDouble(type,chunk2){if(type===String)return this.#decodeSimpleString(String,chunk2);switch(chunk2[this.#cursor]){case ASCII.n:return this.#cursor+=5,NaN;case ASCII["+"]:return this.#maybeDecodeDoubleInteger(!1,chunk2);case ASCII["-"]:return this.#maybeDecodeDoubleInteger(!0,chunk2);default:return this.#decodeDoubleInteger(!1,0,chunk2)}}#maybeDecodeDoubleInteger(isNegative,chunk2){return++this.#cursor===chunk2.length?this.#decodeDoubleInteger.bind(this,isNegative,0):this.#decodeDoubleInteger(isNegative,0,chunk2)}#decodeDoubleInteger(isNegative,integer,chunk2){if(chunk2[this.#cursor]===ASCII.i)return this.#cursor+=5,isNegative?-1/0:1/0;return this.#continueDecodeDoubleInteger(isNegative,integer,chunk2)}#continueDecodeDoubleInteger(isNegative,integer,chunk2){let cursor=this.#cursor;do{let byte=chunk2[cursor];switch(byte){case ASCII["."]:return this.#cursor=cursor+1,this.#cursor<chunk2.length?this.#decodeDoubleDecimal(isNegative,0,integer,chunk2):this.#decodeDoubleDecimal.bind(this,isNegative,0,integer);case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let i=isNegative?-integer:integer;return this.#cursor<chunk2.length?this.#decodeDoubleExponent(i,chunk2):this.#decodeDoubleExponent.bind(this,i);case ASCII["\r"]:return this.#cursor=cursor+2,isNegative?-integer:integer;default:integer=integer*10+byte-ASCII["0"]}}while(++cursor<chunk2.length);return this.#cursor=cursor,this.#continueDecodeDoubleInteger.bind(this,isNegative,integer)}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,chunk2){let cursor=this.#cursor;do{let byte=chunk2[cursor];switch(byte){case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let d=isNegative?-double:double;return this.#cursor===chunk2.length?this.#decodeDoubleExponent.bind(this,d):this.#decodeDoubleExponent(d,chunk2);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<chunk2.length);return this.#cursor=cursor,this.#decodeDoubleDecimal.bind(this,isNegative,decimalIndex,double)}#decodeDoubleExponent(double,chunk2){switch(chunk2[this.#cursor]){case ASCII["+"]:return++this.#cursor===chunk2.length?this.#continueDecodeDoubleExponent.bind(this,!1,double,0):this.#continueDecodeDoubleExponent(!1,double,0,chunk2);case ASCII["-"]:return++this.#cursor===chunk2.length?this.#continueDecodeDoubleExponent.bind(this,!0,double,0):this.#continueDecodeDoubleExponent(!0,double,0,chunk2)}return this.#continueDecodeDoubleExponent(!1,double,0,chunk2)}#continueDecodeDoubleExponent(isNegative,double,exponent,chunk2){let cursor=this.#cursor;do{let byte=chunk2[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,double*10**(isNegative?-exponent:exponent);exponent=exponent*10+byte-ASCII["0"]}while(++cursor<chunk2.length);return this.#cursor=cursor,this.#continueDecodeDoubleExponent.bind(this,isNegative,double,exponent)}#findCRLF(chunk2,cursor){while(chunk2[cursor]!==ASCII["\r"])if(++cursor===chunk2.length)return this.#cursor=chunk2.length,-1;return this.#cursor=cursor+2,cursor}#decodeSimpleString(type,chunk2){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk2,start3);if(crlfIndex===-1)return this.#continueDecodeSimpleString.bind(this,[chunk2.subarray(start3)],type);let slice=chunk2.subarray(start3,crlfIndex);return type===Buffer?slice:slice.toString()}#continueDecodeSimpleString(chunks,type,chunk2){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk2,start3);if(crlfIndex===-1)return chunks.push(chunk2.subarray(start3)),this.#continueDecodeSimpleString.bind(this,chunks,type);return chunks.push(chunk2.subarray(start3,crlfIndex)),type===Buffer?Buffer.concat(chunks):chunks.join("")}#decodeBlobString(type,chunk2){if(chunk2[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;let length2=this.#decodeUnsingedNumber(0,chunk2);if(typeof length2==="function")return this.#continueDecodeBlobStringLength.bind(this,length2,type);else if(this.#cursor>=chunk2.length)return this.#decodeBlobStringWithLength.bind(this,length2,type);return this.#decodeBlobStringWithLength(length2,type,chunk2)}#continueDecodeBlobStringLength(lengthCb,type,chunk2){let length2=lengthCb(chunk2);if(typeof length2==="function")return this.#continueDecodeBlobStringLength.bind(this,length2,type);else if(this.#cursor>=chunk2.length)return this.#decodeBlobStringWithLength.bind(this,length2,type);return this.#decodeBlobStringWithLength(length2,type,chunk2)}#decodeStringWithLength(length2,skip,type,chunk2){let end3=this.#cursor+length2;if(end3>=chunk2.length){let slice2=chunk2.subarray(this.#cursor);return this.#cursor=chunk2.length,this.#continueDecodeStringWithLength.bind(this,length2-slice2.length,[slice2],skip,type)}let slice=chunk2.subarray(this.#cursor,end3);return this.#cursor=end3+skip,type===Buffer?slice:slice.toString()}#continueDecodeStringWithLength(length2,chunks,skip,type,chunk2){let end3=this.#cursor+length2;if(end3>=chunk2.length){let slice=chunk2.subarray(this.#cursor);return chunks.push(slice),this.#cursor=chunk2.length,this.#continueDecodeStringWithLength.bind(this,length2-slice.length,chunks,skip,type)}return chunks.push(chunk2.subarray(this.#cursor,end3)),this.#cursor=end3+skip,type===Buffer?Buffer.concat(chunks):chunks.join("")}#decodeBlobStringWithLength(length2,type,chunk2){return this.#decodeStringWithLength(length2,2,type,chunk2)}#decodeVerbatimString(type,chunk2){return this.#continueDecodeVerbatimStringLength(this.#decodeUnsingedNumber.bind(this,0),type,chunk2)}#continueDecodeVerbatimStringLength(lengthCb,type,chunk2){let length2=lengthCb(chunk2);return typeof length2==="function"?this.#continueDecodeVerbatimStringLength.bind(this,length2,type):this.#decodeVerbatimStringWithLength(length2,type,chunk2)}#decodeVerbatimStringWithLength(length2,type,chunk2){let stringLength=length2-4;if(type===verbatim_string_1.VerbatimString)return this.#decodeVerbatimStringFormat(stringLength,chunk2);return this.#cursor+=4,this.#cursor>=chunk2.length?this.#decodeBlobStringWithLength.bind(this,stringLength,type):this.#decodeBlobStringWithLength(stringLength,type,chunk2)}#decodeVerbatimStringFormat(stringLength,chunk2){let formatCb=this.#decodeStringWithLength.bind(this,3,1,String);return this.#cursor>=chunk2.length?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,formatCb):this.#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk2)}#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk2){let format4=formatCb(chunk2);return typeof format4==="function"?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,format4):this.#decodeVerbatimStringWithFormat(stringLength,format4,chunk2)}#decodeVerbatimStringWithFormat(stringLength,format4,chunk2){return this.#continueDecodeVerbatimStringWithFormat(format4,this.#decodeBlobStringWithLength.bind(this,stringLength,String),chunk2)}#continueDecodeVerbatimStringWithFormat(format4,stringCb,chunk2){let string2=stringCb(chunk2);return typeof string2==="function"?this.#continueDecodeVerbatimStringWithFormat.bind(this,format4,string2):new verbatim_string_1.VerbatimString(format4,string2)}#decodeSimpleError(chunk2){let string2=this.#decodeSimpleString(String,chunk2);return typeof string2==="function"?this.#continueDecodeSimpleError.bind(this,string2):new errors_1.SimpleError(string2)}#continueDecodeSimpleError(stringCb,chunk2){let string2=stringCb(chunk2);return typeof string2==="function"?this.#continueDecodeSimpleError.bind(this,string2):new errors_1.SimpleError(string2)}#decodeBlobError(chunk2){let string2=this.#decodeBlobString(String,chunk2);return typeof string2==="function"?this.#continueDecodeBlobError.bind(this,string2):new errors_1.BlobError(string2)}#continueDecodeBlobError(stringCb,chunk2){let string2=stringCb(chunk2);return typeof string2==="function"?this.#continueDecodeBlobError.bind(this,string2):new errors_1.BlobError(string2)}#decodeNestedType(typeMapping,chunk2){let type=chunk2[this.#cursor];return++this.#cursor===chunk2.length?this.#decodeNestedTypeValue.bind(this,type,typeMapping):this.#decodeNestedTypeValue(type,typeMapping,chunk2)}#decodeNestedTypeValue(type,typeMapping,chunk2){switch(type){case exports.RESP_TYPES.NULL:return this.#decodeNull();case exports.RESP_TYPES.BOOLEAN:return this.#decodeBoolean(chunk2);case exports.RESP_TYPES.NUMBER:return this.#decodeNumber(typeMapping[exports.RESP_TYPES.NUMBER],chunk2);case exports.RESP_TYPES.BIG_NUMBER:return this.#decodeBigNumber(typeMapping[exports.RESP_TYPES.BIG_NUMBER],chunk2);case exports.RESP_TYPES.DOUBLE:return this.#decodeDouble(typeMapping[exports.RESP_TYPES.DOUBLE],chunk2);case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(typeMapping[exports.RESP_TYPES.SIMPLE_STRING],chunk2);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(typeMapping[exports.RESP_TYPES.BLOB_STRING],chunk2);case exports.RESP_TYPES.VERBATIM_STRING:return this.#decodeVerbatimString(typeMapping[exports.RESP_TYPES.VERBATIM_STRING],chunk2);case exports.RESP_TYPES.SIMPLE_ERROR:return this.#decodeSimpleError(chunk2);case exports.RESP_TYPES.BLOB_ERROR:return this.#decodeBlobError(chunk2);case exports.RESP_TYPES.ARRAY:return this.#decodeArray(typeMapping,chunk2);case exports.RESP_TYPES.SET:return this.#decodeSet(typeMapping,chunk2);case exports.RESP_TYPES.MAP:return this.#decodeMap(typeMapping,chunk2);default:throw Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#decodeArray(typeMapping,chunk2){if(chunk2[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;return this.#decodeArrayWithLength(this.#decodeUnsingedNumber(0,chunk2),typeMapping,chunk2)}#decodeArrayWithLength(length2,typeMapping,chunk2){return typeof length2==="function"?this.#continueDecodeArrayLength.bind(this,length2,typeMapping):this.#decodeArrayItems(Array(length2),0,typeMapping,chunk2)}#continueDecodeArrayLength(lengthCb,typeMapping,chunk2){return this.#decodeArrayWithLength(lengthCb(chunk2),typeMapping,chunk2)}#decodeArrayItems(array4,filled,typeMapping,chunk2){for(let i=filled;i<array4.length;i++){if(this.#cursor>=chunk2.length)return this.#decodeArrayItems.bind(this,array4,i,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk2);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array4,i,item,typeMapping);array4[i]=item}return array4}#continueDecodeArrayItems(array4,filled,itemCb,typeMapping,chunk2){let item=itemCb(chunk2);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array4,filled,item,typeMapping);return array4[filled++]=item,this.#decodeArrayItems(array4,filled,typeMapping,chunk2)}#decodeSet(typeMapping,chunk2){let length2=this.#decodeUnsingedNumber(0,chunk2);if(typeof length2==="function")return this.#continueDecodeSetLength.bind(this,length2,typeMapping);return this.#decodeSetItems(length2,typeMapping,chunk2)}#continueDecodeSetLength(lengthCb,typeMapping,chunk2){let length2=lengthCb(chunk2);return typeof length2==="function"?this.#continueDecodeSetLength.bind(this,length2,typeMapping):this.#decodeSetItems(length2,typeMapping,chunk2)}#decodeSetItems(length2,typeMapping,chunk2){return typeMapping[exports.RESP_TYPES.SET]===Set?this.#decodeSetAsSet(new Set,length2,typeMapping,chunk2):this.#decodeArrayItems(Array(length2),0,typeMapping,chunk2)}#decodeSetAsSet(set6,remaining,typeMapping,chunk2){while(remaining>0){if(this.#cursor>=chunk2.length)return this.#decodeSetAsSet.bind(this,set6,remaining,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk2);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set6,remaining,item,typeMapping);set6.add(item),--remaining}return set6}#continueDecodeSetAsSet(set6,remaining,itemCb,typeMapping,chunk2){let item=itemCb(chunk2);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set6,remaining,item,typeMapping);return set6.add(item),this.#decodeSetAsSet(set6,remaining-1,typeMapping,chunk2)}#decodeMap(typeMapping,chunk2){let length2=this.#decodeUnsingedNumber(0,chunk2);if(typeof length2==="function")return this.#continueDecodeMapLength.bind(this,length2,typeMapping);return this.#decodeMapItems(length2,typeMapping,chunk2)}#continueDecodeMapLength(lengthCb,typeMapping,chunk2){let length2=lengthCb(chunk2);return typeof length2==="function"?this.#continueDecodeMapLength.bind(this,length2,typeMapping):this.#decodeMapItems(length2,typeMapping,chunk2)}#decodeMapItems(length2,typeMapping,chunk2){switch(typeMapping[exports.RESP_TYPES.MAP]){case Map:return this.#decodeMapAsMap(new Map,length2,typeMapping,chunk2);case Array:return this.#decodeArrayItems(Array(length2*2),0,typeMapping,chunk2);default:return this.#decodeMapAsObject(Object.create(null),length2,typeMapping,chunk2)}}#decodeMapAsMap(map13,remaining,typeMapping,chunk2){while(remaining>0){if(this.#cursor>=chunk2.length)return this.#decodeMapAsMap.bind(this,map13,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk2);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map13,remaining,key,typeMapping);if(this.#cursor>=chunk2.length)return this.#continueDecodeMapValue.bind(this,map13,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk2);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map13,remaining,key,value,typeMapping);map13.set(key,value),--remaining}return map13}#decodeMapKey(typeMapping,chunk2){let type=chunk2[this.#cursor];return++this.#cursor===chunk2.length?this.#decodeMapKeyValue.bind(this,type,typeMapping):this.#decodeMapKeyValue(type,typeMapping,chunk2)}#decodeMapKeyValue(type,typeMapping,chunk2){switch(type){case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(String,chunk2);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(String,chunk2);default:return this.#decodeNestedTypeValue(type,typeMapping,chunk2)}}#continueDecodeMapKey(map13,remaining,keyCb,typeMapping,chunk2){let key=keyCb(chunk2);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map13,remaining,key,typeMapping);if(this.#cursor>=chunk2.length)return this.#continueDecodeMapValue.bind(this,map13,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk2);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map13,remaining,key,value,typeMapping);return map13.set(key,value),this.#decodeMapAsMap(map13,remaining-1,typeMapping,chunk2)}#continueDecodeMapValue(map13,remaining,key,valueCb,typeMapping,chunk2){let value=valueCb(chunk2);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map13,remaining,key,value,typeMapping);return map13.set(key,value),this.#decodeMapAsMap(map13,remaining-1,typeMapping,chunk2)}#decodeMapAsObject(object,remaining,typeMapping,chunk2){while(remaining>0){if(this.#cursor>=chunk2.length)return this.#decodeMapAsObject.bind(this,object,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk2);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk2.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk2);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,chunk2){let key=keyCb(chunk2);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk2.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk2);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk2)}#continueDecodeMapAsObjectValue(object,remaining,key,valueCb,typeMapping,chunk2){let value=valueCb(chunk2);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk2)}}exports.Decoder=Decoder;_a=Decoder});var require_lua_script=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.scriptSha1=exports.defineScript=void 0;var node_crypto_1=__require("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});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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});var 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,range){parser.push(range.start.toString(),range.end.toString())}function parseSlotRangesArguments(parser,ranges){if(Array.isArray(ranges))for(let range of ranges)parseSlotRangeArguments(parser,range);else parseSlotRangeArguments(parser,ranges)}exports.parseSlotRangesArguments=parseSlotRangesArguments;function transformRangeReply([start3,end3]){return{start:start3,end:end3}}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[id,message]=reply;return{id,message:transformTuplesReply(message,void 0,typeMapping)}}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});var 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,count){if(parser.push("ACL","LOG"),count!=null)parser.push(count.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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_BITCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,range){if(parser.push("BITCOUNT"),parser.pushKey(key),range){if(parser.push(range.start.toString()),parser.push(range.end.toString()),range.mode)parser.push(range.mode)}},transformReply:void 0}});var 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}});var 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}});var 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}});var require_BITPOS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,bit,start3,end3,mode){if(parser.push("BITPOS"),parser.pushKey(key),parser.push(bit.toString()),start3!==void 0)parser.push(start3.toString());if(end3!==void 0)parser.push(end3.toString());if(mode)parser.push(mode)},transformReply:void 0}});var require_BLMOVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,sourceSide,destinationSide,timeout3){parser.push("BLMOVE"),parser.pushKeys([source,destination]),parser.push(sourceSide,destinationSide,timeout3.toString())},transformReply:void 0}});var 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}});var 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,timeout3,...args2){parser.push("BLMPOP",timeout3.toString()),(0,LMPOP_1.parseLMPopArguments)(parser,...args2)},transformReply:LMPOP_1.default.transformReply}});var require_BLPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,timeout3){parser.push("BLPOP"),parser.pushKeys(key),parser.push(timeout3.toString())},transformReply(reply){if(reply===null)return null;return{key:reply[0],element:reply[1]}}}});var 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,timeout3){parser.push("BRPOP"),parser.pushKeys(key),parser.push(timeout3.toString())},transformReply:BLPOP_1.default.transformReply}});var require_BRPOPLPUSH=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,source,destination,timeout3){parser.push("BRPOPLPUSH"),parser.pushKeys([source,destination]),parser.push(timeout3.toString())},transformReply:void 0}});var 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])}}}}});var 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,timeout3,...args2){parser.push("BZMPOP",timeout3.toString()),(0,ZMPOP_1.parseZMPopArguments)(parser,...args2)},transformReply:ZMPOP_1.default.transformReply}});var 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,timeout3){parser.push("BZPOPMAX"),parser.pushKeys(keys3),parser.push(timeout3.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]}}}}});var 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,timeout3){parser.push("BZPOPMIN"),parser.pushKeys(keys3),parser.push(timeout3.toString())},transformReply:BZPOPMAX_1.default.transformReply}});var 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}});var 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}});var 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}});var 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}});var 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 map13={};for(let item of rawReply.toString().matchAll(CLIENT_INFO_REGEX))map13[item[1]]=item[2];let reply={id:Number(map13.id),addr:map13.addr,fd:Number(map13.fd),name:map13.name,age:Number(map13.age),idle:Number(map13.idle),flags:map13.flags,db:Number(map13.db),sub:Number(map13.sub),psub:Number(map13.psub),multi:Number(map13.multi),qbuf:Number(map13.qbuf),qbufFree:Number(map13["qbuf-free"]),argvMem:Number(map13["argv-mem"]),obl:Number(map13.obl),oll:Number(map13.oll),omem:Number(map13.omem),totMem:Number(map13["tot-mem"]),events:map13.events,cmd:map13.cmd,user:map13.user,libName:map13["lib-name"],libVer:map13["lib-ver"]};if(map13.laddr!==void 0)reply.laddr=map13.laddr;if(map13.redir!==void 0)reply.redir=Number(map13.redir);if(map13.ssub!==void 0)reply.ssub=Number(map13.ssub);if(map13["multi-mem"]!==void 0)reply.multiMem=Number(map13["multi-mem"]);if(map13.resp!==void 0)reply.resp=Number(map13.resp);return reply}}});var 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 filter7 of filters)pushFilter(parser,filter7);else pushFilter(parser,filters)},transformReply:void 0};function pushFilter(parser,filter7){if(filter7===exports.CLIENT_KILL_FILTERS.SKIP_ME){parser.push("SKIPME");return}switch(parser.push(filter7.filter),filter7.filter){case exports.CLIENT_KILL_FILTERS.ADDRESS:parser.push(filter7.address);break;case exports.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:parser.push(filter7.localAddress);break;case exports.CLIENT_KILL_FILTERS.ID:parser.push(typeof filter7.id==="number"?filter7.id.toString():filter7.id);break;case exports.CLIENT_KILL_FILTERS.TYPE:parser.push(filter7.type);break;case exports.CLIENT_KILL_FILTERS.USER:parser.push(filter7.username);break;case exports.CLIENT_KILL_FILTERS.SKIP_ME:parser.push(filter7.skipMe?"yes":"no");break;case exports.CLIENT_KILL_FILTERS.MAXAGE:parser.push(filter7.maxAge.toString());break}}});var 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,filter7){if(parser.push("CLIENT","LIST"),filter7)if(filter7.TYPE!==void 0)parser.push("TYPE",filter7.TYPE);else parser.push("ID"),parser.pushVariadic(filter7.ID)},transformReply(rawReply){let split=rawReply.toString().split(`
2
- `),length2=split.length-1,reply=[];for(let i=0;i<length2;i++)reply.push(CLIENT_INFO_1.default.transformReply(split[i]));return reply}}});var 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}});var 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}});var require_CLIENT_PAUSE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,timeout3,mode){if(parser.push("CLIENT","PAUSE",timeout3.toString()),mode)parser.push(mode)},transformReply:void 0}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_CLUSTER_GETKEYSINSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slot,count){parser.push("CLUSTER","GETKEYSINSLOT",slot.toString(),count.toString())},transformReply:void 0}});var 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}});var 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}});var 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}}});var require_CLUSTER_MEET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port){parser.push("CLUSTER","MEET",host,port.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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,port,id]=node;return{host,port,id}}});var 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}});var 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}});var 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}})}}});var 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)}}});var 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}});var 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)}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_DECR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("DECR"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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)}});var 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)}}});var 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}});var 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]}})}}});var 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}});var 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}});var 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})}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_GETRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,start3,end3){parser.push("GETRANGE"),parser.pushKey(key),parser.push(start3.toString(),end3.toString())},transformReply:void 0}});var 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}});var 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}});var require_EXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,seconds2,mode){if(parser.push("EXPIRE"),parser.pushKey(key),parser.push(seconds2.toString()),mode)parser.push(mode)},transformReply:void 0}});var require_EXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var require_FUNCTION_RESTORE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,dump,options){if(parser.push("FUNCTION","RESTORE",dump),options?.mode)parser.push(options.mode)},transformReply:void 0}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_HRANDFIELD_COUNT_WITHVALUES=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count.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}})}}}});var require_HRANDFIELD_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count.toString())},transformReply:void 0}});var 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}});var 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}}}});var 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}}}});var 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}}}});var 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,map13){for(let[key,value]of map13.entries())parser.push(convertValue(key),convertValue(value))}function pushTuples(parser,tuples){for(let tuple2 of tuples){if(Array.isArray(tuple2)){pushTuples(parser,tuple2);continue}parser.push(convertValue(tuple2))}}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}});var 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,map13){parser.push(map13.size.toString());for(let[key,value]of map13.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 tuple2 of tuples){if(Array.isArray(tuple2)){_pushTuples(parser,tuple2);continue}parser.push(convertValue(tuple2))}}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}});var 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}});var 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}});var 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}});var 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}});var require_INCR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("INCR"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_LPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("LPOP"),parser.pushKey(key)},transformReply:void 0}});var 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,count){LPOP_1.default.parseCommand(parser,key),parser.push(count.toString())},transformReply:void 0}});var 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}});var 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,count,options){LPOS_1.default.parseCommand(parser,key,element,options),parser.push("COUNT",count.toString())},transformReply:void 0}});var 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}});var 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}});var require_LRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,start3,stop){parser.push("LRANGE"),parser.pushKey(key),parser.push(start3.toString(),stop.toString())},transformReply:void 0}});var require_LREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count,element){parser.push("LREM"),parser.pushKey(key),parser.push(count.toString()),parser.push(element)},transformReply:void 0}});var 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}});var require_LTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key,start3,stop){parser.push("LTRIM"),parser.pushKey(key),parser.push(start3.toString(),stop.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var require_MIGRATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,host,port,key,destinationDb,timeout3,options){parser.push("MIGRATE",host,port.toString());let isKeyArray=Array.isArray(key);if(isKeyArray)parser.push("");else parser.push(key);if(parser.push(destinationDb.toString(),timeout3.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}});var 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}}});var 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}});var 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}});var 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}});var 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 tuple2 of toSet3)parser.pushKey(tuple2[0]),parser.push(tuple2[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 tuple2 of Object.entries(toSet3))parser.pushKey(tuple2[0]),parser.push(tuple2[1])}exports.parseMSetArguments=parseMSetArguments;exports.default={IS_READ_ONLY:!0,parseCommand(parser,toSet3){return parser.push("MSET"),parseMSetArguments(parser,toSet3)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_PERSIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("PERSIST"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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()]=rawReply[i++].toString();return reply}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_REPLICAOF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port){parser.push("REPLICAOF",host,port.toString())},transformReply:void 0}});var 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}});var 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}});var 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,port,replicationOffest2]=replica;return{host,port:Number(port),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}}}}}});var require_RPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key,count){parser.push("RPOP"),parser.pushKey(key),parser.push(count.toString())},transformReply:void 0}});var require_RPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("RPOP"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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)parser.push(options.condition);else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.GET)parser.push("GET")},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_SPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count){parser.push("SPOP"),parser.pushKey(key),parser.push(count.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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,count){SRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count.toString())},transformReply:void 0}});var 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}});var 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}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_WAIT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,numberOfReplicas,timeout3){parser.push("WAIT",numberOfReplicas.toString(),timeout3.toString())},transformReply:void 0}});var require_XACK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id){parser.push("XACK"),parser.pushKey(key),parser.push(group),parser.pushVariadic(id)},transformReply:void 0}});var require_XADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.parseXAddArguments=void 0;function parseXAddArguments(optional,parser,key,id,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())}parser.push(id);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}});var 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}});var 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,group,consumer,minIdleTime,start3,options){if(parser.push("XAUTOCLAIM"),parser.pushKey(key),parser.push(group,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]}}}});var 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]}}}});var 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,group,consumer,minIdleTime,id,options){if(parser.push("XCLAIM"),parser.pushKey(key),parser.push(group,consumer,minIdleTime.toString()),parser.pushVariadic(id),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))}}});var 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}});var require_XDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,id){parser.push("XDEL"),parser.pushKey(key),parser.pushVariadic(id)},transformReply:void 0}});var require_XGROUP_CREATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id,options){if(parser.push("XGROUP","CREATE"),parser.pushKey(key),parser.push(group,id),options?.MKSTREAM)parser.push("MKSTREAM");if(options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}});var require_XGROUP_CREATECONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,consumer){parser.push("XGROUP","CREATECONSUMER"),parser.pushKey(key),parser.push(group,consumer)},transformReply:void 0}});var require_XGROUP_DELCONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,consumer){parser.push("XGROUP","DELCONSUMER"),parser.pushKey(key),parser.push(group,consumer)},transformReply:void 0}});var require_XGROUP_DESTROY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group){parser.push("XGROUP","DESTROY"),parser.pushKey(key),parser.push(group)},transformReply:void 0}});var require_XGROUP_SETID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id,options){if(parser.push("XGROUP","SETID"),parser.pushKey(key),parser.push(group,id),options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}});var require_XINFO_CONSUMERS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,group){parser.push("XINFO","CONSUMERS"),parser.pushKey(key),parser.push(group)},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}}});var 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((group)=>{let unwrapped=group;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}}});var 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[id,message]=entry;return{id,message:(0,generic_transformers_1.transformTuplesReply)(message)}}});var 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}});var require_XPENDING_RANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group,start3,end3,count,options){if(parser.push("XPENDING"),parser.pushKey(key),parser.push(group),options?.IDLE!==void 0)parser.push("IDLE",options.IDLE.toString());if(parser.push(start3,end3,count.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]}})}}});var require_XPENDING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group){parser.push("XPENDING"),parser.pushKey(key),parser.push(group)},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)}})}}}});var require_XRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.xRangeArguments=void 0;var generic_transformers_1=require_generic_transformers();function xRangeArguments(start3,end3,options){let args2=[start3,end3];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))}}});var 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}});var 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,group,consumer,streams,options){if(parser.push("XREADGROUP","GROUP",group,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");(0,XREAD_1.pushXReadStreams)(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:!0}});var 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}});var 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}});var 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())},transformReply:void 0}});var 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)}});var 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}});var 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}});var 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,min3,max5){parser.push("ZCOUNT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_ZLEXCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min3,max5){parser.push("ZLEXCOUNT"),parser.pushKey(key),parser.push(min3),parser.push(max5)},transformReply:void 0}});var 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}}});var 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,count){parser.push("ZPOPMAX"),parser.pushKey(key),parser.push(count.toString())},transformReply:generic_transformers_1.transformSortedSetReply}});var 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]}}}}});var 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,count){parser.push("ZPOPMIN"),parser.pushKey(key),parser.push(count.toString())},transformReply:generic_transformers_1.transformSortedSetReply}});var 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}});var 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}});var 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,count){ZRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count.toString())},transformReply:void 0}});var 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,count){ZRANDMEMBER_COUNT_1.default.parseCommand(parser,key,count),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}});var require_ZRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.zRangeArgument=void 0;var generic_transformers_1=require_generic_transformers();function zRangeArgument(min3,max5,options){let args2=[(0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)];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,min3,max5,options){parser.push("ZRANGE"),parser.pushKey(key),parser.pushVariadic(zRangeArgument(min3,max5,options))},transformReply:void 0}});var 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}});var 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,min3,max5,options){if(parser.push("ZRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}});var 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,min3,max5,options){if(parser.push("ZRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}});var 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}});var 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,min3,max5,options){switch(parser.push("ZRANGESTORE"),parser.pushKey(destination),parser.pushKey(source),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),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}});var 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,min3,max5){parser.push("ZREMRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var 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}});var 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]}}}}});var 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}});var 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,min3,max5){parser.push("ZREMRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var require_ZREMRANGEBYRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,start3,stop){parser.push("ZREMRANGEBYRANK"),parser.pushKey(key),parser.push(start3.toString(),stop.toString())},transformReply:void 0}});var 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}});var 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)}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}}});var require_VRANDMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count){if(parser.push("VRANDMEMBER"),parser.pushKey(key),count!==void 0)parser.push(count.toString())},transformReply:void 0}});var 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}});var 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}});var 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?.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}});var 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}}});var require_commands=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!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=__importDefault(require_CLIENT_KILL()),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=__importDefault(require_CLUSTER_FAILOVER()),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=__importDefault(require_CLUSTER_SETSLOT()),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=__importDefault(require_COMMAND_LIST()),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()),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=__importDefault(require_FLUSHALL()),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()),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()),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()),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()),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());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,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_LATEST:LATENCY_LATEST_1.default,latencyLatest:LATENCY_LATEST_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,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,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,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}});var 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=__require("node:events"),node_net_1=__importDefault(__require("node:net")),node_tls_1=__importDefault(__require("node:tls")),errors_1=require_errors(),promises_1=__require("node:timers/promises");class RedisSocket extends node_events_1.EventEmitter{#initiator;#connectTimeout;#reconnectStrategy;#socketFactory;#socketTimeout;#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{await this.#initiator()}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)}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",()=>{socket.destroy(new errors_1.SocketTimeoutError(this.#socketTimeout))}),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});var 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});var 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,config){if(this.identityProvider=identityProvider,this.config=config,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(error){if(!this.config.retry)return!1;let{maxAttempts,isRetryable}=this.config.retry;if(this.retryAttempt>=maxAttempts)return!1;if(isRetryable)return isRetryable(error,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(error){if(this.shouldRetry(error)){this.retryAttempt++;let retryDelay=this.calculateRetryDelay();this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${retryDelay}ms: ${error}`,!0),this.scheduleNextRefresh(retryDelay)}else this.notifyError(error,!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(error,isRetryable){let errorMessage=error instanceof Error?error.message:String(error);if(!this.listener)throw Error(`TokenManager is not running but received an error: ${errorMessage}`);this.listener.onError(new IDPError(errorMessage,isRetryable))}}exports.TokenManager=TokenManager});var 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});var 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}})});var require_linked_list=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.SinglyLinkedList=exports.DoublyLinkedList=void 0;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.#tail=this.#head={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,prepend4=!1){return prepend4?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=node.previous,this.#head=node.next,node.next=void 0;else this.#head=this.#tail=void 0;return node.value}remove(node){if(--this.#length,this.#tail===node)this.#tail=node.previous;if(this.#head===node)this.#head=node.next;else node.previous.next=node.next,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}}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});var require_encoder=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var CRLF=`\r
3
- `;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});var 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 current,other;if(returnBuffers)current=sets.buffers,other=sets.strings;else current=sets.strings,other=sets.buffers;if((current.has(listener)?current.size-1:current.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;this.#isActive=!0,this.#subscribing++;let callback=()=>this.#subscribing--;commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}return commands}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}#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});var 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(),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.SinglyLinkedList;#onShardedChannelMoved;#chainInExecution;decoder;#pubSub=new pub_sub_1.PubSub;get isPubSubActive(){return this.#pubSub.isActive}#invalidateCallback;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 head5=this.#waitingForReply.head.value;if(Number.isNaN(head5.channelsCounter)&&push[2]===0||--head5.channelsCounter===0)this.#waitingForReply.shift().resolve();return!0}}#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)=>{if(!this.#onPush(push))switch(push[0].toString()){case"invalidate":{if(this.#invalidateCallback)if(push[1]!==null)for(let key of push[1])this.#invalidateCallback(key);else this.#invalidateCallback(null);break}}},getTypeMapping:()=>this.#getTypeMapping()})}setInvalidateCallback(callback){this.#invalidateCallback=callback}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},timeout3=options?.timeout;if(timeout3){let signal2=AbortSignal.timeout(timeout3);value.timeout={signal:signal2,listener:()=>{this.#toWrite.remove(node),value.reject(new errors_1.TimeoutError)}},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(),buffer=reply[1].length===0?reply[0]:reply[1];resolve(typeMapping?.[decoder_1.RESP_TYPES.SIMPLE_STRING]===Buffer?buffer:buffer.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)}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});var 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}){let RESP=config?.RESP??2,Class4=class extends BaseClass{};for(let[name,command]of Object.entries(commands))if(config?.RESP==3&&command.unstableResp3&&!config.unstableResp3)Class4.prototype[name]=throwResp3SearchModuleUnstableError;else Class4.prototype[name]=createCommand(command,RESP);if(config?.modules)for(let[moduleName,module2]of Object.entries(config.modules)){let fns=Object.create(null);for(let[name,command]of Object.entries(module2))if(config.RESP==3&&command.unstableResp3&&!config.unstableResp3)fns[name]=throwResp3SearchModuleUnstableError;else fns[name]=createModuleCommand(command,RESP);attachNamespace(Class4.prototype,moduleName,fns)}if(config?.functions)for(let[library,commands2]of Object.entries(config.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(config?.scripts)for(let[name,script]of Object.entries(config.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});var 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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisClientMultiCommand,commands:commands_1.default,createCommand:RedisClientMultiCommand.#createCommand,createModuleCommand:RedisClientMultiCommand.#createModuleCommand,createFunctionCommand:RedisClientMultiCommand.#createFunctionCommand,createScriptCommand:RedisClientMultiCommand.#createScriptCommand,config})}#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});var 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))}}});var 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=__require("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(count){}recordMisses(count){}recordLoadSuccess(loadTime){}recordLoadFailure(loadTime){}recordEvictions(count){}snapshot(){return CacheStats.empty()}}function disabledStatsCounter(){return DisabledStatsCounter.INSTANCE}class DefaultStatsCounter{#hitCount=0;#missCount=0;#loadSuccessCount=0;#loadFailureCount=0;#totalLoadTime=0;#evictionCount=0;recordHits(count){this.#hitCount+=count}recordMisses(count){this.#missCount+=count}recordLoadSuccess(loadTime){this.#loadSuccessCount++,this.#totalLoadTime+=loadTime}recordLoadFailure(loadTime){this.#loadFailureCount++,this.#totalLoadTime+=loadTime}recordEvictions(count){this.#evictionCount+=count}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(count){this.#statsCounter.recordEvictions(count)}recordHits(count){this.#statsCounter.recordHits(count)}recordMisses(count){this.#statsCounter.recordMisses(count)}constructor(config){super();this.#cacheKeyToEntryMap=new Map,this.#keyToCacheKeySetMap=new Map,this.ttl=config?.ttl??0,this.maxEntries=config?.maxEntries??0,this.lru=config?.evictPolicy!=="FIFO";let recordStats=config?.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 count=this.#cacheKeyToEntryMap.size,oldEntry=this.#cacheKeyToEntryMap.get(cacheKey);if(oldEntry)count--,oldEntry.invalidate();if(this.maxEntries>0&&count>=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});var 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}}});var 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=__require("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}=this._self.#tasksQueue;if(!client){let timeout3;if(this._self.#options.acquireTimeout>0)timeout3=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail),reject(new errors_1.TimeoutError("Timeout waiting for a client"))},this._self.#options.acquireTimeout);let task=this._self.#tasksQueue.push({timeout:timeout3,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),result.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});var require_package=__commonJS((exports,module)=>{module.exports={name:"@redis/client",version:"5.5.6",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"]}});var 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=__require("node:events"),commander_1=require_commander(),errors_1=require_errors(),node_url_1=__require("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();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(config){let Client=_a.#SingleEntryCache.get(config);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}),Client.prototype.Multi=multi_command_1.default.extend(config),_a.#SingleEntryCache.set(config,Client);return(options)=>{return Object.create(new Client(options))}}static create(options){return _a.factory(options)(options)}static parseURL(url){let{hostname,port,protocol,username,password,pathname}=new node_url_1.URL(url),parsed={socket:{host:hostname}};if(protocol==="rediss:")parsed.socket.tls=!0;else if(protocol!=="redis:")throw TypeError("Invalid protocol");if(port)parsed.socket.port=Number(port);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;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(),options?.clientSideCache){if(options.clientSideCache instanceof cache_1.ClientSideCacheProvider)this.#clientSideCache=options.clientSideCache;else{let cscConfig=options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.setInvalidateCallback(this.#clientSideCache.invalidate.bind(this.#clientSideCache))}}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching 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?.url){let parsed=_a.parseURL(options.url);if(options.socket)parsed.socket=Object.assign(options.socket,parsed.socket);Object.assign(options,parsed)}if(options?.database)this._self.#selectedDB=options.database;if(options?.commandOptions)this._commandOptions=options.commandOptions;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((error)=>{let errorMessage=error instanceof Error?error.message:String(error);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()});return commands}#initiateSocket(){let socketInitiator=async()=>{let promises=[],chainId=Symbol("Socket Initiator"),resubscribePromise=this.#queue.resubscribe(chainId);if(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)};return new socket_1.default(socketInitiator,this.#options?.socket).on("data",(chunk2)=>{try{this.#queue.decoder.write(chunk2)}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"))}#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}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(){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});var 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}});var 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,emit){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=emit}async connect(){if(this.#isOpen)throw Error("Cluster already open");this.#isOpen=!0;try{await this.#discoverWithRootNodes()}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){return this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket:this.#getNodeAddress(node.address)??{host:node.host,port:node.port},readonly})).on("error",(err)=>console.error(err))}#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()}*#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)}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(){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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisClusterMultiCommand,commands:commands_1.default,createCommand:RedisClusterMultiCommand.#createCommand,createModuleCommand:RedisClusterMultiCommand.#createModuleCommand,createFunctionCommand:RedisClusterMultiCommand.#createFunctionCommand,createScriptCommand:RedisClusterMultiCommand.#createScriptCommand,config})}#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});var 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=__require("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(config){let Cluster=RedisCluster.#SingleEntryCache.get(config);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}),Cluster.prototype.Multi=multi_command_1.default.extend(config),RedisCluster.#SingleEntryCache.set(config,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)),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))}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});var 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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisSentinelMultiCommand,commands:commands_1.default,createCommand:RedisSentinelMultiCommand._createCommand,createModuleCommand:RedisSentinelMultiCommand._createModuleCommand,createFunctionCommand:RedisSentinelMultiCommand._createFunctionCommand,createScriptCommand:RedisSentinelMultiCommand._createScriptCommand,config})}#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});var 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(__require("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,onError3){super();this.#clientOptions=clientOptions,this.#onError=onError3}#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});var 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}}});var require_SENTINEL_MONITOR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,dbname,host,port,quorum){parser.push("SENTINEL","MONITOR",dbname,host,port,quorum)},transformReply:void 0}});var 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}}});var 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}}});var require_SENTINEL_SET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,dbname,options){parser.push("SENTINEL","SET",dbname);for(let option3 of options)parser.push(option3.option,option3.value)},transformReply:void 0}});var 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}});var 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}});var 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});var 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=__require("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=__require("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(config){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});return SentinelClient.prototype.Multi=multi_commands_1.default.extend(config),(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(config){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});return Sentinel.prototype.Multi=multi_commands_1.default.extend(config),(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}})}getClientLease(){let id=this.#masterClientQueue.shift();if(id!==void 0)return{id};return this.#masterClientQueue.wait().then((id2)=>({id:id2}))}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 count=0;while(!0){if(this.#trace("starting connect loop"),count+=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&&count>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}}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.#reset()}),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,size8]of analyzed.replicasToOpen){for(let i=0;i<size8;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});var 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.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 FLUSHALL_1=require_FLUSHALL();Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return FLUSHALL_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}})});var 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}});var 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}});var 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}});var 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});var 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}}});var 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}});var require_LOADCHUNK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk2){parser.push("BF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk2)},transformReply:void 0}});var 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}});var 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}});var require_RESERVE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,errorRate,capacity,options){if(parser.push("BF.RESERVE"),parser.pushKey(key),parser.push(errorRate.toString(),capacity.toString()),options?.EXPANSION)parser.push("EXPANSION",options.EXPANSION.toString());if(options?.NONSCALING)parser.push("NONSCALING")},transformReply:void 0}});var 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]}}}});var 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}});var 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())}});var 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}}});var 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}});var require_INITBYPROB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,error,probability){parser.push("CMS.INITBYPROB"),parser.pushKey(key),parser.push(error.toString(),probability.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var require_LOADCHUNK2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk2){parser.push("CF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk2)},transformReply:void 0}});var require_RESERVE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,capacity,options){if(parser.push("CF.RESERVE"),parser.pushKey(key),parser.push(capacity.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}});var 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]}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}})});var 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}});var 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}});var 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}});var 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}});var 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)}}});var require_ARRTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,start3,stop){parser.push("JSON.ARRTRIM"),parser.pushKey(key),parser.push(path,start3.toString(),stop.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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))}}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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]}}}});var 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}});var 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}})});var 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}}});var require_CREATE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.REDISEARCH_LANGUAGE=exports.parseSchema=exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM=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"};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)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)args2.push("INITIAL_CAP",fieldOptions.INITIAL_CAP.toString());switch(fieldOptions.ALGORITHM){case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:if(fieldOptions.BLOCK_SIZE)args2.push("BLOCK_SIZE",fieldOptions.BLOCK_SIZE.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:if(fieldOptions.M)args2.push("M",fieldOptions.M.toString());if(fieldOptions.EF_CONSTRUCTION)args2.push("EF_CONSTRUCTION",fieldOptions.EF_CONSTRUCTION.toString());if(fieldOptions.EF_RUNTIME)args2.push("EF_RUNTIME",fieldOptions.EF_RUNTIME.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}});var 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}});var require_default=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.DEFAULT_DIALECT=void 0;exports.DEFAULT_DIALECT="2"});var 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[0]+1==reply.length,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}});var 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)}});var 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}});var 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}});var 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}});var 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}});var require_CONFIG_GET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,option3){parser.push("FT.CONFIG","GET",option3)},transformReply(reply){let transformedReply=Object.create(null);for(let item of reply){let[key,value]=item;transformedReply[key.toString()]=value}return transformedReply}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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={},array4=reply[i+1];for(let i2=0;i2<array4.length;i2+=2){let innerKey=array4[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](array4[i2+1],void 0,typeMapping);break}}ret[key]=innerRet;break}case"cursor_stats":{let innerRet={},array4=reply[i+1];for(let i2=0;i2<array4.length;i2+=2){let innerKey=array4[i2].toString();switch(innerKey){case"global_idle":case"global_total":case"index_capacity":case"index_total":innerRet[innerKey]=array4[i2+1];break}}ret[key]=innerRet;break}}}return ret}});var 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}});var 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}});var 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}});var 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)}});var require_SUGADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string2,score,options){if(parser.push("FT.SUGADD"),parser.pushKey(key),parser.push(string2,score.toString()),options?.INCR)parser.push("INCR");if(options?.PAYLOAD)parser.push("PAYLOAD",options.PAYLOAD)},transformReply:void 0}});var require_SUGDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string2){parser.push("FT.SUGDEL"),parser.pushKey(key),parser.push(string2)},transformReply:void 0}});var 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}});var 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}}});var 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}}}});var 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}}}});var 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}});var 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}}});var 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}});var 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}}});var 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()),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,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}});var 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}})});var 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 tuple2=wrappedTuple,key=tuple2[0];ret.set(key.toString(),parseFunc(tuple2))}return ret}case Array:{for(let wrappedTuple of reply){let tuple2=wrappedTuple;tuple2[1]=parseFunc(tuple2)}return reply}default:{let ret=Object.create(null);for(let wrappedTuple of reply){let tuple2=wrappedTuple,key=tuple2[0];ret[key.toString()]=parseFunc(tuple2)}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 map13=new Map;for(let tuple2 of unwrappedLabels){let[key,value]=tuple2,unwrappedKey=key;map13.set(unwrappedKey.toString(),value)}return map13;case Array:return unwrappedLabels.flat();case Object:default:let labelsObject=Object.create(null);for(let tuple2 of unwrappedLabels){let[key,value]=tuple2,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 map13=new Map;for(let i=0;i<to;i++){let[key,value]=unwrappedLabels[i],unwrappedKey=key;map13.set(unwrappedKey.toString(),value)}transformedLabels=map13;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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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]}}}}});var 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}});var 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((chunk2)=>({startTimestamp:chunk2[1],endTimestamp:chunk2[3],samples:chunk2[5],size:chunk2[7],bytesPerSample:chunk2[9]}));break}}}return ret},3:void 0},unstableResp3:!0}});var 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}});var 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,filter7){parser.push("FILTER"),parser.pushVariadic(filter7)}exports.parseFilterArgument=parseFilterArgument;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter7,options){parser.push("TS.MGET"),parseLatestArgument(parser,options?.LATEST),parseFilterArgument(parser,filter7)},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)}})}}}});var 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,filter7,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter7)},transformReply:createTransformMGetLabelsReply()}});var 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,filter7,selectedLabels,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter7)},transformReply:(0,MGET_WITHLABELS_1.createTransformMGetLabelsReply)()}});var 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)}}}});var 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,groupBy){parser.push("GROUPBY",groupBy.label,"REDUCE",groupBy.REDUCE)}exports.parseGroupByArguments=parseGroupByArguments;function createTransformMRangeGroupByArguments(command){return(parser,fromTimestamp,toTimestamp,filter7,groupBy,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter7),parseGroupByArguments(parser,groupBy)}}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)}})}}}});var 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,filter7,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter7)}}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)}})}}}});var 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,filter7,groupBy,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter7),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy)}}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)}})}}}});var 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,filter7,groupBy,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter7),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy)}}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)}})}}}});var 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,filter7,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter7)}}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 tuple2 of unwrappedLabels){let[key,value]=tuple2,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)}})}}}});var 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,filter7,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter7)}}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)})}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_QUERYINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter7){parser.push("TS.QUERYINDEX"),parser.pushVariadic(filter7)},transformReply:{2:void 0,3:void 0}}});var 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}});var 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}});var 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}})});var 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.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 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});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);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";var isBigInt=(input)=>typeof input==="bigint";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 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 number(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,number(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),number=(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)};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 right2=right;var left2=left;var isLeft2=isLeft,isRight2=isRight;var match=dual(2,(self,{onLeft,onRight})=>isLeft2(self)?onLeft(self.left):onRight(self.right));var merge=match({onLeft:identity,onRight:identity});var isNonEmptyArray=(self)=>self.length>0;var make2=(compare)=>(self,that)=>self===that?0:compare(self,that);var number2=make2((self,that)=>self<that?-1:1);var mapInput2=dual(2,(self,f)=>make2((b1,b2)=>self(f(b1),f(b2))));var greaterThan=(O)=>dual(2,(self,that)=>O(self,that)===1);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);var orElseSome=dual(2,(self,onNone)=>isNone2(self)?some2(onNone()):self);var fromNullable=(nullableValue)=>nullableValue==null?none2():some2(nullableValue);var getOrUndefined=getOrElse(constUndefined);var getOrThrowWith=dual(2,(self,onNone)=>{if(isSome2(self))return self.value;throw onNone()}),getOrThrow=getOrThrowWith(()=>Error("getOrThrow called on a None")),map=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 allocate=(n)=>Array(n),makeBy=dual(2,(n,f)=>{let max=Math.max(1,Math.floor(n)),out=Array(max);for(let i=0;i<max;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,clamp=(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(clamp(n,input),input.length)});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],map2=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});var 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 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 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));var Order=number2;var escape=(string2)=>string2.replace(/[/\\^$*+?.()|[\]{}]/g,"\\$&");var not=(self)=>!self;var exports_Context={};__export(exports_Context,{unsafeMake:()=>unsafeMake,unsafeGet:()=>unsafeGet3,pick:()=>pick2,omit:()=>omit2,mergeAll:()=>mergeAll2,merge:()=>merge3,make:()=>make5,isTag:()=>isTag2,isReference:()=>isReference2,isContext:()=>isContext2,getOrElse:()=>getOrElse3,getOption:()=>getOption2,get:()=>get3,empty:()=>empty3,add:()=>add2,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 make4(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},TypeId3=Symbol.for("effect/Context"),ContextProto={[TypeId3]:{_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,number(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(`
1
+ import{createRequire}from"node:module";var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;var __toESM=(mod,isNodeMode,target)=>{target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:()=>mod[key],enumerable:!0});return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);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 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});var require_errors=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.MultiErrorReply=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{constructor(message){super(message);this.stack=void 0}}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 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});var 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(config){this.onReply=config.onReply,this.onErrorReply=config.onErrorReply,this.onPush=config.onPush,this.getTypeMapping=config.getTypeMapping}reset(){this.#cursor=0,this.#next=void 0}write(chunk3){if(this.#cursor>=chunk3.length){this.#cursor-=chunk3.length;return}if(this.#next){if(this.#next(chunk3)||this.#cursor>=chunk3.length){this.#cursor-=chunk3.length;return}}do{let type=chunk3[this.#cursor];if(++this.#cursor===chunk3.length){this.#next=this.#continueDecodeTypeValue.bind(this,type);break}if(this.#decodeTypeValue(type,chunk3))break}while(this.#cursor<chunk3.length);this.#cursor-=chunk3.length}#continueDecodeTypeValue(type,chunk3){return this.#next=void 0,this.#decodeTypeValue(type,chunk3)}#decodeTypeValue(type,chunk3){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(chunk3));case exports.RESP_TYPES.NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeNumber(this.getTypeMapping()[exports.RESP_TYPES.NUMBER],chunk3));case exports.RESP_TYPES.BIG_NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeBigNumber(this.getTypeMapping()[exports.RESP_TYPES.BIG_NUMBER],chunk3));case exports.RESP_TYPES.DOUBLE:return this.#handleDecodedValue(this.onReply,this.#decodeDouble(this.getTypeMapping()[exports.RESP_TYPES.DOUBLE],chunk3));case exports.RESP_TYPES.SIMPLE_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeSimpleString(this.getTypeMapping()[exports.RESP_TYPES.SIMPLE_STRING],chunk3));case exports.RESP_TYPES.BLOB_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeBlobString(this.getTypeMapping()[exports.RESP_TYPES.BLOB_STRING],chunk3));case exports.RESP_TYPES.VERBATIM_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeVerbatimString(this.getTypeMapping()[exports.RESP_TYPES.VERBATIM_STRING],chunk3));case exports.RESP_TYPES.SIMPLE_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeSimpleError(chunk3));case exports.RESP_TYPES.BLOB_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeBlobError(chunk3));case exports.RESP_TYPES.ARRAY:return this.#handleDecodedValue(this.onReply,this.#decodeArray(this.getTypeMapping(),chunk3));case exports.RESP_TYPES.SET:return this.#handleDecodedValue(this.onReply,this.#decodeSet(this.getTypeMapping(),chunk3));case exports.RESP_TYPES.MAP:return this.#handleDecodedValue(this.onReply,this.#decodeMap(this.getTypeMapping(),chunk3));case exports.RESP_TYPES.PUSH:return this.#handleDecodedValue(this.onPush,this.#decodeArray(exports.PUSH_TYPE_MAPPING,chunk3));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,next,chunk3){return this.#next=void 0,this.#handleDecodedValue(cb,next(chunk3))}#decodeNull(){return this.#cursor+=2,null}#decodeBoolean(chunk3){let boolean=chunk3[this.#cursor]===ASCII.t;return this.#cursor+=3,boolean}#decodeNumber(type,chunk3){if(type===String)return this.#decodeSimpleString(String,chunk3);switch(chunk3[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeNumberValue(!1,chunk3);case ASCII["-"]:return this.#maybeDecodeNumberValue(!0,chunk3);default:return this.#decodeNumberValue(!1,this.#decodeUnsingedNumber.bind(this,0),chunk3)}}#maybeDecodeNumberValue(isNegative,chunk3){let cb=this.#decodeUnsingedNumber.bind(this,0);return++this.#cursor===chunk3.length?this.#decodeNumberValue.bind(this,isNegative,cb):this.#decodeNumberValue(isNegative,cb,chunk3)}#decodeNumberValue(isNegative,numberCb,chunk3){let number3=numberCb(chunk3);return typeof number3==="function"?this.#decodeNumberValue.bind(this,isNegative,number3):isNegative?-number3:number3}#decodeUnsingedNumber(number3,chunk3){let cursor=this.#cursor;do{let byte=chunk3[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,number3;number3=number3*10+byte-ASCII["0"]}while(++cursor<chunk3.length);return this.#cursor=cursor,this.#decodeUnsingedNumber.bind(this,number3)}#decodeBigNumber(type,chunk3){if(type===String)return this.#decodeSimpleString(String,chunk3);switch(chunk3[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeBigNumberValue(!1,chunk3);case ASCII["-"]:return this.#maybeDecodeBigNumberValue(!0,chunk3);default:return this.#decodeBigNumberValue(!1,this.#decodeUnsingedBigNumber.bind(this,0n),chunk3)}}#maybeDecodeBigNumberValue(isNegative,chunk3){let cb=this.#decodeUnsingedBigNumber.bind(this,0n);return++this.#cursor===chunk3.length?this.#decodeBigNumberValue.bind(this,isNegative,cb):this.#decodeBigNumberValue(isNegative,cb,chunk3)}#decodeBigNumberValue(isNegative,bigNumberCb,chunk3){let bigNumber=bigNumberCb(chunk3);return typeof bigNumber==="function"?this.#decodeBigNumberValue.bind(this,isNegative,bigNumber):isNegative?-bigNumber:bigNumber}#decodeUnsingedBigNumber(bigNumber,chunk3){let cursor=this.#cursor;do{let byte=chunk3[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,bigNumber;bigNumber=bigNumber*10n+BigInt(byte-ASCII["0"])}while(++cursor<chunk3.length);return this.#cursor=cursor,this.#decodeUnsingedBigNumber.bind(this,bigNumber)}#decodeDouble(type,chunk3){if(type===String)return this.#decodeSimpleString(String,chunk3);switch(chunk3[this.#cursor]){case ASCII.n:return this.#cursor+=5,NaN;case ASCII["+"]:return this.#maybeDecodeDoubleInteger(!1,chunk3);case ASCII["-"]:return this.#maybeDecodeDoubleInteger(!0,chunk3);default:return this.#decodeDoubleInteger(!1,0,chunk3)}}#maybeDecodeDoubleInteger(isNegative,chunk3){return++this.#cursor===chunk3.length?this.#decodeDoubleInteger.bind(this,isNegative,0):this.#decodeDoubleInteger(isNegative,0,chunk3)}#decodeDoubleInteger(isNegative,integer,chunk3){if(chunk3[this.#cursor]===ASCII.i)return this.#cursor+=5,isNegative?-1/0:1/0;return this.#continueDecodeDoubleInteger(isNegative,integer,chunk3)}#continueDecodeDoubleInteger(isNegative,integer,chunk3){let cursor=this.#cursor;do{let byte=chunk3[cursor];switch(byte){case ASCII["."]:return this.#cursor=cursor+1,this.#cursor<chunk3.length?this.#decodeDoubleDecimal(isNegative,0,integer,chunk3):this.#decodeDoubleDecimal.bind(this,isNegative,0,integer);case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let i=isNegative?-integer:integer;return this.#cursor<chunk3.length?this.#decodeDoubleExponent(i,chunk3):this.#decodeDoubleExponent.bind(this,i);case ASCII["\r"]:return this.#cursor=cursor+2,isNegative?-integer:integer;default:integer=integer*10+byte-ASCII["0"]}}while(++cursor<chunk3.length);return this.#cursor=cursor,this.#continueDecodeDoubleInteger.bind(this,isNegative,integer)}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,chunk3){let cursor=this.#cursor;do{let byte=chunk3[cursor];switch(byte){case ASCII.E:case ASCII.e:this.#cursor=cursor+1;let d=isNegative?-double:double;return this.#cursor===chunk3.length?this.#decodeDoubleExponent.bind(this,d):this.#decodeDoubleExponent(d,chunk3);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<chunk3.length);return this.#cursor=cursor,this.#decodeDoubleDecimal.bind(this,isNegative,decimalIndex,double)}#decodeDoubleExponent(double,chunk3){switch(chunk3[this.#cursor]){case ASCII["+"]:return++this.#cursor===chunk3.length?this.#continueDecodeDoubleExponent.bind(this,!1,double,0):this.#continueDecodeDoubleExponent(!1,double,0,chunk3);case ASCII["-"]:return++this.#cursor===chunk3.length?this.#continueDecodeDoubleExponent.bind(this,!0,double,0):this.#continueDecodeDoubleExponent(!0,double,0,chunk3)}return this.#continueDecodeDoubleExponent(!1,double,0,chunk3)}#continueDecodeDoubleExponent(isNegative,double,exponent,chunk3){let cursor=this.#cursor;do{let byte=chunk3[cursor];if(byte===ASCII["\r"])return this.#cursor=cursor+2,double*10**(isNegative?-exponent:exponent);exponent=exponent*10+byte-ASCII["0"]}while(++cursor<chunk3.length);return this.#cursor=cursor,this.#continueDecodeDoubleExponent.bind(this,isNegative,double,exponent)}#findCRLF(chunk3,cursor){while(chunk3[cursor]!==ASCII["\r"])if(++cursor===chunk3.length)return this.#cursor=chunk3.length,-1;return this.#cursor=cursor+2,cursor}#decodeSimpleString(type,chunk3){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk3,start3);if(crlfIndex===-1)return this.#continueDecodeSimpleString.bind(this,[chunk3.subarray(start3)],type);let slice=chunk3.subarray(start3,crlfIndex);return type===Buffer?slice:slice.toString()}#continueDecodeSimpleString(chunks3,type,chunk3){let start3=this.#cursor,crlfIndex=this.#findCRLF(chunk3,start3);if(crlfIndex===-1)return chunks3.push(chunk3.subarray(start3)),this.#continueDecodeSimpleString.bind(this,chunks3,type);return chunks3.push(chunk3.subarray(start3,crlfIndex)),type===Buffer?Buffer.concat(chunks3):chunks3.join("")}#decodeBlobString(type,chunk3){if(chunk3[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;let length3=this.#decodeUnsingedNumber(0,chunk3);if(typeof length3==="function")return this.#continueDecodeBlobStringLength.bind(this,length3,type);else if(this.#cursor>=chunk3.length)return this.#decodeBlobStringWithLength.bind(this,length3,type);return this.#decodeBlobStringWithLength(length3,type,chunk3)}#continueDecodeBlobStringLength(lengthCb,type,chunk3){let length3=lengthCb(chunk3);if(typeof length3==="function")return this.#continueDecodeBlobStringLength.bind(this,length3,type);else if(this.#cursor>=chunk3.length)return this.#decodeBlobStringWithLength.bind(this,length3,type);return this.#decodeBlobStringWithLength(length3,type,chunk3)}#decodeStringWithLength(length3,skip,type,chunk3){let end6=this.#cursor+length3;if(end6>=chunk3.length){let slice2=chunk3.subarray(this.#cursor);return this.#cursor=chunk3.length,this.#continueDecodeStringWithLength.bind(this,length3-slice2.length,[slice2],skip,type)}let slice=chunk3.subarray(this.#cursor,end6);return this.#cursor=end6+skip,type===Buffer?slice:slice.toString()}#continueDecodeStringWithLength(length3,chunks3,skip,type,chunk3){let end6=this.#cursor+length3;if(end6>=chunk3.length){let slice=chunk3.subarray(this.#cursor);return chunks3.push(slice),this.#cursor=chunk3.length,this.#continueDecodeStringWithLength.bind(this,length3-slice.length,chunks3,skip,type)}return chunks3.push(chunk3.subarray(this.#cursor,end6)),this.#cursor=end6+skip,type===Buffer?Buffer.concat(chunks3):chunks3.join("")}#decodeBlobStringWithLength(length3,type,chunk3){return this.#decodeStringWithLength(length3,2,type,chunk3)}#decodeVerbatimString(type,chunk3){return this.#continueDecodeVerbatimStringLength(this.#decodeUnsingedNumber.bind(this,0),type,chunk3)}#continueDecodeVerbatimStringLength(lengthCb,type,chunk3){let length3=lengthCb(chunk3);return typeof length3==="function"?this.#continueDecodeVerbatimStringLength.bind(this,length3,type):this.#decodeVerbatimStringWithLength(length3,type,chunk3)}#decodeVerbatimStringWithLength(length3,type,chunk3){let stringLength=length3-4;if(type===verbatim_string_1.VerbatimString)return this.#decodeVerbatimStringFormat(stringLength,chunk3);return this.#cursor+=4,this.#cursor>=chunk3.length?this.#decodeBlobStringWithLength.bind(this,stringLength,type):this.#decodeBlobStringWithLength(stringLength,type,chunk3)}#decodeVerbatimStringFormat(stringLength,chunk3){let formatCb=this.#decodeStringWithLength.bind(this,3,1,String);return this.#cursor>=chunk3.length?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,formatCb):this.#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk3)}#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk3){let format4=formatCb(chunk3);return typeof format4==="function"?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,format4):this.#decodeVerbatimStringWithFormat(stringLength,format4,chunk3)}#decodeVerbatimStringWithFormat(stringLength,format4,chunk3){return this.#continueDecodeVerbatimStringWithFormat(format4,this.#decodeBlobStringWithLength.bind(this,stringLength,String),chunk3)}#continueDecodeVerbatimStringWithFormat(format4,stringCb,chunk3){let string2=stringCb(chunk3);return typeof string2==="function"?this.#continueDecodeVerbatimStringWithFormat.bind(this,format4,string2):new verbatim_string_1.VerbatimString(format4,string2)}#decodeSimpleError(chunk3){let string2=this.#decodeSimpleString(String,chunk3);return typeof string2==="function"?this.#continueDecodeSimpleError.bind(this,string2):new errors_1.SimpleError(string2)}#continueDecodeSimpleError(stringCb,chunk3){let string2=stringCb(chunk3);return typeof string2==="function"?this.#continueDecodeSimpleError.bind(this,string2):new errors_1.SimpleError(string2)}#decodeBlobError(chunk3){let string2=this.#decodeBlobString(String,chunk3);return typeof string2==="function"?this.#continueDecodeBlobError.bind(this,string2):new errors_1.BlobError(string2)}#continueDecodeBlobError(stringCb,chunk3){let string2=stringCb(chunk3);return typeof string2==="function"?this.#continueDecodeBlobError.bind(this,string2):new errors_1.BlobError(string2)}#decodeNestedType(typeMapping,chunk3){let type=chunk3[this.#cursor];return++this.#cursor===chunk3.length?this.#decodeNestedTypeValue.bind(this,type,typeMapping):this.#decodeNestedTypeValue(type,typeMapping,chunk3)}#decodeNestedTypeValue(type,typeMapping,chunk3){switch(type){case exports.RESP_TYPES.NULL:return this.#decodeNull();case exports.RESP_TYPES.BOOLEAN:return this.#decodeBoolean(chunk3);case exports.RESP_TYPES.NUMBER:return this.#decodeNumber(typeMapping[exports.RESP_TYPES.NUMBER],chunk3);case exports.RESP_TYPES.BIG_NUMBER:return this.#decodeBigNumber(typeMapping[exports.RESP_TYPES.BIG_NUMBER],chunk3);case exports.RESP_TYPES.DOUBLE:return this.#decodeDouble(typeMapping[exports.RESP_TYPES.DOUBLE],chunk3);case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(typeMapping[exports.RESP_TYPES.SIMPLE_STRING],chunk3);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(typeMapping[exports.RESP_TYPES.BLOB_STRING],chunk3);case exports.RESP_TYPES.VERBATIM_STRING:return this.#decodeVerbatimString(typeMapping[exports.RESP_TYPES.VERBATIM_STRING],chunk3);case exports.RESP_TYPES.SIMPLE_ERROR:return this.#decodeSimpleError(chunk3);case exports.RESP_TYPES.BLOB_ERROR:return this.#decodeBlobError(chunk3);case exports.RESP_TYPES.ARRAY:return this.#decodeArray(typeMapping,chunk3);case exports.RESP_TYPES.SET:return this.#decodeSet(typeMapping,chunk3);case exports.RESP_TYPES.MAP:return this.#decodeMap(typeMapping,chunk3);default:throw Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#decodeArray(typeMapping,chunk3){if(chunk3[this.#cursor]===ASCII["-"])return this.#cursor+=4,null;return this.#decodeArrayWithLength(this.#decodeUnsingedNumber(0,chunk3),typeMapping,chunk3)}#decodeArrayWithLength(length3,typeMapping,chunk3){return typeof length3==="function"?this.#continueDecodeArrayLength.bind(this,length3,typeMapping):this.#decodeArrayItems(Array(length3),0,typeMapping,chunk3)}#continueDecodeArrayLength(lengthCb,typeMapping,chunk3){return this.#decodeArrayWithLength(lengthCb(chunk3),typeMapping,chunk3)}#decodeArrayItems(array4,filled,typeMapping,chunk3){for(let i=filled;i<array4.length;i++){if(this.#cursor>=chunk3.length)return this.#decodeArrayItems.bind(this,array4,i,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk3);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array4,i,item,typeMapping);array4[i]=item}return array4}#continueDecodeArrayItems(array4,filled,itemCb,typeMapping,chunk3){let item=itemCb(chunk3);if(typeof item==="function")return this.#continueDecodeArrayItems.bind(this,array4,filled,item,typeMapping);return array4[filled++]=item,this.#decodeArrayItems(array4,filled,typeMapping,chunk3)}#decodeSet(typeMapping,chunk3){let length3=this.#decodeUnsingedNumber(0,chunk3);if(typeof length3==="function")return this.#continueDecodeSetLength.bind(this,length3,typeMapping);return this.#decodeSetItems(length3,typeMapping,chunk3)}#continueDecodeSetLength(lengthCb,typeMapping,chunk3){let length3=lengthCb(chunk3);return typeof length3==="function"?this.#continueDecodeSetLength.bind(this,length3,typeMapping):this.#decodeSetItems(length3,typeMapping,chunk3)}#decodeSetItems(length3,typeMapping,chunk3){return typeMapping[exports.RESP_TYPES.SET]===Set?this.#decodeSetAsSet(new Set,length3,typeMapping,chunk3):this.#decodeArrayItems(Array(length3),0,typeMapping,chunk3)}#decodeSetAsSet(set8,remaining,typeMapping,chunk3){while(remaining>0){if(this.#cursor>=chunk3.length)return this.#decodeSetAsSet.bind(this,set8,remaining,typeMapping);let item=this.#decodeNestedType(typeMapping,chunk3);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set8,remaining,item,typeMapping);set8.add(item),--remaining}return set8}#continueDecodeSetAsSet(set8,remaining,itemCb,typeMapping,chunk3){let item=itemCb(chunk3);if(typeof item==="function")return this.#continueDecodeSetAsSet.bind(this,set8,remaining,item,typeMapping);return set8.add(item),this.#decodeSetAsSet(set8,remaining-1,typeMapping,chunk3)}#decodeMap(typeMapping,chunk3){let length3=this.#decodeUnsingedNumber(0,chunk3);if(typeof length3==="function")return this.#continueDecodeMapLength.bind(this,length3,typeMapping);return this.#decodeMapItems(length3,typeMapping,chunk3)}#continueDecodeMapLength(lengthCb,typeMapping,chunk3){let length3=lengthCb(chunk3);return typeof length3==="function"?this.#continueDecodeMapLength.bind(this,length3,typeMapping):this.#decodeMapItems(length3,typeMapping,chunk3)}#decodeMapItems(length3,typeMapping,chunk3){switch(typeMapping[exports.RESP_TYPES.MAP]){case Map:return this.#decodeMapAsMap(new Map,length3,typeMapping,chunk3);case Array:return this.#decodeArrayItems(Array(length3*2),0,typeMapping,chunk3);default:return this.#decodeMapAsObject(Object.create(null),length3,typeMapping,chunk3)}}#decodeMapAsMap(map22,remaining,typeMapping,chunk3){while(remaining>0){if(this.#cursor>=chunk3.length)return this.#decodeMapAsMap.bind(this,map22,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk3);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map22,remaining,key,typeMapping);if(this.#cursor>=chunk3.length)return this.#continueDecodeMapValue.bind(this,map22,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk3);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map22,remaining,key,value,typeMapping);map22.set(key,value),--remaining}return map22}#decodeMapKey(typeMapping,chunk3){let type=chunk3[this.#cursor];return++this.#cursor===chunk3.length?this.#decodeMapKeyValue.bind(this,type,typeMapping):this.#decodeMapKeyValue(type,typeMapping,chunk3)}#decodeMapKeyValue(type,typeMapping,chunk3){switch(type){case exports.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(String,chunk3);case exports.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(String,chunk3);default:return this.#decodeNestedTypeValue(type,typeMapping,chunk3)}}#continueDecodeMapKey(map22,remaining,keyCb,typeMapping,chunk3){let key=keyCb(chunk3);if(typeof key==="function")return this.#continueDecodeMapKey.bind(this,map22,remaining,key,typeMapping);if(this.#cursor>=chunk3.length)return this.#continueDecodeMapValue.bind(this,map22,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk3);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map22,remaining,key,value,typeMapping);return map22.set(key,value),this.#decodeMapAsMap(map22,remaining-1,typeMapping,chunk3)}#continueDecodeMapValue(map22,remaining,key,valueCb,typeMapping,chunk3){let value=valueCb(chunk3);if(typeof value==="function")return this.#continueDecodeMapValue.bind(this,map22,remaining,key,value,typeMapping);return map22.set(key,value),this.#decodeMapAsMap(map22,remaining-1,typeMapping,chunk3)}#decodeMapAsObject(object,remaining,typeMapping,chunk3){while(remaining>0){if(this.#cursor>=chunk3.length)return this.#decodeMapAsObject.bind(this,object,remaining,typeMapping);let key=this.#decodeMapKey(typeMapping,chunk3);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk3.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk3);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,chunk3){let key=keyCb(chunk3);if(typeof key==="function")return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping);if(this.#cursor>=chunk3.length)return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping);let value=this.#decodeNestedType(typeMapping,chunk3);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk3)}#continueDecodeMapAsObjectValue(object,remaining,key,valueCb,typeMapping,chunk3){let value=valueCb(chunk3);if(typeof value==="function")return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping);return object[key]=value,this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk3)}}exports.Decoder=Decoder;_a=Decoder});var require_lua_script=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.scriptSha1=exports.defineScript=void 0;var node_crypto_1=__require("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});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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});var 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]=reply;return{id:id2,message:transformTuplesReply(message,void 0,typeMapping)}}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});var 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,count3){if(parser.push("ACL","LOG"),count3!=null)parser.push(count3.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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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]}}}});var 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}});var 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}});var 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])}}}}});var 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}});var 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]}}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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 map22={};for(let item of rawReply.toString().matchAll(CLIENT_INFO_REGEX))map22[item[1]]=item[2];let reply={id:Number(map22.id),addr:map22.addr,fd:Number(map22.fd),name:map22.name,age:Number(map22.age),idle:Number(map22.idle),flags:map22.flags,db:Number(map22.db),sub:Number(map22.sub),psub:Number(map22.psub),multi:Number(map22.multi),qbuf:Number(map22.qbuf),qbufFree:Number(map22["qbuf-free"]),argvMem:Number(map22["argv-mem"]),obl:Number(map22.obl),oll:Number(map22.oll),omem:Number(map22.omem),totMem:Number(map22["tot-mem"]),events:map22.events,cmd:map22.cmd,user:map22.user,libName:map22["lib-name"],libVer:map22["lib-ver"]};if(map22.laddr!==void 0)reply.laddr=map22.laddr;if(map22.redir!==void 0)reply.redir=Number(map22.redir);if(map22.ssub!==void 0)reply.ssub=Number(map22.ssub);if(map22["multi-mem"]!==void 0)reply.multiMem=Number(map22["multi-mem"]);if(map22.resp!==void 0)reply.resp=Number(map22.resp);return reply}}});var 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 filter10 of filters)pushFilter(parser,filter10);else pushFilter(parser,filters)},transformReply:void 0};function pushFilter(parser,filter10){if(filter10===exports.CLIENT_KILL_FILTERS.SKIP_ME){parser.push("SKIPME");return}switch(parser.push(filter10.filter),filter10.filter){case exports.CLIENT_KILL_FILTERS.ADDRESS:parser.push(filter10.address);break;case exports.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:parser.push(filter10.localAddress);break;case exports.CLIENT_KILL_FILTERS.ID:parser.push(typeof filter10.id==="number"?filter10.id.toString():filter10.id);break;case exports.CLIENT_KILL_FILTERS.TYPE:parser.push(filter10.type);break;case exports.CLIENT_KILL_FILTERS.USER:parser.push(filter10.username);break;case exports.CLIENT_KILL_FILTERS.SKIP_ME:parser.push(filter10.skipMe?"yes":"no");break;case exports.CLIENT_KILL_FILTERS.MAXAGE:parser.push(filter10.maxAge.toString());break}}});var 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,filter10){if(parser.push("CLIENT","LIST"),filter10)if(filter10.TYPE!==void 0)parser.push("TYPE",filter10.TYPE);else parser.push("ID"),parser.pushVariadic(filter10.ID)},transformReply(rawReply){let split3=rawReply.toString().split(`
2
+ `),length3=split3.length-1,reply=[];for(let i=0;i<length3;i++)reply.push(CLIENT_INFO_1.default.transformReply(split3[i]));return reply}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_CLUSTER_GETKEYSINSLOT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,slot,count3){parser.push("CLUSTER","GETKEYSINSLOT",slot.toString(),count3.toString())},transformReply:void 0}});var 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}});var 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}});var 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}}});var require_CLUSTER_MEET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port){parser.push("CLUSTER","MEET",host,port.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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,port,id2]=node;return{host,port,id:id2}}});var 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}});var 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}});var 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}})}}});var 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)}}});var 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}});var 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)}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_DECR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("DECR"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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)}});var 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)}}});var 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}});var 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]}})}}});var 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}});var 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}});var 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})}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_EXPIRE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,seconds2,mode){if(parser.push("EXPIRE"),parser.pushKey(key),parser.push(seconds2.toString()),mode)parser.push(mode)},transformReply:void 0}});var require_EXPIREAT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers();exports.default={IS_READ_ONLY:!0,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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_HRANDFIELD_COUNT_WITHVALUES=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count3){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count3.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}})}}}});var require_HRANDFIELD_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count3){parser.push("HRANDFIELD"),parser.pushKey(key),parser.push(count3.toString())},transformReply:void 0}});var 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}});var 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}}}});var 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}}}});var 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}}}});var 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,map22){for(let[key,value]of map22.entries())parser.push(convertValue(key),convertValue(value))}function pushTuples(parser,tuples){for(let tuple2 of tuples){if(Array.isArray(tuple2)){pushTuples(parser,tuple2);continue}parser.push(convertValue(tuple2))}}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}});var 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,map22){parser.push(map22.size.toString());for(let[key,value]of map22.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 tuple2 of tuples){if(Array.isArray(tuple2)){_pushTuples(parser,tuple2);continue}parser.push(convertValue(tuple2))}}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}});var 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}});var 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}});var 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}});var 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}});var require_INCR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("INCR"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_LPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("LPOP"),parser.pushKey(key)},transformReply:void 0}});var 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,count3){LPOP_1.default.parseCommand(parser,key),parser.push(count3.toString())},transformReply:void 0}});var 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}});var 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,count3,options){LPOS_1.default.parseCommand(parser,key,element,options),parser.push("COUNT",count3.toString())},transformReply:void 0}});var 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}});var 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}});var require_LRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,start3,stop2){parser.push("LRANGE"),parser.pushKey(key),parser.push(start3.toString(),stop2.toString())},transformReply:void 0}});var require_LREM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count3,element){parser.push("LREM"),parser.pushKey(key),parser.push(count3.toString()),parser.push(element)},transformReply:void 0}});var 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}});var require_LTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key,start3,stop2){parser.push("LTRIM"),parser.pushKey(key),parser.push(start3.toString(),stop2.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var require_MIGRATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,host,port,key,destinationDb,timeout5,options){parser.push("MIGRATE",host,port.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}});var 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}}});var 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}});var 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}});var 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}});var 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 tuple2 of toSet3)parser.pushKey(tuple2[0]),parser.push(tuple2[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 tuple2 of Object.entries(toSet3))parser.pushKey(tuple2[0]),parser.push(tuple2[1])}exports.parseMSetArguments=parseMSetArguments;exports.default={IS_READ_ONLY:!0,parseCommand(parser,toSet3){return parser.push("MSET"),parseMSetArguments(parser,toSet3)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_PERSIST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("PERSIST"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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()]=rawReply[i++].toString();return reply}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_REPLICAOF=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,host,port){parser.push("REPLICAOF",host,port.toString())},transformReply:void 0}});var 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}});var 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}});var 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,port,replicationOffest2]=replica;return{host,port:Number(port),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}}}}}});var require_RPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key,count3){parser.push("RPOP"),parser.pushKey(key),parser.push(count3.toString())},transformReply:void 0}});var require_RPOP=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,key){parser.push("RPOP"),parser.pushKey(key)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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)parser.push(options.condition);else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.GET)parser.push("GET")},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_SPOP_COUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,count3){parser.push("SPOP"),parser.pushKey(key),parser.push(count3.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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,count3){SRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count3.toString())},transformReply:void 0}});var 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}});var 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}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_XACK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id2){parser.push("XACK"),parser.pushKey(key),parser.push(group),parser.pushVariadic(id2)},transformReply:void 0}});var 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())}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}});var 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}});var 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,group,consumer,minIdleTime,start3,options){if(parser.push("XAUTOCLAIM"),parser.pushKey(key),parser.push(group,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]}}}});var 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]}}}});var 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,group,consumer,minIdleTime,id2,options){if(parser.push("XCLAIM"),parser.pushKey(key),parser.push(group,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))}}});var 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}});var 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}});var require_XGROUP_CREATE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id2,options){if(parser.push("XGROUP","CREATE"),parser.pushKey(key),parser.push(group,id2),options?.MKSTREAM)parser.push("MKSTREAM");if(options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}});var require_XGROUP_CREATECONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,consumer){parser.push("XGROUP","CREATECONSUMER"),parser.pushKey(key),parser.push(group,consumer)},transformReply:void 0}});var require_XGROUP_DELCONSUMER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,consumer){parser.push("XGROUP","DELCONSUMER"),parser.pushKey(key),parser.push(group,consumer)},transformReply:void 0}});var require_XGROUP_DESTROY=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group){parser.push("XGROUP","DESTROY"),parser.pushKey(key),parser.push(group)},transformReply:void 0}});var require_XGROUP_SETID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id2,options){if(parser.push("XGROUP","SETID"),parser.pushKey(key),parser.push(group,id2),options?.ENTRIESREAD)parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())},transformReply:void 0}});var require_XINFO_CONSUMERS=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,group){parser.push("XINFO","CONSUMERS"),parser.pushKey(key),parser.push(group)},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}}});var 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((group)=>{let unwrapped=group;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}}});var 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)}}});var 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}});var require_XPENDING_RANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group,start3,end6,count3,options){if(parser.push("XPENDING"),parser.pushKey(key),parser.push(group),options?.IDLE!==void 0)parser.push("IDLE",options.IDLE.toString());if(parser.push(start3,end6,count3.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]}})}}});var require_XPENDING=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,group){parser.push("XPENDING"),parser.pushKey(key),parser.push(group)},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)}})}}}});var 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))}}});var 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}});var 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,group,consumer,streams,options){if(parser.push("XREADGROUP","GROUP",group,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");(0,XREAD_1.pushXReadStreams)(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:!0}});var 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}});var 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}});var 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())},transformReply:void 0}});var 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)}});var 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}});var 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}});var 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,min3,max5){parser.push("ZCOUNT"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_ZLEXCOUNT=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={CACHEABLE:!0,IS_READ_ONLY:!0,parseCommand(parser,key,min3,max5){parser.push("ZLEXCOUNT"),parser.pushKey(key),parser.push(min3),parser.push(max5)},transformReply:void 0}});var 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}}});var 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,count3){parser.push("ZPOPMAX"),parser.pushKey(key),parser.push(count3.toString())},transformReply:generic_transformers_1.transformSortedSetReply}});var 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]}}}}});var 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,count3){parser.push("ZPOPMIN"),parser.pushKey(key),parser.push(count3.toString())},transformReply:generic_transformers_1.transformSortedSetReply}});var 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}});var 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}});var 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,count3){ZRANDMEMBER_1.default.parseCommand(parser,key),parser.push(count3.toString())},transformReply:void 0}});var 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,count3){ZRANDMEMBER_COUNT_1.default.parseCommand(parser,key,count3),parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}});var require_ZRANGE=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.zRangeArgument=void 0;var generic_transformers_1=require_generic_transformers();function zRangeArgument(min3,max5,options){let args2=[(0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)];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,min3,max5,options){parser.push("ZRANGE"),parser.pushKey(key),parser.pushVariadic(zRangeArgument(min3,max5,options))},transformReply:void 0}});var 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}});var 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,min3,max5,options){if(parser.push("ZRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}});var 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,min3,max5,options){if(parser.push("ZRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),options?.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())},transformReply:void 0}});var 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}});var 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,min3,max5,options){switch(parser.push("ZRANGESTORE"),parser.pushKey(destination),parser.pushKey(source),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5)),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}});var 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,min3,max5){parser.push("ZREMRANGEBYSCORE"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var 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}});var 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]}}}}});var 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}});var 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,min3,max5){parser.push("ZREMRANGEBYLEX"),parser.pushKey(key),parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min3),(0,generic_transformers_1.transformStringDoubleArgument)(max5))},transformReply:void 0}});var require_ZREMRANGEBYRANK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,start3,stop2){parser.push("ZREMRANGEBYRANK"),parser.pushKey(key),parser.push(start3.toString(),stop2.toString())},transformReply:void 0}});var 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}});var 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)}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}}});var require_VRANDMEMBER=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,count3){if(parser.push("VRANDMEMBER"),parser.pushKey(key),count3!==void 0)parser.push(count3.toString())},transformReply:void 0}});var 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}});var 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}});var 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?.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}});var 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}}});var require_commands=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!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=__importDefault(require_CLIENT_KILL()),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=__importDefault(require_CLUSTER_FAILOVER()),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=__importDefault(require_CLUSTER_SETSLOT()),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=__importDefault(require_COMMAND_LIST()),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()),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=__importDefault(require_FLUSHALL()),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()),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()),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()),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()),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());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,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_LATEST:LATENCY_LATEST_1.default,latencyLatest:LATENCY_LATEST_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,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,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,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}});var 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=__require("node:events"),node_net_1=__importDefault(__require("node:net")),node_tls_1=__importDefault(__require("node:tls")),errors_1=require_errors(),promises_1=__require("node:timers/promises");class RedisSocket extends node_events_1.EventEmitter{#initiator;#connectTimeout;#reconnectStrategy;#socketFactory;#socketTimeout;#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{await this.#initiator()}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)}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",()=>{socket.destroy(new errors_1.SocketTimeoutError(this.#socketTimeout))}),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});var 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});var 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,config){if(this.identityProvider=identityProvider,this.config=config,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(error){if(!this.config.retry)return!1;let{maxAttempts,isRetryable}=this.config.retry;if(this.retryAttempt>=maxAttempts)return!1;if(isRetryable)return isRetryable(error,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(error){if(this.shouldRetry(error)){this.retryAttempt++;let retryDelay=this.calculateRetryDelay();this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${retryDelay}ms: ${error}`,!0),this.scheduleNextRefresh(retryDelay)}else this.notifyError(error,!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(error,isRetryable){let errorMessage=error instanceof Error?error.message:String(error);if(!this.listener)throw Error(`TokenManager is not running but received an error: ${errorMessage}`);this.listener.onError(new IDPError(errorMessage,isRetryable))}}exports.TokenManager=TokenManager});var 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});var 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}})});var require_linked_list=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.SinglyLinkedList=exports.DoublyLinkedList=void 0;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.#tail=this.#head={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=node.previous,this.#head=node.next,node.next=void 0;else this.#head=this.#tail=void 0;return node.value}remove(node){if(--this.#length,this.#tail===node)this.#tail=node.previous;if(this.#head===node)this.#head=node.next;else node.previous.next=node.next,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}}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});var require_encoder=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var CRLF=`\r
3
+ `;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});var 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;this.#isActive=!0,this.#subscribing++;let callback=()=>this.#subscribing--;commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}return commands}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}#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});var 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(),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.SinglyLinkedList;#onShardedChannelMoved;#chainInExecution;decoder;#pubSub=new pub_sub_1.PubSub;get isPubSubActive(){return this.#pubSub.isActive}#invalidateCallback;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}}#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)=>{if(!this.#onPush(push))switch(push[0].toString()){case"invalidate":{if(this.#invalidateCallback)if(push[1]!==null)for(let key of push[1])this.#invalidateCallback(key);else this.#invalidateCallback(null);break}}},getTypeMapping:()=>this.#getTypeMapping()})}setInvalidateCallback(callback){this.#invalidateCallback=callback}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=options?.timeout;if(timeout5){let signal2=AbortSignal.timeout(timeout5);value.timeout={signal:signal2,listener:()=>{this.#toWrite.remove(node),value.reject(new errors_1.TimeoutError)}},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)}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});var 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}){let RESP=config?.RESP??2,Class4=class extends BaseClass{};for(let[name,command]of Object.entries(commands))if(config?.RESP==3&&command.unstableResp3&&!config.unstableResp3)Class4.prototype[name]=throwResp3SearchModuleUnstableError;else Class4.prototype[name]=createCommand(command,RESP);if(config?.modules)for(let[moduleName,module2]of Object.entries(config.modules)){let fns=Object.create(null);for(let[name,command]of Object.entries(module2))if(config.RESP==3&&command.unstableResp3&&!config.unstableResp3)fns[name]=throwResp3SearchModuleUnstableError;else fns[name]=createModuleCommand(command,RESP);attachNamespace(Class4.prototype,moduleName,fns)}if(config?.functions)for(let[library,commands2]of Object.entries(config.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(config?.scripts)for(let[name,script]of Object.entries(config.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});var 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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisClientMultiCommand,commands:commands_1.default,createCommand:RedisClientMultiCommand.#createCommand,createModuleCommand:RedisClientMultiCommand.#createModuleCommand,createFunctionCommand:RedisClientMultiCommand.#createFunctionCommand,createScriptCommand:RedisClientMultiCommand.#createScriptCommand,config})}#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});var 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))}}});var 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=__require("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(count3){}recordMisses(count3){}recordLoadSuccess(loadTime){}recordLoadFailure(loadTime){}recordEvictions(count3){}snapshot(){return CacheStats.empty()}}function disabledStatsCounter(){return DisabledStatsCounter.INSTANCE}class DefaultStatsCounter{#hitCount=0;#missCount=0;#loadSuccessCount=0;#loadFailureCount=0;#totalLoadTime=0;#evictionCount=0;recordHits(count3){this.#hitCount+=count3}recordMisses(count3){this.#missCount+=count3}recordLoadSuccess(loadTime){this.#loadSuccessCount++,this.#totalLoadTime+=loadTime}recordLoadFailure(loadTime){this.#loadFailureCount++,this.#totalLoadTime+=loadTime}recordEvictions(count3){this.#evictionCount+=count3}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(count3){this.#statsCounter.recordEvictions(count3)}recordHits(count3){this.#statsCounter.recordHits(count3)}recordMisses(count3){this.#statsCounter.recordMisses(count3)}constructor(config){super();this.#cacheKeyToEntryMap=new Map,this.#keyToCacheKeySetMap=new Map,this.ttl=config?.ttl??0,this.maxEntries=config?.maxEntries??0,this.lru=config?.evictPolicy!=="FIFO";let recordStats=config?.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 count3=this.#cacheKeyToEntryMap.size,oldEntry=this.#cacheKeyToEntryMap.get(cacheKey);if(oldEntry)count3--,oldEntry.invalidate();if(this.maxEntries>0&&count3>=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});var 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}}});var 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=__require("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}=this._self.#tasksQueue;if(!client){let timeout5;if(this._self.#options.acquireTimeout>0)timeout5=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail),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),result.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});var require_package=__commonJS((exports,module)=>{module.exports={name:"@redis/client",version:"5.5.6",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"]}});var 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=__require("node:events"),commander_1=require_commander(),errors_1=require_errors(),node_url_1=__require("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();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(config){let Client=_a.#SingleEntryCache.get(config);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}),Client.prototype.Multi=multi_command_1.default.extend(config),_a.#SingleEntryCache.set(config,Client);return(options)=>{return Object.create(new Client(options))}}static create(options){return _a.factory(options)(options)}static parseURL(url){let{hostname,port,protocol,username,password,pathname}=new node_url_1.URL(url),parsed={socket:{host:hostname}};if(protocol==="rediss:")parsed.socket.tls=!0;else if(protocol!=="redis:")throw TypeError("Invalid protocol");if(port)parsed.socket.port=Number(port);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;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(),options?.clientSideCache){if(options.clientSideCache instanceof cache_1.ClientSideCacheProvider)this.#clientSideCache=options.clientSideCache;else{let cscConfig=options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.setInvalidateCallback(this.#clientSideCache.invalidate.bind(this.#clientSideCache))}}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching 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?.url){let parsed=_a.parseURL(options.url);if(options.socket)parsed.socket=Object.assign(options.socket,parsed.socket);Object.assign(options,parsed)}if(options?.database)this._self.#selectedDB=options.database;if(options?.commandOptions)this._commandOptions=options.commandOptions;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((error)=>{let errorMessage=error instanceof Error?error.message:String(error);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()});return commands}#initiateSocket(){let socketInitiator=async()=>{let promises=[],chainId=Symbol("Socket Initiator"),resubscribePromise=this.#queue.resubscribe(chainId);if(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)};return new socket_1.default(socketInitiator,this.#options?.socket).on("data",(chunk3)=>{try{this.#queue.decoder.write(chunk3)}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"))}#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}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(){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});var 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}});var 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()}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){return this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket:this.#getNodeAddress(node.address)??{host:node.host,port:node.port},readonly})).on("error",(err)=>console.error(err))}#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()}*#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)}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(){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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisClusterMultiCommand,commands:commands_1.default,createCommand:RedisClusterMultiCommand.#createCommand,createModuleCommand:RedisClusterMultiCommand.#createModuleCommand,createFunctionCommand:RedisClusterMultiCommand.#createFunctionCommand,createScriptCommand:RedisClusterMultiCommand.#createScriptCommand,config})}#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});var 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=__require("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(config){let Cluster=RedisCluster.#SingleEntryCache.get(config);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}),Cluster.prototype.Multi=multi_command_1.default.extend(config),RedisCluster.#SingleEntryCache.set(config,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)),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))}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});var 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});var 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(config){return(0,commander_1.attachConfig)({BaseClass:RedisSentinelMultiCommand,commands:commands_1.default,createCommand:RedisSentinelMultiCommand._createCommand,createModuleCommand:RedisSentinelMultiCommand._createModuleCommand,createFunctionCommand:RedisSentinelMultiCommand._createFunctionCommand,createScriptCommand:RedisSentinelMultiCommand._createScriptCommand,config})}#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});var 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(__require("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});var 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}}});var require_SENTINEL_MONITOR=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,dbname,host,port,quorum){parser.push("SENTINEL","MONITOR",dbname,host,port,quorum)},transformReply:void 0}});var 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}}});var 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}}});var require_SENTINEL_SET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={parseCommand(parser,dbname,options){parser.push("SENTINEL","SET",dbname);for(let option3 of options)parser.push(option3.option,option3.value)},transformReply:void 0}});var 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}});var 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}});var 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});var 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=__require("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=__require("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(config){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});return SentinelClient.prototype.Multi=multi_commands_1.default.extend(config),(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(config){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});return Sentinel.prototype.Multi=multi_commands_1.default.extend(config),(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}})}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 count3=0;while(!0){if(this.#trace("starting connect loop"),count3+=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&&count3>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}}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.#reset()}),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,size13]of analyzed.replicasToOpen){for(let i=0;i<size13;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});var 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.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 FLUSHALL_1=require_FLUSHALL();Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return FLUSHALL_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}})});var 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}});var 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}});var 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}});var 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});var 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}}});var 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}});var require_LOADCHUNK=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk3){parser.push("BF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk3)},transformReply:void 0}});var 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}});var 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}});var 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}});var 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]}}}});var 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}});var 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())}});var 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}}});var 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}});var require_INITBYPROB=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,error,probability){parser.push("CMS.INITBYPROB"),parser.pushKey(key),parser.push(error.toString(),probability.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var require_LOADCHUNK2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,iterator,chunk3){parser.push("CF.LOADCHUNK"),parser.pushKey(key),parser.push(iterator.toString(),chunk3)},transformReply:void 0}});var 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}});var 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]}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}})});var 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}});var 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}});var 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}});var 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}});var 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)}}});var require_ARRTRIM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,path,start3,stop2){parser.push("JSON.ARRTRIM"),parser.pushKey(key),parser.push(path,start3.toString(),stop2.toString())},transformReply:void 0}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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))}}});var 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}});var 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}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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]}}}});var 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}});var 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}})});var 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}}});var require_CREATE2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.REDISEARCH_LANGUAGE=exports.parseSchema=exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM=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"};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)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)args2.push("INITIAL_CAP",fieldOptions.INITIAL_CAP.toString());switch(fieldOptions.ALGORITHM){case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:if(fieldOptions.BLOCK_SIZE)args2.push("BLOCK_SIZE",fieldOptions.BLOCK_SIZE.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:if(fieldOptions.M)args2.push("M",fieldOptions.M.toString());if(fieldOptions.EF_CONSTRUCTION)args2.push("EF_CONSTRUCTION",fieldOptions.EF_CONSTRUCTION.toString());if(fieldOptions.EF_RUNTIME)args2.push("EF_RUNTIME",fieldOptions.EF_RUNTIME.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}});var 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}});var require_default=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.DEFAULT_DIALECT=void 0;exports.DEFAULT_DIALECT="2"});var 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[0]+1==reply.length,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}});var 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)}});var 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}});var 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}});var 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}});var 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}});var require_CONFIG_GET2=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,option3){parser.push("FT.CONFIG","GET",option3)},transformReply(reply){let transformedReply=Object.create(null);for(let item of reply){let[key,value]=item;transformedReply[key.toString()]=value}return transformedReply}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}}});var 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}}});var 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}});var 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}});var 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={},array4=reply[i+1];for(let i2=0;i2<array4.length;i2+=2){let innerKey=array4[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](array4[i2+1],void 0,typeMapping);break}}ret[key]=innerRet;break}case"cursor_stats":{let innerRet={},array4=reply[i+1];for(let i2=0;i2<array4.length;i2+=2){let innerKey=array4[i2].toString();switch(innerKey){case"global_idle":case"global_total":case"index_capacity":case"index_total":innerRet[innerKey]=array4[i2+1];break}}ret[key]=innerRet;break}}}return ret}});var 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}});var 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}});var 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}});var 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)}});var require_SUGADD=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string2,score,options){if(parser.push("FT.SUGADD"),parser.pushKey(key),parser.push(string2,score.toString()),options?.INCR)parser.push("INCR");if(options?.PAYLOAD)parser.push("PAYLOAD",options.PAYLOAD)},transformReply:void 0}});var require_SUGDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key,string2){parser.push("FT.SUGDEL"),parser.pushKey(key),parser.push(string2)},transformReply:void 0}});var 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}});var 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}}});var 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}}}});var 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}}}});var 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}});var 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}}});var 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}});var 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}}});var 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()),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,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}});var 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}})});var 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 tuple2=wrappedTuple,key=tuple2[0];ret.set(key.toString(),parseFunc(tuple2))}return ret}case Array:{for(let wrappedTuple of reply){let tuple2=wrappedTuple;tuple2[1]=parseFunc(tuple2)}return reply}default:{let ret=Object.create(null);for(let wrappedTuple of reply){let tuple2=wrappedTuple,key=tuple2[0];ret[key.toString()]=parseFunc(tuple2)}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 map22=new Map;for(let tuple2 of unwrappedLabels){let[key,value]=tuple2,unwrappedKey=key;map22.set(unwrappedKey.toString(),value)}return map22;case Array:return unwrappedLabels.flat();case Object:default:let labelsObject=Object.create(null);for(let tuple2 of unwrappedLabels){let[key,value]=tuple2,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 map22=new Map;for(let i=0;i<to;i++){let[key,value]=unwrappedLabels[i],unwrappedKey=key;map22.set(unwrappedKey.toString(),value)}transformedLabels=map22;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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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]}}}}});var 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}});var 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((chunk3)=>({startTimestamp:chunk3[1],endTimestamp:chunk3[3],samples:chunk3[5],size:chunk3[7],bytesPerSample:chunk3[9]}));break}}}return ret},3:void 0},unstableResp3:!0}});var 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}});var 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,filter10){parser.push("FILTER"),parser.pushVariadic(filter10)}exports.parseFilterArgument=parseFilterArgument;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter10,options){parser.push("TS.MGET"),parseLatestArgument(parser,options?.LATEST),parseFilterArgument(parser,filter10)},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)}})}}}});var 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,filter10,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter10)},transformReply:createTransformMGetLabelsReply()}});var 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,filter10,selectedLabels,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter10)},transformReply:(0,MGET_WITHLABELS_1.createTransformMGetLabelsReply)()}});var 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)}}}});var 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,filter10,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter10),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)}})}}}});var 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,filter10,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter10)}}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)}})}}}});var 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,filter10,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter10),(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)}})}}}});var 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,filter10,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter10),(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)}})}}}});var 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,filter10,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter10)}}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 tuple2 of unwrappedLabels){let[key,value]=tuple2,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)}})}}}});var 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,filter10,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter10)}}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)})}}}});var 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}});var 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}});var 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}});var 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}});var 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}});var 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}});var require_QUERYINDEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter10){parser.push("TS.QUERYINDEX"),parser.pushVariadic(filter10)},transformReply:{2:void 0,3:void 0}}});var 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}});var 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}});var 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}})});var 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.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 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});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);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";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 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 number(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,number(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),number=(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)};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 right2=right;var left2=left;var isLeft2=isLeft,isRight2=isRight;var match=dual(2,(self,{onLeft,onRight})=>isLeft2(self)?onLeft(self.left):onRight(self.right));var merge=match({onLeft:identity,onRight:identity});var isNonEmptyArray=(self)=>self.length>0;var make2=(compare)=>(self,that)=>self===that?0:compare(self,that);var number2=make2((self,that)=>self<that?-1:1);var mapInput2=dual(2,(self,f)=>make2((b1,b2)=>self(f(b1),f(b2))));var greaterThan=(O)=>dual(2,(self,that)=>O(self,that)===1);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);var getOrThrowWith=dual(2,(self,onNone)=>{if(isSome2(self))return self.value;throw onNone()}),getOrThrow=getOrThrowWith(()=>Error("getOrThrow called on a None")),map=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 max=Math.max(1,Math.floor(n)),out=Array(max);for(let i=0;i<max;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,clamp=(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(clamp(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],map2=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 Order=number2;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 not=(self)=>!self;var exports_Context={};__export(exports_Context,{unsafeMake:()=>unsafeMake,unsafeGet:()=>unsafeGet3,pick:()=>pick2,omit:()=>omit2,mergeAll:()=>mergeAll2,merge:()=>merge3,make:()=>make5,isTag:()=>isTag2,isReference:()=>isReference2,isContext:()=>isContext2,getOrElse:()=>getOrElse3,getOption:()=>getOption2,get:()=>get3,empty:()=>empty3,add:()=>add2,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 make4(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},TypeId3=Symbol.for("effect/Context"),ContextProto={[TypeId3]:{_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,number(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(`
4
4
  `);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(`
5
5
  `);lines.splice(1,3),error.stack=lines.join(`
6
- `)}return error},isContext=(u)=>hasProperty(u,TypeId3),isTag=(u)=>hasProperty(u,TagTypeId),isReference=(u)=>hasProperty(u,ReferenceTypeId),_empty=makeContext(new Map),empty2=()=>_empty,make4=(tag,service)=>makeContext(new Map([[tag.key,service]])),add=dual(3,(self,tag,service)=>{let map3=new Map(self.unsafeMap);return map3.set(tag.key,service),makeContext(map3)}),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)},unsafeGet2=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)}),get2=unsafeGet2,getOrElse2=dual(3,(self,tag,orElse)=>{if(!self.unsafeMap.has(tag.key))return isReference(tag)?getDefaultValue(tag):orElse();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 map3=new Map(self.unsafeMap);for(let[tag,s]of that.unsafeMap)map3.set(tag,s);return makeContext(map3)}),mergeAll=(...ctxs)=>{let map3=new Map;for(let i=0;i<ctxs.length;i++)ctxs[i].unsafeMap.forEach((value,key)=>{map3.set(key,value)});return makeContext(map3)},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,empty3=empty2,make5=make4,add2=add,get3=get2,getOrElse3=getOrElse2,unsafeGet3=unsafeGet2,getOption2=getOption,merge3=merge2,mergeAll2=mergeAll,pick2=pick,omit2=omit,Tag2=Tag,Reference2=Reference;var TypeId4=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,unsafeGet4(that,i)))),_equivalence3=getEquivalence2(equals),ChunkProto={[TypeId4]:{_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=_empty2,chunk.right=_empty2;break}case"ISingleton":{chunk.length=1,chunk.depth=0,chunk.left=_empty2,chunk.right=_empty2;break}case"ISlice":{chunk.length=backing.length,chunk.depth=backing.chunk.depth+1,chunk.left=_empty2,chunk.right=_empty2;break}}return chunk},isChunk=(u)=>hasProperty(u,TypeId4),_empty2=makeChunk({_tag:"IEmpty"}),empty4=()=>_empty2,make6=(...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]=unsafeGet4(self,i),i+=1,j+=1;break}}};var 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=_empty2,self.right=_empty2,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,get4=dual(2,(self,index)=>index<0||index>=self.length?none2():some2(unsafeGet4(self,index))),unsafeFromArray=(self)=>self.length===0?empty4():self.length===1?of2(self[0]):makeChunk({_tag:"IArray",array:self}),unsafeFromNonEmptyArray=(self)=>unsafeFromArray(self),unsafeGet4=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?unsafeGet4(self.left,index):unsafeGet4(self.right,index-self.left.length);case"ISlice":return unsafeGet4(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));var drop2=dual(2,(self,n)=>{if(n<=0)return self;else if(n>=self.length)return _empty2;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 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})}}});var isEmpty=(self)=>self.length===0,isNonEmpty=(self)=>self.length>0,head2=get4(0),unsafeHead=(self)=>unsafeGet4(self,0),headNonEmpty2=unsafeHead;var tailNonEmpty2=(self)=>drop2(self,1);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 match3=DURATION_REGEX.exec(input);if(match3){let[_,valueStr,unit]=match3,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")};var 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)}},make7=(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);var 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=make7(0),infinity=make7(1/0),nanos=(nanos2)=>make7(nanos2),micros=(micros2)=>make7(micros2*bigint1e3),millis=(millis2)=>make7(millis2),seconds=(seconds2)=>make7(seconds2*1000),minutes=(minutes2)=>make7(minutes2*60000),hours=(hours2)=>make7(hours2*3600000),days=(days2)=>make7(days2*86400000),weeks=(weeks2)=>make7(weeks2*604800000),toMillis=(self)=>match3(self,{onMillis:(millis2)=>millis2,onNanos:(nanos2)=>Number(nanos2)/1e6});var 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)]}},match3=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)});var Equivalence=(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2===that2,onNanos:(self2,that2)=>self2===that2});var lessThanOrEqualTo2=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2<=that2,onNanos:(self2,that2)=>self2<=that2}));var greaterThanOrEqualTo2=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,min2=sec/bigint60,hr=min2/bigint60,days2=hr/bigint24;return{days:Number(days2),hours:Number(hr%bigint24),minutes:Number(min2%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(" ")};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 make8=(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=make8(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 map3=Object.create(HashMapProto);return map3._editable=editable,map3._edit=edit,map3._root=root,map3._size=size,map3};class HashMapIterator{map;f;v;constructor(map3,f){this.map=map3,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)},_empty3=makeImpl(!1,0,new EmptyNode,0),empty5=()=>_empty3;var fromIterable3=(entries)=>{let map3=beginMutation(empty5());for(let entry of entries)set(map3,entry[0],entry[1]);return endMutation(map3)},isHashMap=(u)=>hasProperty(u,HashMapTypeId),isEmpty2=(self)=>self&&isEmptyNode(self._root),get5=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 map3=dual(2,(self,f)=>reduce2(self,empty5(),(map4,value,key)=>set(map4,key,f(value,key))));var forEach=dual(2,(self,f)=>reduce2(self,void 0,(_,value,key)=>f(value,key))),reduce2=dual(3,(self,zero2,f)=>{let root=self._root;if(root._tag==="LeafNode")return isSome2(root.value)?f(zero2,root.value.value,root.key):zero2;if(root._tag==="EmptyNode")return zero2;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))zero2=f(zero2,child.value.value,child.key)}else toVisit.push(child.children)}return zero2});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),_empty4=makeImpl2(empty5()),empty6=()=>_empty4,fromIterable4=(elements)=>{let set2=beginMutation2(empty6());for(let value of elements)add3(set2,value);return endMutation2(set2)},make9=(...elements)=>{let set2=beginMutation2(empty6());for(let value of elements)add3(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)}),add3=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(empty6(),(set2)=>{forEach2(self,(value)=>add3(set2,value));for(let value of that)add3(set2,value)}));var forEach2=dual(2,(self,f)=>forEach(self._keyMap,(_,k)=>f(k))),reduce3=dual(3,(self,zero2,f)=>reduce2(self._keyMap,zero2,(z,_,a)=>f(z,a)));var empty7=empty6,fromIterable5=fromIterable4,make10=make9,has3=has2;var size3=size2;var add4=add3,remove4=remove3,difference3=difference2;var union3=union2;var reduce4=reduce3;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)});var ids=(self)=>{switch(self._tag){case OP_NONE:return empty7();case OP_RUNTIME:return make10(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;var threadName2=threadName;var unsafeMake3=unsafeMake2;var empty8=empty5;var fromIterable6=fromIterable3,isEmpty3=isEmpty2,get7=get5;var set3=set,keys2=keys;var mutate3=mutate,modifyAt2=modifyAt;var map5=map3;var forEach3=forEach,reduce5=reduce2;var TypeId7=Symbol.for("effect/List"),toArray2=(self)=>fromIterable(self),getEquivalence3=(isEquivalent)=>mapInput(getEquivalence(isEquivalent),toArray2),_equivalence4=getEquivalence3(equals),ConsProto={[TypeId7]:TypeId7,_tag:"Cons",toString(){return format(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:toArray2(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},[symbol2](that){return isList(that)&&this._tag===that._tag&&_equivalence4(this,that)},[symbol](){return cached(this,array2(toArray2(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),empty9=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 reduce6=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=empty9(),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 variance(a){return a}var PatchProto={...Structural.prototype,[ContextPatchTypeId]:{_Value:variance,_Patch:variance}},EmptyProto=Object.assign(Object.create(PatchProto),{_tag:"Empty"}),_empty5=Object.create(EmptyProto),empty10=()=>_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=empty10();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 map6=new Map;for(let[tag]of context.unsafeMap)if(updatedContext.has(tag))map6.set(tag,updatedContext.get(tag)),updatedContext.delete(tag);for(let[tag,s]of updatedContext)map6.set(tag,s);return makeContext(map6)});var HashSetPatchTypeId=Symbol.for("effect/DifferHashSetPatch");function variance2(a){return a}var PatchProto2={...Structural.prototype,[HashSetPatchTypeId]:{_Value:variance2,_Key:variance2,_Patch:variance2}},EmptyProto2=Object.assign(Object.create(PatchProto2),{_tag:"Empty"}),_empty6=Object.create(EmptyProto2),empty11=()=>_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]=reduce4([oldValue,empty11()],([set4,patch3],value)=>{if(has3(value)(set4))return[remove4(value)(set4),patch3];return[set4,combine5(makeAdd(value))(patch3)]})(newValue);return reduce4(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=add4(head3.value)(set4),patches=tail;break}case"Remove":set4=remove4(head3.value)(set4),patches=tail}}return set4});var ReadonlyArrayPatchTypeId=Symbol.for("effect/DifferReadonlyArrayPatch");function variance3(a){return a}var PatchProto3={...Structural.prototype,[ReadonlyArrayPatchTypeId]:{_Value:variance3,_Patch:variance3}},EmptyProto3=Object.assign(Object.create(PatchProto3),{_tag:"Empty"}),_empty7=Object.create(EmptyProto3),empty12=()=>_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=empty12();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:empty10(),combine:(first,second)=>combine4(second)(first),diff:(oldValue,newValue)=>diff(oldValue,newValue),patch:(patch4,oldValue)=>patch(oldValue)(patch4)});var hashSet=()=>make14({empty:empty11(),combine:(first,second)=>combine5(second)(first),diff:(oldValue,newValue)=>diff2(oldValue,newValue),patch:(patch4,oldValue)=>patch2(oldValue)(patch4)});var readonlyArray=(differ)=>make14({empty:empty12(),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),empty13=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:empty13,diff:(oldValue,newValue)=>diff4(oldValue,newValue),combine:(first,second)=>andThen(second)(first),patch:(_patch,oldValue)=>patch4(oldValue,_patch)});var empty14=empty13;var enable3=enable,disable3=disable;var exclude2=exclude;var empty15={_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 flatten2=(self)=>{let current=of3(self),updated=empty9();while(!0){let[parallel,sequential]=reduce6(current,[parallelCollectionEmpty(),empty9()],([parallel2,sequential2],blockedRequest)=>{let[par2,seq2]=step(blockedRequest);return[parallelCollectionCombine(parallel2,par2),appendAll3(sequential2,seq2)]});if(updated=merge4(updated,parallel),isNil(sequential))return reverse3(updated);current=sequential}throw Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")},step=(requests)=>{let current=requests,parallel=parallelCollectionEmpty(),stack=empty9(),sequential=empty9();while(!0)switch(current._tag){case"Empty":{if(isNil(stack))return[parallel,sequential];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,sequential=cons(right3,sequential);break}}break}case"Single":{if(parallel=parallelCollectionAdd(parallel,current),isNil(stack))return[parallel,sequential];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=(sequential,parallel)=>{if(isNil(sequential))return of3(parallelCollectionToSequentialCollection(parallel));if(parallelCollectionIsEmpty(parallel))return sequential;let seqHeadKeys=sequentialCollectionKeys(sequential.head),parKeys=parallelCollectionKeys(parallel);if(seqHeadKeys.length===1&&parKeys.length===1&&equals(seqHeadKeys[0],parKeys[0]))return cons(sequentialCollectionCombine(sequential.head,parallelCollectionToSequentialCollection(parallel)),sequential.tail);return cons(parallelCollectionToSequentialCollection(parallel),sequential)},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(map6){this.map=map6}}var parallelCollectionEmpty=()=>new ParallelImpl(empty8());var parallelCollectionAdd=(self,blockedRequest)=>new ParallelImpl(modifyAt2(self.map,blockedRequest.dataSource,(_)=>orElseSome(map(_,append2(blockedRequest.blockedRequest)),()=>of2(blockedRequest.blockedRequest)))),parallelCollectionCombine=(self,that)=>new ParallelImpl(reduce5(self.map,that.map,(map6,value,key)=>set3(map6,key,match2(get7(map6,key),{onNone:()=>value,onSome:(other)=>appendAll2(value,other)})))),parallelCollectionIsEmpty=(self)=>isEmpty3(self.map),parallelCollectionKeys=(self)=>Array.from(keys2(self.map)),parallelCollectionToSequentialCollection=(self)=>sequentialCollectionMake(map5(self.map,(x)=>of2(x))),SequentialCollectionTypeId=Symbol.for("effect/RequestBlock/RequestBlockSequential"),sequentialVariance={_R:(_)=>_};class SequentialImpl{map;[SequentialCollectionTypeId]=sequentialVariance;constructor(map6){this.map=map6}}var sequentialCollectionMake=(map6)=>new SequentialImpl(map6),sequentialCollectionCombine=(self,that)=>new SequentialImpl(reduce5(that.map,self.map,(map6,value,key)=>set3(map6,key,match2(get7(map6,key),{onNone:()=>empty4(),onSome:(a)=>appendAll2(a,value)}))));var sequentialCollectionKeys=(self)=>Array.from(keys2(self.map)),sequentialCollectionToChunk=(self)=>Array.from(self.map);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),variance4={_E:(_)=>_},proto={[CauseTypeId]:variance4,[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()}},empty16=(()=>{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 isEmpty5=(self)=>{if(self._tag===OP_EMPTY)return!0;return reduce7(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(reduce7(self,empty4(),(list,cause)=>cause._tag===OP_FAIL?some2(pipe(list,prepend2(cause.error))):none2())),defects=(self)=>reverse2(reduce7(self,empty4(),(list,cause)=>cause._tag===OP_DIE?some2(pipe(list,prepend2(cause.defect))):none2())),interruptors=(self)=>reduce7(self,empty7(),(set4,cause)=>cause._tag===OP_INTERRUPT?some2(pipe(set4,add4(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 interruptOption=(self)=>find(self,(cause)=>cause._tag===OP_INTERRUPT?some2(cause.fiberId):none2()),keepDefects=(self)=>match4(self,{onEmpty:none2(),onFail:()=>none2(),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)}),keepDefectsAndElectFailures=(self)=>match4(self,{onEmpty:none2(),onFail:(failure)=>some2(die(failure)),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)});var stripFailures=(self)=>match4(self,{onEmpty:empty16,onFail:()=>empty16,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel}),electFailures=(self)=>match4(self,{onEmpty:empty16,onFail:die,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel});var flatMap6=dual(2,(self,f)=>match4(self,{onEmpty:empty16,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),reduce7([empty7(),empty4()],([parallel2,sequential2],cause)=>{let[par2,seq2]=evaluateCause(cause);return some2([pipe(parallel2,union3(par2)),pipe(sequential2,appendAll2(seq2))])})),[rightParallel,rightSequential]=pipe(headNonEmpty2(rightStack),reduce7([empty7(),empty4()],([parallel2,sequential2],cause)=>{let[par2,seq2]=evaluateCause(cause);return some2([pipe(parallel2,union3(par2)),pipe(sequential2,appendAll2(seq2))])}));if(!equals(leftParallel,rightParallel))return!1;leftStack=leftSequential,rightStack=rightSequential}return!0},flattenCause=(cause)=>{return flattenCauseLoop(of2(cause),empty4())},flattenCauseLoop=(causes,flattened)=>{while(!0){let[parallel2,sequential2]=pipe(causes,reduce([empty7(),empty4()],([parallel3,sequential3],cause)=>{let[par2,seq2]=evaluateCause(cause);return[pipe(parallel3,union3(par2)),pipe(sequential3,appendAll2(seq2))]})),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=empty7(),_sequential=empty4();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=add4(_parallel,make6(cause._tag,cause.error)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_DIE:{if(_parallel=add4(_parallel,make6(cause._tag,cause.defect)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_INTERRUPT:{if(_parallel=add4(_parallel,make6(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",match4=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)})}),reduce7=dual(3,(self,zero2,pf)=>{let accumulator=zero2,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 either2=output.pop();switch(either2._tag){case"Left":{switch(either2.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(either2.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} {
6
+ `)}return error},isContext=(u)=>hasProperty(u,TypeId3),isTag=(u)=>hasProperty(u,TagTypeId),isReference=(u)=>hasProperty(u,ReferenceTypeId),_empty=makeContext(new Map),empty2=()=>_empty,make4=(tag,service)=>makeContext(new Map([[tag.key,service]])),add=dual(3,(self,tag,service)=>{let map3=new Map(self.unsafeMap);return map3.set(tag.key,service),makeContext(map3)}),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)},unsafeGet2=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)}),get2=unsafeGet2,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 map3=new Map(self.unsafeMap);for(let[tag,s]of that.unsafeMap)map3.set(tag,s);return makeContext(map3)}),mergeAll=(...ctxs)=>{let map3=new Map;for(let i=0;i<ctxs.length;i++)ctxs[i].unsafeMap.forEach((value,key)=>{map3.set(key,value)});return makeContext(map3)},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,empty3=empty2,make5=make4,add2=add,get3=get2,getOrElse3=getOrElse2,unsafeGet3=unsafeGet2,getOption2=getOption,merge3=merge2,mergeAll2=mergeAll,pick2=pick,omit2=omit,Tag2=Tag,Reference2=Reference;var TypeId4=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,unsafeGet4(that,i)))),_equivalence3=getEquivalence2(equals),ChunkProto={[TypeId4]:{_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=_empty2,chunk.right=_empty2;break}case"ISingleton":{chunk.length=1,chunk.depth=0,chunk.left=_empty2,chunk.right=_empty2;break}case"ISlice":{chunk.length=backing.length,chunk.depth=backing.chunk.depth+1,chunk.left=_empty2,chunk.right=_empty2;break}}return chunk},isChunk=(u)=>hasProperty(u,TypeId4),_empty2=makeChunk({_tag:"IEmpty"}),empty4=()=>_empty2,make6=(...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]=unsafeGet4(self,i),i+=1,j+=1;break}}};var 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=_empty2,self.right=_empty2,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,get4=dual(2,(self,index)=>index<0||index>=self.length?none2():some2(unsafeGet4(self,index))),unsafeFromArray=(self)=>self.length===0?empty4():self.length===1?of2(self[0]):makeChunk({_tag:"IArray",array:self}),unsafeFromNonEmptyArray=(self)=>unsafeFromArray(self),unsafeGet4=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?unsafeGet4(self.left,index):unsafeGet4(self.right,index-self.left.length);case"ISlice":return unsafeGet4(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 _empty2;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 _empty2;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=_empty2,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=get4(0),unsafeHead=(self)=>unsafeGet4(self,0),headNonEmpty2=unsafeHead,last2=(self)=>get4(self,self.length-1),unsafeLast=(self)=>unsafeGet4(self,self.length-1);var map3=dual(2,(self,f)=>self.backing._tag==="ISingleton"?of2(f(self.backing.a,0)):unsafeFromArray(pipe(toReadonlyArray(self),map2((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 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 match3=DURATION_REGEX.exec(input);if(match3){let[_,valueStr,unit]=match3,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")};var 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)}},make7=(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=make7(0),infinity=make7(1/0),nanos=(nanos2)=>make7(nanos2),micros=(micros2)=>make7(micros2*bigint1e3),millis=(millis2)=>make7(millis2),seconds=(seconds2)=>make7(seconds2*1000),minutes=(minutes2)=>make7(minutes2*60000),hours=(hours2)=>make7(hours2*3600000),days=(days2)=>make7(days2*86400000),weeks=(weeks2)=>make7(weeks2*604800000),toMillis=(self)=>match3(self,{onMillis:(millis2)=>millis2,onNanos:(nanos2)=>Number(nanos2)/1e6});var 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)]}},match3=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)});var Equivalence=(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>self2===that2,onNanos:(self2,that2)=>self2===that2});var sum=dual(2,(self,that)=>matchWith(self,that,{onMillis:(self2,that2)=>make7(self2+that2),onNanos:(self2,that2)=>make7(self2+that2)}));var lessThanOrEqualTo2=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})),greaterThanOrEqualTo2=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,min2=sec/bigint60,hr=min2/bigint60,days2=hr/bigint24;return{days:Number(days2),hours:Number(hr%bigint24),minutes:Number(min2%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(" ")};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 make8=(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=make8(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 map4=Object.create(HashMapProto);return map4._editable=editable,map4._edit=edit,map4._root=root,map4._size=size,map4};class HashMapIterator{map;f;v;constructor(map4,f){this.map=map4,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)},_empty3=makeImpl(!1,0,new EmptyNode,0),empty5=()=>_empty3;var fromIterable3=(entries)=>{let map4=beginMutation(empty5());for(let entry of entries)set(map4,entry[0],entry[1]);return endMutation(map4)},isHashMap=(u)=>hasProperty(u,HashMapTypeId),isEmpty2=(self)=>self&&isEmptyNode(self._root),get5=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 map4=dual(2,(self,f)=>reduce3(self,empty5(),(map5,value,key)=>set(map5,key,f(value,key))));var forEach=dual(2,(self,f)=>reduce3(self,void 0,(_,value,key)=>f(value,key))),reduce3=dual(3,(self,zero2,f)=>{let root=self._root;if(root._tag==="LeafNode")return isSome2(root.value)?f(zero2,root.value.value,root.key):zero2;if(root._tag==="EmptyNode")return zero2;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))zero2=f(zero2,child.value.value,child.key)}else toVisit.push(child.children)}return zero2});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),_empty4=makeImpl2(empty5()),empty6=()=>_empty4,fromIterable4=(elements)=>{let set2=beginMutation2(empty6());for(let value of elements)add3(set2,value);return endMutation2(set2)},make9=(...elements)=>{let set2=beginMutation2(empty6());for(let value of elements)add3(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)}),add3=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(empty6(),(set2)=>{forEach2(self,(value)=>add3(set2,value));for(let value of that)add3(set2,value)}));var forEach2=dual(2,(self,f)=>forEach(self._keyMap,(_,k)=>f(k))),reduce4=dual(3,(self,zero2,f)=>reduce3(self._keyMap,zero2,(z,_,a)=>f(z,a)));var empty7=empty6,fromIterable5=fromIterable4,make10=make9,has3=has2;var size3=size2;var add4=add3,remove4=remove3,difference3=difference2;var union3=union2;var forEach3=forEach2,reduce5=reduce4;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 empty7();case OP_RUNTIME:return make10(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 empty8=empty5;var fromIterable6=fromIterable3,isEmpty3=isEmpty2,get7=get5;var set3=set,keys2=keys;var mutate3=mutate,modifyAt2=modifyAt;var map6=map4;var forEach4=forEach,reduce6=reduce3;var TypeId7=Symbol.for("effect/List"),toArray2=(self)=>fromIterable(self),getEquivalence3=(isEquivalent)=>mapInput(getEquivalence(isEquivalent),toArray2),_equivalence4=getEquivalence3(equals),ConsProto={[TypeId7]:TypeId7,_tag:"Cons",toString(){return format(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:toArray2(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},[symbol2](that){return isList(that)&&this._tag===that._tag&&_equivalence4(this,that)},[symbol](){return cached(this,array2(toArray2(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),empty9=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 reduce7=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=empty9(),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 variance(a){return a}var PatchProto={...Structural.prototype,[ContextPatchTypeId]:{_Value:variance,_Patch:variance}},EmptyProto=Object.assign(Object.create(PatchProto),{_tag:"Empty"}),_empty5=Object.create(EmptyProto),empty10=()=>_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=empty10();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 map7=new Map;for(let[tag]of context.unsafeMap)if(updatedContext.has(tag))map7.set(tag,updatedContext.get(tag)),updatedContext.delete(tag);for(let[tag,s]of updatedContext)map7.set(tag,s);return makeContext(map7)});var HashSetPatchTypeId=Symbol.for("effect/DifferHashSetPatch");function variance2(a){return a}var PatchProto2={...Structural.prototype,[HashSetPatchTypeId]:{_Value:variance2,_Key:variance2,_Patch:variance2}},EmptyProto2=Object.assign(Object.create(PatchProto2),{_tag:"Empty"}),_empty6=Object.create(EmptyProto2),empty11=()=>_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,empty11()],([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=add4(head3.value)(set4),patches=tail;break}case"Remove":set4=remove4(head3.value)(set4),patches=tail}}return set4});var ReadonlyArrayPatchTypeId=Symbol.for("effect/DifferReadonlyArrayPatch");function variance3(a){return a}var PatchProto3={...Structural.prototype,[ReadonlyArrayPatchTypeId]:{_Value:variance3,_Patch:variance3}},EmptyProto3=Object.assign(Object.create(PatchProto3),{_tag:"Empty"}),_empty7=Object.create(EmptyProto3),empty12=()=>_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=empty12();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:empty10(),combine:(first,second)=>combine4(second)(first),diff:(oldValue,newValue)=>diff(oldValue,newValue),patch:(patch4,oldValue)=>patch(oldValue)(patch4)});var hashSet=()=>make14({empty:empty11(),combine:(first,second)=>combine5(second)(first),diff:(oldValue,newValue)=>diff2(oldValue,newValue),patch:(patch4,oldValue)=>patch2(oldValue)(patch4)});var readonlyArray=(differ)=>make14({empty:empty12(),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),empty13=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:empty13,diff:(oldValue,newValue)=>diff4(oldValue,newValue),combine:(first,second)=>andThen(second)(first),patch:(_patch,oldValue)=>patch4(oldValue,_patch)});var empty14=empty13;var enable3=enable,disable3=disable;var exclude2=exclude;var empty15={_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 flatten3=(self)=>{let current=of3(self),updated=empty9();while(!0){let[parallel,sequential]=reduce7(current,[parallelCollectionEmpty(),empty9()],([parallel2,sequential2],blockedRequest)=>{let[par2,seq2]=step(blockedRequest);return[parallelCollectionCombine(parallel2,par2),appendAll3(sequential2,seq2)]});if(updated=merge4(updated,parallel),isNil(sequential))return reverse3(updated);current=sequential}throw Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")},step=(requests)=>{let current=requests,parallel=parallelCollectionEmpty(),stack=empty9(),sequential=empty9();while(!0)switch(current._tag){case"Empty":{if(isNil(stack))return[parallel,sequential];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,sequential=cons(right3,sequential);break}}break}case"Single":{if(parallel=parallelCollectionAdd(parallel,current),isNil(stack))return[parallel,sequential];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=(sequential,parallel)=>{if(isNil(sequential))return of3(parallelCollectionToSequentialCollection(parallel));if(parallelCollectionIsEmpty(parallel))return sequential;let seqHeadKeys=sequentialCollectionKeys(sequential.head),parKeys=parallelCollectionKeys(parallel);if(seqHeadKeys.length===1&&parKeys.length===1&&equals(seqHeadKeys[0],parKeys[0]))return cons(sequentialCollectionCombine(sequential.head,parallelCollectionToSequentialCollection(parallel)),sequential.tail);return cons(parallelCollectionToSequentialCollection(parallel),sequential)},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(map7){this.map=map7}}var parallelCollectionEmpty=()=>new ParallelImpl(empty8());var parallelCollectionAdd=(self,blockedRequest)=>new ParallelImpl(modifyAt2(self.map,blockedRequest.dataSource,(_)=>orElseSome(map(_,append2(blockedRequest.blockedRequest)),()=>of2(blockedRequest.blockedRequest)))),parallelCollectionCombine=(self,that)=>new ParallelImpl(reduce6(self.map,that.map,(map7,value,key)=>set3(map7,key,match2(get7(map7,key),{onNone:()=>value,onSome:(other)=>appendAll2(value,other)})))),parallelCollectionIsEmpty=(self)=>isEmpty3(self.map),parallelCollectionKeys=(self)=>Array.from(keys2(self.map)),parallelCollectionToSequentialCollection=(self)=>sequentialCollectionMake(map6(self.map,(x)=>of2(x))),SequentialCollectionTypeId=Symbol.for("effect/RequestBlock/RequestBlockSequential"),sequentialVariance={_R:(_)=>_};class SequentialImpl{map;[SequentialCollectionTypeId]=sequentialVariance;constructor(map7){this.map=map7}}var sequentialCollectionMake=(map7)=>new SequentialImpl(map7),sequentialCollectionCombine=(self,that)=>new SequentialImpl(reduce6(that.map,self.map,(map7,value,key)=>set3(map7,key,match2(get7(map7,key),{onNone:()=>empty4(),onSome:(a)=>appendAll2(a,value)}))));var sequentialCollectionKeys=(self)=>Array.from(keys2(self.map)),sequentialCollectionToChunk=(self)=>Array.from(self.map);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),variance4={_E:(_)=>_},proto={[CauseTypeId]:variance4,[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()}},empty16=(()=>{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 isEmpty5=(self)=>{if(self._tag===OP_EMPTY)return!0;return reduce8(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(reduce8(self,empty4(),(list,cause)=>cause._tag===OP_FAIL?some2(pipe(list,prepend2(cause.error))):none2())),defects=(self)=>reverse2(reduce8(self,empty4(),(list,cause)=>cause._tag===OP_DIE?some2(pipe(list,prepend2(cause.defect))):none2())),interruptors=(self)=>reduce8(self,empty7(),(set4,cause)=>cause._tag===OP_INTERRUPT?some2(pipe(set4,add4(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)=>match4(self,{onEmpty:some2(empty16),onFail:map(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)=>match4(self,{onEmpty:none2(),onFail:()=>none2(),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)}),keepDefectsAndElectFailures=(self)=>match4(self,{onEmpty:none2(),onFail:(failure)=>some2(die(failure)),onDie:(defect)=>some2(die(defect)),onInterrupt:()=>none2(),onSequential:mergeWith(sequential),onParallel:mergeWith(parallel)});var stripFailures=(self)=>match4(self,{onEmpty:empty16,onFail:()=>empty16,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel}),electFailures=(self)=>match4(self,{onEmpty:empty16,onFail:die,onDie:die,onInterrupt:interrupt,onSequential:sequential,onParallel:parallel});var map8=dual(2,(self,f)=>flatMap7(self,(e)=>fail(f(e)))),flatMap7=dual(2,(self,f)=>match4(self,{onEmpty:empty16,onFail:(error)=>f(error),onDie:(defect)=>die(defect),onInterrupt:(fiberId)=>interrupt(fiberId),onSequential:(left3,right3)=>sequential(left3,right3),onParallel:(left3,right3)=>parallel(left3,right3)})),flatten4=(self)=>flatMap7(self,identity);var causeEquals=(left3,right3)=>{let leftStack=of2(left3),rightStack=of2(right3);while(isNonEmpty(leftStack)&&isNonEmpty(rightStack)){let[leftParallel,leftSequential]=pipe(headNonEmpty2(leftStack),reduce8([empty7(),empty4()],([parallel2,sequential2],cause)=>{let[par2,seq2]=evaluateCause(cause);return some2([pipe(parallel2,union3(par2)),pipe(sequential2,appendAll2(seq2))])})),[rightParallel,rightSequential]=pipe(headNonEmpty2(rightStack),reduce8([empty7(),empty4()],([parallel2,sequential2],cause)=>{let[par2,seq2]=evaluateCause(cause);return some2([pipe(parallel2,union3(par2)),pipe(sequential2,appendAll2(seq2))])}));if(!equals(leftParallel,rightParallel))return!1;leftStack=leftSequential,rightStack=rightSequential}return!0},flattenCause=(cause)=>{return flattenCauseLoop(of2(cause),empty4())},flattenCauseLoop=(causes,flattened)=>{while(!0){let[parallel2,sequential2]=pipe(causes,reduce([empty7(),empty4()],([parallel3,sequential3],cause)=>{let[par2,seq2]=evaluateCause(cause);return[pipe(parallel3,union3(par2)),pipe(sequential3,appendAll2(seq2))]})),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=empty7(),_sequential=empty4();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=add4(_parallel,make6(cause._tag,cause.error)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_DIE:{if(_parallel=add4(_parallel,make6(cause._tag,cause.defect)),stack.length===0)return[_parallel,_sequential];cause=stack.pop();break}case OP_INTERRUPT:{if(_parallel=add4(_parallel,make6(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",match4=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)})}),reduce8=dual(3,(self,zero2,pf)=>{let accumulator=zero2,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 either2=output.pop();switch(either2._tag){case"Left":{switch(either2.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(either2.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} {
7
7
  ${renderErrorCause(e.cause," ")}
8
8
  }`}).join(`
9
9
  `)},renderErrorCause=(cause,prefix)=>{let lines=cause.stack.split(`
@@ -13,20 +13,24 @@ ${renderErrorCause(cause.cause,`${prefix} `)}
13
13
  ${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(`
14
14
  `):stack.split(`
15
15
  `);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),match5=!1;for(let[,location]of locationMatchAll)match5=!0,out.push(` at ${current.name} (${location})`);if(!match5)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(`
16
- `)},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 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)=>flatMap7(acquire,(a)=>flatMap7(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)=>flatMap7(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)=>flatMap7(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)=>flatMap7(sync(evaluate),fail2),failCause=(cause)=>{let effect=new EffectPrimitiveFailure(OP_FAILURE);return effect.effect_instruction_i0=cause,effect},failCauseSync=(evaluate)=>flatMap7(sync(evaluate),failCause),fiberId=withFiberRuntime((state)=>succeed(state.id())),fiberIdWith=(f)=>withFiberRuntime((state)=>f(state.id())),flatMap7=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)=>flatMap7(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},flatten4=(self)=>flatMap7(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)?flatMap7(self,(b)=>b?options.onTrue():options.onFalse()):self?options.onTrue():options.onFalse()),interrupt2=flatMap7(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)=>flatMap7(exit(restore(self)),(exit2)=>deferredDone(deferred,exit2)))),map8=dual(2,(self,f)=>flatMap7(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_}))),orElse=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)=>flatMap7(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)=>flatMap7(condition,(b)=>{if(b)return pipe(self,map8(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)=>flatMap7(self,(a)=>map8(that,(b)=>[a,b])));var zipLeft=dual(2,(self,that)=>flatMap7(self,(a)=>as(that,a))),zipRight=dual(2,(self,that)=>flatMap7(self,()=>that)),zipWith2=dual(3,(self,that,f)=>flatMap7(self,(a)=>map8(that,(b)=>f(a,b)))),never=asyncInterrupt(()=>{let interval=setInterval(()=>{},2147483647);return sync(()=>clearInterval(interval))}),interruptFiber=(self)=>flatMap7(fiberId,(fiberId2)=>pipe(self,interruptAsFiber(fiberId2))),interruptAsFiber=dual(2,(self,fiberId2)=>flatMap7(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)}};var FiberRefSymbolKey="effect/FiberRef",FiberRefTypeId=Symbol.for(FiberRefSymbolKey),fiberRefVariance={_A:(_)=>_},fiberRefGet=(self)=>withFiberRuntime((fiber)=>exitSucceed(fiber.getFiberRef(self)));var fiberRefGetWith=dual(2,(self,f)=>flatMap7(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(empty3())),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(empty8())),currentLogLevel=globalValue(Symbol.for("effect/FiberRef/currentLogLevel"),()=>fiberRefUnsafeMake(logLevelInfo)),currentLogSpan=globalValue(Symbol.for("effect/FiberRef/currentLogSpan"),()=>fiberRefUnsafeMake(empty9())),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(empty16,{fork:()=>empty16,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(empty8())),currentTracerSpanLinks=globalValue(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>fiberRefUnsafeMake(empty4())),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);var 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()}
16
+ `)},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 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)))),map9=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,map9(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)=>map9(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)=>map9(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)}};var 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(empty3())),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(empty8())),currentLogLevel=globalValue(Symbol.for("effect/FiberRef/currentLogLevel"),()=>fiberRefUnsafeMake(logLevelInfo)),currentLogSpan=globalValue(Symbol.for("effect/FiberRef/currentLogSpan"),()=>fiberRefUnsafeMake(empty9())),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(empty16,{fork:()=>empty16,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(empty8())),currentTracerSpanLinks=globalValue(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>fiberRefUnsafeMake(empty4())),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,map(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()}
17
17
  ${this.stack.split(`
18
18
  `).slice(1).join(`
19
- `)}`: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");var 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))}});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);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=()=>flatMap7(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));var deferredFailCause=dual(2,(self,cause)=>deferredCompleteWith(self,failCause(cause)));var deferredInterrupt=(self)=>flatMap7(fiberId,(fiberId2)=>deferredCompleteWith(self,interruptWith(fiberId2)));var 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)=>flatMap7(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)=>flatMap7(self,(a)=>flatMap7(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 _await=deferredAwait;var done2=deferredDone;var interrupt3=deferredInterrupt;var unsafeMake4=deferredUnsafeMake;var flatten5=exitFlatten;var succeed2=exitSucceed;var TypeId8=Symbol.for("effect/MutableHashMap"),MutableHashMapProto={[TypeId8]:TypeId8,[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 empty17=()=>{let self=Object.create(MutableHashMapProto);return self.referential=new Map,self.buckets=new Map,self.bucketsSize=0,self};var get8=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(get8(self,key))),set4=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 size4=(self)=>{return self.referential.size+self.bucketsSize};var TypeId9=Symbol.for("effect/MutableList"),MutableListProto={[TypeId9]:TypeId9,[Symbol.iterator](){let done3=!1,head3=this.head;return{next(){if(done3)return this.return();if(head3==null)return done3=!0,this.return();let value=head3.value;return head3=head3.next,{done:done3,value}},return(value){if(!done3)done3=!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}),empty18=()=>{let list=Object.create(MutableListProto);return list.head=void 0,list.tail=void 0,list._length=0,list};var isEmpty6=(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 head3=self.head;if(head3!==void 0)return remove6(self,head3),head3.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 TypeId10=Symbol.for("effect/MutableQueue"),EmptyMutableQueue=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto={[TypeId10]:TypeId10,[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)}},make18=(capacity)=>{let queue=Object.create(MutableQueueProto);return queue.queue=empty18(),queue.capacity=capacity,queue};var unbounded=()=>make18(void 0);var 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});var poll=dual(2,(self,def)=>{if(isEmpty6(self.queue))return def;return shift(self.queue)});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 make19=()=>new ClockImpl;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)}});var empty19={_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=map2(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),make21=(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)=>make21({load:(config)=>flatMap7(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`)),flatMap7((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:empty19}))};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),flatMap7(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),flatMap7((prefix2)=>pipe(flat.load(prefix2,op,split),flatMap7((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),flatMap7((patchedPrefix)=>pipe(flat.enumerateChildren(patchedPrefix),flatMap7(indicesFrom),flatMap7((indices)=>{if(indices.length===0)return suspend(()=>map8(fromFlatLoop(flat,prefix,op.config,!0),of));return pipe(forEachSequential(indices,(index)=>fromFlatLoop(flat,append(prefix,`[${index}]`),op.config,!0)),map8((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),flatMap7((prefix2)=>pipe(flat.enumerateChildren(prefix2),flatMap7((keys3)=>{return pipe(keys3,forEachSequential((key)=>fromFlatLoop(flat,concat(prefix2,of(key)),op.valueConfig,split)),map8((matrix)=>{if(matrix.length===0)return of(empty8());return pipe(transpose(matrix),map2((values3)=>fromIterable6(zip(fromIterable(keys3),values3))))}))})))));case OP_ZIP_WITH:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.left,split),either2,flatMap7((left3)=>pipe(fromFlatLoop(flat,prefix,op.right,split),either2,flatMap7((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(".")),fail3=fromFlatLoopFail(prefix,path),[lefts,rights]=extend(fail3,fail3,pipe(left3.right,map2(right2)),pipe(right3.right,map2(right2)));return pipe(lefts,zip(rights),forEachSequential(([left4,right4])=>pipe(zip2(left4,right4),map8(([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(Order)}),either2,map8(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 TypeId11=Symbol.for("effect/Console"),consoleTag=GenericTag("effect/Console"),defaultConsole={[TypeId11]:TypeId11,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 map8(this.next,(n)=>n>0.5)}get nextInt(){return sync(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(min2,max2){return map8(this.next,(n)=>(max2-min2)*n+min2)}nextIntBetween(min2,max2){return sync(()=>this.PRNG.integer(max2-min2)+min2)}shuffle(elements){return shuffleWith(elements,(n)=>this.nextIntBetween(0,n))}}var shuffleWith=(elements,nextIntBounded)=>{return suspend(()=>pipe(sync(()=>Array.from(elements)),flatMap7((buffer)=>{let numbers=[];for(let i=buffer.length;i>=2;i=i-1)numbers.push(i);return pipe(numbers,forEachSequentialDiscard((n)=>pipe(nextIntBounded(n),map8((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},make22=(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(min2,max2){return map8(this.next,(n)=>(max2-min2)*n+min2)}nextIntBetween(min2,max2){return sync(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.max(min2,Math.min(max2-1,Math.round(value)));let hash2=Math.abs(hash(value));return min2+hash2%(max2-min2)})}shuffle(elements){return shuffleWith(elements,(n)=>this.nextIntBetween(0,n))}}var fixed=(values3)=>new FixedRandomImpl(values3);var TracerTypeId=Symbol.for("effect/Tracer"),make23=(options)=>({[TracerTypeId]:TracerTypeId,...options}),tracerTag=GenericTag("effect/Tracer"),spanTag=GenericTag("effect/ParentSpan"),randomHexString=function(){return function(length2){let result="";for(let i=0;i<length2;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=make23({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(`
20
- `);if(stack[3]!==void 0)return cache=stack[3].trim(),cache}}}},DisablePropagation=Reference2()("effect/Tracer/DisablePropagation",{defaultValue:constFalse});var liveServices=pipe(empty3(),add2(clockTag,make19()),add2(consoleTag,defaultConsole),add2(randomTag,make22(Math.random())),add2(configProviderTag,fromEnv()),add2(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,add2(clockTag,c))(effect)),withConfigProvider=dual(2,(self,provider)=>fiberRefLocallyWith(currentServices,add2(configProviderTag,provider))(self)),configProviderWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(configProviderTag.key)));var randomWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(randomTag.key))),withRandom=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add2(randomTag,value))(effect));var tracerWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(tracerTag.key))),withTracer=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add2(tracerTag,value))(effect));var sleep2=sleep,currentTimeMillis2=currentTimeMillis,currentTimeNanos2=currentTimeNanos,clockWith2=clockWith,Clock=clockTag;function unsafeMake5(fiberRefLocals){return new FiberRefsImpl(fiberRefLocals)}function empty20(){return unsafeMake5(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 map9=new Map;return unsafeForkAs(self,map9,childId),new FiberRefsImpl(map9)}),unsafeForkAs=(self,map9,fiberId2)=>{self.locals.forEach((stack,fiberRef)=>{let oldValue=stack[0][1],newValue=fiberRef.patch(fiberRef.fork)(oldValue);if(equals(oldValue,newValue))map9.set(fiberRef,stack);else map9.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)}),get9=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(get9(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 get10=get9,getOrDefault2=getOrDefault,joinAs2=joinAs,setAll2=setAll;var updateManyAs2=updateManyAs;var empty21=empty20;var All=logLevelAll,Fatal=logLevelFatal,Error2=logLevelError,Warning=logLevelWarning,Info=logLevelInfo,Debug=logLevelDebug,Trace=logLevelTrace,None3=logLevelNone;var Order2=pipe(Order,mapInput2((level)=>level.ordinal));var greaterThan2=greaterThan(Order2);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 make24=(label,startTime)=>({label,startTime}),formatLabel=(key)=>key.replace(/[\s="]/g,"_"),render=(now)=>(self)=>{return`${formatLabel(self.label)}=${now-self.startTime}ms`};var make25=make24;var EffectPrototype2=EffectPrototype,CommitPrototype2=CommitPrototype;var Base2=Base;class Class extends Base2{}var TypeId12=Symbol.for("effect/Readable");var Proto={[TypeId12]:TypeId12,pipe(){return pipeArguments(this,arguments)}};var RefTypeId=Symbol.for("effect/Ref"),refVariance={_A:(_)=>_};class RefImpl extends Class{ref;commit(){return this.get}[RefTypeId]=refVariance;[TypeId12]=TypeId12;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 unsafeMake6=(value)=>new RefImpl(make11(value)),make26=(value)=>sync(()=>unsafeMake6(value)),get11=(self)=>self.get,set5=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 make27=make26,get12=get11,getAndSet2=getAndSet;var update3=update2;var tracerWith2=tracerWith;var OP_EMPTY2="Empty",OP_ADD="Add",OP_REMOVE="Remove",OP_UPDATE="Update",OP_AND_THEN="AndThen",empty22={_tag:OP_EMPTY2},diff5=(oldValue,newValue)=>{let missingLocals=new Map(oldValue.locals),patch6=empty22;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 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 make28=(key,value)=>{return new MetricLabelImpl(key,value)},isMetricLabel=(u)=>hasProperty(u,MetricLabelTypeId);var annotateLogs=dual((args)=>isEffect(args[0]),function(){let args=arguments;return fiberRefLocallyWith(args[0],currentLogAnnotations,typeof args[1]==="string"?set3(args[1],args[2]):(annotations)=>Object.entries(args[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),asSome=(self)=>map8(self,some2),asSomeError=(self)=>mapError(self,some2),try_=(arg)=>{let evaluate,onFailure=void 0;if(typeof arg==="function")evaluate=arg;else evaluate=arg.try,onFailure=arg.catch;return suspend(()=>{try{return succeed(internalCall(evaluate))}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((args)=>isEffect(args[0]),(self,...args)=>{let f=args[args.length-1],predicate;if(args.length===2)predicate=isTagged(args[0]);else predicate=(e)=>{let tag=hasProperty(e,"_tag")?e._tag:void 0;if(!tag)return!1;for(let i=0;i<args.length-1;i++)if(args[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:()=>empty16}),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(map8,flatMap7),bindTo2=bindTo(map8),let_2=let_(map8),dropUntil=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,dropping=succeed(!1),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;dropping=flatMap7(dropping,(bool)=>{if(bool)return builder.push(a),succeed(!0);return predicate(a,index)})}return map8(dropping,()=>builder)})),dropWhile=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,dropping=succeed(!0),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;dropping=flatMap7(dropping,(d)=>map8(d?predicate(a,index):succeed(!1),(b)=>{if(!b)builder.push(a);return b}))}return map8(dropping,()=>builder)})),contextWith=(f)=>map8(context(),f),eventually=(self)=>orElse(self,()=>flatMap7(yieldNow(),()=>eventually(self))),filterMap3=dual(2,(elements,pf)=>map8(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,orElse2)=>flatMap7(self,(a)=>predicate(a)?succeed(a):orElse2(a))),liftPredicate=dual(3,(self,predicate,orFailWith)=>suspend(()=>predicate(self)?succeed(self):fail2(orFailWith(self)))),filterOrFail=dual((args)=>isEffect(args[0]),(self,predicate,orFailWith)=>filterOrElse(self,predicate,(a)=>orFailWith===void 0?fail2(new NoSuchElementException):failSync(()=>orFailWith(a)))),findFirst3=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),next=iterator.next();if(!next.done)return findLoop(iterator,0,predicate,next.value);return succeed(none2())})),findLoop=(iterator,index,f,value)=>flatMap7(f(value,index),(result)=>{if(result)return succeed(some2(value));let next=iterator.next();if(!next.done)return findLoop(iterator,index+1,f,next.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)=>orElse(left3,()=>right3)))}),flipWith=dual(2,(self,f)=>flip(f(flip(self)))),match6=dual(2,(self,options)=>matchEffect(self,{onFailure:(e)=>succeed(options.onFailure(e)),onSuccess:(a)=>succeed(options.onSuccess(a))})),every4=dual(2,(elements,predicate)=>suspend(()=>forAllLoop(elements[Symbol.iterator](),0,predicate))),forAllLoop=(iterator,index,f)=>{let next=iterator.next();return next.done?succeed(!0):flatMap7(f(next.value,index),(b)=>b?forAllLoop(iterator,index+1,f):succeed(b))},forever=(self)=>{let loop=flatMap7(flatMap7(self,()=>yieldNow()),()=>loop);return loop},fiberRefs2=withFiberRuntime((state)=>succeed(state.getFiberRefs())),head3=(self)=>flatMap7(self,(as2)=>{let next=as2[Symbol.iterator]().next();if(next.done)return fail2(new NoSuchElementException);return succeed(next.value)}),ignore=(self)=>match6(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)),isFailure=(self)=>match6(self,{onFailure:constTrue,onSuccess:constFalse}),isSuccess=(self)=>match6(self,{onFailure:constFalse,onSuccess:constTrue}),iterate=(initial,options)=>suspend(()=>{if(options.while(initial))return flatMap7(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=empty16;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)=>flatMap7(currentTimeMillis2,(now)=>fiberRefLocallyWith(effect,currentLogSpan,prepend3(make25(label,now))))),logAnnotations=fiberRefGet(currentLogAnnotations),loop=(initial,options)=>options.discard?loopDiscard(initial,options.while,options.step,options.body):map8(loopInternal(initial,options.while,options.step,options.body),fromIterable),loopInternal=(initial,cont,inc,body)=>suspend(()=>cont(initial)?flatMap7(body(initial),(a)=>map8(loopInternal(inc(initial),cont,inc,body),prepend3(a))):sync(()=>empty9())),loopDiscard=(initial,cont,inc,body)=>suspend(()=>cont(initial)?flatMap7(body(initial),()=>loopDiscard(inc(initial),cont,inc,body)):void_),mapAccum2=dual(3,(elements,initial,f)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],result=succeed(initial),next,i=0;while(!(next=iterator.next()).done){let index=i++,value=next.value;result=flatMap7(result,(state)=>map8(f(state,value,index),([z,b])=>{return builder.push(b),z}))}return map8(result,(z)=>[z,builder])})),mapErrorCause=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(c)=>failCauseSync(()=>f(c)),onSuccess:succeed})),memoize=(self)=>pipe(deferredMake(),flatMap7((deferred)=>pipe(diffFiberRefsAndRuntimeFlags(self),intoDeferred(deferred),once,map8((complete)=>zipRight(complete,pipe(deferredAwait(deferred),flatMap7(([patch7,a])=>as(zip2(patchFiberRefs(patch7[0]),updateRuntimeFlags(patch7[1])),a)))))))),merge5=(self)=>matchEffect(self,{onFailure:(e)=>succeed(e),onSuccess:succeed}),negate=(self)=>map8(self,(b)=>!b),none6=(self)=>flatMap7(self,(option)=>{switch(option._tag){case"None":return void_;case"Some":return fail2(new NoSuchElementException)}}),once=(self)=>map8(make27(!0),(ref)=>asVoid(whenEffect(self,getAndSet2(ref,!1)))),option=(self)=>matchEffect(self,{onFailure:()=>succeed(none2()),onSuccess:(a)=>succeed(some2(a))}),orElseFail=dual(2,(self,evaluate)=>orElse(self,()=>failSync(evaluate))),orElseSucceed=dual(2,(self,evaluate)=>orElse(self,()=>sync(evaluate))),parallelErrors=(self)=>matchCauseEffect(self,{onFailure:(cause2)=>{let errors=fromIterable(failures(cause2));return errors.length===0?failCause(cause2):fail2(errors)},onSuccess:succeed}),patchFiberRefs=(patch7)=>updateFiberRefs((fiberId2,fiberRefs3)=>pipe(patch7,patch6(fiberId2,fiberRefs3))),promise=(evaluate)=>evaluate.length>=1?async_((resolve,signal)=>{try{evaluate(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}):async_((resolve)=>{try{evaluate().then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}),provideService=dual(3,(self,tag,service)=>contextWithEffect((env)=>provideContext(self,add2(env,tag,service)))),provideServiceEffect=dual(3,(self,tag,effect)=>contextWithEffect((env)=>flatMap7(effect,(service)=>provideContext(self,pipe(env,add2(tag,service)))))),random2=randomWith(succeed),reduce8=dual(3,(elements,zero2,f)=>fromIterable(elements).reduce((acc,el,i)=>flatMap7(acc,(a)=>f(a,el,i)),succeed(zero2))),reduceRight2=dual(3,(elements,zero2,f)=>fromIterable(elements).reduceRight((acc,el,i)=>flatMap7(acc,(a)=>f(el,a,i)),succeed(zero2))),reduceWhile=dual(3,(elements,zero2,options)=>flatMap7(sync(()=>elements[Symbol.iterator]()),(iterator)=>reduceWhileLoop(iterator,0,zero2,options.while,options.body))),reduceWhileLoop=(iterator,index,state,predicate,f)=>{let next=iterator.next();if(!next.done&&predicate(state))return flatMap7(f(state,next.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)=>flatMap7(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)=>flatMap7(summary,(start)=>flatMap7(self,(value)=>map8(summary,(end)=>[f(start,end),value])))),tagMetrics=dual((args)=>isEffect(args[0]),function(){return labelMetrics(arguments[0],typeof arguments[1]==="string"?[make28(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([k,v])=>make28(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=[],next,effect=succeed(!1),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;effect=flatMap7(effect,(bool)=>{if(bool)return succeed(!0);return builder.push(a),predicate(a,index)})}return map8(effect,()=>builder)})),takeWhile=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,taking=succeed(!0),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;taking=flatMap7(taking,(taking2)=>pipe(taking2?predicate(a,index):succeed(!1),map8((bool)=>{if(bool)builder.push(a);return bool})))}return map8(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 evaluate,catcher=void 0;if(typeof arg==="function")evaluate=arg;else evaluate=arg.try,catcher=arg.catch;let fail3=(e)=>catcher?failSync(()=>catcher(e)):fail2(new UnknownException(e,"An unknown error occurred in Effect.tryPromise"));if(evaluate.length>=1)return async_((resolve,signal)=>{try{evaluate(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(fail3(e)))}catch(e){resolve(fail3(e))}});return async_((resolve)=>{try{evaluate().then((a)=>resolve(succeed(a)),(e)=>resolve(fail3(e)))}catch(e){resolve(fail3(e))}})},tryMap=dual(2,(self,options)=>flatMap7(self,(a)=>try_({try:()=>options.try(a),catch:options.catch}))),tryMapPromise=dual(2,(self,options)=>flatMap7(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)=>flatMap7(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)=>add2(context2,tag,f(unsafeGet3(context2,tag))))),when=dual(2,(self,condition)=>suspend(()=>condition()?map8(self,some2):succeed(none2()))),whenFiberRef=dual(3,(self,fiberRef,predicate)=>flatMap7(fiberRefGet(fiberRef),(s)=>predicate(s)?map8(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),whenRef=dual(3,(self,ref,predicate)=>flatMap7(get12(ref),(s)=>predicate(s)?map8(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),withMetric=dual(2,(self,metric)=>metric(self)),serviceFunctionEffect=(getService,f)=>(...args)=>flatMap7(getService,(a)=>f(a)(...args)),serviceFunction=(getService,f)=>(...args)=>map8(getService,(a)=>f(a)(...args)),serviceFunctions=(getService)=>new Proxy({},{get(_target,prop,_receiver){return(...args)=>flatMap7(getService,(s)=>s[prop](...args))}}),serviceConstants=(getService)=>new Proxy({},{get(_target,prop,_receiver){return flatMap7(getService,(s)=>isEffect(s[prop])?s[prop]:succeed(s[prop]))}}),serviceMembers=(getService)=>({functions:serviceFunctions(getService),constants:serviceConstants(getService)}),serviceOption=(tag)=>map8(context(),getOption2(tag)),serviceOptional=(tag)=>flatMap7(context(),getOption2(tag)),annotateCurrentSpan=function(){let args=arguments;return ignore(flatMap7(currentSpan,(span2)=>sync(()=>{if(typeof args[0]==="string")span2.attribute(args[0],args[1]);else for(let key in args[0])span2.attribute(key,args[0][key])})))},linkSpanCurrent=function(){let args=arguments,links=Array.isArray(args[0])?args[0]:[{_tag:"SpanLink",span:args[0],attributes:args[1]??{}}];return ignore(flatMap7(currentSpan,(span2)=>sync(()=>span2.addLinks(links))))},annotateSpans=dual((args)=>isEffect(args[0]),function(){let args=arguments;return fiberRefLocallyWith(args[0],currentTracerSpanAnnotations,typeof args[1]==="string"?set3(args[1],args[2]):(annotations)=>Object.entries(args[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),currentParentSpan=serviceOptional(spanTag),currentSpan=flatMap7(context(),(context2)=>{let span2=context2.unsafeMap.get(spanTag.key);return span2!==void 0&&span2._tag==="Span"?succeed(span2):fail2(new NoSuchElementException)}),linkSpans=dual((args)=>isEffect(args[0]),(self,span2,attributes)=>fiberRefLocallyWith(self,currentTracerSpanLinks,append2({_tag:"SpanLink",span:span2,attributes:attributes??{}}))),bigint02=BigInt(0),filterDisablePropagation=flatMap((span2)=>get3(span2.context,DisablePropagation)?span2._tag==="Span"?filterDisablePropagation(span2.parent):none2():some2(span2)),unsafeMakeSpan=(fiber,name,options)=>{let disablePropagation=!fiber.getFiberRef(currentTracerEnabled)||options.context&&get3(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:add2(options.context??empty3(),DisablePropagation,!0)});else{let services=fiber.getFiberRef(currentServices),tracer2=get3(services,tracerTag),clock2=get3(services,Clock),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),fiberRefs3=fiber.getFiberRefs(),annotationsFromEnv=get10(fiberRefs3,currentTracerSpanAnnotations),linksFromEnv=get10(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??empty3(),links,timingEnabled?clock2.unsafeCurrentTimeNanos():bigint02,options.kind??"internal",options),annotationsFromEnv._tag==="Some")forEach3(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,...args)=>{let options=addSpanStackTrace(args.length===1?void 0:args[0]),evaluate=args[args.length-1];return withFiberRuntime((fiber)=>{let span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock2=get3(fiber.getFiberRef(currentServices),clockTag);return onExit(evaluate(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(`
19
+ `)}`: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 make18=deferredMake;var _await=deferredAwait;var done2=deferredDone,fail3=deferredFail;var failCause2=deferredFailCause;var interrupt3=deferredInterrupt;var isDone=deferredIsDone,poll=deferredPoll,succeed2=deferredSucceed;var unsafeMake4=deferredUnsafeMake,unsafeDone=deferredUnsafeDone;var isExit=exitIsExit,isFailure=exitIsFailure,isSuccess=exitIsSuccess;var all=exitCollectAll,die3=exitDie;var fail4=exitFail,failCause3=exitFailCause;var flatten6=exitFlatten;var interrupt4=exitInterrupt,map10=exitMap,mapBoth2=exitMapBoth;var match5=exitMatch;var succeed3=exitSucceed,void_2=exitVoid;var zip3=exitZip;var zipRight2=exitZipRight;var TypeId8=Symbol.for("effect/MutableHashMap"),MutableHashMapProto={[TypeId8]:TypeId8,[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 empty17=()=>{let self=Object.create(MutableHashMapProto);return self.referential=new Map,self.buckets=new Map,self.bucketsSize=0,self};var get8=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(get8(self,key))),set4=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 size4=(self)=>{return self.referential.size+self.bucketsSize};var TypeId9=Symbol.for("effect/MutableList"),MutableListProto={[TypeId9]:TypeId9,[Symbol.iterator](){let done3=!1,head3=this.head;return{next(){if(done3)return this.return();if(head3==null)return done3=!0,this.return();let value=head3.value;return head3=head3.next,{done:done3,value}},return(value){if(!done3)done3=!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}),empty18=()=>{let list=Object.create(MutableListProto);return list.head=void 0,list.tail=void 0,list._length=0,list};var isEmpty6=(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 head3=self.head;if(head3!==void 0)return remove6(self,head3),head3.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 TypeId10=Symbol.for("effect/MutableQueue"),EmptyMutableQueue=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto={[TypeId10]:TypeId10,[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)}},make19=(capacity)=>{let queue=Object.create(MutableQueueProto);return queue.queue=empty18(),queue.capacity=capacity,queue},bounded=(capacity)=>make19(capacity),unbounded=()=>make19(void 0),length2=(self)=>length(self.queue),isEmpty7=(self)=>isEmpty6(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](),next,remainder=empty4(),offering=!0;while(offering&&(next=iterator.next())&&!next.done)offering=offer(next.value)(self);while(next!=null&&!next.done)remainder=prepend2(next.value)(remainder),next=iterator.next();return reverse2(remainder)}),poll2=dual(2,(self,def)=>{if(isEmpty6(self.queue))return def;return shift(self.queue)}),pollUpTo=dual(2,(self,n)=>{let result=empty4(),count=0;while(count<n){let element=poll2(EmptyMutableQueue)(self);if(element===EmptyMutableQueue)break;result=prepend2(element)(result),count+=1}return reverse2(result)});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 make20=()=>new ClockImpl;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)}});var empty19={_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=map2(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),make22=(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)=>make22({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:empty19}))};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(()=>map9(fromFlatLoop(flat,prefix,op.config,!0),of));return pipe(forEachSequential(indices,(index)=>fromFlatLoop(flat,append(prefix,`[${index}]`),op.config,!0)),map9((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)),map9((matrix)=>{if(matrix.length===0)return of(empty8());return pipe(transpose(matrix),map2((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(".")),fail5=fromFlatLoopFail(prefix,path),[lefts,rights]=extend(fail5,fail5,pipe(left3.right,map2(right2)),pipe(right3.right,map2(right2)));return pipe(lefts,zip(rights),forEachSequential(([left4,right4])=>pipe(zip2(left4,right4),map9(([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(Order)}),either2,map9(merge));var QUOTED_INDEX_REGEX=/^(\[(\d+)\])$/,parseQuotedIndex=(str)=>{let match7=str.match(QUOTED_INDEX_REGEX);if(match7!==null){let matchedIndex=match7[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 TypeId11=Symbol.for("effect/Console"),consoleTag=GenericTag("effect/Console"),defaultConsole={[TypeId11]:TypeId11,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 map9(this.next,(n)=>n>0.5)}get nextInt(){return sync(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(min2,max2){return map9(this.next,(n)=>(max2-min2)*n+min2)}nextIntBetween(min2,max2){return sync(()=>this.PRNG.integer(max2-min2)+min2)}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),map9((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},make23=(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(min2,max2){return map9(this.next,(n)=>(max2-min2)*n+min2)}nextIntBetween(min2,max2){return sync(()=>{let value=this.getNextValue();if(typeof value==="number"&&Number.isFinite(value))return Math.max(min2,Math.min(max2-1,Math.round(value)));let hash2=Math.abs(hash(value));return min2+hash2%(max2-min2)})}shuffle(elements){return shuffleWith(elements,(n)=>this.nextIntBetween(0,n))}}var fixed=(values3)=>new FixedRandomImpl(values3);var TracerTypeId=Symbol.for("effect/Tracer"),make24=(options)=>({[TracerTypeId]:TracerTypeId,...options}),tracerTag=GenericTag("effect/Tracer"),spanTag=GenericTag("effect/ParentSpan"),randomHexString=function(){return function(length3){let result="";for(let i=0;i<length3;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=make24({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(`
20
+ `);if(stack[3]!==void 0)return cache=stack[3].trim(),cache}}}},DisablePropagation=Reference2()("effect/Tracer/DisablePropagation",{defaultValue:constFalse});var liveServices=pipe(empty3(),add2(clockTag,make20()),add2(consoleTag,defaultConsole),add2(randomTag,make23(Math.random())),add2(configProviderTag,fromEnv()),add2(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,add2(clockTag,c))(effect)),withConfigProvider=dual(2,(self,provider)=>fiberRefLocallyWith(currentServices,add2(configProviderTag,provider))(self)),configProviderWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(configProviderTag.key)));var randomWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(randomTag.key))),withRandom=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add2(randomTag,value))(effect));var tracerWith=(f)=>defaultServicesWith((services)=>f(services.unsafeMap.get(tracerTag.key))),withTracer=dual(2,(effect,value)=>fiberRefLocallyWith(currentServices,add2(tracerTag,value))(effect));var sleep2=sleep,currentTimeMillis2=currentTimeMillis,currentTimeNanos2=currentTimeNanos,clockWith2=clockWith,Clock=clockTag;function unsafeMake5(fiberRefLocals){return new FiberRefsImpl(fiberRefLocals)}function empty20(){return unsafeMake5(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 map11=new Map;return unsafeForkAs(self,map11,childId),new FiberRefsImpl(map11)}),unsafeForkAs=(self,map11,fiberId2)=>{self.locals.forEach((stack,fiberRef)=>{let oldValue=stack[0][1],newValue=fiberRef.patch(fiberRef.fork)(oldValue);if(equals(oldValue,newValue))map11.set(fiberRef,stack);else map11.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)}),get9=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(get9(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 get10=get9,getOrDefault2=getOrDefault,joinAs2=joinAs,setAll2=setAll;var updateManyAs2=updateManyAs;var empty21=empty20;var All=logLevelAll,Fatal=logLevelFatal,Error2=logLevelError,Warning=logLevelWarning,Info=logLevelInfo,Debug=logLevelDebug,Trace=logLevelTrace,None3=logLevelNone;var Order2=pipe(Order,mapInput2((level)=>level.ordinal));var greaterThan3=greaterThan(Order2);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 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 EffectPrototype2=EffectPrototype,CommitPrototype2=CommitPrototype;var Base2=Base;class Class extends Base2{}var TypeId12=Symbol.for("effect/Readable");var Proto={[TypeId12]:TypeId12,pipe(){return pipeArguments(this,arguments)}};var RefTypeId=Symbol.for("effect/Ref"),refVariance={_A:(_)=>_};class RefImpl extends Class{ref;commit(){return this.get}[RefTypeId]=refVariance;[TypeId12]=TypeId12;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 unsafeMake6=(value)=>new RefImpl(make11(value)),make27=(value)=>sync(()=>unsafeMake6(value)),get11=(self)=>self.get,set5=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 make28=make27,get12=get11,getAndSet2=getAndSet;var modify4=modify3;var set6=set5;var update3=update2;var tracerWith2=tracerWith;var OP_EMPTY2="Empty",OP_ADD="Add",OP_REMOVE="Remove",OP_UPDATE="Update",OP_AND_THEN="AndThen",empty22={_tag:OP_EMPTY2},diff5=(oldValue,newValue)=>{let missingLocals=new Map(oldValue.locals),patch6=empty22;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 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 make29=(key,value)=>{return new MetricLabelImpl(key,value)},isMetricLabel=(u)=>hasProperty(u,MetricLabelTypeId);var annotateLogs=dual((args)=>isEffect(args[0]),function(){let args=arguments;return fiberRefLocallyWith(args[0],currentLogAnnotations,typeof args[1]==="string"?set3(args[1],args[2]):(annotations)=>Object.entries(args[1]).reduce((acc,[key,value])=>set3(acc,key,value),annotations))}),asSome=(self)=>map9(self,some2),asSomeError=(self)=>mapError(self,some2),try_=(arg)=>{let evaluate,onFailure=void 0;if(typeof arg==="function")evaluate=arg;else evaluate=arg.try,onFailure=arg.catch;return suspend(()=>{try{return succeed(internalCall(evaluate))}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((args)=>isEffect(args[0]),(self,...args)=>{let f=args[args.length-1],predicate;if(args.length===2)predicate=isTagged(args[0]);else predicate=(e)=>{let tag=hasProperty(e,"_tag")?e._tag:void 0;if(!tag)return!1;for(let i=0;i<args.length-1;i++)if(args[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:()=>empty16}),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(map9,flatMap8),bindTo2=bindTo(map9),let_2=let_(map9),dropUntil=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,dropping=succeed(!1),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;dropping=flatMap8(dropping,(bool)=>{if(bool)return builder.push(a),succeed(!0);return predicate(a,index)})}return map9(dropping,()=>builder)})),dropWhile2=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,dropping=succeed(!0),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;dropping=flatMap8(dropping,(d)=>map9(d?predicate(a,index):succeed(!1),(b)=>{if(!b)builder.push(a);return b}))}return map9(dropping,()=>builder)})),contextWith=(f)=>map9(context(),f),eventually=(self)=>orElse2(self,()=>flatMap8(yieldNow(),()=>eventually(self))),filterMap4=dual(2,(elements,pf)=>map9(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))),liftPredicate=dual(3,(self,predicate,orFailWith)=>suspend(()=>predicate(self)?succeed(self):fail2(orFailWith(self)))),filterOrFail=dual((args)=>isEffect(args[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](),next=iterator.next();if(!next.done)return findLoop(iterator,0,predicate,next.value);return succeed(none2())})),findLoop=(iterator,index,f,value)=>flatMap8(f(value,index),(result)=>{if(result)return succeed(some2(value));let next=iterator.next();if(!next.done)return findLoop(iterator,index+1,f,next.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)))),match7=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 next=iterator.next();return next.done?succeed(!0):flatMap8(f(next.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,(as2)=>{let next=as2[Symbol.iterator]().next();if(next.done)return fail2(new NoSuchElementException);return succeed(next.value)}),ignore=(self)=>match7(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)=>match7(self,{onFailure:constTrue,onSuccess:constFalse}),isSuccess2=(self)=>match7(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=empty16;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):map9(loopInternal(initial,options.while,options.step,options.body),fromIterable),loopInternal=(initial,cont,inc,body)=>suspend(()=>cont(initial)?flatMap8(body(initial),(a)=>map9(loopInternal(inc(initial),cont,inc,body),prepend3(a))):sync(()=>empty9())),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),next,i=0;while(!(next=iterator.next()).done){let index=i++,value=next.value;result=flatMap8(result,(state)=>map9(f(state,value,index),([z,b])=>{return builder.push(b),z}))}return map9(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,map9((complete)=>zipRight(complete,pipe(deferredAwait(deferred),flatMap8(([patch7,a])=>as(zip2(patchFiberRefs(patch7[0]),updateRuntimeFlags(patch7[1])),a)))))))),merge5=(self)=>matchEffect(self,{onFailure:(e)=>succeed(e),onSuccess:succeed}),negate=(self)=>map9(self,(b)=>!b),none6=(self)=>flatMap8(self,(option)=>{switch(option._tag){case"None":return void_;case"Some":return fail2(new NoSuchElementException)}}),once=(self)=>map9(make28(!0),(ref)=>asVoid(whenEffect(self,getAndSet2(ref,!1)))),option=(self)=>matchEffect(self,{onFailure:()=>succeed(none2()),onSuccess:(a)=>succeed(some2(a))}),orElseFail=dual(2,(self,evaluate)=>orElse2(self,()=>failSync(evaluate))),orElseSucceed=dual(2,(self,evaluate)=>orElse2(self,()=>sync(evaluate))),parallelErrors=(self)=>matchCauseEffect(self,{onFailure:(cause2)=>{let errors=fromIterable(failures(cause2));return errors.length===0?failCause(cause2):fail2(errors)},onSuccess:succeed}),patchFiberRefs=(patch7)=>updateFiberRefs((fiberId2,fiberRefs3)=>pipe(patch7,patch6(fiberId2,fiberRefs3))),promise=(evaluate)=>evaluate.length>=1?async_((resolve,signal)=>{try{evaluate(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}):async_((resolve)=>{try{evaluate().then((a)=>resolve(succeed(a)),(e)=>resolve(die2(e)))}catch(e){resolve(die2(e))}}),provideService=dual(3,(self,tag,service)=>contextWithEffect((env)=>provideContext(self,add2(env,tag,service)))),provideServiceEffect=dual(3,(self,tag,effect)=>contextWithEffect((env)=>flatMap8(effect,(service)=>provideContext(self,pipe(env,add2(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 next=iterator.next();if(!next.done&&predicate(state))return flatMap8(f(state,next.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)=>map9(summary,(end)=>[f(start,end),value])))),tagMetrics=dual((args)=>isEffect(args[0]),function(){return labelMetrics(arguments[0],typeof arguments[1]==="string"?[make29(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([k,v])=>make29(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=[],next,effect=succeed(!1),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;effect=flatMap8(effect,(bool)=>{if(bool)return succeed(!0);return builder.push(a),predicate(a,index)})}return map9(effect,()=>builder)})),takeWhile2=dual(2,(elements,predicate)=>suspend(()=>{let iterator=elements[Symbol.iterator](),builder=[],next,taking=succeed(!0),i=0;while((next=iterator.next())&&!next.done){let a=next.value,index=i++;taking=flatMap8(taking,(taking2)=>pipe(taking2?predicate(a,index):succeed(!1),map9((bool)=>{if(bool)builder.push(a);return bool})))}return map9(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 evaluate,catcher=void 0;if(typeof arg==="function")evaluate=arg;else evaluate=arg.try,catcher=arg.catch;let fail5=(e)=>catcher?failSync(()=>catcher(e)):fail2(new UnknownException(e,"An unknown error occurred in Effect.tryPromise"));if(evaluate.length>=1)return async_((resolve,signal)=>{try{evaluate(signal).then((a)=>resolve(succeed(a)),(e)=>resolve(fail5(e)))}catch(e){resolve(fail5(e))}});return async_((resolve)=>{try{evaluate().then((a)=>resolve(succeed(a)),(e)=>resolve(fail5(e)))}catch(e){resolve(fail5(e))}})},tryMap=dual(2,(self,options)=>flatMap8(self,(a)=>try_({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,flatten4),updateFiberRefs=(f)=>withFiberRuntime((state)=>{return state.setFiberRefs(f(state.id(),state.getFiberRefs())),void_}),updateService=dual(3,(self,tag,f)=>mapInputContext(self,(context2)=>add2(context2,tag,f(unsafeGet3(context2,tag))))),when=dual(2,(self,condition)=>suspend(()=>condition()?map9(self,some2):succeed(none2()))),whenFiberRef=dual(3,(self,fiberRef,predicate)=>flatMap8(fiberRefGet(fiberRef),(s)=>predicate(s)?map9(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),whenRef=dual(3,(self,ref,predicate)=>flatMap8(get12(ref),(s)=>predicate(s)?map9(self,(a)=>[s,some2(a)]):succeed([s,none2()]))),withMetric=dual(2,(self,metric)=>metric(self)),serviceFunctionEffect=(getService,f)=>(...args)=>flatMap8(getService,(a)=>f(a)(...args)),serviceFunction=(getService,f)=>(...args)=>map9(getService,(a)=>f(a)(...args)),serviceFunctions=(getService)=>new Proxy({},{get(_target,prop,_receiver){return(...args)=>flatMap8(getService,(s)=>s[prop](...args))}}),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)=>map9(context(),getOption2(tag)),serviceOptional=(tag)=>flatMap8(context(),getOption2(tag)),annotateCurrentSpan=function(){let args=arguments;return ignore(flatMap8(currentSpan,(span2)=>sync(()=>{if(typeof args[0]==="string")span2.attribute(args[0],args[1]);else for(let key in args[0])span2.attribute(key,args[0][key])})))},linkSpanCurrent=function(){let args=arguments,links=Array.isArray(args[0])?args[0]:[{_tag:"SpanLink",span:args[0],attributes:args[1]??{}}];return ignore(flatMap8(currentSpan,(span2)=>sync(()=>span2.addLinks(links))))},annotateSpans=dual((args)=>isEffect(args[0]),function(){let args=arguments;return fiberRefLocallyWith(args[0],currentTracerSpanAnnotations,typeof args[1]==="string"?set3(args[1],args[2]):(annotations)=>Object.entries(args[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((args)=>isEffect(args[0]),(self,span2,attributes)=>fiberRefLocallyWith(self,currentTracerSpanLinks,append2({_tag:"SpanLink",span:span2,attributes:attributes??{}}))),bigint02=BigInt(0),filterDisablePropagation=flatMap((span2)=>get3(span2.context,DisablePropagation)?span2._tag==="Span"?filterDisablePropagation(span2.parent):none2():some2(span2)),unsafeMakeSpan=(fiber,name,options)=>{let disablePropagation=!fiber.getFiberRef(currentTracerEnabled)||options.context&&get3(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:add2(options.context??empty3(),DisablePropagation,!0)});else{let services=fiber.getFiberRef(currentServices),tracer2=get3(services,tracerTag),clock2=get3(services,Clock),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),fiberRefs3=fiber.getFiberRefs(),annotationsFromEnv=get10(fiberRefs3,currentTracerSpanAnnotations),linksFromEnv=get10(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??empty3(),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,...args)=>{let options=addSpanStackTrace(args.length===1?void 0:args[0]),evaluate=args[args.length-1];return withFiberRuntime((fiber)=>{let span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock2=get3(fiber.getFiberRef(currentServices),clockTag);return onExit(evaluate(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(`
21
21
  `).slice(2).join(`
22
- `).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(map8(self,some2),(error)=>isNoSuchElementException(error)?succeedNone:fail2(error));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;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 done3=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 done4=done3,running2=running,suspended2=suspended;var isDone2=isDone;var TypeId13=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(`
22
+ `).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(map9(self,some2),(error)=>isNoSuchElementException(error)?succeedNone:fail2(error));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;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 done3=new Done,running=(runtimeFlags2)=>new Running(runtimeFlags2),suspended=(runtimeFlags2,blockingOn)=>new Suspended(runtimeFlags2,blockingOn),isFiberStatus=(u)=>hasProperty(u,FiberStatusTypeId),isDone2=(self)=>self._tag===OP_DONE;var done4=done3,running2=running,suspended2=suspended;var isDone3=isDone2;var TypeId13=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(`
23
23
  `).length;stack=originalError.stack?`(${causeName}) ${originalError.stack.split(`
24
24
  `).slice(0,messageLines+3).join(`
25
25
  `)}`:`${name}: ${message}`}else name=causeName,message=toStringUnknown(originalError,0),stack=`${name}: ${message}`;if(traces.length>0)stack+=`
26
26
  ${traces.join(`
27
- `)}`;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(flatMap8(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=flatMap8(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",[TypeId13]: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 Proto2=makePrimitiveProto(options);return function(){let self=Object.create(Proto2);return self[args]=options.single===!1?arguments:arguments[0],self}},makeExit=(options)=>{let Proto2={...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(Proto2);return self[args]=value,self[successCont]=void 0,self[failureCont]=void 0,self[ensureCont]=void 0,self}},succeed3=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=succeed3(void 0);var withMicroFiber=makePrimitive({op:"WithMicroFiber",eval(fiber){return this[args](fiber)}});var flatMap8=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=succeed3,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:(cause2)=>flatMap8(f(exitFailCause2(cause2)),()=>failCause2(cause2)),onSuccess:(a)=>flatMap8(f(exitSucceed2(a)),()=>succeed3(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};class PriorityBuckets{buckets=[];scheduleTask(task,priority){let length2=this.buckets.length,bucket=void 0,index=0;for(;index<length2;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===length2)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 match8=(concurrency,sequential4,unbounded2,bounded)=>{switch(concurrency){case void 0:return sequential4();case"unbounded":return unbounded2();case"inherit":return fiberRefGetWith(currentConcurrency,(concurrency2)=>concurrency2==="unbounded"?unbounded2():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 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 unsafeMake7=(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),_await2=(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(flatten4(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 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)}`,append4=(label,value)=>" "+format4(label,value),out=format4("timestamp",date.toISOString());out+=append4("level",logLevel.label),out+=append4("fiber",threadName(fiberId2));let messages=ensure(message);for(let i=0;i<messages.length;i++)out+=append4("message",toStringUnknown(messages[i],whitespace));if(!isEmptyType(cause2))out+=append4("cause",pretty(cause2,{renderErrorCause:!0}));for(let span2 of spans)out+=" "+render(date.getTime())(span2);for(let[label,value]of annotations)out+=append4(label,toStringUnknown(value,whitespace));return out},escapeDoubleQuotes=(s)=>`"${s.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`,stringLogger=makeLogger(format3(escapeDoubleQuotes));var 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]};var hasProcessStdout=typeof process==="object"&&process!==null&&typeof process.stdout==="object"&&process.stdout!==null,processStdoutIsTTY=hasProcessStdout&&process.stdout.isTTY===!0,hasProcessStdoutOrDeno=hasProcessStdout||"Deno"in globalThis;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 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,min2,max2,sum){this.buckets=buckets,this.count=count,this.min=min2,this.max=max2,this.sum=sum}[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,min2,max2,sum){this.error=error,this.quantiles=quantiles,this.count=count,this.min=min2,this.max=max2,this.sum=sum}[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:(_)=>_},make29=(options)=>({[MetricHookTypeId]:metricHookVariance,pipe(){return pipeArguments(this,arguments)},...options});var bigint03=BigInt(0),counter4=(key)=>{let sum=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))sum=sum+value};return make29({get:()=>counter3(sum),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 make29({get:()=>frequency2(values3),update:update4,modify:update4})},gauge3=(_key,startAt)=>{let value=startAt;return make29({get:()=>gauge2(value),update:(v)=>{value=v},modify:(v)=>{value=value+v}})},histogram4=(key)=>{let bounds=key.keyType.boundaries.values,size5=bounds.length,values3=new Uint32Array(size5+1),boundaries=new Float64Array(size5),count=0,sum=0,min2=Number.MAX_VALUE,max2=Number.MIN_VALUE;pipe(bounds,sort(Order),map2((n,i)=>{boundaries[i]=n}));let update4=(value)=>{let from=0,to=size5;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,sum=sum+value,value<min2)min2=value;if(value>max2)max2=value},getBuckets=()=>{let builder=allocate(size5),cumulated=0;for(let i=0;i<size5;i++){let boundary=boundaries[i],value=values3[i];cumulated=cumulated+value,builder[i]=[boundary,cumulated]}return builder};return make29({get:()=>histogram3({buckets:getBuckets(),count,min:min2,max:max2,sum}),update:update4,modify:update4})},summary3=(key)=>{let{error,maxAge,maxSize,quantiles}=key.keyType,sortedQuantiles=pipe(quantiles,sort(Order)),values3=allocate(maxSize),head4=0,count=0,sum=0,min2=0,max2=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(greaterThanOrEqualTo2(age,zero)&&lessThanOrEqualTo2(age,maxAge))builder.push(v)}i=i+1}return calculateQuantiles(error,sortedQuantiles,sort(builder,Order))},observe=(value,timestamp)=>{if(maxSize>0){head4=head4+1;let target=head4%maxSize;values3[target]=[timestamp,value]}min2=count===0?value:Math.min(min2,value),max2=count===0?value:Math.max(max2,value),count=count+1,sum=sum+value};return make29({get:()=>summary2({error,quantiles:snapshot(Date.now()),count,min:min2,max:max2,sum}),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))}),map2(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 unsafeMake8=(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=empty17();snapshot(){let result=[];for(let[key,hook]of this.map)result.push(unsafeMake8(key,hook.get()));return result}get(key){let hook=pipe(this.map,get8(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,get8(key),getOrUndefined);if(value==null){let counter5=counter4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,counter5));value=counter5}return value}getFrequency(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let frequency4=frequency3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,frequency4));value=frequency4}return value}getGauge(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let gauge4=gauge3(key,key.keyType.bigint?BigInt(0):0);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,gauge4));value=gauge4}return value}getHistogram(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let histogram5=histogram4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,histogram5));value=histogram5}return value}getSummary(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let summary4=summary3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,summary4));value=summary4}return value}}var make30=()=>{return new MetricRegistryImpl};var MetricSymbolKey="effect/Metric",MetricTypeId=Symbol.for(MetricSymbolKey),metricVariance={_Type:(_)=>_,_In:(_)=>_,_Out:(_)=>_},globalMetricRegistry=globalValue(Symbol.for("effect/Metric/globalMetricRegistry"),()=>make30()),make31=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 make31(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,[make28(key,value)]));var taggedWithLabels2=dual(2,(self,extraTags)=>{return make31(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,(map9)=>sync(()=>{if(map9.has(self)){let entry=map9.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,map8(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,map8(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,map8(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,map8(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 make32=make14;var OP_EMPTY3="Empty",OP_ADD_SUPERVISOR="AddSupervisor",OP_REMOVE_SUPERVISOR="RemoveSupervisor",OP_AND_THEN2="AndThen",empty23={_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 empty7();else if(isZip(self))return pipe(toSet2(self.left),union3(toSet2(self.right)));else return make10(self)},diff7=(oldValue,newValue)=>{if(equals(oldValue,newValue))return empty23;let oldSupervisors=toSet2(oldValue),newSupervisors=toSet2(newValue),added=pipe(newSupervisors,difference3(oldSupervisors),reduce4(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_ADD_SUPERVISOR,supervisor}))),removed=pipe(oldSupervisors,difference3(newSupervisors),reduce4(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_REMOVE_SUPERVISOR,supervisor})));return combine8(added,removed)},differ2=make32({empty:empty23,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 flatMap7(yieldNow(),()=>cur)}},runBlockedRequests=(self)=>forEachSequentialDiscard(flatten2(self),(requestsByRequestResolver)=>forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver),([dataSource,sequential4])=>{let map9=new Map,arr=[];for(let block of sequential4){arr.push(toReadonlyArray(block));for(let entry of block)map9.set(entry.request,entry)}let flat=arr.flat();return fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr),flat,()=>flat.forEach((entry)=>{entry.listeners.interrupted=!0})),currentRequestMap,map9)},!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 unsafeMake7(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!isEmpty5(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 next=it.next();if(!next.done)return asVoid(next.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(greaterThan2(minimumLogLevel,logLevel))return;let spans=this.getFiberRef(currentLogSpan),annotations=this.getFiberRef(currentLogAnnotations),loggers=this.getLoggers(),contextMap=this.getFiberRefs();if(size3(loggers)>0){let clockService=get3(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?done4: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=flatMap7(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(()=>unsafeGet3(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)=>flatMap7(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=flatMap7(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`,empty16,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);get3(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=unsafeGet3(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(make10(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(greaterThan2(minimumLogLevel,requiredLogLevel))return succeed(none2());return map8(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 flatMap7(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(forEach4(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 next=iterator.next();if(next.done)return succeed(!1);return flatMap7(f(next.value,index),(b)=>b?succeed(b):existsLoop(iterator,index+1,f))},filter4=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>{let predicate_=options?.negate?(a,i)=>map8(predicate(a,i),not):predicate;return matchSimple(options?.concurrency,()=>suspend(()=>fromIterable(elements).reduceRight((effect,a,i)=>zipWith2(effect,suspend(()=>predicate_(a,i)),(list,b)=>b?[a,...list]:list),sync(()=>[]))),()=>map8(forEach4(elements,(a,i)=>map8(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),size5=keys3.length;return[keys3.map((k)=>input[k]),some2((values3)=>{let res={};for(let i=0;i<size5;i++)res[keys3[i]]=values3[i];return res})]},allValidate=(effects,reconcile,options)=>{let eitherEffects=[];for(let effect of effects)eitherEffects.push(either2(effect));return flatMap7(forEach4(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>{let none9=none2(),size5=eithers.length,errors=Array(size5),successes=Array(size5),errored=!1;for(let i=0;i<size5;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 forEach4(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,discard:!0,concurrentFinalizers:options?.concurrentFinalizers});return map8(forEach4(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>reconcile._tag==="Some"?reconcile.value(eithers):eithers)},all2=(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"?map8(forEach4(effects,identity,options),reconcile.value):forEach4(effects,identity,options)},allWith=(options)=>(arg)=>all2(arg,options),allSuccesses=(elements,options)=>map8(all2(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)=>all2(replicate(self,n),options)),forEach4=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 match8(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 match8(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 as2=fromIterable(self),array3=Array(as2.length);return zipRight(forEachConcurrentDiscard(as2,(a,i)=>flatMap7(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()},next=()=>{if(todos.length>0){let a=todos.pop(),index=counter6++,returnNextElement=()=>{let a2=todos.pop();return index=counter6++,flatMap7(yieldNow(),()=>flatMap7(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=flatMap7(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 next()})}};for(let i=0;i<fibersCount;i++)next()}));return asVoid(onExit(flatten4(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)next()},next=()=>{runFiber(toPop.pop(),!0).addObserver(check(index,!0)),index++};processingFiber.addObserver(check(index,!1)),index++;for(let i=0;i<concurrency;i++)next()})},onSuccess:()=>forEachSequential(joinOrder,(f2)=>f2.inheritAll)})))}))),forEachParN=(self,n,f,batching)=>suspend(()=>{let as2=fromIterable(self),array3=Array(as2.length);return zipRight(forEachConcurrentDiscard(as2,(a,i)=>map8(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)=>zipWith2(acc,a,(acc2,a2)=>f(acc2,a2,i)),succeed(zero2)),()=>flatMap7(make27(zero2),(acc)=>flatMap7(forEach4(elements,(effect,i)=>flatMap7(effect,(a)=>update3(acc,(b)=>f(b,a,i))),options),()=>get12(acc))))),partition3=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>pipe(forEach4(elements,(a,i)=>either2(f(a,i)),options),map8((chunk2)=>partitionMap2(chunk2,identity)))),validateAll=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>flatMap7(partition3(elements,f,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([es,bs])=>isNonEmptyArray2(es)?fail2(es):options?.discard?void_:succeed(bs))),raceAll=(all3)=>withFiberRuntime((state,status)=>async_((resume2)=>{let fibers=new Set,winner,failures2=empty16,interruptAll=()=>{for(let fiber of fibers)fiber.unsafeInterruptAsFork(state.id())},latch=!1,empty24=!0;for(let self of all3){empty24=!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=empty16,interruptAll();else failures2=parallel(exit2.cause,failures2);if(latch&&fibers.size===0)resume2(winner?zipRight(inheritAll(winner),winner.unsafePoll()):failCause(failures2))}),winner)break}if(empty24)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)=>zipWith2(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),map8((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 flatMap7(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 flatMap7(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)=>flatMap7(scopeTag,f),scopedWith=(f)=>flatMap7(scopeMake(),(scope)=>onExit(f(scope),(exit2)=>scope.close(exit2))),scopedEffect=(effect)=>flatMap7(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 flatMap7(scopeFork(scope,sequential3),(inner)=>scopeExtend(self,inner))}}})),tagMetricsScoped=(key,value)=>labelMetricsScoped([make28(key,value)]),labelMetricsScoped=(labels)=>fiberRefLocallyScopedWith(currentMetricLabels,(old)=>union(old,labels)),using=dual(2,(self,use)=>scopedWith((scope)=>flatMap7(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)=>flatten4(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(forEach4(elements,(a,i)=>flip(f(a,i)),options))),withClockScoped=(c)=>fiberRefLocallyScopedWith(currentServices,add2(clockTag,c)),withRandomScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add2(randomTag,value)),withConfigProviderScoped=(provider)=>fiberRefLocallyScopedWith(currentServices,add2(configProviderTag,provider)),withEarlyRelease=(self)=>scopeWith((parent)=>flatMap7(scopeFork(parent,sequential2),(child)=>pipe(self,scopeExtend(child),map8((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)=>map8(all2([self,that],{concurrency:options?.concurrent?2:1,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([a,a2])=>f(a,a2))),withRuntimeFlagsScoped=(update5)=>{if(update5===empty14)return void_;return pipe(runtimeFlags,flatMap7((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))),flatMap7((results)=>pipe(exitCollectAll(results),map(exitAsVoid),getOrElse(()=>exitVoid)))):isParallel(this.strategy)?pipe(forEachParUnbounded(finalizers,(fin)=>exit(fin(exit2)),!1),flatMap7((results)=>pipe(exitCollectAll(results,{parallel:!0}),map(exitAsVoid),getOrElse(()=>exitVoid)))):pipe(forEachParN(finalizers,this.strategy.parallelism,(fin)=>exit(fin(exit2)),!1),flatMap7((results)=>pipe(exitCollectAll(results,{parallel:!0}),map(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(make5(scopeTag,scope2)))),scopeUse=dual(2,(effect,scope2)=>pipe(effect,scopeExtend(scope2),onExit((exit2)=>scope2.close(exit2)))),fiberRefUnsafeMakeSupervisor=(initial)=>fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:empty23}),fiberRefLocallyScoped=dual(2,(self,value)=>asVoid(acquireRelease(flatMap7(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)=>forEach4(fibers,_await2),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)=>flatten4(fiber.await),!1)),children:map8(forEachParUnbounded(fibers,(fiber)=>fiber.children,!1),flatten),inheritAll:forEachSequentialDiscard(fibers,(fiber)=>fiber.inheritAll),poll:map8(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)=>flatMap7(winner.await,(exit2)=>{switch(exit2._tag){case OP_SUCCESS:return flatMap7(winner.inheritAll,()=>options.onSelfDone(exit2,loser));case OP_FAILURE:return options.onSelfDone(exit2,loser)}}),onOtherWin:(winner,loser)=>flatMap7(winner.await,(exit2)=>{switch(exit2._tag){case OP_SUCCESS:return flatMap7(winner.inheritAll,()=>options.onOtherDone(exit2,loser));case OP_FAILURE:return options.onOtherDone(exit2,loser)}})})),disconnect=(self)=>uninterruptibleMask((restore)=>fiberIdWith((fiberId2)=>flatMap7(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)=>flatMap7(flatMap7(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=unsafeGet3(fiber.getFiberRef(currentContext),scopeTag),span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock_=get3(fiber.getFiberRef(currentServices),clockTag);return as(scopeAddFinalizerExit(scope2,(exit2)=>endSpan(span2,exit2,clock_,timingEnabled)),span2)}))},withTracerScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add2(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 flatMap7(makeSpanScoped(name,addSpanStackTrace(options)),(span2)=>provideService(self,spanTag,span2))}return(self)=>flatMap7(makeSpanScoped(name,addSpanStackTrace(options)),(span2)=>provideService(self,spanTag,span2))};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}=key;if(next!==void 0)if(key.next=void 0,previous!==void 0)previous.next=next,next.previous=previous;else this.head=next,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 next=key.next;if(next!==void 0)key.next=void 0,this.head=next,this.head.previous=void 0;else this.head=void 0,this.tail=void 0}return key}}var makeKeySet=()=>new KeySetImpl,makeCacheState=(map9,keys3,accesses,updating,hits,misses)=>({map:map9,keys:keys3,accesses,updating,hits,misses}),initialCacheState=()=>makeCacheState(empty17(),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(capacity,context2,fiberId2,lookup,timeToLive){this.capacity=capacity,this.context=context2,this.fiberId=fiberId2,this.lookup=lookup,this.timeToLive=timeToLive,this.cacheState=initialCacheState()}get(key){return map8(this.getEither(key),merge)}get cacheStats(){return sync(()=>makeCacheStats({hits:this.cacheState.hits,misses:this.cacheState.misses,size:size4(this.cacheState.map)}))}getOption(key){return suspend(()=>match2(get8(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(get8(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=get8(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(get8(this.cacheState.map,k));if(value===void 0)if(deferred=unsafeMake4(this.fiberId),mapKey=makeMapKey(k),has4(this.cacheState.map,k))value=getOrUndefined(get8(this.cacheState.map,k));else set4(this.cacheState.map,k,pending2(mapKey,deferred));if(value===void 0)return this.trackAccess(mapKey),this.trackMiss(),map8(this.lookupValueOf(key,deferred),right2);else return flatMap7(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=get8(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=empty17()})}refresh(key){return clockWith3((clock2)=>suspend(()=>{let k=key,deferred=unsafeMake4(this.fiberId),value=getOrUndefined(get8(this.cacheState.map,k));if(value===void 0)if(has4(this.cacheState.map,k))value=getOrUndefined(get8(this.cacheState.map,k));else set4(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(get8(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(get8(this.cacheState.map,k));if(equals(current,value)){let mapValue=refreshing(deferred,value);return set4(this.cacheState.map,k,mapValue),!0}return!1}),asVoid)}case"Pending":return _await(value.deferred);case"Refreshing":return _await(value.deferred)}}))}set(key,value){return clockWith3((clock2)=>sync(()=>{let now=clock2.unsafeCurrentTimeMillis(),k=key,lookupResult=succeed2(value),mapValue=complete2(makeMapKey(k),lookupResult,makeEntryStats(now),now+toMillis(decode(this.timeToLive(lookupResult))));set4(this.cacheState.map,k,mapValue)}))}get size(){return sync(()=>{return size4(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(),map8(value.exit,some2)}case"Pending":{if(this.trackAccess(value.key),this.trackHit(),ignorePending)return succeed(none2());return map8(_await(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 map8(_await(value.deferred),some2)}return map8(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=poll(this.cacheState.accesses,EmptyMutableQueue);if(key2===EmptyMutableQueue)loop2=!1;else this.cacheState.keys.add(key2)}let size5=size4(this.cacheState.map);loop2=size5>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),size5=size5-1,loop2=size5>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,flatMap7((exit2)=>{let now=clock2.unsafeCurrentTimeMillis(),stats=makeEntryStats(now),value=complete2(makeMapKey(key),exit2,stats,now+toMillis(decode(this.timeToLive(exit2))));return set4(this.cacheState.map,key,value),zipRight(done2(deferred,exit2),exit2)}),onInterrupt(()=>zipRight(interrupt3(deferred),sync(()=>{remove5(this.cacheState.map,key)}))))}))}}var unsafeMakeWith=(capacity,lookup,timeToLive)=>new CacheImpl(capacity,empty3(),none3,lookup,(exit2)=>decode(timeToLive(exit2)));var fail3=fail,die3=die;var failureOrCause2=failureOrCause;var exports_Effect={};__export(exports_Effect,{zipWith:()=>zipWith4,zipRight:()=>zipRight2,zipLeft:()=>zipLeft2,zip:()=>zip4,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_2,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:()=>takeWhile2,takeUntil:()=>takeUntil2,tagMetricsScoped:()=>tagMetricsScoped2,tagMetrics:()=>tagMetrics2,sync:()=>sync3,suspend:()=>suspend3,supervised:()=>supervised2,summarized:()=>summarized2,succeedSome:()=>succeedSome2,succeedNone:()=>succeedNone2,succeed:()=>succeed6,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:()=>reduceRight3,reduceEffect:()=>reduceEffect2,reduce:()=>reduce9,randomWith:()=>randomWith2,random:()=>random3,raceWith:()=>raceWith2,raceFirst:()=>raceFirst2,raceAll:()=>raceAll2,race:()=>race2,provideServiceEffect:()=>provideServiceEffect2,provideService:()=>provideService2,provide:()=>provide2,promise:()=>promise2,patchRuntimeFlags:()=>patchRuntimeFlags,patchFiberRefs:()=>patchFiberRefs2,partition:()=>partition4,parallelFinalizers:()=>parallelFinalizers2,parallelErrors:()=>parallelErrors2,orElseSucceed:()=>orElseSucceed2,orElseFail:()=>orElseFail2,orElse:()=>orElse3,orDieWith:()=>orDieWith2,orDie:()=>orDie3,optionFromOptional:()=>optionFromOptional2,option:()=>option2,once:()=>once3,onInterrupt:()=>onInterrupt2,onExit:()=>onExit3,onError:()=>onError2,none:()=>none9,never:()=>never2,negate:()=>negate2,metricLabels:()=>metricLabels2,mergeAll:()=>mergeAll5,merge:()=>merge7,matchEffect:()=>matchEffect2,matchCauseEffect:()=>matchCauseEffect3,matchCause:()=>matchCause3,match:()=>match10,mapInputContext:()=>mapInputContext2,mapErrorCause:()=>mapErrorCause2,mapError:()=>mapError3,mapBoth:()=>mapBoth2,mapAccum:()=>mapAccum3,map:()=>map11,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:()=>log2,locallyWith:()=>locallyWith,locallyScopedWith:()=>locallyScopedWith,locallyScoped:()=>locallyScoped,locally:()=>locally,linkSpans:()=>linkSpans2,linkSpanCurrent:()=>linkSpanCurrent2,liftPredicate:()=>liftPredicate2,let:()=>let_3,labelMetricsScoped:()=>labelMetricsScoped2,labelMetrics:()=>labelMetrics2,iterate:()=>iterate2,isSuccess:()=>isSuccess2,isFailure:()=>isFailure3,isEffect:()=>isEffect2,intoDeferred:()=>intoDeferred2,interruptibleMask:()=>interruptibleMask2,interruptible:()=>interruptible4,interruptWith:()=>interruptWith2,interrupt:()=>interrupt4,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:()=>forEach5,fnUntraced:()=>fnUntraced2,fn:()=>fn,flipWith:()=>flipWith2,flip:()=>flip2,flatten:()=>flatten7,flatMap:()=>flatMap10,firstSuccessOf:()=>firstSuccessOf2,findFirst:()=>findFirst4,finalizersMask:()=>finalizersMask2,filterOrFail:()=>filterOrFail2,filterOrElse:()=>filterOrElse2,filterOrDieMessage:()=>filterOrDieMessage2,filterOrDie:()=>filterOrDie2,filterMap:()=>filterMap4,filterEffectOrFail:()=>filterEffectOrFail2,filterEffectOrElse:()=>filterEffectOrElse2,filter:()=>filter6,fiberIdWith:()=>fiberIdWith2,fiberId:()=>fiberId2,failSync:()=>failSync3,failCauseSync:()=>failCauseSync3,failCause:()=>failCause5,fail:()=>fail6,exit:()=>exit2,exists:()=>exists2,every:()=>every5,eventually:()=>eventually2,ensuringChildren:()=>ensuringChildren2,ensuringChild:()=>ensuringChild2,ensuring:()=>ensuring2,ensureSuccessType:()=>ensureSuccessType,ensureRequirementsType:()=>ensureRequirementsType,ensureErrorType:()=>ensureErrorType,either:()=>either3,dropWhile:()=>dropWhile2,dropUntil:()=>dropUntil2,disconnect:()=>disconnect2,diffFiberRefs:()=>diffFiberRefs2,dieSync:()=>dieSync3,dieMessage:()=>dieMessage2,die:()=>die5,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:()=>as3,ap:()=>ap,annotateSpans:()=>annotateSpans3,annotateLogsScoped:()=>annotateLogsScoped2,annotateLogs:()=>annotateLogs3,annotateCurrentSpan:()=>annotateCurrentSpan2,andThen:()=>andThen4,allowInterrupt:()=>allowInterrupt2,allWith:()=>allWith2,allSuccesses:()=>allSuccesses2,all:()=>all3,addFinalizer:()=>addFinalizer2,acquireUseRelease:()=>acquireUseRelease2,acquireReleaseInterruptible:()=>acquireReleaseInterruptible2,acquireRelease:()=>acquireRelease2,Tag:()=>Tag3,Service:()=>Service,EffectTypeId:()=>EffectTypeId3,Do:()=>Do2});var IntervalSymbolKey="effect/ScheduleInterval",IntervalTypeId=Symbol.for(IntervalSymbolKey),empty24={[IntervalTypeId]:IntervalTypeId,startMillis:0,endMillis:0},make33=(startMillis,endMillis)=>{if(startMillis>endMillis)return empty24;return{[IntervalTypeId]:IntervalTypeId,startMillis,endMillis}},lessThan2=dual(2,(self,that)=>min2(self,that)===self),min2=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 isEmpty7=(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 make33(start,end)});var after=(startMilliseconds)=>{return make33(startMilliseconds,Number.POSITIVE_INFINITY)};var empty25=empty24,lessThan3=lessThan2;var isEmpty8=isEmpty7;var intersect2=intersect;var after2=after;var IntervalsSymbolKey="effect/ScheduleIntervals",IntervalsTypeId=Symbol.for(IntervalsSymbolKey),make35=(intervals)=>{return{[IntervalsTypeId]:IntervalsTypeId,intervals}};var intersect3=dual(2,(self,that)=>intersectLoop(self.intervals,that.intervals,empty4())),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=isEmpty8(interval)?acc:pipe(acc,prepend2(interval));if(pipe(headNonEmpty2(left3),lessThan3(headNonEmpty2(right3))))left3=tailNonEmpty2(left3);else right3=tailNonEmpty2(right3);acc=intervals}return make35(reverse2(acc))},start=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty25)).startMillis},end=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty25)).endMillis},lessThan4=dual(2,(self,that)=>start(self)<start(that)),isNonEmpty3=(self)=>{return isNonEmpty(self.intervals)};var make36=make35;var intersect4=intersect3,start2=start,end2=end,lessThan5=lessThan4,isNonEmpty4=isNonEmpty3;var OP_CONTINUE="Continue",OP_DONE2="Done",_continue=(intervals)=>{return{_tag:OP_CONTINUE,intervals}},continueWith=(interval)=>{return{_tag:OP_CONTINUE,intervals:make36(of2(interval))}},done5={_tag:OP_DONE2},isContinue=(self)=>{return self._tag===OP_CONTINUE},isDone3=(self)=>{return self._tag===OP_DONE2};var _continue2=_continue;var continueWith2=continueWith,done6=done5,isContinue2=isContinue,isDone4=isDone3;var Scope=scopeTag;var close=scopeClose;var fork2=scopeFork;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)=>flatMap7(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)=>map8(cachedInvalidateWithTTL(self,timeToLive),(tuple)=>tuple[0])),cachedInvalidateWithTTL=dual(2,(self,timeToLive)=>{let duration=decode(timeToLive);return flatMap7(context(),(env)=>map8(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)),map8((deferred)=>some2([start3+timeToLiveMillis,deferred])))},getCachedValue=(self,timeToLive,cache)=>uninterruptibleMask((restore)=>pipe(clockWith3((clock2)=>clock2.currentTimeMillis),flatMap7((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()}}})),flatMap7((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)=>set5(cache,none2()),ensuringChild=dual(2,(self,f)=>ensuringChildren(self,(children)=>f(fiberAll(children)))),ensuringChildren=dual(2,(self,children)=>flatMap7(track,(supervisor)=>pipe(supervised(self,supervisor),ensuring(flatMap7(supervisor.value,children))))),forkAll=dual((args2)=>isIterable(args2[0]),(effects,options)=>options?.discard?forEachSequentialDiscard(effects,fork):map8(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(()=>flatMap7(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(()=>empty17()),flatMap7(makeSynchronized),map8((ref)=>(a)=>pipe(ref.modifyEffect((map9)=>{let result=pipe(map9,get8(new Key(a,eq)));if(isNone2(result))return pipe(deferredMake(),tap((deferred)=>pipe(diffFiberRefs(f(a)),intoDeferred(deferred),fork)),map8((deferred)=>[deferred,pipe(map9,set4(new Key(a,eq),deferred))]));return succeed([result.value,map9])}),flatMap7(deferredAwait),flatMap7(([patch9,b])=>pipe(patchFiberRefs(patch9),as(b))))))},raceFirst=dual(2,(self,that)=>pipe(exit(self),race(exit(that)),(effect)=>flatten4(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})=>flatten4(timeoutTo(self,{onTimeout:()=>failSync(onTimeout),onSuccess:succeed,duration}))),timeoutFailCause=dual(2,(self,{duration,onTimeout})=>flatten4(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)=>flatMap7(winner.await,(exit2)=>{if(exit2._tag==="Success")return flatMap7(winner.inheritAll,()=>as(interruptAsFiber(loser,parentFiberId),onSuccess(exit2.value)));else return flatMap7(interruptAsFiber(loser,parentFiberId),()=>exitFailCause(exit2.cause))}),onOtherWin:(winner,loser)=>flatMap7(winner.await,(exit2)=>{if(exit2._tag==="Success")return flatMap7(winner.inheritAll,()=>as(interruptAsFiber(loser,parentFiberId),onTimeout()));else return flatMap7(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;[TypeId12]=TypeId12;constructor(ref,withLock){super();this.ref=ref,this.withLock=withLock,this.get=get11(this.ref)}get;commit(){return this.get}modify(f){return this.modifyEffect((a)=>succeed(f(a)))}modifyEffect(f){return this.withLock(pipe(flatMap7(get11(this.ref),f),flatMap7(([b,a])=>as(set5(this.ref,a),b))))}}var makeSynchronized=(value)=>sync(()=>unsafeMakeSynchronized(value)),unsafeMakeSynchronized=(value)=>{let ref=unsafeMake6(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 map8(result.value,(a)=>[a,a])}}));var bindAll=dual((args2)=>isEffect(args2[0]),(self,f,options)=>flatMap7(self,(a)=>all2(f(a),options).pipe(map8((record)=>Object.assign({},a,record)))));var TypeId14=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 interruptAs=interruptAsFiber;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=flatMap7(fork2(options.scope,sequential2),(closeableScope)=>zipRight(scopeAddFinalizer(closeableScope,fiberIdWith((id)=>equals(id,fiberRuntime.id())?void_:interruptAsFiber(fiberRuntime,id))),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(id,cancelOptions)=>unsafeRunCallback(runtime2)(pipe(fiberRuntime,interruptAs(id??none4)),{...cancelOptions,onExit:cancelOptions?.onExit?(exit2)=>cancelOptions.onExit(flatten5(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,status)=>succeed(new RuntimeImpl(state.getFiberRef(currentContext),status.runtimeFlags,state.getFiberRefs()))),defaultRuntimeFlags=make16(Interruption,CooperativeYielding,RuntimeMetrics),defaultRuntime=make37({context:empty3(),runtimeFlags:defaultRuntimeFlags,fiberRefs:empty21()});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 flatMap7(deferredMake(),(deferred)=>flatMap7(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,(map9)=>{let inMap=map9.get(layer);if(inMap!==void 0){let[acquire,release]=inMap,cached3=pipe(acquire,flatMap7(([patch9,b])=>pipe(patchFiberRefs(patch9),as(b))),onExit(exitMatch({onFailure:()=>void_,onSuccess:()=>scopeAddFinalizerExit(scope2,release)})));return succeed([cached3,map9])}return pipe(make26(0),flatMap7((observers)=>pipe(deferredMake(),flatMap7((deferred)=>pipe(make26(()=>void_),map8((finalizerRef)=>{let resource=uninterruptibleMask((restore)=>pipe(scopeMake(),flatMap7((innerScope)=>pipe(restore(flatMap7(makeBuilder(layer,innerScope,!0),(f)=>diffFiberRefs(f(this)))),exit,flatMap7((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(set5(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(()=>map9.delete(layer)),zipRight(get11(finalizerRef)),flatMap7((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(get11(finalizerRef),flatMap7((finalizer)=>finalizer(exit2)))];return[resource,isFresh(layer)?map9:map9.set(layer,memoized)]}))))))}),flatten4)}}var makeMemoMap=suspend(()=>map8(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)=>flatMap7(makeMemoMap,(memoMap)=>buildWithMemoMap(self,memoMap,scope2))),buildWithMemoMap=dual(3,(self,memoMap,scope2)=>flatMap7(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),flatMap7((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),zipWith2(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 map8(scopeFork(scope2,parallel2),(parallelScope)=>(memoMap)=>{let contexts=Array(layers.length);return map8(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)=>match9(self,{onFailure,onSuccess:succeedContext})),catchAllCause2=dual(2,(self,onFailure)=>matchCause2(self,{onFailure,onSuccess:succeedContext})),die4=(defect)=>failCause3(die3(defect)),dieSync2=(evaluate2)=>failCauseSync2(()=>die3(evaluate2())),discard=(self)=>map9(self,()=>empty3()),context2=()=>fromEffectContext(context()),extendScope=(self)=>{let extendScope2=Object.create(proto3);return extendScope2._op_layer=OP_EXTEND_SCOPE,extendScope2.layer=self,extendScope2},fail4=(error)=>failCause3(fail3(error)),failSync2=(evaluate2)=>failCauseSync2(()=>fail3(evaluate2())),failCause3=(cause2)=>fromEffectContext(failCause(cause2)),failCauseSync2=(evaluate2)=>fromEffectContext(failCauseSync(evaluate2)),flatMap9=dual(2,(self,f)=>match9(self,{onFailure:fail4,onSuccess:f})),flatten6=dual(2,(self,tag)=>flatMap9(self,get3(tag))),fresh=(self)=>{let fresh2=Object.create(proto3);return fresh2._op_layer=OP_FRESH,fresh2.layer=self,fresh2},fromEffect2=dual(2,(a,b)=>{let tagFirst=isTag2(a),tag=tagFirst?a:b;return fromEffectContext(map8(tagFirst?b:a,(service)=>make5(tag,service)))}),fromEffectDiscard=(effect)=>fromEffectContext(map8(effect,()=>empty3()));function fromEffectContext(effect){let fromEffect3=Object.create(proto3);return fromEffect3._op_layer=OP_FROM_EFFECT,fromEffect3.effect=effect,fromEffect3}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(map8(tagA,(a)=>make5(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)=>succeed4(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},map9=dual(2,(self,f)=>flatMap9(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}),match9=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 failCause3(failureOrCause3.right)}},onSuccess})),memoize2=(self)=>scopeWith((scope2)=>map8(memoize(buildWithScope(self,scope2)),fromEffectContext)),merge6=dual(2,(self,that)=>zipWith3(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)=>die4(defect)),orElse2=dual(2,(self,that)=>catchAll2(self,that)),passthrough=(self)=>merge6(context2(),self),project=dual(4,(self,tagA,tagB,f)=>map9(self,(context3)=>make5(tagB,f(unsafeGet3(context3,tagA))))),retry=dual(2,(self,schedule)=>suspend2(()=>{let stateTag=GenericTag("effect/Layer/retry/{ state: unknown }");return pipe(succeed4(stateTag,{state:schedule.initial}),flatMap9((env)=>retryLoop(self,schedule,stateTag,pipe(env,get3(stateTag)).state)))})),retryLoop=(self,schedule,stateTag,state)=>{return pipe(self,catchAll2((error)=>pipe(retryUpdate(schedule,stateTag,error,state),flatMap9((env)=>fresh(retryLoop(self,schedule,stateTag,pipe(env,get3(stateTag)).state))))))},retryUpdate=(schedule,stateTag,error,state)=>{return fromEffect2(stateTag,pipe(currentTimeMillis2,flatMap7((now)=>pipe(schedule.step(now,error,state),flatMap7(([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(map8(tagFirst?b:a,(service)=>make5(tag,service)))}),scopedDiscard=(effect)=>scopedContext(pipe(effect,as(empty3()))),scopedContext=(effect)=>{let scoped2=Object.create(proto3);return scoped2._op_layer=OP_SCOPED,scoped2.effect=effect,scoped2},scope2=scopedContext(map8(acquireRelease(scopeMake(),(scope3,exit2)=>scope3.close(exit2)),(scope3)=>make5(Scope,scope3))),service=(tag)=>fromEffect2(tag,tag),succeed4=dual(2,(a,b)=>{let tagFirst=isTag2(a);return fromEffectContext(succeed(make5(tagFirst?a:b,tagFirst?b:a)))}),succeedContext=(context3)=>{return fromEffectContext(succeed(context3))},empty27=succeedContext(empty3()),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(()=>make5(tag,evaluate2())))}),syncContext=(evaluate2)=>{return fromEffectContext(sync(evaluate2))},tap2=dual(2,(self,f)=>flatMap9(self,(context3)=>fromEffectContext(as(f(context3),context3)))),tapError2=dual(2,(self,f)=>catchAll2(self,(e)=>fromEffectContext(flatMap7(f(e),()=>fail2(e))))),tapErrorCause2=dual(2,(self,f)=>catchAllCause2(self,(cause2)=>fromEffectContext(flatMap7(f(cause2),()=>failCause(cause2))))),toRuntime=(self)=>pipe(scopeWith((scope3)=>buildWithScope(self,scope3)),flatMap7((context3)=>pipe(runtime2(),provideContext(context3)))),toRuntimeWithMemoMap=dual(2,(self,memoMap)=>flatMap7(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 zipWith3=Object.create(proto3);return zipWith3._op_layer=OP_PROVIDE_MERGE,zipWith3.first=self,zipWith3.second=provide(that,self),zipWith3.zipK=(a,b)=>{return pipe(a,merge3(b))},zipWith3}),zipWith3=dual(3,(self,that,f)=>suspend2(()=>{let zipWith4=Object.create(proto3);return zipWith4._op_layer=OP_ZIP_WITH2,zipWith4.first=self,zipWith4.second=that,zipWith4.zipK=f,zipWith4})),unwrapEffect=(self)=>{let tag=GenericTag("effect/Layer/unwrapEffect/Layer.Layer<R1, E1, A>");return flatMap9(fromEffect2(tag,self),(context3)=>get3(context3,tag))},unwrapScoped=(self)=>{let tag=GenericTag("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>");return flatMap9(scoped(tag,self),(context3)=>get3(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(map8(options?.onEnd?tap(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))}return(self)=>unwrapScoped(map8(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(make5(spanTag,span2)))),provideSomeLayer=dual(2,(self,layer)=>scopedWith((scope3)=>flatMap7(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(TypeId14 in source)return flatMap7(source.runtimeEffect,(rt)=>provideSomeRuntime(self,rt));else return provideSomeRuntime(self,source)});var console2=map8(fiberRefGet(currentServices),get3(consoleTag)),consoleWith=(f)=>fiberRefGetWith(currentServices,(services)=>f(get3(services,consoleTag))),withConsole=dual(2,(effect,value)=>fiberRefLocallyWith(effect,currentServices,add2(consoleTag,value))),withConsoleScoped=(console3)=>fiberRefLocallyScopedWith(currentServices,add2(consoleTag,console3));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 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 map8(get11(this.ref),(tuple2)=>tuple2[1])}get last(){return flatMap7(get11(this.ref),([element,_])=>{switch(element._tag){case"None":return failSync(()=>new NoSuchElementException);case"Some":return succeed(element.value)}})}iterationMeta=unsafeMake6(defaultIterationMetadata);get reset(){return set5(this.ref,[none2(),this.schedule.initial]).pipe(zipLeft(set5(this.iterationMeta,defaultIterationMetadata)))}next(input){return pipe(map8(get11(this.ref),(tuple2)=>tuple2[1]),flatMap7((state)=>pipe(currentTimeMillis2,flatMap7((now)=>pipe(suspend(()=>this.schedule.step(now,input,state)),flatMap7(([state2,out,decision])=>{let setState=set5(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);var asVoid2=(self)=>map10(self,constVoid);var check=dual(2,(self,test)=>checkEffect(self,(input,out)=>sync(()=>test(input,out)))),checkEffect=dual(2,(self,test)=>makeWithState(self.initial,(now,input,state)=>flatMap7(self.step(now,input,state),([state2,out,decision])=>{if(isDone4(decision))return succeed([state2,out,done6]);return map8(test(input,out),(cont)=>cont?[state2,out,decision]:[state2,out,done6])})));var driver=(self)=>pipe(make26([none2(),self.initial]),map8((ref)=>new ScheduleDriverImpl(self,ref)));var intersect5=dual(2,(self,that)=>intersectWith(self,that,intersect4)),intersectWith=dual(3,(self,that,f)=>makeWithState([self.initial,that.initial],(now,input,state)=>pipe(zipWith2(self.step(now,input,state[0]),that.step(now,input,state[1]),(a,b)=>[a,b]),flatMap7(([[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],done6])})))),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,lessThan5(rInterval)))return flatMap7(self.step(end2(lInterval),input,lState),([lState2,out3,decision])=>{if(isDone4(decision))return succeed([[lState2,rState],[out3,out2],done6]);return intersectWithLoop(self,that,input,lState2,out3,decision.intervals,rState,out2,rInterval,f)});return flatMap7(that.step(end2(rInterval),input,rState),([rState2,out22,decision])=>{if(isDone4(decision))return succeed([[lState,rState2],[out,out22],done6]);return intersectWithLoop(self,that,input,lState,out,lInterval,rState2,out22,decision.intervals,f)})};var map10=dual(2,(self,f)=>mapEffect(self,(out)=>sync(()=>f(out)))),mapEffect=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap7(self.step(now,input,state),([state2,out,decision])=>map8(f(out),(out2)=>[state2,out2,decision]))));var passthrough2=(self)=>makeWithState(self.initial,(now,input,state)=>pipe(self.step(now,input,state),map8(([state2,_,decision])=>[state2,input,decision])));var recurs=(n)=>whileOutput(forever2,(out)=>out<n);var unfold2=(initial,f)=>makeWithState(initial,(now,_,state)=>sync(()=>[f(state),state,continueWith2(after2(now))]));var untilInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>negate(f(input))));var whileInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>f(input))),whileOutput=dual(2,(self,f)=>check(self,(_,out)=>f(out)));var ScheduleDefectTypeId=Symbol.for("effect/Schedule/ScheduleDefect");class ScheduleDefect{error;[ScheduleDefectTypeId];constructor(error){this.error=error,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:(error)=>fail(error.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(map10((intersectionPair)=>intersectionPair[0])):withUntil;return scheduleDefectRefail(repeat_Effect(self,withTimes))}),repeatOrElse_Effect=dual(3,(self,schedule,orElse3)=>flatMap7(driver(schedule),(driver2)=>matchEffect(self,{onFailure:(error)=>orElse3(error,none2()),onSuccess:(value)=>repeatOrElseEffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get11(driver2.iterationMeta)),driver2,(error,option2)=>provideServiceEffect(orElse3(error,option2),CurrentIterationMetadata,get11(driver2.iterationMeta)),value)}))),repeatOrElseEffectLoop=(self,driver2,orElse3,value)=>matchEffect(driver2.next(value),{onFailure:()=>orDie(driver2.last),onSuccess:(b)=>matchEffect(self,{onFailure:(error)=>orElse3(error,some2(b)),onSuccess:(value2)=>repeatOrElseEffectLoop(self,driver2,orElse3,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,orElse3)=>flatMap7(driver(policy),(driver2)=>retryOrElse_EffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get11(driver2.iterationMeta)),driver2,(e,out)=>provideServiceEffect(orElse3(e,out),CurrentIterationMetadata,get11(driver2.iterationMeta))))),retryOrElse_EffectLoop=(self,driver2,orElse3)=>{return catchAll(self,(e)=>matchEffect(driver2.next(e),{onFailure:()=>pipe(driver2.last,orDie,flatMap7((out)=>orElse3(e,out))),onSuccess:()=>retryOrElse_EffectLoop(self,driver2,orElse3)}))},schedule_Effect=dual(2,(self,schedule)=>scheduleFrom_Effect(self,void 0,schedule)),scheduleFrom_Effect=dual(3,(self,initial,schedule)=>flatMap7(driver(schedule),(driver2)=>scheduleFrom_EffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get11(driver2.iterationMeta)),initial,driver2))),scheduleFrom_EffectLoop=(self,initial,driver2)=>matchEffect(driver2.next(initial),{onFailure:()=>orDie(driver2.last),onSuccess:()=>flatMap7(self,(a)=>scheduleFrom_EffectLoop(self,a,driver2))});var forever2=unfold2(0,(n)=>n+1),once2=asVoid2(recurs(1));var scheduleForked=dual(2,(self,schedule)=>forkScoped(schedule_Effect(self,schedule)));var withExecutionPlan=dual(2,(effect,plan)=>suspend(()=>{let i=0,result;return flatMap7(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:(either3)=>{result=either3,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 currentCache=globalValue(Symbol.for("effect/FiberRef/currentCache"),()=>fiberRefUnsafeMake(unsafeMakeWith(65536,()=>map8(deferredMake(),(handle)=>({listeners:new Listeners,handle})),()=>seconds(60)))),currentCacheEnabled=globalValue(Symbol.for("effect/FiberRef/currentCacheEnabled"),()=>fiberRefUnsafeMake(!1)),fromRequest=(request,dataSource)=>flatMap7(isEffect(dataSource)?dataSource:succeed(dataSource),(ds)=>fiberIdWith((id)=>{let proxy=new Proxy(request,{});return fiberRefGetWith(currentCacheEnabled,(cacheEnabled)=>{if(cacheEnabled){let cached3=fiberRefGetWith(currentCache,(cache)=>flatMap7(cache.getEither(proxy),(orNew)=>{switch(orNew._tag){case"Left":{if(orNew.left.listeners.interrupted)return flatMap7(cache.invalidateWhen(proxy,(entry)=>entry.handle===orNew.left.handle),()=>cached3);return orNew.left.listeners.increment(),uninterruptibleMask((restore)=>flatMap7(exit(blocked(empty15,restore(deferredAwait(orNew.left.handle)))),(exit2)=>{return orNew.left.listeners.decrement(),exit2}))}case"Right":return orNew.right.listeners.increment(),uninterruptibleMask((restore)=>flatMap7(exit(blocked(single(ds,makeEntry({request:proxy,result:orNew.right.handle,listeners:orNew.right.listeners,ownerId:id,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(),flatMap7(deferredMake(),(ref)=>ensuring(blocked(single(ds,makeEntry({request:proxy,result:ref,listeners,ownerId:id,state:{completed:!1}})),deferredAwait(ref)),sync(()=>listeners.decrement())))})})),cacheRequest=(request,result)=>{return fiberRefGetWith(currentCacheEnabled,(cacheEnabled)=>{if(cacheEnabled)return fiberRefGetWith(currentCache,(cache)=>flatMap7(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,all3=all2,allWith2=allWith,allSuccesses2=allSuccesses,dropUntil2=dropUntil,dropWhile2=dropWhile,takeUntil2=takeUntil,takeWhile2=takeWhile,every5=every4,exists2=exists,filter6=filter4,filterMap4=filterMap3,findFirst4=findFirst3,forEach5=forEach4,head4=head3,mergeAll5=mergeAll3,partition4=partition3,reduce9=reduce8,reduceWhile2=reduceWhile,reduceRight3=reduceRight2,reduceEffect2=reduceEffect,replicate2=replicate,replicateEffect2=replicateEffect,validateAll2=validateAll,validateFirst2=validateFirst,async=async_,asyncEffect2=asyncEffect,custom2=custom,withFiberRuntime2=withFiberRuntime,fail6=fail2,failSync3=failSync,failCause5=failCause,failCauseSync3=failCauseSync,die5=die2,dieMessage2=dieMessage,dieSync3=dieSync,gen2=gen,never2=never,none9=none6,promise2=promise,succeed6=succeed,succeedNone2=succeedNone,succeedSome2=succeedSome,suspend3=suspend,sync3=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_2=try_;var tryMap2=tryMap,tryMapPromise2=tryMapPromise,tryPromise2=tryPromise,unsandbox2=unsandbox,allowInterrupt2=allowInterrupt,checkInterruptible2=checkInterruptible,disconnect2=disconnect,interrupt4=interrupt2,interruptWith2=interruptWith,interruptible4=interruptible2,interruptibleMask2=interruptibleMask,onInterrupt2=onInterrupt,uninterruptible2=uninterruptible,uninterruptibleMask3=uninterruptibleMask,liftPredicate2=liftPredicate,as3=as,asSome2=asSome,asSomeError2=asSomeError,asVoid3=asVoid,flip2=flip,flipWith2=flipWith,map11=map8,mapAccum3=mapAccum2,mapBoth2=mapBoth,mapError3=mapError,mapErrorCause2=mapErrorCause,merge7=merge5,negate2=negate,acquireRelease2=acquireRelease,acquireReleaseInterruptible2=acquireReleaseInterruptible,acquireUseRelease2=acquireUseRelease,addFinalizer2=addFinalizer,ensuring2=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,mapInputContext2=mapInputContext,provide2=effect_provide,provideService2=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,either3=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,flatMap10=flatMap7,andThen4=andThen2,flatten7=flatten4,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,isFailure3=isFailure,isSuccess2=isSuccess,match10=match6,matchCause3=matchCause,matchCauseEffect3=matchCauseEffect,matchEffect2=matchEffect,log2=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,orElse3=orElse,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,zip4=zipOptions,zipLeft2=zipLeftOptions,zipRight2=zipRightOptions,zipWith4=zipWithOptions,ap=dual(2,(self,that)=>zipWith4(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:map11(self.value,some)},transposeMapOption=dual(2,(self,f)=>isNone(self)?succeedNone2:map11(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=(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,"use",{get(){return(body)=>andThen2(this,body)}}),Object.defineProperty(TagClass,"stack",{get(){return creationError.stack}}),makeTagProxy(TagClass)},Service=function(){return function(){let[id,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=id,Object.defineProperty(TagClass,"make",{get(){return(service2)=>new this(service2)}}),Object.defineProperty(TagClass,"use",{get(){return(body)=>andThen2(this,body)}}),TagClass.key=id,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 fromEffect2(TagClass,map11(maker.effect.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=fromEffect2(TagClass,map11(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,map11(maker.scoped.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=scoped(TagClass,map11(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??=succeed4(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(length2,fn2){return Object.defineProperty(fn2,"length",{value:length2,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(error){fnError=error,effect=die5(error)}if(options.pipeables.length>0)try{for(let x of options.pipeables)effect=x(effect,...options.args)}catch(error){effect=fnError?failCause5(sequential(die(fnError),die(error))):die5(error)}let cache=!1,captureStackTrace=()=>{if(cache!==!1)return cache;if(options.errorCall.stack){let stackDef=options.errorDef.stack.trim().split(`
27
+ `)}`;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",[TypeId13]: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 Proto2=makePrimitiveProto(options);return function(){let self=Object.create(Proto2);return self[args]=options.single===!1?arguments:arguments[0],self}},makeExit=(options)=>{let Proto2={...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(Proto2);return self[args]=value,self[successCont]=void 0,self[failureCont]=void 0,self[ensureCont]=void 0,self}},succeed4=makeExit({op:"Success",prop:"value",eval(fiber){let cont=fiber.getCont(successCont);return cont?cont[successCont](this[args],fiber):fiber.yieldWith(this)}}),failCause4=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_3=succeed4(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=succeed4,exitFailCause2=failCause4,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_3})}));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:(cause2)=>flatMap9(f(exitFailCause2(cause2)),()=>failCause4(cause2)),onSuccess:(a)=>flatMap9(f(exitSucceed2(a)),()=>succeed4(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};class PriorityBuckets{buckets=[];scheduleTask(task,priority){let length3=this.buckets.length,bucket=void 0,index=0;for(;index<length3;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===length3)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 match9=(concurrency,sequential4,unbounded2,bounded2)=>{switch(concurrency){case void 0:return sequential4();case"unbounded":return unbounded2();case"inherit":return fiberRefGetWith(currentConcurrency,(concurrency2)=>concurrency2==="unbounded"?unbounded2():concurrency2>1?bounded2(concurrency2):sequential4());default:return concurrency>1?bounded2(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 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 unsafeMake7=(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),_await2=(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 poll3=(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)}`,append4=(label,value)=>" "+format4(label,value),out=format4("timestamp",date.toISOString());out+=append4("level",logLevel.label),out+=append4("fiber",threadName(fiberId2));let messages=ensure(message);for(let i=0;i<messages.length;i++)out+=append4("message",toStringUnknown(messages[i],whitespace));if(!isEmptyType(cause2))out+=append4("cause",pretty(cause2,{renderErrorCause:!0}));for(let span2 of spans)out+=" "+render(date.getTime())(span2);for(let[label,value]of annotations)out+=append4(label,toStringUnknown(value,whitespace));return out},escapeDoubleQuotes=(s)=>`"${s.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`,stringLogger=makeLogger(format3(escapeDoubleQuotes));var 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]};var hasProcessStdout=typeof process==="object"&&process!==null&&typeof process.stdout==="object"&&process.stdout!==null,processStdoutIsTTY=hasProcessStdout&&process.stdout.isTTY===!0,hasProcessStdoutOrDeno=hasProcessStdout||"Deno"in globalThis;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 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,min2,max2,sum2){this.buckets=buckets,this.count=count,this.min=min2,this.max=max2,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,min2,max2,sum2){this.error=error,this.quantiles=quantiles,this.count=count,this.min=min2,this.max=max2,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:(_)=>_},make30=(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 make30({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 make30({get:()=>frequency2(values3),update:update4,modify:update4})},gauge3=(_key,startAt)=>{let value=startAt;return make30({get:()=>gauge2(value),update:(v)=>{value=v},modify:(v)=>{value=value+v}})},histogram4=(key)=>{let bounds=key.keyType.boundaries.values,size5=bounds.length,values3=new Uint32Array(size5+1),boundaries=new Float64Array(size5),count=0,sum2=0,min2=Number.MAX_VALUE,max2=Number.MIN_VALUE;pipe(bounds,sort(Order),map2((n,i)=>{boundaries[i]=n}));let update4=(value)=>{let from=0,to=size5;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<min2)min2=value;if(value>max2)max2=value},getBuckets=()=>{let builder=allocate(size5),cumulated=0;for(let i=0;i<size5;i++){let boundary=boundaries[i],value=values3[i];cumulated=cumulated+value,builder[i]=[boundary,cumulated]}return builder};return make30({get:()=>histogram3({buckets:getBuckets(),count,min:min2,max:max2,sum:sum2}),update:update4,modify:update4})},summary3=(key)=>{let{error,maxAge,maxSize,quantiles}=key.keyType,sortedQuantiles=pipe(quantiles,sort(Order)),values3=allocate(maxSize),head4=0,count=0,sum2=0,min2=0,max2=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(greaterThanOrEqualTo2(age,zero)&&lessThanOrEqualTo2(age,maxAge))builder.push(v)}i=i+1}return calculateQuantiles(error,sortedQuantiles,sort(builder,Order))},observe=(value,timestamp)=>{if(maxSize>0){head4=head4+1;let target=head4%maxSize;values3[target]=[timestamp,value]}min2=count===0?value:Math.min(min2,value),max2=count===0?value:Math.max(max2,value),count=count+1,sum2=sum2+value};return make30({get:()=>summary2({error,quantiles:snapshot(Date.now()),count,min:min2,max:max2,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))}),map2(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 unsafeMake8=(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=empty17();snapshot(){let result=[];for(let[key,hook]of this.map)result.push(unsafeMake8(key,hook.get()));return result}get(key){let hook=pipe(this.map,get8(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,get8(key),getOrUndefined);if(value==null){let counter5=counter4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,counter5));value=counter5}return value}getFrequency(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let frequency4=frequency3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,frequency4));value=frequency4}return value}getGauge(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let gauge4=gauge3(key,key.keyType.bigint?BigInt(0):0);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,gauge4));value=gauge4}return value}getHistogram(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let histogram5=histogram4(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,histogram5));value=histogram5}return value}getSummary(key){let value=pipe(this.map,get8(key),getOrUndefined);if(value==null){let summary4=summary3(key);if(!pipe(this.map,has4(key)))pipe(this.map,set4(key,summary4));value=summary4}return value}}var make31=()=>{return new MetricRegistryImpl};var MetricSymbolKey="effect/Metric",MetricTypeId=Symbol.for(MetricSymbolKey),metricVariance={_Type:(_)=>_,_In:(_)=>_,_Out:(_)=>_},globalMetricRegistry=globalValue(Symbol.for("effect/Metric/globalMetricRegistry"),()=>make31()),make32=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 make32(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,[make29(key,value)]));var taggedWithLabels2=dual(2,(self,extraTags)=>{return make32(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,(map11)=>sync(()=>{if(map11.has(self)){let entry=map11.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,map9(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,map9(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,map9(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,map9(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 make33=make14;var OP_EMPTY3="Empty",OP_ADD_SUPERVISOR="AddSupervisor",OP_REMOVE_SUPERVISOR="RemoveSupervisor",OP_AND_THEN2="AndThen",empty23={_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 empty7();else if(isZip(self))return pipe(toSet2(self.left),union3(toSet2(self.right)));else return make10(self)},diff7=(oldValue,newValue)=>{if(equals(oldValue,newValue))return empty23;let oldSupervisors=toSet2(oldValue),newSupervisors=toSet2(newValue),added=pipe(newSupervisors,difference3(oldSupervisors),reduce5(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_ADD_SUPERVISOR,supervisor}))),removed=pipe(oldSupervisors,difference3(newSupervisors),reduce5(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_REMOVE_SUPERVISOR,supervisor})));return combine8(added,removed)},differ2=make33({empty:empty23,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(flatten3(self),(requestsByRequestResolver)=>forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver),([dataSource,sequential4])=>{let map11=new Map,arr=[];for(let block of sequential4){arr.push(toReadonlyArray(block));for(let entry of block)map11.set(entry.request,entry)}let flat=arr.flat();return fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr),flat,()=>flat.forEach((entry)=>{entry.listeners.interrupted=!0})),currentRequestMap,map11)},!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(isDone3(status))return state.currentRuntimeFlags;return status.runtimeFlags})}scope(){return unsafeMake7(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!isEmpty5(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 isDone4=!1;return whileLoop({while:()=>!isDone4,body:()=>{let next=it.next();if(!next.done)return asVoid(next.value.await);else return sync(()=>{isDone4=!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=get3(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?done4: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(()=>unsafeGet3(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`,empty16,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);get3(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=unsafeGet3(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(make10(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 map9(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 next=iterator.next();if(next.done)return succeed(!1);return flatMap8(f(next.value,index),(b)=>b?succeed(b):existsLoop(iterator,index+1,f))},filter5=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>{let predicate_=options?.negate?(a,i)=>map9(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(()=>[]))),()=>map9(forEach5(elements,(a,i)=>map9(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),size5=keys3.length;return[keys3.map((k)=>input[k]),some2((values3)=>{let res={};for(let i=0;i<size5;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(),size5=eithers.length,errors=Array(size5),successes=Array(size5),errored=!1;for(let i=0;i<size5;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 map9(forEach5(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>reconcile._tag==="Some"?reconcile.value(eithers):eithers)},all3=(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"?map9(forEach5(effects,identity,options),reconcile.value):forEach5(effects,identity,options)},allWith=(options)=>(arg)=>all3(arg,options),allSuccesses=(elements,options)=>map9(all3(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)=>all3(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 match9(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 match9(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 as2=fromIterable(self),array3=Array(as2.length);return zipRight(forEachConcurrentDiscard(as2,(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()},next=()=>{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 next()})}};for(let i=0;i<fibersCount;i++)next()}));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)next()},next=()=>{runFiber(toPop.pop(),!0).addObserver(check(index,!0)),index++};processingFiber.addObserver(check(index,!1)),index++;for(let i=0;i<concurrency;i++)next()})},onSuccess:()=>forEachSequential(joinOrder,(f2)=>f2.inheritAll)})))}))),forEachParN=(self,n,f,batching)=>suspend(()=>{let as2=fromIterable(self),array3=Array(as2.length);return zipRight(forEachConcurrentDiscard(as2,(a,i)=>map9(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(make28(zero2),(acc)=>flatMap8(forEach5(elements,(effect,i)=>flatMap8(effect,(a)=>update3(acc,(b)=>f(b,a,i))),options),()=>get12(acc))))),partition3=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>pipe(forEach5(elements,(a,i)=>either2(f(a,i)),options),map9((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=(all4)=>withFiberRuntime((state,status)=>async_((resume2)=>{let fibers=new Set,winner,failures2=empty16,interruptAll=()=>{for(let fiber of fibers)fiber.unsafeInterruptAsFork(state.id())},latch=!1,empty24=!0;for(let self of all4){empty24=!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=empty16,interruptAll();else failures2=parallel(exit2.cause,failures2);if(latch&&fibers.size===0)resume2(winner?zipRight(inheritAll(winner),winner.unsafePoll()):failCause(failures2))}),winner)break}if(empty24)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),map9((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([make29(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,add2(clockTag,c)),withRandomScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add2(randomTag,value)),withConfigProviderScoped=(provider)=>fiberRefLocallyScopedWith(currentServices,add2(configProviderTag,provider)),withEarlyRelease=(self)=>scopeWith((parent)=>flatMap8(scopeFork(parent,sequential2),(child)=>pipe(self,scopeExtend(child),map9((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)=>map9(all3([self,that],{concurrency:options?.concurrent?2:1,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([a,a2])=>f(a,a2))),withRuntimeFlagsScoped=(update5)=>{if(update5===empty14)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),map(exitAsVoid),getOrElse(()=>exitVoid)))):isParallel(this.strategy)?pipe(forEachParUnbounded(finalizers,(fin)=>exit(fin(exit2)),!1),flatMap8((results)=>pipe(exitCollectAll(results,{parallel:!0}),map(exitAsVoid),getOrElse(()=>exitVoid)))):pipe(forEachParN(finalizers,this.strategy.parallelism,(fin)=>exit(fin(exit2)),!1),flatMap8((results)=>pipe(exitCollectAll(results,{parallel:!0}),map(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(make5(scopeTag,scope2)))),scopeUse=dual(2,(effect,scope2)=>pipe(effect,scopeExtend(scope2),onExit((exit2)=>scope2.close(exit2)))),fiberRefUnsafeMakeSupervisor=(initial)=>fiberRefUnsafeMakePatch(initial,{differ:differ2,fork:empty23}),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,_await2),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:map9(forEachParUnbounded(fibers,(fiber)=>fiber.children,!1),flatten),inheritAll:forEachSequentialDiscard(fibers,(fiber)=>fiber.inheritAll),poll:map9(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=unsafeGet3(fiber.getFiberRef(currentContext),scopeTag),span2=unsafeMakeSpan(fiber,name,options),timingEnabled=fiber.getFiberRef(currentTracerTimingEnabled),clock_=get3(fiber.getFiberRef(currentServices),clockTag);return as(scopeAddFinalizerExit(scope2,(exit2)=>endSpan(span2,exit2,clock_,timingEnabled)),span2)}))},withTracerScoped=(value)=>fiberRefLocallyScopedWith(currentServices,add2(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 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}=key;if(next!==void 0)if(key.next=void 0,previous!==void 0)previous.next=next,next.previous=previous;else this.head=next,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 next=key.next;if(next!==void 0)key.next=void 0,this.head=next,this.head.previous=void 0;else this.head=void 0,this.tail=void 0}return key}}var makeKeySet=()=>new KeySetImpl,makeCacheState=(map11,keys3,accesses,updating,hits,misses)=>({map:map11,keys:keys3,accesses,updating,hits,misses}),initialCacheState=()=>makeCacheState(empty17(),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,context2,fiberId2,lookup,timeToLive){this.capacity=capacity2,this.context=context2,this.fiberId=fiberId2,this.lookup=lookup,this.timeToLive=timeToLive,this.cacheState=initialCacheState()}get(key){return map9(this.getEither(key),merge)}get cacheStats(){return sync(()=>makeCacheStats({hits:this.cacheState.hits,misses:this.cacheState.misses,size:size4(this.cacheState.map)}))}getOption(key){return suspend(()=>match2(get8(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(get8(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=get8(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(get8(this.cacheState.map,k));if(value===void 0)if(deferred=unsafeMake4(this.fiberId),mapKey=makeMapKey(k),has4(this.cacheState.map,k))value=getOrUndefined(get8(this.cacheState.map,k));else set4(this.cacheState.map,k,pending2(mapKey,deferred));if(value===void 0)return this.trackAccess(mapKey),this.trackMiss(),map9(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=get8(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=empty17()})}refresh(key){return clockWith3((clock2)=>suspend(()=>{let k=key,deferred=unsafeMake4(this.fiberId),value=getOrUndefined(get8(this.cacheState.map,k));if(value===void 0)if(has4(this.cacheState.map,k))value=getOrUndefined(get8(this.cacheState.map,k));else set4(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(get8(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(get8(this.cacheState.map,k));if(equals(current,value)){let mapValue=refreshing(deferred,value);return set4(this.cacheState.map,k,mapValue),!0}return!1}),asVoid)}case"Pending":return _await(value.deferred);case"Refreshing":return _await(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))));set4(this.cacheState.map,k,mapValue)}))}get size(){return sync(()=>{return size4(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(),map9(value.exit,some2)}case"Pending":{if(this.trackAccess(value.key),this.trackHit(),ignorePending)return succeed(none2());return map9(_await(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 map9(_await(value.deferred),some2)}return map9(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=poll2(this.cacheState.accesses,EmptyMutableQueue);if(key2===EmptyMutableQueue)loop2=!1;else this.cacheState.keys.add(key2)}let size5=size4(this.cacheState.map);loop2=size5>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),size5=size5-1,loop2=size5>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 set4(this.cacheState.map,key,value),zipRight(done2(deferred,exit2),exit2)}),onInterrupt(()=>zipRight(interrupt3(deferred),sync(()=>{remove5(this.cacheState.map,key)}))))}))}}var unsafeMakeWith=(capacity2,lookup,timeToLive)=>new CacheImpl(capacity2,empty3(),none3,lookup,(exit2)=>decode(timeToLive(exit2)));var fail5=fail,die4=die,interrupt5=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:()=>zipWith5,zipRight:()=>zipRight3,zipLeft:()=>zipLeft2,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_2,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:()=>sync3,suspend:()=>suspend3,supervised:()=>supervised2,summarized:()=>summarized2,succeedSome:()=>succeedSome2,succeedNone:()=>succeedNone2,succeed:()=>succeed8,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:()=>reduceEffect2,reduce:()=>reduce10,randomWith:()=>randomWith2,random:()=>random3,raceWith:()=>raceWith2,raceFirst:()=>raceFirst2,raceAll:()=>raceAll2,race:()=>race2,provideServiceEffect:()=>provideServiceEffect2,provideService:()=>provideService2,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:()=>match12,mapInputContext:()=>mapInputContext2,mapErrorCause:()=>mapErrorCause2,mapError:()=>mapError3,mapBoth:()=>mapBoth3,mapAccum:()=>mapAccum4,map:()=>map15,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:()=>log2,locallyWith:()=>locallyWith,locallyScopedWith:()=>locallyScopedWith,locallyScoped:()=>locallyScoped,locally:()=>locally,linkSpans:()=>linkSpans2,linkSpanCurrent:()=>linkSpanCurrent2,liftPredicate:()=>liftPredicate2,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:()=>ensuring2,ensureSuccessType:()=>ensureSuccessType,ensureRequirementsType:()=>ensureRequirementsType,ensureErrorType:()=>ensureErrorType,either:()=>either3,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:()=>as3,ap:()=>ap,annotateSpans:()=>annotateSpans3,annotateLogsScoped:()=>annotateLogsScoped2,annotateLogs:()=>annotateLogs3,annotateCurrentSpan:()=>annotateCurrentSpan2,andThen:()=>andThen4,allowInterrupt:()=>allowInterrupt2,allWith:()=>allWith2,allSuccesses:()=>allSuccesses2,all:()=>all4,addFinalizer:()=>addFinalizer3,acquireUseRelease:()=>acquireUseRelease2,acquireReleaseInterruptible:()=>acquireReleaseInterruptible2,acquireRelease:()=>acquireRelease2,Tag:()=>Tag3,Service:()=>Service,EffectTypeId:()=>EffectTypeId3,Do:()=>Do2});var IntervalSymbolKey="effect/ScheduleInterval",IntervalTypeId=Symbol.for(IntervalSymbolKey),empty24={[IntervalTypeId]:IntervalTypeId,startMillis:0,endMillis:0},make34=(startMillis,endMillis)=>{if(startMillis>endMillis)return empty24;return{[IntervalTypeId]:IntervalTypeId,startMillis,endMillis}},lessThan2=dual(2,(self,that)=>min2(self,that)===self),min2=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 isEmpty8=(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 make34(start,end)}),size6=(self)=>{return millis(self.endMillis-self.startMillis)};var after=(startMilliseconds)=>{return make34(startMilliseconds,Number.POSITIVE_INFINITY)};var make35=make34,empty25=empty24,lessThan3=lessThan2;var isEmpty9=isEmpty8;var intersect2=intersect,size7=size6;var after2=after;var IntervalsSymbolKey="effect/ScheduleIntervals",IntervalsTypeId=Symbol.for(IntervalsSymbolKey),make36=(intervals)=>{return{[IntervalsTypeId]:IntervalsTypeId,intervals}};var intersect3=dual(2,(self,that)=>intersectLoop(self.intervals,that.intervals,empty4())),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=isEmpty9(interval)?acc:pipe(acc,prepend2(interval));if(pipe(headNonEmpty2(left3),lessThan3(headNonEmpty2(right3))))left3=tailNonEmpty2(left3);else right3=tailNonEmpty2(right3);acc=intervals}return make36(reverse2(acc))},start=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty25)).startMillis},end=(self)=>{return pipe(self.intervals,head2,getOrElse(()=>empty25)).endMillis},lessThan4=dual(2,(self,that)=>start(self)<start(that)),isNonEmpty3=(self)=>{return isNonEmpty(self.intervals)};var make37=make36;var intersect4=intersect3,start2=start,end2=end,lessThan5=lessThan4,isNonEmpty4=isNonEmpty3;var OP_CONTINUE="Continue",OP_DONE2="Done",_continue=(intervals)=>{return{_tag:OP_CONTINUE,intervals}},continueWith=(interval)=>{return{_tag:OP_CONTINUE,intervals:make37(of2(interval))}},done5={_tag:OP_DONE2},isContinue=(self)=>{return self._tag===OP_CONTINUE},isDone4=(self)=>{return self._tag===OP_DONE2};var _continue2=_continue;var continueWith2=continueWith,done6=done5,isContinue2=isContinue,isDone5=isDone4;var Scope=scopeTag,addFinalizer2=scopeAddFinalizer,addFinalizerExit=scopeAddFinalizerExit,close=scopeClose,extend2=scopeExtend,fork2=scopeFork;var make38=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)=>map9(cachedInvalidateWithTTL(self,timeToLive),(tuple)=>tuple[0])),cachedInvalidateWithTTL=dual(2,(self,timeToLive)=>{let duration=decode(timeToLive);return flatMap8(context(),(env)=>map9(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)),map9((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)=>set5(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):map9(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(()=>empty17()),flatMap8(makeSynchronized),map9((ref)=>(a)=>pipe(ref.modifyEffect((map12)=>{let result=pipe(map12,get8(new Key(a,eq)));if(isNone2(result))return pipe(deferredMake(),tap((deferred)=>pipe(diffFiberRefs(f(a)),intoDeferred(deferred),fork)),map9((deferred)=>[deferred,pipe(map12,set4(new Key(a,eq),deferred))]));return succeed([result.value,map12])}),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;[TypeId12]=TypeId12;constructor(ref,withLock){super();this.ref=ref,this.withLock=withLock,this.get=get11(this.ref)}get;commit(){return this.get}modify(f){return this.modifyEffect((a)=>succeed(f(a)))}modifyEffect(f){return this.withLock(pipe(flatMap8(get11(this.ref),f),flatMap8(([b,a])=>as(set5(this.ref,a),b))))}}var makeSynchronized=(value)=>sync(()=>unsafeMakeSynchronized(value)),unsafeMakeSynchronized=(value)=>{let ref=unsafeMake6(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 map9(result.value,(a)=>[a,a])}}));var bindAll=dual((args2)=>isEffect(args2[0]),(self,f,options)=>flatMap8(self,(a)=>all3(f(a),options).pipe(map9((record)=>Object.assign({},a,record)))));var TypeId14=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 _await3=_await2;var inheritAll2=inheritAll,interrupt6=interruptFiber;var interruptAs=interruptAsFiber;var join3=join2;var poll4=poll3;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 make39=(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=make39({context:empty3(),runtimeFlags:defaultRuntimeFlags,fiberRefs:empty21()});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,(map13)=>{let inMap=map13.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,map13])}return pipe(make27(0),flatMap8((observers)=>pipe(deferredMake(),flatMap8((deferred)=>pipe(make27(()=>void_),map9((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(set5(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(()=>map13.delete(layer)),zipRight(get11(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(get11(finalizerRef),flatMap8((finalizer)=>finalizer(exit2)))];return[resource,isFresh(layer)?map13:map13.set(layer,memoized)]}))))))}),flatten5)}}var makeMemoMap=suspend(()=>map9(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 map9(scopeFork(scope2,parallel2),(parallelScope)=>(memoMap)=>{let contexts=Array(layers.length);return map9(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)=>failCause6(die4(defect)),dieSync2=(evaluate2)=>failCauseSync2(()=>die4(evaluate2())),discard=(self)=>map13(self,()=>empty3()),context2=()=>fromEffectContext(context()),extendScope=(self)=>{let extendScope2=Object.create(proto3);return extendScope2._op_layer=OP_EXTEND_SCOPE,extendScope2.layer=self,extendScope2},fail7=(error)=>failCause6(fail5(error)),failSync2=(evaluate2)=>failCauseSync2(()=>fail5(evaluate2())),failCause6=(cause2)=>fromEffectContext(failCause(cause2)),failCauseSync2=(evaluate2)=>fromEffectContext(failCauseSync(evaluate2)),flatMap10=dual(2,(self,f)=>match11(self,{onFailure:fail7,onSuccess:f})),flatten7=dual(2,(self,tag)=>flatMap10(self,get3(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(map9(tagFirst?b:a,(service)=>make5(tag,service)))}),fromEffectDiscard=(effect)=>fromEffectContext(map9(effect,()=>empty3()));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(map9(tagA,(a)=>make5(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)=>succeed6(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},map13=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 failCause6(failureOrCause3.right)}},onSuccess})),memoize2=(self)=>scopeWith((scope2)=>map9(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)=>map13(self,(context3)=>make5(tagB,f(unsafeGet3(context3,tagA))))),retry=dual(2,(self,schedule)=>suspend2(()=>{let stateTag=GenericTag("effect/Layer/retry/{ state: unknown }");return pipe(succeed6(stateTag,{state:schedule.initial}),flatMap10((env)=>retryLoop(self,schedule,stateTag,pipe(env,get3(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,get3(stateTag)).state))))))},retryUpdate=(schedule,stateTag,error,state)=>{return fromEffect3(stateTag,pipe(currentTimeMillis2,flatMap8((now)=>pipe(schedule.step(now,error,state),flatMap8(([state2,_,decision])=>isDone5(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(map9(tagFirst?b:a,(service)=>make5(tag,service)))}),scopedDiscard=(effect)=>scopedContext(pipe(effect,as(empty3()))),scopedContext=(effect)=>{let scoped2=Object.create(proto3);return scoped2._op_layer=OP_SCOPED,scoped2.effect=effect,scoped2},scope2=scopedContext(map9(acquireRelease(scopeMake(),(scope3,exit2)=>scope3.close(exit2)),(scope3)=>make5(Scope,scope3))),service=(tag)=>fromEffect3(tag,tag),succeed6=dual(2,(a,b)=>{let tagFirst=isTag2(a);return fromEffectContext(succeed(make5(tagFirst?a:b,tagFirst?b:a)))}),succeedContext=(context3)=>{return fromEffectContext(succeed(context3))},empty27=succeedContext(empty3()),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(()=>make5(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)=>get3(context3,tag))},unwrapScoped=(self)=>{let tag=GenericTag("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>");return flatMap10(scoped(tag,self),(context3)=>get3(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(map9(options?.onEnd?tap(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))}return(self)=>unwrapScoped(map9(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(make5(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(TypeId14 in source)return flatMap8(source.runtimeEffect,(rt)=>provideSomeRuntime(self,rt));else return provideSomeRuntime(self,source)});var console2=map9(fiberRefGet(currentServices),get3(consoleTag)),consoleWith=(f)=>fiberRefGetWith(currentServices,(services)=>f(get3(services,consoleTag))),withConsole=dual(2,(effect,value)=>fiberRefLocallyWith(effect,currentServices,add2(consoleTag,value))),withConsoleScoped=(console3)=>fiberRefLocallyScopedWith(currentServices,add2(consoleTag,console3));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 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 map9(get11(this.ref),(tuple2)=>tuple2[1])}get last(){return flatMap8(get11(this.ref),([element,_])=>{switch(element._tag){case"None":return failSync(()=>new NoSuchElementException);case"Some":return succeed(element.value)}})}iterationMeta=unsafeMake6(defaultIterationMetadata);get reset(){return set5(this.ref,[none2(),this.schedule.initial]).pipe(zipLeft(set5(this.iterationMeta,defaultIterationMetadata)))}next(input){return pipe(map9(get11(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=set5(this.ref,[some2(out),state2]);if(isDone5(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)=>map9(f(out),(delay2)=>sum(duration,decode(delay2)))));var asVoid2=(self)=>map14(self,constVoid);var 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(isDone5(decision))return succeed([state2,out,done6]);return map9(test(input,out),(cont)=>cont?[state2,out,decision]:[state2,out,done6])})));var driver=(self)=>pipe(make27([none2(),self.initial]),map9((ref)=>new ScheduleDriverImpl(self,ref)));var 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],done6])})))),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,lessThan5(rInterval)))return flatMap8(self.step(end2(lInterval),input,lState),([lState2,out3,decision])=>{if(isDone5(decision))return succeed([[lState2,rState],[out3,out2],done6]);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(isDone5(decision))return succeed([[lState,rState2],[out,out22],done6]);return intersectWithLoop(self,that,input,lState,out,lInterval,rState2,out22,decision.intervals,f)})};var map14=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])=>map9(f(out),(out2)=>[state2,out2,decision]))));var modifyDelayEffect=dual(2,(self,f)=>makeWithState(self.initial,(now,input,state)=>flatMap8(self.step(now,input,state),([state2,out,decision])=>{if(isDone5(decision))return succeed([state2,out,decision]);let intervals=decision.intervals,delay2=size7(make35(now,start2(intervals)));return map9(f(out,delay2),(durationInput)=>{let duration=decode(durationInput),oldStart=start2(intervals),newStart=now+toMillis(duration),delta=newStart-oldStart,newEnd=Math.max(0,end2(intervals)+delta),newInterval=make35(newStart,newEnd);return[state2,out,continueWith2(newInterval)]})})));var passthrough2=(self)=>makeWithState(self.initial,(now,input,state)=>pipe(self.step(now,input,state),map9(([state2,_,decision])=>[state2,input,decision])));var recurs=(n)=>whileOutput(forever2,(out)=>out<n);var spaced=(duration)=>addDelay(forever2,()=>duration);var unfold2=(initial,f)=>makeWithState(initial,(now,_,state)=>sync(()=>[f(state),state,continueWith2(after2(now))]));var untilInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>negate(f(input))));var whileInputEffect=dual(2,(self,f)=>checkEffect(self,(input,_)=>f(input))),whileOutput=dual(2,(self,f)=>check(self,(_,out)=>f(out)));var ScheduleDefectTypeId=Symbol.for("effect/Schedule/ScheduleDefect");class ScheduleDefect{error;[ScheduleDefectTypeId];constructor(error){this.error=error,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:(error)=>fail(error.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(map14((intersectionPair)=>intersectionPair[0])):withUntil;return scheduleDefectRefail(repeat_Effect(self,withTimes))}),repeatOrElse_Effect=dual(3,(self,schedule,orElse5)=>flatMap8(driver(schedule),(driver2)=>matchEffect(self,{onFailure:(error)=>orElse5(error,none2()),onSuccess:(value)=>repeatOrElseEffectLoop(provideServiceEffect(self,CurrentIterationMetadata,get11(driver2.iterationMeta)),driver2,(error,option2)=>provideServiceEffect(orElse5(error,option2),CurrentIterationMetadata,get11(driver2.iterationMeta)),value)}))),repeatOrElseEffectLoop=(self,driver2,orElse5,value)=>matchEffect(driver2.next(value),{onFailure:()=>orDie(driver2.last),onSuccess:(b)=>matchEffect(self,{onFailure:(error)=>orElse5(error,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,get11(driver2.iterationMeta)),driver2,(e,out)=>provideServiceEffect(orElse5(e,out),CurrentIterationMetadata,get11(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,get11(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))});var forever2=unfold2(0,(n)=>n+1),once2=asVoid2(recurs(1));var 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:(either3)=>{result=either3,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 currentCache=globalValue(Symbol.for("effect/FiberRef/currentCache"),()=>fiberRefUnsafeMake(unsafeMakeWith(65536,()=>map9(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(empty15,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,all4=all3,allWith2=allWith,allSuccesses2=allSuccesses,dropUntil2=dropUntil,dropWhile3=dropWhile2,takeUntil2=takeUntil,takeWhile3=takeWhile2,every6=every5,exists2=exists,filter7=filter5,filterMap5=filterMap4,findFirst6=findFirst5,forEach6=forEach5,head4=head3,mergeAll5=mergeAll3,partition4=partition3,reduce10=reduce9,reduceWhile2=reduceWhile,reduceRight4=reduceRight3,reduceEffect2=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,succeed8=succeed,succeedNone2=succeedNone,succeedSome2=succeedSome,suspend3=suspend,sync3=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_2=try_;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,liftPredicate2=liftPredicate,as3=as,asSome2=asSome,asSomeError2=asSomeError,asVoid3=asVoid,flip2=flip,flipWith2=flipWith,map15=map9,mapAccum4=mapAccum3,mapBoth3=mapBoth,mapError3=mapError,mapErrorCause2=mapErrorCause,merge7=merge5,negate2=negate,acquireRelease2=acquireRelease,acquireReleaseInterruptible2=acquireReleaseInterruptible,acquireUseRelease2=acquireUseRelease,addFinalizer3=addFinalizer,ensuring2=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,mapInputContext2=mapInputContext,provide2=effect_provide,provideService2=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,either3=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,andThen4=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=isSuccess2,match12=match7,matchCause3=matchCause,matchCauseEffect3=matchCauseEffect,matchEffect2=matchEffect,log2=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,zipLeft2=zipLeftOptions,zipRight3=zipRightOptions,zipWith5=zipWithOptions,ap=dual(2,(self,that)=>zipWith5(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:map15(self.value,some)},transposeMapOption=dual(2,(self,f)=>isNone(self)?succeedNone2:map15(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,map15(maker.effect.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=fromEffect3(TagClass,map15(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,map15(maker.scoped.apply(null,arguments),(_)=>new this(_)))}.bind(this);return layerCache??=scoped(TagClass,map15(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??=succeed6(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(error){fnError=error,effect=die6(error)}if(options.pipeables.length>0)try{for(let x of options.pipeables)effect=x(effect,...options.args)}catch(error){effect=fnError?failCause8(sequential(die(fnError),die(error))):die6(error)}let cache=!1,captureStackTrace=()=>{if(cache!==!1)return cache;if(options.errorCall.stack){let stackDef=options.errorDef.stack.trim().split(`
28
28
  `),stackCall=options.errorCall.stack.trim().split(`
29
29
  `),endStackDef=stackDef.slice(2).join(`
30
30
  `).trim();if(!endStackDef.includes("("))endStackDef=endStackDef.replace(/at (.*)/,"at ($1)");let endStackCall=stackCall.slice(2).join(`
31
31
  `).trim();if(!endStackCall.includes("("))endStackCall=endStackCall.replace(/at (.*)/,"at ($1)");return cache=`${endStackDef}
32
- ${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 exports_Layer={};__export(exports_Layer,{zipWith:()=>zipWith5,withSpan:()=>withSpan4,withParentSpan:()=>withParentSpan4,updateService:()=>updateService3,unwrapScoped:()=>unwrapScoped2,unwrapEffect:()=>unwrapEffect2,toRuntimeWithMemoMap:()=>toRuntimeWithMemoMap2,toRuntime:()=>toRuntime2,tapErrorCause:()=>tapErrorCause4,tapError:()=>tapError4,tap:()=>tap4,syncContext:()=>syncContext2,sync:()=>sync4,suspend:()=>suspend4,succeedContext:()=>succeedContext2,succeed:()=>succeed7,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:()=>orElse4,orDie:()=>orDie4,mock:()=>mock2,mergeAll:()=>mergeAll6,merge:()=>merge8,memoize:()=>memoize3,matchCause:()=>matchCause4,match:()=>match11,mapError:()=>mapError4,map:()=>map12,makeMemoMap:()=>makeMemoMap2,locallyWith:()=>locallyWith2,locallyScoped:()=>locallyScoped2,locallyEffect:()=>locallyEffect2,locally:()=>locally2,launch:()=>launch2,isLayer:()=>isLayer2,isFresh:()=>isFresh2,function:()=>fromFunction2,fresh:()=>fresh2,flatten:()=>flatten8,flatMap:()=>flatMap11,fiberRefLocallyScopedWith:()=>fiberRefLocallyScopedWith3,failSync:()=>failSync4,failCauseSync:()=>failCauseSync4,failCause:()=>failCause6,fail:()=>fail7,extendScope:()=>extendScope2,empty:()=>empty28,effectDiscard:()=>effectDiscard,effectContext:()=>effectContext,effect:()=>effect,discard:()=>discard2,dieSync:()=>dieSync4,die:()=>die6,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(make5(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,die6=die4,dieSync4=dieSync2,discard2=discard,effect=fromEffect2,effectDiscard=fromEffectDiscard,effectContext=fromEffectContext,empty28=empty27,extendScope2=extendScope,fail7=fail4,failSync4=failSync2,failCause6=failCause3,failCauseSync4=failCauseSync2,flatMap11=flatMap9,flatten8=flatten6,fresh2=fresh,mock2=mock,fromFunction2=fromFunction;var launch2=launch,map12=map9,mapError4=mapError2,match11=match9,matchCause4=matchCause2,memoize3=memoize2,merge8=merge6,mergeAll6=mergeAll4,orDie4=orDie2,orElse4=orElse2,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,succeed7=succeed4,succeedContext2=succeedContext,suspend4=suspend2,sync4=sync2,syncContext2=syncContext,tap4=tap2,tapError4=tapError2,tapErrorCause4=tapErrorCause2,toRuntime2=toRuntime,toRuntimeWithMemoMap2=toRuntimeWithMemoMap,provide3=provide,provideMerge2=provideMerge,zipWith5=zipWith3,unwrapEffect2=unwrapEffect,unwrapScoped2=unwrapScoped,setClock=(clock3)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add2(clockTag,clock3))),setConfigProvider2=setConfigProvider,parentSpan2=parentSpan,setRandom=(random4)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add2(randomTag,random4))),setRequestBatching=(requestBatching)=>scopedDiscard2(fiberRefLocallyScoped(currentRequestBatching,requestBatching)),setRequestCaching=(requestCaching)=>scopedDiscard2(fiberRefLocallyScoped(currentCacheEnabled,requestCaching)),setRequestCache=(cache)=>scopedDiscard2(isEffect(cache)?flatMap7(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,map12(context4(),(c)=>add2(c,tag,f(unsafeGet3(c,tag))))));var import_redis=__toESM(require_dist2(),1);class RedisError extends exports_Data.TaggedError("RedisError"){}class RedisConnectionOptions extends exports_Context.Tag("RedisConnectionOptions")(){}class Redis extends exports_Context.Tag("Redis")(){}class RedisPubSub extends exports_Context.Tag("RedisPubSub")(){}class RedisPersistence extends exports_Context.Tag("RedisPersistence")(){}class RedisStream extends exports_Context.Tag("RedisStream")(){}var redisClientEffect=exports_Effect.gen(function*(){let{options}=yield*RedisConnectionOptions;return yield*exports_Effect.acquireRelease(exports_Effect.tryPromise({try:()=>import_redis.createClient(options).connect().then((r)=>{return console.log("Connected to Redis"),r.on("error",(e)=>{console.log("Redis error(on error):",e.message),r.destroy()}),r.on("end",()=>{console.log("Connection to Redis ended")}),r}),catch:(e)=>new RedisError({cause:e,message:"Error while connecting to Redis"})}),(client)=>client.isReady?exports_Effect.tryPromise({try:async()=>{console.log("Cleaning up Redis connection"),await client.quit()},catch:(e)=>new RedisError({cause:e,message:"Error while closing Redis connection"})}).pipe(exports_Effect.catchAll(()=>exports_Effect.void)):exports_Effect.void)}),bootstrapRedisServiceEffect=exports_Effect.gen(function*(){let client=yield*redisClientEffect;return Redis.of({use:(fn2)=>exports_Effect.gen(function*(){let result=yield*exports_Effect.try({try:()=>fn2(client),catch:(e)=>new RedisError({cause:e,message:"Synchronous error in `Redis.use`"})});if(result instanceof Promise)return yield*exports_Effect.tryPromise({try:()=>result,catch:(e)=>new RedisError({cause:e,message:"Asynchronous error in `Redis.use`"})});return result})})}),bootstrapRedisPersistenceServiceEffect=exports_Effect.gen(function*(){let client=yield*redisClientEffect;return RedisPersistence.of({setValue:(key,value)=>exports_Effect.tryPromise({try:()=>client.set(key,value),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.setValue`"})}),getValue:(key)=>exports_Effect.tryPromise({try:()=>client.get(key),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.getValue`"})}),del:(key)=>exports_Effect.tryPromise({try:()=>client.del(key),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.del`"})}),exists:(key)=>exports_Effect.tryPromise({try:async()=>{return await client.exists(key)===1},catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.exists`"})}),sAdd:(key,members)=>exports_Effect.tryPromise({try:()=>client.sAdd(key,members),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.sAdd`"})})})}),bootstrapRedisPubSubServiceEffect=exports_Effect.gen(function*(){let clientPublish=yield*redisClientEffect,clientSubscribe=yield*redisClientEffect;return RedisPubSub.of({publish:(channel,message)=>exports_Effect.tryPromise({try:()=>clientPublish.publish(channel,message),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.publish`"})}),subscribe:(channel,handler)=>exports_Effect.tryPromise({try:()=>clientSubscribe.subscribe(channel,handler),catch:(e)=>new RedisError({cause:e,message:"Error in `Redis.subscribe`"})})})}),bootstrapRedisStreamServiceEffect=exports_Effect.gen(function*(){let clientProducer=yield*redisClientEffect,clientConsumer=yield*redisClientEffect;return RedisStream.of({xadd:(key,id,message)=>exports_Effect.tryPromise({try:async()=>{return await clientProducer.xAdd(key,id,message)},catch:(e)=>new RedisError({cause:e,message:"Error in `RedisStream.xadd`"})}),xread:(key,id,block,count)=>exports_Effect.tryPromise({try:async()=>{let options={};if(block!==void 0)options.BLOCK=block;if(count!==void 0)options.COUNT=count;let streams=[{key,id}],result=await clientConsumer.xRead(streams,options);if(!result)return[];if(!Array.isArray(result))return[];return result.flatMap((stream)=>{if(stream&&typeof stream==="object"&&"messages"in stream&&Array.isArray(stream.messages))return stream.messages.map((msg)=>{if(msg&&typeof msg==="object"&&"id"in msg)return{id:String(msg.id),message:msg.message};return{id:"",message:{}}});return[]})},catch:(e)=>new RedisError({cause:e,message:"Error in `RedisStream.xread`"})}),xrange:(key,start3,end3,count)=>exports_Effect.tryPromise({try:async()=>{let options={};if(count!==void 0)options.COUNT=count;return(await clientConsumer.xRange(key,start3,end3,options)).map((msg)=>({id:msg.id,message:msg.message}))},catch:(e)=>new RedisError({cause:e,message:"Error in `RedisStream.xrange`"})})})}),RedisConnectionOptionsLive=(options)=>exports_Layer.succeed(RedisConnectionOptions,RedisConnectionOptions.of({options})),RedisLive=exports_Layer.scoped(Redis,bootstrapRedisServiceEffect),RedisPubSubLive=exports_Layer.scoped(RedisPubSub,bootstrapRedisPubSubServiceEffect),RedisPersistenceLive=exports_Layer.scoped(RedisPersistence,bootstrapRedisPersistenceServiceEffect),RedisStreamLive=exports_Layer.scoped(RedisStream,bootstrapRedisStreamServiceEffect);export{RedisStreamLive,RedisStream,RedisPubSubLive,RedisPubSub,RedisPersistenceLive,RedisPersistence,RedisLive,RedisError,RedisConnectionOptionsLive,RedisConnectionOptions,Redis};
32
+ ${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 currentScheduler2=currentScheduler;var currentTracerTimingEnabled2=currentTracerTimingEnabled;var exports_Layer={};__export(exports_Layer,{zipWith:()=>zipWith6,withSpan:()=>withSpan4,withParentSpan:()=>withParentSpan4,updateService:()=>updateService3,unwrapScoped:()=>unwrapScoped2,unwrapEffect:()=>unwrapEffect2,toRuntimeWithMemoMap:()=>toRuntimeWithMemoMap2,toRuntime:()=>toRuntime2,tapErrorCause:()=>tapErrorCause4,tapError:()=>tapError4,tap:()=>tap4,syncContext:()=>syncContext2,sync:()=>sync4,suspend:()=>suspend4,succeedContext:()=>succeedContext2,succeed:()=>succeed9,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:()=>match13,mapError:()=>mapError4,map:()=>map16,makeMemoMap:()=>makeMemoMap2,locallyWith:()=>locallyWith2,locallyScoped:()=>locallyScoped2,locallyEffect:()=>locallyEffect2,locally:()=>locally2,launch:()=>launch2,isLayer:()=>isLayer2,isFresh:()=>isFresh2,function:()=>fromFunction2,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(make5(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=empty27,extendScope2=extendScope,fail10=fail7,failSync4=failSync2,failCause9=failCause6,failCauseSync4=failCauseSync2,flatMap12=flatMap10,flatten9=flatten7,fresh2=fresh,mock2=mock,fromFunction2=fromFunction;var launch2=launch,map16=map13,mapError4=mapError2,match13=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,succeed9=succeed6,succeedContext2=succeedContext,suspend4=suspend2,sync4=sync2,syncContext2=syncContext,tap4=tap2,tapError4=tapError2,tapErrorCause4=tapErrorCause2,toRuntime2=toRuntime,toRuntimeWithMemoMap2=toRuntimeWithMemoMap,provide3=provide,provideMerge2=provideMerge,zipWith6=zipWith4,unwrapEffect2=unwrapEffect,unwrapScoped2=unwrapScoped,setClock=(clock3)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add2(clockTag,clock3))),setConfigProvider2=setConfigProvider,parentSpan2=parentSpan,setRandom=(random4)=>scopedDiscard2(fiberRefLocallyScopedWith(currentServices,add2(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,map16(context4(),(c)=>add2(c,tag,f(unsafeGet3(c,tag))))));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 map9(this.size,(size8)=>size8<=0)}get isFull(){return map9(this.size,(size8)=>size8>=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,poll2(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,poll2(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(max5){return suspend(()=>get6(this.shutdownFlag)?interrupt2:sync(()=>{let values3=this.queue.pollUpTo(max5);return this.strategy.unsafeOnQueueEmptySpace(this.queue,this.takers),fromIterable2(values3)}))}takeBetween(min3,max5){return suspend(()=>takeRemainderLoop(this,min3,max5,empty4()))}}var takeRemainderLoop=(self,min3,max5,acc)=>{if(max5<min3)return succeed(acc);return pipe(takeUpTo(self,max5),flatMap8((bs)=>{let remaining=min3-bs.length;if(remaining===1)return pipe(take2(self),map9((b)=>pipe(acc,appendAll2(bs),append2(b))));if(remaining>1)return pipe(take2(self),flatMap8((b)=>takeRemainderLoop(self,remaining-1,max5-bs.length-1,pipe(acc,appendAll2(bs),append2(b)))));return succeed(pipe(acc,appendAll2(bs)))}))},isQueue=(u)=>isEnqueue(u)&&isDequeue(u),isEnqueue=(u)=>hasProperty(u,EnqueueTypeId),isDequeue=(u)=>hasProperty(u,DequeueTypeId),bounded2=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make40(backingQueueFromMutableQueue(queue),backPressureStrategy()))),dropping=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make40(backingQueueFromMutableQueue(queue),droppingStrategy()))),sliding=(requestedCapacity)=>pipe(sync(()=>bounded(requestedCapacity)),flatMap8((queue)=>make40(backingQueueFromMutableQueue(queue),slidingStrategy()))),unbounded2=()=>pipe(sync(()=>unbounded()),flatMap8((queue)=>make40(backingQueueFromMutableQueue(queue),droppingStrategy()))),unsafeMake9=(queue,takers,shutdownHook,shutdownFlag,strategy)=>{return new QueueImpl(queue,takers,shutdownHook,shutdownFlag,strategy)},make40=(queue,strategy)=>pipe(deferredMake(),map9((deferred)=>unsafeMake9(queue,unbounded(),deferred,make11(!1),strategy)));class BackingQueueFromMutableQueue{mutable;[BackingQueueTypeId]=backingQueueVariance;constructor(mutable){this.mutable=mutable}poll(def){return poll2(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(),size8=(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)),unsafeOffer=dual(2,(self,value)=>self.unsafeOffer(value)),offerAll2=dual(2,(self,iterable)=>self.offerAll(iterable)),poll5=(self)=>map9(self.takeUpTo(1),head2),take2=(self)=>self.take,takeAll=(self)=>self.takeAll,takeUpTo=dual(2,(self,max5)=>self.takeUpTo(max5)),takeBetween=dual(3,(self,min3,max5)=>self.takeBetween(min3,max5)),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(!isEmpty7(this.putters)&&!isEmpty7(takers)){let taker=poll2(takers,void 0),putter=poll2(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,poll2(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](),next,offering=!0;while(!(next=iterator.next()).done&&offering){if(queue.capacity()===0)return;queue.poll(EmptyMutableQueue),offering=queue.offer(next.value)}}}var unsafeCompleteDeferred=(deferred,a)=>{return deferredUnsafeDone(deferred,succeed(a))},unsafeOfferAll=(queue,as4)=>{return pipe(queue,offerAll(as4))},unsafePollAll=(queue)=>{return pipe(queue,pollUpTo(Number.POSITIVE_INFINITY))},unsafePollN=(queue,max5)=>{return pipe(queue,pollUpTo(max5))},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,poll2(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&&!isEmpty7(takers))strategy.onCompleteTakersWithEmptyQueue(takers)};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)},bounded3=(capacity3)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity3);return makePubSub(pubsub,new BackPressureStrategy2)}),dropping2=(capacity3)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity3);return makePubSub(pubsub,new DroppingStrategy2)}),sliding2=(capacity3)=>suspend(()=>{let pubsub=makeBoundedPubSub(capacity3);return makePubSub(pubsub,new SlidingStrategy2)}),unbounded3=(options)=>suspend(()=>{let pubsub=makeUnboundedPubSub(options);return makePubSub(pubsub,new DroppingStrategy2)});var shutdown2=(self)=>self.shutdown;var subscribe=(self)=>self.subscribe,makeBoundedPubSub=(capacity3)=>{let options=typeof capacity3==="number"?{capacity:capacity3}:capacity3;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)=>map9(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(capacity3,replayBuffer){this.capacity=capacity3,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity3}),this.subscribers=Array.from({length:capacity3})}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 empty4()}let chunk2=fromIterable2(elements),n=chunk2.length,size9=this.publisherIndex-this.subscribersIndex,available=this.capacity-size9,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk2;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let a=unsafeGet4(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 empty4();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size9=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size9);if(toPoll<=0)return empty4();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(capacity3,replayBuffer){this.capacity=capacity3,this.replayBuffer=replayBuffer,this.array=Array.from({length:capacity3}),this.mask=capacity3-1,this.subscribers=Array.from({length:capacity3})}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 empty4()}let chunk2=fromIterable2(elements),n=chunk2.length,size9=this.publisherIndex-this.subscribersIndex,available=this.capacity-size9,forPubSub=Math.min(n,available);if(forPubSub===0)return chunk2;let iteratorIndex=0,publishAllIndex=this.publisherIndex+forPubSub;while(this.publisherIndex!==publishAllIndex){let elem=unsafeGet4(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 empty4();this.subscriberIndex=Math.max(this.subscriberIndex,this.self.subscribersIndex);let size9=this.self.publisherIndex-this.subscriberIndex,toPoll=Math.min(n,size9);if(toPoll<=0)return empty4();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 empty4()}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 empty4();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 empty4()}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 map9(this.size,(size9)=>size9===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=isEmpty7(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 as4=isEmpty7(this.pollers)?unsafePollAllSubscription(this.subscription):empty4();if(this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),this.replayWindow.remaining>0)return succeed(appendAll2(this.replayWindow.takeAll(),as4));return succeed(as4)})}takeUpTo(max5){return suspend(()=>{if(get6(this.shutdownFlag))return interrupt2;let replay=void 0;if(this.replayWindow.remaining>=max5){let as5=this.replayWindow.takeN(max5);return succeed(as5)}else if(this.replayWindow.remaining>0)replay=this.replayWindow.takeAll(),max5=max5-replay.length;let as4=isEmpty7(this.pollers)?unsafePollN2(this.subscription,max5):empty4();return this.strategy.unsafeOnPubSubEmptySpace(this.pubsub,this.subscribers),replay?succeed(appendAll2(replay,as4)):succeed(as4)})}takeBetween(min3,max5){return suspend(()=>takeRemainderLoop2(this,min3,max5,empty4()))}}var takeRemainderLoop2=(self,min3,max5,acc)=>{if(max5<min3)return succeed(acc);return pipe(self.takeUpTo(max5),flatMap8((bs)=>{let remaining=min3-bs.length;if(remaining===1)return pipe(self.take,map9((b)=>pipe(acc,appendAll2(bs),append2(b))));if(remaining>1)return pipe(self.take,flatMap8((b)=>takeRemainderLoop2(self,remaining-1,max5-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 map9(this.size,(size9)=>size9===this.capacity())}get isEmpty(){return map9(this.size,(size9)=>size9===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(all3([this.scope.fork(sequential2),makeSubscription(this.pubsub,this.subscribers,this.strategy)]),(tuple2)=>tuple2[0].addFinalizer(()=>tuple2[1].shutdown));return map9(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)=>map9(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=(capacity3)=>{if(capacity3<=0)throw new InvalidPubSubCapacityException(`Cannot construct PubSub with capacity of ${capacity3}`)},unsafeCompleteDeferred2=(deferred,a)=>{deferredUnsafeDone(deferred,succeed(a))},unsafeOfferAll2=(queue,as4)=>{return pipe(queue,offerAll(as4))},unsafePollAllQueue=(queue)=>{return pipe(queue,pollUpTo(Number.POSITIVE_INFINITY))},unsafePollAllSubscription=(subscription)=>{return subscription.pollUpTo(Number.POSITIVE_INFINITY)},unsafePollN2=(subscription,max5)=>{return subscription.pollUpTo(max5)},unsafePublishAll=(pubsub,as4)=>{return pubsub.publishAll(as4)},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,isShutdown2){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(isShutdown2)?interrupt2:deferredAwait(deferred)}),onInterrupt(()=>sync(()=>this.unsafeRemove(deferred))))})}unsafeOnPubSubEmptySpace(pubsub,subscribers){let keepPolling=!0;while(keepPolling&&!pubsub.isFull()){let publisher=pipe(this.publishers,poll2(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](),next=iterator.next();if(!next.done)while(!0){let value=next.value;if(next=iterator.next(),next.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](),next=it.next();if(!next.done&&pubsub.capacity>0){let a=next.value,loop3=!0;while(loop3){pubsub.slide();let pub=pubsub.publish(a);if(pub&&(next=it.next())&&!next.done)a=next.value;else if(pub)loop3=!1}}}}var unsafeStrategyCompletePollers=(strategy,pubsub,subscribers,subscription,pollers)=>{let keepPolling=!0;while(keepPolling&&!subscription.isEmpty()){let poller=pipe(pollers,poll2(EmptyMutableQueue));if(poller===EmptyMutableQueue)if(pipe(subscribers,removeSubscribers(subscription,pollers)),isEmpty7(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(capacity3){this.capacity=capacity3}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(as4){for(let a of as4)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 empty4();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:()=>empty4(),takeAll:()=>empty4()};var bounded4=bounded3,dropping3=dropping2,sliding3=sliding2,unbounded4=unbounded3;var shutdown3=shutdown2;var subscribe2=subscribe;var exports_Queue={};__export(exports_Queue,{unsafeOffer:()=>unsafeOffer2,unbounded:()=>unbounded5,takeUpTo:()=>takeUpTo2,takeN:()=>takeN2,takeBetween:()=>takeBetween2,takeAll:()=>takeAll2,take:()=>take3,slidingStrategy:()=>slidingStrategy2,sliding:()=>sliding4,size:()=>size10,shutdown:()=>shutdown4,poll:()=>poll6,offerAll:()=>offerAll3,offer:()=>offer3,make:()=>make41,isShutdown:()=>isShutdown3,isQueue:()=>isQueue2,isFull:()=>isFull3,isEnqueue:()=>isEnqueue2,isEmpty:()=>isEmpty12,isDequeue:()=>isDequeue2,droppingStrategy:()=>droppingStrategy2,dropping:()=>dropping4,capacity:()=>capacity4,bounded:()=>bounded5,backPressureStrategy:()=>backPressureStrategy2,awaitShutdown:()=>awaitShutdown3,QueueStrategyTypeId:()=>QueueStrategyTypeId2,EnqueueTypeId:()=>EnqueueTypeId2,DequeueTypeId:()=>DequeueTypeId2,BackingQueueTypeId:()=>BackingQueueTypeId2});var EnqueueTypeId2=EnqueueTypeId,DequeueTypeId2=DequeueTypeId,QueueStrategyTypeId2=QueueStrategyTypeId,BackingQueueTypeId2=BackingQueueTypeId,isQueue2=isQueue,isDequeue2=isDequeue,isEnqueue2=isEnqueue,backPressureStrategy2=backPressureStrategy,droppingStrategy2=droppingStrategy,slidingStrategy2=slidingStrategy,make41=make40,bounded5=bounded2,dropping4=dropping,sliding4=sliding,unbounded5=unbounded2,capacity4=capacity2,size10=size8,isEmpty12=isEmpty10,isFull3=isFull,isShutdown3=isShutdown,awaitShutdown3=awaitShutdown,shutdown4=shutdown,offer3=offer2,unsafeOffer2=unsafeOffer,offerAll3=offerAll2,poll6=poll5,take3=take2,takeAll2=takeAll,takeUpTo2=takeUpTo,takeBetween2=takeBetween,takeN2=takeN;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 isFailure(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(succeed10,f),op}),collectElements=(self)=>{return suspend5(()=>{let builder=[];return flatMap13(pipeTo(self,collectElementsReader(builder)),(value)=>sync5(()=>[fromIterable2(builder),value]))})},collectElementsReader=(builder)=>readWith({onInput:(outElem)=>flatMap13(sync5(()=>{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=(error)=>failCause10(fail5(error));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}),provideContext3=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},succeed10=(value)=>sync5(()=>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},sync5=(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 zipWith5(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,next)=>{if(acc!==void 0&&next!==void 0)return zipWith5(acc,exit2(next),(exit1,exit22)=>zipRight2(exit1,exit22));else if(acc!==void 0)return acc;else if(next!==void 0)return exit2(next);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,next)=>{if(acc!==void 0&&next!==void 0)return zipWith5(acc,exit2(next),(exit1,exit22)=>zipRight2(exit1,exit22));else if(acc!==void 0)return acc;else if(next!==void 0)return exit2(next);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,next){this.value=value,this.next=next}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 match5(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)=>sync3(()=>this.addFinalizer((exit3)=>flatMap11(interrupt6(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)=>sync3(()=>{let prevLastClose=this._closeLastSubstream===void 0?_void:this._closeLastSubstream;this._closeLastSubstream=pipe(prevLastClose,zipRight3(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(()=>sync3(()=>{this._providedEnv=previousEnv}));break}case OP_READ:{let read=this._currentChannel;result=Read(this._input,identity,(emitted)=>{try{this._currentChannel=read.more(emitted)}catch(error){this._currentChannel=read.done.onExit(die3(error))}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(error){this._currentChannel=failCause10(die4(error))}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=[],next=this._doneStack.pop();while(next){if(next._tag==="ContinuationFinalizer")finalizers.push(next.finalizer);next=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,ensuring2(sync3(()=>this.clearInProgressFinalizer())));let closeSelf=void 0,selfFinalizers=this.popAllFinalizers(exit3);if(selfFinalizers!==void 0)closeSelf=pipe(selfFinalizers,ensuring2(sync3(()=>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))),map15(([[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,ensuring2(sync3(()=>this.clearInProgressFinalizer())),uninterruptible2,flatMap11(()=>sync3(()=>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(error){this._currentChannel=failCause10(die4(error))}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,ensuring2(sync3(()=>this.clearInProgressFinalizer())),uninterruptible2,flatMap11(()=>sync3(()=>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)=>sync3(()=>{this._currentChannel=failCause10(cause3)}),onSuccess:(out)=>sync3(()=>{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(ensuring3){this.addFinalizer(ensuring3.finalizer),this._currentChannel=ensuring3.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=match5(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(sync3(()=>closeFunc(subexecutorDone)),flatMap11((closeEffect)=>closeEffect!==void 0?closeEffect:_void)),{discard:!0})));let state=pipe(subexecutorDone,match5({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},match5({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),zipRight3(effect3))},(emitted)=>{if(this._closeLastSubstream!==void 0){let closeLastSubstream=this._closeLastSubstream;return this._closeLastSubstream=void 0,pipe(this._executeCloseLastSubstream(closeLastSubstream),map15(()=>{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),map15(()=>this.replaceSubexecutor(drain)))}this.replaceSubexecutor(drain);return}let closeLastSubstream=this._closeLastSubstream,state=this.finishSubexecutorWithCloseEffect(pipe(exit3,map10((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(()=>succeed8(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))),map15((exits)=>pipe(all(exits),getOrElse(()=>void_2))),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 run=(channelDeferred,scopeDeferred,scope6)=>acquireUseRelease2(sync3(()=>new ChannelExecutor(self,void 0,identity)),(exec)=>suspend3(()=>runScopedInterpret(exec.run(),exec).pipe(intoDeferred2(channelDeferred),zipRight3(_await(channelDeferred)),zipLeft2(_await(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)=>all4([fork2(scope5,sequential3),make18(),make18()]).pipe(flatMap11(([child,channelDeferred,scopeDeferred])=>restore(run(channelDeferred,scopeDeferred,child)).pipe(forkIn2(scope5),flatMap11((fiber)=>scope5.addFinalizer((exit3)=>{let interruptors3=isFailure(exit3)?interruptors2(exit3.cause):void 0;return isDone(channelDeferred).pipe(flatMap11((isDone6)=>isDone6?succeed2(scopeDeferred,void 0).pipe(zipRight3(_await3(fiber)),zipRight3(inheritAll2(fiber))):succeed2(scopeDeferred,void 0).pipe(zipRight3(interruptors3&&size3(interruptors3)>0?interruptAs(fiber,combineAll2(interruptors3)):interrupt6(fiber)),zipRight3(inheritAll2(fiber)))))}).pipe(zipRight3(restore(_await(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 match14=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?[_await(state.notifyProducer),state]:[_void,state]))}get close(){return fiberIdWith2((fiberId3)=>this.error(interrupt5(fiberId3)))}done(value){return flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[_await(state.notifyProducer),state];case OP_STATE_EMIT:return[forEach6(state.notifyConsumers,(deferred)=>succeed2(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(make18(),(deferred)=>flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[_await(state.notifyProducer),state];case OP_STATE_EMIT:{let notifyConsumer=state.notifyConsumers[0],notifyConsumers=state.notifyConsumers.slice(1);if(notifyConsumer!==void 0)return[succeed2(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[_await(state.notifyProducer),state];case OP_STATE_EMIT:return[forEach6(state.notifyConsumers,(deferred)=>failCause2(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(make18(),(deferred)=>flatten8(modify4(this.ref,(state)=>{switch(state._tag){case OP_STATE_EMPTY:return[zipRight3(succeed2(state.notifyProducer,void 0),matchCause3(_await(deferred),{onFailure:onError3,onSuccess:match({onLeft:onDone,onRight:onElement})})),stateEmit([deferred])];case OP_STATE_EMIT:return[matchCause3(_await(deferred),{onFailure:onError3,onSuccess:match({onLeft:onDone,onRight:onElement})}),stateEmit([...state.notifyConsumers,deferred])];case OP_STATE_ERROR:return[succeed8(onError3(state.cause)),state];case OP_STATE_DONE2:return[succeed8(onDone(state.done)),state]}})))}}var make42=()=>pipe(make18(),flatMap11((deferred)=>make28(stateEmpty(deferred))),map15((ref)=>new SingleProducerAsyncInputImpl(ref)));var acquireUseRelease3=(acquire,use,release)=>flatMap13(fromEffect4(make28(()=>_void)),(ref)=>pipe(fromEffect4(uninterruptible2(tap3(acquire,(a)=>set6(ref,(exit3)=>release(a,exit3))))),flatMap13(use),ensuringWith((exit3)=>flatMap11(get12(ref),(f)=>f(exit3))))),as4=dual(2,(self,value)=>map17(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:succeed10});return pipeTo(self,drainer)};var ensuring3=dual(2,(self,finalizer)=>ensuringWith(self,()=>finalizer));var flatten10=(self)=>flatMap13(self,identity),foldChannel=dual(2,(self,options)=>foldCauseChannel(self,{onFailure:(cause3)=>{let either4=failureOrCause2(cause3);switch(either4._tag){case"Left":return options.onFailure(either4.left);case"Right":return failCause10(either4.right)}},onSuccess:options.onSuccess}));var fromInput=(input)=>unwrap(input.takeWith(failCause10,(elem)=>flatMap13(write(elem),()=>fromInput(input)),succeed10));var fromQueue=(queue)=>suspend5(()=>fromQueueInternal(queue)),fromQueueInternal=(queue)=>pipe(fromEffect4(take3(queue)),flatMap13(match({onLeft:match5({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,_await(deferred))),map17=dual(2,(self,f)=>flatMap13(self,(a)=>sync5(()=>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*bounded5(n);yield*addFinalizer2(scope5,shutdown4(queue));let errorSignal=yield*make18(),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)=>zipRight3(interruptible4(withPermits(n)(_void)),asVoid3(offer3(queue,succeed8(left2(outDone))))),onRight:(outElem)=>gen2(function*(){let deferred=yield*make18(),latch=yield*make18();yield*offer3(queue,map15(_await(deferred),right2)),yield*succeed2(latch,void 0).pipe(zipRight3(uninterruptibleMask3((restore)=>exit2(restore(_await(errorSignal))).pipe(raceFirst2(exit2(restore(f(outElem)))),flatMap11(identity))).pipe(tapErrorCause3((cause3)=>failCause2(errorSignal,cause3)),intoDeferred2(deferred))),withPermits(1),forkIn2(scope5)),yield*_await(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*bounded5(bufferSize);yield*addFinalizer2(scope5,shutdown4(queue));let cancelers=yield*unbounded5();yield*addFinalizer2(scope5,shutdown4(cancelers));let lastDone=yield*make28(none2()),errorSignal=yield*make18(),withPermits=(yield*makeSemaphore2(concurrencyN)).withPermits,pull=yield*toPullIn(pipeTo(queueReader,channels),scope5);function evaluatePull(pull2){return pull2.pipe(flatMap11(match({onLeft:(done8)=>succeed8(some2(done8)),onRight:(outElem)=>as3(offer3(queue,succeed8(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(zipRight3(succeed2(errorSignal,void 0)),asVoid3)))}yield*pull.pipe(matchCauseEffect3({onFailure:(cause3)=>offer3(queue,failCause8(cause3)).pipe(zipRight3(succeed8(!1))),onSuccess:match({onLeft:(outDone)=>raceWith2(interruptible4(_await(errorSignal)),interruptible4(withPermits(concurrencyN)(_void)),{onSelfDone:(_,permitAcquisition)=>as3(interrupt6(permitAcquisition),!1),onOtherDone:(_,failureAwait)=>zipRight3(interrupt6(failureAwait),get12(lastDone).pipe(flatMap11(match2({onNone:()=>offer3(queue,succeed8(left2(outDone))),onSome:(lastDone2)=>offer3(queue,succeed8(left2(f(lastDone2,outDone))))})),as3(!1)))}),onRight:(channel)=>match14(mergeStrategy,{onBackPressure:()=>gen2(function*(){let latch=yield*make18(),raceEffects=scopedWith2((scope6)=>toPullIn(pipeTo(queueReader,channel),scope6).pipe(flatMap11((pull2)=>race2(exit2(evaluatePull(pull2)),exit2(interruptible4(_await(errorSignal))))),flatMap11(identity)));return yield*succeed2(latch,void 0).pipe(zipRight3(raceEffects),withPermits(1),forkIn2(scope5)),yield*_await(latch),!(yield*isDone(errorSignal))}),onBufferSliding:()=>gen2(function*(){let canceler=yield*make18(),latch=yield*make18(),size11=yield*size10(cancelers);yield*take3(cancelers).pipe(flatMap11((canceler2)=>succeed2(canceler2,void 0)),when2(()=>size11>=concurrencyN)),yield*offer3(cancelers,canceler);let raceEffects=scopedWith2((scope6)=>toPullIn(pipeTo(queueReader,channel),scope6).pipe(flatMap11((pull2)=>exit2(evaluatePull(pull2)).pipe(race2(exit2(interruptible4(_await(errorSignal)))),race2(exit2(interruptible4(_await(canceler)))))),flatMap11(identity)));return yield*succeed2(latch,void 0).pipe(zipRight3(raceEffects),withPermits(1),forkIn2(scope5)),yield*_await(latch),!(yield*isDone(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 onDecision(decision){let op=decision;if(op._tag===OP_DONE4)return succeed8(fromEffect4(zipRight3(interrupt6(fiber),op.effect)));return map15(_await3(fiber),match5({onFailure:(cause3)=>fromEffect4(op.f(failCause3(cause3))),onSuccess:match({onLeft:(done9)=>fromEffect4(op.f(succeed3(done9))),onRight:(elem)=>zipRight4(write(elem),go(single2(op.f)))})}))}return match5(exit3,{onFailure:(cause3)=>onDecision(done8(failCause3(cause3))),onSuccess:match({onLeft:(z)=>onDecision(done8(succeed3(z))),onRight:(elem)=>succeed8(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)=>zipRight3(interrupt6(rf),handleSide(leftExit,state.right,pullL)(options.onSelfDone,BothRunning,(f)=>LeftDone(f))),onOtherDone:(rightExit,lf)=>zipRight3(interrupt6(lf),handleSide(rightExit,state.left,pullR)(options.onOtherDone,(left3,right3)=>BothRunning(right3,left3),(f)=>RightDone(f)))}))}case OP_LEFT_DONE:return unwrap(map15(exit2(pullR),match5({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(map15(exit2(pullL),match5({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(ensuring2(inherit),forkIn2(scope5)),rightFiber=interruptible4(pullR).pipe(ensuring2(inherit),forkIn2(scope5));return zipWith5(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(()=>die4(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(die4(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)),run=(self)=>scopedWith2((scope5)=>runIn(self,scope5));var runDrain=(self)=>run(drain(self)),runScoped=(self)=>scopeWith2((scope5)=>runIn(self,scope5)),scoped4=(effect3)=>unwrap(uninterruptibleMask3((restore)=>map15(make38(),(scope5)=>acquireReleaseOut(tapErrorCause3(restore(extend2(effect3,scope5)),(cause3)=>close(scope5,failCause3(cause3))),(_,exit3)=>close(scope5,exit3))))),scopedWith3=(f)=>unwrapScoped3(map15(scope3,(scope5)=>flatMap13(fromEffect4(f(scope5)),write)));var splitLines=()=>suspend5(()=>{let stringBuilder="",midCRLF=!1,splitLinesChunk=(chunk2)=>{let chunkBuilder=[];return map3(chunk2,(str)=>{if(str.length!==0){let from=0,indexOfCR=str.indexOf("\r"),indexOfLF=str.indexOf(`
33
+ `);if(midCRLF){if(indexOfLF===0)chunkBuilder.push(stringBuilder),stringBuilder="",from=1,indexOfLF=str.indexOf(`
34
+ `,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(`
35
+ `,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(`
36
+ `,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?succeed10(done8):flatMap13(write(of2(stringBuilder)),()=>succeed10(done8))});return loop3}),toPubSub=(pubsub)=>toQueue(pubsub),toPull=(self)=>flatMap11(scope3,(scope5)=>toPullIn(self,scope5)),toPullIn=dual(2,(self,scope5)=>zip5(sync3(()=>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,map15(([executor])=>suspend3(()=>interpretToPull(executor.run(),executor))))),interpretToPull=(channelState,exec)=>{let state=channelState;switch(state._tag){case OP_DONE3:return match5(exec.getDone(),{onFailure:failCause8,onSuccess:(done8)=>succeed8(left2(done8))});case OP_EMIT2:return succeed8(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=all4([makeSpan2(name,options),context3(),clock2,get13(currentTracerTimingEnabled2)]);if(dataFirst){let self=arguments[0];return acquireUseRelease3(acquire,([span4,context5])=>provideContext3(self,add2(context5,spanTag,span4)),([span4,,clock3,timingEnabled],exit3)=>endSpan(span4,exit3,clock3,timingEnabled))}return(self)=>acquireUseRelease3(acquire,([span4,context5])=>provideContext3(self,add2(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,unsafeGet4(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)=>map17(that,(b)=>[a,b]))),zipLeft3=dual((args2)=>isChannel(args2[1]),(self,that,options)=>options?.concurrent?map17(zip6(self,that,{concurrent:!0}),(tuple2)=>tuple2[0]):flatMap13(self,(z)=>as4(that,z))),zipRight4=dual((args2)=>isChannel(args2[1]),(self,that,options)=>options?.concurrent?map17(zip6(self,that,{concurrent:!0}),(tuple2)=>tuple2[1]):flatMap13(self,()=>that)),ChannelExceptionTypeId=Symbol.for("effect/Channel/ChannelException"),ChannelException=(error)=>({_tag:"ChannelException",[ChannelExceptionTypeId]:ChannelExceptionTypeId,error}),isChannelException=(u)=>hasProperty(u,ChannelExceptionTypeId);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(empty4())),collectAllLoop=(acc)=>readWithCause({onInput:(chunk2)=>collectAllLoop(pipe(acc,appendAll2(chunk2))),onFailure:failCause10,onDone:()=>succeed10(acc)}),collectAllN=(n)=>suspend6(()=>fromChannel(collectAllNLoop(n,empty4()))),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 succeed10(appendAll2(acc,collected));return flatMap13(write(leftovers),()=>succeed10(appendAll2(acc,collected)))},onFailure:failCause10,onDone:()=>succeed10(acc)});var collectLeftover=(self)=>new SinkImpl(pipe(collectElements(toChannel(self)),map17(([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),as4(nextS));return foldReader(nextS,contFn,f)},onFailure:fail11,onDone:()=>succeedNow(s)})},foldChunkSplit=(s,chunk2,contFn,f,index,length3)=>{if(index===length3)return[s,empty4()];let s1=f(s,pipe(chunk2,unsafeGet4(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:(error)=>toChannel(options.onFailure(error)),onSuccess:([leftovers,z])=>suspend5(()=>{let leftoversRef={ref:pipe(leftovers,filter2(isNonEmpty))},refReader=pipe(sync5(()=>{let ref=leftoversRef.ref;return leftoversRef.ref=empty4(),ref}),flatMap13((chunk2)=>writeChunk(chunk2))),passthrough4=identityChannel(),continuationSink=pipe(refReader,zipRight4(passthrough4),pipeTo(toChannel(options.onSuccess(z))));return flatMap13(collectElements(continuationSink),([newLeftovers,z1])=>pipe(succeed10(leftoversRef.ref),flatMap13(writeChunk),zipRight4(writeChunk(newLeftovers)),as4(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),as4(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 succeed8([s,none2()]);return pipe(f(s,pipe(chunk2,unsafeGet4(index))),flatMap11((s1)=>contFn(s1)?foldChunkSplitEffectInternal(s1,chunk2,index+1,length3,contFn,f):succeed8([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,unsafeGet4(index)))),flatMap13((bool)=>bool?forEachWhileReader(f,input,index+1,length3,cont):write(pipe(input,drop2(index)))),catchAll5((error)=>pipe(write(pipe(input,drop2(index))),zipRight4(fail11(error)))))};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 map18=dual(2,(self,f)=>{return new SinkImpl(pipe(toChannel(self),map17(f)))});var raceWith3=dual(2,(self,options)=>{function race3(scope5){return gen2(function*(){let pubsub=yield*bounded4(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)),zipLeft3(fromEffect4(shutdown4(subscription1))),mergeWith2({other:fromQueue(subscription2).pipe(pipeTo(toChannel(options.other)),zipLeft3(fromEffect4(shutdown4(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(map15((sink)=>toChannel(sink)))));var zipRight5=dual((args2)=>isSink(args2[1]),(self,that,options)=>zipWith7(self,that,(_,z2)=>z2,options)),zipWith7=dual((args2)=>isSink(args2[1]),(self,that,f,options)=>options?.concurrent?raceWith3(self,{other:that,onSelfDone:match5({onFailure:(cause3)=>Done3(failCause8(cause3)),onSuccess:(leftZ)=>Await(match5({onFailure:failCause8,onSuccess:(rightZ)=>succeed8(f(leftZ,rightZ))}))}),onOtherDone:match5({onFailure:(cause3)=>Done3(failCause8(cause3)),onSuccess:(rightZ)=>Await(match5({onFailure:failCause8,onSuccess:(leftZ)=>succeed8(f(leftZ,rightZ))}))})}):flatMap14(self,(z)=>map18(that,(z2)=>f(z,z2))));var count=foldLeftChunks(0,(acc,chunk2)=>acc+chunk2.length),mkString=suspend6(()=>{let strings=[];return pipe(foldLeftChunks(void 0,(_,elems)=>map3(elems,(elem)=>{strings.push(String(elem))})),map18(()=>strings.join("")))});var Done4=Done3,Await2=Await;var TypeId15=Symbol.for("effect/RcRef"),stateEmpty2={_tag:"Empty"},stateClosed={_tag:"Closed"},variance5={_A:identity,_E:identity};class RcRefImpl extends Class{acquire;context;scope;idleTimeToLive;[TypeId15]=variance5;[TypeId12]=TypeId12;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=get3(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,add2(self.context,scopeTag,scope5)))),map9(({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))}))),map9(({state})=>state.value))};var make44=make43,get15=get14;var runFork3=unsafeFork2;var runPromiseExit2=unsafeRunPromiseExit,defaultRuntime2=defaultRuntime;var driver2=driver;var forever4=forever2;var spaced2=spaced;var CurrentIterationMetadata2=CurrentIterationMetadata;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;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(die3(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=(error)=>({[TExitTypeId]:variance6,_tag:OP_FAIL5,error,[symbol](){return pipe(hash(TExitSymbolKey),combine(hash(OP_FAIL5)),combine(hash(error)),cached(this))},[symbol2](that){return isExit2(that)&&that._tag===OP_FAIL5&&equals(error,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)}}),succeed12=(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=fail5(tExit.error);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_DIE3:{state.value=fromTExit(tExit);let cause3=die4(tExit.defect);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_INTERRUPT3:{state.value=fromTExit(tExit);let cause3=interrupt5(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=fail5(tExit.error);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_DIE3:{let cause3=die4(tExit.defect);return completeTodos(failCause3(cause3),journal,scheduler,priority)}case OP_INTERRUPT3:{let cause3=interrupt5(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)=>unsafeGet3(env,current));break}case"Left":{curr=fail14(current.left);break}case"None":{curr=fail14(new NoSuchElementException2);break}case"Right":{curr=succeed13(current.right);break}case"Some":{curr=succeed13(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,ensuring5(sync7(()=>this.env=env)));break}case OP_SUCCEED2:{let value=current.effect_instruction_i1,cont=this.nextSuccess();if(cont===void 0)exit3=succeed12(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=succeed12(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((_)=>succeed13(f(_.journal,_.fiberId,_.getEnv()))),ensuring5=dual(2,(self,finalizer)=>matchSTM(self,{onFailure:(e)=>zipRight7(finalizer,fail14(e)),onSuccess:(a)=>zipRight7(finalizer,succeed13(a))})),fail14=(error)=>failSync6(()=>error),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,map19(right2),catchAll6((e)=>pipe(onFailure(e),map19(left2))),flatMap15((either5)=>{switch(either5._tag){case"Left":return succeed13(either5.left);case"Right":return onSuccess(either5.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},map19=dual(2,(self,f)=>pipe(self,flatMap15((a)=>sync7(()=>f(a)))));var retry5=new STMPrimitive(OP_RETRY),succeed13=(value)=>{let stm=new STMPrimitive(OP_SUCCEED2);return stm.effect_instruction_i1=value,stm},sync7=(evaluate2)=>{let stm=new STMPrimitive(OP_SYNC2);return stm.effect_instruction_i1=evaluate2,stm};var zipRight7=dual(2,(self,that)=>pipe(self,flatMap15(()=>that))),zipWith9=dual(3,(self,that,f)=>pipe(self,flatMap15((a)=>pipe(that,map19((b)=>f(a,b))))));var OP_BACKPRESSURE_STRATEGY="BackPressure",OP_DROPPING_STRATEGY="Dropping",OP_SLIDING_STRATEGY="Sliding";var as6=dual(2,(self,value)=>pipe(self,map19(()=>value)));var flatten11=(self)=>flatMap15(self,identity);var forEach8=dual((args2)=>isIterable(args2[0]),(iterable,f,options)=>{if(options?.discard)return pipe(sync7(()=>iterable[Symbol.iterator]()),flatMap15((iterator)=>{let loop3=suspend8(()=>{let next=iterator.next();if(next.done)return void_6;return pipe(f(next.value),flatMap15(()=>loop3))});return loop3}));return suspend8(()=>fromIterable(iterable).reduce((acc,curr)=>zipWith9(acc,f(curr),(array4,elem)=>{return array4.push(elem),array4}),succeed13([])))});var all5=(input,options)=>{if(Symbol.iterator in input)return forEach8(input,identity,options);else if(options?.discard)return forEach8(Object.values(input),identity,options);return map19(forEach8(Object.entries(input),([_,e])=>map19(e,(a)=>[_,a])),(values3)=>{let res={};for(let[k,v]of values3)res[k]=v;return res})};var suspend8=(evaluate2)=>flatten11(sync7(evaluate2)),tap5=dual(2,(self,f)=>flatMap15(self,(a)=>as6(f(a),a)));var void_6=succeed13(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 succeed13(queue.length)});isFull=map19(this.size,(size11)=>size11===this.requestedCapacity);isEmpty=map19(this.size,(size11)=>size11===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),succeed13(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:return succeed13(!1);case OP_SLIDING_STRATEGY:{if(queue.length===0)return succeed13(!0);return queue.shift(),queue.push(value),unsafeSet2(this.ref,queue,runtime4.journal),succeed13(!0)}}})}offerAll(iterable){return withSTMRuntime((runtime4)=>{let as7=Array.from(iterable),queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);if(queue.length+as7.length<=this.requestedCapacity)return unsafeSet2(this.ref,[...queue,...as7],runtime4.journal),succeed13(!0);switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:{let forQueue=as7.slice(0,this.requestedCapacity-queue.length);return unsafeSet2(this.ref,[...queue,...forQueue],runtime4.journal),succeed13(!1)}case OP_SLIDING_STRATEGY:{let forQueue=as7.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),succeed13(!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 succeed13(queue[0])});peekOption=withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);return succeed13(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),succeed13(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),succeed13(queue)});takeUpTo(max5){return withSTMRuntime((runtime4)=>{let queue=unsafeGet7(this.ref,runtime4.journal);if(queue===void 0)return interruptAs2(runtime4.fiberId);let[toTake,remaining]=splitAt2(unsafeFromArray(queue),max5);return unsafeSet2(this.ref,Array.from(remaining),runtime4.journal),succeed13(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 succeed13(unsafeGet7(this.pubsubSize,runtime4.journal))});isEmpty=map19(this.size,(size11)=>size11===0);isFull=map19(this.size,(size11)=>size11===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 succeed13(!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),succeed13(!0)}switch(this.strategy._tag){case OP_BACKPRESSURE_STRATEGY:return retry5;case OP_DROPPING_STRATEGY:return succeed13(!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),succeed13(!0)}}})}offerAll(iterable){return map19(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,empty7(),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,size11=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(size11=size11+1,size11>=Number.MAX_SAFE_INTEGER)loop3=!1}currentSubscriberHead=tail}}return succeed13(size11)});isEmpty=map19(this.size,(size11)=>size11===0);isFull=map19(this.size,(size11)=>size11===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 succeed13(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 succeed13(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 size11=unsafeGet7(this.pubsubSize,journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,journal),unsafeSet2(this.publisherHead,tail,journal),unsafeSet2(this.pubsubSize,size11-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 size11=unsafeGet7(this.pubsubSize,runtime4.journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet2(this.publisherHead,tail,runtime4.journal),unsafeSet2(this.pubsubSize,size11-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 succeed13(value)});takeAll=this.takeUpTo(Number.POSITIVE_INFINITY);takeUpTo(max5){return withSTMRuntime((runtime4)=>{let currentSubscriberHead=unsafeGet7(this.subscriberHead,runtime4.journal);if(currentSubscriberHead===void 0)return interruptAs2(runtime4.fiberId);let builder=[],n=0;while(n!==max5){let node=unsafeGet7(currentSubscriberHead,runtime4.journal);if(node===void 0)n=max5;else{let{head:head6,tail}=node;if(head6!==AbsentValue2){let subscribers=node.subscribers;if(subscribers===1){let size11=unsafeGet7(this.pubsubSize,runtime4.journal),updatedNode=makeNode2(AbsentValue2,0,tail);unsafeSet2(currentSubscriberHead,updatedNode,runtime4.journal),unsafeSet2(this.publisherHead,tail,runtime4.journal),unsafeSet2(this.pubsubSize,size11-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),succeed13(builder)})}}var makeSubscription2=(pubsubSize,publisherHead,publisherTail,requestedCapacity,subscriberCount,subscribers)=>pipe(get16(publisherTail),flatMap15((currentPublisherTail)=>pipe(all5([make47(currentPublisherTail),get16(subscriberCount),get16(subscribers)]),tap5(([_,currentSubscriberCount])=>pipe(subscriberCount,set7(currentSubscriberCount+1))),tap5(([subscriberHead,_,currentSubscribers])=>pipe(subscribers,set7(pipe(currentSubscribers,add4(subscriberHead))))),map19(([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(as7){return this(succeed8(as7))},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(mapBoth3(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(succeed8(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_2: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_2)},halt(cause3){return done10(failCause3(cause3))},fail(error){return done10(fail4(error))},die(defect){return done10(die3(defect))},dieMessage(message){return done10(die3(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(make18(),flatMap11((deferred)=>make28(handoffStateEmpty(deferred))),map15((ref)=>({[HandoffTypeId]:handoffVariance,ref}))),offer5=dual(2,(self,value)=>{return flatMap11(make18(),(deferred)=>flatten8(modify4(self.ref,(state)=>pipe(state,handoffStateMatch((notifyConsumer)=>[zipRight3(succeed2(notifyConsumer,void 0),_await(deferred)),handoffStateFull(value,deferred)],(_,notifyProducer)=>[flatMap11(_await(notifyProducer),()=>pipe(self,offer5(value))),state])))))}),take6=(self)=>flatMap11(make18(),(deferred)=>flatten8(modify4(self.ref,(state)=>pipe(state,handoffStateMatch((notifyConsumer)=>[flatMap11(_await(notifyConsumer),()=>take6(self)),state],(value,notifyProducer)=>[as3(succeed2(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 match17=dual(2,(self,{onEnd,onFailure,onSuccess})=>match5(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 next=appendAll2(s,input);return flatMap13(write(next),()=>accumulator(next))},onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipeTo(toChannel2(self),accumulator(empty4())))},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=all4([make49(),make28(ScheduleEnd),make28(empty4()),driver2(schedule2),make28(!1),make28(!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,empty4()),flatMap11((leftovers)=>{if(isNonEmpty(leftovers))return pipe(set6(consumed,!0),zipRight3(succeed8(pipe(write(leftovers),flatMap13(()=>handoffConsumer)))));return pipe(take6(handoff),map15((signal)=>{switch(signal._tag){case OP_EMIT4:return pipe(fromEffect4(set6(consumed,!0)),zipRight4(write(signal.elements)),zipRight4(fromEffect4(get12(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(get12(consumed),map15((bool)=>bool?fromEffect4(pipe(set6(sinkEndReason,ScheduleEnd),zipRight3(set6(endAfterEmit,!0)))):pipe(fromEffect4(pipe(set6(sinkEndReason,ScheduleEnd),zipRight3(set6(endAfterEmit,!0)))),flatMap13(()=>handoffConsumer))),unwrap);return pipe(set6(sinkEndReason,signal.reason),zipRight3(set6(endAfterEmit,!0)),fromEffect4)}}}))}),unwrap),timeout3=(lastB)=>scheduleDriver.next(lastB),scheduledAggregator=(sinkFiber,scheduleFiber,scope5)=>{let forkSink=pipe(set6(consumed,!1),zipRight3(set6(endAfterEmit,!1)),zipRight3(pipe(handoffConsumer,pipeToOrFail(toChannel(sink)),collectElements,run,forkIn2(scope5)))),handleSide=(leftovers,b,c)=>pipe(set6(sinkLeftovers,flatten2(leftovers)),zipRight3(map15(get12(sinkEndReason),(reason)=>{switch(reason._tag){case OP_SCHEDULE_END:return pipe(all4([get12(consumed),forkSink,pipe(timeout3(some2(b)),forkIn2(scope5))]),map15(([wasConsumed,sinkFiber2,scheduleFiber2])=>{let toWrite=pipe(c,match2({onNone:()=>of2(right2(b)),onSome:(c2)=>make6(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(get12(consumed),map15((wasConsumed)=>wasConsumed?write(of2(right2(b))):void_5),unwrap)}})),unwrap);return unwrap(raceWith2(join3(sinkFiber),join3(scheduleFiber),{onSelfDone:(sinkExit,_)=>pipe(interrupt6(scheduleFiber),zipRight3(pipe(suspend3(()=>sinkExit),map15(([leftovers,b])=>handleSide(leftovers,b,none2()))))),onOtherDone:(scheduleExit,_)=>matchCauseEffect3(suspend3(()=>scheduleExit),{onFailure:(cause3)=>match(failureOrCause2(cause3),{onLeft:()=>pipe(handoff,offer5(end3(ScheduleEnd)),forkDaemon2,zipRight3(pipe(join3(sinkFiber),map15(([leftovers,b])=>handleSide(leftovers,b,none2()))))),onRight:(cause4)=>pipe(handoff,offer5(halt(cause4)),forkDaemon2,zipRight3(pipe(join3(sinkFiber),map15(([leftovers,b])=>handleSide(leftovers,b,none2())))))}),onSuccess:(c)=>pipe(handoff,offer5(end3(ScheduleEnd)),forkDaemon2,zipRight3(pipe(join3(sinkFiber),map15(([leftovers,b])=>handleSide(leftovers,b,some2(c))))))})}))};return unwrapScopedWith3((scope5)=>pipeTo(toChannel2(self),handoffProducer).pipe(run,forkIn2(scope5),zipRight3(pipeToOrFail(handoffConsumer,toChannel(sink)).pipe(collectElements,run,forkIn2(scope5),flatMap11((sinkFiber)=>timeout3(none2()).pipe(forkIn2(scope5),map15((scheduleFiber)=>new StreamImpl(scheduledAggregator(sinkFiber,scheduleFiber,scope5)))))))))}))}),as7=dual(2,(self,value)=>map20(self,()=>value)),queueFromBufferOptions=(bufferSize)=>{if(bufferSize==="unbounded")return unbounded5();else if(typeof bufferSize==="number"||bufferSize===void 0)return bounded5(bufferSize??16);switch(bufferSize.strategy){case"dropping":return dropping4(bufferSize.bufferSize??16);case"sliding":return sliding4(bufferSize.bufferSize??16);default:return bounded5(bufferSize.bufferSize??16)}},_async=(register,bufferSize)=>acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown4(queue)).pipe(flatMap11((output)=>runtime3().pipe(flatMap11((runtime4)=>sync3(()=>{let runPromiseExit3=runPromiseExit2(runtime4);return register(make48((resume2)=>fromPull(resume2).pipe(flatMap11((take7)=>offer3(output,take7)),asVoid3,runPromiseExit3).then((exit3)=>{if(isFailure(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}})))})),map15((value)=>{let loop3=take3(output).pipe(flatMap11((take7)=>done10(take7)),match12({onFailure:(maybeError)=>fromEffect4(shutdown4(output)).pipe(zipRight4(match2(maybeError,{onNone:()=>void_5,onSome:(error)=>fail11(error)}))),onSuccess:(chunk3)=>write(chunk3).pipe(flatMap13(()=>loop3))}),unwrap);return fromChannel2(loop3).pipe(ensuring6(value??_void))}))),unwrapScoped4),asyncEffect3=(register,bufferSize)=>pipe(acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown4(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(isFailure(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}}))),map15(()=>{let loop3=pipe(take3(output),flatMap11(done10),match12({onFailure:(maybeError)=>pipe(fromEffect4(shutdown4(output)),zipRight4(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 unbounded5();switch(options?.strategy){case"sliding":return sliding4(options.bufferSize??16);default:return dropping4(options?.bufferSize??16)}},asyncPush=(register,options)=>acquireRelease2(queueFromBufferOptionsPush(options),shutdown4).pipe(tap3((queue)=>getWith(currentScheduler2,(scheduler)=>register(makePush(queue,scheduler)))),map15((queue)=>{let loop3=flatMap13(take3(queue),(item)=>isExit(item)?isSuccess(item)?void_5:failCause10(item.cause):zipRight4(write(unsafeFromArray(item)),loop3));return loop3}),unwrapScoped3,fromChannel2),asyncScoped=(register,bufferSize)=>pipe(acquireRelease2(queueFromBufferOptions(bufferSize),(queue)=>shutdown4(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(isFailure(exit3)){if(!isInterrupted2(exit3.cause))throw squash(exit3.cause)}}))),zipRight3(make28(!1)),flatMap11((ref)=>pipe(get12(ref),map15((isDone7)=>isDone7?end5():pipe(take3(output),flatMap11(done10),onError2(()=>pipe(set6(ref,!0),zipRight3(shutdown4(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,empty4())}),running4=(prefix,leftover)=>pipeTo(zipRight4(write(leftover),identityChannel()),toChannel2(f(prefix)));return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(buffering(empty4()))))})),broadcast=dual(3,(self,n,maximumLag)=>pipe(self,broadcastedQueues(n,maximumLag),map15((tuple2)=>tuple2.map((queue)=>flattenTake(fromQueue2(queue,{shutdown:!0})))))),broadcastDynamic=dual(2,(self,maximumLag)=>map15(toPubSub2(self,maximumLag),(pubsub)=>flattenTake(fromPubSub(pubsub)))),share=dual(2,(self,options)=>map15(make44({acquire:broadcastDynamic(self,options),idleTimeToLive:options.idleTimeToLive}),(rcRef)=>unwrapScoped4(get15(rcRef)))),broadcastedQueues=dual(3,(self,n,maximumLag)=>flatMap11(pubsubFromOptions(maximumLag),(pubsub)=>pipe(all4(Array.from({length:n},()=>subscribe2(pubsub))),tap3(()=>forkScoped2(runIntoPubSubScoped(self,pubsub)))))),broadcastedQueuesDynamic=dual(2,(self,maximumLag)=>map15(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(map15(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match5({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(map15(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match17({onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>pipe(write(value),flatMap13(()=>process2))})));return process2})))}),bufferChunksDropping=dual(2,(self,capacity7)=>{let queue=acquireRelease2(dropping4(capacity7),(queue2)=>shutdown4(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(self)))}),bufferChunksSliding=dual(2,(self,capacity7)=>{let queue=acquireRelease2(sliding4(capacity7),(queue2)=>shutdown4(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(self)))}),bufferDropping=dual(2,(self,capacity7)=>{let queue=acquireRelease2(dropping4(capacity7),(queue2)=>shutdown4(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(rechunk(1)(self))))}),bufferSliding=dual(2,(self,capacity7)=>{let queue=acquireRelease2(sliding4(capacity7),(queue2)=>shutdown4(queue2));return new StreamImpl(bufferSignal(queue,toChannel2(pipe(self,rechunk(1)))))}),bufferUnbounded=(self)=>{let queue=toQueue2(self,{strategy:"unbounded"});return new StreamImpl(unwrapScoped3(map15(queue,(queue2)=>{let process2=pipe(fromEffect4(take3(queue2)),flatMap13(match17({onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>flatMap13(write(value),()=>process2)})));return process2})))},bufferSignal=(scoped5,bufferChannel)=>{let producer=(queue,ref)=>{let terminate=(take7)=>pipe(get12(ref),tap3(_await),zipRight3(make18()),flatMap11((deferred)=>pipe(offer3(queue,[take7,deferred]),zipRight3(set6(ref,deferred)),zipRight3(_await(deferred)))),asVoid3,fromEffect4);return readWithCause({onInput:(input)=>pipe(make18(),flatMap11((deferred)=>pipe(offer3(queue,[chunk2(input),deferred]),flatMap11((added)=>pipe(set6(ref,deferred),when2(()=>added))))),asVoid3,fromEffect4,flatMap13(()=>producer(queue,ref))),onFailure:(error)=>terminate(failCause11(error)),onDone:()=>terminate(end4)})},consumer=(queue)=>{let process2=pipe(fromEffect4(take3(queue)),flatMap13(([take7,deferred])=>zipRight4(fromEffect4(succeed2(deferred,void 0)),match17(take7,{onEnd:()=>void_5,onFailure:failCause10,onSuccess:(value)=>pipe(write(value),flatMap13(()=>process2))}))));return process2};return unwrapScoped3(pipe(scoped5,flatMap11((queue)=>pipe(make18(),tap3((start3)=>succeed2(start3,void 0)),flatMap11((start3)=>pipe(make28(start3),flatMap11((ref)=>pipe(bufferChannel,pipeTo(producer(queue,ref)),runScoped,forkScoped2)),as3(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((error)=>pipe(pf(error),getOrElse(()=>fail15(error)))))),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,empty4()],([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,reduce10([last4,empty4()],([option3,outputs],output)=>{if(isSome2(option3))return pipe(f(option3.value,output),map15((bool)=>bool?[some2(output),outputs]:[some2(output),pipe(outputs,append2(output))]));return succeed8([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(zipRight4(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)=>all4([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))),map15(([left3,right3,latchL,latchR])=>{let pullLeft=offer5(latchL,void 0).pipe(zipRight3(take6(left3).pipe(flatMap11(identity)))),pullRight=offer5(latchR,void 0).pipe(zipRight3(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)=>zipRight4(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)=>all4([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))),map15(([left3,right3,latchL,latchR])=>{let pullLeft=offer5(latchL,void 0).pipe(zipRight3(take6(left3).pipe(flatMap11(done10)))),pullRight=offer5(latchR,void 0).pipe(zipRight3(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),zipRight4(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,map20((b)=>f(a,b)))))),debounce=dual(2,(self,duration2)=>unwrapScopedWith3((scope5)=>gen2(function*(){let handoff=yield*make49();function enqueue(last4){return sleep2(duration2).pipe(as3(last4),forkIn2(scope5),map15((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(map15((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)=>match5(leftExit,{onFailure:(cause3)=>interrupt6(current2).pipe(as3(failCause10(cause3))),onSuccess:(chunk3)=>interrupt6(current2).pipe(zipRight3(succeed8(write(chunk3).pipe(flatMap13(()=>consumer(current(handoffFiber)))))))}),onOtherDone:(rightExit,previous2)=>match5(rightExit,{onFailure:(cause3)=>interrupt6(previous2).pipe(as3(failCause10(cause3))),onSuccess:(signal)=>{switch(signal._tag){case OP_EMIT4:return interrupt6(previous2).pipe(zipRight3(enqueue(signal.elements)));case OP_HALT:return interrupt6(previous2).pipe(as3(failCause10(signal.cause)));case OP_END:return join3(previous2).pipe(map15((chunk3)=>write(chunk3).pipe(zipRight4(void_5))))}}})}))));case OP_CURRENT:return unwrap(join3(state.fiber).pipe(map15((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(make18(),flatMap11((deferred)=>pipe(self,distributedWithDynamic({maximumLag:options.maximumLag,decide:(a)=>flatMap11(_await(deferred),(f)=>f(a))}),flatMap11((next)=>pipe(all4(map3(range(0,options.size-1),(id2)=>map15(next,([key,queue])=>[[key,id2],queue]))),map15(unsafeFromArray),flatMap11((entries2)=>{let[mappings,queues]=reduceRight2(entries2,[new Map,empty4()],([mappings2,queues2],[mapping,queue])=>[mappings2.set(mapping[0],mapping[1]),pipe(queues2,prepend2(queue))]);return pipe(succeed2(deferred,(a)=>map15(options.decide(a),(f)=>(key)=>f(mappings.get(key)))),as3(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(make28(new Map),(ref,_)=>pipe(get12(ref),flatMap11((queues)=>pipe(queues.values(),forEach6(shutdown4))))),flatMap11((queuesRef)=>gen2(function*(){let offer6=(a)=>pipe(decide(a),flatMap11((shouldProcess)=>pipe(get12(queuesRef),flatMap11((queues)=>pipe(queues.entries(),reduce10(empty4(),(acc,[id2,queue])=>{if(shouldProcess(id2))return pipe(offer3(queue,succeed3(a)),matchCauseEffect3({onFailure:(cause3)=>isInterrupted2(cause3)?succeed8(pipe(acc,prepend2(id2))):failCause8(cause3),onSuccess:()=>succeed8(acc)}));return succeed8(acc)}),flatMap11((ids3)=>{if(isNonEmpty(ids3))return update3(queuesRef,(map20)=>{for(let id2 of ids3)map20.delete(id2);return map20});return _void}))))),asVoid3),queuesLock=yield*makeSemaphore2(1),newQueue=yield*make28(pipe(bounded5(maximumLag),flatMap11((queue)=>{let id2=newDistributedWithDynamicId();return pipe(update3(queuesRef,(map20)=>map20.set(id2,queue)),as3([id2,queue]))}))),finalize=(endTake)=>queuesLock.withPermits(1)(pipe(set6(newQueue,pipe(bounded5(1),tap3((queue)=>offer3(queue,endTake)),flatMap11((queue)=>{let id2=newDistributedWithDynamicId();return pipe(update3(queuesRef,(map20)=>map20.set(id2,queue)),as3(make3(id2,queue)))}))),zipRight3(pipe(get12(queuesRef),flatMap11((map20)=>pipe(fromIterable2(map20.values()),forEach6((queue)=>pipe(offer3(queue,endTake),catchSomeCause2((cause3)=>isInterrupted2(cause3)?some2(_void):none2()))))))),zipRight3(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(get12(newQueue)))})))),drain3=(self)=>new StreamImpl(drain(toChannel2(self))),drainFork=dual(2,(self,that)=>fromEffect7(make18()).pipe(flatMap16((backgroundDied)=>scopedWith4((scope5)=>toChannel2(that).pipe(drain,runIn(scope5),catchAllCause3((cause3)=>failCause2(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),zipRight4(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),map15(unsafeFromArray),map15((leftover)=>{if(isEmpty(leftover))return suspend5(()=>loop3);return pipe(write(leftover),zipRight4(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 zipRight4(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),map15(unsafeFromArray),map15((leftover)=>{if(isEmpty(leftover))return suspend5(()=>loop3);return zipRight4(write(leftover),identityChannel())}),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipeToOrFail(toChannel2(self),loop3))}),either5=(self)=>pipe(self,map20(right2),catchAll7((error)=>make50(left2(error)))),empty29=new StreamImpl(void_5),ensuring6=dual(2,(self,finalizer)=>new StreamImpl(pipe(toChannel2(self),ensuring3(finalizer)))),ensuringWith2=dual(2,(self,finalizer)=>new StreamImpl(ensuringWith(toChannel2(self),finalizer))),context5=()=>fromEffect7(context3()),contextWith3=(f)=>pipe(context5(),map20(f)),contextWithEffect3=(f)=>pipe(context5(),mapEffectSequential(f)),contextWithStream=(f)=>pipe(context5(),flatMap16(f)),execute=(effect4)=>drain3(fromEffect7(effect4)),fail15=(error)=>fromEffectOption(fail9(some2(error))),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 next=iterator.next();if(next.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed10});else return pipe(f(next.value),map15((bool)=>bool?pipe(write(of2(next.value)),flatMap13(()=>loop3(iterator))):loop3(iterator)),unwrap)};return new StreamImpl(suspend5(()=>pipe(toChannel2(self),pipeTo(loop3(empty4()[Symbol.iterator]())))))}),filterMap6=dual(2,(self,pf)=>mapChunks(self,filterMap2(pf))),filterMapEffect=dual(2,(self,pf)=>suspend9(()=>{let loop3=(iterator)=>{let next=iterator.next();if(next.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed10});else return pipe(pf(next.value),match2({onNone:()=>sync3(()=>loop3(iterator)),onSome:map15((a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator)))}),unwrap)};return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty4()[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:succeed10});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),filterMapWhileEffect=dual(2,(self,pf)=>suspend9(()=>{let loop3=(iterator)=>{let next=iterator.next();if(next.done)return readWithCause({onInput:(input)=>loop3(input[Symbol.iterator]()),onFailure:failCause10,onDone:succeed10});else return unwrap(match2(pf(next.value),{onNone:()=>succeed8(void_5),onSome:map15((a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator)))}))};return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3(empty4()[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),map15(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),(as8)=>pipe(as8,map3((a)=>toChannel2(f(a))),reduce2(void_5,(left3,right3)=>pipe(left3,zipRight4(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)=>!isSuccess(exit3))),next=pipe(head2(rest),match2({onNone:()=>cont,onSome:match5({onFailure:(cause3)=>match2(flipCauseOption2(cause3),{onNone:()=>void_5,onSome:failCause10}),onSuccess:()=>void_5})}));return pipe(write(pipe(toEmit,filterMap2((exit3)=>isSuccess(exit3)?some2(exit3.value):none2()))),flatMap13(()=>next))},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,map20(fromIterable2),flattenChunks),flattenTake=(self)=>flattenChunks(flattenExitOption(pipe(self,map20((take7)=>take7.exit)))),forever5=(self)=>new StreamImpl(repeated(toChannel2(self))),fromAsyncIterable=(iterable,onError3)=>pipe(acquireRelease2(sync3(()=>iterable[Symbol.asyncIterator]()),(iterator)=>iterator.return?promise2(async()=>iterator.return()):_void),map15((iterator)=>repeatEffectOption(pipe(tryPromise2({try:async()=>iterator.next(),catch:(reason)=>some2(onError3(reason))}),flatMap11((result)=>result.done?fail9(none2()):succeed8(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=map15(subscribe2(pubsub),fromChunkQueue);return options.shutdown?map15(effect4,ensuring6(shutdown3(pubsub))):effect4}let stream=flatMap16(scoped5(subscribe2(pubsub)),fromChunkQueue);return options?.shutdown?ensuring6(stream,shutdown3(pubsub)):stream},fromChunkQueue=(queue,options)=>pipe(take3(queue),catchAllCause3((cause3)=>pipe(isShutdown3(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption,options?.shutdown?ensuring6(shutdown4(queue)):identity),fromChunks=(...chunks2)=>pipe(fromIterable9(chunks2),flatMap16(fromChunk)),fromEffect7=(effect4)=>pipe(effect4,mapError3(some2),fromEffectOption),fromEffectOption=(effect4)=>new StreamImpl(unwrap(match12(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=map15(subscribe2(pubsub),(queue)=>fromQueue2(queue,{maxChunkSize,shutdown:!0}));return options.shutdown?map15(effect4,ensuring6(shutdown3(pubsub))):effect4}let stream=flatMap16(scoped5(subscribe2(pubsub)),(queue)=>fromQueue2(queue,{maxChunkSize}));return options?.shutdown?ensuring6(stream,shutdown3(pubsub)):stream},fromTPubSub=(pubsub)=>{return unwrapScoped4(map15(subscribeScoped2(pubsub),(queue)=>fromTQueue(queue)))},fromIterable9=(iterable)=>suspend9(()=>isChunk(iterable)?fromChunk(iterable):fromIteratorSucceed(iterable[Symbol.iterator]())),fromIterableEffect=(effect4)=>pipe(effect4,map15(fromIterable9),unwrap2),fromIteratorSucceed=(iterator,maxChunkSize=DefaultChunkSize)=>{return pipe(sync3(()=>{let builder=[],loop3=(iterator2)=>pipe(sync3(()=>{let next=iterator2.next();if(maxChunkSize===1){if(next.done)return void_5;return pipe(write(of2(next.value)),flatMap13(()=>loop3(iterator2)))}builder=[];let count3=0;while(next.done===!1){if(builder.push(next.value),count3=count3+1,count3>=maxChunkSize)break;next=iterator2.next()}if(count3>0)return pipe(write(unsafeFromArray(builder)),flatMap13(()=>loop3(iterator2)));return void_5}),unwrap);return new StreamImpl(loop3(iterator))}),unwrap2)},fromPull2=(effect4)=>pipe(effect4,map15(repeatEffectChunkOption),unwrapScoped4),fromQueue2=(queue,options)=>pipe(takeBetween2(queue,1,options?.maxChunkSize??DefaultChunkSize),catchAllCause3((cause3)=>pipe(isShutdown3(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption,options?.shutdown?ensuring6(shutdown4(queue)):identity),fromTQueue=(queue)=>pipe(take5(queue),map15(of2),catchAllCause3((cause3)=>pipe(isShutdown6(queue),flatMap11((isShutdown7)=>isShutdown7&&isInterrupted2(cause3)?end5():failCause12(cause3)))),repeatEffectChunkOption),fromSchedule=(schedule2)=>pipe(driver2(schedule2),map15((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(map15(acquireRelease2(sync3(()=>evaluate2().getReader()),(reader)=>releaseLockOnEnd?sync3(()=>reader.releaseLock()):promise2(()=>reader.cancel())),(reader)=>repeatEffectOption(flatMap11(tryPromise2({try:()=>reader.read(),catch:(reason)=>some2(onError3(reason))}),({done:done11,value})=>done11?fail9(none2()):succeed8(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(map15(acquireRelease2(sync3(()=>evaluate2().getReader({mode:"byob"})),(reader)=>releaseLockOnEnd?sync3(()=>reader.releaseLock()):promise2(()=>reader.cancel())),(reader)=>catchAll7(forever5(readChunkStreamByobReader(reader,onError3,allocSize)),(error)=>error===EOF?empty29:fail15(error))))},EOF=Symbol.for("effect/Stream/EOF"),readChunkStreamByobReader=(reader,onError3,size13)=>{let buffer2=new ArrayBuffer(size13);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 succeed8([value,newOffset>=buffer2.byteLength?none2():some2(newOffset)])}))},groupAdjacentBy=dual(2,(self,f)=>{let groupAdjacentByChunk=(state,chunk3)=>{if(isEmpty(chunk3))return[state,empty4()];let builder=[],from=0,until=0,key=void 0,previousChunk=empty4();switch(state._tag){case"Some":{let tuple2=state.value;key=tuple2[0];let loop3=!0;while(loop3&&until<chunk3.length){let input=unsafeGet4(chunk3,until),updatedKey=f(input);if(!equals(key,updatedKey)){let previousChunk2=tuple2[1],additionalChunk=unsafeFromArray(Array.from(chunk3).slice(from,until)),group=appendAll2(previousChunk2,additionalChunk);builder.push([key,group]),key=updatedKey,from=until,loop3=!1}until=until+1}if(loop3)previousChunk=tuple2[1];break}case"None":{key=f(unsafeGet4(chunk3,until)),until=until+1;break}}while(until<chunk3.length){let input=unsafeGet4(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,duration2)=>aggregateWithin(self,collectAllN(chunkSize),spaced2(duration2))),haltWhen=dual(2,(self,effect4)=>{let writer=(fiber)=>pipe(poll4(fiber),map15(match2({onNone:()=>readWith({onInput:(input)=>flatMap13(write(input),()=>writer(fiber)),onFailure:fail11,onDone:()=>void_5}),onSome:match5({onFailure:failCause10,onSuccess:()=>void_5})})),unwrap);return new StreamImpl(unwrapScopedWith((scope5)=>effect4.pipe(forkIn2(scope5),map15((fiber)=>toChannel2(self).pipe(pipeTo(writer(fiber)))))))}),haltAfter=dual(2,(self,duration2)=>pipe(self,haltWhen(sleep2(duration2)))),haltWhenDeferred=dual(2,(self,deferred)=>{let writer=pipe(poll(deferred),map15(match2({onNone:()=>readWith({onInput:(input)=>pipe(write(input),flatMap13(()=>writer)),onFailure:fail11,onDone:()=>void_5}),onSome:(effect4)=>unwrap(match12(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))),map15(([left3,right3])=>{let process2=(leftDone,rightDone)=>readWithCause({onInput:(bool)=>{if(bool&&!leftDone)return pipe(fromEffect4(take6(left3)),flatMap13(match17({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(match17({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,duration2)=>pipe(self,interruptWhen2(sleep2(duration2)))),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,next)=>unfold3(value,(a)=>some2([a,next(a)])),make50=(...as8)=>fromIterable9(as8),map20=dual(2,(self,f)=>new StreamImpl(pipe(toChannel2(self),mapOut(map3(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)=>sync3(()=>{outputs.push(output)});return pipe(input,reduce10(s2,(s3,a)=>pipe(f(s3,a),flatMap11(([s4,a2])=>pipe(emit2(a2),as3(s4))))),match12({onFailure:(error)=>{if(outputs.length!==0)return zipRight4(write(unsafeFromArray(outputs)),fail11(error));return fail11(error)},onSuccess:(s3)=>flatMap13(write(unsafeFromArray(outputs)),()=>accumulator(s3))}))}),unwrap),onFailure:fail11,onDone:()=>void_5});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(accumulator(s))))})),mapBoth5=dual(2,(self,options)=>pipe(self,mapError6(options.onFailure),map20(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),map15(fromIterable2))),mapConcatChunk(identity))),mapEffectSequential=dual(2,(self,f)=>{let loop3=(iterator)=>{let next=iterator.next();if(next.done)return readWithCause({onInput:(elem)=>loop3(elem[Symbol.iterator]()),onFailure:failCause10,onDone:succeed10});else{let value=next.value;return unwrap(map15(f(value),(a2)=>flatMap13(write(of2(a2)),()=>loop3(iterator))))}};return new StreamImpl(pipe(toChannel2(self),pipeTo(suspend5(()=>loop3(empty4()[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(map20((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||!isSuccess(exit3)?Done4(suspend3(()=>exit3)):Await2((exit4)=>suspend3(()=>exit4));return new StreamImpl(mergeWith2(toChannel2(map20(self,options.onSelf)),{other:toChannel2(map20(other,options.onOther)),onSelfDone:handler(strategy._tag==="Either"||strategy._tag==="Left"),onOtherDone:handler(strategy._tag==="Either"||strategy._tag==="Right")}))}),mkString2=(self)=>run3(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),zipRight3(failCause8(cause3))))))),onDone=dual(2,(self,cleanup)=>new StreamImpl(pipe(toChannel2(self),ensuringWith((exit3)=>isSuccess(exit3)?cleanup():_void)))),onStart=dual(2,(self,effect4)=>unwrap2(as3(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,map20(left2),orElse8(()=>pipe(that(),map20(right2))))),orElseFail3=dual(2,(self,error)=>pipe(self,orElse8(()=>failSync7(error)))),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),zipRight4(identityChannel()))},onFailure:fail11,onDone:()=>suspend5(()=>toChannel2(stream()))});return new StreamImpl(pipe(toChannel2(self),pipeTo(writer)))}),orElseSucceed3=dual(2,(self,value)=>pipe(self,orElse8(()=>sync8(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:()=>zipRight4(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(map15(f(s2),([chunk3,option3])=>match2(option3,{onNone:()=>zipRight4(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),map15(([a,s3])=>[of2(a),s3]))),peel=dual(2,(self,sink)=>{return pipe(make18(),flatMap11((deferred)=>pipe(make49(),map15((handoff)=>{let consumer=foldSink(collectLeftover(sink),{onFailure:(error)=>zipRight5(fromEffect6(fail3(deferred,error)),fail12(error)),onSuccess:([z,leftovers])=>{let loop3=readWithCause({onInput:(elements)=>flatMap13(fromEffect4(offer5(handoff,{_tag:"Emit",elements})),()=>loop3),onFailure:(cause3)=>zipRight4(fromEffect4(offer5(handoff,{_tag:"Halt",cause:cause3})),failCause10(cause3)),onDone:(_)=>zipRight4(fromEffect4(offer5(handoff,{_tag:"End"})),void_5)});return fromChannel(pipe(fromEffect4(succeed2(deferred,z)),zipRight4(fromEffect4(pipe(handoff,offer5({_tag:"Emit",elements:leftovers})))),zipRight4(loop3)))}}),producer=pipe(take6(handoff),map15((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)=>failCause2(deferred,cause3)),run3(consumer),forkScoped2,zipRight3(_await(deferred)),map15((z)=>[z,new StreamImpl(producer)]))}))),flatten8)}),partition5=dual((args2)=>typeof args2[1]==="function",(self,predicate,options)=>partitionEither(self,(a)=>succeed8(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:()=>succeed8((n)=>n===0),onRight:()=>succeed8((n)=>n===1)})}),flatMap11(([queue1,queue2])=>succeed8([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(zipRight4(write(values3),toChannel2(self)))),provideContext5=dual(2,(self,context6)=>new StreamImpl(pipe(toChannel2(self),provideContext3(context6)))),provideSomeContext2=dual(2,(self,context6)=>mapInputContext5(self,merge3(context6))),provideLayer=dual(2,(self,layer)=>new StreamImpl(unwrapScopedWith((scope5)=>buildWithScope2(layer,scope5).pipe(map15((env)=>pipe(toChannel2(self),provideContext3(env))))))),provideService5=dual(3,(self,tag,resource)=>provideServiceEffect3(self,tag,succeed8(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,provideContext5(add2(env,tag,service3)))))),mapInputContext5=dual(2,(self,f)=>contextWithStream((env)=>pipe(self,provideContext5(f(env))))),provideSomeLayer2=dual(2,(self,layer)=>pipe(self,provideLayer(pipe(context4(),merge8(layer))))),range2=(min3,max5,chunkSize=DefaultChunkSize)=>suspend9(()=>{if(min3>max5)return empty29;let go=(min4,max6,chunkSize2)=>{let remaining=max6-min4+1;if(remaining>chunkSize2)return pipe(write(range(min4,min4+chunkSize2-1)),flatMap13(()=>go(min4+chunkSize2,max6,chunkSize2)));return write(range(min4,min4+remaining-1))};return new StreamImpl(go(min3,max5,chunkSize))}),race3=dual(2,(left3,right3)=>raceAll3(left3,right3)),raceAll3=(...streams)=>make18().pipe(map15((halt2)=>{let winner=null;return mergeAll8(streams.map((stream,index)=>stream.pipe(takeWhile4(()=>{if(winner===null)return winner=index,unsafeDone(halt2,void_2),!0;return winner===index}),interruptWhen2(_await(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,unsafeGet4(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)=>zipRight4(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),(error)=>match2(pf(error),{onNone:()=>failCause10(die4(f(error))),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(map15(effect5,(chunk3)=>some2([chunk3,effect5])),catchAll3(match2({onNone:()=>succeed8(none2()),onSome:fail9})))),repeatEffectOption=(effect4)=>repeatEffectChunkOption(pipe(effect4,map15(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),map15((driver4)=>{let feed=(input)=>match2(head2(input),{onNone:()=>loop3,onSome:(a)=>zipRight4(write(of2(options.onElement(a))),step4(pipe(input,drop2(1)),a))}),step4=(input,a)=>{let advance=pipe(driver4.next(a),as3(pipe(write(of2(options.onElement(a))),flatMap13(()=>step4(input,a))))),reset=pipe(driver4.last,orDie3,flatMap11((b)=>pipe(driver4.reset,map15(()=>pipe(write(of2(options.onSchedule(b))),zipRight4(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),map15((driver3)=>{let provideLastIterationInfo=provideServiceEffect3(CurrentIterationMetadata2,get12(driver3.iterationMeta)),process2=pipe(self,provideLastIterationInfo,map20(options.onElement),toChannel2),loop3=unwrap(match12(driver3.next(void 0),{onFailure:()=>void_5,onSuccess:(output)=>flatMap13(process2,()=>zipRight4(write(of2(options.onSchedule(output))),loop3))}));return new StreamImpl(zipRight4(process2,loop3))}),unwrap2)}),repeatWithSchedule=(value,schedule2)=>repeatEffectWithSchedule(succeed8(value),schedule2),repeatEffectWithSchedule=(effect4,schedule2)=>flatMap16(fromEffect7(zip5(effect4,driver2(schedule2))),([a,driver3])=>{let provideLastIterationInfo=provideServiceEffect2(CurrentIterationMetadata2,get12(driver3.iterationMeta));return concat2(succeed14(a),unfoldEffect(a,(s)=>matchEffect2(driver3.next(s),{onFailure:succeed8,onSuccess:()=>map15(provideLastIterationInfo(effect4),(nextA)=>some2([nextA,nextA]))})))}),retry6=dual(2,(self,policy)=>driver2(policy).pipe(map15((driver3)=>{let provideLastIterationInfo=provideServiceEffect3(CurrentIterationMetadata2,get12(driver3.iterationMeta)),loop3=toChannel2(provideLastIterationInfo(self)).pipe(mapOutEffect((out)=>as3(driver3.reset,out)),catchAll5((error)=>driver3.next(error).pipe(match12({onFailure:()=>fail11(error),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 error=lastError.value,attempted=!1,wrapped=nextStream;nextStream=suspend9(()=>{if(attempted)return wrapped;return attempted=!0,fail15(error)}),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,(error)=>{if(preventFallbackOnPartialStream&&receivedElements)return fail15(error);return lastError=some2(error),loop3})});return loop3})),scheduleDefectRefail2=(self)=>catchAllCause6(self,(cause3)=>failCause13(scheduleDefectRefailCause(cause3))),run3=dual(2,(self,sink)=>toChannel2(self).pipe(pipeToOrFail(toChannel(sink)),runDrain)),runCollect=(self)=>run3(self,collectAll()),runCount=(self)=>run3(self,count),runDrain2=(self)=>run3(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)=>run3(self,fold(s,cont,f))),runFoldWhileEffect=dual(4,(self,s,cont,f)=>run3(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)=>run3(self,forEach7(f))),runForEachChunk=dual(2,(self,f)=>run3(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)=>run3(self,forEachWhile(f))),runForEachWhileScoped=dual(2,(self,f)=>pipe(self,runScoped2(forEachWhile(f)))),runHead=(self)=>run3(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,map3(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)=>run3(self,last3()),runScoped2=dual(2,(self,sink)=>pipe(toChannel2(self),pipeToOrFail(toChannel(sink)),drain,runScoped)),runSum=(self)=>run3(self,sum2),scan=dual(3,(self,s,f)=>pipe(self,scanEffect(s,(s2,a)=>succeed8(f(s2,a))))),scanReduce=dual(2,(self,f)=>pipe(self,scanReduceEffect((a2,a)=>succeed8(f(a2,a))))),scanReduceEffect=dual(2,(self,f)=>pipe(self,mapAccumEffect(none2(),(option3,a)=>{switch(option3._tag){case"None":return succeed8([some2(a),a]);case"Some":return pipe(f(option3.value,a),map15((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 next=iterator.next();if(next.done)return readWithCause({onInput:(chunk3)=>loop3(driver3,chunk3[Symbol.iterator]()),onFailure:failCause10,onDone:succeedNow});return unwrap(matchEffect2(driver3.next(next.value),{onFailure:()=>pipe(driver3.last,orDie3,map15((b)=>pipe(write(make6(options.onElement(next.value),options.onSchedule(b))),flatMap13(()=>loop3(driver3,iterator)))),zipLeft2(driver3.reset)),onSuccess:()=>succeed8(pipe(write(of2(options.onElement(next.value))),flatMap13(()=>loop3(driver3,iterator))))}))};return new StreamImpl(pipe(fromEffect4(driver2(schedule3)),flatMap13((driver3)=>pipe(toChannel2(self),pipeTo(loop3(driver3,empty4()[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),map15((s3)=>[s3,s3]))))))))),scoped5=(effect4)=>new StreamImpl(ensuring3(scoped4(pipe(effect4,map15(of2))),_void)),scopedWith4=(f)=>new StreamImpl(scopedWith3((scope5)=>f(scope5).pipe(map15(of2)))),some5=(self)=>pipe(self,mapError6(some2),someOrFail(()=>none2())),someOrElse=dual(2,(self,fallback)=>pipe(self,map20(getOrElse(fallback)))),someOrFail=dual(2,(self,error)=>mapEffectSequential(self,match2({onNone:()=>failSync3(error),onSome:succeed8}))),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)?empty4():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)?empty4():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(empty4(),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 zipRight4(write(of2(leftovers)),void_5);return zipRight4(split2(empty4(),leftovers),void_5)}});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty4()))))}),splitOnChunk=dual(2,(self,delimiter)=>{let next=(leftover,delimiterIndex)=>readWithCause({onInput:(inputChunk)=>{let buffer2,[carry,delimiterCursor]=pipe(inputChunk,reduce2([pipe(leftover,getOrElse(()=>empty4())),delimiterIndex],([carry2,delimiterCursor2],a)=>{let concatenated=pipe(carry2,append2(a));if(delimiterCursor2<delimiter.length&&equals(a,pipe(delimiter,unsafeGet4(delimiterCursor2)))){if(delimiterCursor2+1===delimiter.length){if(buffer2===void 0)buffer2=[];return buffer2.push(pipe(concatenated,take(concatenated.length-delimiter.length))),[empty4(),0]}return[concatenated,delimiterCursor2+1]}return[concatenated,equals(a,pipe(delimiter,unsafeGet4(0)))?1:0]})),output=buffer2===void 0?empty4():unsafeFromArray(buffer2);return flatMap13(write(output),()=>next(isNonEmpty(carry)?some2(carry):none2(),delimiterCursor))},onFailure:(cause3)=>match2(leftover,{onNone:()=>failCause10(cause3),onSome:(chunk3)=>zipRight4(write(of2(chunk3)),failCause10(cause3))}),onDone:(done11)=>match2(leftover,{onNone:()=>succeed10(done11),onSome:(chunk3)=>zipRight4(write(of2(chunk3)),succeed10(done11))})});return new StreamImpl(pipe(toChannel2(self),pipeTo(next(none2(),0))))}),splitLines2=(self)=>pipeThroughChannel(self,splitLines()),succeed14=(value)=>fromChunk(of2(value)),sync8=(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:succeed10});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(succeed8(new RingBuffer(n)),map15((queue)=>{let reader=readWith({onInput:(input)=>{for(let element of input)queue.put(element);return reader},onFailure:fail11,onDone:()=>pipe(write(queue.toChunk()),zipRight4(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:succeed10});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),takeUntilEffect=dual(2,(self,predicate)=>{let loop3=(iterator)=>{let next=iterator.next();if(next.done)return readWithCause({onInput:(elem)=>loop3(elem[Symbol.iterator]()),onFailure:failCause10,onDone:succeed10});return pipe(predicate(next.value),map15((bool)=>bool?write(of2(next.value)):pipe(write(of2(next.value)),flatMap13(()=>loop3(iterator)))),unwrap)};return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3(empty4()[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:succeed10});return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(loop3)))}),tap6=dual(2,(self,f)=>mapEffectSequential(self,(a)=>as3(f(a),a))),tapBoth3=dual(2,(self,options)=>pipe(self,tapError5(options.onFailure),tap6(options.onSuccess))),tapError5=dual(2,(self,f)=>catchAll7(self,(error)=>fromEffect7(zipRight3(f(error),fail9(error))))),tapErrorCause5=dual(2,(self,f)=>{let loop3=readWithCause({onInput:(chunk3)=>flatMap13(write(chunk3),()=>loop3),onFailure:(cause3)=>fromEffect4(zipRight3(f(cause3),failCause8(cause3))),onDone:succeedNow});return new StreamImpl(pipe(toChannel2(self),pipeTo(loop3)))}),tapSink=dual(2,(self,sink)=>pipe(fromEffect7(all4([bounded5(1),make18()])),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),ensuring3(zipRight3(forkDaemon2(offer3(queue,end4)),_await(deferred))))),merge9(execute(pipe(run3(right3,sink),ensuring2(zipRight3(shutdown4(queue),succeed2(deferred,void 0)))))))}))),throttle=dual(2,(self,options)=>throttleEffect(self,{...options,cost:(chunk3)=>succeed8(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,duration2,burst)=>{let loop3=(tokens,timestampMillis)=>readWithCause({onInput:(input)=>pipe(cost(input),zip5(currentTimeMillis2),map15(([weight,currentTimeMillis3])=>{let cycles=(currentTimeMillis3-timestampMillis)/toMillis(duration2),sum3=tokens+cycles*units,max5=units+burst<0?Number.POSITIVE_INFINITY:units+burst,available=sum3<0?max5:Math.min(sum3,max5);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,map15((currentTimeMillis3)=>loop3(units,currentTimeMillis3)),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(throttled)))},throttleShapeEffect=(self,costFn,units,duration2,burst)=>{let loop3=(tokens,timestampMillis)=>readWithCause({onInput:(input)=>pipe(costFn(input),zip5(currentTimeMillis2),map15(([weight,currentTimeMillis3])=>{let cycles=(currentTimeMillis3-timestampMillis)/toMillis(duration2),sum3=tokens+cycles*units,max5=units+burst<0?Number.POSITIVE_INFINITY:units+burst,remaining=(sum3<0?max5:Math.min(sum3,max5))-weight,waitCycles=remaining>=0?0:-remaining/units,delay3=millis(Math.max(0,waitCycles*toMillis(duration2)));if(greaterThan2(delay3,zero))return pipe(fromEffect4(sleep2(delay3)),zipRight4(write(input)),flatMap13(()=>loop3(remaining,currentTimeMillis3)));return flatMap13(write(input),()=>loop3(remaining,currentTimeMillis3))}),unwrap),onFailure:failCause10,onDone:()=>void_5}),throttled=pipe(currentTimeMillis2,map15((currentTimeMillis3)=>loop3(units,currentTimeMillis3)),unwrap);return new StreamImpl(pipe(toChannel2(self),pipeToOrFail(throttled)))},tick=(interval)=>repeatWithSchedule(void 0,spaced2(interval)),timeout3=dual(2,(self,duration2)=>pipe(toPull2(self),map15(timeoutFail2({onTimeout:()=>none2(),duration:duration2})),fromPull2)),timeoutFail3=dual(3,(self,error,duration2)=>pipe(self,timeoutTo3(duration2,failSync7(error)))),timeoutFailCause3=dual(3,(self,cause3,duration2)=>pipe(toPull2(self),map15(timeoutFailCause2({onTimeout:()=>map11(cause3(),some2),duration:duration2})),fromPull2)),timeoutTo3=dual(3,(self,duration2,that)=>{let StreamTimeout=new RuntimeException2("Stream Timeout");return pipe(self,timeoutFailCause3(()=>die4(StreamTimeout),duration2),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 bounded4(options);else if(options.capacity==="unbounded")return unbounded4({replay:options.replay});switch(options.strategy){case"dropping":return dropping3(options);case"sliding":return sliding3(options);default:return bounded4(options)}},toPubSub2=dual(2,(self,capacity7)=>pipe(acquireRelease2(pubsubFromOptions(capacity7),(pubsub)=>shutdown3(pubsub)),tap3((pubsub)=>pipe(self,runIntoPubSubScoped(pubsub),forkScoped2)))),toPull2=(self)=>map15(toPull(toChannel2(self)),(pull)=>pipe(pull,mapError3(some2),flatMap11(match({onLeft:()=>fail9(none2()),onRight:succeed8})))),toQueue2=dual((args2)=>isStream(args2[0]),(self,options)=>tap3(acquireRelease2(options?.strategy==="unbounded"?unbounded5():options?.strategy==="dropping"?dropping4(options.capacity??2):options?.strategy==="sliding"?sliding4(options.capacity??2):bounded5(options?.capacity??2),(queue)=>shutdown4(queue)),(queue)=>forkScoped2(runIntoQueueScoped(self,queue)))),toQueueOfElements=dual((args2)=>isStream(args2[0]),(self,options)=>tap3(acquireRelease2(bounded5(options?.capacity??2),(queue)=>shutdown4(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)=>map15(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(sync3(()=>{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(interrupt6(fiber)))}},options?.strategy)}),transduce=dual(2,(self,sink)=>{let newChannel=suspend5(()=>{let leftovers={ref:empty4()},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=empty4(),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)=>zipRight4(sync5(()=>{upstreamDone.ref=!0}),succeedNow(done11))}),transducer=pipe(sink,toChannel,collectElements,flatMap13(([leftover,z])=>pipe(succeed10([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(sync3(()=>{latch.unsafeClose(),currentResolve({done:!1,value}),currentResolve=currentReject=void 0})))),fiber.addObserver((exit3)=>{if(returned)return;fiber=runFork2(latch.whenOpen(sync3(()=>{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(as3(interrupt6(fiber),{done:!0,value:void 0}))}}}}}),toAsyncIterable=(self)=>toAsyncIterableRuntime(self,defaultRuntime2),toAsyncIterableEffect=(self)=>map15(runtime3(),(runtime4)=>toAsyncIterableRuntime(self,runtime4)),unfold3=(s,f)=>unfoldChunk(s,(s2)=>pipe(f(s2),map(([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(map15(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),map15(map(([a,s3])=>[of2(a),s3])))),void_7=succeed14(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,mapInputContext5((context6)=>pipe(context6,add2(tag,f(pipe(context6,unsafeGet3(tag)))))))),when3=dual(2,(self,test)=>pipe(self,whenEffect3(sync3(test)))),whenCase=(evaluate2,pf)=>whenCaseEffect(pf)(sync3(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,zipWith10(that,(a,a2)=>[a,a2]))),zipFlatten=dual(2,(self,that)=>pipe(self,zipWith10(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,match12({onFailure:fail4,onSuccess:(leftChunk)=>succeed3([map3(leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft])}));case OP_DRAIN_RIGHT:return pipe(pullRight,match12({onFailure:fail4,onSuccess:(rightChunk)=>succeed3([map3(rightChunk,([k,a2])=>[k,options.onOther(a2)]),DrainRight])}));case OP_PULL_BOTH:return pipe(unsome(pullLeft),zip5(unsome(pullRight),{concurrent:!0}),matchEffect2({onFailure:(error)=>succeed8(fail4(some2(error))),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 succeed8(succeed3(merge10(leftOption.value,rightOption.value)))}if(isSome2(leftOption)&&isNone2(rightOption)){if(isEmpty(leftOption.value))return pull(DrainLeft,pullLeft,pullRight);return succeed8(succeed3([pipe(leftOption.value,map3(([k,a])=>[k,options.onSelf(a)])),DrainLeft]))}if(isNone2(leftOption)&&isSome2(rightOption)){if(isEmpty(rightOption.value))return pull(DrainRight,pullLeft,pullRight);return succeed8(succeed3([pipe(rightOption.value,map3(([k,a2])=>[k,options.onOther(a2)])),DrainRight]))}return succeed8(fail4(none2()))}}));case OP_PULL_LEFT:return matchEffect2(pullLeft,{onFailure:match2({onNone:()=>succeed8(succeed3([pipe(state.rightChunk,map3(([k,a2])=>[k,options.onOther(a2)])),DrainRight])),onSome:(error)=>succeed8(fail4(some2(error)))}),onSuccess:(leftChunk)=>isEmpty(leftChunk)?pull(PullLeft(state.rightChunk),pullLeft,pullRight):succeed8(succeed3(merge10(leftChunk,state.rightChunk)))});case OP_PULL_RIGHT:return matchEffect2(pullRight,{onFailure:match2({onNone:()=>succeed8(succeed3([map3(state.leftChunk,([k,a])=>[k,options.onSelf(a)]),DrainLeft])),onSome:(error)=>succeed8(fail4(some2(error)))}),onSuccess:(rightChunk)=>isEmpty(rightChunk)?pull(PullRight(state.leftChunk),pullLeft,pullRight):succeed8(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,unsafeGet4(leftIndex)),rightTuple=pipe(rightChunk,unsafeGet4(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,unsafeGet4(leftIndex)),rightTuple=pipe(rightChunk,unsafeGet4(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,unsafeGet4(leftIndex)),k1=leftTuple[0],a=leftTuple[1];else{let rightBuilder=[];rightBuilder.push(rightTuple);while(hasNext(rightChunk,rightIndex))rightIndex=rightIndex+1,rightTuple=pipe(rightChunk,unsafeGet4(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,unsafeGet4(rightIndex)),k2=rightTuple[0],a2=rightTuple[1];else{let leftBuilder=[];leftBuilder.push(leftTuple);while(hasNext(leftChunk,leftIndex))leftIndex=leftIndex+1,leftTuple=pipe(leftChunk,unsafeGet4(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:(error)=>succeed8(fail4(error)),onSuccess:(leftChunk)=>succeed8(succeed3([map3(leftChunk,options.onSelf),DrainLeft]))});case OP_DRAIN_RIGHT:return matchEffect2(pullRight,{onFailure:(error)=>succeed8(fail4(error)),onSuccess:(rightChunk)=>succeed8(succeed3([map3(rightChunk,options.onOther),DrainRight]))});case OP_PULL_BOTH:return pipe(unsome(pullLeft),zip5(unsome(pullRight),{concurrent:!0}),matchEffect2({onFailure:(error)=>succeed8(fail4(some2(error))),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 succeed8(succeed3(zip8(leftOption.value,rightOption.value,options.onBoth)))}if(isSome2(leftOption)&&isNone2(rightOption))return succeed8(succeed3([map3(leftOption.value,options.onSelf),DrainLeft]));if(isNone2(leftOption)&&isSome2(rightOption))return succeed8(succeed3([map3(rightOption.value,options.onOther),DrainRight]));return succeed8(fail4(none2()))}}));case OP_PULL_LEFT:return matchEffect2(pullLeft,{onFailure:match2({onNone:()=>succeed8(succeed3([map3(state.rightChunk,options.onOther),DrainRight])),onSome:(error)=>succeed8(fail4(some2(error)))}),onSuccess:(leftChunk)=>{if(isEmpty(leftChunk))return pull(PullLeft(state.rightChunk),pullLeft,pullRight);if(isEmpty(state.rightChunk))return pull(PullRight(leftChunk),pullLeft,pullRight);return succeed8(succeed3(zip8(leftChunk,state.rightChunk,options.onBoth)))}});case OP_PULL_RIGHT:return matchEffect2(pullRight,{onFailure:match2({onNone:()=>succeed8(succeed3([map3(state.leftChunk,options.onSelf),DrainLeft])),onSome:(error)=>succeed8(fail4(some2(error)))}),onSuccess:(rightChunk)=>{if(isEmpty(rightChunk))return pull(PullRight(state.leftChunk),pullLeft,pullRight);if(isEmpty(state.leftChunk))return pull(PullLeft(rightChunk),pullLeft,pullRight);return succeed8(succeed3(zip8(state.leftChunk,rightChunk,options.onBoth)))}})}},zip8=(leftChunk,rightChunk,f)=>{let[output,either6]=zipChunks(leftChunk,rightChunk,f);switch(either6._tag){case"Left":{if(isEmpty(either6.left))return[output,PullBoth];return[output,PullRight(either6.left)]}case"Right":{if(isEmpty(either6.right))return[output,PullBoth];return[output,PullLeft(either6.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 map20(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):succeed8(chunk3)));return pipe(toPull2(left3),map15(pullNonEmpty),zip5(pipe(toPull2(right3),map15(pullNonEmpty))),flatMap11(([left4,right4])=>pipe(fromEffectOption(raceWith2(left4,right4,{onSelfDone:(leftDone,rightFiber)=>pipe(suspend3(()=>leftDone),zipWith5(join3(rightFiber),(l,r)=>[l,r,!0])),onOtherDone:(rightDone,leftFiber)=>pipe(suspend3(()=>rightDone),zipWith5(join3(leftFiber),(l,r)=>[r,l,!1]))})),flatMap16(([l,r,leftFirst])=>pipe(fromEffect7(make28([unsafeLast(l),unsafeLast(r)])),flatMap16((latest)=>pipe(fromChunk(leftFirst?pipe(r,map3((a2)=>f(unsafeLast(l),a2))):pipe(l,map3((a)=>f(a,unsafeLast(r))))),concat2(pipe(repeatEffectOption(left4),mergeEither(repeatEffectOption(right4)),mapEffectSequential(match({onLeft:(leftChunk)=>modify4(latest,([_,rightLatest])=>[pipe(leftChunk,map3((a)=>f(a,rightLatest))),[unsafeLast(leftChunk),rightLatest]]),onRight:(rightChunk)=>modify4(latest,([leftLatest,_])=>[pipe(rightChunk,map3((a2)=>f(leftLatest,a2))),[leftLatest,unsafeLast(rightChunk)]])})),flatMap16(fromChunk))))))),toPull2)),fromPull2)}),zipLeft5=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)))]}))),zipRight8=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)))]}))),zipWith10=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:(error)=>succeed8(fail4(some2(error))),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 succeed8(succeed3(zip8(leftOption.value,rightOption.value)))}return succeed8(fail4(none2()))}}));case OP_PULL_LEFT2:return matchEffect2(pullLeft,{onFailure:(error)=>succeed8(fail4(error)),onSuccess:(leftChunk)=>{if(isEmpty(leftChunk))return pull(PullLeft2(state.rightChunk),pullLeft,pullRight);if(isEmpty(state.rightChunk))return pull(PullRight2(leftChunk),pullLeft,pullRight);return succeed8(succeed3(zip8(leftChunk,state.rightChunk)))}});case OP_PULL_RIGHT2:return matchEffect2(pullRight,{onFailure:(error)=>succeed8(fail4(error)),onSuccess:(rightChunk)=>{if(isEmpty(rightChunk))return pull(PullRight2(state.leftChunk),pullLeft,pullRight);if(isEmpty(state.leftChunk))return pull(PullLeft2(rightChunk),pullLeft,pullRight);return succeed8(succeed3(zip8(state.leftChunk,rightChunk)))}})}},zip8=(leftChunk,rightChunk)=>{let[output,either6]=f(leftChunk,rightChunk);switch(either6._tag){case"Left":{if(isEmpty(either6.left))return[output,PullBoth2];return[output,PullRight2(either6.left)]}case"Right":{if(isEmpty(either6.right))return[output,PullBoth2];return[output,PullLeft2(either6.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,map((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)=>zipRight4(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)),map20(([[prev,curr],next])=>[prev,curr,pipe(next,map((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=succeed14({}),bind4=dual((args2)=>typeof args2[0]!=="string",(self,tag,f,options)=>flatMap16(self,(k)=>map20(f(k),(a)=>({...k,[tag]:a})),options)),bindTo4=bindTo(map20),let_4=let_(map20);var decodeText=dual((args2)=>isStream(args2[0]),(self,encoding="utf-8")=>suspend9(()=>{let decoder=new TextDecoder(encoding);return map20(self,(s)=>decoder.decode(s))})),encodeText=(self)=>suspend9(()=>{let encoder=new TextEncoder;return map20(self,(s)=>encoder.encode(s))}),fromEventListener=(target,type,options)=>asyncPush((emit2)=>acquireRelease2(sync3(()=>target.addEventListener(type,emit2.single,options)),()=>sync3(()=>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*make18(),output=yield*acquireRelease2(bounded5(options?.bufferSize??16),(queue)=>shutdown4(queue)),ref=yield*make28(new Map),add5=yield*pipe(mapEffectSequential(self,f),distributedWithDynamicCallback(options?.bufferSize??16,([key,value])=>flatMap11(_await(decider),(f2)=>f2(key,value)),(exit3)=>offer3(output,exit3)));return yield*succeed2(decider,(key,_)=>pipe(get12(ref),map15((map21)=>fromNullable(map21.get(key))),flatMap11(match2({onNone:()=>flatMap11(add5,([index,queue])=>zipRight3(update3(ref,(map21)=>map21.set(key,index)),pipe(offer3(output,succeed3([key,mapDequeue(queue,(exit3)=>new TakeImpl(pipe(exit3,map10((tuple2)=>of2(tuple2[1])))))])),as3((n)=>n===index)))),onSome:(index)=>succeed8((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)=>map15(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 capacity4(this.dequeue)}get size(){return size10(this.dequeue)}unsafeSize(){return this.dequeue.unsafeSize()}get awaitShutdown(){return awaitShutdown3(this.dequeue)}isActive(){return this.dequeue.isActive()}get isShutdown(){return isShutdown3(this.dequeue)}get shutdown(){return shutdown4(this.dequeue)}get isFull(){return isFull3(this.dequeue)}get isEmpty(){return isEmpty12(this.dequeue)}get take(){return pipe(take3(this.dequeue),map15((a)=>this.f(a)))}get takeAll(){return pipe(takeAll2(this.dequeue),map15(map3((a)=>this.f(a))))}takeUpTo(max5){return pipe(takeUpTo2(this.dequeue,max5),map15(map3((a)=>this.f(a))))}takeBetween(min3,max5){return pipe(takeBetween2(this.dequeue,min3,max5),map15(map3((a)=>this.f(a))))}takeN(n){return pipe(takeN2(this.dequeue,n),map15(map3((a)=>this.f(a))))}poll(){return pipe(poll6(this.dequeue),map15(map((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=(map21,outerQueue)=>readWithCause({onInput:(input)=>flatMap13(fromEffect4(forEach6(groupByIterable(input,f),([key,values3])=>{let innerQueue=map21.get(key);if(innerQueue===void 0)return pipe(bounded5(options?.bufferSize??16),flatMap11((innerQueue2)=>pipe(sync3(()=>{map21.set(key,innerQueue2)}),zipRight3(offer3(outerQueue,of5([key,innerQueue2]))),zipRight3(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(map21,outerQueue)),onFailure:(cause3)=>fromEffect4(offer3(outerQueue,failCause11(cause3))),onDone:()=>fromEffect4(pipe(forEach6(map21.entries(),([_,innerQueue])=>pipe(offer3(innerQueue,end4),catchSomeCause2((cause3)=>isInterruptedOnly2(cause3)?some2(_void):none2())),{discard:!0}),zipRight3(offer3(outerQueue,end4))))});return make51(unwrapScopedWith3((scope5)=>gen2(function*(){let map21=new Map,queue=yield*unbounded5();return yield*addFinalizer2(scope5,shutdown4(queue)),yield*toChannel2(self).pipe(pipeTo(loop3(map21,queue)),drain,runIn(scope5),forkIn2(scope5),as3(flattenTake(fromQueue2(queue,{shutdown:!0}))))})))}),groupByIterable=dual(2,(iterable,f)=>{let builder=[],iterator=iterable[Symbol.iterator](),map21=new Map,next;while((next=iterator.next())&&!next.done){let value=next.value,key=f(value);if(map21.has(key))map21.get(key).push(value);else{let innerBuilder=[value];builder.push([key,innerBuilder]),map21.set(key,innerBuilder)}}return unsafeFromArray(builder.map((tuple2)=>[tuple2[0],unsafeFromArray(tuple2[1])]))});var exports_Stream={};__export(exports_Stream,{zipWithPreviousAndNext:()=>zipWithPreviousAndNext2,zipWithPrevious:()=>zipWithPrevious2,zipWithNext:()=>zipWithNext2,zipWithIndex:()=>zipWithIndex2,zipWithChunks:()=>zipWithChunks2,zipWith:()=>zipWith11,zipRight:()=>zipRight9,zipLeft:()=>zipLeft6,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:()=>unfold4,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:()=>sync9,suspend:()=>suspend10,succeed:()=>succeed15,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:()=>run4,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:()=>provideService6,provideLayer:()=>provideLayer2,provideContext:()=>provideContext6,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:()=>mapInputContext6,mapErrorCause:()=>mapErrorCause5,mapError:()=>mapError7,mapEffect:()=>mapEffect4,mapConcatEffect:()=>mapConcatEffect2,mapConcatChunkEffect:()=>mapConcatChunkEffect2,mapConcatChunk:()=>mapConcatChunk2,mapConcat:()=>mapConcat2,mapChunksEffect:()=>mapChunksEffect2,mapChunks:()=>mapChunks2,mapBoth:()=>mapBoth6,mapAccumEffect:()=>mapAccumEffect2,mapAccum:()=>mapAccum6,map:()=>map21,make:()=>make52,let:()=>let_5,iterate:()=>iterate4,intersperseAffixes:()=>intersperseAffixes2,intersperse:()=>intersperse2,interruptWhenDeferred:()=>interruptWhenDeferred3,interruptWhen:()=>interruptWhen3,interruptAfter:()=>interruptAfter2,interleaveWith:()=>interleaveWith2,interleave:()=>interleave2,identity:()=>identity3,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:()=>ensuring7,encodeText:()=>encodeText2,empty:()=>empty30,either:()=>either6,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:()=>as8,aggregateWithinEither:()=>aggregateWithinEither2,aggregateWithin:()=>aggregateWithin2,aggregate:()=>aggregate2,acquireRelease:()=>acquireRelease4,accumulateChunks:()=>accumulateChunks2,accumulate:()=>accumulate2,StreamTypeId:()=>StreamTypeId3,Do:()=>Do4,DefaultChunkSize:()=>DefaultChunkSize2});var StreamTypeId3=StreamTypeId2,DefaultChunkSize2=DefaultChunkSize,accumulate2=accumulate,accumulateChunks2=accumulateChunks,acquireRelease4=acquireRelease3,aggregate2=aggregate,aggregateWithin2=aggregateWithin,aggregateWithinEither2=aggregateWithinEither,as8=as7,_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,either6=either5,empty30=empty29,ensuring7=ensuring6,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,identity3=identityStream,interleave2=interleave,interleaveWith2=interleaveWith,intersperse2=intersperse,intersperseAffixes2=intersperseAffixes,interruptAfter2=interruptAfter,interruptWhen3=interruptWhen2,interruptWhenDeferred3=interruptWhenDeferred2,iterate4=iterate3,make52=make50,map21=map20,mapAccum6=mapAccum5,mapAccumEffect2=mapAccumEffect,mapBoth6=mapBoth5,mapChunks2=mapChunks,mapChunksEffect2=mapChunksEffect,mapConcat2=mapConcat,mapConcatChunk2=mapConcatChunk,mapConcatChunkEffect2=mapConcatChunkEffect,mapConcatEffect2=mapConcatEffect,mapEffect4=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,provideContext6=provideContext5,provideSomeContext3=provideSomeContext2,provideLayer2=provideLayer,provideService6=provideService5,provideServiceEffect4=provideServiceEffect3,provideServiceStream2=provideServiceStream,mapInputContext6=mapInputContext5,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,run4=run3,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,succeed15=succeed14,sync9=sync8,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,unfold4=unfold3,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,zipLeft6=zipLeft5,zipRight9=zipRight8,zipWith11=zipWith10,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 import_redis=__toESM(require_dist2(),1);class RedisConnectionError extends exports_Data.TaggedError("RedisConnectionError"){}class RedisCommandError extends exports_Data.TaggedError("RedisCommandError"){}class RedisGeneralError extends exports_Data.TaggedError("RedisGeneralError"){}class RedisConnectionOptions extends exports_Context.Tag("RedisConnectionOptions")(){}class Redis extends exports_Context.Tag("Redis")(){}class RedisPubSub extends exports_Context.Tag("RedisPubSub")(){}class RedisPersistence extends exports_Context.Tag("RedisPersistence")(){}class RedisStream extends exports_Context.Tag("RedisStream")(){}var redisClientEffect=exports_Effect.gen(function*(){let{options,createClient:createClientFromContext}=yield*RedisConnectionOptions,create=createClientFromContext??import_redis.createClient;return yield*exports_Effect.acquireRelease(exports_Effect.tryPromise({try:()=>create(options).connect().then((r)=>{return console.log("Connected to Redis"),r.on("error",(e)=>{console.log("Redis error(on error):",e.message),r.destroy()}),r.on("end",()=>{console.log("Connection to Redis ended")}),r}),catch:(e)=>new RedisConnectionError({cause:e,message:"Error while connecting to Redis"})}),(client,_exit)=>exports_Effect.tryPromise(()=>{return console.log("Cleaning up Redis connection"),client.close()}).pipe(exports_Effect.catchAll(()=>exports_Effect.void)))}),toRedisError=(error)=>{let message=error instanceof Error?error.message:String(error);if(error instanceof Error){let maybeErrno=error,code=typeof maybeErrno.code==="string"?maybeErrno.code:void 0;if(code!==void 0&&new Set(["ECONNREFUSED","ETIMEDOUT","ECONNRESET","EPIPE","ENOTFOUND","ENETUNREACH","EHOSTUNREACH","EAI_AGAIN"]).has(code)||message.toLowerCase().includes("socket")||message.toLowerCase().includes("connect")||message.toLowerCase().includes("connection"))return new RedisConnectionError({cause:error,message});if(["WRONGTYPE","NOAUTH","WRONGPASS","NOPERM","READONLY","MOVED","ASK","NOSCRIPT","BUSY","ERR"].some((marker)=>message.startsWith(marker)))return new RedisCommandError({cause:error,message,command:"Unknown"})}return new RedisGeneralError({cause:error,message})},bootstrapRedisServiceEffect=exports_Effect.gen(function*(){let client=yield*redisClientEffect;return Redis.of({use:(fn2)=>exports_Effect.gen(function*(){let result=yield*exports_Effect.try({try:()=>fn2(client),catch:(e)=>new RedisCommandError({cause:e,message:"Synchronous error in `Redis.use`",command:"Unknown"})});if(result instanceof Promise)return yield*exports_Effect.tryPromise({try:()=>result,catch:(e)=>new RedisCommandError({cause:e,message:"Asynchronous error in `Redis.use`",command:"Unknown"})});return result}),get:(key)=>exports_Effect.tryPromise({try:()=>client.get(key),catch:toRedisError}),set:(key,value,options)=>exports_Effect.tryPromise({try:()=>{if(!options)return client.set(key,value);let setOptions={};if(options.expiration)setOptions[options.expiration.mode]=options.expiration.time;if(options.condition)setOptions[options.condition]=!0;if(options.get)setOptions.GET=!0;return Object.keys(setOptions).length>0?client.set(key,value,setOptions):client.set(key,value)},catch:toRedisError}),del:(...keys3)=>exports_Effect.tryPromise({try:()=>client.del(keys3),catch:toRedisError}),exists:(...keys3)=>exports_Effect.tryPromise({try:()=>client.exists(keys3),catch:toRedisError}),expire:(key,seconds2)=>exports_Effect.tryPromise({try:()=>client.expire(key,seconds2),catch:toRedisError}),ttl:(key)=>exports_Effect.tryPromise({try:()=>client.ttl(key),catch:toRedisError}),pexpire:(key,milliseconds)=>exports_Effect.tryPromise({try:()=>client.pExpire(key,milliseconds),catch:toRedisError}),pttl:(key)=>exports_Effect.tryPromise({try:()=>client.pTTL(key),catch:toRedisError}),hset:(key,field,value)=>exports_Effect.tryPromise({try:()=>client.hSet(key,field,value),catch:toRedisError}),hget:(key,field)=>exports_Effect.tryPromise({try:()=>client.hGet(key,field),catch:toRedisError}),hgetall:(key)=>exports_Effect.tryPromise({try:()=>client.hGetAll(key),catch:toRedisError}),hdel:(key,...fields)=>exports_Effect.tryPromise({try:()=>client.hDel(key,fields),catch:toRedisError}),hexists:(key,field)=>exports_Effect.tryPromise({try:async()=>await client.hExists(key,field)===1,catch:toRedisError}),hkeys:(key)=>exports_Effect.tryPromise({try:()=>client.hKeys(key),catch:toRedisError}),hvals:(key)=>exports_Effect.tryPromise({try:()=>client.hVals(key),catch:toRedisError}),hlen:(key)=>exports_Effect.tryPromise({try:()=>client.hLen(key),catch:toRedisError}),lpush:(key,...values3)=>exports_Effect.tryPromise({try:()=>client.lPush(key,values3),catch:toRedisError}),rpush:(key,...values3)=>exports_Effect.tryPromise({try:()=>client.rPush(key,values3),catch:toRedisError}),lpop:(key,count3)=>exports_Effect.tryPromise({try:async()=>{if(count3!==void 0)return client.lPopCount(key,count3);return client.lPop(key)},catch:toRedisError}),rpop:(key,count3)=>exports_Effect.tryPromise({try:async()=>{if(count3!==void 0)return client.rPopCount(key,count3);return client.rPop(key)},catch:toRedisError}),lrange:(key,start3,stop2)=>exports_Effect.tryPromise({try:()=>client.lRange(key,start3,stop2),catch:toRedisError}),llen:(key)=>exports_Effect.tryPromise({try:()=>client.lLen(key),catch:toRedisError}),lrem:(key,count3,element)=>exports_Effect.tryPromise({try:()=>client.lRem(key,count3,element),catch:toRedisError}),sadd:(key,...members)=>exports_Effect.tryPromise({try:()=>client.sAdd(key,members),catch:toRedisError}),srem:(key,...members)=>exports_Effect.tryPromise({try:()=>client.sRem(key,members),catch:toRedisError}),sismember:(key,member)=>exports_Effect.tryPromise({try:async()=>await client.sIsMember(key,member)===1,catch:toRedisError}),smembers:(key)=>exports_Effect.tryPromise({try:()=>client.sMembers(key),catch:toRedisError}),scard:(key)=>exports_Effect.tryPromise({try:()=>client.sCard(key),catch:toRedisError}),zadd:(key,score,member,...rest)=>{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_Effect.tryPromise({try:()=>client.zAdd(key,members),catch:toRedisError})},zrange:(key,start3,stop2,withScores)=>exports_Effect.tryPromise({try:async()=>{if(withScores)return client.zRangeWithScores(key,start3,stop2);return client.zRange(key,start3,stop2)},catch:toRedisError}),zrangebyscore:(key,min3,max5,withScores)=>exports_Effect.tryPromise({try:async()=>{if(withScores)return client.zRangeByScoreWithScores(key,min3,max5);return client.zRangeByScore(key,min3,max5)},catch:toRedisError}),zscore:(key,member)=>exports_Effect.tryPromise({try:()=>client.zScore(key,member),catch:toRedisError}),zrem:(key,...members)=>exports_Effect.tryPromise({try:()=>client.zRem(key,members),catch:toRedisError}),zcard:(key)=>exports_Effect.tryPromise({try:()=>client.zCard(key),catch:toRedisError}),incr:(key)=>exports_Effect.tryPromise({try:()=>client.incr(key),catch:toRedisError}),decr:(key)=>exports_Effect.tryPromise({try:()=>client.decr(key),catch:toRedisError}),incrby:(key,increment)=>exports_Effect.tryPromise({try:()=>client.incrBy(key,increment),catch:toRedisError}),decrby:(key,decrement)=>exports_Effect.tryPromise({try:()=>client.decrBy(key,decrement),catch:toRedisError}),scan:(options)=>exports_Effect.tryPromise({try:async()=>{let scanOptions={};if(options?.match)scanOptions.MATCH=options.match;if(options?.count)scanOptions.COUNT=options.count;if(options?.type)scanOptions.TYPE=options.type;let result=await client.scan(String(options?.cursor??"0"),scanOptions);return{cursor:String(result.cursor),keys:result.keys}},catch:toRedisError}),flushdb:()=>exports_Effect.tryPromise({try:async()=>{return await client.flushDb(),"OK"},catch:toRedisError}),flushall:()=>exports_Effect.tryPromise({try:async()=>{return await client.flushAll(),"OK"},catch:toRedisError}),dbsize:()=>exports_Effect.tryPromise({try:()=>client.dbSize(),catch:toRedisError}),ping:(message)=>exports_Effect.tryPromise({try:async()=>{return await(message?client.ping(message):client.ping())},catch:toRedisError}),execute:(command,...args2)=>exports_Effect.tryPromise({try:()=>client.sendCommand([command,...args2.map((a)=>String(a))]),catch:toRedisError}),multi:(commands)=>exports_Effect.tryPromise({try:async()=>{let multi=client.multi();for(let[cmd,...args2]of commands)multi.addCommand([cmd,...args2.map((a)=>String(a))]);return multi.exec()},catch:toRedisError}),quit:()=>exports_Effect.tryPromise({try:async()=>{return await client.quit(),"OK"},catch:toRedisError}),disconnect:()=>exports_Effect.tryPromise({try:()=>client.disconnect(),catch:toRedisError})})}),bootstrapRedisPersistenceServiceEffect=exports_Effect.gen(function*(){let client=yield*redisClientEffect;return RedisPersistence.of({setValue:(key,value)=>exports_Effect.tryPromise({try:()=>client.set(key,value),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.setValue`",command:"SET"})}),getValue:(key)=>exports_Effect.tryPromise({try:()=>client.get(key),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.getValue`",command:"GET"})}),del:(key)=>exports_Effect.tryPromise({try:()=>client.del(key),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.del`",command:"DEL"})}),exists:(key)=>exports_Effect.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_Effect.tryPromise({try:()=>client.sAdd(key,members),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.sAdd`",command:"SADD"})})})}),bootstrapRedisPubSubServiceEffect=exports_Effect.gen(function*(){let clientPublish=yield*redisClientEffect,clientSubscribe=yield*redisClientEffect,incomingQueue=yield*exports_Queue.unbounded();return RedisPubSub.of({publish:(channel,message)=>exports_Effect.tryPromise({try:()=>clientPublish.publish(channel,message),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.publish`",command:"PUBLISH"})}),subscribe:(channel)=>exports_Effect.gen(function*(){return yield*exports_Effect.tryPromise({try:()=>clientSubscribe.subscribe(channel,(message)=>exports_Queue.unsafeOffer(incomingQueue,message)),catch:(e)=>new RedisCommandError({cause:e,message:"Error in `Redis.subscribe`",command:"SUBSCRIBE"})}),exports_Stream.fromQueue(incomingQueue)})})}),bootstrapRedisStreamServiceEffect=exports_Effect.gen(function*(){let clientProducer=yield*redisClientEffect,clientConsumer=yield*redisClientEffect;return RedisStream.of({xadd:(key,id2,message)=>exports_Effect.tryPromise({try:async()=>{return await clientProducer.xAdd(key,id2,message)},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xadd`",command:"XADD"})}),xread:(key,id2,block,count3)=>exports_Effect.tryPromise({try:async()=>{let options={};if(block!==void 0)options.BLOCK=block;if(count3!==void 0)options.COUNT=count3;let streams=[{key,id:id2}],result=await clientConsumer.xRead(streams,options);if(!result)return[];if(!Array.isArray(result))return[];return result.flatMap((stream)=>{if(stream&&typeof stream==="object"&&"messages"in stream&&Array.isArray(stream.messages))return stream.messages.map((msg)=>{if(msg&&typeof msg==="object"&&"id"in msg)return{id:String(msg.id),message:msg.message};return{id:"",message:{}}});return[]})},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xread`",command:"XREAD"})}),xrange:(key,start3,end6,count3)=>exports_Effect.tryPromise({try:async()=>{let options={};if(count3!==void 0)options.COUNT=count3;return(await clientConsumer.xRange(key,start3,end6,options)).map((msg)=>({id:msg.id,message:msg.message}))},catch:(e)=>new RedisCommandError({cause:e,message:"Error in `RedisStream.xrange`",command:"XRANGE"})})})}),RedisConnectionOptionsLive=(options,createClientOverride)=>exports_Layer.succeed(RedisConnectionOptions,RedisConnectionOptions.of({options,createClient:createClientOverride})),RedisLive=exports_Layer.scoped(Redis,bootstrapRedisServiceEffect),RedisPubSubLive=exports_Layer.scoped(RedisPubSub,bootstrapRedisPubSubServiceEffect),RedisPersistenceLive=exports_Layer.scoped(RedisPersistence,bootstrapRedisPersistenceServiceEffect),RedisStreamLive=exports_Layer.scoped(RedisStream,bootstrapRedisStreamServiceEffect);export{toRedisError,RedisStreamLive,RedisStream,RedisPubSubLive,RedisPubSub,RedisPersistenceLive,RedisPersistence,RedisLive,RedisConnectionOptionsLive,RedisConnectionOptions,Redis};