effect-redis 0.0.21 → 0.0.23

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.
Files changed (2) hide show
  1. package/dist/index.js +3 -3
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
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.CommandTimeoutDuringMaintenanceError=exports.SocketTimeoutDuringMaintenanceError=exports.TimeoutError=exports.BlobError=exports.SimpleError=exports.ErrorReply=exports.ReconnectStrategyError=exports.RootNodesUnavailableError=exports.SocketClosedUnexpectedlyError=exports.DisconnectsClientError=exports.ClientOfflineError=exports.ClientClosedError=exports.SocketTimeoutError=exports.ConnectionTimeoutError=exports.WatchError=exports.AbortError=void 0;class AbortError extends Error{constructor(){super("The command was aborted")}}exports.AbortError=AbortError;class WatchError extends Error{constructor(message="One (or more) of the watched keys has been changed"){super(message)}}exports.WatchError=WatchError;class ConnectionTimeoutError extends Error{constructor(){super("Connection timeout")}}exports.ConnectionTimeoutError=ConnectionTimeoutError;class SocketTimeoutError extends Error{constructor(timeout5){super(`Socket timeout timeout. Expecting data, but didn't receive any in ${timeout5}ms.`)}}exports.SocketTimeoutError=SocketTimeoutError;class ClientClosedError extends Error{constructor(){super("The client is closed")}}exports.ClientClosedError=ClientClosedError;class ClientOfflineError extends Error{constructor(){super("The client is offline")}}exports.ClientOfflineError=ClientOfflineError;class DisconnectsClientError extends Error{constructor(){super("Disconnects client")}}exports.DisconnectsClientError=DisconnectsClientError;class SocketClosedUnexpectedlyError extends Error{constructor(){super("Socket closed unexpectedly")}}exports.SocketClosedUnexpectedlyError=SocketClosedUnexpectedlyError;class RootNodesUnavailableError extends Error{constructor(){super("All the root nodes are unavailable")}}exports.RootNodesUnavailableError=RootNodesUnavailableError;class ReconnectStrategyError extends Error{originalError;socketError;constructor(originalError,socketError){super(originalError.message);this.originalError=originalError,this.socketError=socketError}}exports.ReconnectStrategyError=ReconnectStrategyError;class ErrorReply extends Error{}exports.ErrorReply=ErrorReply;class SimpleError extends ErrorReply{}exports.SimpleError=SimpleError;class BlobError extends ErrorReply{}exports.BlobError=BlobError;class TimeoutError extends Error{}exports.TimeoutError=TimeoutError;class SocketTimeoutDuringMaintenanceError extends TimeoutError{constructor(timeout5){super(`Socket timeout during maintenance. Expecting data, but didn't receive any in ${timeout5}ms.`)}}exports.SocketTimeoutDuringMaintenanceError=SocketTimeoutDuringMaintenanceError;class CommandTimeoutDuringMaintenanceError extends TimeoutError{constructor(timeout5){super(`Command timeout during maintenance. Waited to write command for more than ${timeout5}ms.`)}}exports.CommandTimeoutDuringMaintenanceError=CommandTimeoutDuringMaintenanceError;class MultiErrorReply extends ErrorReply{replies;errorIndexes;constructor(replies,errorIndexes){super(`${errorIndexes.length} commands failed, see .replies and .errorIndexes for more information`);this.replies=replies,this.errorIndexes=errorIndexes}*errors(){for(let index of this.errorIndexes)yield this.replies[index]}}exports.MultiErrorReply=MultiErrorReply});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);chunks3.push(chunk3.subarray(start3,crlfIndex));let buffer3=Buffer.concat(chunks3);return type===Buffer?buffer3:buffer3.toString()}#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)}chunks3.push(chunk3.subarray(this.#cursor,end6)),this.#cursor=end6+skip;let buffer3=Buffer.concat(chunks3);return type===Buffer?buffer3:buffer3.toString()}#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,millisElapsedFromDelivery,deliveriesCounter]=reply;return{id:id2,message:transformTuplesReply(message,void 0,typeMapping),...millisElapsedFromDelivery!==void 0?{millisElapsedFromDelivery}:{},...deliveriesCounter!==void 0?{deliveriesCounter}:{}}}exports.transformStreamMessageReply=transformStreamMessageReply;function transformStreamMessageNullReply(typeMapping,reply){return isNullReply(reply)?reply:transformStreamMessageReply(typeMapping,reply)}exports.transformStreamMessageNullReply=transformStreamMessageNullReply;function transformStreamMessagesReply(r,typeMapping){return r.map(transformStreamMessageReply.bind(void 0,typeMapping))}exports.transformStreamMessagesReply=transformStreamMessagesReply;function transformStreamsMessagesReplyResp2(reply,preserve,typeMapping){if(reply===null)return null;switch(typeMapping?typeMapping[decoder_1.RESP_TYPES.MAP]:void 0){default:{let ret=[];for(let i=0;i<reply.length;i++){let stream=reply[i];ret.push({name:stream[0],messages:transformStreamMessagesReply(stream[1])})}return ret}}}exports.transformStreamsMessagesReplyResp2=transformStreamsMessagesReplyResp2;function transformStreamsMessagesReplyResp3(reply){if(reply===null)return null;if(reply instanceof Map){let ret=new Map;for(let[n,rawMessages]of reply){let name=n;ret.set(name.toString(),transformStreamMessagesReply(rawMessages))}return ret}else if(reply instanceof Array){let ret=[];for(let i=0;i<reply.length;i+=2){let name=reply[i],rawMessages=reply[i+1];ret.push(name),ret.push(transformStreamMessagesReply(rawMessages))}return ret}else{let ret=Object.create(null);for(let[name,rawMessages]of Object.entries(reply))ret[name]=transformStreamMessagesReply(rawMessages);return ret}}exports.transformStreamsMessagesReplyResp3=transformStreamsMessagesReplyResp3;function transformRedisJsonArgument(json){return JSON.stringify(json)}exports.transformRedisJsonArgument=transformRedisJsonArgument;function transformRedisJsonReply(json){return JSON.parse(json.toString())}exports.transformRedisJsonReply=transformRedisJsonReply;function transformRedisJsonNullReply(json){return isNullReply(json)?json:transformRedisJsonReply(json)}exports.transformRedisJsonNullReply=transformRedisJsonNullReply});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 filter11 of filters)pushFilter(parser,filter11);else pushFilter(parser,filters)},transformReply:void 0};function pushFilter(parser,filter11){if(filter11===exports.CLIENT_KILL_FILTERS.SKIP_ME){parser.push("SKIPME");return}switch(parser.push(filter11.filter),filter11.filter){case exports.CLIENT_KILL_FILTERS.ADDRESS:parser.push(filter11.address);break;case exports.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:parser.push(filter11.localAddress);break;case exports.CLIENT_KILL_FILTERS.ID:parser.push(typeof filter11.id==="number"?filter11.id.toString():filter11.id);break;case exports.CLIENT_KILL_FILTERS.TYPE:parser.push(filter11.type);break;case exports.CLIENT_KILL_FILTERS.USER:parser.push(filter11.username);break;case exports.CLIENT_KILL_FILTERS.SKIP_ME:parser.push(filter11.skipMe?"yes":"no");break;case exports.CLIENT_KILL_FILTERS.MAXAGE:parser.push(filter11.maxAge.toString());break}}});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,filter11){if(parser.push("CLIENT","LIST"),filter11)if(filter11.TYPE!==void 0)parser.push("TYPE",filter11.TYPE);else parser.push("ID"),parser.pushVariadic(filter11.ID)},transformReply(rawReply){let split4=rawReply.toString().split(`
2
2
  `),length3=split4.length-1,reply=[];for(let i=0;i<length3;i++)reply.push(CLIENT_INFO_1.default.transformReply(split4[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_DELEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.DelexCondition=void 0;exports.DelexCondition={IFEQ:"IFEQ",IFNE:"IFNE",IFDEQ:"IFDEQ",IFDNE:"IFDNE"};exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,options){if(parser.push("DELEX"),parser.pushKey(key),options)parser.push(options.condition),parser.push(options.matchValue)},transformReply:void 0}});var require_DIGEST=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!0,parseCommand(parser,key){parser.push("DIGEST"),parser.pushKey(key)},transformReply:void 0}});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={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={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_LATENCY_RESET=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.LATENCY_EVENTS=void 0;var LATENCY_GRAPH_1=require_LATENCY_GRAPH();Object.defineProperty(exports,"LATENCY_EVENTS",{enumerable:!0,get:function(){return LATENCY_GRAPH_1.LATENCY_EVENTS}});exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!1,parseCommand(parser,...events){let args2=["LATENCY","RESET"];if(events.length>0)args2.push(...events);parser.push(...args2)},transformReply:void 0}});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_MSETEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.parseMSetExArguments=exports.ExpirationMode=exports.SetMode=void 0;var generic_transformers_1=require_generic_transformers();exports.SetMode={XX:"XX",NX:"NX"};exports.ExpirationMode={EX:"EX",PX:"PX",EXAT:"EXAT",PXAT:"PXAT",KEEPTTL:"KEEPTTL"};function parseMSetExArguments(parser,keyValuePairs){let tuples=[];if(Array.isArray(keyValuePairs)){if(keyValuePairs.length==0)throw Error("empty keyValuePairs Argument");if(Array.isArray(keyValuePairs[0]))tuples=keyValuePairs;else{let arr=keyValuePairs;for(let i=0;i<arr.length;i+=2)tuples.push([arr[i],arr[i+1]])}}else for(let tuple2 of Object.entries(keyValuePairs))tuples.push([tuple2[0],tuple2[1]]);parser.push(tuples.length.toString());for(let tuple2 of tuples)parser.pushKey(tuple2[0]),parser.push(tuple2[1])}exports.parseMSetExArguments=parseMSetExArguments;exports.default={parseCommand(parser,keyValuePairs,options){if(parser.push("MSETEX"),parseMSetExArguments(parser,keyValuePairs),options?.mode)parser.push(options.mode);if(options?.expiration)switch(options.expiration.type){case exports.ExpirationMode.EXAT:parser.push(exports.ExpirationMode.EXAT,(0,generic_transformers_1.transformEXAT)(options.expiration.value));break;case exports.ExpirationMode.PXAT:parser.push(exports.ExpirationMode.PXAT,(0,generic_transformers_1.transformPXAT)(options.expiration.value));break;case exports.ExpirationMode.KEEPTTL:parser.push(exports.ExpirationMode.KEEPTTL);break;case exports.ExpirationMode.EX:case exports.ExpirationMode.PX:parser.push(options.expiration.type,options.expiration.value?.toString());break}},transformReply:void 0}});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()]=Number(rawReply[i++]);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){if(parser.push(options.condition),options?.matchValue!==void 0)parser.push(options.matchValue)}else if(options?.NX)parser.push("NX");else if(options?.XX)parser.push("XX");if(options?.GET)parser.push("GET")},transformReply:void 0}});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_XACKDEL=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,group,id2,policy){if(parser.push("XACKDEL"),parser.pushKey(key),parser.push(group),policy)parser.push(policy);parser.push("IDS"),parser.pushVariadicWithLength(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());if(options.TRIM.policy)parser.push(options.TRIM.policy)}parser.push(id2);for(let[key2,value]of Object.entries(message))parser.push(key2,value)}exports.parseXAddArguments=parseXAddArguments;exports.default={IS_READ_ONLY:!1,parseCommand(...args2){return parseXAddArguments(void 0,...args2)},transformReply:void 0}});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_XDELEX=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});exports.default={IS_READ_ONLY:!1,parseCommand(parser,key,id2,policy){if(parser.push("XDELEX"),parser.pushKey(key),policy)parser.push(policy);parser.push("IDS"),parser.pushVariadicWithLength(id2)},transformReply:void 0}});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");if(options?.CLAIM!==void 0)parser.push("CLAIM",options.CLAIM.toString());(0,XREAD_1.pushXReadStreams)(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0}}});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());if(options?.policy)parser.push(options.policy)},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?.EPSILON!==void 0)parser.push("EPSILON",options.EPSILON.toString());if(options?.EF!==void 0)parser.push("EF",options.EF.toString());if(options?.FILTER)parser.push("FILTER",options.FILTER);if(options?.["FILTER-EF"]!==void 0)parser.push("FILTER-EF",options["FILTER-EF"].toString());if(options?.TRUTH)parser.push("TRUTH");if(options?.NOTHREAD)parser.push("NOTHREAD")},transformReply:void 0}});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_LATENCY_HISTOGRAM=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),id2=(n)=>n;exports.default={CACHEABLE:!1,IS_READ_ONLY:!0,parseCommand(parser,...commands){let args2=["LATENCY","HISTOGRAM"];if(commands.length!==0)args2.push(...commands);parser.push(...args2)},transformReply:{2:(reply)=>{let result={};if(reply.length===0)return result;for(let i=1;i<reply.length;i+=2){let histogram6=reply[i];result[reply[i-1]]={calls:histogram6[1],histogram_usec:(0,generic_transformers_1.transformTuplesToMap)(histogram6[3],id2)}}return result},3:void 0}}});var require_commands=__commonJS((exports)=>{var __createBinding=exports&&exports.__createBinding||(Object.create?function(o,m,k,k2){if(k2===void 0)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))desc={enumerable:!0,get:function(){return m[k]}};Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===void 0)k2=k;o[k2]=m[k]}),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k)}return __setModuleDefault(result,mod),result},__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.REDIS_FLUSH_MODES=exports.COMMAND_LIST_FILTER_BY=exports.CLUSTER_SLOT_STATES=exports.FAILOVER_MODES=exports.CLIENT_KILL_FILTERS=void 0;var ACL_CAT_1=__importDefault(require_ACL_CAT()),ACL_DELUSER_1=__importDefault(require_ACL_DELUSER()),ACL_DRYRUN_1=__importDefault(require_ACL_DRYRUN()),ACL_GENPASS_1=__importDefault(require_ACL_GENPASS()),ACL_GETUSER_1=__importDefault(require_ACL_GETUSER()),ACL_LIST_1=__importDefault(require_ACL_LIST()),ACL_LOAD_1=__importDefault(require_ACL_LOAD()),ACL_LOG_RESET_1=__importDefault(require_ACL_LOG_RESET()),ACL_LOG_1=__importDefault(require_ACL_LOG()),ACL_SAVE_1=__importDefault(require_ACL_SAVE()),ACL_SETUSER_1=__importDefault(require_ACL_SETUSER()),ACL_USERS_1=__importDefault(require_ACL_USERS()),ACL_WHOAMI_1=__importDefault(require_ACL_WHOAMI()),APPEND_1=__importDefault(require_APPEND()),ASKING_1=__importDefault(require_ASKING()),AUTH_1=__importDefault(require_AUTH()),BGREWRITEAOF_1=__importDefault(require_BGREWRITEAOF()),BGSAVE_1=__importDefault(require_BGSAVE()),BITCOUNT_1=__importDefault(require_BITCOUNT()),BITFIELD_RO_1=__importDefault(require_BITFIELD_RO()),BITFIELD_1=__importDefault(require_BITFIELD()),BITOP_1=__importDefault(require_BITOP()),BITPOS_1=__importDefault(require_BITPOS()),BLMOVE_1=__importDefault(require_BLMOVE()),BLMPOP_1=__importDefault(require_BLMPOP()),BLPOP_1=__importDefault(require_BLPOP()),BRPOP_1=__importDefault(require_BRPOP()),BRPOPLPUSH_1=__importDefault(require_BRPOPLPUSH()),BZMPOP_1=__importDefault(require_BZMPOP()),BZPOPMAX_1=__importDefault(require_BZPOPMAX()),BZPOPMIN_1=__importDefault(require_BZPOPMIN()),CLIENT_CACHING_1=__importDefault(require_CLIENT_CACHING()),CLIENT_GETNAME_1=__importDefault(require_CLIENT_GETNAME()),CLIENT_GETREDIR_1=__importDefault(require_CLIENT_GETREDIR()),CLIENT_ID_1=__importDefault(require_CLIENT_ID()),CLIENT_INFO_1=__importDefault(require_CLIENT_INFO()),CLIENT_KILL_1=__importStar(require_CLIENT_KILL());Object.defineProperty(exports,"CLIENT_KILL_FILTERS",{enumerable:!0,get:function(){return CLIENT_KILL_1.CLIENT_KILL_FILTERS}});var CLIENT_LIST_1=__importDefault(require_CLIENT_LIST()),CLIENT_NO_EVICT_1=__importDefault(require_CLIENT_NO_EVICT()),CLIENT_NO_TOUCH_1=__importDefault(require_CLIENT_NO_TOUCH()),CLIENT_PAUSE_1=__importDefault(require_CLIENT_PAUSE()),CLIENT_SETNAME_1=__importDefault(require_CLIENT_SETNAME()),CLIENT_TRACKING_1=__importDefault(require_CLIENT_TRACKING()),CLIENT_TRACKINGINFO_1=__importDefault(require_CLIENT_TRACKINGINFO()),CLIENT_UNPAUSE_1=__importDefault(require_CLIENT_UNPAUSE()),CLUSTER_ADDSLOTS_1=__importDefault(require_CLUSTER_ADDSLOTS()),CLUSTER_ADDSLOTSRANGE_1=__importDefault(require_CLUSTER_ADDSLOTSRANGE()),CLUSTER_BUMPEPOCH_1=__importDefault(require_CLUSTER_BUMPEPOCH()),CLUSTER_COUNT_FAILURE_REPORTS_1=__importDefault(require_CLUSTER_COUNT_FAILURE_REPORTS()),CLUSTER_COUNTKEYSINSLOT_1=__importDefault(require_CLUSTER_COUNTKEYSINSLOT()),CLUSTER_DELSLOTS_1=__importDefault(require_CLUSTER_DELSLOTS()),CLUSTER_DELSLOTSRANGE_1=__importDefault(require_CLUSTER_DELSLOTSRANGE()),CLUSTER_FAILOVER_1=__importStar(require_CLUSTER_FAILOVER());Object.defineProperty(exports,"FAILOVER_MODES",{enumerable:!0,get:function(){return CLUSTER_FAILOVER_1.FAILOVER_MODES}});var CLUSTER_FLUSHSLOTS_1=__importDefault(require_CLUSTER_FLUSHSLOTS()),CLUSTER_FORGET_1=__importDefault(require_CLUSTER_FORGET()),CLUSTER_GETKEYSINSLOT_1=__importDefault(require_CLUSTER_GETKEYSINSLOT()),CLUSTER_INFO_1=__importDefault(require_CLUSTER_INFO()),CLUSTER_KEYSLOT_1=__importDefault(require_CLUSTER_KEYSLOT()),CLUSTER_LINKS_1=__importDefault(require_CLUSTER_LINKS()),CLUSTER_MEET_1=__importDefault(require_CLUSTER_MEET()),CLUSTER_MYID_1=__importDefault(require_CLUSTER_MYID()),CLUSTER_MYSHARDID_1=__importDefault(require_CLUSTER_MYSHARDID()),CLUSTER_NODES_1=__importDefault(require_CLUSTER_NODES()),CLUSTER_REPLICAS_1=__importDefault(require_CLUSTER_REPLICAS()),CLUSTER_REPLICATE_1=__importDefault(require_CLUSTER_REPLICATE()),CLUSTER_RESET_1=__importDefault(require_CLUSTER_RESET()),CLUSTER_SAVECONFIG_1=__importDefault(require_CLUSTER_SAVECONFIG()),CLUSTER_SET_CONFIG_EPOCH_1=__importDefault(require_CLUSTER_SET_CONFIG_EPOCH()),CLUSTER_SETSLOT_1=__importStar(require_CLUSTER_SETSLOT());Object.defineProperty(exports,"CLUSTER_SLOT_STATES",{enumerable:!0,get:function(){return CLUSTER_SETSLOT_1.CLUSTER_SLOT_STATES}});var CLUSTER_SLOTS_1=__importDefault(require_CLUSTER_SLOTS()),COMMAND_COUNT_1=__importDefault(require_COMMAND_COUNT()),COMMAND_GETKEYS_1=__importDefault(require_COMMAND_GETKEYS()),COMMAND_GETKEYSANDFLAGS_1=__importDefault(require_COMMAND_GETKEYSANDFLAGS()),COMMAND_INFO_1=__importDefault(require_COMMAND_INFO()),COMMAND_LIST_1=__importStar(require_COMMAND_LIST());Object.defineProperty(exports,"COMMAND_LIST_FILTER_BY",{enumerable:!0,get:function(){return COMMAND_LIST_1.COMMAND_LIST_FILTER_BY}});var COMMAND_1=__importDefault(require_COMMAND()),CONFIG_GET_1=__importDefault(require_CONFIG_GET()),CONFIG_RESETSTAT_1=__importDefault(require_CONFIG_RESETSTAT()),CONFIG_REWRITE_1=__importDefault(require_CONFIG_REWRITE()),CONFIG_SET_1=__importDefault(require_CONFIG_SET()),COPY_1=__importDefault(require_COPY()),DBSIZE_1=__importDefault(require_DBSIZE()),DECR_1=__importDefault(require_DECR()),DECRBY_1=__importDefault(require_DECRBY()),DEL_1=__importDefault(require_DEL()),DELEX_1=__importDefault(require_DELEX()),DIGEST_1=__importDefault(require_DIGEST()),DUMP_1=__importDefault(require_DUMP()),ECHO_1=__importDefault(require_ECHO()),EVAL_RO_1=__importDefault(require_EVAL_RO()),EVAL_1=__importDefault(require_EVAL()),EVALSHA_RO_1=__importDefault(require_EVALSHA_RO()),EVALSHA_1=__importDefault(require_EVALSHA()),GEOADD_1=__importDefault(require_GEOADD()),GEODIST_1=__importDefault(require_GEODIST()),GEOHASH_1=__importDefault(require_GEOHASH()),GEOPOS_1=__importDefault(require_GEOPOS()),GEORADIUS_RO_WITH_1=__importDefault(require_GEORADIUS_RO_WITH()),GEORADIUS_RO_1=__importDefault(require_GEORADIUS_RO()),GEORADIUS_STORE_1=__importDefault(require_GEORADIUS_STORE()),GEORADIUS_WITH_1=__importDefault(require_GEORADIUS_WITH()),GEORADIUS_1=__importDefault(require_GEORADIUS()),GEORADIUSBYMEMBER_RO_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_RO_WITH()),GEORADIUSBYMEMBER_RO_1=__importDefault(require_GEORADIUSBYMEMBER_RO()),GEORADIUSBYMEMBER_STORE_1=__importDefault(require_GEORADIUSBYMEMBER_STORE()),GEORADIUSBYMEMBER_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_WITH()),GEORADIUSBYMEMBER_1=__importDefault(require_GEORADIUSBYMEMBER()),GEOSEARCH_WITH_1=__importDefault(require_GEOSEARCH_WITH()),GEOSEARCH_1=__importDefault(require_GEOSEARCH()),GEOSEARCHSTORE_1=__importDefault(require_GEOSEARCHSTORE()),GET_1=__importDefault(require_GET()),GETBIT_1=__importDefault(require_GETBIT()),GETDEL_1=__importDefault(require_GETDEL()),GETEX_1=__importDefault(require_GETEX()),GETRANGE_1=__importDefault(require_GETRANGE()),GETSET_1=__importDefault(require_GETSET()),EXISTS_1=__importDefault(require_EXISTS()),EXPIRE_1=__importDefault(require_EXPIRE()),EXPIREAT_1=__importDefault(require_EXPIREAT()),EXPIRETIME_1=__importDefault(require_EXPIRETIME()),FLUSHALL_1=__importStar(require_FLUSHALL());Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return FLUSHALL_1.REDIS_FLUSH_MODES}});var FLUSHDB_1=__importDefault(require_FLUSHDB()),FCALL_1=__importDefault(require_FCALL()),FCALL_RO_1=__importDefault(require_FCALL_RO()),FUNCTION_DELETE_1=__importDefault(require_FUNCTION_DELETE()),FUNCTION_DUMP_1=__importDefault(require_FUNCTION_DUMP()),FUNCTION_FLUSH_1=__importDefault(require_FUNCTION_FLUSH()),FUNCTION_KILL_1=__importDefault(require_FUNCTION_KILL()),FUNCTION_LIST_WITHCODE_1=__importDefault(require_FUNCTION_LIST_WITHCODE()),FUNCTION_LIST_1=__importDefault(require_FUNCTION_LIST()),FUNCTION_LOAD_1=__importDefault(require_FUNCTION_LOAD()),FUNCTION_RESTORE_1=__importDefault(require_FUNCTION_RESTORE()),FUNCTION_STATS_1=__importDefault(require_FUNCTION_STATS()),HDEL_1=__importDefault(require_HDEL()),HELLO_1=__importDefault(require_HELLO()),HEXISTS_1=__importDefault(require_HEXISTS()),HEXPIRE_1=__importDefault(require_HEXPIRE()),HEXPIREAT_1=__importDefault(require_HEXPIREAT()),HEXPIRETIME_1=__importDefault(require_HEXPIRETIME()),HGET_1=__importDefault(require_HGET()),HGETALL_1=__importDefault(require_HGETALL()),HGETDEL_1=__importDefault(require_HGETDEL()),HGETEX_1=__importDefault(require_HGETEX()),HINCRBY_1=__importDefault(require_HINCRBY()),HINCRBYFLOAT_1=__importDefault(require_HINCRBYFLOAT()),HKEYS_1=__importDefault(require_HKEYS()),HLEN_1=__importDefault(require_HLEN()),HMGET_1=__importDefault(require_HMGET()),HPERSIST_1=__importDefault(require_HPERSIST()),HPEXPIRE_1=__importDefault(require_HPEXPIRE()),HPEXPIREAT_1=__importDefault(require_HPEXPIREAT()),HPEXPIRETIME_1=__importDefault(require_HPEXPIRETIME()),HPTTL_1=__importDefault(require_HPTTL()),HRANDFIELD_COUNT_WITHVALUES_1=__importDefault(require_HRANDFIELD_COUNT_WITHVALUES()),HRANDFIELD_COUNT_1=__importDefault(require_HRANDFIELD_COUNT()),HRANDFIELD_1=__importDefault(require_HRANDFIELD()),HSCAN_1=__importDefault(require_HSCAN()),HSCAN_NOVALUES_1=__importDefault(require_HSCAN_NOVALUES()),HSET_1=__importDefault(require_HSET()),HSETEX_1=__importDefault(require_HSETEX()),HSETNX_1=__importDefault(require_HSETNX()),HSTRLEN_1=__importDefault(require_HSTRLEN()),HTTL_1=__importDefault(require_HTTL()),HVALS_1=__importDefault(require_HVALS()),INCR_1=__importDefault(require_INCR()),INCRBY_1=__importDefault(require_INCRBY()),INCRBYFLOAT_1=__importDefault(require_INCRBYFLOAT()),INFO_1=__importDefault(require_INFO()),KEYS_1=__importDefault(require_KEYS()),LASTSAVE_1=__importDefault(require_LASTSAVE()),LATENCY_DOCTOR_1=__importDefault(require_LATENCY_DOCTOR()),LATENCY_GRAPH_1=__importDefault(require_LATENCY_GRAPH()),LATENCY_HISTORY_1=__importDefault(require_LATENCY_HISTORY()),LATENCY_LATEST_1=__importDefault(require_LATENCY_LATEST()),LATENCY_RESET_1=__importDefault(require_LATENCY_RESET()),LCS_IDX_WITHMATCHLEN_1=__importDefault(require_LCS_IDX_WITHMATCHLEN()),LCS_IDX_1=__importDefault(require_LCS_IDX()),LCS_LEN_1=__importDefault(require_LCS_LEN()),LCS_1=__importDefault(require_LCS()),LINDEX_1=__importDefault(require_LINDEX()),LINSERT_1=__importDefault(require_LINSERT()),LLEN_1=__importDefault(require_LLEN()),LMOVE_1=__importDefault(require_LMOVE()),LMPOP_1=__importDefault(require_LMPOP()),LOLWUT_1=__importDefault(require_LOLWUT()),LPOP_COUNT_1=__importDefault(require_LPOP_COUNT()),LPOP_1=__importDefault(require_LPOP()),LPOS_COUNT_1=__importDefault(require_LPOS_COUNT()),LPOS_1=__importDefault(require_LPOS()),LPUSH_1=__importDefault(require_LPUSH()),LPUSHX_1=__importDefault(require_LPUSHX()),LRANGE_1=__importDefault(require_LRANGE()),LREM_1=__importDefault(require_LREM()),LSET_1=__importDefault(require_LSET()),LTRIM_1=__importDefault(require_LTRIM()),MEMORY_DOCTOR_1=__importDefault(require_MEMORY_DOCTOR()),MEMORY_MALLOC_STATS_1=__importDefault(require_MEMORY_MALLOC_STATS()),MEMORY_PURGE_1=__importDefault(require_MEMORY_PURGE()),MEMORY_STATS_1=__importDefault(require_MEMORY_STATS()),MEMORY_USAGE_1=__importDefault(require_MEMORY_USAGE()),MGET_1=__importDefault(require_MGET()),MIGRATE_1=__importDefault(require_MIGRATE()),MODULE_LIST_1=__importDefault(require_MODULE_LIST()),MODULE_LOAD_1=__importDefault(require_MODULE_LOAD()),MODULE_UNLOAD_1=__importDefault(require_MODULE_UNLOAD()),MOVE_1=__importDefault(require_MOVE()),MSET_1=__importDefault(require_MSET()),MSETEX_1=__importDefault(require_MSETEX()),MSETNX_1=__importDefault(require_MSETNX()),OBJECT_ENCODING_1=__importDefault(require_OBJECT_ENCODING()),OBJECT_FREQ_1=__importDefault(require_OBJECT_FREQ()),OBJECT_IDLETIME_1=__importDefault(require_OBJECT_IDLETIME()),OBJECT_REFCOUNT_1=__importDefault(require_OBJECT_REFCOUNT()),PERSIST_1=__importDefault(require_PERSIST()),PEXPIRE_1=__importDefault(require_PEXPIRE()),PEXPIREAT_1=__importDefault(require_PEXPIREAT()),PEXPIRETIME_1=__importDefault(require_PEXPIRETIME()),PFADD_1=__importDefault(require_PFADD()),PFCOUNT_1=__importDefault(require_PFCOUNT()),PFMERGE_1=__importDefault(require_PFMERGE()),PING_1=__importDefault(require_PING()),PSETEX_1=__importDefault(require_PSETEX()),PTTL_1=__importDefault(require_PTTL()),PUBLISH_1=__importDefault(require_PUBLISH()),PUBSUB_CHANNELS_1=__importDefault(require_PUBSUB_CHANNELS()),PUBSUB_NUMPAT_1=__importDefault(require_PUBSUB_NUMPAT()),PUBSUB_NUMSUB_1=__importDefault(require_PUBSUB_NUMSUB()),PUBSUB_SHARDNUMSUB_1=__importDefault(require_PUBSUB_SHARDNUMSUB()),PUBSUB_SHARDCHANNELS_1=__importDefault(require_PUBSUB_SHARDCHANNELS()),RANDOMKEY_1=__importDefault(require_RANDOMKEY()),READONLY_1=__importDefault(require_READONLY()),RENAME_1=__importDefault(require_RENAME()),RENAMENX_1=__importDefault(require_RENAMENX()),REPLICAOF_1=__importDefault(require_REPLICAOF()),RESTORE_ASKING_1=__importDefault(require_RESTORE_ASKING()),RESTORE_1=__importDefault(require_RESTORE()),ROLE_1=__importDefault(require_ROLE()),RPOP_COUNT_1=__importDefault(require_RPOP_COUNT()),RPOP_1=__importDefault(require_RPOP()),RPOPLPUSH_1=__importDefault(require_RPOPLPUSH()),RPUSH_1=__importDefault(require_RPUSH()),RPUSHX_1=__importDefault(require_RPUSHX()),SADD_1=__importDefault(require_SADD()),SCAN_1=__importDefault(require_SCAN()),SCARD_1=__importDefault(require_SCARD()),SCRIPT_DEBUG_1=__importDefault(require_SCRIPT_DEBUG()),SCRIPT_EXISTS_1=__importDefault(require_SCRIPT_EXISTS()),SCRIPT_FLUSH_1=__importDefault(require_SCRIPT_FLUSH()),SCRIPT_KILL_1=__importDefault(require_SCRIPT_KILL()),SCRIPT_LOAD_1=__importDefault(require_SCRIPT_LOAD()),SDIFF_1=__importDefault(require_SDIFF()),SDIFFSTORE_1=__importDefault(require_SDIFFSTORE()),SET_1=__importDefault(require_SET()),SETBIT_1=__importDefault(require_SETBIT()),SETEX_1=__importDefault(require_SETEX()),SETNX_1=__importDefault(require_SETNX()),SETRANGE_1=__importDefault(require_SETRANGE()),SINTER_1=__importDefault(require_SINTER()),SINTERCARD_1=__importDefault(require_SINTERCARD()),SINTERSTORE_1=__importDefault(require_SINTERSTORE()),SISMEMBER_1=__importDefault(require_SISMEMBER()),SMEMBERS_1=__importDefault(require_SMEMBERS()),SMISMEMBER_1=__importDefault(require_SMISMEMBER()),SMOVE_1=__importDefault(require_SMOVE()),SORT_RO_1=__importDefault(require_SORT_RO()),SORT_STORE_1=__importDefault(require_SORT_STORE()),SORT_1=__importDefault(require_SORT()),SPOP_COUNT_1=__importDefault(require_SPOP_COUNT()),SPOP_1=__importDefault(require_SPOP()),SPUBLISH_1=__importDefault(require_SPUBLISH()),SRANDMEMBER_COUNT_1=__importDefault(require_SRANDMEMBER_COUNT()),SRANDMEMBER_1=__importDefault(require_SRANDMEMBER()),SREM_1=__importDefault(require_SREM()),SSCAN_1=__importDefault(require_SSCAN()),STRLEN_1=__importDefault(require_STRLEN()),SUNION_1=__importDefault(require_SUNION()),SUNIONSTORE_1=__importDefault(require_SUNIONSTORE()),SWAPDB_1=__importDefault(require_SWAPDB()),TIME_1=__importDefault(require_TIME()),TOUCH_1=__importDefault(require_TOUCH()),TTL_1=__importDefault(require_TTL()),TYPE_1=__importDefault(require_TYPE()),UNLINK_1=__importDefault(require_UNLINK()),WAIT_1=__importDefault(require_WAIT()),XACK_1=__importDefault(require_XACK()),XACKDEL_1=__importDefault(require_XACKDEL()),XADD_NOMKSTREAM_1=__importDefault(require_XADD_NOMKSTREAM()),XADD_1=__importDefault(require_XADD()),XAUTOCLAIM_JUSTID_1=__importDefault(require_XAUTOCLAIM_JUSTID()),XAUTOCLAIM_1=__importDefault(require_XAUTOCLAIM()),XCLAIM_JUSTID_1=__importDefault(require_XCLAIM_JUSTID()),XCLAIM_1=__importDefault(require_XCLAIM()),XDEL_1=__importDefault(require_XDEL()),XDELEX_1=__importDefault(require_XDELEX()),XGROUP_CREATE_1=__importDefault(require_XGROUP_CREATE()),XGROUP_CREATECONSUMER_1=__importDefault(require_XGROUP_CREATECONSUMER()),XGROUP_DELCONSUMER_1=__importDefault(require_XGROUP_DELCONSUMER()),XGROUP_DESTROY_1=__importDefault(require_XGROUP_DESTROY()),XGROUP_SETID_1=__importDefault(require_XGROUP_SETID()),XINFO_CONSUMERS_1=__importDefault(require_XINFO_CONSUMERS()),XINFO_GROUPS_1=__importDefault(require_XINFO_GROUPS()),XINFO_STREAM_1=__importDefault(require_XINFO_STREAM()),XLEN_1=__importDefault(require_XLEN()),XPENDING_RANGE_1=__importDefault(require_XPENDING_RANGE()),XPENDING_1=__importDefault(require_XPENDING()),XRANGE_1=__importDefault(require_XRANGE()),XREAD_1=__importDefault(require_XREAD()),XREADGROUP_1=__importDefault(require_XREADGROUP()),XREVRANGE_1=__importDefault(require_XREVRANGE()),XSETID_1=__importDefault(require_XSETID()),XTRIM_1=__importDefault(require_XTRIM()),ZADD_INCR_1=__importDefault(require_ZADD_INCR()),ZADD_1=__importDefault(require_ZADD()),ZCARD_1=__importDefault(require_ZCARD()),ZCOUNT_1=__importDefault(require_ZCOUNT()),ZDIFF_WITHSCORES_1=__importDefault(require_ZDIFF_WITHSCORES()),ZDIFF_1=__importDefault(require_ZDIFF()),ZDIFFSTORE_1=__importDefault(require_ZDIFFSTORE()),ZINCRBY_1=__importDefault(require_ZINCRBY()),ZINTER_WITHSCORES_1=__importDefault(require_ZINTER_WITHSCORES()),ZINTER_1=__importDefault(require_ZINTER()),ZINTERCARD_1=__importDefault(require_ZINTERCARD()),ZINTERSTORE_1=__importDefault(require_ZINTERSTORE()),ZLEXCOUNT_1=__importDefault(require_ZLEXCOUNT()),ZMPOP_1=__importDefault(require_ZMPOP()),ZMSCORE_1=__importDefault(require_ZMSCORE()),ZPOPMAX_COUNT_1=__importDefault(require_ZPOPMAX_COUNT()),ZPOPMAX_1=__importDefault(require_ZPOPMAX()),ZPOPMIN_COUNT_1=__importDefault(require_ZPOPMIN_COUNT()),ZPOPMIN_1=__importDefault(require_ZPOPMIN()),ZRANDMEMBER_COUNT_WITHSCORES_1=__importDefault(require_ZRANDMEMBER_COUNT_WITHSCORES()),ZRANDMEMBER_COUNT_1=__importDefault(require_ZRANDMEMBER_COUNT()),ZRANDMEMBER_1=__importDefault(require_ZRANDMEMBER()),ZRANGE_WITHSCORES_1=__importDefault(require_ZRANGE_WITHSCORES()),ZRANGE_1=__importDefault(require_ZRANGE()),ZRANGEBYLEX_1=__importDefault(require_ZRANGEBYLEX()),ZRANGEBYSCORE_WITHSCORES_1=__importDefault(require_ZRANGEBYSCORE_WITHSCORES()),ZRANGEBYSCORE_1=__importDefault(require_ZRANGEBYSCORE()),ZRANGESTORE_1=__importDefault(require_ZRANGESTORE()),ZREMRANGEBYSCORE_1=__importDefault(require_ZREMRANGEBYSCORE()),ZRANK_WITHSCORE_1=__importDefault(require_ZRANK_WITHSCORE()),ZRANK_1=__importDefault(require_ZRANK()),ZREM_1=__importDefault(require_ZREM()),ZREMRANGEBYLEX_1=__importDefault(require_ZREMRANGEBYLEX()),ZREMRANGEBYRANK_1=__importDefault(require_ZREMRANGEBYRANK()),ZREVRANK_1=__importDefault(require_ZREVRANK()),ZSCAN_1=__importDefault(require_ZSCAN()),ZSCORE_1=__importDefault(require_ZSCORE()),ZUNION_WITHSCORES_1=__importDefault(require_ZUNION_WITHSCORES()),ZUNION_1=__importDefault(require_ZUNION()),ZUNIONSTORE_1=__importDefault(require_ZUNIONSTORE()),VADD_1=__importDefault(require_VADD()),VCARD_1=__importDefault(require_VCARD()),VDIM_1=__importDefault(require_VDIM()),VEMB_1=__importDefault(require_VEMB()),VEMB_RAW_1=__importDefault(require_VEMB_RAW()),VGETATTR_1=__importDefault(require_VGETATTR()),VINFO_1=__importDefault(require_VINFO()),VLINKS_1=__importDefault(require_VLINKS()),VLINKS_WITHSCORES_1=__importDefault(require_VLINKS_WITHSCORES()),VRANDMEMBER_1=__importDefault(require_VRANDMEMBER()),VREM_1=__importDefault(require_VREM()),VSETATTR_1=__importDefault(require_VSETATTR()),VSIM_1=__importDefault(require_VSIM()),VSIM_WITHSCORES_1=__importDefault(require_VSIM_WITHSCORES()),LATENCY_HISTOGRAM_1=__importDefault(require_LATENCY_HISTOGRAM());exports.default={ACL_CAT:ACL_CAT_1.default,aclCat:ACL_CAT_1.default,ACL_DELUSER:ACL_DELUSER_1.default,aclDelUser:ACL_DELUSER_1.default,ACL_DRYRUN:ACL_DRYRUN_1.default,aclDryRun:ACL_DRYRUN_1.default,ACL_GENPASS:ACL_GENPASS_1.default,aclGenPass:ACL_GENPASS_1.default,ACL_GETUSER:ACL_GETUSER_1.default,aclGetUser:ACL_GETUSER_1.default,ACL_LIST:ACL_LIST_1.default,aclList:ACL_LIST_1.default,ACL_LOAD:ACL_LOAD_1.default,aclLoad:ACL_LOAD_1.default,ACL_LOG_RESET:ACL_LOG_RESET_1.default,aclLogReset:ACL_LOG_RESET_1.default,ACL_LOG:ACL_LOG_1.default,aclLog:ACL_LOG_1.default,ACL_SAVE:ACL_SAVE_1.default,aclSave:ACL_SAVE_1.default,ACL_SETUSER:ACL_SETUSER_1.default,aclSetUser:ACL_SETUSER_1.default,ACL_USERS:ACL_USERS_1.default,aclUsers:ACL_USERS_1.default,ACL_WHOAMI:ACL_WHOAMI_1.default,aclWhoAmI:ACL_WHOAMI_1.default,APPEND:APPEND_1.default,append:APPEND_1.default,ASKING:ASKING_1.default,asking:ASKING_1.default,AUTH:AUTH_1.default,auth:AUTH_1.default,BGREWRITEAOF:BGREWRITEAOF_1.default,bgRewriteAof:BGREWRITEAOF_1.default,BGSAVE:BGSAVE_1.default,bgSave:BGSAVE_1.default,BITCOUNT:BITCOUNT_1.default,bitCount:BITCOUNT_1.default,BITFIELD_RO:BITFIELD_RO_1.default,bitFieldRo:BITFIELD_RO_1.default,BITFIELD:BITFIELD_1.default,bitField:BITFIELD_1.default,BITOP:BITOP_1.default,bitOp:BITOP_1.default,BITPOS:BITPOS_1.default,bitPos:BITPOS_1.default,BLMOVE:BLMOVE_1.default,blMove:BLMOVE_1.default,BLMPOP:BLMPOP_1.default,blmPop:BLMPOP_1.default,BLPOP:BLPOP_1.default,blPop:BLPOP_1.default,BRPOP:BRPOP_1.default,brPop:BRPOP_1.default,BRPOPLPUSH:BRPOPLPUSH_1.default,brPopLPush:BRPOPLPUSH_1.default,BZMPOP:BZMPOP_1.default,bzmPop:BZMPOP_1.default,BZPOPMAX:BZPOPMAX_1.default,bzPopMax:BZPOPMAX_1.default,BZPOPMIN:BZPOPMIN_1.default,bzPopMin:BZPOPMIN_1.default,CLIENT_CACHING:CLIENT_CACHING_1.default,clientCaching:CLIENT_CACHING_1.default,CLIENT_GETNAME:CLIENT_GETNAME_1.default,clientGetName:CLIENT_GETNAME_1.default,CLIENT_GETREDIR:CLIENT_GETREDIR_1.default,clientGetRedir:CLIENT_GETREDIR_1.default,CLIENT_ID:CLIENT_ID_1.default,clientId:CLIENT_ID_1.default,CLIENT_INFO:CLIENT_INFO_1.default,clientInfo:CLIENT_INFO_1.default,CLIENT_KILL:CLIENT_KILL_1.default,clientKill:CLIENT_KILL_1.default,CLIENT_LIST:CLIENT_LIST_1.default,clientList:CLIENT_LIST_1.default,"CLIENT_NO-EVICT":CLIENT_NO_EVICT_1.default,clientNoEvict:CLIENT_NO_EVICT_1.default,"CLIENT_NO-TOUCH":CLIENT_NO_TOUCH_1.default,clientNoTouch:CLIENT_NO_TOUCH_1.default,CLIENT_PAUSE:CLIENT_PAUSE_1.default,clientPause:CLIENT_PAUSE_1.default,CLIENT_SETNAME:CLIENT_SETNAME_1.default,clientSetName:CLIENT_SETNAME_1.default,CLIENT_TRACKING:CLIENT_TRACKING_1.default,clientTracking:CLIENT_TRACKING_1.default,CLIENT_TRACKINGINFO:CLIENT_TRACKINGINFO_1.default,clientTrackingInfo:CLIENT_TRACKINGINFO_1.default,CLIENT_UNPAUSE:CLIENT_UNPAUSE_1.default,clientUnpause:CLIENT_UNPAUSE_1.default,CLUSTER_ADDSLOTS:CLUSTER_ADDSLOTS_1.default,clusterAddSlots:CLUSTER_ADDSLOTS_1.default,CLUSTER_ADDSLOTSRANGE:CLUSTER_ADDSLOTSRANGE_1.default,clusterAddSlotsRange:CLUSTER_ADDSLOTSRANGE_1.default,CLUSTER_BUMPEPOCH:CLUSTER_BUMPEPOCH_1.default,clusterBumpEpoch:CLUSTER_BUMPEPOCH_1.default,"CLUSTER_COUNT-FAILURE-REPORTS":CLUSTER_COUNT_FAILURE_REPORTS_1.default,clusterCountFailureReports:CLUSTER_COUNT_FAILURE_REPORTS_1.default,CLUSTER_COUNTKEYSINSLOT:CLUSTER_COUNTKEYSINSLOT_1.default,clusterCountKeysInSlot:CLUSTER_COUNTKEYSINSLOT_1.default,CLUSTER_DELSLOTS:CLUSTER_DELSLOTS_1.default,clusterDelSlots:CLUSTER_DELSLOTS_1.default,CLUSTER_DELSLOTSRANGE:CLUSTER_DELSLOTSRANGE_1.default,clusterDelSlotsRange:CLUSTER_DELSLOTSRANGE_1.default,CLUSTER_FAILOVER:CLUSTER_FAILOVER_1.default,clusterFailover:CLUSTER_FAILOVER_1.default,CLUSTER_FLUSHSLOTS:CLUSTER_FLUSHSLOTS_1.default,clusterFlushSlots:CLUSTER_FLUSHSLOTS_1.default,CLUSTER_FORGET:CLUSTER_FORGET_1.default,clusterForget:CLUSTER_FORGET_1.default,CLUSTER_GETKEYSINSLOT:CLUSTER_GETKEYSINSLOT_1.default,clusterGetKeysInSlot:CLUSTER_GETKEYSINSLOT_1.default,CLUSTER_INFO:CLUSTER_INFO_1.default,clusterInfo:CLUSTER_INFO_1.default,CLUSTER_KEYSLOT:CLUSTER_KEYSLOT_1.default,clusterKeySlot:CLUSTER_KEYSLOT_1.default,CLUSTER_LINKS:CLUSTER_LINKS_1.default,clusterLinks:CLUSTER_LINKS_1.default,CLUSTER_MEET:CLUSTER_MEET_1.default,clusterMeet:CLUSTER_MEET_1.default,CLUSTER_MYID:CLUSTER_MYID_1.default,clusterMyId:CLUSTER_MYID_1.default,CLUSTER_MYSHARDID:CLUSTER_MYSHARDID_1.default,clusterMyShardId:CLUSTER_MYSHARDID_1.default,CLUSTER_NODES:CLUSTER_NODES_1.default,clusterNodes:CLUSTER_NODES_1.default,CLUSTER_REPLICAS:CLUSTER_REPLICAS_1.default,clusterReplicas:CLUSTER_REPLICAS_1.default,CLUSTER_REPLICATE:CLUSTER_REPLICATE_1.default,clusterReplicate:CLUSTER_REPLICATE_1.default,CLUSTER_RESET:CLUSTER_RESET_1.default,clusterReset:CLUSTER_RESET_1.default,CLUSTER_SAVECONFIG:CLUSTER_SAVECONFIG_1.default,clusterSaveConfig:CLUSTER_SAVECONFIG_1.default,"CLUSTER_SET-CONFIG-EPOCH":CLUSTER_SET_CONFIG_EPOCH_1.default,clusterSetConfigEpoch:CLUSTER_SET_CONFIG_EPOCH_1.default,CLUSTER_SETSLOT:CLUSTER_SETSLOT_1.default,clusterSetSlot:CLUSTER_SETSLOT_1.default,CLUSTER_SLOTS:CLUSTER_SLOTS_1.default,clusterSlots:CLUSTER_SLOTS_1.default,COMMAND_COUNT:COMMAND_COUNT_1.default,commandCount:COMMAND_COUNT_1.default,COMMAND_GETKEYS:COMMAND_GETKEYS_1.default,commandGetKeys:COMMAND_GETKEYS_1.default,COMMAND_GETKEYSANDFLAGS:COMMAND_GETKEYSANDFLAGS_1.default,commandGetKeysAndFlags:COMMAND_GETKEYSANDFLAGS_1.default,COMMAND_INFO:COMMAND_INFO_1.default,commandInfo:COMMAND_INFO_1.default,COMMAND_LIST:COMMAND_LIST_1.default,commandList:COMMAND_LIST_1.default,COMMAND:COMMAND_1.default,command:COMMAND_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_RESETASTAT:CONFIG_RESETSTAT_1.default,configResetStat:CONFIG_RESETSTAT_1.default,CONFIG_REWRITE:CONFIG_REWRITE_1.default,configRewrite:CONFIG_REWRITE_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,COPY:COPY_1.default,copy:COPY_1.default,DBSIZE:DBSIZE_1.default,dbSize:DBSIZE_1.default,DECR:DECR_1.default,decr:DECR_1.default,DECRBY:DECRBY_1.default,decrBy:DECRBY_1.default,DEL:DEL_1.default,del:DEL_1.default,DELEX:DELEX_1.default,delEx:DELEX_1.default,DIGEST:DIGEST_1.default,digest:DIGEST_1.default,DUMP:DUMP_1.default,dump:DUMP_1.default,ECHO:ECHO_1.default,echo:ECHO_1.default,EVAL_RO:EVAL_RO_1.default,evalRo:EVAL_RO_1.default,EVAL:EVAL_1.default,eval:EVAL_1.default,EVALSHA_RO:EVALSHA_RO_1.default,evalShaRo:EVALSHA_RO_1.default,EVALSHA:EVALSHA_1.default,evalSha:EVALSHA_1.default,EXISTS:EXISTS_1.default,exists:EXISTS_1.default,EXPIRE:EXPIRE_1.default,expire:EXPIRE_1.default,EXPIREAT:EXPIREAT_1.default,expireAt:EXPIREAT_1.default,EXPIRETIME:EXPIRETIME_1.default,expireTime:EXPIRETIME_1.default,FLUSHALL:FLUSHALL_1.default,flushAll:FLUSHALL_1.default,FLUSHDB:FLUSHDB_1.default,flushDb:FLUSHDB_1.default,FCALL:FCALL_1.default,fCall:FCALL_1.default,FCALL_RO:FCALL_RO_1.default,fCallRo:FCALL_RO_1.default,FUNCTION_DELETE:FUNCTION_DELETE_1.default,functionDelete:FUNCTION_DELETE_1.default,FUNCTION_DUMP:FUNCTION_DUMP_1.default,functionDump:FUNCTION_DUMP_1.default,FUNCTION_FLUSH:FUNCTION_FLUSH_1.default,functionFlush:FUNCTION_FLUSH_1.default,FUNCTION_KILL:FUNCTION_KILL_1.default,functionKill:FUNCTION_KILL_1.default,FUNCTION_LIST_WITHCODE:FUNCTION_LIST_WITHCODE_1.default,functionListWithCode:FUNCTION_LIST_WITHCODE_1.default,FUNCTION_LIST:FUNCTION_LIST_1.default,functionList:FUNCTION_LIST_1.default,FUNCTION_LOAD:FUNCTION_LOAD_1.default,functionLoad:FUNCTION_LOAD_1.default,FUNCTION_RESTORE:FUNCTION_RESTORE_1.default,functionRestore:FUNCTION_RESTORE_1.default,FUNCTION_STATS:FUNCTION_STATS_1.default,functionStats:FUNCTION_STATS_1.default,GEOADD:GEOADD_1.default,geoAdd:GEOADD_1.default,GEODIST:GEODIST_1.default,geoDist:GEODIST_1.default,GEOHASH:GEOHASH_1.default,geoHash:GEOHASH_1.default,GEOPOS:GEOPOS_1.default,geoPos:GEOPOS_1.default,GEORADIUS_RO_WITH:GEORADIUS_RO_WITH_1.default,geoRadiusRoWith:GEORADIUS_RO_WITH_1.default,GEORADIUS_RO:GEORADIUS_RO_1.default,geoRadiusRo:GEORADIUS_RO_1.default,GEORADIUS_STORE:GEORADIUS_STORE_1.default,geoRadiusStore:GEORADIUS_STORE_1.default,GEORADIUS_WITH:GEORADIUS_WITH_1.default,geoRadiusWith:GEORADIUS_WITH_1.default,GEORADIUS:GEORADIUS_1.default,geoRadius:GEORADIUS_1.default,GEORADIUSBYMEMBER_RO_WITH:GEORADIUSBYMEMBER_RO_WITH_1.default,geoRadiusByMemberRoWith:GEORADIUSBYMEMBER_RO_WITH_1.default,GEORADIUSBYMEMBER_RO:GEORADIUSBYMEMBER_RO_1.default,geoRadiusByMemberRo:GEORADIUSBYMEMBER_RO_1.default,GEORADIUSBYMEMBER_STORE:GEORADIUSBYMEMBER_STORE_1.default,geoRadiusByMemberStore:GEORADIUSBYMEMBER_STORE_1.default,GEORADIUSBYMEMBER_WITH:GEORADIUSBYMEMBER_WITH_1.default,geoRadiusByMemberWith:GEORADIUSBYMEMBER_WITH_1.default,GEORADIUSBYMEMBER:GEORADIUSBYMEMBER_1.default,geoRadiusByMember:GEORADIUSBYMEMBER_1.default,GEOSEARCH_WITH:GEOSEARCH_WITH_1.default,geoSearchWith:GEOSEARCH_WITH_1.default,GEOSEARCH:GEOSEARCH_1.default,geoSearch:GEOSEARCH_1.default,GEOSEARCHSTORE:GEOSEARCHSTORE_1.default,geoSearchStore:GEOSEARCHSTORE_1.default,GET:GET_1.default,get:GET_1.default,GETBIT:GETBIT_1.default,getBit:GETBIT_1.default,GETDEL:GETDEL_1.default,getDel:GETDEL_1.default,GETEX:GETEX_1.default,getEx:GETEX_1.default,GETRANGE:GETRANGE_1.default,getRange:GETRANGE_1.default,GETSET:GETSET_1.default,getSet:GETSET_1.default,HDEL:HDEL_1.default,hDel:HDEL_1.default,HELLO:HELLO_1.default,hello:HELLO_1.default,HEXISTS:HEXISTS_1.default,hExists:HEXISTS_1.default,HEXPIRE:HEXPIRE_1.default,hExpire:HEXPIRE_1.default,HEXPIREAT:HEXPIREAT_1.default,hExpireAt:HEXPIREAT_1.default,HEXPIRETIME:HEXPIRETIME_1.default,hExpireTime:HEXPIRETIME_1.default,HGET:HGET_1.default,hGet:HGET_1.default,HGETALL:HGETALL_1.default,hGetAll:HGETALL_1.default,HGETDEL:HGETDEL_1.default,hGetDel:HGETDEL_1.default,HGETEX:HGETEX_1.default,hGetEx:HGETEX_1.default,HINCRBY:HINCRBY_1.default,hIncrBy:HINCRBY_1.default,HINCRBYFLOAT:HINCRBYFLOAT_1.default,hIncrByFloat:HINCRBYFLOAT_1.default,HKEYS:HKEYS_1.default,hKeys:HKEYS_1.default,HLEN:HLEN_1.default,hLen:HLEN_1.default,HMGET:HMGET_1.default,hmGet:HMGET_1.default,HPERSIST:HPERSIST_1.default,hPersist:HPERSIST_1.default,HPEXPIRE:HPEXPIRE_1.default,hpExpire:HPEXPIRE_1.default,HPEXPIREAT:HPEXPIREAT_1.default,hpExpireAt:HPEXPIREAT_1.default,HPEXPIRETIME:HPEXPIRETIME_1.default,hpExpireTime:HPEXPIRETIME_1.default,HPTTL:HPTTL_1.default,hpTTL:HPTTL_1.default,HRANDFIELD_COUNT_WITHVALUES:HRANDFIELD_COUNT_WITHVALUES_1.default,hRandFieldCountWithValues:HRANDFIELD_COUNT_WITHVALUES_1.default,HRANDFIELD_COUNT:HRANDFIELD_COUNT_1.default,hRandFieldCount:HRANDFIELD_COUNT_1.default,HRANDFIELD:HRANDFIELD_1.default,hRandField:HRANDFIELD_1.default,HSCAN:HSCAN_1.default,hScan:HSCAN_1.default,HSCAN_NOVALUES:HSCAN_NOVALUES_1.default,hScanNoValues:HSCAN_NOVALUES_1.default,HSET:HSET_1.default,hSet:HSET_1.default,HSETEX:HSETEX_1.default,hSetEx:HSETEX_1.default,HSETNX:HSETNX_1.default,hSetNX:HSETNX_1.default,HSTRLEN:HSTRLEN_1.default,hStrLen:HSTRLEN_1.default,HTTL:HTTL_1.default,hTTL:HTTL_1.default,HVALS:HVALS_1.default,hVals:HVALS_1.default,INCR:INCR_1.default,incr:INCR_1.default,INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INCRBYFLOAT:INCRBYFLOAT_1.default,incrByFloat:INCRBYFLOAT_1.default,INFO:INFO_1.default,info:INFO_1.default,KEYS:KEYS_1.default,keys:KEYS_1.default,LASTSAVE:LASTSAVE_1.default,lastSave:LASTSAVE_1.default,LATENCY_DOCTOR:LATENCY_DOCTOR_1.default,latencyDoctor:LATENCY_DOCTOR_1.default,LATENCY_GRAPH:LATENCY_GRAPH_1.default,latencyGraph:LATENCY_GRAPH_1.default,LATENCY_HISTORY:LATENCY_HISTORY_1.default,latencyHistory:LATENCY_HISTORY_1.default,LATENCY_HISTOGRAM:LATENCY_HISTOGRAM_1.default,latencyHistogram:LATENCY_HISTOGRAM_1.default,LATENCY_LATEST:LATENCY_LATEST_1.default,latencyLatest:LATENCY_LATEST_1.default,LATENCY_RESET:LATENCY_RESET_1.default,latencyReset:LATENCY_RESET_1.default,LCS_IDX_WITHMATCHLEN:LCS_IDX_WITHMATCHLEN_1.default,lcsIdxWithMatchLen:LCS_IDX_WITHMATCHLEN_1.default,LCS_IDX:LCS_IDX_1.default,lcsIdx:LCS_IDX_1.default,LCS_LEN:LCS_LEN_1.default,lcsLen:LCS_LEN_1.default,LCS:LCS_1.default,lcs:LCS_1.default,LINDEX:LINDEX_1.default,lIndex:LINDEX_1.default,LINSERT:LINSERT_1.default,lInsert:LINSERT_1.default,LLEN:LLEN_1.default,lLen:LLEN_1.default,LMOVE:LMOVE_1.default,lMove:LMOVE_1.default,LMPOP:LMPOP_1.default,lmPop:LMPOP_1.default,LOLWUT:LOLWUT_1.default,LPOP_COUNT:LPOP_COUNT_1.default,lPopCount:LPOP_COUNT_1.default,LPOP:LPOP_1.default,lPop:LPOP_1.default,LPOS_COUNT:LPOS_COUNT_1.default,lPosCount:LPOS_COUNT_1.default,LPOS:LPOS_1.default,lPos:LPOS_1.default,LPUSH:LPUSH_1.default,lPush:LPUSH_1.default,LPUSHX:LPUSHX_1.default,lPushX:LPUSHX_1.default,LRANGE:LRANGE_1.default,lRange:LRANGE_1.default,LREM:LREM_1.default,lRem:LREM_1.default,LSET:LSET_1.default,lSet:LSET_1.default,LTRIM:LTRIM_1.default,lTrim:LTRIM_1.default,MEMORY_DOCTOR:MEMORY_DOCTOR_1.default,memoryDoctor:MEMORY_DOCTOR_1.default,"MEMORY_MALLOC-STATS":MEMORY_MALLOC_STATS_1.default,memoryMallocStats:MEMORY_MALLOC_STATS_1.default,MEMORY_PURGE:MEMORY_PURGE_1.default,memoryPurge:MEMORY_PURGE_1.default,MEMORY_STATS:MEMORY_STATS_1.default,memoryStats:MEMORY_STATS_1.default,MEMORY_USAGE:MEMORY_USAGE_1.default,memoryUsage:MEMORY_USAGE_1.default,MGET:MGET_1.default,mGet:MGET_1.default,MIGRATE:MIGRATE_1.default,migrate:MIGRATE_1.default,MODULE_LIST:MODULE_LIST_1.default,moduleList:MODULE_LIST_1.default,MODULE_LOAD:MODULE_LOAD_1.default,moduleLoad:MODULE_LOAD_1.default,MODULE_UNLOAD:MODULE_UNLOAD_1.default,moduleUnload:MODULE_UNLOAD_1.default,MOVE:MOVE_1.default,move:MOVE_1.default,MSET:MSET_1.default,mSet:MSET_1.default,MSETEX:MSETEX_1.default,mSetEx:MSETEX_1.default,MSETNX:MSETNX_1.default,mSetNX:MSETNX_1.default,OBJECT_ENCODING:OBJECT_ENCODING_1.default,objectEncoding:OBJECT_ENCODING_1.default,OBJECT_FREQ:OBJECT_FREQ_1.default,objectFreq:OBJECT_FREQ_1.default,OBJECT_IDLETIME:OBJECT_IDLETIME_1.default,objectIdleTime:OBJECT_IDLETIME_1.default,OBJECT_REFCOUNT:OBJECT_REFCOUNT_1.default,objectRefCount:OBJECT_REFCOUNT_1.default,PERSIST:PERSIST_1.default,persist:PERSIST_1.default,PEXPIRE:PEXPIRE_1.default,pExpire:PEXPIRE_1.default,PEXPIREAT:PEXPIREAT_1.default,pExpireAt:PEXPIREAT_1.default,PEXPIRETIME:PEXPIRETIME_1.default,pExpireTime:PEXPIRETIME_1.default,PFADD:PFADD_1.default,pfAdd:PFADD_1.default,PFCOUNT:PFCOUNT_1.default,pfCount:PFCOUNT_1.default,PFMERGE:PFMERGE_1.default,pfMerge:PFMERGE_1.default,PING:PING_1.default,ping:PING_1.default,PSETEX:PSETEX_1.default,pSetEx:PSETEX_1.default,PTTL:PTTL_1.default,pTTL:PTTL_1.default,PUBLISH:PUBLISH_1.default,publish:PUBLISH_1.default,PUBSUB_CHANNELS:PUBSUB_CHANNELS_1.default,pubSubChannels:PUBSUB_CHANNELS_1.default,PUBSUB_NUMPAT:PUBSUB_NUMPAT_1.default,pubSubNumPat:PUBSUB_NUMPAT_1.default,PUBSUB_NUMSUB:PUBSUB_NUMSUB_1.default,pubSubNumSub:PUBSUB_NUMSUB_1.default,PUBSUB_SHARDNUMSUB:PUBSUB_SHARDNUMSUB_1.default,pubSubShardNumSub:PUBSUB_SHARDNUMSUB_1.default,PUBSUB_SHARDCHANNELS:PUBSUB_SHARDCHANNELS_1.default,pubSubShardChannels:PUBSUB_SHARDCHANNELS_1.default,RANDOMKEY:RANDOMKEY_1.default,randomKey:RANDOMKEY_1.default,READONLY:READONLY_1.default,readonly:READONLY_1.default,RENAME:RENAME_1.default,rename:RENAME_1.default,RENAMENX:RENAMENX_1.default,renameNX:RENAMENX_1.default,REPLICAOF:REPLICAOF_1.default,replicaOf:REPLICAOF_1.default,"RESTORE-ASKING":RESTORE_ASKING_1.default,restoreAsking:RESTORE_ASKING_1.default,RESTORE:RESTORE_1.default,restore:RESTORE_1.default,RPOP_COUNT:RPOP_COUNT_1.default,rPopCount:RPOP_COUNT_1.default,ROLE:ROLE_1.default,role:ROLE_1.default,RPOP:RPOP_1.default,rPop:RPOP_1.default,RPOPLPUSH:RPOPLPUSH_1.default,rPopLPush:RPOPLPUSH_1.default,RPUSH:RPUSH_1.default,rPush:RPUSH_1.default,RPUSHX:RPUSHX_1.default,rPushX:RPUSHX_1.default,SADD:SADD_1.default,sAdd:SADD_1.default,SCAN:SCAN_1.default,scan:SCAN_1.default,SCARD:SCARD_1.default,sCard:SCARD_1.default,SCRIPT_DEBUG:SCRIPT_DEBUG_1.default,scriptDebug:SCRIPT_DEBUG_1.default,SCRIPT_EXISTS:SCRIPT_EXISTS_1.default,scriptExists:SCRIPT_EXISTS_1.default,SCRIPT_FLUSH:SCRIPT_FLUSH_1.default,scriptFlush:SCRIPT_FLUSH_1.default,SCRIPT_KILL:SCRIPT_KILL_1.default,scriptKill:SCRIPT_KILL_1.default,SCRIPT_LOAD:SCRIPT_LOAD_1.default,scriptLoad:SCRIPT_LOAD_1.default,SDIFF:SDIFF_1.default,sDiff:SDIFF_1.default,SDIFFSTORE:SDIFFSTORE_1.default,sDiffStore:SDIFFSTORE_1.default,SET:SET_1.default,set:SET_1.default,SETBIT:SETBIT_1.default,setBit:SETBIT_1.default,SETEX:SETEX_1.default,setEx:SETEX_1.default,SETNX:SETNX_1.default,setNX:SETNX_1.default,SETRANGE:SETRANGE_1.default,setRange:SETRANGE_1.default,SINTER:SINTER_1.default,sInter:SINTER_1.default,SINTERCARD:SINTERCARD_1.default,sInterCard:SINTERCARD_1.default,SINTERSTORE:SINTERSTORE_1.default,sInterStore:SINTERSTORE_1.default,SISMEMBER:SISMEMBER_1.default,sIsMember:SISMEMBER_1.default,SMEMBERS:SMEMBERS_1.default,sMembers:SMEMBERS_1.default,SMISMEMBER:SMISMEMBER_1.default,smIsMember:SMISMEMBER_1.default,SMOVE:SMOVE_1.default,sMove:SMOVE_1.default,SORT_RO:SORT_RO_1.default,sortRo:SORT_RO_1.default,SORT_STORE:SORT_STORE_1.default,sortStore:SORT_STORE_1.default,SORT:SORT_1.default,sort:SORT_1.default,SPOP_COUNT:SPOP_COUNT_1.default,sPopCount:SPOP_COUNT_1.default,SPOP:SPOP_1.default,sPop:SPOP_1.default,SPUBLISH:SPUBLISH_1.default,sPublish:SPUBLISH_1.default,SRANDMEMBER_COUNT:SRANDMEMBER_COUNT_1.default,sRandMemberCount:SRANDMEMBER_COUNT_1.default,SRANDMEMBER:SRANDMEMBER_1.default,sRandMember:SRANDMEMBER_1.default,SREM:SREM_1.default,sRem:SREM_1.default,SSCAN:SSCAN_1.default,sScan:SSCAN_1.default,STRLEN:STRLEN_1.default,strLen:STRLEN_1.default,SUNION:SUNION_1.default,sUnion:SUNION_1.default,SUNIONSTORE:SUNIONSTORE_1.default,sUnionStore:SUNIONSTORE_1.default,SWAPDB:SWAPDB_1.default,swapDb:SWAPDB_1.default,TIME:TIME_1.default,time:TIME_1.default,TOUCH:TOUCH_1.default,touch:TOUCH_1.default,TTL:TTL_1.default,ttl:TTL_1.default,TYPE:TYPE_1.default,type:TYPE_1.default,UNLINK:UNLINK_1.default,unlink:UNLINK_1.default,WAIT:WAIT_1.default,wait:WAIT_1.default,XACK:XACK_1.default,xAck:XACK_1.default,XACKDEL:XACKDEL_1.default,xAckDel:XACKDEL_1.default,XADD_NOMKSTREAM:XADD_NOMKSTREAM_1.default,xAddNoMkStream:XADD_NOMKSTREAM_1.default,XADD:XADD_1.default,xAdd:XADD_1.default,XAUTOCLAIM_JUSTID:XAUTOCLAIM_JUSTID_1.default,xAutoClaimJustId:XAUTOCLAIM_JUSTID_1.default,XAUTOCLAIM:XAUTOCLAIM_1.default,xAutoClaim:XAUTOCLAIM_1.default,XCLAIM_JUSTID:XCLAIM_JUSTID_1.default,xClaimJustId:XCLAIM_JUSTID_1.default,XCLAIM:XCLAIM_1.default,xClaim:XCLAIM_1.default,XDEL:XDEL_1.default,xDel:XDEL_1.default,XDELEX:XDELEX_1.default,xDelEx:XDELEX_1.default,XGROUP_CREATE:XGROUP_CREATE_1.default,xGroupCreate:XGROUP_CREATE_1.default,XGROUP_CREATECONSUMER:XGROUP_CREATECONSUMER_1.default,xGroupCreateConsumer:XGROUP_CREATECONSUMER_1.default,XGROUP_DELCONSUMER:XGROUP_DELCONSUMER_1.default,xGroupDelConsumer:XGROUP_DELCONSUMER_1.default,XGROUP_DESTROY:XGROUP_DESTROY_1.default,xGroupDestroy:XGROUP_DESTROY_1.default,XGROUP_SETID:XGROUP_SETID_1.default,xGroupSetId:XGROUP_SETID_1.default,XINFO_CONSUMERS:XINFO_CONSUMERS_1.default,xInfoConsumers:XINFO_CONSUMERS_1.default,XINFO_GROUPS:XINFO_GROUPS_1.default,xInfoGroups:XINFO_GROUPS_1.default,XINFO_STREAM:XINFO_STREAM_1.default,xInfoStream:XINFO_STREAM_1.default,XLEN:XLEN_1.default,xLen:XLEN_1.default,XPENDING_RANGE:XPENDING_RANGE_1.default,xPendingRange:XPENDING_RANGE_1.default,XPENDING:XPENDING_1.default,xPending:XPENDING_1.default,XRANGE:XRANGE_1.default,xRange:XRANGE_1.default,XREAD:XREAD_1.default,xRead:XREAD_1.default,XREADGROUP:XREADGROUP_1.default,xReadGroup:XREADGROUP_1.default,XREVRANGE:XREVRANGE_1.default,xRevRange:XREVRANGE_1.default,XSETID:XSETID_1.default,xSetId:XSETID_1.default,XTRIM:XTRIM_1.default,xTrim:XTRIM_1.default,ZADD_INCR:ZADD_INCR_1.default,zAddIncr:ZADD_INCR_1.default,ZADD:ZADD_1.default,zAdd:ZADD_1.default,ZCARD:ZCARD_1.default,zCard:ZCARD_1.default,ZCOUNT:ZCOUNT_1.default,zCount:ZCOUNT_1.default,ZDIFF_WITHSCORES:ZDIFF_WITHSCORES_1.default,zDiffWithScores:ZDIFF_WITHSCORES_1.default,ZDIFF:ZDIFF_1.default,zDiff:ZDIFF_1.default,ZDIFFSTORE:ZDIFFSTORE_1.default,zDiffStore:ZDIFFSTORE_1.default,ZINCRBY:ZINCRBY_1.default,zIncrBy:ZINCRBY_1.default,ZINTER_WITHSCORES:ZINTER_WITHSCORES_1.default,zInterWithScores:ZINTER_WITHSCORES_1.default,ZINTER:ZINTER_1.default,zInter:ZINTER_1.default,ZINTERCARD:ZINTERCARD_1.default,zInterCard:ZINTERCARD_1.default,ZINTERSTORE:ZINTERSTORE_1.default,zInterStore:ZINTERSTORE_1.default,ZLEXCOUNT:ZLEXCOUNT_1.default,zLexCount:ZLEXCOUNT_1.default,ZMPOP:ZMPOP_1.default,zmPop:ZMPOP_1.default,ZMSCORE:ZMSCORE_1.default,zmScore:ZMSCORE_1.default,ZPOPMAX_COUNT:ZPOPMAX_COUNT_1.default,zPopMaxCount:ZPOPMAX_COUNT_1.default,ZPOPMAX:ZPOPMAX_1.default,zPopMax:ZPOPMAX_1.default,ZPOPMIN_COUNT:ZPOPMIN_COUNT_1.default,zPopMinCount:ZPOPMIN_COUNT_1.default,ZPOPMIN:ZPOPMIN_1.default,zPopMin:ZPOPMIN_1.default,ZRANDMEMBER_COUNT_WITHSCORES:ZRANDMEMBER_COUNT_WITHSCORES_1.default,zRandMemberCountWithScores:ZRANDMEMBER_COUNT_WITHSCORES_1.default,ZRANDMEMBER_COUNT:ZRANDMEMBER_COUNT_1.default,zRandMemberCount:ZRANDMEMBER_COUNT_1.default,ZRANDMEMBER:ZRANDMEMBER_1.default,zRandMember:ZRANDMEMBER_1.default,ZRANGE_WITHSCORES:ZRANGE_WITHSCORES_1.default,zRangeWithScores:ZRANGE_WITHSCORES_1.default,ZRANGE:ZRANGE_1.default,zRange:ZRANGE_1.default,ZRANGEBYLEX:ZRANGEBYLEX_1.default,zRangeByLex:ZRANGEBYLEX_1.default,ZRANGEBYSCORE_WITHSCORES:ZRANGEBYSCORE_WITHSCORES_1.default,zRangeByScoreWithScores:ZRANGEBYSCORE_WITHSCORES_1.default,ZRANGEBYSCORE:ZRANGEBYSCORE_1.default,zRangeByScore:ZRANGEBYSCORE_1.default,ZRANGESTORE:ZRANGESTORE_1.default,zRangeStore:ZRANGESTORE_1.default,ZRANK_WITHSCORE:ZRANK_WITHSCORE_1.default,zRankWithScore:ZRANK_WITHSCORE_1.default,ZRANK:ZRANK_1.default,zRank:ZRANK_1.default,ZREM:ZREM_1.default,zRem:ZREM_1.default,ZREMRANGEBYLEX:ZREMRANGEBYLEX_1.default,zRemRangeByLex:ZREMRANGEBYLEX_1.default,ZREMRANGEBYRANK:ZREMRANGEBYRANK_1.default,zRemRangeByRank:ZREMRANGEBYRANK_1.default,ZREMRANGEBYSCORE:ZREMRANGEBYSCORE_1.default,zRemRangeByScore:ZREMRANGEBYSCORE_1.default,ZREVRANK:ZREVRANK_1.default,zRevRank:ZREVRANK_1.default,ZSCAN:ZSCAN_1.default,zScan:ZSCAN_1.default,ZSCORE:ZSCORE_1.default,zScore:ZSCORE_1.default,ZUNION_WITHSCORES:ZUNION_WITHSCORES_1.default,zUnionWithScores:ZUNION_WITHSCORES_1.default,ZUNION:ZUNION_1.default,zUnion:ZUNION_1.default,ZUNIONSTORE:ZUNIONSTORE_1.default,zUnionStore:ZUNIONSTORE_1.default,VADD:VADD_1.default,vAdd:VADD_1.default,VCARD:VCARD_1.default,vCard:VCARD_1.default,VDIM:VDIM_1.default,vDim:VDIM_1.default,VEMB:VEMB_1.default,vEmb:VEMB_1.default,VEMB_RAW:VEMB_RAW_1.default,vEmbRaw:VEMB_RAW_1.default,VGETATTR:VGETATTR_1.default,vGetAttr:VGETATTR_1.default,VINFO:VINFO_1.default,vInfo:VINFO_1.default,VLINKS:VLINKS_1.default,vLinks:VLINKS_1.default,VLINKS_WITHSCORES:VLINKS_WITHSCORES_1.default,vLinksWithScores:VLINKS_WITHSCORES_1.default,VRANDMEMBER:VRANDMEMBER_1.default,vRandMember:VRANDMEMBER_1.default,VREM:VREM_1.default,vRem:VREM_1.default,VSETATTR:VSETATTR_1.default,vSetAttr:VSETATTR_1.default,VSIM:VSIM_1.default,vSim:VSIM_1.default,VSIM_WITHSCORES:VSIM_WITHSCORES_1.default,vSimWithScores:VSIM_WITHSCORES_1.default}});var require_enterprise_maintenance_manager=__commonJS((exports)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.emitDiagnostics=exports.dbgMaintenance=exports.MAINTENANCE_EVENTS=void 0;var net_1=__require("net"),promises_1=__require("dns/promises"),node_assert_1=__importDefault(__require("node:assert")),promises_2=__require("node:timers/promises"),node_diagnostics_channel_1=__importDefault(__require("node:diagnostics_channel"));exports.MAINTENANCE_EVENTS={PAUSE_WRITING:"pause-writing",RESUME_WRITING:"resume-writing",TIMEOUTS_UPDATE:"timeouts-update"};var PN={MOVING:"MOVING",MIGRATING:"MIGRATING",MIGRATED:"MIGRATED",FAILING_OVER:"FAILING_OVER",FAILED_OVER:"FAILED_OVER"},dbgMaintenance=(...args2)=>{if(!process.env.REDIS_DEBUG_MAINTENANCE)return;return console.log("[MNT]",...args2)};exports.dbgMaintenance=dbgMaintenance;var emitDiagnostics=(event)=>{if(!process.env.REDIS_EMIT_DIAGNOSTICS)return;node_diagnostics_channel_1.default.channel("redis.maintenance").publish(event)};exports.emitDiagnostics=emitDiagnostics;class EnterpriseMaintenanceManager{#commandsQueue;#options;#isMaintenance=0;#client;static setupDefaultMaintOptions(options){if(options.maintNotifications===void 0)options.maintNotifications=options?.RESP===3?"auto":"disabled";if(options.maintEndpointType===void 0)options.maintEndpointType="auto";if(options.maintRelaxedSocketTimeout===void 0)options.maintRelaxedSocketTimeout=1e4;if(options.maintRelaxedCommandTimeout===void 0)options.maintRelaxedCommandTimeout=1e4}static async getHandshakeCommand(options){if(options.maintNotifications==="disabled")return;let host=options.url?new URL(options.url).hostname:options.socket?.host;if(!host)return;let tls=options.socket?.tls??!1;return{cmd:["CLIENT","MAINT_NOTIFICATIONS","ON","moving-endpoint-type",await determineEndpoint(tls,host,options)],errorHandler:(error)=>{if((0,exports.dbgMaintenance)("handshake failed:",error),options.maintNotifications==="enabled")throw error}}}constructor(commandsQueue,client,options){this.#commandsQueue=commandsQueue,this.#options=options,this.#client=client,this.#commandsQueue.addPushHandler(this.#onPush)}#onPush=(push)=>{if((0,exports.dbgMaintenance)("ONPUSH:",push.map(String)),!Array.isArray(push)||!["MOVING","MIGRATING","MIGRATED","FAILING_OVER","FAILED_OVER"].includes(String(push[0])))return!1;let type=String(push[0]);switch((0,exports.emitDiagnostics)({type,timestamp:Date.now(),data:{push:push.map(String)}}),type){case PN.MOVING:{let afterSeconds=push[2],url=push[3]?String(push[3]):null;return(0,exports.dbgMaintenance)("Received MOVING:",afterSeconds,url),this.#onMoving(afterSeconds,url),!0}case PN.MIGRATING:case PN.FAILING_OVER:return(0,exports.dbgMaintenance)("Received MIGRATING|FAILING_OVER"),this.#onMigrating(),!0;case PN.MIGRATED:case PN.FAILED_OVER:return(0,exports.dbgMaintenance)("Received MIGRATED|FAILED_OVER"),this.#onMigrated(),!0}return!1};#onMoving=async(afterSeconds,url)=>{this.#onMigrating();let host,port;if(url===null){(0,node_assert_1.default)(this.#options.maintEndpointType==="none"),(0,node_assert_1.default)(this.#options.socket!==void 0),(0,node_assert_1.default)("host"in this.#options.socket),(0,node_assert_1.default)(typeof this.#options.socket.host==="string"),host=this.#options.socket.host,(0,node_assert_1.default)(typeof this.#options.socket.port==="number"),port=this.#options.socket.port;let waitTime=afterSeconds*1000/2;(0,exports.dbgMaintenance)(`Wait for ${waitTime}ms`),await(0,promises_2.setTimeout)(waitTime)}else{let split4=url.split(":");host=split4[0],port=Number(split4[1])}(0,exports.dbgMaintenance)("Pausing writing of new commands to old socket"),this.#client._pause(),(0,exports.dbgMaintenance)("Creating new tmp client");let start3=performance.now();if(this.#options.url){let u=new URL(this.#options.url);u.hostname=host,u.port=String(port),this.#options.url=u.toString()}else this.#options.socket={...this.#options.socket,host,port};let tmpClient=this.#client.duplicate();tmpClient.on("error",(error)=>{(0,exports.dbgMaintenance)("[ERR]",error)}),(0,exports.dbgMaintenance)(`Tmp client created in ${(performance.now()-start3).toFixed(2)}ms`),(0,exports.dbgMaintenance)(`Set timeout for tmp client to ${this.#options.maintRelaxedSocketTimeout}`),tmpClient._maintenanceUpdate({relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout}),(0,exports.dbgMaintenance)(`Connecting tmp client: ${host}:${port}`),start3=performance.now(),await tmpClient.connect(),(0,exports.dbgMaintenance)(`Connected to tmp client in ${(performance.now()-start3).toFixed(2)}ms`),(0,exports.dbgMaintenance)("Wait for all in-flight commands to complete"),await this.#commandsQueue.waitForInflightCommandsToComplete(),(0,exports.dbgMaintenance)("In-flight commands completed"),(0,exports.dbgMaintenance)("Swap client sockets...");let oldSocket=this.#client._ejectSocket(),newSocket=tmpClient._ejectSocket();this.#client._insertSocket(newSocket),tmpClient._insertSocket(oldSocket),tmpClient.destroy(),(0,exports.dbgMaintenance)("Swap client sockets done."),(0,exports.dbgMaintenance)("Resume writing"),this.#client._unpause(),this.#onMigrated()};#onMigrating=()=>{if(this.#isMaintenance++,this.#isMaintenance>1){(0,exports.dbgMaintenance)("Timeout relaxation already done");return}let update5={relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout};this.#client._maintenanceUpdate(update5)};#onMigrated=()=>{if(this.#isMaintenance=Math.max(this.#isMaintenance-1,0),this.#isMaintenance>0){(0,exports.dbgMaintenance)("Not ready to unrelax timeouts yet");return}let update5={relaxedCommandTimeout:void 0,relaxedSocketTimeout:void 0};this.#client._maintenanceUpdate(update5)}}exports.default=EnterpriseMaintenanceManager;function isPrivateIP(ip){let version=(0,net_1.isIP)(ip);if(version===4){let octets=ip.split(".").map(Number);return octets[0]===10||octets[0]===172&&octets[1]>=16&&octets[1]<=31||octets[0]===192&&octets[1]===168}if(version===6)return ip.startsWith("fc")||ip.startsWith("fd")||ip==="::1"||ip.startsWith("fe80");return!1}async function determineEndpoint(tlsEnabled,host,options){if((0,node_assert_1.default)(options.maintEndpointType!==void 0),options.maintEndpointType!=="auto")return(0,exports.dbgMaintenance)(`Determine endpoint type: ${options.maintEndpointType}`),options.maintEndpointType;let ip=(0,net_1.isIP)(host)?host:(await(0,promises_1.lookup)(host,{family:0})).address,isPrivate=isPrivateIP(ip),result;if(tlsEnabled)result=isPrivate?"internal-fqdn":"external-fqdn";else result=isPrivate?"internal-ip":"external-ip";return(0,exports.dbgMaintenance)(`Determine endpoint type: ${result}`),result}});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"),enterprise_maintenance_manager_1=require_enterprise_maintenance_manager();class RedisSocket extends node_events_1.EventEmitter{#initiator;#connectTimeout;#reconnectStrategy;#socketFactory;#socketTimeout;#maintenanceTimeout;#socket;#isOpen=!1;get isOpen(){return this.#isOpen}#isReady=!1;get isReady(){return this.#isReady}#isSocketUnrefed=!1;#socketEpoch=0;get socketEpoch(){return this.#socketEpoch}constructor(initiator,options){super();this.#initiator=initiator,this.#connectTimeout=options?.connectTimeout??5000,this.#reconnectStrategy=this.#createReconnectStrategy(options),this.#socketFactory=this.#createSocketFactory(options),this.#socketTimeout=options?.socketTimeout}#createReconnectStrategy(options){let strategy=options?.reconnectStrategy;if(strategy===!1||typeof strategy==="number")return()=>strategy;if(strategy)return(retries,cause3)=>{try{let retryIn=strategy(retries,cause3);if(retryIn!==!1&&!(retryIn instanceof Error)&&typeof retryIn!=="number")throw TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`);return retryIn}catch(err){return this.emit("error",err),this.defaultReconnectStrategy(retries,err)}};return this.defaultReconnectStrategy}#createSocketFactory(options){if(options?.tls===!0){let withDefaults2={...options,port:options?.port??6379,noDelay:options?.noDelay??!0,keepAlive:options?.keepAlive??!0,keepAliveInitialDelay:options?.keepAliveInitialDelay??5000,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_tls_1.default.connect(withDefaults2)},event:"secureConnect"}}if(options&&"path"in options){let withDefaults2={...options,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_net_1.default.createConnection(withDefaults2)},event:"connect"}}let withDefaults={...options,port:options?.port??6379,noDelay:options?.noDelay??!0,keepAlive:options?.keepAlive??!0,keepAliveInitialDelay:options?.keepAliveInitialDelay??5000,timeout:void 0,onread:void 0,readable:!0,writable:!0};return{create(){return node_net_1.default.createConnection(withDefaults)},event:"connect"}}#shouldReconnect(retries,cause3){let retryIn=this.#reconnectStrategy(retries,cause3);if(retryIn===!1)return this.#isOpen=!1,this.emit("error",cause3),cause3;else if(retryIn instanceof Error)return this.#isOpen=!1,this.emit("error",cause3),new errors_1.ReconnectStrategyError(retryIn,cause3);return retryIn}async connect(){if(this.#isOpen)throw Error("Socket already opened");return this.#isOpen=!0,this.#connect()}async#connect(){let retries=0;do try{this.#socket=await this.#createSocket(),this.emit("connect");try{if(await this.#initiator(),!this.#socket||this.#socket.destroyed||!this.#socket.readable||!this.#socket.writable){let retryIn=this.#shouldReconnect(retries++,new errors_1.SocketClosedUnexpectedlyError);if(typeof retryIn!=="number")throw retryIn;await(0,promises_1.setTimeout)(retryIn),this.emit("reconnecting");continue}}catch(err){throw this.#socket.destroy(),this.#socket=void 0,err}this.#isReady=!0,this.#socketEpoch++,this.emit("ready")}catch(err){let retryIn=this.#shouldReconnect(retries++,err);if(typeof retryIn!=="number")throw retryIn;this.emit("error",err),await(0,promises_1.setTimeout)(retryIn),this.emit("reconnecting")}while(this.#isOpen&&!this.#isReady)}setMaintenanceTimeout(ms){if((0,enterprise_maintenance_manager_1.dbgMaintenance)(`Set socket timeout to ${ms}`),this.#maintenanceTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Socket already set maintenanceCommandTimeout to ${ms}, skipping`);return}if(this.#maintenanceTimeout=ms,ms!==void 0)this.#socket?.setTimeout(ms);else this.#socket?.setTimeout(this.#socketTimeout??0)}async#createSocket(){let socket=this.#socketFactory.create(),onTimeout;if(this.#connectTimeout!==void 0)onTimeout=()=>socket.destroy(new errors_1.ConnectionTimeoutError),socket.once("timeout",onTimeout),socket.setTimeout(this.#connectTimeout);if(this.#isSocketUnrefed)socket.unref();if(await(0,node_events_1.once)(socket,this.#socketFactory.event),onTimeout)socket.removeListener("timeout",onTimeout);if(this.#socketTimeout)socket.once("timeout",()=>{let error=this.#maintenanceTimeout?new errors_1.SocketTimeoutDuringMaintenanceError(this.#maintenanceTimeout):new errors_1.SocketTimeoutError(this.#socketTimeout);socket.destroy(error)}),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)=>{var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.EmptyAwareSinglyLinkedList=exports.SinglyLinkedList=exports.DoublyLinkedList=void 0;var events_1=__importDefault(__require("events"));class DoublyLinkedList{#length=0;get length(){return this.#length}#head;get head(){return this.#head}#tail;get tail(){return this.#tail}push(value){if(++this.#length,this.#tail===void 0)return this.#head=this.#tail={previous:this.#head,next:void 0,value};return this.#tail=this.#tail.next={previous:this.#tail,next:void 0,value}}unshift(value){if(++this.#length,this.#head===void 0)return this.#head=this.#tail={previous:void 0,next:void 0,value};return this.#head=this.#head.previous={previous:void 0,next:this.#head,value}}add(value,prepend6=!1){return prepend6?this.unshift(value):this.push(value)}shift(){if(this.#head===void 0)return;--this.#length;let node=this.#head;if(node.next)node.next.previous=void 0,this.#head=node.next,node.next=void 0;else this.#head=this.#tail=void 0;return node.value}remove(node){if(this.#length===0)return;if(--this.#length,this.#tail===node)this.#tail=node.previous;if(this.#head===node)this.#head=node.next;else{if(node.previous)node.previous.next=node.next;if(node.next)node.next.previous=node.previous}node.previous=void 0,node.next=void 0}reset(){this.#length=0,this.#head=this.#tail=void 0}*[Symbol.iterator](){let node=this.#head;while(node!==void 0)yield node.value,node=node.next}*nodes(){let node=this.#head;while(node){let next=node.next;yield 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;class EmptyAwareSinglyLinkedList extends SinglyLinkedList{events=new events_1.default;reset(){let old=this.length;if(super.reset(),old!==this.length&&this.length===0)this.events.emit("empty")}shift(){let old=this.length,ret=super.shift();if(old!==this.length&&this.length===0)this.events.emit("empty");return ret}remove(node,parent){let old=this.length;if(super.remove(node,parent),old!==this.length&&this.length===0)this.events.emit("empty")}}exports.EmptyAwareSinglyLinkedList=EmptyAwareSinglyLinkedList});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;if(this.#isActive=!0,type===exports.PUBSUB_TYPE.SHARDED)this.#shardedResubscribe(commands,listeners);else this.#normalResubscribe(commands,type,listeners)}return commands}#normalResubscribe(commands,type,listeners){this.#subscribing++;let callback=()=>this.#subscribing--;commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}#shardedResubscribe(commands,listeners){let callback=()=>this.#subscribing--;for(let channel of listeners.keys())this.#subscribing++,commands.push({args:[COMMANDS[exports.PUBSUB_TYPE.SHARDED].subscribe,channel],channelsCounter:1,resolve:callback,reject:callback})}handleMessageReply(reply){if(COMMANDS[exports.PUBSUB_TYPE.CHANNELS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.CHANNELS,reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.PATTERNS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.PATTERNS,reply[3],reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.SHARDED].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.SHARDED,reply[2],reply[1]),!0;return!1}removeShardedListeners(channel){let listeners=this.listeners[exports.PUBSUB_TYPE.SHARDED].get(channel);return this.listeners[exports.PUBSUB_TYPE.SHARDED].delete(channel),this.#updateIsActive(),listeners}removeAllListeners(){let result={[exports.PUBSUB_TYPE.CHANNELS]:this.listeners[exports.PUBSUB_TYPE.CHANNELS],[exports.PUBSUB_TYPE.PATTERNS]:this.listeners[exports.PUBSUB_TYPE.PATTERNS],[exports.PUBSUB_TYPE.SHARDED]:this.listeners[exports.PUBSUB_TYPE.SHARDED]};return this.#updateIsActive(),this.listeners[exports.PUBSUB_TYPE.CHANNELS]=new Map,this.listeners[exports.PUBSUB_TYPE.PATTERNS]=new Map,this.listeners[exports.PUBSUB_TYPE.SHARDED]=new Map,result}#emitPubSubMessage(type,message,channel,pattern){let keyString=(pattern??channel).toString(),listeners=this.listeners[type].get(keyString);if(!listeners)return;for(let listener of listeners.buffers)listener(message,channel);if(!listeners.strings.size)return;let channelString=pattern?channel.toString():keyString,messageString=channelString==="__redis__:invalidate"?message===null?null:message.map((x)=>x.toString()):message.toString();for(let listener of listeners.strings)listener(messageString,channelString)}}exports.PubSub=PubSub});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(),enterprise_maintenance_manager_1=require_enterprise_maintenance_manager(),PONG=Buffer.from("pong"),RESET=Buffer.from("RESET"),RESP2_PUSH_TYPE_MAPPING={...decoder_1.PUSH_TYPE_MAPPING,[decoder_1.RESP_TYPES.SIMPLE_STRING]:Buffer};class RedisCommandsQueue{#respVersion;#maxLength;#toWrite=new linked_list_1.DoublyLinkedList;#waitingForReply=new linked_list_1.EmptyAwareSinglyLinkedList;#onShardedChannelMoved;#chainInExecution;decoder;#pubSub=new pub_sub_1.PubSub;#pushHandlers=[this.#onPush.bind(this)];#maintenanceCommandTimeout;setMaintenanceCommandTimeout(ms){if(this.#maintenanceCommandTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Queue already set maintenanceCommandTimeout to ${ms}, skipping`);return}if((0,enterprise_maintenance_manager_1.dbgMaintenance)(`Setting maintenance command timeout to ${ms}`),this.#maintenanceCommandTimeout=ms,this.#maintenanceCommandTimeout===void 0){(0,enterprise_maintenance_manager_1.dbgMaintenance)("Queue will keep maintenanceCommandTimeout for exisitng commands, just to be on the safe side. New commands will receive normal timeouts");return}let counter6=0,total=this.#toWrite.length;for(let node of this.#toWrite.nodes()){let command=node.value;RedisCommandsQueue.#removeTimeoutListener(command),counter6++;let newTimeout=this.#maintenanceCommandTimeout,signal=AbortSignal.timeout(newTimeout);command.timeout={signal,listener:()=>{this.#toWrite.remove(node),command.reject(new errors_1.CommandTimeoutDuringMaintenanceError(newTimeout))},originalTimeout:command.timeout?.originalTimeout},signal.addEventListener("abort",command.timeout.listener,{once:!0})}(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Total of ${counter6} of ${total} timeouts reset to ${ms}`)}get isPubSubActive(){return this.#pubSub.isActive}constructor(respVersion,maxLength,onShardedChannelMoved){this.#respVersion=respVersion,this.#maxLength=maxLength,this.#onShardedChannelMoved=onShardedChannelMoved,this.decoder=this.#initiateDecoder()}#onReply(reply){this.#waitingForReply.shift().resolve(reply)}#onErrorReply(err){this.#waitingForReply.shift().reject(err)}#onPush(push){if(this.#pubSub.handleMessageReply(push))return!0;let isShardedUnsubscribe=pub_sub_1.PubSub.isShardedUnsubscribe(push);if(isShardedUnsubscribe&&!this.#waitingForReply.length){let channel=push[1].toString();return this.#onShardedChannelMoved(channel,this.#pubSub.removeShardedListeners(channel)),!0}else if(isShardedUnsubscribe||pub_sub_1.PubSub.isStatusReply(push)){let head6=this.#waitingForReply.head.value;if(Number.isNaN(head6.channelsCounter)&&push[2]===0||--head6.channelsCounter===0)this.#waitingForReply.shift().resolve();return!0}return!1}#getTypeMapping(){return this.#waitingForReply.head.value.typeMapping??{}}#initiateDecoder(){return new decoder_1.Decoder({onReply:(reply)=>this.#onReply(reply),onErrorReply:(err)=>this.#onErrorReply(err),onPush:(push)=>{for(let pushHandler of this.#pushHandlers)if(pushHandler(push))return},getTypeMapping:()=>this.#getTypeMapping()})}addPushHandler(handler){this.#pushHandlers.push(handler)}async waitForInflightCommandsToComplete(){if(this.#waitingForReply.length===0)return;return new Promise((resolve)=>{this.#waitingForReply.events.on("empty",resolve)})}addCommand(args2,options){if(this.#maxLength&&this.#toWrite.length+this.#waitingForReply.length>=this.#maxLength)return Promise.reject(Error("The queue is full"));else if(options?.abortSignal?.aborted)return Promise.reject(new errors_1.AbortError);return new Promise((resolve,reject)=>{let node,value={args:args2,chainId:options?.chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping:options?.typeMapping},timeout5=this.#maintenanceCommandTimeout??options?.timeout,wasInMaintenance=this.#maintenanceCommandTimeout!==void 0;if(timeout5){let signal2=AbortSignal.timeout(timeout5);value.timeout={signal:signal2,listener:()=>{this.#toWrite.remove(node),value.reject(wasInMaintenance?new errors_1.CommandTimeoutDuringMaintenanceError(timeout5):new errors_1.TimeoutError)},originalTimeout:options?.timeout},signal2.addEventListener("abort",value.timeout.listener,{once:!0})}let signal=options?.abortSignal;if(signal)value.abort={signal,listener:()=>{this.#toWrite.remove(node),value.reject(new errors_1.AbortError)}},signal.addEventListener("abort",value.abort.listener,{once:!0});node=this.#toWrite.add(value,options?.asap)})}#addPubSubCommand(command,asap=!1,chainId){return new Promise((resolve,reject)=>{this.#toWrite.add({args:command.args,chainId,abort:void 0,timeout:void 0,resolve(){command.resolve(),resolve()},reject(err){command.reject?.(),reject(err)},channelsCounter:command.channelsCounter,typeMapping:decoder_1.PUSH_TYPE_MAPPING},asap)})}#setupPubSubHandler(){if(this.#respVersion!==2)return;this.decoder.onReply=(reply)=>{if(Array.isArray(reply)){if(this.#onPush(reply))return;if(PONG.equals(reply[0])){let{resolve,typeMapping}=this.#waitingForReply.shift(),buffer3=reply[1].length===0?reply[0]:reply[1];resolve(typeMapping?.[decoder_1.RESP_TYPES.SIMPLE_STRING]===Buffer?buffer3:buffer3.toString());return}}return this.#onReply(reply)},this.decoder.getTypeMapping=()=>RESP2_PUSH_TYPE_MAPPING}subscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.subscribe(type,channels,listener,returnBuffers);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}#resetDecoderCallbacks(){this.decoder.onReply=(reply)=>this.#onReply(reply),this.decoder.getTypeMapping=()=>this.#getTypeMapping()}unsubscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.unsubscribe(type,channels,listener,returnBuffers);if(!command)return;if(command&&this.#respVersion===2){let{resolve}=command;command.resolve=()=>{if(!this.#pubSub.isActive)this.#resetDecoderCallbacks();resolve()}}return this.#addPubSubCommand(command)}removeAllPubSubListeners(){return this.#pubSub.removeAllListeners()}resubscribe(chainId){let commands=this.#pubSub.resubscribe();if(!commands.length)return;return this.#setupPubSubHandler(),Promise.all(commands.map((command)=>this.#addPubSubCommand(command,!0,chainId)))}extendPubSubChannelListeners(type,channel,listeners){let command=this.#pubSub.extendChannelListeners(type,channel,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}extendPubSubListeners(type,listeners){let command=this.#pubSub.extendTypeListeners(type,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}getPubSubListeners(type){return this.#pubSub.listeners[type]}monitor(callback,options){return new Promise((resolve,reject)=>{let typeMapping=options?.typeMapping??{};this.#toWrite.add({args:["MONITOR"],chainId:options?.chainId,abort:void 0,timeout:void 0,resolve:()=>{if(this.#resetFallbackOnReply)this.#resetFallbackOnReply=callback;else this.decoder.onReply=callback;this.decoder.getTypeMapping=()=>typeMapping,resolve()},reject,channelsCounter:void 0,typeMapping},options?.asap)})}resetDecoder(){this.#resetDecoderCallbacks(),this.decoder.reset()}#resetFallbackOnReply;async reset(chainId,typeMapping){return new Promise((resolve,reject)=>{this.#resetFallbackOnReply=this.decoder.onReply,this.decoder.onReply=(reply)=>{if(typeof reply==="string"&&reply==="RESET"||reply instanceof Buffer&&RESET.equals(reply)){this.#resetDecoderCallbacks(),this.#resetFallbackOnReply=void 0,this.#pubSub.reset(),this.#waitingForReply.shift().resolve(reply);return}this.#resetFallbackOnReply(reply)},this.#toWrite.push({args:["RESET"],chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping})})}isWaitingToWrite(){return this.#toWrite.length>0}*commandsToWrite(){let toSend=this.#toWrite.shift();while(toSend){let encoded;try{encoded=(0,encoder_1.default)(toSend.args)}catch(err){toSend.reject(err),toSend=this.#toWrite.shift();continue}if(toSend.args=void 0,toSend.abort)RedisCommandsQueue.#removeAbortListener(toSend),toSend.abort=void 0;if(toSend.timeout)RedisCommandsQueue.#removeTimeoutListener(toSend),toSend.timeout=void 0;this.#chainInExecution=toSend.chainId,toSend.chainId=void 0,this.#waitingForReply.push(toSend),yield encoded,toSend=this.#toWrite.shift()}}#flushWaitingForReply(err){for(let node of this.#waitingForReply)node.reject(err);this.#waitingForReply.reset()}static#removeAbortListener(command){command.abort.signal.removeEventListener("abort",command.abort.listener)}static#removeTimeoutListener(command){command.timeout?.signal.removeEventListener("abort",command.timeout.listener)}static#flushToWrite(toBeSent,err){if(toBeSent.abort)RedisCommandsQueue.#removeAbortListener(toBeSent);if(toBeSent.timeout)RedisCommandsQueue.#removeTimeoutListener(toBeSent);toBeSent.reject(err)}flushWaitingForReply(err){if(this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err),!this.#chainInExecution)return;while(this.#toWrite.head?.value.chainId===this.#chainInExecution)RedisCommandsQueue.#flushToWrite(this.#toWrite.shift(),err);this.#chainInExecution=void 0}flushAll(err){this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err);for(let node of this.#toWrite)RedisCommandsQueue.#flushToWrite(node,err);this.#toWrite.reset()}isEmpty(){return this.#toWrite.length===0&&this.#waitingForReply.length===0}}exports.default=RedisCommandsQueue});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:tail2}=this._self.#tasksQueue;if(!client){let timeout5;if(this._self.#options.acquireTimeout>0)timeout5=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail2),reject(new errors_1.TimeoutError("Timeout waiting for a client"))},this._self.#options.acquireTimeout);let task=this._self.#tasksQueue.push({timeout:timeout5,resolve,reject,fn:fn2});if(this.totalClients<this._self.#options.maximum)this._self.#create();return}let node=this._self.#clientsInUse.push(client);this._self.#executeTask(node,resolve,reject,fn2)})}#executeTask(node,resolve,reject,fn2){let result=fn2(node.value);if(result instanceof Promise)result.then(resolve,reject).finally(()=>this.#returnClient(node));else resolve(result),this.#returnClient(node)}#returnClient(node){let task=this.#tasksQueue.shift();if(task){clearTimeout(task.timeout),this.#executeTask(node,task.resolve,task.reject,task.fn);return}this.#clientsInUse.remove(node),this.#idleClients.push(node.value),this.#scheduleCleanup()}cleanupTimeout;#scheduleCleanup(){if(this.totalClients<=this.#options.minimum)return;clearTimeout(this.cleanupTimeout),this.cleanupTimeout=setTimeout(()=>this.#cleanup(),this.#options.cleanupDelay)}#cleanup(){let toDestroy=Math.min(this.#idleClients.length,this.totalClients-this.#options.minimum);for(let i=0;i<toDestroy;i++)this.#idleClients.shift().destroy()}sendCommand(args2,options){return this.execute((client)=>client.sendCommand(args2,options))}MULTI(){return new this.Multi((commands,selectedDB)=>this.execute((client)=>client._executeMulti(commands,selectedDB)),(commands)=>this.execute((client)=>client._executePipeline(commands)),this._commandOptions?.typeMapping)}multi=this.MULTI;async close(){if(this._self.#isClosing)return;if(!this._self.#isOpen)return;this._self.#isClosing=!0;try{let promises=[];for(let client of this._self.#idleClients)promises.push(client.close());for(let client of this._self.#clientsInUse)promises.push(client.close());await Promise.all(promises),this.#clientSideCache?.onPoolClose(),this._self.#idleClients.reset(),this._self.#clientsInUse.reset()}catch(err){}finally{this._self.#isClosing=!1}}destroy(){for(let client of this._self.#idleClients)client.destroy();this._self.#idleClients.reset();for(let client of this._self.#clientsInUse)client.destroy();this._self.#clientSideCache?.onPoolClose(),this._self.#clientsInUse.reset(),this._self.#isOpen=!1}}exports.RedisClientPool=RedisClientPool});var require_package=__commonJS((exports,module)=>{module.exports={name:"@redis/client",version:"5.10.0",license:"MIT",main:"./dist/index.js",types:"./dist/index.d.ts",files:["dist/","!dist/tsconfig.tsbuildinfo"],scripts:{test:"nyc -r text-summary -r lcov mocha -r tsx './lib/**/*.spec.ts'",release:"release-it"},dependencies:{"cluster-key-slot":"1.1.2"},devDependencies:{"@redis/test-utils":"*","@types/sinon":"^17.0.3",sinon:"^17.0.1"},engines:{node:">= 18"},repository:{type:"git",url:"git://github.com/redis/node-redis.git"},bugs:{url:"https://github.com/redis/node-redis/issues"},homepage:"https://github.com/redis/node-redis/tree/master/packages/client",keywords:["redis"]}});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(),enterprise_maintenance_manager_1=__importDefault(require_enterprise_maintenance_manager());class RedisClient extends node_events_1.EventEmitter{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._commandOptions,transformReply)}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._self._commandOptions,transformReply)}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self._executeCommand(fn2,parser,this._self._commandOptions,transformReply)}}static#createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),script.parseCommand(parser,...args2),this._executeScript(script,parser,this._commandOptions,transformReply)}}static#SingleEntryCache=new single_entry_cache_1.default;static factory(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 parseOptions(options){if(options?.url){let parsed=_a.parseURL(options.url);if(options.socket){if(options.socket.tls!==void 0&&options.socket.tls!==parsed.socket.tls)throw TypeError(`tls socket option is set to ${options.socket.tls} which is mismatch with protocol or the URL ${options.url} passed`);parsed.socket=Object.assign(options.socket,parsed.socket)}Object.assign(options,parsed)}return options}static parseURL(url){let{hostname,port,protocol,username,password,pathname}=new node_url_1.URL(url),parsed={socket:{host:hostname,tls:!1}};if(protocol!=="redis:"&&protocol!=="rediss:")throw TypeError("Invalid protocol");if(parsed.socket.tls=protocol==="rediss:",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;#paused=!1;get clientSideCache(){return this._self.#clientSideCache}get options(){return this._self.#options}get isOpen(){return this._self.#socket.isOpen}get isReady(){return this._self.#socket.isReady}get isPubSubActive(){return this._self.#queue.isPubSubActive}get socketEpoch(){return this._self.#socket.socketEpoch}get isWatching(){return this._self.#watchEpoch!==void 0}get isDirtyWatch(){return this._self.#dirtyWatch!==void 0}setDirtyWatch(msg){this._self.#dirtyWatch=msg}constructor(options){super();if(this.#validateOptions(options),this.#options=this.#initiateOptions(options),this.#queue=this.#initiateQueue(),this.#socket=this.#initiateSocket(),this.#options.maintNotifications!=="disabled")new enterprise_maintenance_manager_1.default(this.#queue,this,this.#options);if(this.#options.clientSideCache){if(this.#options.clientSideCache instanceof cache_1.ClientSideCacheProvider)this.#clientSideCache=this.#options.clientSideCache;else{let cscConfig=this.#options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.#clientSideCache?.invalidate(key);else this.#clientSideCache?.invalidate(null);return!0})}else if(options?.emitInvalidate)this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.emit("invalidate",key);else this.emit("invalidate",null);return!0})}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching is only supported with RESP3");if(options?.emitInvalidate&&options?.RESP!==3)throw Error("emitInvalidate is only supported with RESP3");if(options?.clientSideCache&&options?.emitInvalidate)throw Error("emitInvalidate is not supported (or necessary) when clientSideCache is enabled");if(options?.maintNotifications&&options?.maintNotifications!=="disabled"&&options?.RESP!==3)throw Error("Graceful Maintenance is only supported with RESP3")}#initiateOptions(options={}){if(!options.credentialsProvider&&(options.username||options.password))options.credentialsProvider={type:"async-credentials-provider",credentials:async()=>({username:options.username,password:options.password})};if(options.database)this._self.#selectedDB=options.database;if(options.commandOptions)this._commandOptions=options.commandOptions;if(options.maintNotifications!=="disabled")enterprise_maintenance_manager_1.default.setupDefaultMaintOptions(options);if(options.url){let parsedOptions=_a.parseOptions(options);if(parsedOptions?.database)this._self.#selectedDB=parsedOptions.database;return parsedOptions}return options}#initiateQueue(){return new commands_queue_1.default(this.#options.RESP??2,this.#options.commandsQueueMaxLength,(channel,listeners)=>this.emit("sharded-channel-moved",channel,listeners))}reAuthenticate=async(credentials)=>{if(!(this.isPubSubActive&&!this.#options.RESP))await this.sendCommand((0,generic_transformers_1.parseArgs)(commands_1.default.AUTH,{username:credentials.username,password:credentials.password??""}))};#subscribeForStreamingCredentials(cp){return cp.subscribe({onNext:(credentials)=>{this.reAuthenticate(credentials).catch((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()});if(this.#options?.emitInvalidate)commands.push({cmd:["CLIENT","TRACKING","ON"]});let maintenanceHandshakeCmd=await enterprise_maintenance_manager_1.default.getHandshakeCommand(this.#options);if(maintenanceHandshakeCmd)commands.push(maintenanceHandshakeCmd);return commands}#attachListeners(socket){socket.on("data",(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"))}#initiateSocket(){let socketInitiator=async()=>{let promises=[],chainId=Symbol("Socket Initiator"),resubscribePromise=this.#queue.resubscribe(chainId);if(resubscribePromise?.catch((error)=>{if(error.message&&error.message.startsWith("MOVED"))this.emit("__MOVED",this._self.#queue.removeAllPubSubListeners())}),resubscribePromise)promises.push(resubscribePromise);if(this.#monitorCallback)promises.push(this.#queue.monitor(this.#monitorCallback,{typeMapping:this._commandOptions?.typeMapping,chainId,asap:!0}));if(promises.push(...await this.#handshake(chainId,!0)),promises.length)return this.#write(),Promise.all(promises)},socket=new socket_1.default(socketInitiator,this.#options.socket);return this.#attachListeners(socket),socket}#pingTimer;#setPingTimer(){if(!this.#options.pingInterval||!this.#socket.isReady)return;clearTimeout(this.#pingTimer),this.#pingTimer=setTimeout(()=>{if(!this.#socket.isReady)return;this.sendCommand(["PING"]).then((reply)=>this.emit("ping-interval",reply)).catch((err)=>this.emit("error",err)).finally(()=>this.#setPingTimer())},this.#options.pingInterval)}withCommandOptions(options){let proxy=Object.create(this._self);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this._self);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._commandOptionsProxy("asap",!0)}legacy(){return new legacy_mode_1.RedisLegacyClient(this)}createPool(options){return pool_1.RedisClientPool.create(this._self.#options,options)}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self.#options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self.#socket.connect(),this}_ejectSocket(){let socket=this._self.#socket;return this._self.#socket=null,socket.removeAllListeners(),socket}_insertSocket(socket){if(this._self.#socket)this._self._ejectSocket().destroy();this._self.#socket=socket,this._self.#attachListeners(this._self.#socket)}_maintenanceUpdate(update5){this._self.#socket.setMaintenanceTimeout(update5.relaxedSocketTimeout),this._self.#queue.setMaintenanceCommandTimeout(update5.relaxedCommandTimeout)}_pause(){this._self.#paused=!0}_unpause(){this._self.#paused=!1,this._self.#maybeScheduleWrite()}async _executeCommand(command,parser,commandOptions,transformReply){let csc=this._self.#clientSideCache,defaultTypeMapping=this._self.#options.commandOptions===commandOptions,fn2=()=>{return this.sendCommand(parser.redisArgs,commandOptions)};if(csc&&command.CACHEABLE&&defaultTypeMapping)return await csc.handleCache(this._self,parser,fn2,transformReply,commandOptions?.typeMapping);else{let reply=await fn2();if(transformReply)return transformReply(reply,parser.preserve,commandOptions?.typeMapping);return reply}}async _executeScript(script,parser,options,transformReply){let args2=parser.redisArgs,reply;try{reply=await this.sendCommand(args2,options)}catch(err){if(!err?.message?.startsWith?.("NOSCRIPT"))throw err;args2[0]="EVAL",args2[1]=script.SCRIPT,reply=await this.sendCommand(args2,options)}return transformReply?transformReply(reply,parser.preserve,options?.typeMapping):reply}sendCommand(args2,options){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);else if(!this._self.#socket.isReady&&this._self.#options.disableOfflineQueue)return Promise.reject(new errors_1.ClientOfflineError);let opts={...this._self._commandOptions,...options},promise3=this._self.#queue.addCommand(args2,opts);return this._self.#scheduleWrite(),promise3}async SELECT(db){await this.sendCommand(["SELECT",db.toString()]),this._self.#selectedDB=db}select=this.SELECT;#pubSubCommand(promise3){if(promise3===void 0)return Promise.resolve();return this.#scheduleWrite(),promise3}SUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}subscribe=this.SUBSCRIBE;UNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;PSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pSubscribe=this.PSUBSCRIBE;PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;SSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sUnsubscribe=this.SUNSUBSCRIBE;async WATCH(key){let reply=await this._self.sendCommand((0,generic_transformers_1.pushVariadicArguments)(["WATCH"],key));return this._self.#watchEpoch??=this._self.socketEpoch,reply}watch=this.WATCH;async UNWATCH(){let reply=await this._self.sendCommand(["UNWATCH"]);return this._self.#watchEpoch=void 0,reply}unwatch=this.UNWATCH;getPubSubListeners(type){return this._self.#queue.getPubSubListeners(type)}extendPubSubChannelListeners(type,channel,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubChannelListeners(type,channel,listeners))}extendPubSubListeners(type,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubListeners(type,listeners))}#write(){if(this.#paused)return;this.#socket.write(this.#queue.commandsToWrite())}#scheduledWrite;#scheduleWrite(){if(!this.#socket.isReady||this.#scheduledWrite)return;this.#scheduledWrite=setImmediate(()=>{this.#write(),this.#scheduledWrite=void 0})}#maybeScheduleWrite(){if(!this.#queue.isWaitingToWrite())return;this.#scheduleWrite()}async _executePipeline(commands,selectedDB){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);let chainId=Symbol("Pipeline Chain"),promise3=Promise.all(commands.map(({args:args2})=>this._self.#queue.addCommand(args2,{chainId,typeMapping:this._commandOptions?.typeMapping})));this._self.#scheduleWrite();let result=await promise3;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return result}async _executeMulti(commands,selectedDB){let dirtyWatch=this._self.#dirtyWatch;this._self.#dirtyWatch=void 0;let watchEpoch=this._self.#watchEpoch;if(this._self.#watchEpoch=void 0,!this._self.#socket.isOpen)throw new errors_1.ClientClosedError;if(dirtyWatch)throw new errors_1.WatchError(dirtyWatch);if(watchEpoch&&watchEpoch!==this._self.socketEpoch)throw new errors_1.WatchError("Client reconnected after WATCH");let typeMapping=this._commandOptions?.typeMapping,chainId=Symbol("MULTI Chain"),promises=[this._self.#queue.addCommand(["MULTI"],{chainId})];for(let{args:args2}of commands)promises.push(this._self.#queue.addCommand(args2,{chainId,typeMapping}));promises.push(this._self.#queue.addCommand(["EXEC"],{chainId})),this._self.#scheduleWrite();let results=await Promise.all(promises),execResult=results[results.length-1];if(execResult===null)throw new errors_1.WatchError;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return execResult}MULTI(){return new this.Multi(this._executeMulti.bind(this),this._executePipeline.bind(this),this._commandOptions?.typeMapping)}multi=this.MULTI;async*scanIterator(options){let cursor=options?.cursor??"0";do{let reply=await this.scan(cursor,options);cursor=reply.cursor,yield reply.keys}while(cursor!=="0")}async*hScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScan(key,cursor,options);cursor=reply.cursor,yield reply.entries}while(cursor!=="0")}async*hScanValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*hScanNoValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*sScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.sScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async*zScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.zScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async MONITOR(callback){let promise3=this._self.#queue.monitor(callback,{typeMapping:this._commandOptions?.typeMapping});this._self.#scheduleWrite(),await promise3,this._self.#monitorCallback=callback}monitor=this.MONITOR;async reset(){let chainId=Symbol("Reset Chain"),promises=[this._self.#queue.reset(chainId)],selectedDB=this._self.#options?.database??0;this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,promises.push(...await this._self.#handshake(chainId,!1)),this._self.#scheduleWrite(),await Promise.all(promises),this._self.#selectedDB=selectedDB,this._self.#monitorCallback=void 0,this._self.#dirtyWatch=void 0,this._self.#watchEpoch=void 0}resetIfDirty(){let shouldReset=!1;if(this._self.#selectedDB!==(this._self.#options?.database??0))console.warn("Returning a client with a different selected DB"),shouldReset=!0;if(this._self.#monitorCallback)console.warn("Returning a client with active MONITOR"),shouldReset=!0;if(this._self.#queue.isPubSubActive)console.warn("Returning a client with active PubSub"),shouldReset=!0;if(this._self.#dirtyWatch||this._self.#watchEpoch)console.warn("Returning a client with active WATCH"),shouldReset=!0;if(shouldReset)return this.reset()}QUIT(){return this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,this._self.#socket.quit(async()=>{clearTimeout(this._self.#pingTimer);let quitPromise=this._self.#queue.addCommand(["QUIT"]);return this._self.#scheduleWrite(),quitPromise})}quit=this.QUIT;disconnect(){return Promise.resolve(this.destroy())}close(){return new Promise((resolve)=>{if(clearTimeout(this._self.#pingTimer),this._self.#socket.close(),this._self.#clientSideCache?.onClose(),this._self.#queue.isEmpty())return this._self.#socket.destroySocket(),resolve();let maybeClose=()=>{if(!this._self.#queue.isEmpty())return;this._self.#socket.off("data",maybeClose),this._self.#socket.destroySocket(),resolve()};this._self.#socket.on("data",maybeClose),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null})}destroy(){clearTimeout(this._self.#pingTimer),this._self.#queue.flushAll(new errors_1.DisconnectsClientError),this._self.#socket.destroy(),this._self.#clientSideCache?.onClose(),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null}ref(){this._self.#socket.ref()}unref(){this._self.#socket.unref()}}_a=RedisClient;exports.default=RedisClient});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(),this.#emit("connect")}catch(err){throw this.#isOpen=!1,err}}async#discoverWithRootNodes(){let start3=Math.floor(Math.random()*this.#options.rootNodes.length);for(let i=start3;i<this.#options.rootNodes.length;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}for(let i=0;i<start3;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}throw new errors_1.RootNodesUnavailableError}#resetSlots(){this.slots=Array(_a.#SLOTS),this.masters=[],this.replicas=[],this._randomNodeIterator=void 0}async#discover(rootNode){this.clientSideCache?.clear(),this.clientSideCache?.disable();try{let addressesInUse=new Set,promises=[],eagerConnect=this.#options.minimizeConnections!==!0,shards=await this.#getShards(rootNode);this.#resetSlots();for(let{from,to,master,replicas}of shards){let shard={master:this.#initiateSlotNode(master,!1,eagerConnect,addressesInUse,promises)};if(this.#options.useReplicas)shard.replicas=replicas.map((replica)=>this.#initiateSlotNode(replica,!0,eagerConnect,addressesInUse,promises));for(let i=from;i<=to;i++)this.slots[i]=shard}if(this.pubSubNode&&!addressesInUse.has(this.pubSubNode.address)){let channelsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS),patternsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS);if(this.pubSubNode.client.destroy(),channelsListeners.size||patternsListeners.size)promises.push(this.#initiatePubSubClient({[pub_sub_1.PUBSUB_TYPE.CHANNELS]:channelsListeners,[pub_sub_1.PUBSUB_TYPE.PATTERNS]:patternsListeners}))}for(let[address,node]of this.nodeByAddress.entries()){if(addressesInUse.has(address))continue;if(node.client)node.client.destroy();let{pubSub}=node;if(pubSub)pubSub.client.destroy();this.nodeByAddress.delete(address)}return await Promise.all(promises),this.clientSideCache?.enable(),!0}catch(err){return this.#emit("error",err),!1}}async#getShards(rootNode){let options=this.#clientOptionsDefaults(rootNode);options.socket??={},options.socket.reconnectStrategy=!1,options.RESP=this.#options.RESP,options.commandOptions=void 0;let client=await this.#clientFactory(options).on("error",(err)=>this.#emit("error",err)).connect();try{return await client.clusterSlots()}finally{client.destroy()}}#getNodeAddress(address){switch(typeof this.#options.nodeAddressMap){case"object":return this.#options.nodeAddressMap[address];case"function":return this.#options.nodeAddressMap(address)}}#clientOptionsDefaults(options){if(!this.#options.defaults)return options;let socket;if(this.#options.defaults.socket)socket={...this.#options.defaults.socket,...options?.socket};else socket=options?.socket;return{...this.#options.defaults,...options,socket}}#initiateSlotNode(shard,readonly,eagerConnent,addressesInUse,promises){let address=`${shard.host}:${shard.port}`,node=this.nodeByAddress.get(address);if(!node){if(node={...shard,address,readonly,client:void 0,connectPromise:void 0},eagerConnent)promises.push(this.#createNodeClient(node));this.nodeByAddress.set(address,node)}if(!addressesInUse.has(address))addressesInUse.add(address),(readonly?this.replicas:this.masters).push(node);return node}#createClient(node,readonly=node.readonly){let socket=this.#getNodeAddress(node.address)??{host:node.host,port:node.port},clientInfo=Object.freeze({host:socket.host,port:socket.port}),emit2=this.#emit,client=this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket,readonly})).on("error",(error)=>emit2("node-error",error,clientInfo)).on("reconnecting",()=>emit2("node-reconnecting",clientInfo)).once("ready",()=>emit2("node-ready",clientInfo)).once("connect",()=>emit2("node-connect",clientInfo)).once("end",()=>emit2("node-disconnect",clientInfo)).on("__MOVED",async(allPubSubListeners)=>{await this.rediscover(client),this.#emit("__resubscribeAllPubSubListeners",allPubSubListeners)});return client}#createNodeClient(node,readonly){let client=node.client=this.#createClient(node,readonly);return node.connectPromise=client.connect().finally(()=>node.connectPromise=void 0)}nodeClient(node){return node.connectPromise??node.client??this.#createNodeClient(node)}#runningRediscoverPromise;async rediscover(startWith){return this.#runningRediscoverPromise??=this.#rediscover(startWith).finally(()=>{this.#runningRediscoverPromise=void 0}),this.#runningRediscoverPromise}async#rediscover(startWith){if(await this.#discover(startWith.options))return;return this.#discoverWithRootNodes()}quit(){return this.#destroy((client)=>client.quit())}disconnect(){return this.#destroy((client)=>client.disconnect())}close(){return this.#destroy((client)=>client.close())}destroy(){this.#isOpen=!1;for(let client of this.#clients())client.destroy();if(this.pubSubNode)this.pubSubNode.client.destroy(),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),this.#emit("disconnect")}*#clients(){for(let master of this.masters){if(master.client)yield master.client;if(master.pubSub)yield master.pubSub.client}for(let replica of this.replicas)if(replica.client)yield replica.client}async#destroy(fn2){this.#isOpen=!1;let promises=[];for(let client of this.#clients())promises.push(fn2(client));if(this.pubSubNode)promises.push(fn2(this.pubSubNode.client)),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),await Promise.allSettled(promises),this.#emit("disconnect")}getClient(firstKey,isReadonly){if(!firstKey)return this.nodeClient(this.getRandomNode());let slotNumber=(0,cluster_key_slot_1.default)(firstKey);if(!isReadonly)return this.nodeClient(this.slots[slotNumber].master);return this.nodeClient(this.getSlotRandomNode(slotNumber))}*#iterateAllNodes(){if(this.masters.length+this.replicas.length===0)return;let i=Math.floor(Math.random()*(this.masters.length+this.replicas.length));if(i<this.masters.length){do yield this.masters[i];while(++i<this.masters.length);for(let replica of this.replicas)yield replica}else{i-=this.masters.length;do yield this.replicas[i];while(++i<this.replicas.length)}while(!0){for(let master of this.masters)yield master;for(let replica of this.replicas)yield replica}}_randomNodeIterator;getRandomNode(){return this._randomNodeIterator??=this.#iterateAllNodes(),this._randomNodeIterator.next().value}*#slotNodesIterator(slot){let i=Math.floor(Math.random()*(1+slot.replicas.length));if(i<slot.replicas.length)do yield slot.replicas[i];while(++i<slot.replicas.length);while(!0){yield slot.master;for(let replica of slot.replicas)yield replica}}getSlotRandomNode(slotNumber){let slot=this.slots[slotNumber];if(!slot.replicas?.length)return slot.master;return slot.nodesIterator??=this.#slotNodesIterator(slot),slot.nodesIterator.next().value}getMasterByAddress(address){let master=this.nodeByAddress.get(address);if(!master)return;return this.nodeClient(master)}getPubSubClient(){if(!this.pubSubNode)return this.#initiatePubSubClient();return this.pubSubNode.connectPromise??this.pubSubNode.client}async#initiatePubSubClient(toResubscribe){let index=Math.floor(Math.random()*(this.masters.length+this.replicas.length)),node=index<this.masters.length?this.masters[index]:this.replicas[index-this.masters.length],client=this.#createClient(node,!1);return this.pubSubNode={address:node.address,client,connectPromise:client.connect().then(async(client2)=>{if(toResubscribe)await Promise.all([client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS,toResubscribe[pub_sub_1.PUBSUB_TYPE.CHANNELS]),client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS,toResubscribe[pub_sub_1.PUBSUB_TYPE.PATTERNS])]);return this.pubSubNode.connectPromise=void 0,client2}).catch((err)=>{throw this.pubSubNode=void 0,err})},this.pubSubNode.connectPromise}async executeUnsubscribeCommand(unsubscribe){let client=await this.getPubSubClient();if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),this.pubSubNode=void 0}getShardedPubSubClient(channel){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return this.#initiateShardedPubSubClient(master);return master.pubSub.connectPromise??master.pubSub.client}async#initiateShardedPubSubClient(master){let client=this.#createClient(master,!1).on("server-sunsubscribe",async(channel,listeners)=>{try{await this.rediscover(client),await(await this.getShardedPubSubClient(channel)).extendPubSubChannelListeners(pub_sub_1.PUBSUB_TYPE.SHARDED,channel,listeners)}catch(err){this.#emit("sharded-shannel-moved-error",err,channel,listeners)}});return master.pubSub={client,connectPromise:client.connect().then((client2)=>{return master.pubSub.connectPromise=void 0,client2}).catch((err)=>{throw master.pubSub=void 0,err})},master.pubSub.connectPromise}async executeShardedUnsubscribeCommand(channel,unsubscribe){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return;let client=master.pubSub.connectPromise?await master.pubSub.connectPromise:master.pubSub.client;if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),master.pubSub=void 0}}_a=RedisClusterSlots;exports.default=RedisClusterSlots});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)),this.on("__resubscribeAllPubSubListeners",this.resubscribeAllPubSubListeners.bind(this)),options?.commandOptions)this._commandOptions=options.commandOptions}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self._options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self._slots.connect(),this}withCommandOptions(options){let proxy=Object.create(this);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}_handleAsk(fn2){return async(client,options)=>{let chainId=Symbol("asking chain"),opts=options?{...options}:{};return opts.chainId=chainId,(await Promise.all([client.sendCommand([ASKING_1.ASKING_CMD],{chainId}),fn2(client,opts)]))[1]}}async _execute(firstKey,isReadonly,options,fn2){let maxCommandRedirections=this._options.maxCommandRedirections??16,client=await this._slots.getClient(firstKey,isReadonly),i=0,myFn=fn2;while(!0)try{return await myFn(client,options)}catch(err){if(myFn=fn2,++i>maxCommandRedirections||!(err instanceof Error))throw err;if(err.message.startsWith("ASK")){let address=err.message.substring(err.message.lastIndexOf(" ")+1),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)await this._slots.rediscover(client),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)throw Error(`Cannot find node ${address}`);client=redirectTo,myFn=this._handleAsk(fn2);continue}if(err.message.startsWith("MOVED")){await this._slots.rediscover(client),client=await this._slots.getClient(firstKey,isReadonly);continue}throw err}}async sendCommand(firstKey,isReadonly,args2,options){let opts={...this._self._commandOptions,...options};return this._self._execute(firstKey,isReadonly,opts,(client,opts2)=>client.sendCommand(args2,opts2))}MULTI(routing){return new this.Multi(async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executeMulti(commands)},async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executePipeline(commands)},routing,this._commandOptions?.typeMapping)}multi=this.MULTI;async SUBSCRIBE(channels,listener,bufferMode){return(await this._self._slots.getPubSubClient()).SUBSCRIBE(channels,listener,bufferMode)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.UNSUBSCRIBE(channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(patterns,listener,bufferMode){return(await this._self._slots.getPubSubClient()).PSUBSCRIBE(patterns,listener,bufferMode)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.PUNSUBSCRIBE(patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;async SSUBSCRIBE(channels,listener,bufferMode){let maxCommandRedirections=this._self._options.maxCommandRedirections??16,firstChannel=Array.isArray(channels)?channels[0]:channels,client=await this._self._slots.getShardedPubSubClient(firstChannel);for(let i=0;;i++)try{return await client.SSUBSCRIBE(channels,listener,bufferMode)}catch(err){if(++i>maxCommandRedirections||!(err instanceof errors_1.ErrorReply))throw err;if(err.message.startsWith("MOVED")){await this._self._slots.rediscover(client),client=await this._self._slots.getShardedPubSubClient(firstChannel);continue}throw err}}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeShardedUnsubscribeCommand(Array.isArray(channels)?channels[0]:channels,(client)=>client.SUNSUBSCRIBE(channels,listener,bufferMode))}resubscribeAllPubSubListeners(allListeners){for(let[channel,listeners]of allListeners.CHANNELS)listeners.buffers.forEach((bufListener)=>{this.subscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.subscribe(channel,strListener)});for(let[channel,listeners]of allListeners.PATTERNS)listeners.buffers.forEach((bufListener)=>{this.pSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.pSubscribe(channel,strListener)});for(let[channel,listeners]of allListeners.SHARDED)listeners.buffers.forEach((bufListener)=>{this.sSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.sSubscribe(channel,strListener)})}sUnsubscribe=this.SUNSUBSCRIBE;quit(){return this._self._slots.quit()}disconnect(){return this._self._slots.disconnect()}close(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.close()}destroy(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.destroy()}nodeClient(node){return this._self._slots.nodeClient(node)}getRandomNode(){return this._self._slots.getRandomNode()}getSlotRandomNode(slot){return this._self._slots.getSlotRandomNode(slot)}getMasters(){return this.masters}getSlotMaster(slot){return this.slots[slot].master}}exports.default=RedisCluster});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!==void 0&&{reconnectStrategy}}})}getClientLease(){let id2=this.#masterClientQueue.shift();if(id2!==void 0)return{id:id2};return this.#masterClientQueue.wait().then((id3)=>({id:id3}))}releaseClientLease(clientInfo){let client=this.#masterClients[clientInfo.id];if(client!==void 0){let dirtyPromise=client.resetIfDirty();if(dirtyPromise)return dirtyPromise.then(()=>this.#masterClientQueue.push(clientInfo.id))}this.#masterClientQueue.push(clientInfo.id)}async connect(){if(this.#isOpen)throw Error("already attempting to open");try{this.#isOpen=!0,this.#connectPromise=this.#connect(),await this.#connectPromise,this.#isReady=!0}finally{if(this.#connectPromise=void 0,this.#scanInterval>0)this.#scanTimer=setInterval(this.#reset.bind(this),this.#scanInterval)}}async#connect(){let 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}}#handleSentinelFailure(node){let found=this.#sentinelRootNodes.findIndex((rootNode)=>rootNode.host===node.host&&rootNode.port===node.port);if(found!==-1)this.#sentinelRootNodes.splice(found,1);this.#reset()}async close(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;let promises=[];if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)promises.push(this.#sentinelClient.close());this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)promises.push(client.close());this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)promises.push(client.close());this.#replicaClients=[],await Promise.all(promises),this.#pubSubProxy.destroy(),this.#isOpen=!1}async destroy(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)this.#sentinelClient.destroy();this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)client.destroy();this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)client.destroy();this.#replicaClients=[],this.#pubSubProxy.destroy(),this.#isOpen=!1,this.#destroy=!1}async subscribe(channels,listener,bufferMode){return this.#pubSubProxy.subscribe(channels,listener,bufferMode)}async unsubscribe(channels,listener,bufferMode){return this.#pubSubProxy.unsubscribe(channels,listener,bufferMode)}async pSubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pSubscribe(patterns,listener,bufferMode)}async pUnsubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pUnsubscribe(patterns,listener,bufferMode)}async observe(){for(let node of this.#sentinelRootNodes){let client;try{this.#trace(`observe: trying to connect to sentinel: ${node.host}:${node.port}`),client=this.#createClient(node,this.#sentinelClientOptions,!1),client.on("error",(err)=>this.emit("error",`obseve client error: ${err}`)),await client.connect(),this.#trace("observe: connected to sentinel");let[sentinelData,masterData,replicaData]=await Promise.all([client.sentinel.sentinelSentinels(this.#name),client.sentinel.sentinelMaster(this.#name),client.sentinel.sentinelReplicas(this.#name)]);return this.#trace("observe: got all sentinel data"),{sentinelConnected:node,sentinelData,masterData,replicaData,currentMaster:this.getMasterNode(),currentReplicas:this.getReplicaNodes(),currentSentinel:this.getSentinelNode(),replicaPoolSize:this.#replicaPoolSize,useReplicas:this.useReplicas}}catch(err){this.#trace(`observe: error ${err}`),this.emit("error",err)}finally{if(client!==void 0&&client.isOpen)this.#trace("observe: destroying sentinel client"),client.destroy()}}throw this.#trace("observe: none of the sentinels are available"),Error("None of the sentinels are available")}analyze(observed){let master=(0,utils_1.parseNode)(observed.masterData);if(master===void 0)throw this.#trace(`analyze: no valid master node because ${observed.masterData.flags}`),Error("no valid master node");if(master.host===observed.currentMaster?.host&&master.port===observed.currentMaster?.port)this.#trace(`analyze: master node hasn't changed from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`),master=void 0;else this.#trace(`analyze: master node has changed to ${master.host}:${master.port} from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`);let sentinel=observed.sentinelConnected;if(sentinel.host===observed.currentSentinel?.host&&sentinel.port===observed.currentSentinel.port)this.#trace("analyze: sentinel node hasn't changed"),sentinel=void 0;else this.#trace(`analyze: sentinel node has changed to ${sentinel.host}:${sentinel.port}`);let replicasToClose=[],replicasToOpen=new Map,desiredSet=new Set,seen=new Set;if(observed.useReplicas){let replicaList=(0,utils_1.createNodeList)(observed.replicaData);for(let node of replicaList)desiredSet.add(JSON.stringify(node));for(let[node,value]of observed.currentReplicas)if(!desiredSet.has(JSON.stringify(node)))replicasToClose.push(node),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToClose`);else if(seen.add(JSON.stringify(node)),value!=observed.replicaPoolSize)replicasToOpen.set(node,observed.replicaPoolSize-value),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`);for(let node of replicaList)if(!seen.has(JSON.stringify(node)))replicasToOpen.set(node,observed.replicaPoolSize),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`)}return{sentinelList:[observed.sentinelConnected].concat((0,utils_1.createNodeList)(observed.sentinelData)),epoch:Number(observed.masterData["config-epoch"]),sentinelToOpen:sentinel,masterToOpen:master,replicasToClose,replicasToOpen}}async transform(analyzed){this.#trace("transform: enter");let promises=[];if(analyzed.sentinelToOpen){if(this.#trace("transform: opening a new sentinel"),this.#sentinelClient!==void 0&&this.#sentinelClient.isOpen)this.#trace("transform: destroying old sentinel as open"),this.#sentinelClient.destroy(),this.#sentinelClient=void 0;else this.#trace("transform: not destroying old sentinel as not open");this.#trace(`transform: creating new sentinel to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let node=analyzed.sentinelToOpen,client=this.#createClient(analyzed.sentinelToOpen,this.#sentinelClientOptions,!1);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Sentinel Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"SENTINEL",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2),this.#handleSentinelFailure(node)}).on("end",()=>this.#handleSentinelFailure(node)),this.#sentinelClient=client,this.#trace("transform: adding sentinel client connect() to promise list");let promise3=this.#sentinelClient.connect().then((client2)=>{return this.#createPubSub(client2)});promises.push(promise3),this.#trace(`created sentinel client to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let event={type:"SENTINEL_CHANGE",node:analyzed.sentinelToOpen};if(this.#trace("transform: emiting topology-change event for sentinel_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for sentinel_change returned false")}if(analyzed.masterToOpen){this.#trace("transform: opening a new master");let masterPromises=[],masterWatches=[];this.#trace("transform: destroying old masters if open");for(let client of this.#masterClients)if(masterWatches.push(client.isWatching||client.isDirtyWatch),client.isOpen)client.destroy();this.#masterClients=[],this.#trace("transform: creating all master clients and adding connect promises");for(let i=0;i<this.#masterPoolSize;i++){let node=analyzed.masterToOpen,client=this.#createClient(analyzed.masterToOpen,this.#nodeClientOptions);if(client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Master Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"MASTER",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),masterWatches[i])client.setDirtyWatch("sentinel config changed in middle of a WATCH Transaction");this.#masterClients.push(client),masterPromises.push(client.connect()),this.#trace(`created master client to ${analyzed.masterToOpen.host}:${analyzed.masterToOpen.port}`)}this.#trace("transform: adding promise to change #pubSubProxy node"),masterPromises.push(this.#pubSubProxy.changeNode(analyzed.masterToOpen)),promises.push(...masterPromises);let event={type:"MASTER_CHANGE",node:analyzed.masterToOpen};if(this.#trace("transform: emiting topology-change event for master_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for master_change returned false");this.#configEpoch++}let replicaCloseSet=new Set;for(let node of analyzed.replicasToClose){let str=JSON.stringify(node);replicaCloseSet.add(str)}let newClientList=[],removedSet=new Set;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),str=JSON.stringify(node);if(replicaCloseSet.has(str)||!replica.isOpen){if(replica.isOpen){let sockOpts=replica.options?.socket;this.#trace(`destroying replica client to ${sockOpts?.host}:${sockOpts?.port}`),replica.destroy()}if(!removedSet.has(str)){let event={type:"REPLICA_REMOVE",node};this.emit("topology-change",event),removedSet.add(str)}}else newClientList.push(replica)}if(this.#replicaClients=newClientList,analyzed.replicasToOpen.size!=0)for(let[node,size14]of analyzed.replicasToOpen){for(let i=0;i<size14;i++){let client=this.#createClient(node,this.#nodeClientOptions);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Replica Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"REPLICA",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),this.#replicaClients.push(client),promises.push(client.connect()),this.#trace(`created replica client to ${node.host}:${node.port}`)}let event={type:"REPLICA_ADD",node};this.emit("topology-change",event)}if(analyzed.sentinelList.length!=this.#sentinelRootNodes.length){this.#sentinelRootNodes=analyzed.sentinelList;let event={type:"SENTINE_LIST_CHANGE",size:analyzed.sentinelList.length};this.emit("topology-change",event)}await Promise.all(promises),this.#trace("transform: exit")}getMasterNode(){if(this.#masterClients.length==0)return;for(let master of this.#masterClients)if(master.isReady)return(0,utils_1.clientSocketToNode)(master.options.socket);return}getSentinelNode(){if(this.#sentinelClient===void 0)return;return(0,utils_1.clientSocketToNode)(this.#sentinelClient.options.socket)}getReplicaNodes(){let ret=new Map,initialMap=new Map;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),hash2=JSON.stringify(node);if(replica.isReady)initialMap.set(hash2,(initialMap.get(hash2)??0)+1);else if(!initialMap.has(hash2))initialMap.set(hash2,0)}for(let[key,value]of initialMap)ret.set(JSON.parse(key),value);return ret}setTracer(tracer3){if(tracer3)this.#trace=(msg)=>{tracer3.push(msg)};else this.#trace=()=>{}}}class RedisSentinelFactory extends node_events_1.EventEmitter{options;#sentinelRootNodes;#replicaIdx=-1;constructor(options){super();this.options=options,this.#sentinelRootNodes=options.sentinelRootNodes}async updateSentinelRootNodes(){for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`updateSentinelRootNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}try{let sentinelData=await client.sentinel.sentinelSentinels(this.options.name);this.#sentinelRootNodes=[node].concat((0,utils_1.createNodeList)(sentinelData));return}finally{client.destroy()}}throw Error("Couldn't connect to any sentinel node")}async getMasterNode(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getMasterNode: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let masterData=await client.sentinel.sentinelMaster(this.options.name),master=(0,utils_1.parseNode)(masterData);if(master===void 0)continue;return master}finally{client.destroy()}}if(connected)throw Error("Master Node Not Enumerated");throw Error("couldn't connect to any sentinels")}async getMasterClient(){let master=await this.getMasterNode();return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:master.host,port:master.port}})}async getReplicaNodes(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getReplicaNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let replicaData=await client.sentinel.sentinelReplicas(this.options.name),replicas=(0,utils_1.createNodeList)(replicaData);if(replicas.length==0)continue;return replicas}finally{client.destroy()}}if(connected)throw Error("No Replicas Nodes Enumerated");throw Error("couldn't connect to any sentinels")}async getReplicaClient(){let replicas=await this.getReplicaNodes();if(replicas.length==0)throw Error("no available replicas");if(this.#replicaIdx++,this.#replicaIdx>=replicas.length)this.#replicaIdx=0;return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:replicas[this.#replicaIdx].host,port:replicas[this.#replicaIdx].port}})}}exports.RedisSentinelFactory=RedisSentinelFactory});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.COMMAND_LIST_FILTER_BY=exports.CLUSTER_SLOT_STATES=exports.FAILOVER_MODES=exports.CLIENT_KILL_FILTERS=exports.GEO_REPLY_WITH=exports.createSentinel=exports.createCluster=exports.createClientPool=exports.createClient=exports.defineScript=exports.VerbatimString=exports.RESP_TYPES=void 0;var decoder_1=require_decoder();Object.defineProperty(exports,"RESP_TYPES",{enumerable:!0,get:function(){return decoder_1.RESP_TYPES}});var verbatim_string_1=require_verbatim_string();Object.defineProperty(exports,"VerbatimString",{enumerable:!0,get:function(){return verbatim_string_1.VerbatimString}});var lua_script_1=require_lua_script();Object.defineProperty(exports,"defineScript",{enumerable:!0,get:function(){return lua_script_1.defineScript}});__exportStar(require_errors(),exports);var client_1=__importDefault(require_client());exports.createClient=client_1.default.create;var pool_1=require_pool();exports.createClientPool=pool_1.RedisClientPool.create;var cluster_1=__importDefault(require_cluster());exports.createCluster=cluster_1.default.create;var sentinel_1=__importDefault(require_sentinel());exports.createSentinel=sentinel_1.default.create;var GEOSEARCH_WITH_1=require_GEOSEARCH_WITH();Object.defineProperty(exports,"GEO_REPLY_WITH",{enumerable:!0,get:function(){return GEOSEARCH_WITH_1.GEO_REPLY_WITH}});var commands_1=require_commands();Object.defineProperty(exports,"CLIENT_KILL_FILTERS",{enumerable:!0,get:function(){return commands_1.CLIENT_KILL_FILTERS}});Object.defineProperty(exports,"FAILOVER_MODES",{enumerable:!0,get:function(){return commands_1.FAILOVER_MODES}});Object.defineProperty(exports,"CLUSTER_SLOT_STATES",{enumerable:!0,get:function(){return commands_1.CLUSTER_SLOT_STATES}});Object.defineProperty(exports,"COMMAND_LIST_FILTER_BY",{enumerable:!0,get:function(){return commands_1.COMMAND_LIST_FILTER_BY}});Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return commands_1.REDIS_FLUSH_MODES}});var cache_1=require_cache();Object.defineProperty(exports,"BasicClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicClientSideCache}});Object.defineProperty(exports,"BasicPooledClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicPooledClientSideCache}})});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.VAMANA_COMPRESSION_ALGORITHM=exports.SCHEMA_VECTOR_FIELD_ALGORITHM=exports.SCHEMA_TEXT_FIELD_PHONETIC=exports.SCHEMA_FIELD_TYPE=void 0;var generic_transformers_1=require_generic_transformers();exports.SCHEMA_FIELD_TYPE={TEXT:"TEXT",NUMERIC:"NUMERIC",GEO:"GEO",TAG:"TAG",VECTOR:"VECTOR",GEOSHAPE:"GEOSHAPE"};exports.SCHEMA_TEXT_FIELD_PHONETIC={DM_EN:"dm:en",DM_FR:"dm:fr",FM_PT:"dm:pt",DM_ES:"dm:es"};exports.SCHEMA_VECTOR_FIELD_ALGORITHM={FLAT:"FLAT",HNSW:"HNSW",VAMANA:"SVS-VAMANA"};exports.VAMANA_COMPRESSION_ALGORITHM={LVQ4:"LVQ4",LVQ8:"LVQ8",LVQ4x4:"LVQ4x4",LVQ4x8:"LVQ4x8",LeanVec4x8:"LeanVec4x8",LeanVec8x8:"LeanVec8x8"};exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM={SPHERICAL:"SPHERICAL",FLAT:"FLAT"};function parseCommonSchemaFieldOptions(parser,fieldOptions){if(fieldOptions.SORTABLE){if(parser.push("SORTABLE"),fieldOptions.SORTABLE==="UNF")parser.push("UNF")}if(fieldOptions.NOINDEX)parser.push("NOINDEX")}function parseSchema(parser,schema){for(let[field,fieldOptions]of Object.entries(schema)){if(parser.push(field),typeof fieldOptions==="string"){parser.push(fieldOptions);continue}if(fieldOptions.AS)parser.push("AS",fieldOptions.AS);if(parser.push(fieldOptions.type),fieldOptions.INDEXMISSING)parser.push("INDEXMISSING");switch(fieldOptions.type){case exports.SCHEMA_FIELD_TYPE.TEXT:if(fieldOptions.NOSTEM)parser.push("NOSTEM");if(fieldOptions.WEIGHT!==void 0)parser.push("WEIGHT",fieldOptions.WEIGHT.toString());if(fieldOptions.PHONETIC)parser.push("PHONETIC",fieldOptions.PHONETIC);if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.NUMERIC:case exports.SCHEMA_FIELD_TYPE.GEO:parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.TAG:if(fieldOptions.SEPARATOR)parser.push("SEPARATOR",fieldOptions.SEPARATOR);if(fieldOptions.CASESENSITIVE)parser.push("CASESENSITIVE");if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.VECTOR:parser.push(fieldOptions.ALGORITHM);let args2=[];if(args2.push("TYPE",fieldOptions.TYPE,"DIM",fieldOptions.DIM.toString(),"DISTANCE_METRIC",fieldOptions.DISTANCE_METRIC),fieldOptions.INITIAL_CAP!==void 0)args2.push("INITIAL_CAP",fieldOptions.INITIAL_CAP.toString());switch(fieldOptions.ALGORITHM){case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:if(fieldOptions.BLOCK_SIZE!==void 0)args2.push("BLOCK_SIZE",fieldOptions.BLOCK_SIZE.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:if(fieldOptions.M!==void 0)args2.push("M",fieldOptions.M.toString());if(fieldOptions.EF_CONSTRUCTION!==void 0)args2.push("EF_CONSTRUCTION",fieldOptions.EF_CONSTRUCTION.toString());if(fieldOptions.EF_RUNTIME!==void 0)args2.push("EF_RUNTIME",fieldOptions.EF_RUNTIME.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.VAMANA:if(fieldOptions.COMPRESSION)args2.push("COMPRESSION",fieldOptions.COMPRESSION);if(fieldOptions.CONSTRUCTION_WINDOW_SIZE!==void 0)args2.push("CONSTRUCTION_WINDOW_SIZE",fieldOptions.CONSTRUCTION_WINDOW_SIZE.toString());if(fieldOptions.GRAPH_MAX_DEGREE!==void 0)args2.push("GRAPH_MAX_DEGREE",fieldOptions.GRAPH_MAX_DEGREE.toString());if(fieldOptions.SEARCH_WINDOW_SIZE!==void 0)args2.push("SEARCH_WINDOW_SIZE",fieldOptions.SEARCH_WINDOW_SIZE.toString());if(fieldOptions.EPSILON!==void 0)args2.push("EPSILON",fieldOptions.EPSILON.toString());if(fieldOptions.TRAINING_THRESHOLD!==void 0)args2.push("TRAINING_THRESHOLD",fieldOptions.TRAINING_THRESHOLD.toString());if(fieldOptions.REDUCE!==void 0)args2.push("REDUCE",fieldOptions.REDUCE.toString());break}parser.pushVariadicWithLength(args2);break;case exports.SCHEMA_FIELD_TYPE.GEOSHAPE:if(fieldOptions.COORD_SYSTEM!==void 0)parser.push("COORD_SYSTEM",fieldOptions.COORD_SYSTEM);break}}}exports.parseSchema=parseSchema;exports.REDISEARCH_LANGUAGE={ARABIC:"Arabic",BASQUE:"Basque",CATALANA:"Catalan",DANISH:"Danish",DUTCH:"Dutch",ENGLISH:"English",FINNISH:"Finnish",FRENCH:"French",GERMAN:"German",GREEK:"Greek",HUNGARIAN:"Hungarian",INDONESAIN:"Indonesian",IRISH:"Irish",ITALIAN:"Italian",LITHUANIAN:"Lithuanian",NEPALI:"Nepali",NORWEIGAN:"Norwegian",PORTUGUESE:"Portuguese",ROMANIAN:"Romanian",RUSSIAN:"Russian",SPANISH:"Spanish",SWEDISH:"Swedish",TAMIL:"Tamil",TURKISH:"Turkish",CHINESE:"Chinese"};exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,schema,options){if(parser.push("FT.CREATE",index),options?.ON)parser.push("ON",options.ON);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"PREFIX",options?.PREFIX),options?.FILTER)parser.push("FILTER",options.FILTER);if(options?.LANGUAGE)parser.push("LANGUAGE",options.LANGUAGE);if(options?.LANGUAGE_FIELD)parser.push("LANGUAGE_FIELD",options.LANGUAGE_FIELD);if(options?.SCORE)parser.push("SCORE",options.SCORE.toString());if(options?.SCORE_FIELD)parser.push("SCORE_FIELD",options.SCORE_FIELD);if(options?.MAXTEXTFIELDS)parser.push("MAXTEXTFIELDS");if(options?.TEMPORARY)parser.push("TEMPORARY",options.TEMPORARY.toString());if(options?.NOOFFSETS)parser.push("NOOFFSETS");if(options?.NOHL)parser.push("NOHL");if(options?.NOFIELDS)parser.push("NOFIELDS");if(options?.NOFREQS)parser.push("NOFREQS");if(options?.SKIPINITIALSCAN)parser.push("SKIPINITIALSCAN");(0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"STOPWORDS",options?.STOPWORDS),parser.push("SCHEMA"),parseSchema(parser,schema)},transformReply:void 0}});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.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}},3:void 0},unstableResp3:!0};function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}});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_HYBRID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SEARCH_1=require_SEARCH();function parseSearchExpression(parser,search){if(parser.push("SEARCH",search.query),search.SCORER){if(parser.push("SCORER",search.SCORER.algorithm),search.SCORER.params)parser.push(...search.SCORER.params)}if(search.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",search.YIELD_SCORE_AS)}function parseVectorExpression(parser,vsim){if(parser.push("VSIM",vsim.field,vsim.vectorData),vsim.method){if(vsim.method.KNN){let knn=vsim.method.KNN;if(parser.push("KNN","1","K",knn.K.toString()),knn.EF_RUNTIME!==void 0)parser.push("EF_RUNTIME",knn.EF_RUNTIME.toString());if(knn.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",knn.YIELD_DISTANCE_AS)}if(vsim.method.RANGE){let range4=vsim.method.RANGE;if(parser.push("RANGE","1","RADIUS",range4.RADIUS.toString()),range4.EPSILON!==void 0)parser.push("EPSILON",range4.EPSILON.toString());if(range4.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",range4.YIELD_DISTANCE_AS)}}if(vsim.FILTER){if(parser.push("FILTER",vsim.FILTER.expression),vsim.FILTER.POLICY){if(parser.push("POLICY",vsim.FILTER.POLICY),vsim.FILTER.POLICY==="BATCHES"&&vsim.FILTER.BATCHES)parser.push("BATCHES","BATCH_SIZE",vsim.FILTER.BATCHES.BATCH_SIZE.toString())}}if(vsim.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",vsim.YIELD_SCORE_AS)}function parseCombineMethod(parser,combine11){if(!combine11)return;if(parser.push("COMBINE"),combine11.method.RRF){let rrf=combine11.method.RRF;if(parser.push("RRF",rrf.count.toString()),rrf.WINDOW!==void 0)parser.push("WINDOW",rrf.WINDOW.toString());if(rrf.CONSTANT!==void 0)parser.push("CONSTANT",rrf.CONSTANT.toString())}if(combine11.method.LINEAR){let linear2=combine11.method.LINEAR;if(parser.push("LINEAR",linear2.count.toString()),linear2.ALPHA!==void 0)parser.push("ALPHA",linear2.ALPHA.toString());if(linear2.BETA!==void 0)parser.push("BETA",linear2.BETA.toString())}if(combine11.method.FUNCTION)parser.push("FUNCTION",combine11.method.FUNCTION);if(combine11.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",combine11.YIELD_SCORE_AS)}function parseHybridOptions(parser,options){if(!options)return;if(options.SEARCH)parseSearchExpression(parser,options.SEARCH);if(options.VSIM)parseVectorExpression(parser,options.VSIM);if(options.COMBINE)parseCombineMethod(parser,options.COMBINE);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"LOAD",options.LOAD),options.GROUPBY){if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"GROUPBY",options.GROUPBY.fields),options.GROUPBY.REDUCE)parser.push("REDUCE",options.GROUPBY.REDUCE.function,options.GROUPBY.REDUCE.count.toString()),parser.push(...options.GROUPBY.REDUCE.args)}if(options.APPLY)parser.push("APPLY",options.APPLY.expression,"AS",options.APPLY.AS);if(options.SORTBY){parser.push("SORTBY",options.SORTBY.count.toString());for(let sortField of options.SORTBY.fields)if(parser.push(sortField.field),sortField.direction)parser.push(sortField.direction)}if(options.FILTER)parser.push("FILTER",options.FILTER);if(options.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.num.toString());if((0,SEARCH_1.parseParamsArgument)(parser,options.PARAMS),options.EXPLAINSCORE)parser.push("EXPLAINSCORE");if(options.TIMEOUT!==void 0)parser.push("TIMEOUT",options.TIMEOUT.toString());if(options.WITHCURSOR){if(parser.push("WITHCURSOR"),options.WITHCURSOR.COUNT!==void 0)parser.push("COUNT",options.WITHCURSOR.COUNT.toString());if(options.WITHCURSOR.MAXIDLE!==void 0)parser.push("MAXIDLE",options.WITHCURSOR.MAXIDLE.toString())}}exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,options){parser.push("FT.HYBRID",index),parseHybridOptions(parser,options)},transformReply:{2:(reply)=>{if(Array.isArray(reply)&&reply.length===2&&typeof reply[1]==="number"){let[searchResults,cursor]=reply;return{...transformHybridSearchResults(searchResults),cursor}}else return transformHybridSearchResults(reply)},3:void 0},unstableResp3:!0};function transformHybridSearchResults(reply){let withoutDocuments=reply.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}}function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}});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()),HYBRID_1=__importDefault(require_HYBRID()),INFO_1=__importDefault(require_INFO7()),PROFILE_SEARCH_1=__importDefault(require_PROFILE_SEARCH()),PROFILE_AGGREGATE_1=__importDefault(require_PROFILE_AGGREGATE()),SEARCH_NOCONTENT_1=__importDefault(require_SEARCH_NOCONTENT()),SEARCH_1=__importDefault(require_SEARCH()),SPELLCHECK_1=__importDefault(require_SPELLCHECK()),SUGADD_1=__importDefault(require_SUGADD()),SUGDEL_1=__importDefault(require_SUGDEL()),SUGGET_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHPAYLOADS()),SUGGET_WITHSCORES_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHSCORES_WITHPAYLOADS()),SUGGET_WITHSCORES_1=__importDefault(require_SUGGET_WITHSCORES()),SUGGET_1=__importDefault(require_SUGGET()),SUGLEN_1=__importDefault(require_SUGLEN()),SYNDUMP_1=__importDefault(require_SYNDUMP()),SYNUPDATE_1=__importDefault(require_SYNUPDATE()),TAGVALS_1=__importDefault(require_TAGVALS());exports.default={_LIST:_LIST_1.default,_list:_LIST_1.default,ALTER:ALTER_1.default,alter:ALTER_1.default,AGGREGATE_WITHCURSOR:AGGREGATE_WITHCURSOR_1.default,aggregateWithCursor:AGGREGATE_WITHCURSOR_1.default,AGGREGATE:AGGREGATE_1.default,aggregate:AGGREGATE_1.default,ALIASADD:ALIASADD_1.default,aliasAdd:ALIASADD_1.default,ALIASDEL:ALIASDEL_1.default,aliasDel:ALIASDEL_1.default,ALIASUPDATE:ALIASUPDATE_1.default,aliasUpdate:ALIASUPDATE_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,CREATE:CREATE_1.default,create:CREATE_1.default,CURSOR_DEL:CURSOR_DEL_1.default,cursorDel:CURSOR_DEL_1.default,CURSOR_READ:CURSOR_READ_1.default,cursorRead:CURSOR_READ_1.default,DICTADD:DICTADD_1.default,dictAdd:DICTADD_1.default,DICTDEL:DICTDEL_1.default,dictDel:DICTDEL_1.default,DICTDUMP:DICTDUMP_1.default,dictDump:DICTDUMP_1.default,DROPINDEX:DROPINDEX_1.default,dropIndex:DROPINDEX_1.default,EXPLAIN:EXPLAIN_1.default,explain:EXPLAIN_1.default,EXPLAINCLI:EXPLAINCLI_1.default,explainCli:EXPLAINCLI_1.default,HYBRID:HYBRID_1.default,hybrid:HYBRID_1.default,INFO:INFO_1.default,info:INFO_1.default,PROFILESEARCH:PROFILE_SEARCH_1.default,profileSearch:PROFILE_SEARCH_1.default,PROFILEAGGREGATE:PROFILE_AGGREGATE_1.default,profileAggregate:PROFILE_AGGREGATE_1.default,SEARCH_NOCONTENT:SEARCH_NOCONTENT_1.default,searchNoContent:SEARCH_NOCONTENT_1.default,SEARCH:SEARCH_1.default,search:SEARCH_1.default,SPELLCHECK:SPELLCHECK_1.default,spellCheck:SPELLCHECK_1.default,SUGADD:SUGADD_1.default,sugAdd:SUGADD_1.default,SUGDEL:SUGDEL_1.default,sugDel:SUGDEL_1.default,SUGGET_WITHPAYLOADS:SUGGET_WITHPAYLOADS_1.default,sugGetWithPayloads:SUGGET_WITHPAYLOADS_1.default,SUGGET_WITHSCORES_WITHPAYLOADS:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,sugGetWithScoresWithPayloads:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,SUGGET_WITHSCORES:SUGGET_WITHSCORES_1.default,sugGetWithScores:SUGGET_WITHSCORES_1.default,SUGGET:SUGGET_1.default,sugGet:SUGGET_1.default,SUGLEN:SUGLEN_1.default,sugLen:SUGLEN_1.default,SYNDUMP:SYNDUMP_1.default,synDump:SYNDUMP_1.default,SYNUPDATE:SYNUPDATE_1.default,synUpdate:SYNUPDATE_1.default,TAGVALS:TAGVALS_1.default,tagVals:TAGVALS_1.default}});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,filter11){parser.push("FILTER"),parser.pushVariadic(filter11)}exports.parseFilterArgument=parseFilterArgument;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter11,options){parser.push("TS.MGET"),parseLatestArgument(parser,options?.LATEST),parseFilterArgument(parser,filter11)},transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([,,sample])=>{return{sample:helpers_1.transformSampleReply[2](sample)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([,sample])=>{return{sample:helpers_1.transformSampleReply[3](sample)}})}}}});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,filter11,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)},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,filter11,selectedLabels,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)},transformReply:(0,MGET_WITHLABELS_1.createTransformMGetLabelsReply)()}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11),parseGroupByArguments(parser,groupBy3)}}exports.createTransformMRangeGroupByArguments=createTransformMRangeGroupByArguments;function extractResp3MRangeSources(raw){let unwrappedMetadata2=raw;if(unwrappedMetadata2 instanceof Map)return unwrappedMetadata2.get("sources");else if(unwrappedMetadata2 instanceof Array)return unwrappedMetadata2[1];else return unwrappedMetadata2.sources}exports.extractResp3MRangeSources=extractResp3MRangeSources;exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeGroupByArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return{samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata1,metadata2,samples])=>{return{sources:extractResp3MRangeSources(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeSelectedLabelsArguments=createTransformMRangeSelectedLabelsArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeSelectedLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{return{labels:(0,helpers_1.transformRESP2Labels)(labels,typeMapping),samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_key,labels,samples])=>{return{labels,samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeSelectedLabelsGroupByTransformArguments=createMRangeSelectedLabelsGroupByTransformArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeSelectedLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2:MRANGE_SELECTED_LABELS_1.default.transformReply[2],3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeWithLabelsGroupByTransformArguments=createMRangeWithLabelsGroupByTransformArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeWithLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let transformed=(0,helpers_1.transformRESP2LabelsWithSources)(labels);return{labels:transformed.labels,sources:transformed.sources,samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeWithLabelsArguments=createTransformMRangeWithLabelsArguments;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeWithLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let unwrappedLabels=labels,labelsObject=Object.create(null);for(let 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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeArguments=createTransformMRangeArguments;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return helpers_1.transformSamplesReply[2](samples)},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata,samples])=>{return helpers_1.transformSamplesReply[3](samples)})}}}});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,filter11){parser.push("TS.QUERYINDEX"),parser.pushVariadic(filter11)},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.createClientPool=exports.createClient=void 0;var client_1=require_dist(),bloom_1=__importDefault(require_lib2()),json_1=__importDefault(require_lib3()),search_1=__importDefault(require_lib4()),time_series_1=__importDefault(require_lib5());__exportStar(require_dist(),exports);__exportStar(require_lib2(),exports);__exportStar(require_lib3(),exports);__exportStar(require_lib4(),exports);__exportStar(require_lib5(),exports);var modules={...bloom_1.default,json:json_1.default,ft:search_1.default,ts:time_series_1.default};function createClient(options){return(0,client_1.createClient)({...options,modules:{...modules,...options?.modules}})}exports.createClient=createClient;function createClientPool(clientOptions,options){return(0,client_1.createClientPool)({...clientOptions,modules:{...modules,...clientOptions?.modules}},options)}exports.createClientPool=createClientPool;function createCluster(options){return(0,client_1.createCluster)({...options,modules:{...modules,...options?.modules}})}exports.createCluster=createCluster;function createSentinel(options){return(0,client_1.createSentinel)({...options,modules:{...modules,...options?.modules}})}exports.createSentinel=createSentinel});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),constNull=constant(null),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`;var GenKindTypeId=Symbol.for("effect/Gen/GenKind"),isGenKind=(u)=>isObject(u)&&(GenKindTypeId in u);class GenKindImpl{value;constructor(value){this.value=value}get _F(){return identity}get _R(){return(_)=>_}get _O(){return(_)=>_}get _E(){return(_)=>_}[GenKindTypeId]=GenKindTypeId;[Symbol.iterator](){return new SingleShotGen(this)}}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 adapter=()=>function(){let x=arguments[0];for(let i=1;i<arguments.length;i++)x=arguments[i](x);return new GenKindImpl(x)},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},getLeft=(self)=>isRight(self)?none:some(self.left),getRight=(self)=>isLeft(self)?none:some(self.right);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 exports_Option={};__export(exports_Option,{zipWith:()=>zipWith,zipRight:()=>zipRight,zipLeft:()=>zipLeft,void:()=>void_,toRefinement:()=>toRefinement,toArray:()=>toArray,tap:()=>tap,some:()=>some2,reduceCompact:()=>reduceCompact,productMany:()=>productMany,product:()=>product,partitionMap:()=>partitionMap,orElseSome:()=>orElseSome,orElseEither:()=>orElseEither,orElse:()=>orElse,none:()=>none2,mergeWith:()=>mergeWith,match:()=>match2,map:()=>map,liftThrowable:()=>liftThrowable,liftPredicate:()=>liftPredicate,liftNullable:()=>liftNullable,lift2:()=>lift2,let:()=>let_2,isSome:()=>isSome2,isOption:()=>isOption2,isNone:()=>isNone2,getRight:()=>getRight2,getOrder:()=>getOrder,getOrUndefined:()=>getOrUndefined,getOrThrowWith:()=>getOrThrowWith,getOrThrow:()=>getOrThrow,getOrNull:()=>getOrNull,getOrElse:()=>getOrElse,getLeft:()=>getLeft2,getEquivalence:()=>getEquivalence,gen:()=>gen,fromNullable:()=>fromNullable,fromIterable:()=>fromIterable,flatten:()=>flatten,flatMapNullable:()=>flatMapNullable,flatMap:()=>flatMap,firstSomeOf:()=>firstSomeOf,filterMap:()=>filterMap,filter:()=>filter,exists:()=>exists,containsWith:()=>containsWith,contains:()=>contains,composeK:()=>composeK,bindTo:()=>bindTo2,bind:()=>bind2,asVoid:()=>asVoid,as:()=>as,ap:()=>ap,andThen:()=>andThen,all:()=>all,TypeId:()=>TypeId3,Do:()=>Do});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 TypeId3=Symbol.for("effect/Option"),none2=()=>none,some2=some,isOption2=isOption,isNone2=isNone,isSome2=isSome,match2=dual(2,(self,{onNone,onSome})=>isNone2(self)?onNone():onSome(self.value)),toRefinement=(f)=>(a)=>isSome2(f(a)),fromIterable=(collection)=>{for(let a of collection)return some2(a);return none2()},getRight2=getRight,getLeft2=getLeft,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),orElseEither=dual(2,(self,that)=>isNone2(self)?map(that(),right):map(self,left)),firstSomeOf=(collection)=>{let out=none2();for(out of collection)if(isSome2(out))return out;return out},fromNullable=(nullableValue)=>nullableValue==null?none2():some2(nullableValue),liftNullable=(f)=>(...a)=>fromNullable(f(...a)),getOrNull=getOrElse(constNull),getOrUndefined=getOrElse(constUndefined),liftThrowable=(f)=>(...a)=>{try{return some2(f(...a))}catch{return none2()}},getOrThrowWith=dual(2,(self,onNone)=>{if(isSome2(self))return self.value;throw onNone()}),getOrThrow=getOrThrowWith(()=>Error("getOrThrow called on a None")),map=dual(2,(self,f)=>isNone2(self)?none2():some2(f(self.value))),as=dual(2,(self,b)=>map(self,()=>b)),asVoid=as(void 0),void_=some2(void 0);var flatMap=dual(2,(self,f)=>isNone2(self)?none2():f(self.value)),andThen=dual(2,(self,f)=>flatMap(self,(a)=>{let b=isFunction(f)?f(a):f;return isOption2(b)?b:some2(b)})),flatMapNullable=dual(2,(self,f)=>isNone2(self)?none2():fromNullable(f(self.value))),flatten=flatMap(identity),zipRight=dual(2,(self,that)=>flatMap(self,()=>that)),zipLeft=dual(2,(self,that)=>tap(self,()=>that)),composeK=dual(2,(afb,bfc)=>(a)=>flatMap(afb(a),bfc)),tap=dual(2,(self,f)=>flatMap(self,(a)=>map(f(a),()=>a))),product=(self,that)=>isSome2(self)&&isSome2(that)?some2([self.value,that.value]):none2(),productMany=(self,collection)=>{if(isNone2(self))return none2();let out=[self.value];for(let o of collection){if(isNone2(o))return none2();out.push(o.value)}return some2(out)},all=(input)=>{if(Symbol.iterator in input){let out2=[];for(let o of input){if(isNone2(o))return none2();out2.push(o.value)}return some2(out2)}let out={};for(let key of Object.keys(input)){let o=input[key];if(isNone2(o))return none2();out[key]=o.value}return some2(out)},zipWith=dual(3,(self,that,f)=>map(product(self,that),([a,b])=>f(a,b))),ap=dual(2,(self,that)=>zipWith(self,that,(f,a)=>f(a))),reduceCompact=dual(3,(self,b,f)=>{let out=b;for(let oa of self)if(isSome2(oa))out=f(out,oa.value);return out}),toArray=(self)=>isNone2(self)?[]:[self.value],partitionMap=dual(2,(self,f)=>{if(isNone2(self))return[none2(),none2()];let e=f(self.value);return isLeft(e)?[some2(e.left),none2()]:[none2(),some2(e.right)]}),filterMap=flatMap,filter=dual(2,(self,predicate)=>filterMap(self,(b)=>predicate(b)?some(b):none)),getEquivalence=(isEquivalent)=>make((x,y)=>isNone2(x)?isNone2(y):isNone2(y)?!1:isEquivalent(x.value,y.value)),getOrder=(O)=>make2((self,that)=>isSome2(self)?isSome2(that)?O(self.value,that.value):1:-1),lift2=(f)=>dual(2,(self,that)=>zipWith(self,that,f)),liftPredicate=dual(2,(b,predicate)=>predicate(b)?some2(b):none2()),containsWith=(isEquivalent)=>dual(2,(self,a)=>isNone2(self)?!1:isEquivalent(self.value,a)),_equivalence=equivalence(),contains=containsWith(_equivalence),exists=dual(2,(self,refinement)=>isNone2(self)?!1:refinement(self.value)),bindTo2=bindTo(map),let_2=let_(map);var bind2=bind(map,flatMap),Do=some2({}),adapter2=adapter(),gen=(...args)=>{let iterator=(args.length===1?args[0]:args[1].bind(args[0]))(adapter2),state=iterator.next();while(!state.done){let current=isGenKind(state.value)?state.value.value:yieldWrapGet(state.value);if(isNone2(current))return current;state=iterator.next(current.value)}return some2(state.value)},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 fromIterable2=(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)=>fromIterable2(self).concat(fromIterable2(that)));var isEmptyArray=(self)=>self.length===0,isEmptyReadonlyArray=isEmptyArray,isNonEmptyArray2=isNonEmptyArray,isNonEmptyReadonlyArray=isNonEmptyArray;var isOutOfBounds=(i,as2)=>i<0||i>=as2.length,clamp=(i,as2)=>Math.floor(Math.min(Math.max(0,i),as2.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=fromIterable2(self);return input.slice(clamp(n,input),input.length)});var findFirstIndex=dual(2,(self,predicate)=>{let i=0;for(let a of self){if(predicate(a,i))return some2(i);i++}return none2()}),findLastIndex=dual(2,(self,predicate)=>{let input=fromIterable2(self);for(let i=input.length-1;i>=0;i--)if(predicate(input[i],i))return some2(i);return none2()}),findFirst2=findFirst,findLast=dual(2,(self,f)=>{let input=fromIterable2(self);for(let i=input.length-1;i>=0;i--){let a=input[i],o=f(a,i);if(isBoolean(o)){if(o)return some2(a)}else if(isSome2(o))return o}return none2()});var modify=dual(3,(self,i,f)=>{let out=Array.from(self);if(isOutOfBounds(i,out))return out;let b=f(out[i]);return out[i]=b,out});var remove=dual(2,(self,i)=>{let out=Array.from(self);if(isOutOfBounds(i,out))return out;return out.splice(i,1),out});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)=>zipWith2(self,that,make3)),zipWith2=dual(3,(self,that,f)=>{let as2=fromIterable2(self),bs=fromIterable2(that);if(isNonEmptyReadonlyArray(as2)&&isNonEmptyReadonlyArray(bs)){let out=[f(headNonEmpty(as2),headNonEmpty(bs))],len=Math.min(as2.length,bs.length);for(let i=1;i<len;i++)out[i]=f(as2[i],bs[i]);return out}return[]}),unzip=(self)=>{let input=fromIterable2(self);if(isNonEmptyReadonlyArray(input)){let fa=[input[0][0]],fb=[input[0][1]];for(let i=1;i<input.length;i++)fa[i]=input[i][0],fb[i]=input[i][1];return[fa,fb]}return[[],[]]};var containsWith2=(isEquivalent)=>dual(2,(self,a)=>{for(let i of self)if(isEquivalent(a,i))return!0;return!1}),_equivalence2=equivalence(),contains2=containsWith2(_equivalence2);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=fromIterable2(self),b=fromIterable2(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)),intersectionWith=(isEquivalent)=>{let has=containsWith2(isEquivalent);return dual(2,(self,that)=>{let bs=fromIterable2(that);return fromIterable2(self).filter((a)=>has(bs,a))})},intersection=intersectionWith(_equivalence2),differenceWith=(isEquivalent)=>{let has=containsWith2(isEquivalent);return dual(2,(self,that)=>{let bs=fromIterable2(that);return fromIterable2(self).filter((a)=>!has(bs,a))})},difference=differenceWith(_equivalence2),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}),flatten2=flatMap2(identity),filterMap2=dual(2,(self,f)=>{let as2=fromIterable2(self),out=[];for(let i=0;i<as2.length;i++){let o=f(as2[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}),partitionMap2=dual(2,(self,f)=>{let left3=[],right3=[],as2=fromIterable2(self);for(let i=0;i<as2.length;i++){let e=f(as2[i],i);if(isLeft2(e))left3.push(e.left);else right3.push(e.right)}return[left3,right3]}),getSomes=filterMap2(identity);var filter2=dual(2,(self,predicate)=>{let as2=fromIterable2(self),out=[];for(let i=0;i<as2.length;i++)if(predicate(as2[i],i))out.push(as2[i]);return out}),partition=dual(2,(self,predicate)=>{let left3=[],right3=[],as2=fromIterable2(self);for(let i=0;i<as2.length;i++)if(predicate(as2[i],i))right3.push(as2[i]);else left3.push(as2[i]);return[left3,right3]}),separate=partitionMap2(identity),reduce=dual(3,(self,b,f)=>fromIterable2(self).reduce((b2,a,i)=>f(b2,a,i),b)),reduceRight=dual(3,(self,b,f)=>fromIterable2(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 getEquivalence2=array;var dedupeWith=dual(2,(self,isEquivalent)=>{let input=fromIterable2(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()),dedupeAdjacentWith=dual(2,(self,isEquivalent)=>{let out=[],lastA=none2();for(let a of self)if(isNone2(lastA)||!isEquivalent(a,lastA.value))out.push(a),lastA=some2(a);return out}),dedupeAdjacent=dedupeAdjacentWith(equivalence()),join=dual(2,(self,sep)=>fromIterable2(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},TypeId4=Symbol.for("effect/Context"),ContextProto={[TypeId4]:{_Services:(_)=>_},[symbol2](that){if(isContext(that)){if(this.unsafeMap.size===that.unsafeMap.size){for(let k of this.unsafeMap.keys())if(!that.unsafeMap.has(k)||!equals(this.unsafeMap.get(k),that.unsafeMap.get(k)))return!1;return!0}}return!1},[symbol](){return cached(this,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(`
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;if(this.#isActive=!0,type===exports.PUBSUB_TYPE.SHARDED)this.#shardedResubscribe(commands,listeners);else this.#normalResubscribe(commands,type,listeners)}return commands}#normalResubscribe(commands,type,listeners){this.#subscribing++;let callback=()=>this.#subscribing--;commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}#shardedResubscribe(commands,listeners){let callback=()=>this.#subscribing--;for(let channel of listeners.keys())this.#subscribing++,commands.push({args:[COMMANDS[exports.PUBSUB_TYPE.SHARDED].subscribe,channel],channelsCounter:1,resolve:callback,reject:callback})}handleMessageReply(reply){if(COMMANDS[exports.PUBSUB_TYPE.CHANNELS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.CHANNELS,reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.PATTERNS].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.PATTERNS,reply[3],reply[2],reply[1]),!0;else if(COMMANDS[exports.PUBSUB_TYPE.SHARDED].message.equals(reply[0]))return this.#emitPubSubMessage(exports.PUBSUB_TYPE.SHARDED,reply[2],reply[1]),!0;return!1}removeShardedListeners(channel){let listeners=this.listeners[exports.PUBSUB_TYPE.SHARDED].get(channel);return this.listeners[exports.PUBSUB_TYPE.SHARDED].delete(channel),this.#updateIsActive(),listeners}removeAllListeners(){let result={[exports.PUBSUB_TYPE.CHANNELS]:this.listeners[exports.PUBSUB_TYPE.CHANNELS],[exports.PUBSUB_TYPE.PATTERNS]:this.listeners[exports.PUBSUB_TYPE.PATTERNS],[exports.PUBSUB_TYPE.SHARDED]:this.listeners[exports.PUBSUB_TYPE.SHARDED]};return this.#updateIsActive(),this.listeners[exports.PUBSUB_TYPE.CHANNELS]=new Map,this.listeners[exports.PUBSUB_TYPE.PATTERNS]=new Map,this.listeners[exports.PUBSUB_TYPE.SHARDED]=new Map,result}#emitPubSubMessage(type,message,channel,pattern){let keyString=(pattern??channel).toString(),listeners=this.listeners[type].get(keyString);if(!listeners)return;for(let listener of listeners.buffers)listener(message,channel);if(!listeners.strings.size)return;let channelString=pattern?channel.toString():keyString,messageString=channelString==="__redis__:invalidate"?message===null?null:message.map((x)=>x.toString()):message.toString();for(let listener of listeners.strings)listener(messageString,channelString)}}exports.PubSub=PubSub});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(),enterprise_maintenance_manager_1=require_enterprise_maintenance_manager(),PONG=Buffer.from("pong"),RESET=Buffer.from("RESET"),RESP2_PUSH_TYPE_MAPPING={...decoder_1.PUSH_TYPE_MAPPING,[decoder_1.RESP_TYPES.SIMPLE_STRING]:Buffer};class RedisCommandsQueue{#respVersion;#maxLength;#toWrite=new linked_list_1.DoublyLinkedList;#waitingForReply=new linked_list_1.EmptyAwareSinglyLinkedList;#onShardedChannelMoved;#chainInExecution;decoder;#pubSub=new pub_sub_1.PubSub;#pushHandlers=[this.#onPush.bind(this)];#maintenanceCommandTimeout;setMaintenanceCommandTimeout(ms){if(this.#maintenanceCommandTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Queue already set maintenanceCommandTimeout to ${ms}, skipping`);return}if((0,enterprise_maintenance_manager_1.dbgMaintenance)(`Setting maintenance command timeout to ${ms}`),this.#maintenanceCommandTimeout=ms,this.#maintenanceCommandTimeout===void 0){(0,enterprise_maintenance_manager_1.dbgMaintenance)("Queue will keep maintenanceCommandTimeout for exisitng commands, just to be on the safe side. New commands will receive normal timeouts");return}let counter6=0,total=this.#toWrite.length;for(let node of this.#toWrite.nodes()){let command=node.value;RedisCommandsQueue.#removeTimeoutListener(command),counter6++;let newTimeout=this.#maintenanceCommandTimeout,signal=AbortSignal.timeout(newTimeout);command.timeout={signal,listener:()=>{this.#toWrite.remove(node),command.reject(new errors_1.CommandTimeoutDuringMaintenanceError(newTimeout))},originalTimeout:command.timeout?.originalTimeout},signal.addEventListener("abort",command.timeout.listener,{once:!0})}(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Total of ${counter6} of ${total} timeouts reset to ${ms}`)}get isPubSubActive(){return this.#pubSub.isActive}constructor(respVersion,maxLength,onShardedChannelMoved){this.#respVersion=respVersion,this.#maxLength=maxLength,this.#onShardedChannelMoved=onShardedChannelMoved,this.decoder=this.#initiateDecoder()}#onReply(reply){this.#waitingForReply.shift().resolve(reply)}#onErrorReply(err){this.#waitingForReply.shift().reject(err)}#onPush(push){if(this.#pubSub.handleMessageReply(push))return!0;let isShardedUnsubscribe=pub_sub_1.PubSub.isShardedUnsubscribe(push);if(isShardedUnsubscribe&&!this.#waitingForReply.length){let channel=push[1].toString();return this.#onShardedChannelMoved(channel,this.#pubSub.removeShardedListeners(channel)),!0}else if(isShardedUnsubscribe||pub_sub_1.PubSub.isStatusReply(push)){let head6=this.#waitingForReply.head.value;if(Number.isNaN(head6.channelsCounter)&&push[2]===0||--head6.channelsCounter===0)this.#waitingForReply.shift().resolve();return!0}return!1}#getTypeMapping(){return this.#waitingForReply.head.value.typeMapping??{}}#initiateDecoder(){return new decoder_1.Decoder({onReply:(reply)=>this.#onReply(reply),onErrorReply:(err)=>this.#onErrorReply(err),onPush:(push)=>{for(let pushHandler of this.#pushHandlers)if(pushHandler(push))return},getTypeMapping:()=>this.#getTypeMapping()})}addPushHandler(handler){this.#pushHandlers.push(handler)}async waitForInflightCommandsToComplete(){if(this.#waitingForReply.length===0)return;return new Promise((resolve)=>{this.#waitingForReply.events.on("empty",resolve)})}addCommand(args2,options){if(this.#maxLength&&this.#toWrite.length+this.#waitingForReply.length>=this.#maxLength)return Promise.reject(Error("The queue is full"));else if(options?.abortSignal?.aborted)return Promise.reject(new errors_1.AbortError);return new Promise((resolve,reject)=>{let node,value={args:args2,chainId:options?.chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping:options?.typeMapping},timeout5=this.#maintenanceCommandTimeout??options?.timeout,wasInMaintenance=this.#maintenanceCommandTimeout!==void 0;if(timeout5){let signal2=AbortSignal.timeout(timeout5);value.timeout={signal:signal2,listener:()=>{this.#toWrite.remove(node),value.reject(wasInMaintenance?new errors_1.CommandTimeoutDuringMaintenanceError(timeout5):new errors_1.TimeoutError)},originalTimeout:options?.timeout},signal2.addEventListener("abort",value.timeout.listener,{once:!0})}let signal=options?.abortSignal;if(signal)value.abort={signal,listener:()=>{this.#toWrite.remove(node),value.reject(new errors_1.AbortError)}},signal.addEventListener("abort",value.abort.listener,{once:!0});node=this.#toWrite.add(value,options?.asap)})}#addPubSubCommand(command,asap=!1,chainId){return new Promise((resolve,reject)=>{this.#toWrite.add({args:command.args,chainId,abort:void 0,timeout:void 0,resolve(){command.resolve(),resolve()},reject(err){command.reject?.(),reject(err)},channelsCounter:command.channelsCounter,typeMapping:decoder_1.PUSH_TYPE_MAPPING},asap)})}#setupPubSubHandler(){if(this.#respVersion!==2)return;this.decoder.onReply=(reply)=>{if(Array.isArray(reply)){if(this.#onPush(reply))return;if(PONG.equals(reply[0])){let{resolve,typeMapping}=this.#waitingForReply.shift(),buffer3=reply[1].length===0?reply[0]:reply[1];resolve(typeMapping?.[decoder_1.RESP_TYPES.SIMPLE_STRING]===Buffer?buffer3:buffer3.toString());return}}return this.#onReply(reply)},this.decoder.getTypeMapping=()=>RESP2_PUSH_TYPE_MAPPING}subscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.subscribe(type,channels,listener,returnBuffers);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}#resetDecoderCallbacks(){this.decoder.onReply=(reply)=>this.#onReply(reply),this.decoder.getTypeMapping=()=>this.#getTypeMapping()}unsubscribe(type,channels,listener,returnBuffers){let command=this.#pubSub.unsubscribe(type,channels,listener,returnBuffers);if(!command)return;if(command&&this.#respVersion===2){let{resolve}=command;command.resolve=()=>{if(!this.#pubSub.isActive)this.#resetDecoderCallbacks();resolve()}}return this.#addPubSubCommand(command)}removeAllPubSubListeners(){return this.#pubSub.removeAllListeners()}resubscribe(chainId){let commands=this.#pubSub.resubscribe();if(!commands.length)return;return this.#setupPubSubHandler(),Promise.all(commands.map((command)=>this.#addPubSubCommand(command,!0,chainId)))}extendPubSubChannelListeners(type,channel,listeners){let command=this.#pubSub.extendChannelListeners(type,channel,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}extendPubSubListeners(type,listeners){let command=this.#pubSub.extendTypeListeners(type,listeners);if(!command)return;return this.#setupPubSubHandler(),this.#addPubSubCommand(command)}getPubSubListeners(type){return this.#pubSub.listeners[type]}monitor(callback,options){return new Promise((resolve,reject)=>{let typeMapping=options?.typeMapping??{};this.#toWrite.add({args:["MONITOR"],chainId:options?.chainId,abort:void 0,timeout:void 0,resolve:()=>{if(this.#resetFallbackOnReply)this.#resetFallbackOnReply=callback;else this.decoder.onReply=callback;this.decoder.getTypeMapping=()=>typeMapping,resolve()},reject,channelsCounter:void 0,typeMapping},options?.asap)})}resetDecoder(){this.#resetDecoderCallbacks(),this.decoder.reset()}#resetFallbackOnReply;async reset(chainId,typeMapping){return new Promise((resolve,reject)=>{this.#resetFallbackOnReply=this.decoder.onReply,this.decoder.onReply=(reply)=>{if(typeof reply==="string"&&reply==="RESET"||reply instanceof Buffer&&RESET.equals(reply)){this.#resetDecoderCallbacks(),this.#resetFallbackOnReply=void 0,this.#pubSub.reset(),this.#waitingForReply.shift().resolve(reply);return}this.#resetFallbackOnReply(reply)},this.#toWrite.push({args:["RESET"],chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping})})}isWaitingToWrite(){return this.#toWrite.length>0}*commandsToWrite(){let toSend=this.#toWrite.shift();while(toSend){let encoded;try{encoded=(0,encoder_1.default)(toSend.args)}catch(err){toSend.reject(err),toSend=this.#toWrite.shift();continue}if(toSend.args=void 0,toSend.abort)RedisCommandsQueue.#removeAbortListener(toSend),toSend.abort=void 0;if(toSend.timeout)RedisCommandsQueue.#removeTimeoutListener(toSend),toSend.timeout=void 0;this.#chainInExecution=toSend.chainId,toSend.chainId=void 0,this.#waitingForReply.push(toSend),yield encoded,toSend=this.#toWrite.shift()}}#flushWaitingForReply(err){for(let node of this.#waitingForReply)node.reject(err);this.#waitingForReply.reset()}static#removeAbortListener(command){command.abort.signal.removeEventListener("abort",command.abort.listener)}static#removeTimeoutListener(command){command.timeout?.signal.removeEventListener("abort",command.timeout.listener)}static#flushToWrite(toBeSent,err){if(toBeSent.abort)RedisCommandsQueue.#removeAbortListener(toBeSent);if(toBeSent.timeout)RedisCommandsQueue.#removeTimeoutListener(toBeSent);toBeSent.reject(err)}flushWaitingForReply(err){if(this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err),!this.#chainInExecution)return;while(this.#toWrite.head?.value.chainId===this.#chainInExecution)RedisCommandsQueue.#flushToWrite(this.#toWrite.shift(),err);this.#chainInExecution=void 0}flushAll(err){this.resetDecoder(),this.#pubSub.reset(),this.#flushWaitingForReply(err);for(let node of this.#toWrite)RedisCommandsQueue.#flushToWrite(node,err);this.#toWrite.reset()}isEmpty(){return this.#toWrite.length===0&&this.#waitingForReply.length===0}}exports.default=RedisCommandsQueue});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:tail2}=this._self.#tasksQueue;if(!client){let timeout5;if(this._self.#options.acquireTimeout>0)timeout5=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail2),reject(new errors_1.TimeoutError("Timeout waiting for a client"))},this._self.#options.acquireTimeout);let task=this._self.#tasksQueue.push({timeout:timeout5,resolve,reject,fn:fn2});if(this.totalClients<this._self.#options.maximum)this._self.#create();return}let node=this._self.#clientsInUse.push(client);this._self.#executeTask(node,resolve,reject,fn2)})}#executeTask(node,resolve,reject,fn2){let result=fn2(node.value);if(result instanceof Promise)result.then(resolve,reject).finally(()=>this.#returnClient(node));else resolve(result),this.#returnClient(node)}#returnClient(node){let task=this.#tasksQueue.shift();if(task){clearTimeout(task.timeout),this.#executeTask(node,task.resolve,task.reject,task.fn);return}this.#clientsInUse.remove(node),this.#idleClients.push(node.value),this.#scheduleCleanup()}cleanupTimeout;#scheduleCleanup(){if(this.totalClients<=this.#options.minimum)return;clearTimeout(this.cleanupTimeout),this.cleanupTimeout=setTimeout(()=>this.#cleanup(),this.#options.cleanupDelay)}#cleanup(){let toDestroy=Math.min(this.#idleClients.length,this.totalClients-this.#options.minimum);for(let i=0;i<toDestroy;i++)this.#idleClients.shift().destroy()}sendCommand(args2,options){return this.execute((client)=>client.sendCommand(args2,options))}MULTI(){return new this.Multi((commands,selectedDB)=>this.execute((client)=>client._executeMulti(commands,selectedDB)),(commands)=>this.execute((client)=>client._executePipeline(commands)),this._commandOptions?.typeMapping)}multi=this.MULTI;async close(){if(this._self.#isClosing)return;if(!this._self.#isOpen)return;this._self.#isClosing=!0;try{let promises=[];for(let client of this._self.#idleClients)promises.push(client.close());for(let client of this._self.#clientsInUse)promises.push(client.close());await Promise.all(promises),this.#clientSideCache?.onPoolClose(),this._self.#idleClients.reset(),this._self.#clientsInUse.reset()}catch(err){}finally{this._self.#isClosing=!1}}destroy(){for(let client of this._self.#idleClients)client.destroy();this._self.#idleClients.reset();for(let client of this._self.#clientsInUse)client.destroy();this._self.#clientSideCache?.onPoolClose(),this._self.#clientsInUse.reset(),this._self.#isOpen=!1}}exports.RedisClientPool=RedisClientPool});var require_package=__commonJS((exports,module)=>{module.exports={name:"@redis/client",version:"5.10.0",license:"MIT",main:"./dist/index.js",types:"./dist/index.d.ts",files:["dist/","!dist/tsconfig.tsbuildinfo"],scripts:{test:"nyc -r text-summary -r lcov mocha -r tsx './lib/**/*.spec.ts'",release:"release-it"},dependencies:{"cluster-key-slot":"1.1.2"},devDependencies:{"@redis/test-utils":"*","@types/sinon":"^17.0.3",sinon:"^17.0.1"},engines:{node:">= 18"},repository:{type:"git",url:"git://github.com/redis/node-redis.git"},bugs:{url:"https://github.com/redis/node-redis/issues"},homepage:"https://github.com/redis/node-redis/tree/master/packages/client",keywords:["redis"]}});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(),enterprise_maintenance_manager_1=__importDefault(require_enterprise_maintenance_manager());class RedisClient extends node_events_1.EventEmitter{static#createCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._commandOptions,transformReply)}}static#createModuleCommand(command,resp){let transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return command.parseCommand(parser,...args2),this._self._executeCommand(command,parser,this._self._commandOptions,transformReply)}}static#createFunctionCommand(name,fn2,resp){let prefix=(0,commander_1.functionArgumentsPrefix)(name,fn2),transformReply=(0,commander_1.getTransformReply)(fn2,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),fn2.parseCommand(parser,...args2),this._self._executeCommand(fn2,parser,this._self._commandOptions,transformReply)}}static#createScriptCommand(script,resp){let prefix=(0,commander_1.scriptArgumentsPrefix)(script),transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args2){let parser=new parser_1.BasicCommandParser;return parser.push(...prefix),script.parseCommand(parser,...args2),this._executeScript(script,parser,this._commandOptions,transformReply)}}static#SingleEntryCache=new single_entry_cache_1.default;static factory(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 parseOptions(options){if(options?.url){let parsed=_a.parseURL(options.url);if(options.socket){if(options.socket.tls!==void 0&&options.socket.tls!==parsed.socket.tls)throw TypeError(`tls socket option is set to ${options.socket.tls} which is mismatch with protocol or the URL ${options.url} passed`);parsed.socket=Object.assign(options.socket,parsed.socket)}Object.assign(options,parsed)}return options}static parseURL(url){let{hostname,port,protocol,username,password,pathname}=new node_url_1.URL(url),parsed={socket:{host:hostname,tls:!1}};if(protocol!=="redis:"&&protocol!=="rediss:")throw TypeError("Invalid protocol");if(parsed.socket.tls=protocol==="rediss:",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;#paused=!1;get clientSideCache(){return this._self.#clientSideCache}get options(){return this._self.#options}get isOpen(){return this._self.#socket.isOpen}get isReady(){return this._self.#socket.isReady}get isPubSubActive(){return this._self.#queue.isPubSubActive}get socketEpoch(){return this._self.#socket.socketEpoch}get isWatching(){return this._self.#watchEpoch!==void 0}get isDirtyWatch(){return this._self.#dirtyWatch!==void 0}setDirtyWatch(msg){this._self.#dirtyWatch=msg}constructor(options){super();if(this.#validateOptions(options),this.#options=this.#initiateOptions(options),this.#queue=this.#initiateQueue(),this.#socket=this.#initiateSocket(),this.#options.maintNotifications!=="disabled")new enterprise_maintenance_manager_1.default(this.#queue,this,this.#options);if(this.#options.clientSideCache){if(this.#options.clientSideCache instanceof cache_1.ClientSideCacheProvider)this.#clientSideCache=this.#options.clientSideCache;else{let cscConfig=this.#options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.#clientSideCache?.invalidate(key);else this.#clientSideCache?.invalidate(null);return!0})}else if(options?.emitInvalidate)this.#queue.addPushHandler((push)=>{if(push[0].toString()!=="invalidate")return!1;if(push[1]!==null)for(let key of push[1])this.emit("invalidate",key);else this.emit("invalidate",null);return!0})}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3)throw Error("Client Side Caching is only supported with RESP3");if(options?.emitInvalidate&&options?.RESP!==3)throw Error("emitInvalidate is only supported with RESP3");if(options?.clientSideCache&&options?.emitInvalidate)throw Error("emitInvalidate is not supported (or necessary) when clientSideCache is enabled");if(options?.maintNotifications&&options?.maintNotifications!=="disabled"&&options?.RESP!==3)throw Error("Graceful Maintenance is only supported with RESP3")}#initiateOptions(options={}){if(!options.credentialsProvider&&(options.username||options.password))options.credentialsProvider={type:"async-credentials-provider",credentials:async()=>({username:options.username,password:options.password})};if(options.database)this._self.#selectedDB=options.database;if(options.commandOptions)this._commandOptions=options.commandOptions;if(options.maintNotifications!=="disabled")enterprise_maintenance_manager_1.default.setupDefaultMaintOptions(options);if(options.url){let parsedOptions=_a.parseOptions(options);if(parsedOptions?.database)this._self.#selectedDB=parsedOptions.database;return parsedOptions}return options}#initiateQueue(){return new commands_queue_1.default(this.#options.RESP??2,this.#options.commandsQueueMaxLength,(channel,listeners)=>this.emit("sharded-channel-moved",channel,listeners))}reAuthenticate=async(credentials)=>{if(!(this.isPubSubActive&&!this.#options.RESP))await this.sendCommand((0,generic_transformers_1.parseArgs)(commands_1.default.AUTH,{username:credentials.username,password:credentials.password??""}))};#subscribeForStreamingCredentials(cp){return cp.subscribe({onNext:(credentials)=>{this.reAuthenticate(credentials).catch((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()});if(this.#options?.emitInvalidate)commands.push({cmd:["CLIENT","TRACKING","ON"]});let maintenanceHandshakeCmd=await enterprise_maintenance_manager_1.default.getHandshakeCommand(this.#options);if(maintenanceHandshakeCmd)commands.push(maintenanceHandshakeCmd);return commands}#attachListeners(socket){socket.on("data",(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"))}#initiateSocket(){let socketInitiator=async()=>{let promises=[],chainId=Symbol("Socket Initiator"),resubscribePromise=this.#queue.resubscribe(chainId);if(resubscribePromise?.catch((error)=>{if(error.message&&error.message.startsWith("MOVED"))this.emit("__MOVED",this._self.#queue.removeAllPubSubListeners())}),resubscribePromise)promises.push(resubscribePromise);if(this.#monitorCallback)promises.push(this.#queue.monitor(this.#monitorCallback,{typeMapping:this._commandOptions?.typeMapping,chainId,asap:!0}));if(promises.push(...await this.#handshake(chainId,!0)),promises.length)return this.#write(),Promise.all(promises)},socket=new socket_1.default(socketInitiator,this.#options.socket);return this.#attachListeners(socket),socket}#pingTimer;#setPingTimer(){if(!this.#options.pingInterval||!this.#socket.isReady)return;clearTimeout(this.#pingTimer),this.#pingTimer=setTimeout(()=>{if(!this.#socket.isReady)return;this.sendCommand(["PING"]).then((reply)=>this.emit("ping-interval",reply)).catch((err)=>this.emit("error",err)).finally(()=>this.#setPingTimer())},this.#options.pingInterval)}withCommandOptions(options){let proxy=Object.create(this._self);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this._self);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._commandOptionsProxy("asap",!0)}legacy(){return new legacy_mode_1.RedisLegacyClient(this)}createPool(options){return pool_1.RedisClientPool.create(this._self.#options,options)}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self.#options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self.#socket.connect(),this}_ejectSocket(){let socket=this._self.#socket;return this._self.#socket=null,socket.removeAllListeners(),socket}_insertSocket(socket){if(this._self.#socket)this._self._ejectSocket().destroy();this._self.#socket=socket,this._self.#attachListeners(this._self.#socket)}_maintenanceUpdate(update5){this._self.#socket.setMaintenanceTimeout(update5.relaxedSocketTimeout),this._self.#queue.setMaintenanceCommandTimeout(update5.relaxedCommandTimeout)}_pause(){this._self.#paused=!0}_unpause(){this._self.#paused=!1,this._self.#maybeScheduleWrite()}async _executeCommand(command,parser,commandOptions,transformReply){let csc=this._self.#clientSideCache,defaultTypeMapping=this._self.#options.commandOptions===commandOptions,fn2=()=>{return this.sendCommand(parser.redisArgs,commandOptions)};if(csc&&command.CACHEABLE&&defaultTypeMapping)return await csc.handleCache(this._self,parser,fn2,transformReply,commandOptions?.typeMapping);else{let reply=await fn2();if(transformReply)return transformReply(reply,parser.preserve,commandOptions?.typeMapping);return reply}}async _executeScript(script,parser,options,transformReply){let args2=parser.redisArgs,reply;try{reply=await this.sendCommand(args2,options)}catch(err){if(!err?.message?.startsWith?.("NOSCRIPT"))throw err;args2[0]="EVAL",args2[1]=script.SCRIPT,reply=await this.sendCommand(args2,options)}return transformReply?transformReply(reply,parser.preserve,options?.typeMapping):reply}sendCommand(args2,options){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);else if(!this._self.#socket.isReady&&this._self.#options.disableOfflineQueue)return Promise.reject(new errors_1.ClientOfflineError);let opts={...this._self._commandOptions,...options},promise3=this._self.#queue.addCommand(args2,opts);return this._self.#scheduleWrite(),promise3}async SELECT(db){await this.sendCommand(["SELECT",db.toString()]),this._self.#selectedDB=db}select=this.SELECT;#pubSubCommand(promise3){if(promise3===void 0)return Promise.resolve();return this.#scheduleWrite(),promise3}SUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}subscribe=this.SUBSCRIBE;UNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.CHANNELS,channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;PSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pSubscribe=this.PSUBSCRIBE;PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.PATTERNS,patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;SSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.subscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self.#pubSubCommand(this._self.#queue.unsubscribe(pub_sub_1.PUBSUB_TYPE.SHARDED,channels,listener,bufferMode))}sUnsubscribe=this.SUNSUBSCRIBE;async WATCH(key){let reply=await this._self.sendCommand((0,generic_transformers_1.pushVariadicArguments)(["WATCH"],key));return this._self.#watchEpoch??=this._self.socketEpoch,reply}watch=this.WATCH;async UNWATCH(){let reply=await this._self.sendCommand(["UNWATCH"]);return this._self.#watchEpoch=void 0,reply}unwatch=this.UNWATCH;getPubSubListeners(type){return this._self.#queue.getPubSubListeners(type)}extendPubSubChannelListeners(type,channel,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubChannelListeners(type,channel,listeners))}extendPubSubListeners(type,listeners){return this._self.#pubSubCommand(this._self.#queue.extendPubSubListeners(type,listeners))}#write(){if(this.#paused)return;this.#socket.write(this.#queue.commandsToWrite())}#scheduledWrite;#scheduleWrite(){if(!this.#socket.isReady||this.#scheduledWrite)return;this.#scheduledWrite=setImmediate(()=>{this.#write(),this.#scheduledWrite=void 0})}#maybeScheduleWrite(){if(!this.#queue.isWaitingToWrite())return;this.#scheduleWrite()}async _executePipeline(commands,selectedDB){if(!this._self.#socket.isOpen)return Promise.reject(new errors_1.ClientClosedError);let chainId=Symbol("Pipeline Chain"),promise3=Promise.all(commands.map(({args:args2})=>this._self.#queue.addCommand(args2,{chainId,typeMapping:this._commandOptions?.typeMapping})));this._self.#scheduleWrite();let result=await promise3;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return result}async _executeMulti(commands,selectedDB){let dirtyWatch=this._self.#dirtyWatch;this._self.#dirtyWatch=void 0;let watchEpoch=this._self.#watchEpoch;if(this._self.#watchEpoch=void 0,!this._self.#socket.isOpen)throw new errors_1.ClientClosedError;if(dirtyWatch)throw new errors_1.WatchError(dirtyWatch);if(watchEpoch&&watchEpoch!==this._self.socketEpoch)throw new errors_1.WatchError("Client reconnected after WATCH");let typeMapping=this._commandOptions?.typeMapping,chainId=Symbol("MULTI Chain"),promises=[this._self.#queue.addCommand(["MULTI"],{chainId})];for(let{args:args2}of commands)promises.push(this._self.#queue.addCommand(args2,{chainId,typeMapping}));promises.push(this._self.#queue.addCommand(["EXEC"],{chainId})),this._self.#scheduleWrite();let results=await Promise.all(promises),execResult=results[results.length-1];if(execResult===null)throw new errors_1.WatchError;if(selectedDB!==void 0)this._self.#selectedDB=selectedDB;return execResult}MULTI(){return new this.Multi(this._executeMulti.bind(this),this._executePipeline.bind(this),this._commandOptions?.typeMapping)}multi=this.MULTI;async*scanIterator(options){let cursor=options?.cursor??"0";do{let reply=await this.scan(cursor,options);cursor=reply.cursor,yield reply.keys}while(cursor!=="0")}async*hScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScan(key,cursor,options);cursor=reply.cursor,yield reply.entries}while(cursor!=="0")}async*hScanValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*hScanNoValuesIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.hScanNoValues(key,cursor,options);cursor=reply.cursor,yield reply.fields}while(cursor!=="0")}async*sScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.sScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async*zScanIterator(key,options){let cursor=options?.cursor??"0";do{let reply=await this.zScan(key,cursor,options);cursor=reply.cursor,yield reply.members}while(cursor!=="0")}async MONITOR(callback){let promise3=this._self.#queue.monitor(callback,{typeMapping:this._commandOptions?.typeMapping});this._self.#scheduleWrite(),await promise3,this._self.#monitorCallback=callback}monitor=this.MONITOR;async reset(){let chainId=Symbol("Reset Chain"),promises=[this._self.#queue.reset(chainId)],selectedDB=this._self.#options?.database??0;this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,promises.push(...await this._self.#handshake(chainId,!1)),this._self.#scheduleWrite(),await Promise.all(promises),this._self.#selectedDB=selectedDB,this._self.#monitorCallback=void 0,this._self.#dirtyWatch=void 0,this._self.#watchEpoch=void 0}resetIfDirty(){let shouldReset=!1;if(this._self.#selectedDB!==(this._self.#options?.database??0))console.warn("Returning a client with a different selected DB"),shouldReset=!0;if(this._self.#monitorCallback)console.warn("Returning a client with active MONITOR"),shouldReset=!0;if(this._self.#queue.isPubSubActive)console.warn("Returning a client with active PubSub"),shouldReset=!0;if(this._self.#dirtyWatch||this._self.#watchEpoch)console.warn("Returning a client with active WATCH"),shouldReset=!0;if(shouldReset)return this.reset()}QUIT(){return this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null,this._self.#socket.quit(async()=>{clearTimeout(this._self.#pingTimer);let quitPromise=this._self.#queue.addCommand(["QUIT"]);return this._self.#scheduleWrite(),quitPromise})}quit=this.QUIT;disconnect(){return Promise.resolve(this.destroy())}close(){return new Promise((resolve)=>{if(clearTimeout(this._self.#pingTimer),this._self.#socket.close(),this._self.#clientSideCache?.onClose(),this._self.#queue.isEmpty())return this._self.#socket.destroySocket(),resolve();let maybeClose=()=>{if(!this._self.#queue.isEmpty())return;this._self.#socket.off("data",maybeClose),this._self.#socket.destroySocket(),resolve()};this._self.#socket.on("data",maybeClose),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null})}destroy(){clearTimeout(this._self.#pingTimer),this._self.#queue.flushAll(new errors_1.DisconnectsClientError),this._self.#socket.destroy(),this._self.#clientSideCache?.onClose(),this._self.#credentialsSubscription?.dispose(),this._self.#credentialsSubscription=null}ref(){this._self.#socket.ref()}unref(){this._self.#socket.unref()}}_a=RedisClient;exports.default=RedisClient});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(),this.#emit("connect")}catch(err){throw this.#isOpen=!1,err}}async#discoverWithRootNodes(){let start3=Math.floor(Math.random()*this.#options.rootNodes.length);for(let i=start3;i<this.#options.rootNodes.length;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}for(let i=0;i<start3;i++){if(!this.#isOpen)throw Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}throw new errors_1.RootNodesUnavailableError}#resetSlots(){this.slots=Array(_a.#SLOTS),this.masters=[],this.replicas=[],this._randomNodeIterator=void 0}async#discover(rootNode){this.clientSideCache?.clear(),this.clientSideCache?.disable();try{let addressesInUse=new Set,promises=[],eagerConnect=this.#options.minimizeConnections!==!0,shards=await this.#getShards(rootNode);this.#resetSlots();for(let{from,to,master,replicas}of shards){let shard={master:this.#initiateSlotNode(master,!1,eagerConnect,addressesInUse,promises)};if(this.#options.useReplicas)shard.replicas=replicas.map((replica)=>this.#initiateSlotNode(replica,!0,eagerConnect,addressesInUse,promises));for(let i=from;i<=to;i++)this.slots[i]=shard}if(this.pubSubNode&&!addressesInUse.has(this.pubSubNode.address)){let channelsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS),patternsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS);if(this.pubSubNode.client.destroy(),channelsListeners.size||patternsListeners.size)promises.push(this.#initiatePubSubClient({[pub_sub_1.PUBSUB_TYPE.CHANNELS]:channelsListeners,[pub_sub_1.PUBSUB_TYPE.PATTERNS]:patternsListeners}))}for(let[address,node]of this.nodeByAddress.entries()){if(addressesInUse.has(address))continue;if(node.client)node.client.destroy();let{pubSub}=node;if(pubSub)pubSub.client.destroy();this.nodeByAddress.delete(address)}return await Promise.all(promises),this.clientSideCache?.enable(),!0}catch(err){return this.#emit("error",err),!1}}async#getShards(rootNode){let options=this.#clientOptionsDefaults(rootNode);options.socket??={},options.socket.reconnectStrategy=!1,options.RESP=this.#options.RESP,options.commandOptions=void 0;let client=await this.#clientFactory(options).on("error",(err)=>this.#emit("error",err)).connect();try{return await client.clusterSlots()}finally{client.destroy()}}#getNodeAddress(address){switch(typeof this.#options.nodeAddressMap){case"object":return this.#options.nodeAddressMap[address];case"function":return this.#options.nodeAddressMap(address)}}#clientOptionsDefaults(options){if(!this.#options.defaults)return options;let socket;if(this.#options.defaults.socket)socket={...this.#options.defaults.socket,...options?.socket};else socket=options?.socket;return{...this.#options.defaults,...options,socket}}#initiateSlotNode(shard,readonly,eagerConnent,addressesInUse,promises){let address=`${shard.host}:${shard.port}`,node=this.nodeByAddress.get(address);if(!node){if(node={...shard,address,readonly,client:void 0,connectPromise:void 0},eagerConnent)promises.push(this.#createNodeClient(node));this.nodeByAddress.set(address,node)}if(!addressesInUse.has(address))addressesInUse.add(address),(readonly?this.replicas:this.masters).push(node);return node}#createClient(node,readonly=node.readonly){let socket=this.#getNodeAddress(node.address)??{host:node.host,port:node.port},clientInfo=Object.freeze({host:socket.host,port:socket.port}),emit2=this.#emit,client=this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket,readonly})).on("error",(error)=>emit2("node-error",error,clientInfo)).on("reconnecting",()=>emit2("node-reconnecting",clientInfo)).once("ready",()=>emit2("node-ready",clientInfo)).once("connect",()=>emit2("node-connect",clientInfo)).once("end",()=>emit2("node-disconnect",clientInfo)).on("__MOVED",async(allPubSubListeners)=>{await this.rediscover(client),this.#emit("__resubscribeAllPubSubListeners",allPubSubListeners)});return client}#createNodeClient(node,readonly){let client=node.client=this.#createClient(node,readonly);return node.connectPromise=client.connect().finally(()=>node.connectPromise=void 0)}nodeClient(node){return node.connectPromise??node.client??this.#createNodeClient(node)}#runningRediscoverPromise;async rediscover(startWith){return this.#runningRediscoverPromise??=this.#rediscover(startWith).finally(()=>{this.#runningRediscoverPromise=void 0}),this.#runningRediscoverPromise}async#rediscover(startWith){if(await this.#discover(startWith.options))return;return this.#discoverWithRootNodes()}quit(){return this.#destroy((client)=>client.quit())}disconnect(){return this.#destroy((client)=>client.disconnect())}close(){return this.#destroy((client)=>client.close())}destroy(){this.#isOpen=!1;for(let client of this.#clients())client.destroy();if(this.pubSubNode)this.pubSubNode.client.destroy(),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),this.#emit("disconnect")}*#clients(){for(let master of this.masters){if(master.client)yield master.client;if(master.pubSub)yield master.pubSub.client}for(let replica of this.replicas)if(replica.client)yield replica.client}async#destroy(fn2){this.#isOpen=!1;let promises=[];for(let client of this.#clients())promises.push(fn2(client));if(this.pubSubNode)promises.push(fn2(this.pubSubNode.client)),this.pubSubNode=void 0;this.#resetSlots(),this.nodeByAddress.clear(),await Promise.allSettled(promises),this.#emit("disconnect")}getClient(firstKey,isReadonly){if(!firstKey)return this.nodeClient(this.getRandomNode());let slotNumber=(0,cluster_key_slot_1.default)(firstKey);if(!isReadonly)return this.nodeClient(this.slots[slotNumber].master);return this.nodeClient(this.getSlotRandomNode(slotNumber))}*#iterateAllNodes(){if(this.masters.length+this.replicas.length===0)return;let i=Math.floor(Math.random()*(this.masters.length+this.replicas.length));if(i<this.masters.length){do yield this.masters[i];while(++i<this.masters.length);for(let replica of this.replicas)yield replica}else{i-=this.masters.length;do yield this.replicas[i];while(++i<this.replicas.length)}while(!0){for(let master of this.masters)yield master;for(let replica of this.replicas)yield replica}}_randomNodeIterator;getRandomNode(){return this._randomNodeIterator??=this.#iterateAllNodes(),this._randomNodeIterator.next().value}*#slotNodesIterator(slot){let i=Math.floor(Math.random()*(1+slot.replicas.length));if(i<slot.replicas.length)do yield slot.replicas[i];while(++i<slot.replicas.length);while(!0){yield slot.master;for(let replica of slot.replicas)yield replica}}getSlotRandomNode(slotNumber){let slot=this.slots[slotNumber];if(!slot.replicas?.length)return slot.master;return slot.nodesIterator??=this.#slotNodesIterator(slot),slot.nodesIterator.next().value}getMasterByAddress(address){let master=this.nodeByAddress.get(address);if(!master)return;return this.nodeClient(master)}getPubSubClient(){if(!this.pubSubNode)return this.#initiatePubSubClient();return this.pubSubNode.connectPromise??this.pubSubNode.client}async#initiatePubSubClient(toResubscribe){let index=Math.floor(Math.random()*(this.masters.length+this.replicas.length)),node=index<this.masters.length?this.masters[index]:this.replicas[index-this.masters.length],client=this.#createClient(node,!1);return this.pubSubNode={address:node.address,client,connectPromise:client.connect().then(async(client2)=>{if(toResubscribe)await Promise.all([client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS,toResubscribe[pub_sub_1.PUBSUB_TYPE.CHANNELS]),client2.extendPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS,toResubscribe[pub_sub_1.PUBSUB_TYPE.PATTERNS])]);return this.pubSubNode.connectPromise=void 0,client2}).catch((err)=>{throw this.pubSubNode=void 0,err})},this.pubSubNode.connectPromise}async executeUnsubscribeCommand(unsubscribe){let client=await this.getPubSubClient();if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),this.pubSubNode=void 0}getShardedPubSubClient(channel){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return this.#initiateShardedPubSubClient(master);return master.pubSub.connectPromise??master.pubSub.client}async#initiateShardedPubSubClient(master){let client=this.#createClient(master,!1).on("server-sunsubscribe",async(channel,listeners)=>{try{await this.rediscover(client),await(await this.getShardedPubSubClient(channel)).extendPubSubChannelListeners(pub_sub_1.PUBSUB_TYPE.SHARDED,channel,listeners)}catch(err){this.#emit("sharded-shannel-moved-error",err,channel,listeners)}});return master.pubSub={client,connectPromise:client.connect().then((client2)=>{return master.pubSub.connectPromise=void 0,client2}).catch((err)=>{throw master.pubSub=void 0,err})},master.pubSub.connectPromise}async executeShardedUnsubscribeCommand(channel,unsubscribe){let{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return;let client=master.pubSub.connectPromise?await master.pubSub.connectPromise:master.pubSub.client;if(await unsubscribe(client),!client.isPubSubActive)client.destroy(),master.pubSub=void 0}}_a=RedisClusterSlots;exports.default=RedisClusterSlots});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)),this.on("__resubscribeAllPubSubListeners",this.resubscribeAllPubSubListeners.bind(this)),options?.commandOptions)this._commandOptions=options.commandOptions}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self._options,commandOptions:this._commandOptions,...overrides})}async connect(){return await this._self._slots.connect(),this}withCommandOptions(options){let proxy=Object.create(this);return proxy._commandOptions=options,proxy}_commandOptionsProxy(key,value){let proxy=Object.create(this);return proxy._commandOptions=Object.create(this._commandOptions??null),proxy._commandOptions[key]=value,proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}_handleAsk(fn2){return async(client,options)=>{let chainId=Symbol("asking chain"),opts=options?{...options}:{};return opts.chainId=chainId,(await Promise.all([client.sendCommand([ASKING_1.ASKING_CMD],{chainId}),fn2(client,opts)]))[1]}}async _execute(firstKey,isReadonly,options,fn2){let maxCommandRedirections=this._options.maxCommandRedirections??16,client=await this._slots.getClient(firstKey,isReadonly),i=0,myFn=fn2;while(!0)try{return await myFn(client,options)}catch(err){if(myFn=fn2,++i>maxCommandRedirections||!(err instanceof Error))throw err;if(err.message.startsWith("ASK")){let address=err.message.substring(err.message.lastIndexOf(" ")+1),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)await this._slots.rediscover(client),redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo)throw Error(`Cannot find node ${address}`);client=redirectTo,myFn=this._handleAsk(fn2);continue}if(err.message.startsWith("MOVED")){await this._slots.rediscover(client),client=await this._slots.getClient(firstKey,isReadonly);continue}throw err}}async sendCommand(firstKey,isReadonly,args2,options){let opts={...this._self._commandOptions,...options};return this._self._execute(firstKey,isReadonly,opts,(client,opts2)=>client.sendCommand(args2,opts2))}MULTI(routing){return new this.Multi(async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executeMulti(commands)},async(firstKey,isReadonly,commands)=>{return(await this._self._slots.getClient(firstKey,isReadonly))._executePipeline(commands)},routing,this._commandOptions?.typeMapping)}multi=this.MULTI;async SUBSCRIBE(channels,listener,bufferMode){return(await this._self._slots.getPubSubClient()).SUBSCRIBE(channels,listener,bufferMode)}subscribe=this.SUBSCRIBE;async UNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.UNSUBSCRIBE(channels,listener,bufferMode))}unsubscribe=this.UNSUBSCRIBE;async PSUBSCRIBE(patterns,listener,bufferMode){return(await this._self._slots.getPubSubClient()).PSUBSCRIBE(patterns,listener,bufferMode)}pSubscribe=this.PSUBSCRIBE;async PUNSUBSCRIBE(patterns,listener,bufferMode){return this._self._slots.executeUnsubscribeCommand((client)=>client.PUNSUBSCRIBE(patterns,listener,bufferMode))}pUnsubscribe=this.PUNSUBSCRIBE;async SSUBSCRIBE(channels,listener,bufferMode){let maxCommandRedirections=this._self._options.maxCommandRedirections??16,firstChannel=Array.isArray(channels)?channels[0]:channels,client=await this._self._slots.getShardedPubSubClient(firstChannel);for(let i=0;;i++)try{return await client.SSUBSCRIBE(channels,listener,bufferMode)}catch(err){if(++i>maxCommandRedirections||!(err instanceof errors_1.ErrorReply))throw err;if(err.message.startsWith("MOVED")){await this._self._slots.rediscover(client),client=await this._self._slots.getShardedPubSubClient(firstChannel);continue}throw err}}sSubscribe=this.SSUBSCRIBE;SUNSUBSCRIBE(channels,listener,bufferMode){return this._self._slots.executeShardedUnsubscribeCommand(Array.isArray(channels)?channels[0]:channels,(client)=>client.SUNSUBSCRIBE(channels,listener,bufferMode))}resubscribeAllPubSubListeners(allListeners){for(let[channel,listeners]of allListeners.CHANNELS)listeners.buffers.forEach((bufListener)=>{this.subscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.subscribe(channel,strListener)});for(let[channel,listeners]of allListeners.PATTERNS)listeners.buffers.forEach((bufListener)=>{this.pSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.pSubscribe(channel,strListener)});for(let[channel,listeners]of allListeners.SHARDED)listeners.buffers.forEach((bufListener)=>{this.sSubscribe(channel,bufListener,!0)}),listeners.strings.forEach((strListener)=>{this.sSubscribe(channel,strListener)})}sUnsubscribe=this.SUNSUBSCRIBE;quit(){return this._self._slots.quit()}disconnect(){return this._self._slots.disconnect()}close(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.close()}destroy(){return this._self._slots.clientSideCache?.onPoolClose(),this._self._slots.destroy()}nodeClient(node){return this._self._slots.nodeClient(node)}getRandomNode(){return this._self._slots.getRandomNode()}getSlotRandomNode(slot){return this._self._slots.getSlotRandomNode(slot)}getMasters(){return this.masters}getSlotMaster(slot){return this.slots[slot].master}}exports.default=RedisCluster});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!==void 0&&{reconnectStrategy}}})}getClientLease(){let id2=this.#masterClientQueue.shift();if(id2!==void 0)return{id:id2};return this.#masterClientQueue.wait().then((id3)=>({id:id3}))}releaseClientLease(clientInfo){let client=this.#masterClients[clientInfo.id];if(client!==void 0){let dirtyPromise=client.resetIfDirty();if(dirtyPromise)return dirtyPromise.then(()=>this.#masterClientQueue.push(clientInfo.id))}this.#masterClientQueue.push(clientInfo.id)}async connect(){if(this.#isOpen)throw Error("already attempting to open");try{this.#isOpen=!0,this.#connectPromise=this.#connect(),await this.#connectPromise,this.#isReady=!0}finally{if(this.#connectPromise=void 0,this.#scanInterval>0)this.#scanTimer=setInterval(this.#reset.bind(this),this.#scanInterval)}}async#connect(){let 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}}#handleSentinelFailure(node){let found=this.#sentinelRootNodes.findIndex((rootNode)=>rootNode.host===node.host&&rootNode.port===node.port);if(found!==-1)this.#sentinelRootNodes.splice(found,1);this.#reset()}async close(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;let promises=[];if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)promises.push(this.#sentinelClient.close());this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)promises.push(client.close());this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)promises.push(client.close());this.#replicaClients=[],await Promise.all(promises),this.#pubSubProxy.destroy(),this.#isOpen=!1}async destroy(){if(this.#destroy=!0,this.#connectPromise!=null)await this.#connectPromise;if(this.#isReady=!1,this.#clientSideCache?.onPoolClose(),this.#scanTimer)clearInterval(this.#scanTimer),this.#scanTimer=void 0;if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen)this.#sentinelClient.destroy();this.#sentinelClient=void 0}for(let client of this.#masterClients)if(client.isOpen)client.destroy();this.#masterClients=[];for(let client of this.#replicaClients)if(client.isOpen)client.destroy();this.#replicaClients=[],this.#pubSubProxy.destroy(),this.#isOpen=!1,this.#destroy=!1}async subscribe(channels,listener,bufferMode){return this.#pubSubProxy.subscribe(channels,listener,bufferMode)}async unsubscribe(channels,listener,bufferMode){return this.#pubSubProxy.unsubscribe(channels,listener,bufferMode)}async pSubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pSubscribe(patterns,listener,bufferMode)}async pUnsubscribe(patterns,listener,bufferMode){return this.#pubSubProxy.pUnsubscribe(patterns,listener,bufferMode)}async observe(){for(let node of this.#sentinelRootNodes){let client;try{this.#trace(`observe: trying to connect to sentinel: ${node.host}:${node.port}`),client=this.#createClient(node,this.#sentinelClientOptions,!1),client.on("error",(err)=>this.emit("error",`obseve client error: ${err}`)),await client.connect(),this.#trace("observe: connected to sentinel");let[sentinelData,masterData,replicaData]=await Promise.all([client.sentinel.sentinelSentinels(this.#name),client.sentinel.sentinelMaster(this.#name),client.sentinel.sentinelReplicas(this.#name)]);return this.#trace("observe: got all sentinel data"),{sentinelConnected:node,sentinelData,masterData,replicaData,currentMaster:this.getMasterNode(),currentReplicas:this.getReplicaNodes(),currentSentinel:this.getSentinelNode(),replicaPoolSize:this.#replicaPoolSize,useReplicas:this.useReplicas}}catch(err){this.#trace(`observe: error ${err}`),this.emit("error",err)}finally{if(client!==void 0&&client.isOpen)this.#trace("observe: destroying sentinel client"),client.destroy()}}throw this.#trace("observe: none of the sentinels are available"),Error("None of the sentinels are available")}analyze(observed){let master=(0,utils_1.parseNode)(observed.masterData);if(master===void 0)throw this.#trace(`analyze: no valid master node because ${observed.masterData.flags}`),Error("no valid master node");if(master.host===observed.currentMaster?.host&&master.port===observed.currentMaster?.port)this.#trace(`analyze: master node hasn't changed from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`),master=void 0;else this.#trace(`analyze: master node has changed to ${master.host}:${master.port} from ${observed.currentMaster?.host}:${observed.currentMaster?.port}`);let sentinel=observed.sentinelConnected;if(sentinel.host===observed.currentSentinel?.host&&sentinel.port===observed.currentSentinel.port)this.#trace("analyze: sentinel node hasn't changed"),sentinel=void 0;else this.#trace(`analyze: sentinel node has changed to ${sentinel.host}:${sentinel.port}`);let replicasToClose=[],replicasToOpen=new Map,desiredSet=new Set,seen=new Set;if(observed.useReplicas){let replicaList=(0,utils_1.createNodeList)(observed.replicaData);for(let node of replicaList)desiredSet.add(JSON.stringify(node));for(let[node,value]of observed.currentReplicas)if(!desiredSet.has(JSON.stringify(node)))replicasToClose.push(node),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToClose`);else if(seen.add(JSON.stringify(node)),value!=observed.replicaPoolSize)replicasToOpen.set(node,observed.replicaPoolSize-value),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`);for(let node of replicaList)if(!seen.has(JSON.stringify(node)))replicasToOpen.set(node,observed.replicaPoolSize),this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`)}return{sentinelList:[observed.sentinelConnected].concat((0,utils_1.createNodeList)(observed.sentinelData)),epoch:Number(observed.masterData["config-epoch"]),sentinelToOpen:sentinel,masterToOpen:master,replicasToClose,replicasToOpen}}async transform(analyzed){this.#trace("transform: enter");let promises=[];if(analyzed.sentinelToOpen){if(this.#trace("transform: opening a new sentinel"),this.#sentinelClient!==void 0&&this.#sentinelClient.isOpen)this.#trace("transform: destroying old sentinel as open"),this.#sentinelClient.destroy(),this.#sentinelClient=void 0;else this.#trace("transform: not destroying old sentinel as not open");this.#trace(`transform: creating new sentinel to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let node=analyzed.sentinelToOpen,client=this.#createClient(analyzed.sentinelToOpen,this.#sentinelClientOptions,!1);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Sentinel Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"SENTINEL",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2),this.#handleSentinelFailure(node)}).on("end",()=>this.#handleSentinelFailure(node)),this.#sentinelClient=client,this.#trace("transform: adding sentinel client connect() to promise list");let promise3=this.#sentinelClient.connect().then((client2)=>{return this.#createPubSub(client2)});promises.push(promise3),this.#trace(`created sentinel client to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);let event={type:"SENTINEL_CHANGE",node:analyzed.sentinelToOpen};if(this.#trace("transform: emiting topology-change event for sentinel_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for sentinel_change returned false")}if(analyzed.masterToOpen){this.#trace("transform: opening a new master");let masterPromises=[],masterWatches=[];this.#trace("transform: destroying old masters if open");for(let client of this.#masterClients)if(masterWatches.push(client.isWatching||client.isDirtyWatch),client.isOpen)client.destroy();this.#masterClients=[],this.#trace("transform: creating all master clients and adding connect promises");for(let i=0;i<this.#masterPoolSize;i++){let node=analyzed.masterToOpen,client=this.#createClient(analyzed.masterToOpen,this.#nodeClientOptions);if(client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Master Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"MASTER",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),masterWatches[i])client.setDirtyWatch("sentinel config changed in middle of a WATCH Transaction");this.#masterClients.push(client),masterPromises.push(client.connect()),this.#trace(`created master client to ${analyzed.masterToOpen.host}:${analyzed.masterToOpen.port}`)}this.#trace("transform: adding promise to change #pubSubProxy node"),masterPromises.push(this.#pubSubProxy.changeNode(analyzed.masterToOpen)),promises.push(...masterPromises);let event={type:"MASTER_CHANGE",node:analyzed.masterToOpen};if(this.#trace("transform: emiting topology-change event for master_change"),!this.emit("topology-change",event))this.#trace("transform: emit for topology-change for master_change returned false");this.#configEpoch++}let replicaCloseSet=new Set;for(let node of analyzed.replicasToClose){let str=JSON.stringify(node);replicaCloseSet.add(str)}let newClientList=[],removedSet=new Set;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),str=JSON.stringify(node);if(replicaCloseSet.has(str)||!replica.isOpen){if(replica.isOpen){let sockOpts=replica.options?.socket;this.#trace(`destroying replica client to ${sockOpts?.host}:${sockOpts?.port}`),replica.destroy()}if(!removedSet.has(str)){let event={type:"REPLICA_REMOVE",node};this.emit("topology-change",event),removedSet.add(str)}}else newClientList.push(replica)}if(this.#replicaClients=newClientList,analyzed.replicasToOpen.size!=0)for(let[node,size14]of analyzed.replicasToOpen){for(let i=0;i<size14;i++){let client=this.#createClient(node,this.#nodeClientOptions);client.on("error",(err)=>{if(this.#passthroughClientErrorEvents)this.emit("error",Error(`Replica Client (${node.host}:${node.port}): ${err.message}`,{cause:err}));let event2={type:"REPLICA",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)}),this.#replicaClients.push(client),promises.push(client.connect()),this.#trace(`created replica client to ${node.host}:${node.port}`)}let event={type:"REPLICA_ADD",node};this.emit("topology-change",event)}if(analyzed.sentinelList.length!=this.#sentinelRootNodes.length){this.#sentinelRootNodes=analyzed.sentinelList;let event={type:"SENTINE_LIST_CHANGE",size:analyzed.sentinelList.length};this.emit("topology-change",event)}await Promise.all(promises),this.#trace("transform: exit")}getMasterNode(){if(this.#masterClients.length==0)return;for(let master of this.#masterClients)if(master.isReady)return(0,utils_1.clientSocketToNode)(master.options.socket);return}getSentinelNode(){if(this.#sentinelClient===void 0)return;return(0,utils_1.clientSocketToNode)(this.#sentinelClient.options.socket)}getReplicaNodes(){let ret=new Map,initialMap=new Map;for(let replica of this.#replicaClients){let node=(0,utils_1.clientSocketToNode)(replica.options.socket),hash2=JSON.stringify(node);if(replica.isReady)initialMap.set(hash2,(initialMap.get(hash2)??0)+1);else if(!initialMap.has(hash2))initialMap.set(hash2,0)}for(let[key,value]of initialMap)ret.set(JSON.parse(key),value);return ret}setTracer(tracer3){if(tracer3)this.#trace=(msg)=>{tracer3.push(msg)};else this.#trace=()=>{}}}class RedisSentinelFactory extends node_events_1.EventEmitter{options;#sentinelRootNodes;#replicaIdx=-1;constructor(options){super();this.options=options,this.#sentinelRootNodes=options.sentinelRootNodes}async updateSentinelRootNodes(){for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`updateSentinelRootNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}try{let sentinelData=await client.sentinel.sentinelSentinels(this.options.name);this.#sentinelRootNodes=[node].concat((0,utils_1.createNodeList)(sentinelData));return}finally{client.destroy()}}throw Error("Couldn't connect to any sentinel node")}async getMasterNode(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getMasterNode: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let masterData=await client.sentinel.sentinelMaster(this.options.name),master=(0,utils_1.parseNode)(masterData);if(master===void 0)continue;return master}finally{client.destroy()}}if(connected)throw Error("Master Node Not Enumerated");throw Error("couldn't connect to any sentinels")}async getMasterClient(){let master=await this.getMasterNode();return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:master.host,port:master.port}})}async getReplicaNodes(){let connected=!1;for(let node of this.#sentinelRootNodes){let client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:!1},modules:module_1.default}).on("error",(err)=>this.emit(`getReplicaNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen)client.destroy();continue}connected=!0;try{let replicaData=await client.sentinel.sentinelReplicas(this.options.name),replicas=(0,utils_1.createNodeList)(replicaData);if(replicas.length==0)continue;return replicas}finally{client.destroy()}}if(connected)throw Error("No Replicas Nodes Enumerated");throw Error("couldn't connect to any sentinels")}async getReplicaClient(){let replicas=await this.getReplicaNodes();if(replicas.length==0)throw Error("no available replicas");if(this.#replicaIdx++,this.#replicaIdx>=replicas.length)this.#replicaIdx=0;return client_1.default.create({...this.options.nodeClientOptions,socket:{...this.options.nodeClientOptions?.socket,host:replicas[this.#replicaIdx].host,port:replicas[this.#replicaIdx].port}})}}exports.RedisSentinelFactory=RedisSentinelFactory});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.COMMAND_LIST_FILTER_BY=exports.CLUSTER_SLOT_STATES=exports.FAILOVER_MODES=exports.CLIENT_KILL_FILTERS=exports.GEO_REPLY_WITH=exports.createSentinel=exports.createCluster=exports.createClientPool=exports.createClient=exports.defineScript=exports.VerbatimString=exports.RESP_TYPES=void 0;var decoder_1=require_decoder();Object.defineProperty(exports,"RESP_TYPES",{enumerable:!0,get:function(){return decoder_1.RESP_TYPES}});var verbatim_string_1=require_verbatim_string();Object.defineProperty(exports,"VerbatimString",{enumerable:!0,get:function(){return verbatim_string_1.VerbatimString}});var lua_script_1=require_lua_script();Object.defineProperty(exports,"defineScript",{enumerable:!0,get:function(){return lua_script_1.defineScript}});__exportStar(require_errors(),exports);var client_1=__importDefault(require_client());exports.createClient=client_1.default.create;var pool_1=require_pool();exports.createClientPool=pool_1.RedisClientPool.create;var cluster_1=__importDefault(require_cluster());exports.createCluster=cluster_1.default.create;var sentinel_1=__importDefault(require_sentinel());exports.createSentinel=sentinel_1.default.create;var GEOSEARCH_WITH_1=require_GEOSEARCH_WITH();Object.defineProperty(exports,"GEO_REPLY_WITH",{enumerable:!0,get:function(){return GEOSEARCH_WITH_1.GEO_REPLY_WITH}});var commands_1=require_commands();Object.defineProperty(exports,"CLIENT_KILL_FILTERS",{enumerable:!0,get:function(){return commands_1.CLIENT_KILL_FILTERS}});Object.defineProperty(exports,"FAILOVER_MODES",{enumerable:!0,get:function(){return commands_1.FAILOVER_MODES}});Object.defineProperty(exports,"CLUSTER_SLOT_STATES",{enumerable:!0,get:function(){return commands_1.CLUSTER_SLOT_STATES}});Object.defineProperty(exports,"COMMAND_LIST_FILTER_BY",{enumerable:!0,get:function(){return commands_1.COMMAND_LIST_FILTER_BY}});Object.defineProperty(exports,"REDIS_FLUSH_MODES",{enumerable:!0,get:function(){return commands_1.REDIS_FLUSH_MODES}});var cache_1=require_cache();Object.defineProperty(exports,"BasicClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicClientSideCache}});Object.defineProperty(exports,"BasicPooledClientSideCache",{enumerable:!0,get:function(){return cache_1.BasicPooledClientSideCache}})});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.VAMANA_COMPRESSION_ALGORITHM=exports.SCHEMA_VECTOR_FIELD_ALGORITHM=exports.SCHEMA_TEXT_FIELD_PHONETIC=exports.SCHEMA_FIELD_TYPE=void 0;var generic_transformers_1=require_generic_transformers();exports.SCHEMA_FIELD_TYPE={TEXT:"TEXT",NUMERIC:"NUMERIC",GEO:"GEO",TAG:"TAG",VECTOR:"VECTOR",GEOSHAPE:"GEOSHAPE"};exports.SCHEMA_TEXT_FIELD_PHONETIC={DM_EN:"dm:en",DM_FR:"dm:fr",FM_PT:"dm:pt",DM_ES:"dm:es"};exports.SCHEMA_VECTOR_FIELD_ALGORITHM={FLAT:"FLAT",HNSW:"HNSW",VAMANA:"SVS-VAMANA"};exports.VAMANA_COMPRESSION_ALGORITHM={LVQ4:"LVQ4",LVQ8:"LVQ8",LVQ4x4:"LVQ4x4",LVQ4x8:"LVQ4x8",LeanVec4x8:"LeanVec4x8",LeanVec8x8:"LeanVec8x8"};exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM={SPHERICAL:"SPHERICAL",FLAT:"FLAT"};function parseCommonSchemaFieldOptions(parser,fieldOptions){if(fieldOptions.SORTABLE){if(parser.push("SORTABLE"),fieldOptions.SORTABLE==="UNF")parser.push("UNF")}if(fieldOptions.NOINDEX)parser.push("NOINDEX")}function parseSchema(parser,schema){for(let[field,fieldOptions]of Object.entries(schema)){if(parser.push(field),typeof fieldOptions==="string"){parser.push(fieldOptions);continue}if(fieldOptions.AS)parser.push("AS",fieldOptions.AS);if(parser.push(fieldOptions.type),fieldOptions.INDEXMISSING)parser.push("INDEXMISSING");switch(fieldOptions.type){case exports.SCHEMA_FIELD_TYPE.TEXT:if(fieldOptions.NOSTEM)parser.push("NOSTEM");if(fieldOptions.WEIGHT!==void 0)parser.push("WEIGHT",fieldOptions.WEIGHT.toString());if(fieldOptions.PHONETIC)parser.push("PHONETIC",fieldOptions.PHONETIC);if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.NUMERIC:case exports.SCHEMA_FIELD_TYPE.GEO:parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.TAG:if(fieldOptions.SEPARATOR)parser.push("SEPARATOR",fieldOptions.SEPARATOR);if(fieldOptions.CASESENSITIVE)parser.push("CASESENSITIVE");if(fieldOptions.WITHSUFFIXTRIE)parser.push("WITHSUFFIXTRIE");if(fieldOptions.INDEXEMPTY)parser.push("INDEXEMPTY");parseCommonSchemaFieldOptions(parser,fieldOptions);break;case exports.SCHEMA_FIELD_TYPE.VECTOR:parser.push(fieldOptions.ALGORITHM);let args2=[];if(args2.push("TYPE",fieldOptions.TYPE,"DIM",fieldOptions.DIM.toString(),"DISTANCE_METRIC",fieldOptions.DISTANCE_METRIC),fieldOptions.INITIAL_CAP!==void 0)args2.push("INITIAL_CAP",fieldOptions.INITIAL_CAP.toString());switch(fieldOptions.ALGORITHM){case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:if(fieldOptions.BLOCK_SIZE!==void 0)args2.push("BLOCK_SIZE",fieldOptions.BLOCK_SIZE.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:if(fieldOptions.M!==void 0)args2.push("M",fieldOptions.M.toString());if(fieldOptions.EF_CONSTRUCTION!==void 0)args2.push("EF_CONSTRUCTION",fieldOptions.EF_CONSTRUCTION.toString());if(fieldOptions.EF_RUNTIME!==void 0)args2.push("EF_RUNTIME",fieldOptions.EF_RUNTIME.toString());break;case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.VAMANA:if(fieldOptions.COMPRESSION)args2.push("COMPRESSION",fieldOptions.COMPRESSION);if(fieldOptions.CONSTRUCTION_WINDOW_SIZE!==void 0)args2.push("CONSTRUCTION_WINDOW_SIZE",fieldOptions.CONSTRUCTION_WINDOW_SIZE.toString());if(fieldOptions.GRAPH_MAX_DEGREE!==void 0)args2.push("GRAPH_MAX_DEGREE",fieldOptions.GRAPH_MAX_DEGREE.toString());if(fieldOptions.SEARCH_WINDOW_SIZE!==void 0)args2.push("SEARCH_WINDOW_SIZE",fieldOptions.SEARCH_WINDOW_SIZE.toString());if(fieldOptions.EPSILON!==void 0)args2.push("EPSILON",fieldOptions.EPSILON.toString());if(fieldOptions.TRAINING_THRESHOLD!==void 0)args2.push("TRAINING_THRESHOLD",fieldOptions.TRAINING_THRESHOLD.toString());if(fieldOptions.REDUCE!==void 0)args2.push("REDUCE",fieldOptions.REDUCE.toString());break}parser.pushVariadicWithLength(args2);break;case exports.SCHEMA_FIELD_TYPE.GEOSHAPE:if(fieldOptions.COORD_SYSTEM!==void 0)parser.push("COORD_SYSTEM",fieldOptions.COORD_SYSTEM);break}}}exports.parseSchema=parseSchema;exports.REDISEARCH_LANGUAGE={ARABIC:"Arabic",BASQUE:"Basque",CATALANA:"Catalan",DANISH:"Danish",DUTCH:"Dutch",ENGLISH:"English",FINNISH:"Finnish",FRENCH:"French",GERMAN:"German",GREEK:"Greek",HUNGARIAN:"Hungarian",INDONESAIN:"Indonesian",IRISH:"Irish",ITALIAN:"Italian",LITHUANIAN:"Lithuanian",NEPALI:"Nepali",NORWEIGAN:"Norwegian",PORTUGUESE:"Portuguese",ROMANIAN:"Romanian",RUSSIAN:"Russian",SPANISH:"Spanish",SWEDISH:"Swedish",TAMIL:"Tamil",TURKISH:"Turkish",CHINESE:"Chinese"};exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,schema,options){if(parser.push("FT.CREATE",index),options?.ON)parser.push("ON",options.ON);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"PREFIX",options?.PREFIX),options?.FILTER)parser.push("FILTER",options.FILTER);if(options?.LANGUAGE)parser.push("LANGUAGE",options.LANGUAGE);if(options?.LANGUAGE_FIELD)parser.push("LANGUAGE_FIELD",options.LANGUAGE_FIELD);if(options?.SCORE)parser.push("SCORE",options.SCORE.toString());if(options?.SCORE_FIELD)parser.push("SCORE_FIELD",options.SCORE_FIELD);if(options?.MAXTEXTFIELDS)parser.push("MAXTEXTFIELDS");if(options?.TEMPORARY)parser.push("TEMPORARY",options.TEMPORARY.toString());if(options?.NOOFFSETS)parser.push("NOOFFSETS");if(options?.NOHL)parser.push("NOHL");if(options?.NOFIELDS)parser.push("NOFIELDS");if(options?.NOFREQS)parser.push("NOFREQS");if(options?.SKIPINITIALSCAN)parser.push("SKIPINITIALSCAN");(0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"STOPWORDS",options?.STOPWORDS),parser.push("SCHEMA"),parseSchema(parser,schema)},transformReply:void 0}});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.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}},3:void 0},unstableResp3:!0};function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}});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_HYBRID=__commonJS((exports)=>{Object.defineProperty(exports,"__esModule",{value:!0});var generic_transformers_1=require_generic_transformers(),SEARCH_1=require_SEARCH();function parseSearchExpression(parser,search){if(parser.push("SEARCH",search.query),search.SCORER){if(parser.push("SCORER",search.SCORER.algorithm),search.SCORER.params)parser.push(...search.SCORER.params)}if(search.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",search.YIELD_SCORE_AS)}function parseVectorExpression(parser,vsim){if(parser.push("VSIM",vsim.field,vsim.vectorData),vsim.method){if(vsim.method.KNN){let knn=vsim.method.KNN;if(parser.push("KNN","1","K",knn.K.toString()),knn.EF_RUNTIME!==void 0)parser.push("EF_RUNTIME",knn.EF_RUNTIME.toString());if(knn.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",knn.YIELD_DISTANCE_AS)}if(vsim.method.RANGE){let range4=vsim.method.RANGE;if(parser.push("RANGE","1","RADIUS",range4.RADIUS.toString()),range4.EPSILON!==void 0)parser.push("EPSILON",range4.EPSILON.toString());if(range4.YIELD_DISTANCE_AS)parser.push("YIELD_DISTANCE_AS",range4.YIELD_DISTANCE_AS)}}if(vsim.FILTER){if(parser.push("FILTER",vsim.FILTER.expression),vsim.FILTER.POLICY){if(parser.push("POLICY",vsim.FILTER.POLICY),vsim.FILTER.POLICY==="BATCHES"&&vsim.FILTER.BATCHES)parser.push("BATCHES","BATCH_SIZE",vsim.FILTER.BATCHES.BATCH_SIZE.toString())}}if(vsim.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",vsim.YIELD_SCORE_AS)}function parseCombineMethod(parser,combine11){if(!combine11)return;if(parser.push("COMBINE"),combine11.method.RRF){let rrf=combine11.method.RRF;if(parser.push("RRF",rrf.count.toString()),rrf.WINDOW!==void 0)parser.push("WINDOW",rrf.WINDOW.toString());if(rrf.CONSTANT!==void 0)parser.push("CONSTANT",rrf.CONSTANT.toString())}if(combine11.method.LINEAR){let linear2=combine11.method.LINEAR;if(parser.push("LINEAR",linear2.count.toString()),linear2.ALPHA!==void 0)parser.push("ALPHA",linear2.ALPHA.toString());if(linear2.BETA!==void 0)parser.push("BETA",linear2.BETA.toString())}if(combine11.method.FUNCTION)parser.push("FUNCTION",combine11.method.FUNCTION);if(combine11.YIELD_SCORE_AS)parser.push("YIELD_SCORE_AS",combine11.YIELD_SCORE_AS)}function parseHybridOptions(parser,options){if(!options)return;if(options.SEARCH)parseSearchExpression(parser,options.SEARCH);if(options.VSIM)parseVectorExpression(parser,options.VSIM);if(options.COMBINE)parseCombineMethod(parser,options.COMBINE);if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"LOAD",options.LOAD),options.GROUPBY){if((0,generic_transformers_1.parseOptionalVariadicArgument)(parser,"GROUPBY",options.GROUPBY.fields),options.GROUPBY.REDUCE)parser.push("REDUCE",options.GROUPBY.REDUCE.function,options.GROUPBY.REDUCE.count.toString()),parser.push(...options.GROUPBY.REDUCE.args)}if(options.APPLY)parser.push("APPLY",options.APPLY.expression,"AS",options.APPLY.AS);if(options.SORTBY){parser.push("SORTBY",options.SORTBY.count.toString());for(let sortField of options.SORTBY.fields)if(parser.push(sortField.field),sortField.direction)parser.push(sortField.direction)}if(options.FILTER)parser.push("FILTER",options.FILTER);if(options.LIMIT)parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.num.toString());if((0,SEARCH_1.parseParamsArgument)(parser,options.PARAMS),options.EXPLAINSCORE)parser.push("EXPLAINSCORE");if(options.TIMEOUT!==void 0)parser.push("TIMEOUT",options.TIMEOUT.toString());if(options.WITHCURSOR){if(parser.push("WITHCURSOR"),options.WITHCURSOR.COUNT!==void 0)parser.push("COUNT",options.WITHCURSOR.COUNT.toString());if(options.WITHCURSOR.MAXIDLE!==void 0)parser.push("MAXIDLE",options.WITHCURSOR.MAXIDLE.toString())}}exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,index,options){parser.push("FT.HYBRID",index),parseHybridOptions(parser,options)},transformReply:{2:(reply)=>{if(Array.isArray(reply)&&reply.length===2&&typeof reply[1]==="number"){let[searchResults,cursor]=reply;return{...transformHybridSearchResults(searchResults),cursor}}else return transformHybridSearchResults(reply)},3:void 0},unstableResp3:!0};function transformHybridSearchResults(reply){let withoutDocuments=reply.length>2&&!Array.isArray(reply[2]),documents=[],i=1;while(i<reply.length)documents.push({id:reply[i++],value:withoutDocuments?Object.create(null):documentValue(reply[i++])});return{total:reply[0],documents}}function documentValue(tuples){let message=Object.create(null);if(!tuples)return message;let i=0;while(i<tuples.length){let key=tuples[i++],value=tuples[i++];if(key==="$")try{Object.assign(message,JSON.parse(value));continue}catch{}message[key]=value}return message}});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()),HYBRID_1=__importDefault(require_HYBRID()),INFO_1=__importDefault(require_INFO7()),PROFILE_SEARCH_1=__importDefault(require_PROFILE_SEARCH()),PROFILE_AGGREGATE_1=__importDefault(require_PROFILE_AGGREGATE()),SEARCH_NOCONTENT_1=__importDefault(require_SEARCH_NOCONTENT()),SEARCH_1=__importDefault(require_SEARCH()),SPELLCHECK_1=__importDefault(require_SPELLCHECK()),SUGADD_1=__importDefault(require_SUGADD()),SUGDEL_1=__importDefault(require_SUGDEL()),SUGGET_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHPAYLOADS()),SUGGET_WITHSCORES_WITHPAYLOADS_1=__importDefault(require_SUGGET_WITHSCORES_WITHPAYLOADS()),SUGGET_WITHSCORES_1=__importDefault(require_SUGGET_WITHSCORES()),SUGGET_1=__importDefault(require_SUGGET()),SUGLEN_1=__importDefault(require_SUGLEN()),SYNDUMP_1=__importDefault(require_SYNDUMP()),SYNUPDATE_1=__importDefault(require_SYNUPDATE()),TAGVALS_1=__importDefault(require_TAGVALS());exports.default={_LIST:_LIST_1.default,_list:_LIST_1.default,ALTER:ALTER_1.default,alter:ALTER_1.default,AGGREGATE_WITHCURSOR:AGGREGATE_WITHCURSOR_1.default,aggregateWithCursor:AGGREGATE_WITHCURSOR_1.default,AGGREGATE:AGGREGATE_1.default,aggregate:AGGREGATE_1.default,ALIASADD:ALIASADD_1.default,aliasAdd:ALIASADD_1.default,ALIASDEL:ALIASDEL_1.default,aliasDel:ALIASDEL_1.default,ALIASUPDATE:ALIASUPDATE_1.default,aliasUpdate:ALIASUPDATE_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,CREATE:CREATE_1.default,create:CREATE_1.default,CURSOR_DEL:CURSOR_DEL_1.default,cursorDel:CURSOR_DEL_1.default,CURSOR_READ:CURSOR_READ_1.default,cursorRead:CURSOR_READ_1.default,DICTADD:DICTADD_1.default,dictAdd:DICTADD_1.default,DICTDEL:DICTDEL_1.default,dictDel:DICTDEL_1.default,DICTDUMP:DICTDUMP_1.default,dictDump:DICTDUMP_1.default,DROPINDEX:DROPINDEX_1.default,dropIndex:DROPINDEX_1.default,EXPLAIN:EXPLAIN_1.default,explain:EXPLAIN_1.default,EXPLAINCLI:EXPLAINCLI_1.default,explainCli:EXPLAINCLI_1.default,HYBRID:HYBRID_1.default,hybrid:HYBRID_1.default,INFO:INFO_1.default,info:INFO_1.default,PROFILESEARCH:PROFILE_SEARCH_1.default,profileSearch:PROFILE_SEARCH_1.default,PROFILEAGGREGATE:PROFILE_AGGREGATE_1.default,profileAggregate:PROFILE_AGGREGATE_1.default,SEARCH_NOCONTENT:SEARCH_NOCONTENT_1.default,searchNoContent:SEARCH_NOCONTENT_1.default,SEARCH:SEARCH_1.default,search:SEARCH_1.default,SPELLCHECK:SPELLCHECK_1.default,spellCheck:SPELLCHECK_1.default,SUGADD:SUGADD_1.default,sugAdd:SUGADD_1.default,SUGDEL:SUGDEL_1.default,sugDel:SUGDEL_1.default,SUGGET_WITHPAYLOADS:SUGGET_WITHPAYLOADS_1.default,sugGetWithPayloads:SUGGET_WITHPAYLOADS_1.default,SUGGET_WITHSCORES_WITHPAYLOADS:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,sugGetWithScoresWithPayloads:SUGGET_WITHSCORES_WITHPAYLOADS_1.default,SUGGET_WITHSCORES:SUGGET_WITHSCORES_1.default,sugGetWithScores:SUGGET_WITHSCORES_1.default,SUGGET:SUGGET_1.default,sugGet:SUGGET_1.default,SUGLEN:SUGLEN_1.default,sugLen:SUGLEN_1.default,SYNDUMP:SYNDUMP_1.default,synDump:SYNDUMP_1.default,SYNUPDATE:SYNUPDATE_1.default,synUpdate:SYNUPDATE_1.default,TAGVALS:TAGVALS_1.default,tagVals:TAGVALS_1.default}});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,filter11){parser.push("FILTER"),parser.pushVariadic(filter11)}exports.parseFilterArgument=parseFilterArgument;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand(parser,filter11,options){parser.push("TS.MGET"),parseLatestArgument(parser,options?.LATEST),parseFilterArgument(parser,filter11)},transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([,,sample])=>{return{sample:helpers_1.transformSampleReply[2](sample)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([,sample])=>{return{sample:helpers_1.transformSampleReply[3](sample)}})}}}});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,filter11,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)},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,filter11,selectedLabels,options){parser.push("TS.MGET"),(0,MGET_1.parseLatestArgument)(parser,options?.LATEST),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)},transformReply:(0,MGET_WITHLABELS_1.createTransformMGetLabelsReply)()}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11),parseGroupByArguments(parser,groupBy3)}}exports.createTransformMRangeGroupByArguments=createTransformMRangeGroupByArguments;function extractResp3MRangeSources(raw){let unwrappedMetadata2=raw;if(unwrappedMetadata2 instanceof Map)return unwrappedMetadata2.get("sources");else if(unwrappedMetadata2 instanceof Array)return unwrappedMetadata2[1];else return unwrappedMetadata2.sources}exports.extractResp3MRangeSources=extractResp3MRangeSources;exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeGroupByArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return{samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata1,metadata2,samples])=>{return{sources:extractResp3MRangeSources(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeSelectedLabelsArguments=createTransformMRangeSelectedLabelsArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createTransformMRangeSelectedLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{return{labels:(0,helpers_1.transformRESP2Labels)(labels,typeMapping),samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_key,labels,samples])=>{return{labels,samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,helpers_1.parseSelectedLabelsArguments)(parser,selectedLabels),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeSelectedLabelsGroupByTransformArguments=createMRangeSelectedLabelsGroupByTransformArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeSelectedLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2:MRANGE_SELECTED_LABELS_1.default.transformReply[2],3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,groupBy3,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11),(0,MRANGE_GROUPBY_1.parseGroupByArguments)(parser,groupBy3)}}exports.createMRangeWithLabelsGroupByTransformArguments=createMRangeWithLabelsGroupByTransformArguments;exports.default={IS_READ_ONLY:!0,parseCommand:createMRangeWithLabelsGroupByTransformArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let transformed=(0,helpers_1.transformRESP2LabelsWithSources)(labels);return{labels:transformed.labels,sources:transformed.sources,samples:helpers_1.transformSamplesReply[2](samples)}},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([labels,_metadata,metadata2,samples])=>{return{labels,sources:(0,MRANGE_GROUPBY_1.extractResp3MRangeSources)(metadata2),samples:helpers_1.transformSamplesReply[3](samples)}})}}}});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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),parser.push("WITHLABELS"),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeWithLabelsArguments=createTransformMRangeWithLabelsArguments;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeWithLabelsArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,labels,samples])=>{let unwrappedLabels=labels,labelsObject=Object.create(null);for(let 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,filter11,options)=>{parser.push(command),(0,RANGE_1.parseRangeArguments)(parser,fromTimestamp,toTimestamp,options),(0,MGET_1.parseFilterArgument)(parser,filter11)}}exports.createTransformMRangeArguments=createTransformMRangeArguments;exports.default={NOT_KEYED_COMMAND:!0,IS_READ_ONLY:!0,parseCommand:createTransformMRangeArguments("TS.MRANGE"),transformReply:{2(reply,_,typeMapping){return(0,helpers_1.resp2MapToValue)(reply,([_key,_labels,samples])=>{return helpers_1.transformSamplesReply[2](samples)},typeMapping)},3(reply){return(0,helpers_1.resp3MapToValue)(reply,([_labels,_metadata,samples])=>{return helpers_1.transformSamplesReply[3](samples)})}}}});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,filter11){parser.push("TS.QUERYINDEX"),parser.pushVariadic(filter11)},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.createClientPool=exports.createClient=void 0;var client_1=require_dist(),bloom_1=__importDefault(require_lib2()),json_1=__importDefault(require_lib3()),search_1=__importDefault(require_lib4()),time_series_1=__importDefault(require_lib5());__exportStar(require_dist(),exports);__exportStar(require_lib2(),exports);__exportStar(require_lib3(),exports);__exportStar(require_lib4(),exports);__exportStar(require_lib5(),exports);var modules={...bloom_1.default,json:json_1.default,ft:search_1.default,ts:time_series_1.default};function createClient(options){return(0,client_1.createClient)({...options,modules:{...modules,...options?.modules}})}exports.createClient=createClient;function createClientPool(clientOptions,options){return(0,client_1.createClientPool)({...clientOptions,modules:{...modules,...clientOptions?.modules}},options)}exports.createClientPool=createClientPool;function createCluster(options){return(0,client_1.createCluster)({...options,modules:{...modules,...options?.modules}})}exports.createCluster=createCluster;function createSentinel(options){return(0,client_1.createSentinel)({...options,modules:{...modules,...options?.modules}})}exports.createSentinel=createSentinel});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),constNull=constant(null),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`;var GenKindTypeId=Symbol.for("effect/Gen/GenKind"),isGenKind=(u)=>isObject(u)&&(GenKindTypeId in u);class GenKindImpl{value;constructor(value){this.value=value}get _F(){return identity}get _R(){return(_)=>_}get _O(){return(_)=>_}get _E(){return(_)=>_}[GenKindTypeId]=GenKindTypeId;[Symbol.iterator](){return new SingleShotGen(this)}}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 adapter=()=>function(){let x=arguments[0];for(let i=1;i<arguments.length;i++)x=arguments[i](x);return new GenKindImpl(x)},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){if(Number.isNaN(self.getTime()))return string("Invalid 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){let t1=self.getTime(),t2=that.getTime();return t1===t2||Number.isNaN(t1)&&Number.isNaN(t2)}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.14",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},getLeft=(self)=>isRight(self)?none:some(self.left),getRight=(self)=>isLeft(self)?none:some(self.right);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 exports_Option={};__export(exports_Option,{zipWith:()=>zipWith,zipRight:()=>zipRight,zipLeft:()=>zipLeft,void:()=>void_,toRefinement:()=>toRefinement,toArray:()=>toArray,tap:()=>tap,some:()=>some2,reduceCompact:()=>reduceCompact,productMany:()=>productMany,product:()=>product,partitionMap:()=>partitionMap,orElseSome:()=>orElseSome,orElseEither:()=>orElseEither,orElse:()=>orElse,none:()=>none2,mergeWith:()=>mergeWith,match:()=>match2,map:()=>map,liftThrowable:()=>liftThrowable,liftPredicate:()=>liftPredicate,liftNullable:()=>liftNullable,lift2:()=>lift2,let:()=>let_2,isSome:()=>isSome2,isOption:()=>isOption2,isNone:()=>isNone2,getRight:()=>getRight2,getOrder:()=>getOrder,getOrUndefined:()=>getOrUndefined,getOrThrowWith:()=>getOrThrowWith,getOrThrow:()=>getOrThrow,getOrNull:()=>getOrNull,getOrElse:()=>getOrElse,getLeft:()=>getLeft2,getEquivalence:()=>getEquivalence,gen:()=>gen,fromNullable:()=>fromNullable,fromIterable:()=>fromIterable,flatten:()=>flatten,flatMapNullable:()=>flatMapNullable,flatMap:()=>flatMap,firstSomeOf:()=>firstSomeOf,filterMap:()=>filterMap,filter:()=>filter,exists:()=>exists,containsWith:()=>containsWith,contains:()=>contains,composeK:()=>composeK,bindTo:()=>bindTo2,bind:()=>bind2,asVoid:()=>asVoid,as:()=>as,ap:()=>ap,andThen:()=>andThen,all:()=>all,TypeId:()=>TypeId3,Do:()=>Do});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 TypeId3=Symbol.for("effect/Option"),none2=()=>none,some2=some,isOption2=isOption,isNone2=isNone,isSome2=isSome,match2=dual(2,(self,{onNone,onSome})=>isNone2(self)?onNone():onSome(self.value)),toRefinement=(f)=>(a)=>isSome2(f(a)),fromIterable=(collection)=>{for(let a of collection)return some2(a);return none2()},getRight2=getRight,getLeft2=getLeft,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),orElseEither=dual(2,(self,that)=>isNone2(self)?map(that(),right):map(self,left)),firstSomeOf=(collection)=>{let out=none2();for(out of collection)if(isSome2(out))return out;return out},fromNullable=(nullableValue)=>nullableValue==null?none2():some2(nullableValue),liftNullable=(f)=>(...a)=>fromNullable(f(...a)),getOrNull=getOrElse(constNull),getOrUndefined=getOrElse(constUndefined),liftThrowable=(f)=>(...a)=>{try{return some2(f(...a))}catch{return none2()}},getOrThrowWith=dual(2,(self,onNone)=>{if(isSome2(self))return self.value;throw onNone()}),getOrThrow=getOrThrowWith(()=>Error("getOrThrow called on a None")),map=dual(2,(self,f)=>isNone2(self)?none2():some2(f(self.value))),as=dual(2,(self,b)=>map(self,()=>b)),asVoid=as(void 0),void_=some2(void 0);var flatMap=dual(2,(self,f)=>isNone2(self)?none2():f(self.value)),andThen=dual(2,(self,f)=>flatMap(self,(a)=>{let b=isFunction(f)?f(a):f;return isOption2(b)?b:some2(b)})),flatMapNullable=dual(2,(self,f)=>isNone2(self)?none2():fromNullable(f(self.value))),flatten=flatMap(identity),zipRight=dual(2,(self,that)=>flatMap(self,()=>that)),zipLeft=dual(2,(self,that)=>tap(self,()=>that)),composeK=dual(2,(afb,bfc)=>(a)=>flatMap(afb(a),bfc)),tap=dual(2,(self,f)=>flatMap(self,(a)=>map(f(a),()=>a))),product=(self,that)=>isSome2(self)&&isSome2(that)?some2([self.value,that.value]):none2(),productMany=(self,collection)=>{if(isNone2(self))return none2();let out=[self.value];for(let o of collection){if(isNone2(o))return none2();out.push(o.value)}return some2(out)},all=(input)=>{if(Symbol.iterator in input){let out2=[];for(let o of input){if(isNone2(o))return none2();out2.push(o.value)}return some2(out2)}let out={};for(let key of Object.keys(input)){let o=input[key];if(isNone2(o))return none2();out[key]=o.value}return some2(out)},zipWith=dual(3,(self,that,f)=>map(product(self,that),([a,b])=>f(a,b))),ap=dual(2,(self,that)=>zipWith(self,that,(f,a)=>f(a))),reduceCompact=dual(3,(self,b,f)=>{let out=b;for(let oa of self)if(isSome2(oa))out=f(out,oa.value);return out}),toArray=(self)=>isNone2(self)?[]:[self.value],partitionMap=dual(2,(self,f)=>{if(isNone2(self))return[none2(),none2()];let e=f(self.value);return isLeft(e)?[some2(e.left),none2()]:[none2(),some2(e.right)]}),filterMap=flatMap,filter=dual(2,(self,predicate)=>filterMap(self,(b)=>predicate(b)?some(b):none)),getEquivalence=(isEquivalent)=>make((x,y)=>isNone2(x)?isNone2(y):isNone2(y)?!1:isEquivalent(x.value,y.value)),getOrder=(O)=>make2((self,that)=>isSome2(self)?isSome2(that)?O(self.value,that.value):1:-1),lift2=(f)=>dual(2,(self,that)=>zipWith(self,that,f)),liftPredicate=dual(2,(b,predicate)=>predicate(b)?some2(b):none2()),containsWith=(isEquivalent)=>dual(2,(self,a)=>isNone2(self)?!1:isEquivalent(self.value,a)),_equivalence=equivalence(),contains=containsWith(_equivalence),exists=dual(2,(self,refinement)=>isNone2(self)?!1:refinement(self.value)),bindTo2=bindTo(map),let_2=let_(map);var bind2=bind(map,flatMap),Do=some2({}),adapter2=adapter(),gen=(...args)=>{let iterator=(args.length===1?args[0]:args[1].bind(args[0]))(adapter2),state=iterator.next();while(!state.done){let current=isGenKind(state.value)?state.value.value:yieldWrapGet(state.value);if(isNone2(current))return current;state=iterator.next(current.value)}return some2(state.value)},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 fromIterable2=(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)=>fromIterable2(self).concat(fromIterable2(that)));var isEmptyArray=(self)=>self.length===0,isEmptyReadonlyArray=isEmptyArray,isNonEmptyArray2=isNonEmptyArray,isNonEmptyReadonlyArray=isNonEmptyArray;var isOutOfBounds=(i,as2)=>i<0||i>=as2.length,clamp=(i,as2)=>Math.floor(Math.min(Math.max(0,i),as2.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=fromIterable2(self);return input.slice(clamp(n,input),input.length)});var findFirstIndex=dual(2,(self,predicate)=>{let i=0;for(let a of self){if(predicate(a,i))return some2(i);i++}return none2()}),findLastIndex=dual(2,(self,predicate)=>{let input=fromIterable2(self);for(let i=input.length-1;i>=0;i--)if(predicate(input[i],i))return some2(i);return none2()}),findFirst2=findFirst,findLast=dual(2,(self,f)=>{let input=fromIterable2(self);for(let i=input.length-1;i>=0;i--){let a=input[i],o=f(a,i);if(isBoolean(o)){if(o)return some2(a)}else if(isSome2(o))return o}return none2()});var modify=dual(3,(self,i,f)=>{let out=Array.from(self);if(isOutOfBounds(i,out))return out;let b=f(out[i]);return out[i]=b,out});var remove=dual(2,(self,i)=>{let out=Array.from(self);if(isOutOfBounds(i,out))return out;return out.splice(i,1),out});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)=>zipWith2(self,that,make3)),zipWith2=dual(3,(self,that,f)=>{let as2=fromIterable2(self),bs=fromIterable2(that);if(isNonEmptyReadonlyArray(as2)&&isNonEmptyReadonlyArray(bs)){let out=[f(headNonEmpty(as2),headNonEmpty(bs))],len=Math.min(as2.length,bs.length);for(let i=1;i<len;i++)out[i]=f(as2[i],bs[i]);return out}return[]}),unzip=(self)=>{let input=fromIterable2(self);if(isNonEmptyReadonlyArray(input)){let fa=[input[0][0]],fb=[input[0][1]];for(let i=1;i<input.length;i++)fa[i]=input[i][0],fb[i]=input[i][1];return[fa,fb]}return[[],[]]};var containsWith2=(isEquivalent)=>dual(2,(self,a)=>{for(let i of self)if(isEquivalent(a,i))return!0;return!1}),_equivalence2=equivalence(),contains2=containsWith2(_equivalence2);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=fromIterable2(self),b=fromIterable2(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)),intersectionWith=(isEquivalent)=>{let has=containsWith2(isEquivalent);return dual(2,(self,that)=>{let bs=fromIterable2(that);return fromIterable2(self).filter((a)=>has(bs,a))})},intersection=intersectionWith(_equivalence2),differenceWith=(isEquivalent)=>{let has=containsWith2(isEquivalent);return dual(2,(self,that)=>{let bs=fromIterable2(that);return fromIterable2(self).filter((a)=>!has(bs,a))})},difference=differenceWith(_equivalence2),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}),flatten2=flatMap2(identity),filterMap2=dual(2,(self,f)=>{let as2=fromIterable2(self),out=[];for(let i=0;i<as2.length;i++){let o=f(as2[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}),partitionMap2=dual(2,(self,f)=>{let left3=[],right3=[],as2=fromIterable2(self);for(let i=0;i<as2.length;i++){let e=f(as2[i],i);if(isLeft2(e))left3.push(e.left);else right3.push(e.right)}return[left3,right3]}),getSomes=filterMap2(identity);var filter2=dual(2,(self,predicate)=>{let as2=fromIterable2(self),out=[];for(let i=0;i<as2.length;i++)if(predicate(as2[i],i))out.push(as2[i]);return out}),partition=dual(2,(self,predicate)=>{let left3=[],right3=[],as2=fromIterable2(self);for(let i=0;i<as2.length;i++)if(predicate(as2[i],i))right3.push(as2[i]);else left3.push(as2[i]);return[left3,right3]}),separate=partitionMap2(identity),reduce=dual(3,(self,b,f)=>fromIterable2(self).reduce((b2,a,i)=>f(b2,a,i),b)),reduceRight=dual(3,(self,b,f)=>fromIterable2(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 getEquivalence2=array;var dedupeWith=dual(2,(self,isEquivalent)=>{let input=fromIterable2(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()),dedupeAdjacentWith=dual(2,(self,isEquivalent)=>{let out=[],lastA=none2();for(let a of self)if(isNone2(lastA)||!isEquivalent(a,lastA.value))out.push(a),lastA=some2(a);return out}),dedupeAdjacent=dedupeAdjacentWith(equivalence()),join=dual(2,(self,sep)=>fromIterable2(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},TypeId4=Symbol.for("effect/Context"),ContextProto={[TypeId4]:{_Services:(_)=>_},[symbol2](that){if(isContext(that)){if(this.unsafeMap.size===that.unsafeMap.size){for(let k of this.unsafeMap.keys())if(!that.unsafeMap.has(k)||!equals(this.unsafeMap.get(k),that.unsafeMap.get(k)))return!1;return!0}}return!1},[symbol](){return cached(this,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
6
  `)}return error},isContext=(u)=>hasProperty(u,TypeId4),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 exports_Chunk={};__export(exports_Chunk,{zipWith:()=>zipWith3,zip:()=>zip2,unzip:()=>unzip2,unsafeLast:()=>unsafeLast,unsafeHead:()=>unsafeHead,unsafeGet:()=>unsafeGet4,unsafeFromNonEmptyArray:()=>unsafeFromNonEmptyArray,unsafeFromArray:()=>unsafeFromArray,union:()=>union2,toReadonlyArray:()=>toReadonlyArray,toArray:()=>toArray2,takeWhile:()=>takeWhile,takeRight:()=>takeRight,take:()=>take,tailNonEmpty:()=>tailNonEmpty2,tail:()=>tail,splitWhere:()=>splitWhere,splitNonEmptyAt:()=>splitNonEmptyAt2,splitAt:()=>splitAt2,split:()=>split,sortWith:()=>sortWith,sort:()=>sort2,some:()=>some3,size:()=>size,separate:()=>separate2,reverse:()=>reverse2,replaceOption:()=>replaceOption,replace:()=>replace,removeOption:()=>removeOption,remove:()=>remove2,reduceRight:()=>reduceRight2,reduce:()=>reduce2,range:()=>range,prependAll:()=>prependAll,prepend:()=>prepend2,partitionMap:()=>partitionMap3,partition:()=>partition2,of:()=>of2,modifyOption:()=>modifyOption,modify:()=>modify2,mapAccum:()=>mapAccum2,map:()=>map3,makeBy:()=>makeBy2,make:()=>make6,lastNonEmpty:()=>lastNonEmpty2,last:()=>last2,join:()=>join2,isNonEmpty:()=>isNonEmpty,isEmpty:()=>isEmpty,isChunk:()=>isChunk,intersection:()=>intersection2,headNonEmpty:()=>headNonEmpty2,head:()=>head2,getEquivalence:()=>getEquivalence3,get:()=>get4,fromIterable:()=>fromIterable3,forEach:()=>forEach,flatten:()=>flatten3,flatMap:()=>flatMap3,findLastIndex:()=>findLastIndex2,findLast:()=>findLast2,findFirstIndex:()=>findFirstIndex2,findFirst:()=>findFirst3,filterMapWhile:()=>filterMapWhile2,filterMap:()=>filterMap3,filter:()=>filter3,every:()=>every2,empty:()=>empty4,dropWhile:()=>dropWhile,dropRight:()=>dropRight,drop:()=>drop2,differenceWith:()=>differenceWith2,difference:()=>difference2,dedupeAdjacent:()=>dedupeAdjacent2,dedupe:()=>dedupe2,containsWith:()=>containsWith3,contains:()=>contains3,compact:()=>compact,chunksOf:()=>chunksOf,appendAll:()=>appendAll2,append:()=>append2});var TypeId5=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=[],getEquivalence3=(isEquivalent)=>make((self,that)=>self.length===that.length&&toReadonlyArray(self).every((value,i)=>isEquivalent(value,unsafeGet4(that,i)))),_equivalence3=getEquivalence3(equals),ChunkProto={[TypeId5]:{_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,TypeId5),_empty2=makeChunk({_tag:"IEmpty"}),empty4=()=>_empty2,make6=(...as2)=>unsafeFromNonEmptyArray(as2),of2=(a)=>makeChunk({_tag:"ISingleton",a}),fromIterable3=(self)=>isChunk(self)?self:unsafeFromArray(fromIterable2(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}}},toArray_=(self)=>toReadonlyArray(self).slice(),toArray2=toArray_,toReadonlyArray_=(self)=>{switch(self.backing._tag){case"IEmpty":return emptyArray;case"IArray":return self.backing.array;default:{let arr=Array(self.length);return copyToArray(self,arr,0),self.backing={_tag:"IArray",array:arr},self.left=_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})}}),dropRight=dual(2,(self,n)=>take(self,Math.max(0,self.length-n))),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)}),prependAll=dual(2,(self,that)=>appendAll2(that,self)),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})}}}),filterMap3=dual(2,(self,f)=>unsafeFromArray(filterMap2(self,f))),filter3=dual(2,(self,predicate)=>unsafeFromArray(filter2(self,predicate))),filterMapWhile2=dual(2,(self,f)=>unsafeFromArray(filterMapWhile(self,f))),compact=(self)=>filterMap3(self,identity),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}),forEach=dual(2,(self,f)=>toReadonlyArray(self).forEach(f)),flatten3=flatMap3(identity),chunksOf=dual(2,(self,n)=>{let gr=[],current=[];if(toReadonlyArray(self).forEach((a)=>{if(current.push(a),current.length>=n)gr.push(unsafeFromArray(current)),current=[]}),current.length>0)gr.push(unsafeFromArray(current));return unsafeFromArray(gr)}),intersection2=dual(2,(self,that)=>unsafeFromArray(intersection(toReadonlyArray(self),toReadonlyArray(that)))),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),lastNonEmpty2=unsafeLast,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,as2]=mapAccum(self,s,f);return[s1,unsafeFromArray(as2)]}),partition2=dual(2,(self,predicate)=>pipe(partition(toReadonlyArray(self),predicate),([l,r])=>[unsafeFromArray(l),unsafeFromArray(r)])),partitionMap3=dual(2,(self,f)=>pipe(partitionMap2(toReadonlyArray(self),f),([l,r])=>[unsafeFromArray(l),unsafeFromArray(r)])),separate2=(self)=>pipe(separate(toReadonlyArray(self)),([l,r])=>[unsafeFromArray(l),unsafeFromArray(r)]),size=(self)=>self.length,sort2=dual(2,(self,O)=>unsafeFromArray(sort(toReadonlyArray(self),O))),sortWith=dual(3,(self,f,order)=>sort2(self,mapInput2(order,f))),splitAt2=dual(2,(self,n)=>[take(self,n),drop2(self,n)]),splitNonEmptyAt2=dual(2,(self,n)=>{let _n=Math.max(1,Math.floor(n));return _n>=self.length?[self,empty4()]:[take(self,_n),drop2(self,_n)]}),split=dual(2,(self,n)=>chunksOf(self,Math.ceil(self.length/Math.floor(n)))),splitWhere=dual(2,(self,predicate)=>{let i=0;for(let a of toReadonlyArray(self))if(predicate(a))break;else i++;return splitAt2(self,i)}),tail=(self)=>self.length>0?some2(drop2(self,1)):none2(),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)}),union2=dual(2,(self,that)=>unsafeFromArray(union(toReadonlyArray(self),toReadonlyArray(that)))),dedupe2=(self)=>unsafeFromArray(dedupe(toReadonlyArray(self))),dedupeAdjacent2=(self)=>unsafeFromArray(dedupeAdjacent(self)),unzip2=(self)=>{let[left3,right3]=unzip(self);return[unsafeFromArray(left3),unsafeFromArray(right3)]},zipWith3=dual(3,(self,that,f)=>unsafeFromArray(zipWith2(self,that,f))),zip2=dual(2,(self,that)=>zipWith3(self,that,(a,b)=>[a,b])),remove2=dual(2,(self,i)=>{if(i<0||i>=self.length)return self;return unsafeFromArray(remove(toReadonlyArray(self),i))}),removeOption=dual(2,(self,i)=>{if(i<0||i>=self.length)return none2();return some2(unsafeFromArray(remove(toReadonlyArray(self),i)))}),modifyOption=dual(3,(self,i,f)=>{if(i<0||i>=self.length)return none2();return some2(unsafeFromArray(modify(toReadonlyArray(self),i,f)))}),modify2=dual(3,(self,i,f)=>getOrElse(modifyOption(self,i,f),()=>self)),replace=dual(3,(self,i,b)=>modify2(self,i,()=>b)),replaceOption=dual(3,(self,i,b)=>modifyOption(self,i,()=>b)),makeBy2=dual(2,(n,f)=>fromIterable3(makeBy(n,f))),range=(start,end)=>start<=end?makeBy2(end-start+1,(i)=>start+i):of2(start),contains3=contains2,containsWith3=containsWith2,findFirst3=findFirst2,findFirstIndex2=findFirstIndex,findLast2=findLast,findLastIndex2=findLastIndex,every2=dual(2,(self,refinement)=>fromIterable2(self).every(refinement)),some3=dual(2,(self,predicate)=>fromIterable2(self).some(predicate)),join2=join,reduce2=reduce,reduceRight2=reduceRight,differenceWith2=(isEquivalent)=>{return dual(2,(self,that)=>unsafeFromArray(differenceWith(isEquivalent)(that,self)))},difference2=dual(2,(self,that)=>unsafeFromArray(difference(that,self)));var TypeId6=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={[TypeId6]:TypeId6,[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,TypeId6),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,size2){let v=f(none2());if(isNone2(v))return new EmptyNode;return++size2.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,size2){if(equals(key,this.key)){let v2=f(this.value);if(v2===this.value)return this;else if(isNone2(v2))return--size2.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++size2.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,size2){if(hash2===this.hash){let canEdit=canEditNode(this,edit),list=this.updateCollisionList(canEdit,edit,this.hash,this.children,f,key,size2);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++size2.value,mergeLeaves(edit,shift,this.hash,this,hash2,new LeafNode(edit,hash2,key,v))}updateCollisionList(mutate,edit,hash2,list,f,key,size2){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--size2.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++size2.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,size2){let mask=this.mask,children=this.children,frag=hashFragment(shift,hash2),bit=toBitmap(frag),indx=fromBitmap(mask,bit),exists2=mask&bit,canEdit=canEditNode(this,edit);if(!exists2){let _newChild=new EmptyNode().modify(edit,shift+SIZE,f,hash2,key,size2);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,size2);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,size2,children){this.edit=edit,this.size=size2,this.children=children}modify(edit,shift,f,hash2,key,size2){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,size2);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,size2)=>{let map4=Object.create(HashMapProto);return map4._editable=editable,map4._edit=edit,map4._root=root,map4._size=size2,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 fromIterable4=(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 size2=(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 size3={value:self._size},newRoot=self._root.modify(self._editable?self._edit:NaN,0,f,hash2,key,size3);return pipe(self,setTree(newRoot,size3.value))});var remove3=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 forEach2=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 size2(this._keyMap)===size2(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,fromIterable5=(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 size3=(self)=>size2(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))),remove4=dual(2,(self,value)=>self._keyMap._editable?(remove3(value)(self._keyMap),self):makeImpl2(remove3(value)(self._keyMap))),difference3=dual(2,(self,that)=>mutate2(self,(set2)=>{for(let value of that)remove4(set2,value)}));var union3=dual(2,(self,that)=>mutate2(empty6(),(set2)=>{forEach3(self,(value)=>add3(set2,value));for(let value of that)add3(set2,value)}));var forEach3=dual(2,(self,f)=>forEach2(self._keyMap,(_,k)=>f(k))),reduce4=dual(3,(self,zero2,f)=>reduce3(self._keyMap,zero2,(z,_,a)=>f(z,a)));var empty7=empty6,fromIterable6=fromIterable5,make10=make9,has3=has2;var size4=size3;var add4=add3,remove5=remove4,difference4=difference3;var union4=union3;var forEach4=forEach3,reduce5=reduce4;var TypeId7=Symbol.for("effect/MutableRef"),MutableRefProto={[TypeId7]:TypeId7,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),union4(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 fromIterable7=fromIterable4,isEmpty3=isEmpty2,get7=get5;var set3=set,keys2=keys;var mutate3=mutate,modifyAt2=modifyAt;var map6=map4;var forEach5=forEach2,reduce6=reduce3;var TypeId8=Symbol.for("effect/List"),toArray3=(self)=>fromIterable2(self),getEquivalence4=(isEquivalent)=>mapInput(getEquivalence2(isEquivalent),toArray3),_equivalence4=getEquivalence4(equals),ConsProto={[TypeId8]:TypeId8,_tag:"Cons",toString(){return format(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:toArray3(this).map(toJSON)}},[NodeInspectSymbol](){return this.toJSON()},[symbol2](that){return isList(that)&&this._tag===that._tag&&_equivalence4(this,that)},[symbol](){return cached(this,array2(toArray3(this)))},[Symbol.iterator](){let done=!1,self=this;return{next(){if(done)return this.return();if(self._tag==="Nil")return done=!0,this.return();let value=self.head;return self=self.tail,{done,value}},return(value){if(!done)done=!0;return{done:!0,value}}}},pipe(){return pipeArguments(this,arguments)}},makeCons=(head3,tail2)=>{let cons=Object.create(ConsProto);return cons.head=head3,cons.tail=tail2,cons},NilHash=string("Nil"),NilProto={[TypeId8]:TypeId8,_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,TypeId8),isNil=(self)=>self._tag==="Nil",isCons=(self)=>self._tag==="Cons";var nil=()=>_Nil,cons=(head3,tail2)=>makeCons(head3,tail2),empty9=nil,of3=(value)=>makeCons(value,_Nil);var appendAll3=dual(2,(self,that)=>prependAll2(that,self)),prepend3=dual(2,(self,element)=>cons(element,self)),prependAll2=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=(as2)=>Object.assign(Object.create(StructuralPrototype),as2);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),tail2=tailNonEmpty2(patches);switch(head3._tag){case"Empty":{patches=tail2;break}case"AddService":{updatedContext.set(head3.key,head3.service),patches=tail2;break}case"AndThen":{patches=prepend2(prepend2(tail2,head3.second),head3.first);break}case"RemoveService":{updatedContext.delete(head3.key),patches=tail2;break}case"UpdateService":{updatedContext.set(head3.key,head3.update(updatedContext.get(head3.key))),wasServiceUpdated=!0,patches=tail2;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[remove5(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),tail2=tailNonEmpty2(patches);switch(head3._tag){case"Empty":{patches=tail2;break}case"AndThen":{patches=prepend2(head3.first)(prepend2(head3.second)(tail2));break}case"Add":{set4=add4(head3.value)(set4),patches=tail2;break}case"Remove":set4=remove5(head3.value)(set4),patches=tail2}}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),tail2=tailNonEmpty(patches);switch(head3._tag){case"Empty":{patches=tail2;break}case"AndThen":{tail2.unshift(head3.first,head3.second),patches=tail2;break}case"Append":{for(let value of head3.values)readonlyArray.push(value);patches=tail2;break}case"Slice":{readonlyArray=readonlyArray.slice(head3.from,head3.until),patches=tail2;break}case"Update":{readonlyArray[head3.index]=differ.patch(head3.patch,readonlyArray[head3.index]),patches=tail2;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 andThen2=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)=>andThen2(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 flatten4=(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)})),flatten5=(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,union4(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,union4(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,union4(par2)),pipe(sequential3,appendAll2(seq2))]})),updated=size4(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} {
@@ -16,7 +16,7 @@ ${prefix}}`;return stack};class PrettyError extends globalThis.Error{span=void 0
16
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}))})))),as2=dual(2,(self,value)=>flatMap8(self,()=>succeed(value))),asVoid2=(self)=>as2(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_2)},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_2}):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}),andThen3=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},flatten6=(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=fromIterable2(self),ret=allocate(arr.length),i=0;return as2(whileLoop({while:()=>i<arr.length,body:()=>f(arr[i],i),step:(b)=>{ret[i++]=b}}),ret)})),forEachSequentialDiscard=dual(2,(self,f)=>suspend(()=>{let arr=fromIterable2(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_2: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 zipRight2(cleanup(result),result)}}))),onInterrupt=dual(2,(self,cleanup)=>onExit(self,exitMatch({onFailure:(cause)=>isInterruptedOnly(cause)?asVoid2(cleanup(interruptors(cause))):void_2,onSuccess:()=>void_2}))),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})),partitionMap4=partitionMap2,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},tap2=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 as2(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_2=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}),gen2=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},zip3=dual(2,(self,that)=>flatMap8(self,(a)=>map9(that,(b)=>[a,b])));var zipLeft2=dual(2,(self,that)=>flatMap8(self,(a)=>as2(that,a))),zipRight2=dual(2,(self,that)=>flatMap8(self,()=>that)),zipWith4=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(zipLeft2(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(()=>asVoid2(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=fromIterable2(interruptors(self)).flatMap((fiberId2)=>fromIterable2(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"),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=fromIterable3(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 all2=exitCollectAll,die3=exitDie;var fail4=exitFail,failCause3=exitFailCause;var flatten7=exitFlatten;var interrupt4=exitInterrupt,map10=exitMap,mapBoth2=exitMapBoth;var match5=exitMatch;var succeed3=exitSucceed,void_3=exitVoid;var zip4=exitZip;var zipRight3=exitZipRight;var TypeId9=Symbol.for("effect/MutableHashMap"),MutableHashMapProto={[TypeId9]:TypeId9,[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,remove6=!1)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol2](bucket[i][0])){let value=bucket[i][1];if(remove6)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 remove6=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 size5=(self)=>{return self.referential.size+self.bucketsSize};var TypeId10=Symbol.for("effect/MutableList"),MutableListProto={[TypeId10]:TypeId10,[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 remove7(self,head3),head3.value;return};var remove7=(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 TypeId11=Symbol.for("effect/MutableQueue"),EmptyMutableQueue=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto={[TypeId11]:TypeId11,[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_2),duration);return asVoid2(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,split2=!0)=>options.load(path,config,split2),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,split2=!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,split2)))},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 fromIterable6(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,split2)=>{let op=config;switch(op._tag){case OP_CONSTANT:return succeed(of(op.value));case OP_DESCRIBED:return suspend(()=>fromFlatLoop(flat,prefix,op.config,split2));case OP_FAIL2:return fail2(MissingData(prefix,op.message));case OP_FALLBACK:return pipe(suspend(()=>fromFlatLoop(flat,prefix,op.first,split2)),catchAll((error1)=>{if(op.condition(error1))return pipe(fromFlatLoop(flat,prefix,op.second,split2),catchAll((error2)=>fail2(Or(error1,error2))));return fail2(error1)}));case OP_LAZY:return suspend(()=>fromFlatLoop(flat,prefix,op.config(),split2));case OP_MAP_OR_FAIL:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.original,split2),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,split2));case OP_PRIMITIVE:return pipe(patch5(prefix,flat.patch),flatMap8((prefix2)=>pipe(flat.load(prefix2,op,split2),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=flatten2(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,split2)),map9((matrix)=>{if(matrix.length===0)return of(empty8());return pipe(transpose(matrix),map2((values3)=>fromIterable7(zip(fromIterable2(keys3),values3))))}))})))));case OP_ZIP_WITH:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.left,split2),either2,flatMap8((left3)=>pipe(fromFlatLoop(flat,prefix,op.right,split2),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(zip3(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,split2)=>{if(!split2)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 TypeId12=Symbol.for("effect/Console"),consoleTag=GenericTag("effect/Console"),defaultConsole={[TypeId12]:TypeId12,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)))),as2(fromIterable3(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(`
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=fromIterable3(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 all2=exitCollectAll,die3=exitDie;var fail4=exitFail,failCause3=exitFailCause;var flatten7=exitFlatten;var interrupt4=exitInterrupt,map10=exitMap,mapBoth2=exitMapBoth;var match5=exitMatch;var succeed3=exitSucceed,void_3=exitVoid;var zip4=exitZip;var zipRight3=exitZipRight;var TypeId9=Symbol.for("effect/MutableHashMap"),MutableHashMapProto={[TypeId9]:TypeId9,[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,remove6=!1)=>{for(let i=0,len=bucket.length;i<len;i++)if(key[symbol2](bucket[i][0])){let value=bucket[i][1];if(remove6)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 remove6=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 size5=(self)=>{return self.referential.size+self.bucketsSize};var TypeId10=Symbol.for("effect/MutableList"),MutableListProto={[TypeId10]:TypeId10,[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 remove7(self,head3),head3.value;return};var remove7=(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 TypeId11=Symbol.for("effect/MutableQueue"),EmptyMutableQueue=Symbol.for("effect/mutable/MutableQueue/Empty"),MutableQueueProto={[TypeId11]:TypeId11,[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"||typeof performance.now!=="function")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_2),duration);return asVoid2(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,split2=!0)=>options.load(path,config,split2),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,split2=!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,split2)))},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 fromIterable6(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,split2)=>{let op=config;switch(op._tag){case OP_CONSTANT:return succeed(of(op.value));case OP_DESCRIBED:return suspend(()=>fromFlatLoop(flat,prefix,op.config,split2));case OP_FAIL2:return fail2(MissingData(prefix,op.message));case OP_FALLBACK:return pipe(suspend(()=>fromFlatLoop(flat,prefix,op.first,split2)),catchAll((error1)=>{if(op.condition(error1))return pipe(fromFlatLoop(flat,prefix,op.second,split2),catchAll((error2)=>fail2(Or(error1,error2))));return fail2(error1)}));case OP_LAZY:return suspend(()=>fromFlatLoop(flat,prefix,op.config(),split2));case OP_MAP_OR_FAIL:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.original,split2),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,split2));case OP_PRIMITIVE:return pipe(patch5(prefix,flat.patch),flatMap8((prefix2)=>pipe(flat.load(prefix2,op,split2),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=flatten2(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,split2)),map9((matrix)=>{if(matrix.length===0)return of(empty8());return pipe(transpose(matrix),map2((values3)=>fromIterable7(zip(fromIterable2(keys3),values3))))}))})))));case OP_ZIP_WITH:return suspend(()=>pipe(fromFlatLoop(flat,prefix,op.left,split2),either2,flatMap8((left3)=>pipe(fromFlatLoop(flat,prefix,op.right,split2),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(zip3(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,split2)=>{if(!split2)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 TypeId12=Symbol.for("effect/Console"),consoleTag=GenericTag("effect/Console"),defaultConsole={[TypeId12]:TypeId12,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)))),as2(fromIterable3(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
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)=>fromIterable6(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 TypeId13=Symbol.for("effect/Readable");var Proto={[TypeId13]:TypeId13,pipe(){return pipeArguments(this,arguments)}};var RefTypeId=Symbol.for("effect/Ref"),refVariance={_A:(_)=>_};class RefImpl extends Class{ref;commit(){return this.get}[RefTypeId]=refVariance;[TypeId13]=TypeId13;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 modify4=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 modify5=modify4;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),tail2=tailNonEmpty(patches);switch(head3._tag){case OP_EMPTY2:{patches=tail2;break}case OP_ADD:{fiberRefs2=updateAs(fiberRefs2,{fiberId:fiberId2,fiberRef:head3.fiberRef,value:head3.value}),patches=tail2;break}case OP_REMOVE:{fiberRefs2=delete_(fiberRefs2,head3.fiberRef),patches=tail2;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=tail2;break}case OP_AND_THEN:{patches=prepend(head3.first)(prepend(head3.second)(tail2));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)=>zipRight2(sleep2(duration),self)),descriptorWith=(f)=>withFiberRuntime((state,status)=>f({id:state.id(),status,interruptors:interruptors(state.getFiberRef(currentInterruptedCause))})),allowInterrupt=descriptorWith((descriptor)=>size4(descriptor.interruptors)>0?interrupt2:void_2),descriptor=descriptorWith(succeed),diffFiberRefs=(self)=>summarized(self,fiberRefs2,diff5),diffFiberRefsAndRuntimeFlags=(self)=>summarized(self,zip3(fiberRefs2,runtimeFlags),([refs,flags],[refsNew,flagsNew])=>[diff5(refs,refsNew),diff4(flags,flagsNew)]),Do2=succeed({}),bind3=bind(map9,flatMap8),bindTo3=bindTo(map9),let_3=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))),filterMap5=dual(2,(elements,pf)=>map9(forEachSequential(elements,identity),filterMap2(pf))),filterOrDie=dual(3,(self,predicate,orDieWith2)=>filterOrElse(self,predicate,(a)=>dieSync(()=>orDieWith2(a)))),filterOrDieMessage=dual(3,(self,predicate,message)=>filterOrElse(self,predicate,()=>dieMessage(message))),filterOrElse=dual(3,(self,predicate,orElse3)=>flatMap8(self,(a)=>predicate(a)?succeed(a):orElse3(a))),liftPredicate2=dual(3,(self,predicate,orFailWith)=>suspend(()=>predicate(self)?succeed(self):fail2(orFailWith(self)))),filterOrFail=dual((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=fromIterable3(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))})),every6=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,(as3)=>{let next=as3[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_2}),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_2})},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),fromIterable2),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_2),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)=>zipRight2(complete,pipe(deferredAwait(deferred),flatMap8(([patch7,a])=>as2(zip3(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_2;case"Some":return fail2(new NoSuchElementException)}}),once=(self)=>map9(make28(!0),(ref)=>asVoid2(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=fromIterable2(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)=>fromIterable2(elements).reduce((acc,el,i)=>flatMap8(acc,(a)=>f(a,el,i)),succeed(zero2))),reduceRight3=dual(3,(elements,zero2,f)=>fromIterable2(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):zipRight2(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 zipRight2(onFailure(either3.left),failCause(cause2));case"Right":return failCause(cause2)}},onSuccess:(a)=>as2(onSuccess(a),a)})),tapDefect=dual(2,(self,f)=>catchAllCause(self,(cause2)=>match2(keepDefects(cause2),{onNone:()=>failCause(cause2),onSome:(a)=>zipRight2(f(a),failCause(cause2))}))),tapError=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause2)=>{let either3=failureOrCause(cause2);switch(either3._tag){case"Left":return zipRight2(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_2})),tapErrorCause=dual(2,(self,f)=>matchCauseEffect(self,{onFailure:(cause2)=>zipRight2(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,flatten5),updateFiberRefs=(f)=>withFiberRuntime((state)=>{return state.setFiberRefs(f(state.id(),state.getFiberRefs())),void_2}),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")forEach5(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
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 TypeId14=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(`
@@ -24,7 +24,7 @@ ${this.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(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",[TypeId14]: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_4=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_4})}));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)),join3=(self)=>zipLeft2(flatten6(self.await),self.inheritAll);var _never={...CommitPrototype,commit(){return join3(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),fromIterable8=(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,fromIterable8);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=getEquivalence2(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=getEquivalence2(equals);class FrequencyState{occurrences;[MetricStateTypeId]=metricStateVariance;[FrequencyStateTypeId]=FrequencyStateTypeId;constructor(occurrences){this.occurrences=occurrences}_hash;[symbol](){return pipe(string(FrequencyStateSymbolKey),combine(array2(fromIterable2(this.occurrences.entries()))),cached(this))}[symbol2](that){return isFrequencyState(that)&&arrayEquals(fromIterable2(this.occurrences.entries()),fromIterable2(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,size6=bounds.length,values3=new Uint32Array(size6+1),boundaries=new Float64Array(size6),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=size6;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(size6),cumulated=0;for(let i=0;i<size6;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],tail2=sortedQuantiles.slice(1),resolvedHead=resolveQuantile(error,sampleCount,none2(),0,head4,sortedSamples),resolved=of(resolvedHead);return tail2.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)=>tap2(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 zip3(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_2));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),union4(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,difference4(oldSupervisors),reduce5(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_ADD_SUPERVISOR,supervisor}))),removed=pipe(oldSupervisors,difference4(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_2},[OP_ITERATOR]:(self,cont,value)=>{while(!0){let state=internalCall(()=>cont.effect_instruction_i0.next(value));if(state.done)return exitSucceed(state.value);let primitive=yieldWrapGet(state.value);if(!exitIsExit(primitive))return self.pushStack(cont),primitive;else if(primitive._tag==="Failure")return primitive;value=primitive.value}}},drainQueueWhileRunningTable={[OP_INTERRUPT_SIGNAL]:(self,runtimeFlags2,cur,message)=>{return self.processNewInterruptSignal(message.cause),interruptible(runtimeFlags2)?exitFailCause(message.cause):cur},[OP_RESUME]:(_self,_runtimeFlags,_cur,_message)=>{throw Error("It is illegal to have multiple concurrent run loops in a single fiber")},[OP_STATEFUL]:(self,runtimeFlags2,cur,message)=>{return message.onFiber(self,running2(runtimeFlags2)),cur},[OP_YIELD_NOW]:(_self,_runtimeFlags,cur,_message)=>{return flatMap8(yieldNow(),()=>cur)}},runBlockedRequests=(self)=>forEachSequentialDiscard(flatten4(self),(requestsByRequestResolver)=>forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver),([dataSource,sequential4])=>{let 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 join3(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 asVoid2(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(size4(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_2)},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(tap2(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"),exists2=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>matchSimple(options?.concurrency,()=>suspend(()=>existsLoop(elements[Symbol.iterator](),0,predicate)),()=>matchEffect(forEach6(elements,(a,i)=>if_(predicate(a,i),{onTrue:()=>fail2(_existsParFound),onFalse:()=>void_2}),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))},filter6=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(()=>fromIterable2(elements).reduceRight((effect,a,i)=>zipWith4(effect,suspend(()=>predicate_(a,i)),(list,b)=>b?[a,...list]:list),sync(()=>[]))),()=>map9(forEach6(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),size6=keys3.length;return[keys3.map((k)=>input[k]),some2((values3)=>{let res={};for(let i=0;i<size6;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(forEach6(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>{let none9=none2(),size6=eithers.length,errors=Array(size6),successes=Array(size6),errored=!1;for(let i=0;i<size6;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_2;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 forEach6(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,discard:!0,concurrentFinalizers:options?.concurrentFinalizers});return map9(forEach6(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(forEach6(effects,identity,options),reconcile.value):forEach6(effects,identity,options)},allWith=(options)=>(arg)=>all3(arg,options),allSuccesses=(elements,options)=>map9(all3(fromIterable2(elements).map(exit),options),filterMap2((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)),forEach6=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 as3=fromIterable2(self),array3=Array(as3.length);return zipRight2(forEachConcurrentDiscard(as3,(a,i)=>flatMap8(f(a,i),(b)=>sync(()=>array3[i]=b)),batching,!1),succeed(array3))}),forEachConcurrentDiscard=(self,f,batching,processAll,n)=>uninterruptibleMask((restore)=>transplant((graft)=>withFiberRuntime((parent)=>{let todos=Array.from(self).reverse(),target=todos.length;if(target===0)return void_2;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 asVoid2(onExit(flatten6(restore(join3(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 as3=fromIterable2(self),array3=Array(as3.length);return zipRight2(forEachConcurrentDiscard(as3,(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,()=>fromIterable2(elements).reduce((acc,a,i)=>zipWith4(acc,a,(acc2,a2)=>f(acc2,a2,i)),succeed(zero2)),()=>flatMap8(make28(zero2),(acc)=>flatMap8(forEach6(elements,(effect,i)=>flatMap8(effect,(a)=>update3(acc,(b)=>f(b,a,i))),options),()=>get12(acc))))),partition4=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>pipe(forEach6(elements,(a,i)=>either2(f(a,i)),options),map9((chunk2)=>partitionMap4(chunk2,identity)))),validateAll=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>flatMap8(partition4(elements,f,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([es,bs])=>isNonEmptyArray2(es)?fail2(es):options?.discard?void_2: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?zipRight2(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,()=>fromIterable2(elements).reduce((acc,a,i)=>zipWith4(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)=>flatten6(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(forEach6(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 zipLeft2(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 zipRight2(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_2;return pipe(runtimeFlags,flatMap8((runtimeFlags2)=>{let updatedRuntimeFlags=patch4(runtimeFlags2,update5),revertRuntimeFlags=diff4(updatedRuntimeFlags,runtimeFlags2);return pipe(updateRuntimeFlags(update5),zipRight2(addFinalizer(()=>updateRuntimeFlags(revertRuntimeFlags))),asVoid2)}),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_2;let finalizers=Array.from(this.state.finalizers.values()).reverse();if(this.state={_tag:"Closed",exit:exit2},finalizers.length===0)return void_2;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_2})}},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)=>asVoid2(acquireRelease(flatMap8(fiberRefGet(self),(oldValue)=>as2(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)=>forEach6(fibers,_await2),fiberAll=(fibers)=>{return{...CommitPrototype2,commit(){return join3(this)},[FiberTypeId]:fiberVariance2,id:()=>fromIterable2(fibers).reduce((id,fiber)=>combine3(id,fiber.id()),none4),await:exit(forEachParUnbounded(fibers,(fiber)=>flatten6(fiber.await),!1)),children:map9(forEachParUnbounded(fibers,(fiber)=>fiber.children,!1),flatten2),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(join3(fiber)),onInterrupt(()=>pipe(fiber,interruptAsFork(fiberId2))))))),race=dual(2,(self,that)=>fiberIdWith((parentFiberId)=>raceWith(self,that,{onSelfDone:(exit2,right3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join3(right3),mapErrorCause((cause22)=>parallel(cause2,cause22))),onSuccess:(value)=>pipe(right3,interruptAsFiber(parentFiberId),as2(value))}),onOtherDone:(exit2,left3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join3(left3),mapErrorCause((cause22)=>parallel(cause22,cause2))),onSuccess:(value)=>pipe(left3,interruptAsFiber(parentFiberId),as2(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)=>as2(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 as2(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:size5(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(()=>{remove6(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))remove6(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 asVoid2(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))remove6(this.cacheState.map,k);return asVoid2(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}),asVoid2)}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 size5(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 remove6(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 size6=size5(this.cacheState.map);loop2=size6>this.capacity;while(loop2){let key2=this.cacheState.keys.remove();if(key2!==void 0){if(has4(this.cacheState.map,key2.current))remove6(this.cacheState.map,key2.current),size6=size6-1,loop2=size6>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),zipRight2(done2(deferred,exit2),exit2)}),onInterrupt(()=>zipRight2(interrupt3(deferred),sync(()=>{remove6(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:()=>zipWith6,zipRight:()=>zipRight4,zipLeft:()=>zipLeft3,zip:()=>zip6,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:()=>tap4,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:()=>partition5,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:()=>liftPredicate3,let:()=>let_4,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:()=>gen3,functionWithSpan:()=>functionWithSpan2,fromNullable:()=>fromNullable3,fromFiberEffect:()=>fromFiberEffect2,fromFiber:()=>fromFiber2,forkWithErrorHandler:()=>forkWithErrorHandler2,forkScoped:()=>forkScoped2,forkIn:()=>forkIn2,forkDaemon:()=>forkDaemon2,forkAll:()=>forkAll2,fork:()=>fork3,forever:()=>forever3,forEach:()=>forEach7,fnUntraced:()=>fnUntraced2,fn:()=>fn,flipWith:()=>flipWith2,flip:()=>flip2,flatten:()=>flatten9,flatMap:()=>flatMap11,firstSuccessOf:()=>firstSuccessOf2,findFirst:()=>findFirst6,finalizersMask:()=>finalizersMask2,filterOrFail:()=>filterOrFail2,filterOrElse:()=>filterOrElse2,filterOrDieMessage:()=>filterOrDieMessage2,filterOrDie:()=>filterOrDie2,filterMap:()=>filterMap6,filterEffectOrFail:()=>filterEffectOrFail2,filterEffectOrElse:()=>filterEffectOrElse2,filter:()=>filter8,fiberIdWith:()=>fiberIdWith2,fiberId:()=>fiberId2,failSync:()=>failSync3,failCauseSync:()=>failCauseSync3,failCause:()=>failCause8,fail:()=>fail9,exit:()=>exit2,exists:()=>exists3,every:()=>every7,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:()=>bindTo4,bindAll:()=>bindAll2,bind:()=>bind4,awaitAllChildren:()=>awaitAllChildren2,asyncEffect:()=>asyncEffect2,async:()=>async,asVoid:()=>asVoid4,asSomeError:()=>asSomeError2,asSome:()=>asSome2,as:()=>as4,ap:()=>ap2,annotateSpans:()=>annotateSpans3,annotateLogsScoped:()=>annotateLogsScoped2,annotateLogs:()=>annotateLogs3,annotateCurrentSpan:()=>annotateCurrentSpan2,andThen:()=>andThen5,allowInterrupt:()=>allowInterrupt2,allWith:()=>allWith2,allSuccesses:()=>allSuccesses2,all:()=>all4,addFinalizer:()=>addFinalizer3,acquireUseRelease:()=>acquireUseRelease2,acquireReleaseInterruptible:()=>acquireReleaseInterruptible2,acquireRelease:()=>acquireRelease2,Tag:()=>Tag3,Service:()=>Service,EffectTypeId:()=>EffectTypeId3,Do:()=>Do3});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)}),size7=(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,size8=size7;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)=>asVoid2(withFiberRuntime((fiber)=>{if(this.permits=permits,this.free<0)return void_2;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_2;return this.scheduled=!0,fiber.currentScheduler.scheduleTask(this.flushWaiters,fiber.getFiberRef(currentSchedulingPriority)),void_2}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_2;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_2;return this.unsafeSchedule(fiber)});await=asyncInterrupt((resume2)=>{if(this.isOpen)return resume2(void_2);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 zipRight2(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(),tap2((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_2:asVoid2(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)=>join3(fiber),fromFiberEffect=(fiber)=>suspend(()=>flatMap8(fiber,join3)),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(),tap2((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),as2(b))))))},raceFirst=dual(2,(self,that)=>pipe(exit(self),race(exit(that)),(effect)=>flatten6(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})=>flatten6(timeoutTo(self,{onTimeout:()=>failSync(onTimeout),onSuccess:succeed,duration}))),timeoutFailCause=dual(2,(self,{duration,onTimeout})=>flatten6(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,()=>as2(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,()=>as2(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;[TypeId13]=TypeId13;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])=>as2(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 TypeId15=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 join4=join3;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)=>zipRight2(scopeAddFinalizer(closeableScope,fiberIdWith((id2)=>equals(id2,fiberRuntime.id())?void_2: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(flatten7(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)=>zipRight2(fork(restore(matchCauseEffect(register((cb)=>unsafeRunCallback(runtime3)(intoDeferred(cb,deferred))),{onFailure:(cause2)=>deferredFailCause(deferred,cause2),onSuccess:(cleanup_)=>{return cleanup=cleanup_,void_2}}))),restore(onInterrupt(deferredAwait(deferred),()=>cleanup??void_2))))))});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),as2(b))),onExit(exitMatch({onFailure:()=>void_2,onSuccess:()=>scopeAddFinalizerExit(scope2,release)})));return succeed([cached3,map13])}return pipe(make27(0),flatMap8((observers)=>pipe(deferredMake(),flatMap8((deferred)=>pipe(make27(()=>void_2),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),zipRight2(scopeClose(innerScope,exit2)),zipRight2(failCause(exit2.effect_instruction_i0)));case OP_SUCCESS:return pipe(set5(finalizerRef,(exit3)=>pipe(scopeClose(innerScope,exit3),whenEffect(modify4(observers,(n)=>[n===1,n-1])),asVoid2)),zipRight2(update2(observers,(n)=>n+1)),zipRight2(scopeAddFinalizerExit(scope2,(exit3)=>pipe(sync(()=>map13.delete(layer)),zipRight2(get11(finalizerRef)),flatMap8((finalizer)=>finalizer(exit3))))),zipRight2(deferredSucceed(deferred,exit2.effect_instruction_i0)),as2(exit2.effect_instruction_i0[1]))}}))))),memoized=[pipe(deferredAwait(deferred),onExit(exitMatchEffect({onFailure:()=>void_2,onSuccess:()=>update2(observers,(n)=>n+1)}))),(exit2)=>pipe(get11(finalizerRef),flatMap8((finalizer)=>finalizer(exit2)))];return[resource,isFresh(layer)?map13:map13.set(layer,memoized)]}))))))}),flatten6)}}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),zipWith4(memoMap.getOrElseMemoize(op.second,scope2),op.zipK)));case"ZipWith":return gen2(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})),flatten8=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(zipRight2(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)=>zipWith5(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)),as2({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,as2(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))},tap3=dual(2,(self,f)=>flatMap10(self,(context3)=>fromEffectContext(as2(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 zipWith5=Object.create(proto3);return zipWith5._op_layer=OP_PROVIDE_MERGE,zipWith5.first=self,zipWith5.second=provide(that,self),zipWith5.zipK=(a,b)=>{return pipe(a,merge3(b))},zipWith5}),zipWith5=dual(3,(self,that,f)=>suspend2(()=>{let zipWith6=Object.create(proto3);return zipWith6._op_layer=OP_ZIP_WITH2,zipWith6.first=self,zipWith6.second=that,zipWith6.zipK=f,zipWith6})),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?tap2(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))}return(self)=>unwrapScoped(map9(options?.onEnd?tap2(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_2}))}))}),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(TypeId15 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=(as4)=>Object.setPrototypeOf(as4,StructuralPrototype),tuple=(...as4)=>unsafeArray(as4),array3=(as4)=>unsafeArray(as4.slice(0)),unsafeArray=(as4)=>Object.setPrototypeOf(as4,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(zipLeft2(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(zipRight2(fail2(none2())));let millis2=start2(decision.intervals)-now;if(millis2<=0)return setState.pipe(zipRight2(updateInfo(this.iterationMeta,now,input,out)),as2(out));let duration=millis(millis2);return pipe(setState,zipRight2(updateInfo(this.iterationMeta,now,input,out)),zipRight2(sleep3(duration)),as2(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 asVoid3=(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(zipWith4(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=size8(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=asVoid3(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_2;case"Right":return deferredComplete(orNew.right.handle,result)}}));return void_2})},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,every7=every6,exists3=exists2,filter8=filter6,filterMap6=filterMap5,findFirst6=findFirst5,forEach7=forEach6,head4=head3,mergeAll5=mergeAll3,partition5=partition4,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,gen3=gen2,never3=never,none9=none6,promise2=promise,succeed8=succeed,succeedNone2=succeedNone,succeedSome2=succeedSome,suspend3=suspend,sync3=sync,_void=void_2;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,liftPredicate3=liftPredicate2,as4=as2,asSome2=asSome,asSomeError2=asSomeError,asVoid4=asVoid2,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,Do3=Do2,bind4=bind3,bindAll2=bindAll,bindTo4=bindTo3,let_4=let_3;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,andThen5=andThen3,flatten9=flatten6,race2=race,raceAll2=raceAll,raceFirst2=raceFirst,raceWith2=raceWith,summarized2=summarized,tap4=tap2,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,zip6=zipOptions,zipLeft3=zipLeftOptions,zipRight4=zipRightOptions,zipWith6=zipWithOptions,ap2=dual(2,(self,that)=>zipWith6(self,that,(f,a)=>f(a))),blocked2=blocked,runRequestBlock2=runRequestBlock,step3=step2,request=dual((args2)=>isRequest2(args2[0]),fromRequest),cacheRequestResult=cacheRequest,withRequestBatching2=withRequestBatching,withRequestCaching2=withRequestCaching,withRequestCache2=withRequestCache,tracer2=tracer,tracerWith4=tracerWith,withTracer2=withTracer,withTracerScoped2=withTracerScoped,withTracerEnabled2=withTracerEnabled,withTracerTiming2=withTracerTiming,annotateSpans3=annotateSpans,annotateCurrentSpan2=annotateCurrentSpan,currentSpan2=currentSpan,currentParentSpan2=currentParentSpan,spanAnnotations2=spanAnnotations,spanLinks2=spanLinks,linkSpans2=linkSpans,linkSpanCurrent2=linkSpanCurrent,makeSpan2=makeSpan,makeSpanScoped2=makeSpanScoped,useSpan2=useSpan,withSpan3=withSpan,functionWithSpan2=functionWithSpan,withSpanScoped2=withSpanScoped,withParentSpan3=withParentSpan,fromNullable3=fromNullable2,optionFromOptional2=optionFromOptional,transposeOption=(self)=>{return isNone(self)?succeedNone2: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)=>andThen3(target,(s)=>{if(typeof s[prop]==="function")return cache.set(prop,(...args3)=>andThen3(target,(s2)=>s2[prop](...args3))),s[prop](...args2);return cache.set(prop,andThen3(target,(s2)=>s2[prop])),s[prop]}),cn=andThen3(target,(s)=>s[prop]);Object.assign(fn,cn);let{apply,bind:bind5,call}=fn,proto4=Object.setPrototypeOf({},Object.getPrototypeOf(cn));return proto4.apply=apply,proto4.bind=bind5,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)=>andThen3(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)=>andThen3(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(`
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",[TypeId14]: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_4=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_4})}));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)),join3=(self)=>zipLeft2(flatten6(self.await),self.inheritAll);var _never={...CommitPrototype,commit(){return join3(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),fromIterable8=(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,fromIterable8);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=getEquivalence2(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=getEquivalence2(equals);class FrequencyState{occurrences;[MetricStateTypeId]=metricStateVariance;[FrequencyStateTypeId]=FrequencyStateTypeId;constructor(occurrences){this.occurrences=occurrences}_hash;[symbol](){return pipe(string(FrequencyStateSymbolKey),combine(array2(fromIterable2(this.occurrences.entries()))),cached(this))}[symbol2](that){return isFrequencyState(that)&&arrayEquals(fromIterable2(this.occurrences.entries()),fromIterable2(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,size6=bounds.length,values3=new Uint32Array(size6+1),boundaries=new Float64Array(size6),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=size6;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(size6),cumulated=0;for(let i=0;i<size6;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],tail2=sortedQuantiles.slice(1),resolvedHead=resolveQuantile(error,sampleCount,none2(),0,head4,sortedSamples),resolved=of(resolvedHead);return tail2.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)=>tap2(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 zip3(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_2));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),union4(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,difference4(oldSupervisors),reduce5(empty23,(patch9,supervisor)=>combine8(patch9,{_tag:OP_ADD_SUPERVISOR,supervisor}))),removed=pipe(oldSupervisors,difference4(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_2},[OP_ITERATOR]:(self,cont,value)=>{while(!0){let state=internalCall(()=>cont.effect_instruction_i0.next(value));if(state.done)return exitSucceed(state.value);let primitive=yieldWrapGet(state.value);if(!exitIsExit(primitive))return self.pushStack(cont),primitive;else if(primitive._tag==="Failure")return primitive;value=primitive.value}}},drainQueueWhileRunningTable={[OP_INTERRUPT_SIGNAL]:(self,runtimeFlags2,cur,message)=>{return self.processNewInterruptSignal(message.cause),interruptible(runtimeFlags2)?exitFailCause(message.cause):cur},[OP_RESUME]:(_self,_runtimeFlags,_cur,_message)=>{throw Error("It is illegal to have multiple concurrent run loops in a single fiber")},[OP_STATEFUL]:(self,runtimeFlags2,cur,message)=>{return message.onFiber(self,running2(runtimeFlags2)),cur},[OP_YIELD_NOW]:(_self,_runtimeFlags,cur,_message)=>{return flatMap8(yieldNow(),()=>cur)}},runBlockedRequests=(self)=>forEachSequentialDiscard(flatten4(self),(requestsByRequestResolver)=>forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver),([dataSource,sequential4])=>{let 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 join3(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 asVoid2(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(size4(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_2)},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(tap2(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"),exists2=dual((args2)=>isIterable(args2[0])&&!isEffect(args2[0]),(elements,predicate,options)=>matchSimple(options?.concurrency,()=>suspend(()=>existsLoop(elements[Symbol.iterator](),0,predicate)),()=>matchEffect(forEach6(elements,(a,i)=>if_(predicate(a,i),{onTrue:()=>fail2(_existsParFound),onFalse:()=>void_2}),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))},filter6=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(()=>fromIterable2(elements).reduceRight((effect,a,i)=>zipWith4(effect,suspend(()=>predicate_(a,i)),(list,b)=>b?[a,...list]:list),sync(()=>[]))),()=>map9(forEach6(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),size6=keys3.length;return[keys3.map((k)=>input[k]),some2((values3)=>{let res={};for(let i=0;i<size6;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(forEach6(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),(eithers)=>{let none9=none2(),size6=eithers.length,errors=Array(size6),successes=Array(size6),errored=!1;for(let i=0;i<size6;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_2;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 forEach6(eitherEffects,identity,{concurrency:options?.concurrency,batching:options?.batching,discard:!0,concurrentFinalizers:options?.concurrentFinalizers});return map9(forEach6(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(forEach6(effects,identity,options),reconcile.value):forEach6(effects,identity,options)},allWith=(options)=>(arg)=>all3(arg,options),allSuccesses=(elements,options)=>map9(all3(fromIterable2(elements).map(exit),options),filterMap2((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)),forEach6=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 as3=fromIterable2(self),array3=Array(as3.length);return zipRight2(forEachConcurrentDiscard(as3,(a,i)=>flatMap8(f(a,i),(b)=>sync(()=>array3[i]=b)),batching,!1),succeed(array3))}),forEachConcurrentDiscard=(self,f,batching,processAll,n)=>uninterruptibleMask((restore)=>transplant((graft)=>withFiberRuntime((parent)=>{let todos=Array.from(self).reverse(),target=todos.length;if(target===0)return void_2;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 asVoid2(onExit(flatten6(restore(join3(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 as3=fromIterable2(self),array3=Array(as3.length);return zipRight2(forEachConcurrentDiscard(as3,(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,()=>fromIterable2(elements).reduce((acc,a,i)=>zipWith4(acc,a,(acc2,a2)=>f(acc2,a2,i)),succeed(zero2)),()=>flatMap8(make28(zero2),(acc)=>flatMap8(forEach6(elements,(effect,i)=>flatMap8(effect,(a)=>update3(acc,(b)=>f(b,a,i))),options),()=>get12(acc))))),partition4=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>pipe(forEach6(elements,(a,i)=>either2(f(a,i)),options),map9((chunk2)=>partitionMap4(chunk2,identity)))),validateAll=dual((args2)=>isIterable(args2[0]),(elements,f,options)=>flatMap8(partition4(elements,f,{concurrency:options?.concurrency,batching:options?.batching,concurrentFinalizers:options?.concurrentFinalizers}),([es,bs])=>isNonEmptyArray2(es)?fail2(es):options?.discard?void_2: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?zipRight2(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,()=>fromIterable2(elements).reduce((acc,a,i)=>zipWith4(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)=>flatten6(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(forEach6(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 zipLeft2(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 zipRight2(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_2;return pipe(runtimeFlags,flatMap8((runtimeFlags2)=>{let updatedRuntimeFlags=patch4(runtimeFlags2,update5),revertRuntimeFlags=diff4(updatedRuntimeFlags,runtimeFlags2);return pipe(updateRuntimeFlags(update5),zipRight2(addFinalizer(()=>updateRuntimeFlags(revertRuntimeFlags))),asVoid2)}),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_2;let finalizers=Array.from(this.state.finalizers.values()).reverse();if(this.state={_tag:"Closed",exit:exit2},finalizers.length===0)return void_2;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_2})}},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)=>asVoid2(acquireRelease(flatMap8(fiberRefGet(self),(oldValue)=>as2(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)=>forEach6(fibers,_await2),fiberAll=(fibers)=>{return{...CommitPrototype2,commit(){return join3(this)},[FiberTypeId]:fiberVariance2,id:()=>fromIterable2(fibers).reduce((id,fiber)=>combine3(id,fiber.id()),none4),await:exit(forEachParUnbounded(fibers,(fiber)=>flatten6(fiber.await),!1)),children:map9(forEachParUnbounded(fibers,(fiber)=>fiber.children,!1),flatten2),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(join3(fiber)),onInterrupt(()=>pipe(fiber,interruptAsFork(fiberId2))))))),race=dual(2,(self,that)=>fiberIdWith((parentFiberId)=>raceWith(self,that,{onSelfDone:(exit2,right3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join3(right3),mapErrorCause((cause22)=>parallel(cause2,cause22))),onSuccess:(value)=>pipe(right3,interruptAsFiber(parentFiberId),as2(value))}),onOtherDone:(exit2,left3)=>exitMatchEffect(exit2,{onFailure:(cause2)=>pipe(join3(left3),mapErrorCause((cause22)=>parallel(cause22,cause2))),onSuccess:(value)=>pipe(left3,interruptAsFiber(parentFiberId),as2(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)=>as2(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 as2(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:size5(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(()=>{remove6(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))remove6(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 asVoid2(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))remove6(this.cacheState.map,k);return asVoid2(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}),asVoid2)}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 size5(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 remove6(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 size6=size5(this.cacheState.map);loop2=size6>this.capacity;while(loop2){let key2=this.cacheState.keys.remove();if(key2!==void 0){if(has4(this.cacheState.map,key2.current))remove6(this.cacheState.map,key2.current),size6=size6-1,loop2=size6>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),zipRight2(done2(deferred,exit2),exit2)}),onInterrupt(()=>zipRight2(interrupt3(deferred),sync(()=>{remove6(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:()=>zipWith6,zipRight:()=>zipRight4,zipLeft:()=>zipLeft3,zip:()=>zip6,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:()=>tap4,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:()=>partition5,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:()=>liftPredicate3,let:()=>let_4,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:()=>gen3,functionWithSpan:()=>functionWithSpan2,fromNullable:()=>fromNullable3,fromFiberEffect:()=>fromFiberEffect2,fromFiber:()=>fromFiber2,forkWithErrorHandler:()=>forkWithErrorHandler2,forkScoped:()=>forkScoped2,forkIn:()=>forkIn2,forkDaemon:()=>forkDaemon2,forkAll:()=>forkAll2,fork:()=>fork3,forever:()=>forever3,forEach:()=>forEach7,fnUntraced:()=>fnUntraced2,fn:()=>fn,flipWith:()=>flipWith2,flip:()=>flip2,flatten:()=>flatten9,flatMap:()=>flatMap11,firstSuccessOf:()=>firstSuccessOf2,findFirst:()=>findFirst6,finalizersMask:()=>finalizersMask2,filterOrFail:()=>filterOrFail2,filterOrElse:()=>filterOrElse2,filterOrDieMessage:()=>filterOrDieMessage2,filterOrDie:()=>filterOrDie2,filterMap:()=>filterMap6,filterEffectOrFail:()=>filterEffectOrFail2,filterEffectOrElse:()=>filterEffectOrElse2,filter:()=>filter8,fiberIdWith:()=>fiberIdWith2,fiberId:()=>fiberId2,failSync:()=>failSync3,failCauseSync:()=>failCauseSync3,failCause:()=>failCause8,fail:()=>fail9,exit:()=>exit2,exists:()=>exists3,every:()=>every7,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:()=>bindTo4,bindAll:()=>bindAll2,bind:()=>bind4,awaitAllChildren:()=>awaitAllChildren2,asyncEffect:()=>asyncEffect2,async:()=>async,asVoid:()=>asVoid4,asSomeError:()=>asSomeError2,asSome:()=>asSome2,as:()=>as4,ap:()=>ap2,annotateSpans:()=>annotateSpans3,annotateLogsScoped:()=>annotateLogsScoped2,annotateLogs:()=>annotateLogs3,annotateCurrentSpan:()=>annotateCurrentSpan2,andThen:()=>andThen5,allowInterrupt:()=>allowInterrupt2,allWith:()=>allWith2,allSuccesses:()=>allSuccesses2,all:()=>all4,addFinalizer:()=>addFinalizer3,acquireUseRelease:()=>acquireUseRelease2,acquireReleaseInterruptible:()=>acquireReleaseInterruptible2,acquireRelease:()=>acquireRelease2,Tag:()=>Tag3,Service:()=>Service,EffectTypeId:()=>EffectTypeId3,Do:()=>Do3});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)}),size7=(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,size8=size7;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)=>asVoid2(withFiberRuntime((fiber)=>{if(this.permits=permits,this.free<0)return void_2;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_2;return this.scheduled=!0,fiber.currentScheduler.scheduleTask(this.flushWaiters,fiber.getFiberRef(currentSchedulingPriority)),void_2}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_2;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_2;return this.unsafeSchedule(fiber)});await=asyncInterrupt((resume2)=>{if(this.isOpen)return resume2(void_2);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 zipRight2(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(),tap2((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_2:asVoid2(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)=>join3(fiber),fromFiberEffect=(fiber)=>suspend(()=>flatMap8(fiber,join3)),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(),tap2((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),as2(b))))))},raceFirst=dual(2,(self,that)=>pipe(exit(self),race(exit(that)),(effect)=>flatten6(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})=>flatten6(timeoutTo(self,{onTimeout:()=>failSync(onTimeout),onSuccess:succeed,duration}))),timeoutFailCause=dual(2,(self,{duration,onTimeout})=>flatten6(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,()=>as2(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,()=>as2(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;[TypeId13]=TypeId13;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])=>as2(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 TypeId15=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 join4=join3;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)=>zipRight2(scopeAddFinalizer(closeableScope,fiberIdWith((id2)=>equals(id2,fiberRuntime.id())?void_2: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(flatten7(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(new 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)=>zipRight2(fork(restore(matchCauseEffect(register((cb)=>unsafeRunCallback(runtime3)(intoDeferred(cb,deferred))),{onFailure:(cause2)=>deferredFailCause(deferred,cause2),onSuccess:(cleanup_)=>{return cleanup=cleanup_,void_2}}))),restore(onInterrupt(deferredAwait(deferred),()=>cleanup??void_2))))))});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),as2(b))),onExit(exitMatch({onFailure:()=>void_2,onSuccess:()=>scopeAddFinalizerExit(scope2,release)})));return succeed([cached3,map13])}return pipe(make27(0),flatMap8((observers)=>pipe(deferredMake(),flatMap8((deferred)=>pipe(make27(()=>void_2),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),zipRight2(scopeClose(innerScope,exit2)),zipRight2(failCause(exit2.effect_instruction_i0)));case OP_SUCCESS:return pipe(set5(finalizerRef,(exit3)=>pipe(scopeClose(innerScope,exit3),whenEffect(modify4(observers,(n)=>[n===1,n-1])),asVoid2)),zipRight2(update2(observers,(n)=>n+1)),zipRight2(scopeAddFinalizerExit(scope2,(exit3)=>pipe(sync(()=>map13.delete(layer)),zipRight2(get11(finalizerRef)),flatMap8((finalizer)=>finalizer(exit3))))),zipRight2(deferredSucceed(deferred,exit2.effect_instruction_i0)),as2(exit2.effect_instruction_i0[1]))}}))))),memoized=[pipe(deferredAwait(deferred),onExit(exitMatchEffect({onFailure:()=>void_2,onSuccess:()=>update2(observers,(n)=>n+1)}))),(exit2)=>pipe(get11(finalizerRef),flatMap8((finalizer)=>finalizer(exit2)))];return[resource,isFresh(layer)?map13:map13.set(layer,memoized)]}))))))}),flatten6)}}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),zipWith4(memoMap.getOrElseMemoize(op.second,scope2),op.zipK)));case"ZipWith":return gen2(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})),flatten8=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(zipRight2(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)=>zipWith5(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)),as2({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,as2(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))},tap3=dual(2,(self,f)=>flatMap10(self,(context3)=>fromEffectContext(as2(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 zipWith5=Object.create(proto3);return zipWith5._op_layer=OP_PROVIDE_MERGE,zipWith5.first=self,zipWith5.second=provide(that,self),zipWith5.zipK=(a,b)=>{return pipe(a,merge3(b))},zipWith5}),zipWith5=dual(3,(self,that,f)=>suspend2(()=>{let zipWith6=Object.create(proto3);return zipWith6._op_layer=OP_ZIP_WITH2,zipWith6.first=self,zipWith6.second=that,zipWith6.zipK=f,zipWith6})),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?tap2(makeSpanScoped(name,options),(span2)=>addFinalizer((exit2)=>options.onEnd(span2,exit2))):makeSpanScoped(name,options),(span2)=>withParentSpan2(self,span2)))}return(self)=>unwrapScoped(map9(options?.onEnd?tap2(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_2}))}))}),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(TypeId15 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=(as4)=>Object.setPrototypeOf(as4,StructuralPrototype),tuple=(...as4)=>unsafeArray(as4),array3=(as4)=>unsafeArray(as4.slice(0)),unsafeArray=(as4)=>Object.setPrototypeOf(as4,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(zipLeft2(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(zipRight2(fail2(none2())));let millis2=start2(decision.intervals)-now;if(millis2<=0)return setState.pipe(zipRight2(updateInfo(this.iterationMeta,now,input,out)),as2(out));let duration=millis(millis2);return pipe(setState,zipRight2(updateInfo(this.iterationMeta,now,input,out)),zipRight2(sleep3(duration)),as2(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 asVoid3=(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(zipWith4(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=size8(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!==void 0?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=asVoid3(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_2;case"Right":return deferredComplete(orNew.right.handle,result)}}));return void_2})},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,every7=every6,exists3=exists2,filter8=filter6,filterMap6=filterMap5,findFirst6=findFirst5,forEach7=forEach6,head4=head3,mergeAll5=mergeAll3,partition5=partition4,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,gen3=gen2,never3=never,none9=none6,promise2=promise,succeed8=succeed,succeedNone2=succeedNone,succeedSome2=succeedSome,suspend3=suspend,sync3=sync,_void=void_2;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,liftPredicate3=liftPredicate2,as4=as2,asSome2=asSome,asSomeError2=asSomeError,asVoid4=asVoid2,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,Do3=Do2,bind4=bind3,bindAll2=bindAll,bindTo4=bindTo3,let_4=let_3;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,andThen5=andThen3,flatten9=flatten6,race2=race,raceAll2=raceAll,raceFirst2=raceFirst,raceWith2=raceWith,summarized2=summarized,tap4=tap2,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,zip6=zipOptions,zipLeft3=zipLeftOptions,zipRight4=zipRightOptions,zipWith6=zipWithOptions,ap2=dual(2,(self,that)=>zipWith6(self,that,(f,a)=>f(a))),blocked2=blocked,runRequestBlock2=runRequestBlock,step3=step2,request=dual((args2)=>isRequest2(args2[0]),fromRequest),cacheRequestResult=cacheRequest,withRequestBatching2=withRequestBatching,withRequestCaching2=withRequestCaching,withRequestCache2=withRequestCache,tracer2=tracer,tracerWith4=tracerWith,withTracer2=withTracer,withTracerScoped2=withTracerScoped,withTracerEnabled2=withTracerEnabled,withTracerTiming2=withTracerTiming,annotateSpans3=annotateSpans,annotateCurrentSpan2=annotateCurrentSpan,currentSpan2=currentSpan,currentParentSpan2=currentParentSpan,spanAnnotations2=spanAnnotations,spanLinks2=spanLinks,linkSpans2=linkSpans,linkSpanCurrent2=linkSpanCurrent,makeSpan2=makeSpan,makeSpanScoped2=makeSpanScoped,useSpan2=useSpan,withSpan3=withSpan,functionWithSpan2=functionWithSpan,withSpanScoped2=withSpanScoped,withParentSpan3=withParentSpan,fromNullable3=fromNullable2,optionFromOptional2=optionFromOptional,transposeOption=(self)=>{return isNone(self)?succeedNone2: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)=>andThen3(target,(s)=>{if(typeof s[prop]==="function")return cache.set(prop,(...args3)=>andThen3(target,(s2)=>s2[prop](...args3))),s[prop](...args2);return cache.set(prop,andThen3(target,(s2)=>s2[prop])),s[prop]}),cn=andThen3(target,(s)=>s[prop]);Object.assign(fn,cn);let{apply,bind:bind5,call}=fn,proto4=Object.setPrototypeOf({},Object.getPrototypeOf(cn));return proto4.apply=apply,proto4.bind=bind5,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)=>andThen3(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)=>andThen3(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(`