@flusys/nestjs-shared 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/classes-index.js +46 -0
- package/cjs/constants-index.js +1 -0
- package/cjs/decorators-index.js +1 -0
- package/cjs/dtos-index.js +1 -0
- package/cjs/entities-index.js +1 -0
- package/cjs/exceptions-index.js +1 -0
- package/cjs/guards-index.js +22 -0
- package/cjs/index.js +151 -0
- package/cjs/interceptors-index.js +106 -0
- package/cjs/interfaces-index.js +1 -0
- package/cjs/middlewares-index.js +22 -0
- package/cjs/modules-index.js +106 -0
- package/cjs/utils-index.js +1 -0
- package/classes/api-controller.class.d.ts +30 -0
- package/classes/api-service.class.d.ts +72 -0
- package/classes/hybrid-cache.class.d.ts +10 -0
- package/classes/index.d.ts +6 -0
- package/classes/request-scoped-api.service.d.ts +13 -0
- package/classes/winston-logger-adapter.class.d.ts +20 -0
- package/classes/winston.logger.class.d.ts +2 -0
- package/constants/index.d.ts +10 -0
- package/decorators/api-response.decorator.d.ts +3 -0
- package/decorators/current-user.decorator.d.ts +1 -0
- package/decorators/index.d.ts +4 -0
- package/decorators/public.decorator.d.ts +1 -0
- package/decorators/require-permission.decorator.d.ts +4 -0
- package/dtos/delete.dto.d.ts +4 -0
- package/dtos/filter-and-pagination.dto.d.ts +13 -0
- package/dtos/identity-response.dto.d.ts +9 -0
- package/dtos/index.d.ts +5 -0
- package/dtos/pagination.dto.d.ts +4 -0
- package/dtos/response-payload.dto.d.ts +63 -0
- package/entities/identity.d.ts +9 -0
- package/entities/index.d.ts +2 -0
- package/entities/user-root.d.ts +19 -0
- package/exceptions/index.d.ts +1 -0
- package/exceptions/permission.exception.d.ts +10 -0
- package/fesm/classes-index.js +46 -0
- package/fesm/constants-index.js +1 -0
- package/fesm/decorators-index.js +1 -0
- package/fesm/dtos-index.js +1 -0
- package/fesm/entities-index.js +1 -0
- package/fesm/exceptions-index.js +1 -0
- package/fesm/guards-index.js +22 -0
- package/fesm/index.js +151 -0
- package/fesm/interceptors-index.js +106 -0
- package/fesm/interfaces-index.js +0 -0
- package/fesm/middlewares-index.js +22 -0
- package/fesm/modules-index.js +106 -0
- package/fesm/utils-index.js +1 -0
- package/guards/index.d.ts +2 -0
- package/guards/jwt-auth.guard.d.ts +10 -0
- package/guards/permission.guard.d.ts +18 -0
- package/index.d.ts +12 -0
- package/interceptors/delete-empty-id-from-body.interceptor.d.ts +5 -0
- package/interceptors/idempotency.interceptor.d.ts +10 -0
- package/interceptors/index.d.ts +8 -0
- package/interceptors/query-performance.interceptor.d.ts +8 -0
- package/interceptors/response-meta.interceptor.d.ts +5 -0
- package/interceptors/set-create-by-on-body.interceptor.d.ts +5 -0
- package/interceptors/set-delete-by-on-body.interceptor.d.ts +5 -0
- package/interceptors/set-update-by-on-body.interceptor.d.ts +5 -0
- package/interceptors/slug.interceptor.d.ts +7 -0
- package/interfaces/api.interface.d.ts +14 -0
- package/interfaces/base-query.interface.d.ts +7 -0
- package/interfaces/identity.interface.d.ts +9 -0
- package/interfaces/index.d.ts +6 -0
- package/interfaces/logged-user-info.interface.d.ts +11 -0
- package/interfaces/logger.interface.d.ts +7 -0
- package/interfaces/permission.interface.d.ts +17 -0
- package/middlewares/index.d.ts +1 -0
- package/middlewares/logger.middleware.d.ts +23 -0
- package/modules/cache/cache.module.d.ts +4 -0
- package/modules/datasource/datasource.module.d.ts +18 -0
- package/modules/datasource/index.d.ts +2 -0
- package/modules/datasource/multi-tenant-datasource.service.d.ts +45 -0
- package/modules/index.d.ts +4 -0
- package/modules/utils/utils.module.d.ts +2 -0
- package/modules/utils/utils.service.d.ts +21 -0
- package/package.json +100 -0
- package/utils/error-handler.util.d.ts +24 -0
- package/utils/index.d.ts +1 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:true});var __commonJS=(cb,mod)=>function __require(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:true}),mod);var __decorateClass=(decorators,target,key,kind)=>{var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target;for(var i=decorators.length-1,decorator;i>=0;i--)if(decorator=decorators[i])result=(kind?decorator(target,key,result):decorator(result))||result;if(kind&&result)__defProp(target,key,result);return result};var __decorateParam=(index,decorator)=>(target,key)=>decorator(target,key,index);var require_verbatim_string=__commonJS({"node_modules/@redis/client/dist/lib/RESP/verbatim-string.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.VerbatimString=void 0;var VerbatimString=class extends String{static{__name(this,"VerbatimString")}format;constructor(format2,value){super(value);this.format=format2}};exports2.VerbatimString=VerbatimString}});var require_errors=__commonJS({"node_modules/@redis/client/dist/lib/errors.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.MultiErrorReply=exports2.CommandTimeoutDuringMaintenanceError=exports2.SocketTimeoutDuringMaintenanceError=exports2.TimeoutError=exports2.BlobError=exports2.SimpleError=exports2.ErrorReply=exports2.ReconnectStrategyError=exports2.RootNodesUnavailableError=exports2.SocketClosedUnexpectedlyError=exports2.DisconnectsClientError=exports2.ClientOfflineError=exports2.ClientClosedError=exports2.SocketTimeoutError=exports2.ConnectionTimeoutError=exports2.WatchError=exports2.AbortError=void 0;var AbortError=class extends Error{static{__name(this,"AbortError")}constructor(){super("The command was aborted")}};exports2.AbortError=AbortError;var WatchError=class extends Error{static{__name(this,"WatchError")}constructor(message="One (or more) of the watched keys has been changed"){super(message)}};exports2.WatchError=WatchError;var ConnectionTimeoutError=class extends Error{static{__name(this,"ConnectionTimeoutError")}constructor(){super("Connection timeout")}};exports2.ConnectionTimeoutError=ConnectionTimeoutError;var SocketTimeoutError=class extends Error{static{__name(this,"SocketTimeoutError")}constructor(timeout){super(`Socket timeout timeout. Expecting data, but didn't receive any in ${timeout}ms.`)}};exports2.SocketTimeoutError=SocketTimeoutError;var ClientClosedError=class extends Error{static{__name(this,"ClientClosedError")}constructor(){super("The client is closed")}};exports2.ClientClosedError=ClientClosedError;var ClientOfflineError=class extends Error{static{__name(this,"ClientOfflineError")}constructor(){super("The client is offline")}};exports2.ClientOfflineError=ClientOfflineError;var DisconnectsClientError=class extends Error{static{__name(this,"DisconnectsClientError")}constructor(){super("Disconnects client")}};exports2.DisconnectsClientError=DisconnectsClientError;var SocketClosedUnexpectedlyError=class extends Error{static{__name(this,"SocketClosedUnexpectedlyError")}constructor(){super("Socket closed unexpectedly")}};exports2.SocketClosedUnexpectedlyError=SocketClosedUnexpectedlyError;var RootNodesUnavailableError=class extends Error{static{__name(this,"RootNodesUnavailableError")}constructor(){super("All the root nodes are unavailable")}};exports2.RootNodesUnavailableError=RootNodesUnavailableError;var ReconnectStrategyError=class extends Error{static{__name(this,"ReconnectStrategyError")}originalError;socketError;constructor(originalError,socketError){super(originalError.message);this.originalError=originalError;this.socketError=socketError}};exports2.ReconnectStrategyError=ReconnectStrategyError;var ErrorReply=class extends Error{static{__name(this,"ErrorReply")}};exports2.ErrorReply=ErrorReply;var SimpleError=class extends ErrorReply{static{__name(this,"SimpleError")}};exports2.SimpleError=SimpleError;var BlobError=class extends ErrorReply{static{__name(this,"BlobError")}};exports2.BlobError=BlobError;var TimeoutError=class extends Error{static{__name(this,"TimeoutError")}};exports2.TimeoutError=TimeoutError;var SocketTimeoutDuringMaintenanceError=class extends TimeoutError{static{__name(this,"SocketTimeoutDuringMaintenanceError")}constructor(timeout){super(`Socket timeout during maintenance. Expecting data, but didn't receive any in ${timeout}ms.`)}};exports2.SocketTimeoutDuringMaintenanceError=SocketTimeoutDuringMaintenanceError;var CommandTimeoutDuringMaintenanceError=class extends TimeoutError{static{__name(this,"CommandTimeoutDuringMaintenanceError")}constructor(timeout){super(`Command timeout during maintenance. Waited to write command for more than ${timeout}ms.`)}};exports2.CommandTimeoutDuringMaintenanceError=CommandTimeoutDuringMaintenanceError;var MultiErrorReply=class extends ErrorReply{static{__name(this,"MultiErrorReply")}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(const index of this.errorIndexes){yield this.replies[index]}}};exports2.MultiErrorReply=MultiErrorReply}});var require_decoder=__commonJS({"node_modules/@redis/client/dist/lib/RESP/decoder.js"(exports2){"use strict";var _a;Object.defineProperty(exports2,"__esModule",{value:true});exports2.Decoder=exports2.PUSH_TYPE_MAPPING=exports2.RESP_TYPES=void 0;var verbatim_string_1=require_verbatim_string();var errors_1=require_errors();exports2.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};exports2.PUSH_TYPE_MAPPING={[exports2.RESP_TYPES.BLOB_STRING]:Buffer};var Decoder=class{static{__name(this,"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(chunk){if(this.#cursor>=chunk.length){this.#cursor-=chunk.length;return}if(this.#next){if(this.#next(chunk)||this.#cursor>=chunk.length){this.#cursor-=chunk.length;return}}do{const type=chunk[this.#cursor];if(++this.#cursor===chunk.length){this.#next=this.#continueDecodeTypeValue.bind(this,type);break}if(this.#decodeTypeValue(type,chunk)){break}}while(this.#cursor<chunk.length);this.#cursor-=chunk.length}#continueDecodeTypeValue(type,chunk){this.#next=void 0;return this.#decodeTypeValue(type,chunk)}#decodeTypeValue(type,chunk){switch(type){case exports2.RESP_TYPES.NULL:this.onReply(this.#decodeNull());return false;case exports2.RESP_TYPES.BOOLEAN:return this.#handleDecodedValue(this.onReply,this.#decodeBoolean(chunk));case exports2.RESP_TYPES.NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeNumber(this.getTypeMapping()[exports2.RESP_TYPES.NUMBER],chunk));case exports2.RESP_TYPES.BIG_NUMBER:return this.#handleDecodedValue(this.onReply,this.#decodeBigNumber(this.getTypeMapping()[exports2.RESP_TYPES.BIG_NUMBER],chunk));case exports2.RESP_TYPES.DOUBLE:return this.#handleDecodedValue(this.onReply,this.#decodeDouble(this.getTypeMapping()[exports2.RESP_TYPES.DOUBLE],chunk));case exports2.RESP_TYPES.SIMPLE_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeSimpleString(this.getTypeMapping()[exports2.RESP_TYPES.SIMPLE_STRING],chunk));case exports2.RESP_TYPES.BLOB_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeBlobString(this.getTypeMapping()[exports2.RESP_TYPES.BLOB_STRING],chunk));case exports2.RESP_TYPES.VERBATIM_STRING:return this.#handleDecodedValue(this.onReply,this.#decodeVerbatimString(this.getTypeMapping()[exports2.RESP_TYPES.VERBATIM_STRING],chunk));case exports2.RESP_TYPES.SIMPLE_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeSimpleError(chunk));case exports2.RESP_TYPES.BLOB_ERROR:return this.#handleDecodedValue(this.onErrorReply,this.#decodeBlobError(chunk));case exports2.RESP_TYPES.ARRAY:return this.#handleDecodedValue(this.onReply,this.#decodeArray(this.getTypeMapping(),chunk));case exports2.RESP_TYPES.SET:return this.#handleDecodedValue(this.onReply,this.#decodeSet(this.getTypeMapping(),chunk));case exports2.RESP_TYPES.MAP:return this.#handleDecodedValue(this.onReply,this.#decodeMap(this.getTypeMapping(),chunk));case exports2.RESP_TYPES.PUSH:return this.#handleDecodedValue(this.onPush,this.#decodeArray(exports2.PUSH_TYPE_MAPPING,chunk));default:throw new Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#handleDecodedValue(cb,value){if(typeof value==="function"){this.#next=this.#continueDecodeValue.bind(this,cb,value);return true}cb(value);return false}#continueDecodeValue(cb,next,chunk){this.#next=void 0;return this.#handleDecodedValue(cb,next(chunk))}#decodeNull(){this.#cursor+=2;return null}#decodeBoolean(chunk){const boolean=chunk[this.#cursor]===ASCII.t;this.#cursor+=3;return boolean}#decodeNumber(type,chunk){if(type===String){return this.#decodeSimpleString(String,chunk)}switch(chunk[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeNumberValue(false,chunk);case ASCII["-"]:return this.#maybeDecodeNumberValue(true,chunk);default:return this.#decodeNumberValue(false,this.#decodeUnsingedNumber.bind(this,0),chunk)}}#maybeDecodeNumberValue(isNegative,chunk){const cb=this.#decodeUnsingedNumber.bind(this,0);return++this.#cursor===chunk.length?this.#decodeNumberValue.bind(this,isNegative,cb):this.#decodeNumberValue(isNegative,cb,chunk)}#decodeNumberValue(isNegative,numberCb,chunk){const number=numberCb(chunk);return typeof number==="function"?this.#decodeNumberValue.bind(this,isNegative,number):isNegative?-number:number}#decodeUnsingedNumber(number,chunk){let cursor=this.#cursor;do{const byte=chunk[cursor];if(byte===ASCII["\r"]){this.#cursor=cursor+2;return number}number=number*10+byte-ASCII["0"]}while(++cursor<chunk.length);this.#cursor=cursor;return this.#decodeUnsingedNumber.bind(this,number)}#decodeBigNumber(type,chunk){if(type===String){return this.#decodeSimpleString(String,chunk)}switch(chunk[this.#cursor]){case ASCII["+"]:return this.#maybeDecodeBigNumberValue(false,chunk);case ASCII["-"]:return this.#maybeDecodeBigNumberValue(true,chunk);default:return this.#decodeBigNumberValue(false,this.#decodeUnsingedBigNumber.bind(this,0n),chunk)}}#maybeDecodeBigNumberValue(isNegative,chunk){const cb=this.#decodeUnsingedBigNumber.bind(this,0n);return++this.#cursor===chunk.length?this.#decodeBigNumberValue.bind(this,isNegative,cb):this.#decodeBigNumberValue(isNegative,cb,chunk)}#decodeBigNumberValue(isNegative,bigNumberCb,chunk){const bigNumber=bigNumberCb(chunk);return typeof bigNumber==="function"?this.#decodeBigNumberValue.bind(this,isNegative,bigNumber):isNegative?-bigNumber:bigNumber}#decodeUnsingedBigNumber(bigNumber,chunk){let cursor=this.#cursor;do{const byte=chunk[cursor];if(byte===ASCII["\r"]){this.#cursor=cursor+2;return bigNumber}bigNumber=bigNumber*10n+BigInt(byte-ASCII["0"])}while(++cursor<chunk.length);this.#cursor=cursor;return this.#decodeUnsingedBigNumber.bind(this,bigNumber)}#decodeDouble(type,chunk){if(type===String){return this.#decodeSimpleString(String,chunk)}switch(chunk[this.#cursor]){case ASCII.n:this.#cursor+=5;return NaN;case ASCII["+"]:return this.#maybeDecodeDoubleInteger(false,chunk);case ASCII["-"]:return this.#maybeDecodeDoubleInteger(true,chunk);default:return this.#decodeDoubleInteger(false,0,chunk)}}#maybeDecodeDoubleInteger(isNegative,chunk){return++this.#cursor===chunk.length?this.#decodeDoubleInteger.bind(this,isNegative,0):this.#decodeDoubleInteger(isNegative,0,chunk)}#decodeDoubleInteger(isNegative,integer,chunk){if(chunk[this.#cursor]===ASCII.i){this.#cursor+=5;return isNegative?-Infinity:Infinity}return this.#continueDecodeDoubleInteger(isNegative,integer,chunk)}#continueDecodeDoubleInteger(isNegative,integer,chunk){let cursor=this.#cursor;do{const byte=chunk[cursor];switch(byte){case ASCII["."]:this.#cursor=cursor+1;return this.#cursor<chunk.length?this.#decodeDoubleDecimal(isNegative,0,integer,chunk):this.#decodeDoubleDecimal.bind(this,isNegative,0,integer);case ASCII.E:case ASCII.e:this.#cursor=cursor+1;const i=isNegative?-integer:integer;return this.#cursor<chunk.length?this.#decodeDoubleExponent(i,chunk):this.#decodeDoubleExponent.bind(this,i);case ASCII["\r"]:this.#cursor=cursor+2;return isNegative?-integer:integer;default:integer=integer*10+byte-ASCII["0"]}}while(++cursor<chunk.length);this.#cursor=cursor;return this.#continueDecodeDoubleInteger.bind(this,isNegative,integer)}static#DOUBLE_DECIMAL_MULTIPLIERS=[.1,.01,.001,1e-4,1e-5,1e-6,1e-7,1e-8,1e-9,1e-10,1e-11,1e-12,1e-13,1e-14,1e-15,1e-16,1e-17];#decodeDoubleDecimal(isNegative,decimalIndex,double,chunk){let cursor=this.#cursor;do{const byte=chunk[cursor];switch(byte){case ASCII.E:case ASCII.e:this.#cursor=cursor+1;const d3=isNegative?-double:double;return this.#cursor===chunk.length?this.#decodeDoubleExponent.bind(this,d3):this.#decodeDoubleExponent(d3,chunk);case ASCII["\r"]:this.#cursor=cursor+2;return isNegative?-double:double}if(decimalIndex<_a.#DOUBLE_DECIMAL_MULTIPLIERS.length){double+=(byte-ASCII["0"])*_a.#DOUBLE_DECIMAL_MULTIPLIERS[decimalIndex++]}}while(++cursor<chunk.length);this.#cursor=cursor;return this.#decodeDoubleDecimal.bind(this,isNegative,decimalIndex,double)}#decodeDoubleExponent(double,chunk){switch(chunk[this.#cursor]){case ASCII["+"]:return++this.#cursor===chunk.length?this.#continueDecodeDoubleExponent.bind(this,false,double,0):this.#continueDecodeDoubleExponent(false,double,0,chunk);case ASCII["-"]:return++this.#cursor===chunk.length?this.#continueDecodeDoubleExponent.bind(this,true,double,0):this.#continueDecodeDoubleExponent(true,double,0,chunk)}return this.#continueDecodeDoubleExponent(false,double,0,chunk)}#continueDecodeDoubleExponent(isNegative,double,exponent,chunk){let cursor=this.#cursor;do{const byte=chunk[cursor];if(byte===ASCII["\r"]){this.#cursor=cursor+2;return double*10**(isNegative?-exponent:exponent)}exponent=exponent*10+byte-ASCII["0"]}while(++cursor<chunk.length);this.#cursor=cursor;return this.#continueDecodeDoubleExponent.bind(this,isNegative,double,exponent)}#findCRLF(chunk,cursor){while(chunk[cursor]!==ASCII["\r"]){if(++cursor===chunk.length){this.#cursor=chunk.length;return-1}}this.#cursor=cursor+2;return cursor}#decodeSimpleString(type,chunk){const start=this.#cursor,crlfIndex=this.#findCRLF(chunk,start);if(crlfIndex===-1){return this.#continueDecodeSimpleString.bind(this,[chunk.subarray(start)],type)}const slice=chunk.subarray(start,crlfIndex);return type===Buffer?slice:slice.toString()}#continueDecodeSimpleString(chunks,type,chunk){const start=this.#cursor,crlfIndex=this.#findCRLF(chunk,start);if(crlfIndex===-1){chunks.push(chunk.subarray(start));return this.#continueDecodeSimpleString.bind(this,chunks,type)}chunks.push(chunk.subarray(start,crlfIndex));const buffer=Buffer.concat(chunks);return type===Buffer?buffer:buffer.toString()}#decodeBlobString(type,chunk){if(chunk[this.#cursor]===ASCII["-"]){this.#cursor+=4;return null}const length=this.#decodeUnsingedNumber(0,chunk);if(typeof length==="function"){return this.#continueDecodeBlobStringLength.bind(this,length,type)}else if(this.#cursor>=chunk.length){return this.#decodeBlobStringWithLength.bind(this,length,type)}return this.#decodeBlobStringWithLength(length,type,chunk)}#continueDecodeBlobStringLength(lengthCb,type,chunk){const length=lengthCb(chunk);if(typeof length==="function"){return this.#continueDecodeBlobStringLength.bind(this,length,type)}else if(this.#cursor>=chunk.length){return this.#decodeBlobStringWithLength.bind(this,length,type)}return this.#decodeBlobStringWithLength(length,type,chunk)}#decodeStringWithLength(length,skip,type,chunk){const end=this.#cursor+length;if(end>=chunk.length){const slice2=chunk.subarray(this.#cursor);this.#cursor=chunk.length;return this.#continueDecodeStringWithLength.bind(this,length-slice2.length,[slice2],skip,type)}const slice=chunk.subarray(this.#cursor,end);this.#cursor=end+skip;return type===Buffer?slice:slice.toString()}#continueDecodeStringWithLength(length,chunks,skip,type,chunk){const end=this.#cursor+length;if(end>=chunk.length){const slice=chunk.subarray(this.#cursor);chunks.push(slice);this.#cursor=chunk.length;return this.#continueDecodeStringWithLength.bind(this,length-slice.length,chunks,skip,type)}chunks.push(chunk.subarray(this.#cursor,end));this.#cursor=end+skip;const buffer=Buffer.concat(chunks);return type===Buffer?buffer:buffer.toString()}#decodeBlobStringWithLength(length,type,chunk){return this.#decodeStringWithLength(length,2,type,chunk)}#decodeVerbatimString(type,chunk){return this.#continueDecodeVerbatimStringLength(this.#decodeUnsingedNumber.bind(this,0),type,chunk)}#continueDecodeVerbatimStringLength(lengthCb,type,chunk){const length=lengthCb(chunk);return typeof length==="function"?this.#continueDecodeVerbatimStringLength.bind(this,length,type):this.#decodeVerbatimStringWithLength(length,type,chunk)}#decodeVerbatimStringWithLength(length,type,chunk){const stringLength=length-4;if(type===verbatim_string_1.VerbatimString){return this.#decodeVerbatimStringFormat(stringLength,chunk)}this.#cursor+=4;return this.#cursor>=chunk.length?this.#decodeBlobStringWithLength.bind(this,stringLength,type):this.#decodeBlobStringWithLength(stringLength,type,chunk)}#decodeVerbatimStringFormat(stringLength,chunk){const formatCb=this.#decodeStringWithLength.bind(this,3,1,String);return this.#cursor>=chunk.length?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,formatCb):this.#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk)}#continueDecodeVerbatimStringFormat(stringLength,formatCb,chunk){const format2=formatCb(chunk);return typeof format2==="function"?this.#continueDecodeVerbatimStringFormat.bind(this,stringLength,format2):this.#decodeVerbatimStringWithFormat(stringLength,format2,chunk)}#decodeVerbatimStringWithFormat(stringLength,format2,chunk){return this.#continueDecodeVerbatimStringWithFormat(format2,this.#decodeBlobStringWithLength.bind(this,stringLength,String),chunk)}#continueDecodeVerbatimStringWithFormat(format2,stringCb,chunk){const string=stringCb(chunk);return typeof string==="function"?this.#continueDecodeVerbatimStringWithFormat.bind(this,format2,string):new verbatim_string_1.VerbatimString(format2,string)}#decodeSimpleError(chunk){const string=this.#decodeSimpleString(String,chunk);return typeof string==="function"?this.#continueDecodeSimpleError.bind(this,string):new errors_1.SimpleError(string)}#continueDecodeSimpleError(stringCb,chunk){const string=stringCb(chunk);return typeof string==="function"?this.#continueDecodeSimpleError.bind(this,string):new errors_1.SimpleError(string)}#decodeBlobError(chunk){const string=this.#decodeBlobString(String,chunk);return typeof string==="function"?this.#continueDecodeBlobError.bind(this,string):new errors_1.BlobError(string)}#continueDecodeBlobError(stringCb,chunk){const string=stringCb(chunk);return typeof string==="function"?this.#continueDecodeBlobError.bind(this,string):new errors_1.BlobError(string)}#decodeNestedType(typeMapping,chunk){const type=chunk[this.#cursor];return++this.#cursor===chunk.length?this.#decodeNestedTypeValue.bind(this,type,typeMapping):this.#decodeNestedTypeValue(type,typeMapping,chunk)}#decodeNestedTypeValue(type,typeMapping,chunk){switch(type){case exports2.RESP_TYPES.NULL:return this.#decodeNull();case exports2.RESP_TYPES.BOOLEAN:return this.#decodeBoolean(chunk);case exports2.RESP_TYPES.NUMBER:return this.#decodeNumber(typeMapping[exports2.RESP_TYPES.NUMBER],chunk);case exports2.RESP_TYPES.BIG_NUMBER:return this.#decodeBigNumber(typeMapping[exports2.RESP_TYPES.BIG_NUMBER],chunk);case exports2.RESP_TYPES.DOUBLE:return this.#decodeDouble(typeMapping[exports2.RESP_TYPES.DOUBLE],chunk);case exports2.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(typeMapping[exports2.RESP_TYPES.SIMPLE_STRING],chunk);case exports2.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(typeMapping[exports2.RESP_TYPES.BLOB_STRING],chunk);case exports2.RESP_TYPES.VERBATIM_STRING:return this.#decodeVerbatimString(typeMapping[exports2.RESP_TYPES.VERBATIM_STRING],chunk);case exports2.RESP_TYPES.SIMPLE_ERROR:return this.#decodeSimpleError(chunk);case exports2.RESP_TYPES.BLOB_ERROR:return this.#decodeBlobError(chunk);case exports2.RESP_TYPES.ARRAY:return this.#decodeArray(typeMapping,chunk);case exports2.RESP_TYPES.SET:return this.#decodeSet(typeMapping,chunk);case exports2.RESP_TYPES.MAP:return this.#decodeMap(typeMapping,chunk);default:throw new Error(`Unknown RESP type ${type} "${String.fromCharCode(type)}"`)}}#decodeArray(typeMapping,chunk){if(chunk[this.#cursor]===ASCII["-"]){this.#cursor+=4;return null}return this.#decodeArrayWithLength(this.#decodeUnsingedNumber(0,chunk),typeMapping,chunk)}#decodeArrayWithLength(length,typeMapping,chunk){return typeof length==="function"?this.#continueDecodeArrayLength.bind(this,length,typeMapping):this.#decodeArrayItems(new Array(length),0,typeMapping,chunk)}#continueDecodeArrayLength(lengthCb,typeMapping,chunk){return this.#decodeArrayWithLength(lengthCb(chunk),typeMapping,chunk)}#decodeArrayItems(array,filled,typeMapping,chunk){for(let i=filled;i<array.length;i++){if(this.#cursor>=chunk.length){return this.#decodeArrayItems.bind(this,array,i,typeMapping)}const item=this.#decodeNestedType(typeMapping,chunk);if(typeof item==="function"){return this.#continueDecodeArrayItems.bind(this,array,i,item,typeMapping)}array[i]=item}return array}#continueDecodeArrayItems(array,filled,itemCb,typeMapping,chunk){const item=itemCb(chunk);if(typeof item==="function"){return this.#continueDecodeArrayItems.bind(this,array,filled,item,typeMapping)}array[filled++]=item;return this.#decodeArrayItems(array,filled,typeMapping,chunk)}#decodeSet(typeMapping,chunk){const length=this.#decodeUnsingedNumber(0,chunk);if(typeof length==="function"){return this.#continueDecodeSetLength.bind(this,length,typeMapping)}return this.#decodeSetItems(length,typeMapping,chunk)}#continueDecodeSetLength(lengthCb,typeMapping,chunk){const length=lengthCb(chunk);return typeof length==="function"?this.#continueDecodeSetLength.bind(this,length,typeMapping):this.#decodeSetItems(length,typeMapping,chunk)}#decodeSetItems(length,typeMapping,chunk){return typeMapping[exports2.RESP_TYPES.SET]===Set?this.#decodeSetAsSet(new Set,length,typeMapping,chunk):this.#decodeArrayItems(new Array(length),0,typeMapping,chunk)}#decodeSetAsSet(set,remaining,typeMapping,chunk){while(remaining>0){if(this.#cursor>=chunk.length){return this.#decodeSetAsSet.bind(this,set,remaining,typeMapping)}const item=this.#decodeNestedType(typeMapping,chunk);if(typeof item==="function"){return this.#continueDecodeSetAsSet.bind(this,set,remaining,item,typeMapping)}set.add(item);--remaining}return set}#continueDecodeSetAsSet(set,remaining,itemCb,typeMapping,chunk){const item=itemCb(chunk);if(typeof item==="function"){return this.#continueDecodeSetAsSet.bind(this,set,remaining,item,typeMapping)}set.add(item);return this.#decodeSetAsSet(set,remaining-1,typeMapping,chunk)}#decodeMap(typeMapping,chunk){const length=this.#decodeUnsingedNumber(0,chunk);if(typeof length==="function"){return this.#continueDecodeMapLength.bind(this,length,typeMapping)}return this.#decodeMapItems(length,typeMapping,chunk)}#continueDecodeMapLength(lengthCb,typeMapping,chunk){const length=lengthCb(chunk);return typeof length==="function"?this.#continueDecodeMapLength.bind(this,length,typeMapping):this.#decodeMapItems(length,typeMapping,chunk)}#decodeMapItems(length,typeMapping,chunk){switch(typeMapping[exports2.RESP_TYPES.MAP]){case Map:return this.#decodeMapAsMap(new Map,length,typeMapping,chunk);case Array:return this.#decodeArrayItems(new Array(length*2),0,typeMapping,chunk);default:return this.#decodeMapAsObject(Object.create(null),length,typeMapping,chunk)}}#decodeMapAsMap(map,remaining,typeMapping,chunk){while(remaining>0){if(this.#cursor>=chunk.length){return this.#decodeMapAsMap.bind(this,map,remaining,typeMapping)}const key=this.#decodeMapKey(typeMapping,chunk);if(typeof key==="function"){return this.#continueDecodeMapKey.bind(this,map,remaining,key,typeMapping)}if(this.#cursor>=chunk.length){return this.#continueDecodeMapValue.bind(this,map,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping)}const value=this.#decodeNestedType(typeMapping,chunk);if(typeof value==="function"){return this.#continueDecodeMapValue.bind(this,map,remaining,key,value,typeMapping)}map.set(key,value);--remaining}return map}#decodeMapKey(typeMapping,chunk){const type=chunk[this.#cursor];return++this.#cursor===chunk.length?this.#decodeMapKeyValue.bind(this,type,typeMapping):this.#decodeMapKeyValue(type,typeMapping,chunk)}#decodeMapKeyValue(type,typeMapping,chunk){switch(type){case exports2.RESP_TYPES.SIMPLE_STRING:return this.#decodeSimpleString(String,chunk);case exports2.RESP_TYPES.BLOB_STRING:return this.#decodeBlobString(String,chunk);default:return this.#decodeNestedTypeValue(type,typeMapping,chunk)}}#continueDecodeMapKey(map,remaining,keyCb,typeMapping,chunk){const key=keyCb(chunk);if(typeof key==="function"){return this.#continueDecodeMapKey.bind(this,map,remaining,key,typeMapping)}if(this.#cursor>=chunk.length){return this.#continueDecodeMapValue.bind(this,map,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping)}const value=this.#decodeNestedType(typeMapping,chunk);if(typeof value==="function"){return this.#continueDecodeMapValue.bind(this,map,remaining,key,value,typeMapping)}map.set(key,value);return this.#decodeMapAsMap(map,remaining-1,typeMapping,chunk)}#continueDecodeMapValue(map,remaining,key,valueCb,typeMapping,chunk){const value=valueCb(chunk);if(typeof value==="function"){return this.#continueDecodeMapValue.bind(this,map,remaining,key,value,typeMapping)}map.set(key,value);return this.#decodeMapAsMap(map,remaining-1,typeMapping,chunk)}#decodeMapAsObject(object,remaining,typeMapping,chunk){while(remaining>0){if(this.#cursor>=chunk.length){return this.#decodeMapAsObject.bind(this,object,remaining,typeMapping)}const key=this.#decodeMapKey(typeMapping,chunk);if(typeof key==="function"){return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping)}if(this.#cursor>=chunk.length){return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping)}const value=this.#decodeNestedType(typeMapping,chunk);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,chunk){const key=keyCb(chunk);if(typeof key==="function"){return this.#continueDecodeMapAsObjectKey.bind(this,object,remaining,key,typeMapping)}if(this.#cursor>=chunk.length){return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,this.#decodeNestedType.bind(this,typeMapping),typeMapping)}const value=this.#decodeNestedType(typeMapping,chunk);if(typeof value==="function"){return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping)}object[key]=value;return this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk)}#continueDecodeMapAsObjectValue(object,remaining,key,valueCb,typeMapping,chunk){const value=valueCb(chunk);if(typeof value==="function"){return this.#continueDecodeMapAsObjectValue.bind(this,object,remaining,key,value,typeMapping)}object[key]=value;return this.#decodeMapAsObject(object,remaining-1,typeMapping,chunk)}};exports2.Decoder=Decoder;_a=Decoder}});var require_lua_script=__commonJS({"node_modules/@redis/client/dist/lib/lua-script.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.scriptSha1=exports2.defineScript=void 0;var node_crypto_1=require("node:crypto");function defineScript(script){return{...script,SHA1:scriptSha1(script.SCRIPT)}}__name(defineScript,"defineScript");exports2.defineScript=defineScript;function scriptSha1(script){return(0,node_crypto_1.createHash)("sha1").update(script).digest("hex")}__name(scriptSha1,"scriptSha1");exports2.scriptSha1=scriptSha1}});var require_ACL_CAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_CAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,categoryName){parser.push("ACL","CAT");if(categoryName){parser.push(categoryName)}},transformReply:void 0}}});var require_ACL_DELUSER=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,username){parser.push("ACL","DELUSER");parser.pushVariadic(username)},transformReply:void 0}}});var require_ACL_DRYRUN=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,username,command){parser.push("ACL","DRYRUN",username,...command)},transformReply:void 0}}});var require_ACL_GENPASS=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,bits){parser.push("ACL","GENPASS");if(bits){parser.push(bits.toString())}},transformReply:void 0}}});var require_ACL_GETUSER=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,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=>{const inferred=selector;return{commands:inferred[1],keys:inferred[3],channels:inferred[5]}})}),3:void 0}}}});var require_ACL_LIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_LIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ACL","LIST")},transformReply:void 0}}});var require_ACL_LOAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ACL","LOAD")},transformReply:void 0}}});var require_parser=__commonJS({"node_modules/@redis/client/dist/lib/client/parser.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.BasicCommandParser=void 0;var BasicCommandParser=class{static{__name(this,"BasicCommandParser")}#redisArgs=[];#keys=[];preserve;get redisArgs(){return this.#redisArgs}get keys(){return this.#keys}get firstKey(){return this.#keys[0]}get cacheKey(){const tmp=new 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(const 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(const val of vals){this.push(val.toString())}}else{this.push(vals.toString())}}pushKey(key){this.#keys.push(key);this.#redisArgs.push(key)}pushKeysLength(keys){if(Array.isArray(keys)){this.#redisArgs.push(keys.length.toString())}else{this.#redisArgs.push("1")}this.pushKeys(keys)}pushKeys(keys){if(Array.isArray(keys)){this.#keys.push(...keys);this.#redisArgs.push(...keys)}else{this.#keys.push(keys);this.#redisArgs.push(keys)}}};exports2.BasicCommandParser=BasicCommandParser}});var require_generic_transformers=__commonJS({"node_modules/@redis/client/dist/lib/commands/generic-transformers.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.transformRedisJsonNullReply=exports2.transformRedisJsonReply=exports2.transformRedisJsonArgument=exports2.transformStreamsMessagesReplyResp3=exports2.transformStreamsMessagesReplyResp2=exports2.transformStreamMessagesReply=exports2.transformStreamMessageNullReply=exports2.transformStreamMessageReply=exports2.parseArgs=exports2.parseZKeysArguments=exports2.transformRangeReply=exports2.parseSlotRangesArguments=exports2.transformFunctionListItemReply=exports2.RedisFunctionFlags=exports2.transformCommandReply=exports2.CommandCategories=exports2.CommandFlags=exports2.parseOptionalVariadicArgument=exports2.pushVariadicArgument=exports2.pushVariadicNumberArguments=exports2.pushVariadicArguments=exports2.pushEvalArguments=exports2.evalFirstKeyIndex=exports2.transformPXAT=exports2.transformEXAT=exports2.transformSortedSetReply=exports2.transformTuplesReply=exports2.createTransformTuplesReplyFunc=exports2.transformTuplesToMap=exports2.transformNullableDoubleReply=exports2.createTransformNullableDoubleReplyResp2Func=exports2.transformDoubleArrayReply=exports2.createTransformDoubleReplyResp2Func=exports2.transformDoubleReply=exports2.transformStringDoubleArgument=exports2.transformDoubleArgument=exports2.transformBooleanArrayReply=exports2.transformBooleanReply=exports2.isArrayReply=exports2.isNullReply=void 0;var parser_1=require_parser();var decoder_1=require_decoder();function isNullReply(reply){return reply===null}__name(isNullReply,"isNullReply");exports2.isNullReply=isNullReply;function isArrayReply(reply){return Array.isArray(reply)}__name(isArrayReply,"isArrayReply");exports2.isArrayReply=isArrayReply;exports2.transformBooleanReply={2:reply=>reply===1,3:void 0};exports2.transformBooleanArrayReply={2:reply=>{return reply.map(exports2.transformBooleanReply[2])},3:void 0};function transformDoubleArgument(num){switch(num){case Infinity:return"+inf";case-Infinity:return"-inf";default:return num.toString()}}__name(transformDoubleArgument,"transformDoubleArgument");exports2.transformDoubleArgument=transformDoubleArgument;function transformStringDoubleArgument(num){if(typeof num!=="number")return num;return transformDoubleArgument(num)}__name(transformStringDoubleArgument,"transformStringDoubleArgument");exports2.transformStringDoubleArgument=transformStringDoubleArgument;exports2.transformDoubleReply={2:(reply,preserve,typeMapping)=>{const double=typeMapping?typeMapping[decoder_1.RESP_TYPES.DOUBLE]:void 0;switch(double){case String:{return reply}default:{let ret;switch(reply.toString()){case"inf":case"+inf":ret=Infinity;case"-inf":ret=-Infinity;case"nan":ret=NaN;default:ret=Number(reply)}return ret}}},3:void 0};function createTransformDoubleReplyResp2Func(preserve,typeMapping){return reply=>{return exports2.transformDoubleReply[2](reply,preserve,typeMapping)}}__name(createTransformDoubleReplyResp2Func,"createTransformDoubleReplyResp2Func");exports2.createTransformDoubleReplyResp2Func=createTransformDoubleReplyResp2Func;exports2.transformDoubleArrayReply={2:(reply,preserve,typeMapping)=>{return reply.map(createTransformDoubleReplyResp2Func(preserve,typeMapping))},3:void 0};function createTransformNullableDoubleReplyResp2Func(preserve,typeMapping){return reply=>{return exports2.transformNullableDoubleReply[2](reply,preserve,typeMapping)}}__name(createTransformNullableDoubleReplyResp2Func,"createTransformNullableDoubleReplyResp2Func");exports2.createTransformNullableDoubleReplyResp2Func=createTransformNullableDoubleReplyResp2Func;exports2.transformNullableDoubleReply={2:(reply,preserve,typeMapping)=>{if(reply===null)return null;return exports2.transformDoubleReply[2](reply,preserve,typeMapping)},3:void 0};function transformTuplesToMap(reply,func){const message=Object.create(null);for(let i=0;i<reply.length;i+=2){message[reply[i].toString()]=func(reply[i+1])}return message}__name(transformTuplesToMap,"transformTuplesToMap");exports2.transformTuplesToMap=transformTuplesToMap;function createTransformTuplesReplyFunc(preserve,typeMapping){return reply=>{return transformTuplesReply(reply,preserve,typeMapping)}}__name(createTransformTuplesReplyFunc,"createTransformTuplesReplyFunc");exports2.createTransformTuplesReplyFunc=createTransformTuplesReplyFunc;function transformTuplesReply(reply,preserve,typeMapping){const mapType=typeMapping?typeMapping[decoder_1.RESP_TYPES.MAP]:void 0;const inferred=reply;switch(mapType){case Array:{return reply}case Map:{const ret=new Map;for(let i=0;i<inferred.length;i+=2){ret.set(inferred[i].toString(),inferred[i+1])}return ret;;}default:{const ret=Object.create(null);for(let i=0;i<inferred.length;i+=2){ret[inferred[i].toString()]=inferred[i+1]}return ret;;}}}__name(transformTuplesReply,"transformTuplesReply");exports2.transformTuplesReply=transformTuplesReply;exports2.transformSortedSetReply={2:(reply,preserve,typeMapping)=>{const inferred=reply,members=[];for(let i=0;i<inferred.length;i+=2){members.push({value:inferred[i],score:exports2.transformDoubleReply[2](inferred[i+1],preserve,typeMapping)})}return members},3:reply=>{return reply.map(member=>{const[value,score]=member;return{value,score}})}};function transformEXAT(EXAT){return(typeof EXAT==="number"?EXAT:Math.floor(EXAT.getTime()/1e3)).toString()}__name(transformEXAT,"transformEXAT");exports2.transformEXAT=transformEXAT;function transformPXAT(PXAT){return(typeof PXAT==="number"?PXAT:PXAT.getTime()).toString()}__name(transformPXAT,"transformPXAT");exports2.transformPXAT=transformPXAT;function evalFirstKeyIndex(options){return options?.keys?.[0]}__name(evalFirstKeyIndex,"evalFirstKeyIndex");exports2.evalFirstKeyIndex=evalFirstKeyIndex;function pushEvalArguments(args,options){if(options?.keys){args.push(options.keys.length.toString(),...options.keys)}else{args.push("0")}if(options?.arguments){args.push(...options.arguments)}return args}__name(pushEvalArguments,"pushEvalArguments");exports2.pushEvalArguments=pushEvalArguments;function pushVariadicArguments(args,value){if(Array.isArray(value)){args=args.concat(value)}else{args.push(value)}return args}__name(pushVariadicArguments,"pushVariadicArguments");exports2.pushVariadicArguments=pushVariadicArguments;function pushVariadicNumberArguments(args,value){if(Array.isArray(value)){for(const item of value){args.push(item.toString())}}else{args.push(value.toString())}return args}__name(pushVariadicNumberArguments,"pushVariadicNumberArguments");exports2.pushVariadicNumberArguments=pushVariadicNumberArguments;function pushVariadicArgument(args,value){if(Array.isArray(value)){args.push(value.length.toString(),...value)}else{args.push("1",value)}return args}__name(pushVariadicArgument,"pushVariadicArgument");exports2.pushVariadicArgument=pushVariadicArgument;function parseOptionalVariadicArgument(parser,name,value){if(value===void 0)return;parser.push(name);parser.pushVariadicWithLength(value)}__name(parseOptionalVariadicArgument,"parseOptionalVariadicArgument");exports2.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||(exports2.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||(exports2.CommandCategories=CommandCategories={}));function transformCommandReply([name,arity,flags,firstKeyIndex,lastKeyIndex,step,categories]){return{name,arity,flags:new Set(flags),firstKeyIndex,lastKeyIndex,step,categories:new Set(categories)}}__name(transformCommandReply,"transformCommandReply");exports2.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||(exports2.RedisFunctionFlags=RedisFunctionFlags={}));function transformFunctionListItemReply(reply){return{libraryName:reply[1],engine:reply[3],functions:reply[5].map(fn=>({name:fn[1],description:fn[3],flags:fn[5]}))}}__name(transformFunctionListItemReply,"transformFunctionListItemReply");exports2.transformFunctionListItemReply=transformFunctionListItemReply;function parseSlotRangeArguments(parser,range){parser.push(range.start.toString(),range.end.toString())}__name(parseSlotRangeArguments,"parseSlotRangeArguments");function parseSlotRangesArguments(parser,ranges){if(Array.isArray(ranges)){for(const range of ranges){parseSlotRangeArguments(parser,range)}}else{parseSlotRangeArguments(parser,ranges)}}__name(parseSlotRangesArguments,"parseSlotRangesArguments");exports2.parseSlotRangesArguments=parseSlotRangesArguments;function transformRangeReply([start,end]){return{start,end}}__name(transformRangeReply,"transformRangeReply");exports2.transformRangeReply=transformRangeReply;function parseZKeysArguments(parser,keys){if(Array.isArray(keys)){parser.push(keys.length.toString());if(keys.length){if(isPlainKeys(keys)){parser.pushKeys(keys)}else{for(let i=0;i<keys.length;i++){parser.pushKey(keys[i].key)}parser.push("WEIGHTS");for(let i=0;i<keys.length;i++){parser.push(transformDoubleArgument(keys[i].weight))}}}}else{parser.push("1");if(isPlainKey(keys)){parser.pushKey(keys)}else{parser.pushKey(keys.key);parser.push("WEIGHTS",transformDoubleArgument(keys.weight))}}}__name(parseZKeysArguments,"parseZKeysArguments");exports2.parseZKeysArguments=parseZKeysArguments;function isPlainKey(key){return typeof key==="string"||key instanceof Buffer}__name(isPlainKey,"isPlainKey");function isPlainKeys(keys){return isPlainKey(keys[0])}__name(isPlainKeys,"isPlainKeys");function parseArgs(command,...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;if(parser.preserve){redisArgs.preserve=parser.preserve}return redisArgs}__name(parseArgs,"parseArgs");exports2.parseArgs=parseArgs;function transformStreamMessageReply(typeMapping,reply){const[id,message]=reply;return{id,message:transformTuplesReply(message,void 0,typeMapping)}}__name(transformStreamMessageReply,"transformStreamMessageReply");exports2.transformStreamMessageReply=transformStreamMessageReply;function transformStreamMessageNullReply(typeMapping,reply){return isNullReply(reply)?reply:transformStreamMessageReply(typeMapping,reply)}__name(transformStreamMessageNullReply,"transformStreamMessageNullReply");exports2.transformStreamMessageNullReply=transformStreamMessageNullReply;function transformStreamMessagesReply(r,typeMapping){const reply=r;return reply.map(transformStreamMessageReply.bind(void 0,typeMapping))}__name(transformStreamMessagesReply,"transformStreamMessagesReply");exports2.transformStreamMessagesReply=transformStreamMessagesReply;function transformStreamsMessagesReplyResp2(reply,preserve,typeMapping){if(reply===null)return null;switch(typeMapping?typeMapping[decoder_1.RESP_TYPES.MAP]:void 0){default:{const ret=[];for(let i=0;i<reply.length;i++){const stream=reply[i];ret.push({name:stream[0],messages:transformStreamMessagesReply(stream[1])})}return ret}}}__name(transformStreamsMessagesReplyResp2,"transformStreamsMessagesReplyResp2");exports2.transformStreamsMessagesReplyResp2=transformStreamsMessagesReplyResp2;function transformStreamsMessagesReplyResp3(reply){if(reply===null)return null;if(reply instanceof Map){const ret=new Map;for(const[n,rawMessages]of reply){const name=n;ret.set(name.toString(),transformStreamMessagesReply(rawMessages))}return ret}else if(reply instanceof Array){const ret=[];for(let i=0;i<reply.length;i+=2){const name=reply[i];const rawMessages=reply[i+1];ret.push(name);ret.push(transformStreamMessagesReply(rawMessages))}return ret}else{const ret=Object.create(null);for(const[name,rawMessages]of Object.entries(reply)){ret[name]=transformStreamMessagesReply(rawMessages)}return ret}}__name(transformStreamsMessagesReplyResp3,"transformStreamsMessagesReplyResp3");exports2.transformStreamsMessagesReplyResp3=transformStreamsMessagesReplyResp3;function transformRedisJsonArgument(json){return JSON.stringify(json)}__name(transformRedisJsonArgument,"transformRedisJsonArgument");exports2.transformRedisJsonArgument=transformRedisJsonArgument;function transformRedisJsonReply(json){const res=JSON.parse(json.toString());return res}__name(transformRedisJsonReply,"transformRedisJsonReply");exports2.transformRedisJsonReply=transformRedisJsonReply;function transformRedisJsonNullReply(json){return isNullReply(json)?json:transformRedisJsonReply(json)}__name(transformRedisJsonNullReply,"transformRedisJsonNullReply");exports2.transformRedisJsonNullReply=transformRedisJsonNullReply}});var require_ACL_LOG=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_LOG.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,count){parser.push("ACL","LOG");if(count!=void 0){parser.push(count.toString())}},transformReply:{2:(reply,preserve,typeMapping)=>{return reply.map(item=>{const 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({"node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var ACL_LOG_1=__importDefault(require_ACL_LOG());exports2.default={NOT_KEYED_COMMAND:true,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({"node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ACL","SAVE")},transformReply:void 0}}});var require_ACL_SETUSER=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,username,rule){parser.push("ACL","SETUSER",username);parser.pushVariadic(rule)},transformReply:void 0}}});var require_ACL_USERS=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_USERS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ACL","USERS")},transformReply:void 0}}});var require_ACL_WHOAMI=__commonJS({"node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ACL","WHOAMI")},transformReply:void 0}}});var require_APPEND=__commonJS({"node_modules/@redis/client/dist/lib/commands/APPEND.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,value){parser.push("APPEND",key,value)},transformReply:void 0}}});var require_ASKING=__commonJS({"node_modules/@redis/client/dist/lib/commands/ASKING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.ASKING_CMD=void 0;exports2.ASKING_CMD="ASKING";exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push(exports2.ASKING_CMD)},transformReply:void 0}}});var require_AUTH=__commonJS({"node_modules/@redis/client/dist/lib/commands/AUTH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,{username,password}){parser.push("AUTH");if(username!==void 0){parser.push(username)}parser.push(password)},transformReply:void 0}}});var require_BGREWRITEAOF=__commonJS({"node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("BGREWRITEAOF")},transformReply:void 0}}});var require_BGSAVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/BGSAVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,options){parser.push("BGSAVE");if(options?.SCHEDULE){parser.push("SCHEDULE")}},transformReply:void 0}}});var require_BITCOUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/BITCOUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,range){parser.push("BITCOUNT");parser.pushKey(key);if(range){parser.push(range.start.toString());parser.push(range.end.toString());if(range.mode){parser.push(range.mode)}}},transformReply:void 0}}});var require_BITFIELD_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,operations){parser.push("BITFIELD_RO");parser.pushKey(key);for(const operation of operations){parser.push("GET");parser.push(operation.encoding);parser.push(operation.offset.toString())}},transformReply:void 0}}});var require_BITFIELD=__commonJS({"node_modules/@redis/client/dist/lib/commands/BITFIELD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,operations){parser.push("BITFIELD");parser.pushKey(key);for(const 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({"node_modules/@redis/client/dist/lib/commands/BITOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,operation,destKey,key){parser.push("BITOP",operation);parser.pushKey(destKey);parser.pushKeys(key)},transformReply:void 0}}});var require_BITPOS=__commonJS({"node_modules/@redis/client/dist/lib/commands/BITPOS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,bit,start,end,mode){parser.push("BITPOS");parser.pushKey(key);parser.push(bit.toString());if(start!==void 0){parser.push(start.toString())}if(end!==void 0){parser.push(end.toString())}if(mode){parser.push(mode)}},transformReply:void 0}}});var require_BLMOVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/BLMOVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,sourceSide,destinationSide,timeout){parser.push("BLMOVE");parser.pushKeys([source,destination]);parser.push(sourceSide,destinationSide,timeout.toString())},transformReply:void 0}}});var require_LMPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/LMPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseLMPopArguments=void 0;function parseLMPopArguments(parser,keys,side,options){parser.pushKeysLength(keys);parser.push(side);if(options?.COUNT!==void 0){parser.push("COUNT",options.COUNT.toString())}}__name(parseLMPopArguments,"parseLMPopArguments");exports2.parseLMPopArguments=parseLMPopArguments;exports2.default={IS_READ_ONLY:false,parseCommand(parser,...args){parser.push("LMPOP");parseLMPopArguments(parser,...args)},transformReply:void 0}}});var require_BLMPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/BLMPOP.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var LMPOP_1=__importStar(require_LMPOP());exports2.default={IS_READ_ONLY:false,parseCommand(parser,timeout,...args){parser.push("BLMPOP",timeout.toString());(0,LMPOP_1.parseLMPopArguments)(parser,...args)},transformReply:LMPOP_1.default.transformReply}}});var require_BLPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/BLPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,timeout){parser.push("BLPOP");parser.pushKeys(key);parser.push(timeout.toString())},transformReply(reply){if(reply===null)return null;return{key:reply[0],element:reply[1]}}}}});var require_BRPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/BRPOP.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var BLPOP_1=__importDefault(require_BLPOP());exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,timeout){parser.push("BRPOP");parser.pushKeys(key);parser.push(timeout.toString())},transformReply:BLPOP_1.default.transformReply}}});var require_BRPOPLPUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,timeout){parser.push("BRPOPLPUSH");parser.pushKeys([source,destination]);parser.push(timeout.toString())},transformReply:void 0}}});var require_ZMPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZMPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseZMPopArguments=void 0;var generic_transformers_1=require_generic_transformers();function parseZMPopArguments(parser,keys,side,options){parser.pushKeysLength(keys);parser.push(side);if(options?.COUNT){parser.push("COUNT",options.COUNT.toString())}}__name(parseZMPopArguments,"parseZMPopArguments");exports2.parseZMPopArguments=parseZMPopArguments;exports2.default={IS_READ_ONLY:false,parseCommand(parser,keys,side,options){parser.push("ZMPOP");parseZMPopArguments(parser,keys,side,options)},transformReply:{2(reply,preserve,typeMapping){return reply===null?null:{key:reply[0],members:reply[1].map(member=>{const[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({"node_modules/@redis/client/dist/lib/commands/BZMPOP.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var ZMPOP_1=__importStar(require_ZMPOP());exports2.default={IS_READ_ONLY:false,parseCommand(parser,timeout,...args){parser.push("BZMPOP",timeout.toString());(0,ZMPOP_1.parseZMPopArguments)(parser,...args)},transformReply:ZMPOP_1.default.transformReply}}});var require_BZPOPMAX=__commonJS({"node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,keys,timeout){parser.push("BZPOPMAX");parser.pushKeys(keys);parser.push(timeout.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({"node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var BZPOPMAX_1=__importDefault(require_BZPOPMAX());exports2.default={IS_READ_ONLY:BZPOPMAX_1.default.IS_READ_ONLY,parseCommand(parser,keys,timeout){parser.push("BZPOPMIN");parser.pushKeys(keys);parser.push(timeout.toString())},transformReply:BZPOPMAX_1.default.transformReply}}});var require_CLIENT_CACHING=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,value){parser.push("CLIENT","CACHING",value?"YES":"NO")},transformReply:void 0}}});var require_CLIENT_GETNAME=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLIENT","GETNAME")},transformReply:void 0}}});var require_CLIENT_GETREDIR=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLIENT","GETREDIR")},transformReply:void 0}}});var require_CLIENT_ID=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLIENT","ID")},transformReply:void 0}}});var require_CLIENT_INFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var CLIENT_INFO_REGEX=/([^\s=]+)=([^\s]*)/g;exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLIENT","INFO")},transformReply(rawReply){const map={};for(const item of rawReply.toString().matchAll(CLIENT_INFO_REGEX)){map[item[1]]=item[2]}const reply={id:Number(map.id),addr:map.addr,fd:Number(map.fd),name:map.name,age:Number(map.age),idle:Number(map.idle),flags:map.flags,db:Number(map.db),sub:Number(map.sub),psub:Number(map.psub),multi:Number(map.multi),qbuf:Number(map.qbuf),qbufFree:Number(map["qbuf-free"]),argvMem:Number(map["argv-mem"]),obl:Number(map.obl),oll:Number(map.oll),omem:Number(map.omem),totMem:Number(map["tot-mem"]),events:map.events,cmd:map.cmd,user:map.user,libName:map["lib-name"],libVer:map["lib-ver"]};if(map.laddr!==void 0){reply.laddr=map.laddr}if(map.redir!==void 0){reply.redir=Number(map.redir)}if(map.ssub!==void 0){reply.ssub=Number(map.ssub)}if(map["multi-mem"]!==void 0){reply.multiMem=Number(map["multi-mem"])}if(map.resp!==void 0){reply.resp=Number(map.resp)}return reply}}}});var require_CLIENT_KILL=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.CLIENT_KILL_FILTERS=void 0;exports2.CLIENT_KILL_FILTERS={ADDRESS:"ADDR",LOCAL_ADDRESS:"LADDR",ID:"ID",TYPE:"TYPE",USER:"USER",SKIP_ME:"SKIPME",MAXAGE:"MAXAGE"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,filters){parser.push("CLIENT","KILL");if(Array.isArray(filters)){for(const filter of filters){pushFilter(parser,filter)}}else{pushFilter(parser,filters)}},transformReply:void 0};function pushFilter(parser,filter){if(filter===exports2.CLIENT_KILL_FILTERS.SKIP_ME){parser.push("SKIPME");return}parser.push(filter.filter);switch(filter.filter){case exports2.CLIENT_KILL_FILTERS.ADDRESS:parser.push(filter.address);break;case exports2.CLIENT_KILL_FILTERS.LOCAL_ADDRESS:parser.push(filter.localAddress);break;case exports2.CLIENT_KILL_FILTERS.ID:parser.push(typeof filter.id==="number"?filter.id.toString():filter.id);break;case exports2.CLIENT_KILL_FILTERS.TYPE:parser.push(filter.type);break;case exports2.CLIENT_KILL_FILTERS.USER:parser.push(filter.username);break;case exports2.CLIENT_KILL_FILTERS.SKIP_ME:parser.push(filter.skipMe?"yes":"no");break;case exports2.CLIENT_KILL_FILTERS.MAXAGE:parser.push(filter.maxAge.toString());break}}__name(pushFilter,"pushFilter")}});var require_CLIENT_LIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var CLIENT_INFO_1=__importDefault(require_CLIENT_INFO());exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,filter){parser.push("CLIENT","LIST");if(filter){if(filter.TYPE!==void 0){parser.push("TYPE",filter.TYPE)}else{parser.push("ID");parser.pushVariadic(filter.ID)}}},transformReply(rawReply){const split=rawReply.toString().split("\n"),length=split.length-1,reply=[];for(let i=0;i<length;i++){reply.push(CLIENT_INFO_1.default.transformReply(split[i]))}return reply}}}});var require_CLIENT_NO_EVICT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,value){parser.push("CLIENT","NO-EVICT",value?"ON":"OFF")},transformReply:void 0}}});var require_CLIENT_NO_TOUCH=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,value){parser.push("CLIENT","NO-TOUCH",value?"ON":"OFF")},transformReply:void 0}}});var require_CLIENT_PAUSE=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,timeout,mode){parser.push("CLIENT","PAUSE",timeout.toString());if(mode){parser.push(mode)}},transformReply:void 0}}});var require_CLIENT_SETNAME=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,name){parser.push("CLIENT","SETNAME",name)},transformReply:void 0}}});var require_CLIENT_TRACKING=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,mode,options){parser.push("CLIENT","TRACKING",mode?"ON":"OFF");if(mode){if(options?.REDIRECT){parser.push("REDIRECT",options.REDIRECT.toString())}if(isBroadcast(options)){parser.push("BCAST");if(options?.PREFIX){if(Array.isArray(options.PREFIX)){for(const 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===true}__name(isBroadcast,"isBroadcast");function isOptIn(options){return options?.OPTIN===true}__name(isOptIn,"isOptIn");function isOptOut(options){return options?.OPTOUT===true}__name(isOptOut,"isOptOut")}});var require_CLIENT_TRACKINGINFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLIENT","UNPAUSE")},transformReply:void 0}}});var require_CLUSTER_ADDSLOTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,slots){parser.push("CLUSTER","ADDSLOTS");parser.pushVariadicNumber(slots)},transformReply:void 0}}});var require_CLUSTER_ADDSLOTSRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,ranges){parser.push("CLUSTER","ADDSLOTSRANGE");(0,generic_transformers_1.parseSlotRangesArguments)(parser,ranges)},transformReply:void 0}}});var require_CLUSTER_BUMPEPOCH=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","BUMPEPOCH")},transformReply:void 0}}});var require_CLUSTER_COUNT_FAILURE_REPORTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,nodeId){parser.push("CLUSTER","COUNT-FAILURE-REPORTS",nodeId)},transformReply:void 0}}});var require_CLUSTER_COUNTKEYSINSLOT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,slot){parser.push("CLUSTER","COUNTKEYSINSLOT",slot.toString())},transformReply:void 0}}});var require_CLUSTER_DELSLOTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,slots){parser.push("CLUSTER","DELSLOTS");parser.pushVariadicNumber(slots)},transformReply:void 0}}});var require_CLUSTER_DELSLOTSRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,ranges){parser.push("CLUSTER","DELSLOTSRANGE");(0,generic_transformers_1.parseSlotRangesArguments)(parser,ranges)},transformReply:void 0}}});var require_CLUSTER_FAILOVER=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.FAILOVER_MODES=void 0;exports2.FAILOVER_MODES={FORCE:"FORCE",TAKEOVER:"TAKEOVER"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,options){parser.push("CLUSTER","FAILOVER");if(options?.mode){parser.push(options.mode)}},transformReply:void 0}}});var require_CLUSTER_FLUSHSLOTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","FLUSHSLOTS")},transformReply:void 0}}});var require_CLUSTER_FORGET=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,nodeId){parser.push("CLUSTER","FORGET",nodeId)},transformReply:void 0}}});var require_CLUSTER_GETKEYSINSLOT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,slot,count){parser.push("CLUSTER","GETKEYSINSLOT",slot.toString(),count.toString())},transformReply:void 0}}});var require_CLUSTER_INFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","INFO")},transformReply:void 0}}});var require_CLUSTER_KEYSLOT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("CLUSTER","KEYSLOT",key)},transformReply:void 0}}});var require_CLUSTER_LINKS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","LINKS")},transformReply:{2:reply=>reply.map(link=>{const 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({"node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,host,port){parser.push("CLUSTER","MEET",host,port.toString())},transformReply:void 0}}});var require_CLUSTER_MYID=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","MYID")},transformReply:void 0}}});var require_CLUSTER_MYSHARDID=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","MYSHARDID")},transformReply:void 0}}});var require_CLUSTER_NODES=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","NODES")},transformReply:void 0}}});var require_CLUSTER_REPLICAS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,nodeId){parser.push("CLUSTER","REPLICAS",nodeId)},transformReply:void 0}}});var require_CLUSTER_REPLICATE=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,nodeId){parser.push("CLUSTER","REPLICATE",nodeId)},transformReply:void 0}}});var require_CLUSTER_RESET=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,options){parser.push("CLUSTER","RESET");if(options?.mode){parser.push(options.mode)}},transformReply:void 0}}});var require_CLUSTER_SAVECONFIG=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CLUSTER","SAVECONFIG")},transformReply:void 0}}});var require_CLUSTER_SET_CONFIG_EPOCH=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,configEpoch){parser.push("CLUSTER","SET-CONFIG-EPOCH",configEpoch.toString())},transformReply:void 0}}});var require_CLUSTER_SETSLOT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.CLUSTER_SLOT_STATES=void 0;exports2.CLUSTER_SLOT_STATES={IMPORTING:"IMPORTING",MIGRATING:"MIGRATING",STABLE:"STABLE",NODE:"NODE"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,slot,state,nodeId){parser.push("CLUSTER","SETSLOT",slot.toString(),state);if(nodeId){parser.push(nodeId)}},transformReply:void 0}}});var require_CLUSTER_SLOTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,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){const[host,port,id]=node;return{host,port,id}}__name(transformNode,"transformNode")}});var require_COMMAND_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("COMMAND","COUNT")},transformReply:void 0}}});var require_COMMAND_GETKEYS=__commonJS({"node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,args){parser.push("COMMAND","GETKEYS");parser.push(...args)},transformReply:void 0}}});var require_COMMAND_GETKEYSANDFLAGS=__commonJS({"node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,args){parser.push("COMMAND","GETKEYSANDFLAGS");parser.push(...args)},transformReply(reply){return reply.map(entry=>{const[key,flags]=entry;return{key,flags}})}}}});var require_COMMAND_INFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.COMMAND_LIST_FILTER_BY=void 0;exports2.COMMAND_LIST_FILTER_BY={MODULE:"MODULE",ACLCAT:"ACLCAT",PATTERN:"PATTERN"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,options){parser.push("COMMAND","LIST");if(options?.FILTERBY){parser.push("FILTERBY",options.FILTERBY.type,options.FILTERBY.value)}},transformReply:void 0}}});var require_COMMAND=__commonJS({"node_modules/@redis/client/dist/lib/commands/COMMAND.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("COMMAND")},transformReply(reply){return reply.map(generic_transformers_1.transformCommandReply)}}}});var require_CONFIG_GET=__commonJS({"node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,parameters){parser.push("CONFIG","GET");parser.pushVariadic(parameters)},transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}});var require_CONFIG_RESETSTAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CONFIG","RESETSTAT")},transformReply:void 0}}});var require_CONFIG_REWRITE=__commonJS({"node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("CONFIG","REWRITE")},transformReply:void 0}}});var require_CONFIG_SET=__commonJS({"node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,...[parameterOrConfig,value]){parser.push("CONFIG","SET");if(typeof parameterOrConfig==="string"||parameterOrConfig instanceof Buffer){parser.push(parameterOrConfig,value)}else{for(const[key,value2]of Object.entries(parameterOrConfig)){parser.push(key,value2)}}},transformReply:void 0}}});var require_COPY=__commonJS({"node_modules/@redis/client/dist/lib/commands/COPY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,options){parser.push("COPY");parser.pushKeys([source,destination]);if(options?.DB){parser.push("DB",options.DB.toString())}if(options?.REPLACE){parser.push("REPLACE")}},transformReply:void 0}}});var require_DBSIZE=__commonJS({"node_modules/@redis/client/dist/lib/commands/DBSIZE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("DBSIZE")},transformReply:void 0}}});var require_DECR=__commonJS({"node_modules/@redis/client/dist/lib/commands/DECR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key){parser.push("DECR");parser.pushKey(key)},transformReply:void 0}}});var require_DECRBY=__commonJS({"node_modules/@redis/client/dist/lib/commands/DECRBY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,decrement){parser.push("DECRBY");parser.pushKey(key);parser.push(decrement.toString())},transformReply:void 0}}});var require_DEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/DEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,keys){parser.push("DEL");parser.pushKeys(keys)},transformReply:void 0}}});var require_DUMP=__commonJS({"node_modules/@redis/client/dist/lib/commands/DUMP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("DUMP");parser.pushKey(key)},transformReply:void 0}}});var require_ECHO=__commonJS({"node_modules/@redis/client/dist/lib/commands/ECHO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,message){parser.push("ECHO",message)},transformReply:void 0}}});var require_EVAL=__commonJS({"node_modules/@redis/client/dist/lib/commands/EVAL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseEvalArguments=void 0;function parseEvalArguments(parser,script,options){parser.push(script);if(options?.keys){parser.pushKeysLength(options.keys)}else{parser.push("0")}if(options?.arguments){parser.push(...options.arguments)}}__name(parseEvalArguments,"parseEvalArguments");exports2.parseEvalArguments=parseEvalArguments;exports2.default={IS_READ_ONLY:false,parseCommand(...args){args[0].push("EVAL");parseEvalArguments(...args)},transformReply:void 0}}});var require_EVAL_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/EVAL_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var EVAL_1=__importStar(require_EVAL());exports2.default={IS_READ_ONLY:true,parseCommand(...args){args[0].push("EVAL_RO");(0,EVAL_1.parseEvalArguments)(...args)},transformReply:EVAL_1.default.transformReply}}});var require_EVALSHA_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var EVAL_1=__importStar(require_EVAL());exports2.default={IS_READ_ONLY:true,parseCommand(...args){args[0].push("EVALSHA_RO");(0,EVAL_1.parseEvalArguments)(...args)},transformReply:EVAL_1.default.transformReply}}});var require_EVALSHA=__commonJS({"node_modules/@redis/client/dist/lib/commands/EVALSHA.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var EVAL_1=__importStar(require_EVAL());exports2.default={IS_READ_ONLY:false,parseCommand(...args){args[0].push("EVALSHA");(0,EVAL_1.parseEvalArguments)(...args)},transformReply:EVAL_1.default.transformReply}}});var require_GEOADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,toAdd,options){parser.push("GEOADD");parser.pushKey(key);if(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(const 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)}__name(pushMember,"pushMember")}});var require_GEODIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEODIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member1,member2,unit){parser.push("GEODIST");parser.pushKey(key);parser.push(member1,member2);if(unit){parser.push(unit)}},transformReply(reply){return reply===null?null:Number(reply)}}}});var require_GEOHASH=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOHASH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("GEOHASH");parser.pushKey(key);parser.pushVariadic(member)},transformReply:void 0}}});var require_GEOPOS=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOPOS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("GEOPOS");parser.pushKey(key);parser.pushVariadic(member)},transformReply(reply){return reply.map(item=>{const unwrapped=item;return unwrapped===null?null:{longitude:unwrapped[0],latitude:unwrapped[1]}})}}}});var require_GEOSEARCH=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseGeoSearchOptions=exports2.parseGeoSearchArguments=void 0;function parseGeoSearchArguments(parser,key,from,by,options){parser.pushKey(key);if(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)}__name(parseGeoSearchArguments,"parseGeoSearchArguments");exports2.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{parser.push("COUNT",options.COUNT.value.toString());if(options.COUNT.ANY){parser.push("ANY")}}}}__name(parseGeoSearchOptions,"parseGeoSearchOptions");exports2.parseGeoSearchOptions=parseGeoSearchOptions;exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,from,by,options){parser.push("GEOSEARCH");parseGeoSearchArguments(parser,key,from,by,options)},transformReply:void 0}}});var require_GEORADIUS=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.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)}__name(parseGeoRadiusArguments,"parseGeoRadiusArguments");exports2.parseGeoRadiusArguments=parseGeoRadiusArguments;exports2.default={IS_READ_ONLY:false,parseCommand(...args){args[0].push("GEORADIUS");return parseGeoRadiusArguments(...args)},transformReply:void 0}}});var require_GEOSEARCH_WITH=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.GEO_REPLY_WITH=void 0;var GEOSEARCH_1=__importDefault(require_GEOSEARCH());exports2.GEO_REPLY_WITH={DISTANCE:"WITHDIST",HASH:"WITHHASH",COORDINATES:"WITHCOORD"};exports2.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){const replyWithSet=new Set(replyWith);let index=0;const distanceIndex=replyWithSet.has(exports2.GEO_REPLY_WITH.DISTANCE)&&++index,hashIndex=replyWithSet.has(exports2.GEO_REPLY_WITH.HASH)&&++index,coordinatesIndex=replyWithSet.has(exports2.GEO_REPLY_WITH.COORDINATES)&&++index;return reply.map(raw=>{const unwrapped=raw;const item={member:unwrapped[0]};if(distanceIndex){item.distance=unwrapped[distanceIndex]}if(hashIndex){item.hash=unwrapped[hashIndex]}if(coordinatesIndex){const[longitude,latitude]=unwrapped[coordinatesIndex];item.coordinates={longitude,latitude}}return item})}}}});var require_GEORADIUS_WITH=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseGeoRadiusWithArguments=void 0;var GEORADIUS_1=__importStar(require_GEORADIUS());var 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}__name(parseGeoRadiusWithArguments,"parseGeoRadiusWithArguments");exports2.parseGeoRadiusWithArguments=parseGeoRadiusWithArguments;exports2.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({"node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUS_WITH_1=require_GEORADIUS_WITH();var GEORADIUS_WITH_2=__importDefault(require_GEORADIUS_WITH());exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(...args){args[0].push("GEORADIUS_RO");(0,GEORADIUS_WITH_1.parseGeoRadiusWithArguments)(...args)},transformReply:GEORADIUS_WITH_2.default.transformReply}}});var require_GEORADIUS_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUS_1=__importStar(require_GEORADIUS());exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(...args){args[0].push("GEORADIUS_RO");(0,GEORADIUS_1.parseGeoRadiusArguments)(...args)},transformReply:GEORADIUS_1.default.transformReply}}});var require_GEORADIUS_STORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUS_STORE.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUS_1=__importStar(require_GEORADIUS());exports2.default={IS_READ_ONLY:GEORADIUS_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,destination,options){parser.push("GEORADIUS");(0,GEORADIUS_1.parseGeoRadiusArguments)(parser,key,from,radius,unit,options);if(options?.STOREDIST){parser.push("STOREDIST");parser.pushKey(destination)}else{parser.push("STORE");parser.pushKey(destination)}},transformReply:void 0}}});var require_GEORADIUSBYMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.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)}__name(parseGeoRadiusByMemberArguments,"parseGeoRadiusByMemberArguments");exports2.parseGeoRadiusByMemberArguments=parseGeoRadiusByMemberArguments;exports2.default={IS_READ_ONLY:false,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({"node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseGeoRadiusByMemberWithArguments=void 0;var GEORADIUSBYMEMBER_1=__importDefault(require_GEORADIUSBYMEMBER());var GEOSEARCH_1=require_GEOSEARCH();var 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}__name(parseGeoRadiusByMemberWithArguments,"parseGeoRadiusByMemberWithArguments");exports2.parseGeoRadiusByMemberWithArguments=parseGeoRadiusByMemberWithArguments;exports2.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({"node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUSBYMEMBER_WITH_1=__importStar(require_GEORADIUSBYMEMBER_WITH());exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(...args){const parser=args[0];parser.push("GEORADIUSBYMEMBER_RO");(0,GEORADIUSBYMEMBER_WITH_1.parseGeoRadiusByMemberWithArguments)(...args)},transformReply:GEORADIUSBYMEMBER_WITH_1.default.transformReply}}});var require_GEORADIUSBYMEMBER_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUSBYMEMBER_1=__importStar(require_GEORADIUSBYMEMBER());exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(...args){const parser=args[0];parser.push("GEORADIUSBYMEMBER_RO");(0,GEORADIUSBYMEMBER_1.parseGeoRadiusByMemberArguments)(...args)},transformReply:GEORADIUSBYMEMBER_1.default.transformReply}}});var require_GEORADIUSBYMEMBER_STORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_STORE.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var GEORADIUSBYMEMBER_1=__importStar(require_GEORADIUSBYMEMBER());exports2.default={IS_READ_ONLY:GEORADIUSBYMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,from,radius,unit,destination,options){parser.push("GEORADIUSBYMEMBER");(0,GEORADIUSBYMEMBER_1.parseGeoRadiusByMemberArguments)(parser,key,from,radius,unit,options);if(options?.STOREDIST){parser.push("STOREDIST");parser.pushKey(destination)}else{parser.push("STORE");parser.pushKey(destination)}},transformReply:void 0}}});var require_GEOSEARCHSTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var GEOSEARCH_1=require_GEOSEARCH();exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,source,from,by,options){parser.push("GEOSEARCHSTORE");if(destination!==void 0){parser.pushKey(destination)}(0,GEOSEARCH_1.parseGeoSearchArguments)(parser,source,from,by,options);if(options?.STOREDIST){parser.push("STOREDIST")}},transformReply:void 0}}});var require_GET=__commonJS({"node_modules/@redis/client/dist/lib/commands/GET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("GET");parser.pushKey(key)},transformReply:void 0}}});var require_GETBIT=__commonJS({"node_modules/@redis/client/dist/lib/commands/GETBIT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,offset){parser.push("GETBIT");parser.pushKey(key);parser.push(offset.toString())},transformReply:void 0}}});var require_GETDEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/GETDEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("GETDEL");parser.pushKey(key)},transformReply:void 0}}});var require_GETEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/GETEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,options){parser.push("GETEX");parser.pushKey(key);if("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({"node_modules/@redis/client/dist/lib/commands/GETRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,start,end){parser.push("GETRANGE");parser.pushKey(key);parser.push(start.toString(),end.toString())},transformReply:void 0}}});var require_GETSET=__commonJS({"node_modules/@redis/client/dist/lib/commands/GETSET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,value){parser.push("GETSET");parser.pushKey(key);parser.push(value)},transformReply:void 0}}});var require_EXISTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/EXISTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("EXISTS");parser.pushKeys(keys)},transformReply:void 0}}});var require_EXPIRE=__commonJS({"node_modules/@redis/client/dist/lib/commands/EXPIRE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,seconds,mode){parser.push("EXPIRE");parser.pushKey(key);parser.push(seconds.toString());if(mode){parser.push(mode)}},transformReply:void 0}}});var require_EXPIREAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/EXPIREAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,timestamp,mode){parser.push("EXPIREAT");parser.pushKey(key);parser.push((0,generic_transformers_1.transformEXAT)(timestamp));if(mode){parser.push(mode)}},transformReply:void 0}}});var require_EXPIRETIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("EXPIRETIME");parser.pushKey(key)},transformReply:void 0}}});var require_FLUSHALL=__commonJS({"node_modules/@redis/client/dist/lib/commands/FLUSHALL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.REDIS_FLUSH_MODES=void 0;exports2.REDIS_FLUSH_MODES={ASYNC:"ASYNC",SYNC:"SYNC"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,mode){parser.push("FLUSHALL");if(mode){parser.push(mode)}},transformReply:void 0}}});var require_FLUSHDB=__commonJS({"node_modules/@redis/client/dist/lib/commands/FLUSHDB.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,mode){parser.push("FLUSHDB");if(mode){parser.push(mode)}},transformReply:void 0}}});var require_FCALL=__commonJS({"node_modules/@redis/client/dist/lib/commands/FCALL.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var EVAL_1=__importStar(require_EVAL());exports2.default={IS_READ_ONLY:false,parseCommand(...args){args[0].push("FCALL");(0,EVAL_1.parseEvalArguments)(...args)},transformReply:EVAL_1.default.transformReply}}});var require_FCALL_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/FCALL_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var EVAL_1=__importStar(require_EVAL());exports2.default={IS_READ_ONLY:false,parseCommand(...args){args[0].push("FCALL_RO");(0,EVAL_1.parseEvalArguments)(...args)},transformReply:EVAL_1.default.transformReply}}});var require_FUNCTION_DELETE=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,library){parser.push("FUNCTION","DELETE",library)},transformReply:void 0}}});var require_FUNCTION_DUMP=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("FUNCTION","DUMP")},transformReply:void 0}}});var require_FUNCTION_FLUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,mode){parser.push("FUNCTION","FLUSH");if(mode){parser.push(mode)}},transformReply:void 0}}});var require_FUNCTION_KILL=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("FUNCTION","KILL")},transformReply:void 0}}});var require_FUNCTION_LIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,options){parser.push("FUNCTION","LIST");if(options?.LIBRARYNAME){parser.push("LIBRARYNAME",options.LIBRARYNAME)}},transformReply:{2:reply=>{return reply.map(library=>{const unwrapped=library;return{library_name:unwrapped[1],engine:unwrapped[3],functions:unwrapped[5].map(fn=>{const unwrapped2=fn;return{name:unwrapped2[1],description:unwrapped2[3],flags:unwrapped2[5]}})}})},3:void 0}}}});var require_FUNCTION_LIST_WITHCODE=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var FUNCTION_LIST_1=__importDefault(require_FUNCTION_LIST());exports2.default={NOT_KEYED_COMMAND:FUNCTION_LIST_1.default.NOT_KEYED_COMMAND,IS_READ_ONLY:FUNCTION_LIST_1.default.IS_READ_ONLY,parseCommand(...args){FUNCTION_LIST_1.default.parseCommand(...args);args[0].push("WITHCODE")},transformReply:{2:reply=>{return reply.map(library=>{const unwrapped=library;return{library_name:unwrapped[1],engine:unwrapped[3],functions:unwrapped[5].map(fn=>{const unwrapped2=fn;return{name:unwrapped2[1],description:unwrapped2[3],flags:unwrapped2[5]}}),library_code:unwrapped[7]}})},3:void 0}}}});var require_FUNCTION_LOAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,code,options){parser.push("FUNCTION","LOAD");if(options?.REPLACE){parser.push("REPLACE")}parser.push(code)},transformReply:void 0}}});var require_FUNCTION_RESTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,dump,options){parser.push("FUNCTION","RESTORE",dump);if(options?.mode){parser.push(options.mode)}},transformReply:void 0}}});var require_FUNCTION_STATS=__commonJS({"node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,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}const unwraped=reply;return{name:unwraped[1],command:unwraped[3],duration_ms:unwraped[5]}}__name(transformRunningScript,"transformRunningScript");function transformEngines(reply){const unwraped=reply;const engines=Object.create(null);for(let i=0;i<unwraped.length;i++){const name=unwraped[i],stats=unwraped[++i],unwrapedStats=stats;engines[name.toString()]={libraries_count:unwrapedStats[1],functions_count:unwrapedStats[3]}}return engines}__name(transformEngines,"transformEngines")}});var require_HDEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/HDEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,field){parser.push("HDEL");parser.pushKey(key);parser.pushVariadic(field)},transformReply:void 0}}});var require_HELLO=__commonJS({"node_modules/@redis/client/dist/lib/commands/HELLO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,protover,options){parser.push("HELLO");if(protover){parser.push(protover.toString());if(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({"node_modules/@redis/client/dist/lib/commands/HEXISTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,field){parser.push("HEXISTS");parser.pushKey(key);parser.push(field)},transformReply:void 0}}});var require_HEXPIRE=__commonJS({"node_modules/@redis/client/dist/lib/commands/HEXPIRE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.HASH_EXPIRATION=void 0;exports2.HASH_EXPIRATION={FIELD_NOT_EXISTS:-2,CONDITION_NOT_MET:0,UPDATED:1,DELETED:2};exports2.default={parseCommand(parser,key,fields,seconds,mode){parser.push("HEXPIRE");parser.pushKey(key);parser.push(seconds.toString());if(mode){parser.push(mode)}parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HEXPIREAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,fields,timestamp,mode){parser.push("HEXPIREAT");parser.pushKey(key);parser.push((0,generic_transformers_1.transformEXAT)(timestamp));if(mode){parser.push(mode)}parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HEXPIRETIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.HASH_EXPIRATION_TIME=void 0;exports2.HASH_EXPIRATION_TIME={FIELD_NOT_EXISTS:-2,NO_EXPIRATION:-1};exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,fields){parser.push("HEXPIRETIME");parser.pushKey(key);parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HGET=__commonJS({"node_modules/@redis/client/dist/lib/commands/HGET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,field){parser.push("HGET");parser.pushKey(key);parser.push(field)},transformReply:void 0}}});var require_HGETALL=__commonJS({"node_modules/@redis/client/dist/lib/commands/HGETALL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("HGETALL");parser.pushKey(key)},TRANSFORM_LEGACY_REPLY:true,transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}});var require_HGETDEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/HGETDEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,fields){parser.push("HGETDEL");parser.pushKey(key);parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HGETEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/HGETEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,fields,options){parser.push("HGETEX");parser.pushKey(key);if(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({"node_modules/@redis/client/dist/lib/commands/HINCRBY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,field,increment){parser.push("HINCRBY");parser.pushKey(key);parser.push(field,increment.toString())},transformReply:void 0}}});var require_HINCRBYFLOAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,field,increment){parser.push("HINCRBYFLOAT");parser.pushKey(key);parser.push(field,increment.toString())},transformReply:void 0}}});var require_HKEYS=__commonJS({"node_modules/@redis/client/dist/lib/commands/HKEYS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("HKEYS");parser.pushKey(key)},transformReply:void 0}}});var require_HLEN=__commonJS({"node_modules/@redis/client/dist/lib/commands/HLEN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("HLEN");parser.pushKey(key)},transformReply:void 0}}});var require_HMGET=__commonJS({"node_modules/@redis/client/dist/lib/commands/HMGET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,fields){parser.push("HMGET");parser.pushKey(key);parser.pushVariadic(fields)},transformReply:void 0}}});var require_HPERSIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/HPERSIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,fields){parser.push("HPERSIST");parser.pushKey(key);parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HPEXPIRE=__commonJS({"node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,fields,ms,mode){parser.push("HPEXPIRE");parser.pushKey(key);parser.push(ms.toString());if(mode){parser.push(mode)}parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HPEXPIREAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,fields,timestamp,mode){parser.push("HPEXPIREAT");parser.pushKey(key);parser.push((0,generic_transformers_1.transformPXAT)(timestamp));if(mode){parser.push(mode)}parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HPEXPIRETIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,fields){parser.push("HPEXPIRETIME");parser.pushKey(key);parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HPTTL=__commonJS({"node_modules/@redis/client/dist/lib/commands/HPTTL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,count){parser.push("HRANDFIELD");parser.pushKey(key);parser.push(count.toString(),"WITHVALUES")},transformReply:{2:rawReply=>{const reply=[];let i=0;while(i<rawReply.length){reply.push({field:rawReply[i++],value:rawReply[i++]})}return reply},3:reply=>{return reply.map(entry=>{const[field,value]=entry;return{field,value}})}}}}});var require_HRANDFIELD_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,count){parser.push("HRANDFIELD");parser.pushKey(key);parser.push(count.toString())},transformReply:void 0}}});var require_HRANDFIELD=__commonJS({"node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("HRANDFIELD");parser.pushKey(key)},transformReply:void 0}}});var require_SCAN=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCAN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.pushScanArguments=exports2.parseScanArguments=void 0;function parseScanArguments(parser,cursor,options){parser.push(cursor);if(options?.MATCH){parser.push("MATCH",options.MATCH)}if(options?.COUNT){parser.push("COUNT",options.COUNT.toString())}}__name(parseScanArguments,"parseScanArguments");exports2.parseScanArguments=parseScanArguments;function pushScanArguments(args,cursor,options){args.push(cursor.toString());if(options?.MATCH){args.push("MATCH",options.MATCH)}if(options?.COUNT){args.push("COUNT",options.COUNT.toString())}return args}__name(pushScanArguments,"pushScanArguments");exports2.pushScanArguments=pushScanArguments;exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,cursor,options){parser.push("SCAN");parseScanArguments(parser,cursor,options);if(options?.TYPE){parser.push("TYPE",options.TYPE)}},transformReply([cursor,keys]){return{cursor,keys}}}}});var require_HSCAN=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSCAN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var SCAN_1=require_SCAN();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,cursor,options){parser.push("HSCAN");parser.pushKey(key);(0,SCAN_1.parseScanArguments)(parser,cursor,options)},transformReply([cursor,rawEntries]){const entries=[];let i=0;while(i<rawEntries.length){entries.push({field:rawEntries[i++],value:rawEntries[i++]})}return{cursor,entries}}}}});var require_HSCAN_NOVALUES=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var HSCAN_1=__importDefault(require_HSCAN());exports2.default={IS_READ_ONLY:true,parseCommand(...args){const parser=args[0];HSCAN_1.default.parseCommand(...args);parser.push("NOVALUES")},transformReply([cursor,fields]){return{cursor,fields}}}}});var require_HSET=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,...[key,value,fieldValue]){parser.push("HSET");parser.pushKey(key);if(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,map){for(const[key,value]of map.entries()){parser.push(convertValue(key),convertValue(value))}}__name(pushMap,"pushMap");function pushTuples(parser,tuples){for(const tuple of tuples){if(Array.isArray(tuple)){pushTuples(parser,tuple);continue}parser.push(convertValue(tuple))}}__name(pushTuples,"pushTuples");function pushObject(parser,object){for(const key of Object.keys(object)){parser.push(convertValue(key),convertValue(object[key]))}}__name(pushObject,"pushObject");function convertValue(value){return typeof value==="number"?value.toString():value}__name(convertValue,"convertValue")}});var require_HSETEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSETEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var parser_1=require_parser();exports2.default={parseCommand(parser,key,fields,options){parser.push("HSETEX");parser.pushKey(key);if(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())}}parser.push("FIELDS");if(fields instanceof Map){pushMap(parser,fields)}else if(Array.isArray(fields)){pushTuples(parser,fields)}else{pushObject(parser,fields)}},transformReply:void 0};function pushMap(parser,map){parser.push(map.size.toString());for(const[key,value]of map.entries()){parser.push(convertValue(key),convertValue(value))}}__name(pushMap,"pushMap");function pushTuples(parser,tuples){const tmpParser=new parser_1.BasicCommandParser;_pushTuples(tmpParser,tuples);if(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)}__name(pushTuples,"pushTuples");function _pushTuples(parser,tuples){for(const tuple of tuples){if(Array.isArray(tuple)){_pushTuples(parser,tuple);continue}parser.push(convertValue(tuple))}}__name(_pushTuples,"_pushTuples");function pushObject(parser,object){const len=Object.keys(object).length;if(len==0){throw Error("object without keys")}parser.push(len.toString());for(const key of Object.keys(object)){parser.push(convertValue(key),convertValue(object[key]))}}__name(pushObject,"pushObject");function convertValue(value){return typeof value==="number"?value.toString():value}__name(convertValue,"convertValue")}});var require_HSETNX=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSETNX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,field,value){parser.push("HSETNX");parser.pushKey(key);parser.push(field,value)},transformReply:void 0}}});var require_HSTRLEN=__commonJS({"node_modules/@redis/client/dist/lib/commands/HSTRLEN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,field){parser.push("HSTRLEN");parser.pushKey(key);parser.push(field)},transformReply:void 0}}});var require_HTTL=__commonJS({"node_modules/@redis/client/dist/lib/commands/HTTL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,fields){parser.push("HTTL");parser.pushKey(key);parser.push("FIELDS");parser.pushVariadicWithLength(fields)},transformReply:void 0}}});var require_HVALS=__commonJS({"node_modules/@redis/client/dist/lib/commands/HVALS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("HVALS");parser.pushKey(key)},transformReply:void 0}}});var require_INCR=__commonJS({"node_modules/@redis/client/dist/lib/commands/INCR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key){parser.push("INCR");parser.pushKey(key)},transformReply:void 0}}});var require_INCRBY=__commonJS({"node_modules/@redis/client/dist/lib/commands/INCRBY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,increment){parser.push("INCRBY");parser.pushKey(key);parser.push(increment.toString())},transformReply:void 0}}});var require_INCRBYFLOAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,increment){parser.push("INCRBYFLOAT");parser.pushKey(key);parser.push(increment.toString())},transformReply:void 0}}});var require_INFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/INFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,section){parser.push("INFO");if(section){parser.push(section)}},transformReply:void 0}}});var require_KEYS=__commonJS({"node_modules/@redis/client/dist/lib/commands/KEYS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,pattern){parser.push("KEYS",pattern)},transformReply:void 0}}});var require_LASTSAVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/LASTSAVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("LASTSAVE")},transformReply:void 0}}});var require_LATENCY_DOCTOR=__commonJS({"node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("LATENCY","DOCTOR")},transformReply:void 0}}});var require_LATENCY_GRAPH=__commonJS({"node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.LATENCY_EVENTS=void 0;exports2.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"};exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,event){parser.push("LATENCY","GRAPH",event)},transformReply:void 0}}});var require_LATENCY_HISTORY=__commonJS({"node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,event){parser.push("LATENCY","HISTORY",event)},transformReply:void 0}}});var require_LATENCY_LATEST=__commonJS({"node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("LATENCY","LATEST")},transformReply:void 0}}});var require_LATENCY_RESET=__commonJS({"node_modules/@redis/client/dist/lib/commands/LATENCY_RESET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.LATENCY_EVENTS=void 0;var LATENCY_GRAPH_1=require_LATENCY_GRAPH();Object.defineProperty(exports2,"LATENCY_EVENTS",{enumerable:true,get:__name(function(){return LATENCY_GRAPH_1.LATENCY_EVENTS},"get")});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,...events){const args=["LATENCY","RESET"];if(events.length>0){args.push(...events)}parser.push(...args)},transformReply:void 0}}});var require_LCS=__commonJS({"node_modules/@redis/client/dist/lib/commands/LCS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key1,key2){parser.push("LCS");parser.pushKeys([key1,key2])},transformReply:void 0}}});var require_LCS_IDX=__commonJS({"node_modules/@redis/client/dist/lib/commands/LCS_IDX.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var LCS_1=__importDefault(require_LCS());exports2.default={IS_READ_ONLY:LCS_1.default.IS_READ_ONLY,parseCommand(parser,key1,key2,options){LCS_1.default.parseCommand(parser,key1,key2);parser.push("IDX");if(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({"node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var LCS_IDX_1=__importDefault(require_LCS_IDX());exports2.default={IS_READ_ONLY:LCS_IDX_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];LCS_IDX_1.default.parseCommand(...args);parser.push("WITHMATCHLEN")},transformReply:{2:reply=>({matches:reply[1],len:reply[3]}),3:void 0}}}});var require_LCS_LEN=__commonJS({"node_modules/@redis/client/dist/lib/commands/LCS_LEN.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var LCS_1=__importDefault(require_LCS());exports2.default={IS_READ_ONLY:LCS_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];LCS_1.default.parseCommand(...args);parser.push("LEN")},transformReply:void 0}}});var require_LINDEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/LINDEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,index){parser.push("LINDEX");parser.pushKey(key);parser.push(index.toString())},transformReply:void 0}}});var require_LINSERT=__commonJS({"node_modules/@redis/client/dist/lib/commands/LINSERT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,position,pivot,element){parser.push("LINSERT");parser.pushKey(key);parser.push(position,pivot,element)},transformReply:void 0}}});var require_LLEN=__commonJS({"node_modules/@redis/client/dist/lib/commands/LLEN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("LLEN");parser.pushKey(key)},transformReply:void 0}}});var require_LMOVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/LMOVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,sourceSide,destinationSide){parser.push("LMOVE");parser.pushKeys([source,destination]);parser.push(sourceSide,destinationSide)},transformReply:void 0}}});var require_LOLWUT=__commonJS({"node_modules/@redis/client/dist/lib/commands/LOLWUT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,version,...optionalArguments){parser.push("LOLWUT");if(version){parser.push("VERSION",version.toString());parser.pushVariadic(optionalArguments.map(String))}},transformReply:void 0}}});var require_LPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/LPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key){parser.push("LPOP");parser.pushKey(key)},transformReply:void 0}}});var require_LPOP_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var LPOP_1=__importDefault(require_LPOP());exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,count){LPOP_1.default.parseCommand(parser,key);parser.push(count.toString())},transformReply:void 0}}});var require_LPOS=__commonJS({"node_modules/@redis/client/dist/lib/commands/LPOS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,element,options){parser.push("LPOS");parser.pushKey(key);parser.push(element);if(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({"node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var LPOS_1=__importDefault(require_LPOS());exports2.default={CACHEABLE:LPOS_1.default.CACHEABLE,IS_READ_ONLY:LPOS_1.default.IS_READ_ONLY,parseCommand(parser,key,element,count,options){LPOS_1.default.parseCommand(parser,key,element,options);parser.push("COUNT",count.toString())},transformReply:void 0}}});var require_LPUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/LPUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,elements){parser.push("LPUSH");parser.pushKey(key);parser.pushVariadic(elements)},transformReply:void 0}}});var require_LPUSHX=__commonJS({"node_modules/@redis/client/dist/lib/commands/LPUSHX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,elements){parser.push("LPUSHX");parser.pushKey(key);parser.pushVariadic(elements)},transformReply:void 0}}});var require_LRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/LRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,start,stop){parser.push("LRANGE");parser.pushKey(key);parser.push(start.toString(),stop.toString())},transformReply:void 0}}});var require_LREM=__commonJS({"node_modules/@redis/client/dist/lib/commands/LREM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,count,element){parser.push("LREM");parser.pushKey(key);parser.push(count.toString());parser.push(element)},transformReply:void 0}}});var require_LSET=__commonJS({"node_modules/@redis/client/dist/lib/commands/LSET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,index,element){parser.push("LSET");parser.pushKey(key);parser.push(index.toString(),element)},transformReply:void 0}}});var require_LTRIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/LTRIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,start,stop){parser.push("LTRIM");parser.pushKey(key);parser.push(start.toString(),stop.toString())},transformReply:void 0}}});var require_MEMORY_DOCTOR=__commonJS({"node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("MEMORY","DOCTOR")},transformReply:void 0}}});var require_MEMORY_MALLOC_STATS=__commonJS({"node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("MEMORY","MALLOC-STATS")},transformReply:void 0}}});var require_MEMORY_PURGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser){parser.push("MEMORY","PURGE")},transformReply:void 0}}});var require_MEMORY_STATS=__commonJS({"node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("MEMORY","STATS")},transformReply:{2:(rawReply,preserve,typeMapping)=>{const reply={};let 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({"node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,options){parser.push("MEMORY","USAGE");parser.pushKey(key);if(options?.SAMPLES){parser.push("SAMPLES",options.SAMPLES.toString())}},transformReply:void 0}}});var require_MGET=__commonJS({"node_modules/@redis/client/dist/lib/commands/MGET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("MGET");parser.pushKeys(keys)},transformReply:void 0}}});var require_MIGRATE=__commonJS({"node_modules/@redis/client/dist/lib/commands/MIGRATE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,host,port,key,destinationDb,timeout,options){parser.push("MIGRATE",host,port.toString());const isKeyArray=Array.isArray(key);if(isKeyArray){parser.push("")}else{parser.push(key)}parser.push(destinationDb.toString(),timeout.toString());if(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({"node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("MODULE","LIST")},transformReply:{2:reply=>{return reply.map(module3=>{const unwrapped=module3;return{name:unwrapped[1],ver:unwrapped[3]}})},3:void 0}}}});var require_MODULE_LOAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,path,moduleArguments){parser.push("MODULE","LOAD",path);if(moduleArguments){parser.push(...moduleArguments)}},transformReply:void 0}}});var require_MODULE_UNLOAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,name){parser.push("MODULE","UNLOAD",name)},transformReply:void 0}}});var require_MOVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/MOVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,db){parser.push("MOVE");parser.pushKey(key);parser.push(db.toString())},transformReply:void 0}}});var require_MSET=__commonJS({"node_modules/@redis/client/dist/lib/commands/MSET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseMSetArguments=void 0;function parseMSetArguments(parser,toSet){if(Array.isArray(toSet)){if(toSet.length==0){throw new Error("empty toSet Argument")}if(Array.isArray(toSet[0])){for(const tuple of toSet){parser.pushKey(tuple[0]);parser.push(tuple[1])}}else{const arr=toSet;for(let i=0;i<arr.length;i+=2){parser.pushKey(arr[i]);parser.push(arr[i+1])}}}else{for(const tuple of Object.entries(toSet)){parser.pushKey(tuple[0]);parser.push(tuple[1])}}}__name(parseMSetArguments,"parseMSetArguments");exports2.parseMSetArguments=parseMSetArguments;exports2.default={IS_READ_ONLY:true,parseCommand(parser,toSet){parser.push("MSET");return parseMSetArguments(parser,toSet)},transformReply:void 0}}});var require_MSETNX=__commonJS({"node_modules/@redis/client/dist/lib/commands/MSETNX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var MSET_1=require_MSET();exports2.default={IS_READ_ONLY:true,parseCommand(parser,toSet){parser.push("MSETNX");return(0,MSET_1.parseMSetArguments)(parser,toSet)},transformReply:void 0}}});var require_OBJECT_ENCODING=__commonJS({"node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("OBJECT","ENCODING");parser.pushKey(key)},transformReply:void 0}}});var require_OBJECT_FREQ=__commonJS({"node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("OBJECT","FREQ");parser.pushKey(key)},transformReply:void 0}}});var require_OBJECT_IDLETIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("OBJECT","IDLETIME");parser.pushKey(key)},transformReply:void 0}}});var require_OBJECT_REFCOUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("OBJECT","REFCOUNT");parser.pushKey(key)},transformReply:void 0}}});var require_PERSIST=__commonJS({"node_modules/@redis/client/dist/lib/commands/PERSIST.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key){parser.push("PERSIST");parser.pushKey(key)},transformReply:void 0}}});var require_PEXPIRE=__commonJS({"node_modules/@redis/client/dist/lib/commands/PEXPIRE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,ms,mode){parser.push("PEXPIRE");parser.pushKey(key);parser.push(ms.toString());if(mode){parser.push(mode)}},transformReply:void 0}}});var require_PEXPIREAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,msTimestamp,mode){parser.push("PEXPIREAT");parser.pushKey(key);parser.push((0,generic_transformers_1.transformPXAT)(msTimestamp));if(mode){parser.push(mode)}},transformReply:void 0}}});var require_PEXPIRETIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("PEXPIRETIME");parser.pushKey(key)},transformReply:void 0}}});var require_PFADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/PFADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,element){parser.push("PFADD");parser.pushKey(key);if(element){parser.pushVariadic(element)}},transformReply:void 0}}});var require_PFCOUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/PFCOUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("PFCOUNT");parser.pushKeys(keys)},transformReply:void 0}}});var require_PFMERGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/PFMERGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,destination,sources){parser.push("PFMERGE");parser.pushKey(destination);if(sources){parser.pushKeys(sources)}},transformReply:void 0}}});var require_PING=__commonJS({"node_modules/@redis/client/dist/lib/commands/PING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,message){parser.push("PING");if(message){parser.push(message)}},transformReply:void 0}}});var require_PSETEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/PSETEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,ms,value){parser.push("PSETEX");parser.pushKey(key);parser.push(ms.toString(),value)},transformReply:void 0}}});var require_PTTL=__commonJS({"node_modules/@redis/client/dist/lib/commands/PTTL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("PTTL");parser.pushKey(key)},transformReply:void 0}}});var require_PUBLISH=__commonJS({"node_modules/@redis/client/dist/lib/commands/PUBLISH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,IS_FORWARD_COMMAND:true,parseCommand(parser,channel,message){parser.push("PUBLISH",channel,message)},transformReply:void 0}}});var require_PUBSUB_CHANNELS=__commonJS({"node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,pattern){parser.push("PUBSUB","CHANNELS");if(pattern){parser.push(pattern)}},transformReply:void 0}}});var require_PUBSUB_NUMPAT=__commonJS({"node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("PUBSUB","NUMPAT")},transformReply:void 0}}});var require_PUBSUB_NUMSUB=__commonJS({"node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,channels){parser.push("PUBSUB","NUMSUB");if(channels){parser.pushVariadic(channels)}},transformReply(rawReply){const reply=Object.create(null);let i=0;while(i<rawReply.length){reply[rawReply[i++].toString()]=Number(rawReply[i++])}return reply}}}});var require_PUBSUB_SHARDNUMSUB=__commonJS({"node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,channels){parser.push("PUBSUB","SHARDNUMSUB");if(channels){parser.pushVariadic(channels)}},transformReply(reply){const 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({"node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,pattern){parser.push("PUBSUB","SHARDCHANNELS");if(pattern){parser.push(pattern)}},transformReply:void 0}}});var require_RANDOMKEY=__commonJS({"node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("RANDOMKEY")},transformReply:void 0}}});var require_READONLY=__commonJS({"node_modules/@redis/client/dist/lib/commands/READONLY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("READONLY")},transformReply:void 0}}});var require_RENAME=__commonJS({"node_modules/@redis/client/dist/lib/commands/RENAME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,newKey){parser.push("RENAME");parser.pushKeys([key,newKey])},transformReply:void 0}}});var require_RENAMENX=__commonJS({"node_modules/@redis/client/dist/lib/commands/RENAMENX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,newKey){parser.push("RENAMENX");parser.pushKeys([key,newKey])},transformReply:void 0}}});var require_REPLICAOF=__commonJS({"node_modules/@redis/client/dist/lib/commands/REPLICAOF.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,host,port){parser.push("REPLICAOF",host,port.toString())},transformReply:void 0}}});var require_RESTORE_ASKING=__commonJS({"node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("RESTORE-ASKING")},transformReply:void 0}}});var require_RESTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/RESTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,ttl,serializedValue,options){parser.push("RESTORE");parser.pushKey(key);parser.push(ttl.toString(),serializedValue);if(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({"node_modules/@redis/client/dist/lib/commands/ROLE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("ROLE")},transformReply(reply){switch(reply[0]){case"master":{const[role,replicationOffest,replicas]=reply;return{role,replicationOffest,replicas:replicas.map(replica=>{const[host,port,replicationOffest2]=replica;return{host,port:Number(port),replicationOffest:Number(replicationOffest2)}})}}case"slave":{const[role,masterHost,masterPort,state,dataReceived]=reply;return{role,master:{host:masterHost,port:masterPort},state,dataReceived}}case"sentinel":{const[role,masterNames]=reply;return{role,masterNames}}}}}}});var require_RPOP_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,count){parser.push("RPOP");parser.pushKey(key);parser.push(count.toString())},transformReply:void 0}}});var require_RPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/RPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key){parser.push("RPOP");parser.pushKey(key)},transformReply:void 0}}});var require_RPOPLPUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,source,destination){parser.push("RPOPLPUSH");parser.pushKeys([source,destination])},transformReply:void 0}}});var require_RPUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/RPUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,element){parser.push("RPUSH");parser.pushKey(key);parser.pushVariadic(element)},transformReply:void 0}}});var require_RPUSHX=__commonJS({"node_modules/@redis/client/dist/lib/commands/RPUSHX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,element){parser.push("RPUSHX");parser.pushKey(key);parser.pushVariadic(element)},transformReply:void 0}}});var require_SADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/SADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,members){parser.push("SADD");parser.pushKey(key);parser.pushVariadic(members)},transformReply:void 0}}});var require_SCARD=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCARD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("SCARD");parser.pushKey(key)},transformReply:void 0}}});var require_SCRIPT_DEBUG=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,mode){parser.push("SCRIPT","DEBUG",mode)},transformReply:void 0}}});var require_SCRIPT_EXISTS=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,sha1){parser.push("SCRIPT","EXISTS");parser.pushVariadic(sha1)},transformReply:void 0}}});var require_SCRIPT_FLUSH=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,mode){parser.push("SCRIPT","FLUSH");if(mode){parser.push(mode)}},transformReply:void 0}}});var require_SCRIPT_KILL=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("SCRIPT","KILL")},transformReply:void 0}}});var require_SCRIPT_LOAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,script){parser.push("SCRIPT","LOAD",script)},transformReply:void 0}}});var require_SDIFF=__commonJS({"node_modules/@redis/client/dist/lib/commands/SDIFF.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("SDIFF");parser.pushKeys(keys)},transformReply:void 0}}});var require_SDIFFSTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,destination,keys){parser.push("SDIFFSTORE");parser.pushKey(destination);parser.pushKeys(keys)},transformReply:void 0}}});var require_SET=__commonJS({"node_modules/@redis/client/dist/lib/commands/SET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,value,options){parser.push("SET");parser.pushKey(key);parser.push(typeof value==="number"?value.toString():value);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())}}else if(options?.EX!==void 0){parser.push("EX",options.EX.toString())}else if(options?.PX!==void 0){parser.push("PX",options.PX.toString())}else if(options?.EXAT!==void 0){parser.push("EXAT",options.EXAT.toString())}else if(options?.PXAT!==void 0){parser.push("PXAT",options.PXAT.toString())}else if(options?.KEEPTTL){parser.push("KEEPTTL")}if(options?.condition){parser.push(options.condition)}else if(options?.NX){parser.push("NX")}else if(options?.XX){parser.push("XX")}if(options?.GET){parser.push("GET")}},transformReply:void 0}}});var require_SETBIT=__commonJS({"node_modules/@redis/client/dist/lib/commands/SETBIT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,offset,value){parser.push("SETBIT");parser.pushKey(key);parser.push(offset.toString(),value.toString())},transformReply:void 0}}});var require_SETEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/SETEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,seconds,value){parser.push("SETEX");parser.pushKey(key);parser.push(seconds.toString(),value)},transformReply:void 0}}});var require_SETNX=__commonJS({"node_modules/@redis/client/dist/lib/commands/SETNX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,value){parser.push("SETNX");parser.pushKey(key);parser.push(value)},transformReply:void 0}}});var require_SETRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/SETRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,key,offset,value){parser.push("SETRANGE");parser.pushKey(key);parser.push(offset.toString(),value)},transformReply:void 0}}});var require_SINTER=__commonJS({"node_modules/@redis/client/dist/lib/commands/SINTER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("SINTER");parser.pushKeys(keys)},transformReply:void 0}}});var require_SINTERCARD=__commonJS({"node_modules/@redis/client/dist/lib/commands/SINTERCARD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys,options){parser.push("SINTERCARD");parser.pushKeysLength(keys);if(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({"node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,keys){parser.push("SINTERSTORE");parser.pushKey(destination);parser.pushKeys(keys)},transformReply:void 0}}});var require_SISMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/SISMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("SISMEMBER");parser.pushKey(key);parser.push(member)},transformReply:void 0}}});var require_SMEMBERS=__commonJS({"node_modules/@redis/client/dist/lib/commands/SMEMBERS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("SMEMBERS");parser.pushKey(key)},transformReply:{2:void 0,3:void 0}}}});var require_SMISMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,members){parser.push("SMISMEMBER");parser.pushKey(key);parser.pushVariadic(members)},transformReply:void 0}}});var require_SMOVE=__commonJS({"node_modules/@redis/client/dist/lib/commands/SMOVE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,member){parser.push("SMOVE");parser.pushKeys([source,destination]);parser.push(member)},transformReply:void 0}}});var require_SORT=__commonJS({"node_modules/@redis/client/dist/lib/commands/SORT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseSortArguments=void 0;function parseSortArguments(parser,key,options){parser.pushKey(key);if(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(const 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")}}__name(parseSortArguments,"parseSortArguments");exports2.parseSortArguments=parseSortArguments;exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,options){parser.push("SORT");parseSortArguments(parser,key,options)},transformReply:void 0}}});var require_SORT_RO=__commonJS({"node_modules/@redis/client/dist/lib/commands/SORT_RO.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var SORT_1=__importStar(require_SORT());exports2.default={IS_READ_ONLY:true,parseCommand(...args){const parser=args[0];parser.push("SORT_RO");(0,SORT_1.parseSortArguments)(...args)},transformReply:SORT_1.default.transformReply}}});var require_SORT_STORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/SORT_STORE.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var SORT_1=__importDefault(require_SORT());exports2.default={IS_READ_ONLY:false,parseCommand(parser,source,destination,options){SORT_1.default.parseCommand(parser,source,options);parser.push("STORE",destination)},transformReply:void 0}}});var require_SPOP_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/SPOP_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,count){parser.push("SPOP");parser.pushKey(key);parser.push(count.toString())},transformReply:void 0}}});var require_SPOP=__commonJS({"node_modules/@redis/client/dist/lib/commands/SPOP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key){parser.push("SPOP");parser.pushKey(key)},transformReply:void 0}}});var require_SPUBLISH=__commonJS({"node_modules/@redis/client/dist/lib/commands/SPUBLISH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,channel,message){parser.push("SPUBLISH");parser.pushKey(channel);parser.push(message)},transformReply:void 0}}});var require_SRANDMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("SRANDMEMBER");parser.pushKey(key)},transformReply:void 0}}});var require_SRANDMEMBER_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var SRANDMEMBER_1=__importDefault(require_SRANDMEMBER());exports2.default={IS_READ_ONLY:SRANDMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,count){SRANDMEMBER_1.default.parseCommand(parser,key);parser.push(count.toString())},transformReply:void 0}}});var require_SREM=__commonJS({"node_modules/@redis/client/dist/lib/commands/SREM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,members){parser.push("SREM");parser.pushKey(key);parser.pushVariadic(members)},transformReply:void 0}}});var require_SSCAN=__commonJS({"node_modules/@redis/client/dist/lib/commands/SSCAN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var SCAN_1=require_SCAN();exports2.default={IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/STRLEN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("STRLEN");parser.pushKey(key)},transformReply:void 0}}});var require_SUNION=__commonJS({"node_modules/@redis/client/dist/lib/commands/SUNION.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("SUNION");parser.pushKeys(keys)},transformReply:void 0}}});var require_SUNIONSTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,keys){parser.push("SUNIONSTORE");parser.pushKey(destination);parser.pushKeys(keys)},transformReply:void 0}}});var require_SWAPDB=__commonJS({"node_modules/@redis/client/dist/lib/commands/SWAPDB.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:false,parseCommand(parser,index1,index2){parser.push("SWAPDB",index1.toString(),index2.toString())},transformReply:void 0}}});var require_TIME=__commonJS({"node_modules/@redis/client/dist/lib/commands/TIME.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser){parser.push("TIME")},transformReply:void 0}}});var require_TOUCH=__commonJS({"node_modules/@redis/client/dist/lib/commands/TOUCH.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key){parser.push("TOUCH");parser.pushKeys(key)},transformReply:void 0}}});var require_TTL=__commonJS({"node_modules/@redis/client/dist/lib/commands/TTL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("TTL");parser.pushKey(key)},transformReply:void 0}}});var require_TYPE=__commonJS({"node_modules/@redis/client/dist/lib/commands/TYPE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("TYPE");parser.pushKey(key)},transformReply:void 0}}});var require_UNLINK=__commonJS({"node_modules/@redis/client/dist/lib/commands/UNLINK.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,keys){parser.push("UNLINK");parser.pushKeys(keys)},transformReply:void 0}}});var require_WAIT=__commonJS({"node_modules/@redis/client/dist/lib/commands/WAIT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={NOT_KEYED_COMMAND:true,IS_READ_ONLY:true,parseCommand(parser,numberOfReplicas,timeout){parser.push("WAIT",numberOfReplicas.toString(),timeout.toString())},transformReply:void 0}}});var require_XACK=__commonJS({"node_modules/@redis/client/dist/lib/commands/XACK.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,id){parser.push("XACK");parser.pushKey(key);parser.push(group);parser.pushVariadic(id)},transformReply:void 0}}});var require_XACKDEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/XACKDEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,id,policy){parser.push("XACKDEL");parser.pushKey(key);parser.push(group);if(policy){parser.push(policy)}parser.push("IDS");parser.pushVariadicWithLength(id)},transformReply:void 0}}});var require_XADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/XADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseXAddArguments=void 0;function parseXAddArguments(optional,parser,key,id,message,options){parser.push("XADD");parser.pushKey(key);if(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)}parser.push(options.TRIM.threshold.toString());if(options.TRIM.limit){parser.push("LIMIT",options.TRIM.limit.toString())}if(options.TRIM.policy){parser.push(options.TRIM.policy)}}parser.push(id);for(const[key2,value]of Object.entries(message)){parser.push(key2,value)}}__name(parseXAddArguments,"parseXAddArguments");exports2.parseXAddArguments=parseXAddArguments;exports2.default={IS_READ_ONLY:false,parseCommand(...args){return parseXAddArguments(void 0,...args)},transformReply:void 0}}});var require_XADD_NOMKSTREAM=__commonJS({"node_modules/@redis/client/dist/lib/commands/XADD_NOMKSTREAM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var XADD_1=require_XADD();exports2.default={IS_READ_ONLY:false,parseCommand(...args){return(0,XADD_1.parseXAddArguments)("NOMKSTREAM",...args)},transformReply:void 0}}});var require_XAUTOCLAIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,consumer,minIdleTime,start,options){parser.push("XAUTOCLAIM");parser.pushKey(key);parser.push(group,consumer,minIdleTime.toString(),start);if(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({"node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var XAUTOCLAIM_1=__importDefault(require_XAUTOCLAIM());exports2.default={IS_READ_ONLY:XAUTOCLAIM_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];XAUTOCLAIM_1.default.parseCommand(...args);parser.push("JUSTID")},transformReply(reply){return{nextId:reply[0],messages:reply[1],deletedMessages:reply[2]}}}}});var require_XCLAIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/XCLAIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,consumer,minIdleTime,id,options){parser.push("XCLAIM");parser.pushKey(key);parser.push(group,consumer,minIdleTime.toString());parser.pushVariadic(id);if(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({"node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var XCLAIM_1=__importDefault(require_XCLAIM());exports2.default={IS_READ_ONLY:XCLAIM_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];XCLAIM_1.default.parseCommand(...args);parser.push("JUSTID")},transformReply:void 0}}});var require_XDEL=__commonJS({"node_modules/@redis/client/dist/lib/commands/XDEL.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,id){parser.push("XDEL");parser.pushKey(key);parser.pushVariadic(id)},transformReply:void 0}}});var require_XDELEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/XDELEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,id,policy){parser.push("XDELEX");parser.pushKey(key);if(policy){parser.push(policy)}parser.push("IDS");parser.pushVariadicWithLength(id)},transformReply:void 0}}});var require_XGROUP_CREATE=__commonJS({"node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,id,options){parser.push("XGROUP","CREATE");parser.pushKey(key);parser.push(group,id);if(options?.MKSTREAM){parser.push("MKSTREAM")}if(options?.ENTRIESREAD){parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())}},transformReply:void 0}}});var require_XGROUP_CREATECONSUMER=__commonJS({"node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,consumer){parser.push("XGROUP","CREATECONSUMER");parser.pushKey(key);parser.push(group,consumer)},transformReply:void 0}}});var require_XGROUP_DELCONSUMER=__commonJS({"node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,consumer){parser.push("XGROUP","DELCONSUMER");parser.pushKey(key);parser.push(group,consumer)},transformReply:void 0}}});var require_XGROUP_DESTROY=__commonJS({"node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group){parser.push("XGROUP","DESTROY");parser.pushKey(key);parser.push(group)},transformReply:void 0}}});var require_XGROUP_SETID=__commonJS({"node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,group,id,options){parser.push("XGROUP","SETID");parser.pushKey(key);parser.push(group,id);if(options?.ENTRIESREAD){parser.push("ENTRIESREAD",options.ENTRIESREAD.toString())}},transformReply:void 0}}});var require_XINFO_CONSUMERS=__commonJS({"node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,group){parser.push("XINFO","CONSUMERS");parser.pushKey(key);parser.push(group)},transformReply:{2:reply=>{return reply.map(consumer=>{const unwrapped=consumer;return{name:unwrapped[1],pending:unwrapped[3],idle:unwrapped[5],inactive:unwrapped[7]}})},3:void 0}}}});var require_XINFO_GROUPS=__commonJS({"node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("XINFO","GROUPS");parser.pushKey(key)},transformReply:{2:reply=>{return reply.map(group=>{const 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({"node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("XINFO","STREAM");parser.pushKey(key)},transformReply:{2(reply){const 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;const[id,message]=entry;return{id,message:(0,generic_transformers_1.transformTuplesReply)(message)}}__name(transformEntry,"transformEntry")}});var require_XLEN=__commonJS({"node_modules/@redis/client/dist/lib/commands/XLEN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("XLEN");parser.pushKey(key)},transformReply:void 0}}});var require_XPENDING_RANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,group,start,end,count,options){parser.push("XPENDING");parser.pushKey(key);parser.push(group);if(options?.IDLE!==void 0){parser.push("IDLE",options.IDLE.toString())}parser.push(start,end,count.toString());if(options?.consumer){parser.push(options.consumer)}},transformReply(reply){return reply.map(pending=>{const unwrapped=pending;return{id:unwrapped[0],consumer:unwrapped[1],millisecondsSinceLastDelivery:unwrapped[2],deliveriesCounter:unwrapped[3]}})}}}});var require_XPENDING=__commonJS({"node_modules/@redis/client/dist/lib/commands/XPENDING.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,group){parser.push("XPENDING");parser.pushKey(key);parser.push(group)},transformReply(reply){const consumers=reply[3];return{pending:reply[0],firstId:reply[1],lastId:reply[2],consumers:consumers===null?null:consumers.map(consumer=>{const[name,deliveriesCounter]=consumer;return{name,deliveriesCounter:Number(deliveriesCounter)}})}}}}});var require_XRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/XRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.xRangeArguments=void 0;var generic_transformers_1=require_generic_transformers();function xRangeArguments(start,end,options){const args=[start,end];if(options?.COUNT){args.push("COUNT",options.COUNT.toString())}return args}__name(xRangeArguments,"xRangeArguments");exports2.xRangeArguments=xRangeArguments;exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,...args){parser.push("XRANGE");parser.pushKey(key);parser.pushVariadic(xRangeArguments(args[0],args[1],args[2]))},transformReply(reply,preserve,typeMapping){return reply.map(generic_transformers_1.transformStreamMessageReply.bind(void 0,typeMapping))}}}});var require_XREAD=__commonJS({"node_modules/@redis/client/dist/lib/commands/XREAD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.pushXReadStreams=void 0;var generic_transformers_1=require_generic_transformers();function pushXReadStreams(parser,streams){parser.push("STREAMS");if(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)}}__name(pushXReadStreams,"pushXReadStreams");exports2.pushXReadStreams=pushXReadStreams;exports2.default={IS_READ_ONLY:true,parseCommand(parser,streams,options){parser.push("XREAD");if(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:true}}});var require_XREADGROUP=__commonJS({"node_modules/@redis/client/dist/lib/commands/XREADGROUP.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var XREAD_1=require_XREAD();var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,group,consumer,streams,options){parser.push("XREADGROUP","GROUP",group,consumer);if(options?.COUNT!==void 0){parser.push("COUNT",options.COUNT.toString())}if(options?.BLOCK!==void 0){parser.push("BLOCK",options.BLOCK.toString())}if(options?.NOACK){parser.push("NOACK")}(0,XREAD_1.pushXReadStreams)(parser,streams)},transformReply:{2:generic_transformers_1.transformStreamsMessagesReplyResp2,3:void 0},unstableResp3:true}}});var require_XREVRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/XREVRANGE.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};Object.defineProperty(exports2,"__esModule",{value:true});var XRANGE_1=__importStar(require_XRANGE());exports2.default={CACHEABLE:XRANGE_1.default.CACHEABLE,IS_READ_ONLY:XRANGE_1.default.IS_READ_ONLY,parseCommand(parser,key,...args){parser.push("XREVRANGE");parser.pushKey(key);parser.pushVariadic((0,XRANGE_1.xRangeArguments)(args[0],args[1],args[2]))},transformReply:XRANGE_1.default.transformReply}}});var require_XSETID=__commonJS({"node_modules/@redis/client/dist/lib/commands/XSETID.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,lastId,options){parser.push("XSETID");parser.pushKey(key);parser.push(lastId);if(options?.ENTRIESADDED){parser.push("ENTRIESADDED",options.ENTRIESADDED.toString())}if(options?.MAXDELETEDID){parser.push("MAXDELETEDID",options.MAXDELETEDID)}},transformReply:void 0}}});var require_XTRIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/XTRIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,strategy,threshold,options){parser.push("XTRIM");parser.pushKey(key);parser.push(strategy);if(options?.strategyModifier){parser.push(options.strategyModifier)}parser.push(threshold.toString());if(options?.LIMIT){parser.push("LIMIT",options.LIMIT.toString())}if(options?.policy){parser.push(options.policy)}},transformReply:void 0}}});var require_ZADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.pushMembers=void 0;var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,members,options){parser.push("ZADD");parser.pushKey(key);if(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(const member of members){pushMember(parser,member)}}else{pushMember(parser,members)}}__name(pushMembers,"pushMembers");exports2.pushMembers=pushMembers;function pushMember(parser,member){parser.push((0,generic_transformers_1.transformDoubleArgument)(member.score),member.value)}__name(pushMember,"pushMember")}});var require_ZADD_INCR=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZADD_INCR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var ZADD_1=require_ZADD();var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,members,options){parser.push("ZADD");parser.pushKey(key);if(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({"node_modules/@redis/client/dist/lib/commands/ZCARD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key){parser.push("ZCARD");parser.pushKey(key)},transformReply:void 0}}});var require_ZCOUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZCOUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,min,max){parser.push("ZCOUNT");parser.pushKey(key);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max))},transformReply:void 0}}});var require_ZDIFF=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZDIFF.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys){parser.push("ZDIFF");parser.pushKeysLength(keys)},transformReply:void 0}}});var require_ZDIFF_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZDIFF_1=__importDefault(require_ZDIFF());exports2.default={IS_READ_ONLY:ZDIFF_1.default.IS_READ_ONLY,parseCommand(parser,keys){ZDIFF_1.default.parseCommand(parser,keys);parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZDIFFSTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,destination,inputKeys){parser.push("ZDIFFSTORE");parser.pushKey(destination);parser.pushKeysLength(inputKeys)},transformReply:void 0}}});var require_ZINCRBY=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZINCRBY.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.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({"node_modules/@redis/client/dist/lib/commands/ZINTER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.parseZInterArguments=void 0;var generic_transformers_1=require_generic_transformers();function parseZInterArguments(parser,keys,options){(0,generic_transformers_1.parseZKeysArguments)(parser,keys);if(options?.AGGREGATE){parser.push("AGGREGATE",options.AGGREGATE)}}__name(parseZInterArguments,"parseZInterArguments");exports2.parseZInterArguments=parseZInterArguments;exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys,options){parser.push("ZINTER");parseZInterArguments(parser,keys,options)},transformReply:void 0}}});var require_ZINTER_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZINTER_1=__importDefault(require_ZINTER());exports2.default={IS_READ_ONLY:ZINTER_1.default.IS_READ_ONLY,parseCommand(...args){ZINTER_1.default.parseCommand(...args);args[0].push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZINTERCARD=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys,options){parser.push("ZINTERCARD");parser.pushKeysLength(keys);if(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({"node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var ZINTER_1=require_ZINTER();exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,keys,options){parser.push("ZINTERSTORE");parser.pushKey(destination);(0,ZINTER_1.parseZInterArguments)(parser,keys,options)},transformReply:void 0}}});var require_ZLEXCOUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,min,max){parser.push("ZLEXCOUNT");parser.pushKey(key);parser.push(min);parser.push(max)},transformReply:void 0}}});var require_ZMSCORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZMSCORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,count){parser.push("ZPOPMAX");parser.pushKey(key);parser.push(count.toString())},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZPOPMAX=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,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({"node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,count){parser.push("ZPOPMIN");parser.pushKey(key);parser.push(count.toString())},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZPOPMIN=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var ZPOPMAX_1=__importDefault(require_ZPOPMAX());exports2.default={IS_READ_ONLY:false,parseCommand(parser,key){parser.push("ZPOPMIN");parser.pushKey(key)},transformReply:ZPOPMAX_1.default.transformReply}}});var require_ZRANDMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("ZRANDMEMBER");parser.pushKey(key)},transformReply:void 0}}});var require_ZRANDMEMBER_COUNT=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var ZRANDMEMBER_1=__importDefault(require_ZRANDMEMBER());exports2.default={IS_READ_ONLY:ZRANDMEMBER_1.default.IS_READ_ONLY,parseCommand(parser,key,count){ZRANDMEMBER_1.default.parseCommand(parser,key);parser.push(count.toString())},transformReply:void 0}}});var require_ZRANDMEMBER_COUNT_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZRANDMEMBER_COUNT_1=__importDefault(require_ZRANDMEMBER_COUNT());exports2.default={IS_READ_ONLY:ZRANDMEMBER_COUNT_1.default.IS_READ_ONLY,parseCommand(parser,key,count){ZRANDMEMBER_COUNT_1.default.parseCommand(parser,key,count);parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZRANGE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.zRangeArgument=void 0;var generic_transformers_1=require_generic_transformers();function zRangeArgument(min,max,options){const args=[(0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max)];switch(options?.BY){case"SCORE":args.push("BYSCORE");break;case"LEX":args.push("BYLEX");break}if(options?.REV){args.push("REV")}if(options?.LIMIT){args.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())}return args}__name(zRangeArgument,"zRangeArgument");exports2.zRangeArgument=zRangeArgument;exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,min,max,options){parser.push("ZRANGE");parser.pushKey(key);parser.pushVariadic(zRangeArgument(min,max,options))},transformReply:void 0}}});var require_ZRANGE_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZRANGE_1=__importDefault(require_ZRANGE());exports2.default={CACHEABLE:ZRANGE_1.default.CACHEABLE,IS_READ_ONLY:ZRANGE_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];ZRANGE_1.default.parseCommand(...args);parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZRANGEBYLEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,min,max,options){parser.push("ZRANGEBYLEX");parser.pushKey(key);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max));if(options?.LIMIT){parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())}},transformReply:void 0}}});var require_ZRANGEBYSCORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,min,max,options){parser.push("ZRANGEBYSCORE");parser.pushKey(key);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max));if(options?.LIMIT){parser.push("LIMIT",options.LIMIT.offset.toString(),options.LIMIT.count.toString())}},transformReply:void 0}}});var require_ZRANGEBYSCORE_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZRANGEBYSCORE_1=__importDefault(require_ZRANGEBYSCORE());exports2.default={CACHEABLE:ZRANGEBYSCORE_1.default.CACHEABLE,IS_READ_ONLY:ZRANGEBYSCORE_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];ZRANGEBYSCORE_1.default.parseCommand(...args);parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZRANGESTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,source,min,max,options){parser.push("ZRANGESTORE");parser.pushKey(destination);parser.pushKey(source);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max));switch(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({"node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,min,max){parser.push("ZREMRANGEBYSCORE");parser.pushKey(key);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max))},transformReply:void 0}}});var require_ZRANK=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANK.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("ZRANK");parser.pushKey(key);parser.push(member)},transformReply:void 0}}});var require_ZRANK_WITHSCORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZRANK_WITHSCORE.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var ZRANK_1=__importDefault(require_ZRANK());exports2.default={CACHEABLE:ZRANK_1.default.CACHEABLE,IS_READ_ONLY:ZRANK_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];ZRANK_1.default.parseCommand(...args);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({"node_modules/@redis/client/dist/lib/commands/ZREM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,member){parser.push("ZREM");parser.pushKey(key);parser.pushVariadic(member)},transformReply:void 0}}});var require_ZREMRANGEBYLEX=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,min,max){parser.push("ZREMRANGEBYLEX");parser.pushKey(key);parser.push((0,generic_transformers_1.transformStringDoubleArgument)(min),(0,generic_transformers_1.transformStringDoubleArgument)(max))},transformReply:void 0}}});var require_ZREMRANGEBYRANK=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:false,parseCommand(parser,key,start,stop){parser.push("ZREMRANGEBYRANK");parser.pushKey(key);parser.push(start.toString(),stop.toString())},transformReply:void 0}}});var require_ZREVRANK=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZREVRANK.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("ZREVRANK");parser.pushKey(key);parser.push(member)},transformReply:void 0}}});var require_ZSCAN=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZSCAN.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var SCAN_1=require_SCAN();var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,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({"node_modules/@redis/client/dist/lib/commands/ZSCORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={CACHEABLE:true,IS_READ_ONLY:true,parseCommand(parser,key,member){parser.push("ZSCORE");parser.pushKey(key);parser.push(member)},transformReply:generic_transformers_1.transformNullableDoubleReply}}});var require_ZUNION=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZUNION.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,keys,options){parser.push("ZUNION");(0,generic_transformers_1.parseZKeysArguments)(parser,keys);if(options?.AGGREGATE){parser.push("AGGREGATE",options.AGGREGATE)}},transformReply:void 0}}});var require_ZUNION_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var ZUNION_1=__importDefault(require_ZUNION());exports2.default={IS_READ_ONLY:ZUNION_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];ZUNION_1.default.parseCommand(...args);parser.push("WITHSCORES")},transformReply:generic_transformers_1.transformSortedSetReply}}});var require_ZUNIONSTORE=__commonJS({"node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:false,parseCommand(parser,destination,keys,options){parser.push("ZUNIONSTORE");parser.pushKey(destination);(0,generic_transformers_1.parseZKeysArguments)(parser,keys);if(options?.AGGREGATE){parser.push("AGGREGATE",options.AGGREGATE)}},transformReply:void 0}}});var require_VADD=__commonJS({"node_modules/@redis/client/dist/lib/commands/VADD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,vector,element,options){parser.push("VADD");parser.pushKey(key);if(options?.REDUCE!==void 0){parser.push("REDUCE",options.REDUCE.toString())}parser.push("VALUES",vector.length.toString());for(const value of vector){parser.push((0,generic_transformers_1.transformDoubleArgument)(value))}parser.push(element);if(options?.CAS){parser.push("CAS")}options?.QUANT&&parser.push(options.QUANT);if(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({"node_modules/@redis/client/dist/lib/commands/VCARD.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("VCARD");parser.pushKey(key)},transformReply:void 0}}});var require_VDIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/VDIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("VDIM");parser.pushKey(key)},transformReply:void 0}}});var require_VEMB=__commonJS({"node_modules/@redis/client/dist/lib/commands/VEMB.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,element){parser.push("VEMB");parser.pushKey(key);parser.push(element)},transformReply:generic_transformers_1.transformDoubleArrayReply}}});var require_VEMB_RAW=__commonJS({"node_modules/@redis/client/dist/lib/commands/VEMB_RAW.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var VEMB_1=__importDefault(require_VEMB());var 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]}}};exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,element){VEMB_1.default.parseCommand(parser,key,element);parser.push("RAW")},transformReply:transformRawVembReply}}});var require_VGETATTR=__commonJS({"node_modules/@redis/client/dist/lib/commands/VGETATTR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,element){parser.push("VGETATTR");parser.pushKey(key);parser.push(element)},transformReply:generic_transformers_1.transformRedisJsonNullReply}}});var require_VINFO=__commonJS({"node_modules/@redis/client/dist/lib/commands/VINFO.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key){parser.push("VINFO");parser.pushKey(key)},transformReply:{2:reply=>{const 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({"node_modules/@redis/client/dist/lib/commands/VLINKS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,element){parser.push("VLINKS");parser.pushKey(key);parser.push(element)},transformReply:void 0}}});var require_VLINKS_WITHSCORES=__commonJS({"node_modules/@redis/client/dist/lib/commands/VLINKS_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var VLINKS_1=__importDefault(require_VLINKS());function transformVLinksWithScoresReply(reply){const layers=[];for(const layer of reply){const obj=Object.create(null);for(let i=0;i<layer.length;i+=2){const element=layer[i];const score=generic_transformers_1.transformDoubleReply[2](layer[i+1]);obj[element.toString()]=score}layers.push(obj)}return layers}__name(transformVLinksWithScoresReply,"transformVLinksWithScoresReply");exports2.default={IS_READ_ONLY:VLINKS_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];VLINKS_1.default.parseCommand(...args);parser.push("WITHSCORES")},transformReply:{2:transformVLinksWithScoresReply,3:void 0}}}});var require_VRANDMEMBER=__commonJS({"node_modules/@redis/client/dist/lib/commands/VRANDMEMBER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,count){parser.push("VRANDMEMBER");parser.pushKey(key);if(count!==void 0){parser.push(count.toString())}},transformReply:void 0}}});var require_VREM=__commonJS({"node_modules/@redis/client/dist/lib/commands/VREM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,element){parser.push("VREM");parser.pushKey(key);parser.push(element)},transformReply:generic_transformers_1.transformBooleanReply}}});var require_VSETATTR=__commonJS({"node_modules/@redis/client/dist/lib/commands/VSETATTR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,key,element,attributes){parser.push("VSETATTR");parser.pushKey(key);parser.push(element);if(typeof attributes==="object"&&attributes!==null){parser.push(JSON.stringify(attributes))}else{parser.push(attributes)}},transformReply:generic_transformers_1.transformBooleanReply}}});var require_VSIM=__commonJS({"node_modules/@redis/client/dist/lib/commands/VSIM.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={IS_READ_ONLY:true,parseCommand(parser,key,query,options){parser.push("VSIM");parser.pushKey(key);if(Array.isArray(query)){parser.push("VALUES",query.length.toString());for(const 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({"node_modules/@redis/client/dist/lib/commands/VSIM_WITHSCORES.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();var VSIM_1=__importDefault(require_VSIM());exports2.default={IS_READ_ONLY:VSIM_1.default.IS_READ_ONLY,parseCommand(...args){const parser=args[0];VSIM_1.default.parseCommand(...args);parser.push("WITHSCORES")},transformReply:{2:reply=>{const inferred=reply;const members={};for(let i=0;i<inferred.length;i+=2){members[inferred[i].toString()]=generic_transformers_1.transformDoubleReply[2](inferred[i+1])}return members},3:void 0}}}});var require_commands=__commonJS({"node_modules/@redis/client/dist/lib/commands/index.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o2,v2){Object.defineProperty(o2,"default",{enumerable:true,value:v2})}):function(o2,v2){o2["default"]=v2});var __importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null){for(var k2 in mod)if(k2!=="default"&&Object.prototype.hasOwnProperty.call(mod,k2))__createBinding(result,mod,k2)}__setModuleDefault(result,mod);return result};var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.REDIS_FLUSH_MODES=exports2.COMMAND_LIST_FILTER_BY=exports2.CLUSTER_SLOT_STATES=exports2.FAILOVER_MODES=exports2.CLIENT_KILL_FILTERS=void 0;var ACL_CAT_1=__importDefault(require_ACL_CAT());var ACL_DELUSER_1=__importDefault(require_ACL_DELUSER());var ACL_DRYRUN_1=__importDefault(require_ACL_DRYRUN());var ACL_GENPASS_1=__importDefault(require_ACL_GENPASS());var ACL_GETUSER_1=__importDefault(require_ACL_GETUSER());var ACL_LIST_1=__importDefault(require_ACL_LIST());var ACL_LOAD_1=__importDefault(require_ACL_LOAD());var ACL_LOG_RESET_1=__importDefault(require_ACL_LOG_RESET());var ACL_LOG_1=__importDefault(require_ACL_LOG());var ACL_SAVE_1=__importDefault(require_ACL_SAVE());var ACL_SETUSER_1=__importDefault(require_ACL_SETUSER());var ACL_USERS_1=__importDefault(require_ACL_USERS());var ACL_WHOAMI_1=__importDefault(require_ACL_WHOAMI());var APPEND_1=__importDefault(require_APPEND());var ASKING_1=__importDefault(require_ASKING());var AUTH_1=__importDefault(require_AUTH());var BGREWRITEAOF_1=__importDefault(require_BGREWRITEAOF());var BGSAVE_1=__importDefault(require_BGSAVE());var BITCOUNT_1=__importDefault(require_BITCOUNT());var BITFIELD_RO_1=__importDefault(require_BITFIELD_RO());var BITFIELD_1=__importDefault(require_BITFIELD());var BITOP_1=__importDefault(require_BITOP());var BITPOS_1=__importDefault(require_BITPOS());var BLMOVE_1=__importDefault(require_BLMOVE());var BLMPOP_1=__importDefault(require_BLMPOP());var BLPOP_1=__importDefault(require_BLPOP());var BRPOP_1=__importDefault(require_BRPOP());var BRPOPLPUSH_1=__importDefault(require_BRPOPLPUSH());var BZMPOP_1=__importDefault(require_BZMPOP());var BZPOPMAX_1=__importDefault(require_BZPOPMAX());var BZPOPMIN_1=__importDefault(require_BZPOPMIN());var CLIENT_CACHING_1=__importDefault(require_CLIENT_CACHING());var CLIENT_GETNAME_1=__importDefault(require_CLIENT_GETNAME());var CLIENT_GETREDIR_1=__importDefault(require_CLIENT_GETREDIR());var CLIENT_ID_1=__importDefault(require_CLIENT_ID());var CLIENT_INFO_1=__importDefault(require_CLIENT_INFO());var CLIENT_KILL_1=__importStar(require_CLIENT_KILL());Object.defineProperty(exports2,"CLIENT_KILL_FILTERS",{enumerable:true,get:__name(function(){return CLIENT_KILL_1.CLIENT_KILL_FILTERS},"get")});var CLIENT_LIST_1=__importDefault(require_CLIENT_LIST());var CLIENT_NO_EVICT_1=__importDefault(require_CLIENT_NO_EVICT());var CLIENT_NO_TOUCH_1=__importDefault(require_CLIENT_NO_TOUCH());var CLIENT_PAUSE_1=__importDefault(require_CLIENT_PAUSE());var CLIENT_SETNAME_1=__importDefault(require_CLIENT_SETNAME());var CLIENT_TRACKING_1=__importDefault(require_CLIENT_TRACKING());var CLIENT_TRACKINGINFO_1=__importDefault(require_CLIENT_TRACKINGINFO());var CLIENT_UNPAUSE_1=__importDefault(require_CLIENT_UNPAUSE());var CLUSTER_ADDSLOTS_1=__importDefault(require_CLUSTER_ADDSLOTS());var CLUSTER_ADDSLOTSRANGE_1=__importDefault(require_CLUSTER_ADDSLOTSRANGE());var CLUSTER_BUMPEPOCH_1=__importDefault(require_CLUSTER_BUMPEPOCH());var CLUSTER_COUNT_FAILURE_REPORTS_1=__importDefault(require_CLUSTER_COUNT_FAILURE_REPORTS());var CLUSTER_COUNTKEYSINSLOT_1=__importDefault(require_CLUSTER_COUNTKEYSINSLOT());var CLUSTER_DELSLOTS_1=__importDefault(require_CLUSTER_DELSLOTS());var CLUSTER_DELSLOTSRANGE_1=__importDefault(require_CLUSTER_DELSLOTSRANGE());var CLUSTER_FAILOVER_1=__importStar(require_CLUSTER_FAILOVER());Object.defineProperty(exports2,"FAILOVER_MODES",{enumerable:true,get:__name(function(){return CLUSTER_FAILOVER_1.FAILOVER_MODES},"get")});var CLUSTER_FLUSHSLOTS_1=__importDefault(require_CLUSTER_FLUSHSLOTS());var CLUSTER_FORGET_1=__importDefault(require_CLUSTER_FORGET());var CLUSTER_GETKEYSINSLOT_1=__importDefault(require_CLUSTER_GETKEYSINSLOT());var CLUSTER_INFO_1=__importDefault(require_CLUSTER_INFO());var CLUSTER_KEYSLOT_1=__importDefault(require_CLUSTER_KEYSLOT());var CLUSTER_LINKS_1=__importDefault(require_CLUSTER_LINKS());var CLUSTER_MEET_1=__importDefault(require_CLUSTER_MEET());var CLUSTER_MYID_1=__importDefault(require_CLUSTER_MYID());var CLUSTER_MYSHARDID_1=__importDefault(require_CLUSTER_MYSHARDID());var CLUSTER_NODES_1=__importDefault(require_CLUSTER_NODES());var CLUSTER_REPLICAS_1=__importDefault(require_CLUSTER_REPLICAS());var CLUSTER_REPLICATE_1=__importDefault(require_CLUSTER_REPLICATE());var CLUSTER_RESET_1=__importDefault(require_CLUSTER_RESET());var CLUSTER_SAVECONFIG_1=__importDefault(require_CLUSTER_SAVECONFIG());var CLUSTER_SET_CONFIG_EPOCH_1=__importDefault(require_CLUSTER_SET_CONFIG_EPOCH());var CLUSTER_SETSLOT_1=__importStar(require_CLUSTER_SETSLOT());Object.defineProperty(exports2,"CLUSTER_SLOT_STATES",{enumerable:true,get:__name(function(){return CLUSTER_SETSLOT_1.CLUSTER_SLOT_STATES},"get")});var CLUSTER_SLOTS_1=__importDefault(require_CLUSTER_SLOTS());var COMMAND_COUNT_1=__importDefault(require_COMMAND_COUNT());var COMMAND_GETKEYS_1=__importDefault(require_COMMAND_GETKEYS());var COMMAND_GETKEYSANDFLAGS_1=__importDefault(require_COMMAND_GETKEYSANDFLAGS());var COMMAND_INFO_1=__importDefault(require_COMMAND_INFO());var COMMAND_LIST_1=__importStar(require_COMMAND_LIST());Object.defineProperty(exports2,"COMMAND_LIST_FILTER_BY",{enumerable:true,get:__name(function(){return COMMAND_LIST_1.COMMAND_LIST_FILTER_BY},"get")});var COMMAND_1=__importDefault(require_COMMAND());var CONFIG_GET_1=__importDefault(require_CONFIG_GET());var CONFIG_RESETSTAT_1=__importDefault(require_CONFIG_RESETSTAT());var CONFIG_REWRITE_1=__importDefault(require_CONFIG_REWRITE());var CONFIG_SET_1=__importDefault(require_CONFIG_SET());var COPY_1=__importDefault(require_COPY());var DBSIZE_1=__importDefault(require_DBSIZE());var DECR_1=__importDefault(require_DECR());var DECRBY_1=__importDefault(require_DECRBY());var DEL_1=__importDefault(require_DEL());var DUMP_1=__importDefault(require_DUMP());var ECHO_1=__importDefault(require_ECHO());var EVAL_RO_1=__importDefault(require_EVAL_RO());var EVAL_1=__importDefault(require_EVAL());var EVALSHA_RO_1=__importDefault(require_EVALSHA_RO());var EVALSHA_1=__importDefault(require_EVALSHA());var GEOADD_1=__importDefault(require_GEOADD());var GEODIST_1=__importDefault(require_GEODIST());var GEOHASH_1=__importDefault(require_GEOHASH());var GEOPOS_1=__importDefault(require_GEOPOS());var GEORADIUS_RO_WITH_1=__importDefault(require_GEORADIUS_RO_WITH());var GEORADIUS_RO_1=__importDefault(require_GEORADIUS_RO());var GEORADIUS_STORE_1=__importDefault(require_GEORADIUS_STORE());var GEORADIUS_WITH_1=__importDefault(require_GEORADIUS_WITH());var GEORADIUS_1=__importDefault(require_GEORADIUS());var GEORADIUSBYMEMBER_RO_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_RO_WITH());var GEORADIUSBYMEMBER_RO_1=__importDefault(require_GEORADIUSBYMEMBER_RO());var GEORADIUSBYMEMBER_STORE_1=__importDefault(require_GEORADIUSBYMEMBER_STORE());var GEORADIUSBYMEMBER_WITH_1=__importDefault(require_GEORADIUSBYMEMBER_WITH());var GEORADIUSBYMEMBER_1=__importDefault(require_GEORADIUSBYMEMBER());var GEOSEARCH_WITH_1=__importDefault(require_GEOSEARCH_WITH());var GEOSEARCH_1=__importDefault(require_GEOSEARCH());var GEOSEARCHSTORE_1=__importDefault(require_GEOSEARCHSTORE());var GET_1=__importDefault(require_GET());var GETBIT_1=__importDefault(require_GETBIT());var GETDEL_1=__importDefault(require_GETDEL());var GETEX_1=__importDefault(require_GETEX());var GETRANGE_1=__importDefault(require_GETRANGE());var GETSET_1=__importDefault(require_GETSET());var EXISTS_1=__importDefault(require_EXISTS());var EXPIRE_1=__importDefault(require_EXPIRE());var EXPIREAT_1=__importDefault(require_EXPIREAT());var EXPIRETIME_1=__importDefault(require_EXPIRETIME());var FLUSHALL_1=__importStar(require_FLUSHALL());Object.defineProperty(exports2,"REDIS_FLUSH_MODES",{enumerable:true,get:__name(function(){return FLUSHALL_1.REDIS_FLUSH_MODES},"get")});var FLUSHDB_1=__importDefault(require_FLUSHDB());var FCALL_1=__importDefault(require_FCALL());var FCALL_RO_1=__importDefault(require_FCALL_RO());var FUNCTION_DELETE_1=__importDefault(require_FUNCTION_DELETE());var FUNCTION_DUMP_1=__importDefault(require_FUNCTION_DUMP());var FUNCTION_FLUSH_1=__importDefault(require_FUNCTION_FLUSH());var FUNCTION_KILL_1=__importDefault(require_FUNCTION_KILL());var FUNCTION_LIST_WITHCODE_1=__importDefault(require_FUNCTION_LIST_WITHCODE());var FUNCTION_LIST_1=__importDefault(require_FUNCTION_LIST());var FUNCTION_LOAD_1=__importDefault(require_FUNCTION_LOAD());var FUNCTION_RESTORE_1=__importDefault(require_FUNCTION_RESTORE());var FUNCTION_STATS_1=__importDefault(require_FUNCTION_STATS());var HDEL_1=__importDefault(require_HDEL());var HELLO_1=__importDefault(require_HELLO());var HEXISTS_1=__importDefault(require_HEXISTS());var HEXPIRE_1=__importDefault(require_HEXPIRE());var HEXPIREAT_1=__importDefault(require_HEXPIREAT());var HEXPIRETIME_1=__importDefault(require_HEXPIRETIME());var HGET_1=__importDefault(require_HGET());var HGETALL_1=__importDefault(require_HGETALL());var HGETDEL_1=__importDefault(require_HGETDEL());var HGETEX_1=__importDefault(require_HGETEX());var HINCRBY_1=__importDefault(require_HINCRBY());var HINCRBYFLOAT_1=__importDefault(require_HINCRBYFLOAT());var HKEYS_1=__importDefault(require_HKEYS());var HLEN_1=__importDefault(require_HLEN());var HMGET_1=__importDefault(require_HMGET());var HPERSIST_1=__importDefault(require_HPERSIST());var HPEXPIRE_1=__importDefault(require_HPEXPIRE());var HPEXPIREAT_1=__importDefault(require_HPEXPIREAT());var HPEXPIRETIME_1=__importDefault(require_HPEXPIRETIME());var HPTTL_1=__importDefault(require_HPTTL());var HRANDFIELD_COUNT_WITHVALUES_1=__importDefault(require_HRANDFIELD_COUNT_WITHVALUES());var HRANDFIELD_COUNT_1=__importDefault(require_HRANDFIELD_COUNT());var HRANDFIELD_1=__importDefault(require_HRANDFIELD());var HSCAN_1=__importDefault(require_HSCAN());var HSCAN_NOVALUES_1=__importDefault(require_HSCAN_NOVALUES());var HSET_1=__importDefault(require_HSET());var HSETEX_1=__importDefault(require_HSETEX());var HSETNX_1=__importDefault(require_HSETNX());var HSTRLEN_1=__importDefault(require_HSTRLEN());var HTTL_1=__importDefault(require_HTTL());var HVALS_1=__importDefault(require_HVALS());var INCR_1=__importDefault(require_INCR());var INCRBY_1=__importDefault(require_INCRBY());var INCRBYFLOAT_1=__importDefault(require_INCRBYFLOAT());var INFO_1=__importDefault(require_INFO());var KEYS_1=__importDefault(require_KEYS());var LASTSAVE_1=__importDefault(require_LASTSAVE());var LATENCY_DOCTOR_1=__importDefault(require_LATENCY_DOCTOR());var LATENCY_GRAPH_1=__importDefault(require_LATENCY_GRAPH());var LATENCY_HISTORY_1=__importDefault(require_LATENCY_HISTORY());var LATENCY_LATEST_1=__importDefault(require_LATENCY_LATEST());var LATENCY_RESET_1=__importDefault(require_LATENCY_RESET());var LCS_IDX_WITHMATCHLEN_1=__importDefault(require_LCS_IDX_WITHMATCHLEN());var LCS_IDX_1=__importDefault(require_LCS_IDX());var LCS_LEN_1=__importDefault(require_LCS_LEN());var LCS_1=__importDefault(require_LCS());var LINDEX_1=__importDefault(require_LINDEX());var LINSERT_1=__importDefault(require_LINSERT());var LLEN_1=__importDefault(require_LLEN());var LMOVE_1=__importDefault(require_LMOVE());var LMPOP_1=__importDefault(require_LMPOP());var LOLWUT_1=__importDefault(require_LOLWUT());var LPOP_COUNT_1=__importDefault(require_LPOP_COUNT());var LPOP_1=__importDefault(require_LPOP());var LPOS_COUNT_1=__importDefault(require_LPOS_COUNT());var LPOS_1=__importDefault(require_LPOS());var LPUSH_1=__importDefault(require_LPUSH());var LPUSHX_1=__importDefault(require_LPUSHX());var LRANGE_1=__importDefault(require_LRANGE());var LREM_1=__importDefault(require_LREM());var LSET_1=__importDefault(require_LSET());var LTRIM_1=__importDefault(require_LTRIM());var MEMORY_DOCTOR_1=__importDefault(require_MEMORY_DOCTOR());var MEMORY_MALLOC_STATS_1=__importDefault(require_MEMORY_MALLOC_STATS());var MEMORY_PURGE_1=__importDefault(require_MEMORY_PURGE());var MEMORY_STATS_1=__importDefault(require_MEMORY_STATS());var MEMORY_USAGE_1=__importDefault(require_MEMORY_USAGE());var MGET_1=__importDefault(require_MGET());var MIGRATE_1=__importDefault(require_MIGRATE());var MODULE_LIST_1=__importDefault(require_MODULE_LIST());var MODULE_LOAD_1=__importDefault(require_MODULE_LOAD());var MODULE_UNLOAD_1=__importDefault(require_MODULE_UNLOAD());var MOVE_1=__importDefault(require_MOVE());var MSET_1=__importDefault(require_MSET());var MSETNX_1=__importDefault(require_MSETNX());var OBJECT_ENCODING_1=__importDefault(require_OBJECT_ENCODING());var OBJECT_FREQ_1=__importDefault(require_OBJECT_FREQ());var OBJECT_IDLETIME_1=__importDefault(require_OBJECT_IDLETIME());var OBJECT_REFCOUNT_1=__importDefault(require_OBJECT_REFCOUNT());var PERSIST_1=__importDefault(require_PERSIST());var PEXPIRE_1=__importDefault(require_PEXPIRE());var PEXPIREAT_1=__importDefault(require_PEXPIREAT());var PEXPIRETIME_1=__importDefault(require_PEXPIRETIME());var PFADD_1=__importDefault(require_PFADD());var PFCOUNT_1=__importDefault(require_PFCOUNT());var PFMERGE_1=__importDefault(require_PFMERGE());var PING_1=__importDefault(require_PING());var PSETEX_1=__importDefault(require_PSETEX());var PTTL_1=__importDefault(require_PTTL());var PUBLISH_1=__importDefault(require_PUBLISH());var PUBSUB_CHANNELS_1=__importDefault(require_PUBSUB_CHANNELS());var PUBSUB_NUMPAT_1=__importDefault(require_PUBSUB_NUMPAT());var PUBSUB_NUMSUB_1=__importDefault(require_PUBSUB_NUMSUB());var PUBSUB_SHARDNUMSUB_1=__importDefault(require_PUBSUB_SHARDNUMSUB());var PUBSUB_SHARDCHANNELS_1=__importDefault(require_PUBSUB_SHARDCHANNELS());var RANDOMKEY_1=__importDefault(require_RANDOMKEY());var READONLY_1=__importDefault(require_READONLY());var RENAME_1=__importDefault(require_RENAME());var RENAMENX_1=__importDefault(require_RENAMENX());var REPLICAOF_1=__importDefault(require_REPLICAOF());var RESTORE_ASKING_1=__importDefault(require_RESTORE_ASKING());var RESTORE_1=__importDefault(require_RESTORE());var ROLE_1=__importDefault(require_ROLE());var RPOP_COUNT_1=__importDefault(require_RPOP_COUNT());var RPOP_1=__importDefault(require_RPOP());var RPOPLPUSH_1=__importDefault(require_RPOPLPUSH());var RPUSH_1=__importDefault(require_RPUSH());var RPUSHX_1=__importDefault(require_RPUSHX());var SADD_1=__importDefault(require_SADD());var SCAN_1=__importDefault(require_SCAN());var SCARD_1=__importDefault(require_SCARD());var SCRIPT_DEBUG_1=__importDefault(require_SCRIPT_DEBUG());var SCRIPT_EXISTS_1=__importDefault(require_SCRIPT_EXISTS());var SCRIPT_FLUSH_1=__importDefault(require_SCRIPT_FLUSH());var SCRIPT_KILL_1=__importDefault(require_SCRIPT_KILL());var SCRIPT_LOAD_1=__importDefault(require_SCRIPT_LOAD());var SDIFF_1=__importDefault(require_SDIFF());var SDIFFSTORE_1=__importDefault(require_SDIFFSTORE());var SET_1=__importDefault(require_SET());var SETBIT_1=__importDefault(require_SETBIT());var SETEX_1=__importDefault(require_SETEX());var SETNX_1=__importDefault(require_SETNX());var SETRANGE_1=__importDefault(require_SETRANGE());var SINTER_1=__importDefault(require_SINTER());var SINTERCARD_1=__importDefault(require_SINTERCARD());var SINTERSTORE_1=__importDefault(require_SINTERSTORE());var SISMEMBER_1=__importDefault(require_SISMEMBER());var SMEMBERS_1=__importDefault(require_SMEMBERS());var SMISMEMBER_1=__importDefault(require_SMISMEMBER());var SMOVE_1=__importDefault(require_SMOVE());var SORT_RO_1=__importDefault(require_SORT_RO());var SORT_STORE_1=__importDefault(require_SORT_STORE());var SORT_1=__importDefault(require_SORT());var SPOP_COUNT_1=__importDefault(require_SPOP_COUNT());var SPOP_1=__importDefault(require_SPOP());var SPUBLISH_1=__importDefault(require_SPUBLISH());var SRANDMEMBER_COUNT_1=__importDefault(require_SRANDMEMBER_COUNT());var SRANDMEMBER_1=__importDefault(require_SRANDMEMBER());var SREM_1=__importDefault(require_SREM());var SSCAN_1=__importDefault(require_SSCAN());var STRLEN_1=__importDefault(require_STRLEN());var SUNION_1=__importDefault(require_SUNION());var SUNIONSTORE_1=__importDefault(require_SUNIONSTORE());var SWAPDB_1=__importDefault(require_SWAPDB());var TIME_1=__importDefault(require_TIME());var TOUCH_1=__importDefault(require_TOUCH());var TTL_1=__importDefault(require_TTL());var TYPE_1=__importDefault(require_TYPE());var UNLINK_1=__importDefault(require_UNLINK());var WAIT_1=__importDefault(require_WAIT());var XACK_1=__importDefault(require_XACK());var XACKDEL_1=__importDefault(require_XACKDEL());var XADD_NOMKSTREAM_1=__importDefault(require_XADD_NOMKSTREAM());var XADD_1=__importDefault(require_XADD());var XAUTOCLAIM_JUSTID_1=__importDefault(require_XAUTOCLAIM_JUSTID());var XAUTOCLAIM_1=__importDefault(require_XAUTOCLAIM());var XCLAIM_JUSTID_1=__importDefault(require_XCLAIM_JUSTID());var XCLAIM_1=__importDefault(require_XCLAIM());var XDEL_1=__importDefault(require_XDEL());var XDELEX_1=__importDefault(require_XDELEX());var XGROUP_CREATE_1=__importDefault(require_XGROUP_CREATE());var XGROUP_CREATECONSUMER_1=__importDefault(require_XGROUP_CREATECONSUMER());var XGROUP_DELCONSUMER_1=__importDefault(require_XGROUP_DELCONSUMER());var XGROUP_DESTROY_1=__importDefault(require_XGROUP_DESTROY());var XGROUP_SETID_1=__importDefault(require_XGROUP_SETID());var XINFO_CONSUMERS_1=__importDefault(require_XINFO_CONSUMERS());var XINFO_GROUPS_1=__importDefault(require_XINFO_GROUPS());var XINFO_STREAM_1=__importDefault(require_XINFO_STREAM());var XLEN_1=__importDefault(require_XLEN());var XPENDING_RANGE_1=__importDefault(require_XPENDING_RANGE());var XPENDING_1=__importDefault(require_XPENDING());var XRANGE_1=__importDefault(require_XRANGE());var XREAD_1=__importDefault(require_XREAD());var XREADGROUP_1=__importDefault(require_XREADGROUP());var XREVRANGE_1=__importDefault(require_XREVRANGE());var XSETID_1=__importDefault(require_XSETID());var XTRIM_1=__importDefault(require_XTRIM());var ZADD_INCR_1=__importDefault(require_ZADD_INCR());var ZADD_1=__importDefault(require_ZADD());var ZCARD_1=__importDefault(require_ZCARD());var ZCOUNT_1=__importDefault(require_ZCOUNT());var ZDIFF_WITHSCORES_1=__importDefault(require_ZDIFF_WITHSCORES());var ZDIFF_1=__importDefault(require_ZDIFF());var ZDIFFSTORE_1=__importDefault(require_ZDIFFSTORE());var ZINCRBY_1=__importDefault(require_ZINCRBY());var ZINTER_WITHSCORES_1=__importDefault(require_ZINTER_WITHSCORES());var ZINTER_1=__importDefault(require_ZINTER());var ZINTERCARD_1=__importDefault(require_ZINTERCARD());var ZINTERSTORE_1=__importDefault(require_ZINTERSTORE());var ZLEXCOUNT_1=__importDefault(require_ZLEXCOUNT());var ZMPOP_1=__importDefault(require_ZMPOP());var ZMSCORE_1=__importDefault(require_ZMSCORE());var ZPOPMAX_COUNT_1=__importDefault(require_ZPOPMAX_COUNT());var ZPOPMAX_1=__importDefault(require_ZPOPMAX());var ZPOPMIN_COUNT_1=__importDefault(require_ZPOPMIN_COUNT());var ZPOPMIN_1=__importDefault(require_ZPOPMIN());var ZRANDMEMBER_COUNT_WITHSCORES_1=__importDefault(require_ZRANDMEMBER_COUNT_WITHSCORES());var ZRANDMEMBER_COUNT_1=__importDefault(require_ZRANDMEMBER_COUNT());var ZRANDMEMBER_1=__importDefault(require_ZRANDMEMBER());var ZRANGE_WITHSCORES_1=__importDefault(require_ZRANGE_WITHSCORES());var ZRANGE_1=__importDefault(require_ZRANGE());var ZRANGEBYLEX_1=__importDefault(require_ZRANGEBYLEX());var ZRANGEBYSCORE_WITHSCORES_1=__importDefault(require_ZRANGEBYSCORE_WITHSCORES());var ZRANGEBYSCORE_1=__importDefault(require_ZRANGEBYSCORE());var ZRANGESTORE_1=__importDefault(require_ZRANGESTORE());var ZREMRANGEBYSCORE_1=__importDefault(require_ZREMRANGEBYSCORE());var ZRANK_WITHSCORE_1=__importDefault(require_ZRANK_WITHSCORE());var ZRANK_1=__importDefault(require_ZRANK());var ZREM_1=__importDefault(require_ZREM());var ZREMRANGEBYLEX_1=__importDefault(require_ZREMRANGEBYLEX());var ZREMRANGEBYRANK_1=__importDefault(require_ZREMRANGEBYRANK());var ZREVRANK_1=__importDefault(require_ZREVRANK());var ZSCAN_1=__importDefault(require_ZSCAN());var ZSCORE_1=__importDefault(require_ZSCORE());var ZUNION_WITHSCORES_1=__importDefault(require_ZUNION_WITHSCORES());var ZUNION_1=__importDefault(require_ZUNION());var ZUNIONSTORE_1=__importDefault(require_ZUNIONSTORE());var VADD_1=__importDefault(require_VADD());var VCARD_1=__importDefault(require_VCARD());var VDIM_1=__importDefault(require_VDIM());var VEMB_1=__importDefault(require_VEMB());var VEMB_RAW_1=__importDefault(require_VEMB_RAW());var VGETATTR_1=__importDefault(require_VGETATTR());var VINFO_1=__importDefault(require_VINFO());var VLINKS_1=__importDefault(require_VLINKS());var VLINKS_WITHSCORES_1=__importDefault(require_VLINKS_WITHSCORES());var VRANDMEMBER_1=__importDefault(require_VRANDMEMBER());var VREM_1=__importDefault(require_VREM());var VSETATTR_1=__importDefault(require_VSETATTR());var VSIM_1=__importDefault(require_VSIM());var VSIM_WITHSCORES_1=__importDefault(require_VSIM_WITHSCORES());exports2.default={ACL_CAT:ACL_CAT_1.default,aclCat:ACL_CAT_1.default,ACL_DELUSER:ACL_DELUSER_1.default,aclDelUser:ACL_DELUSER_1.default,ACL_DRYRUN:ACL_DRYRUN_1.default,aclDryRun:ACL_DRYRUN_1.default,ACL_GENPASS:ACL_GENPASS_1.default,aclGenPass:ACL_GENPASS_1.default,ACL_GETUSER:ACL_GETUSER_1.default,aclGetUser:ACL_GETUSER_1.default,ACL_LIST:ACL_LIST_1.default,aclList:ACL_LIST_1.default,ACL_LOAD:ACL_LOAD_1.default,aclLoad:ACL_LOAD_1.default,ACL_LOG_RESET:ACL_LOG_RESET_1.default,aclLogReset:ACL_LOG_RESET_1.default,ACL_LOG:ACL_LOG_1.default,aclLog:ACL_LOG_1.default,ACL_SAVE:ACL_SAVE_1.default,aclSave:ACL_SAVE_1.default,ACL_SETUSER:ACL_SETUSER_1.default,aclSetUser:ACL_SETUSER_1.default,ACL_USERS:ACL_USERS_1.default,aclUsers:ACL_USERS_1.default,ACL_WHOAMI:ACL_WHOAMI_1.default,aclWhoAmI:ACL_WHOAMI_1.default,APPEND:APPEND_1.default,append:APPEND_1.default,ASKING:ASKING_1.default,asking:ASKING_1.default,AUTH:AUTH_1.default,auth:AUTH_1.default,BGREWRITEAOF:BGREWRITEAOF_1.default,bgRewriteAof:BGREWRITEAOF_1.default,BGSAVE:BGSAVE_1.default,bgSave:BGSAVE_1.default,BITCOUNT:BITCOUNT_1.default,bitCount:BITCOUNT_1.default,BITFIELD_RO:BITFIELD_RO_1.default,bitFieldRo:BITFIELD_RO_1.default,BITFIELD:BITFIELD_1.default,bitField:BITFIELD_1.default,BITOP:BITOP_1.default,bitOp:BITOP_1.default,BITPOS:BITPOS_1.default,bitPos:BITPOS_1.default,BLMOVE:BLMOVE_1.default,blMove:BLMOVE_1.default,BLMPOP:BLMPOP_1.default,blmPop:BLMPOP_1.default,BLPOP:BLPOP_1.default,blPop:BLPOP_1.default,BRPOP:BRPOP_1.default,brPop:BRPOP_1.default,BRPOPLPUSH:BRPOPLPUSH_1.default,brPopLPush:BRPOPLPUSH_1.default,BZMPOP:BZMPOP_1.default,bzmPop:BZMPOP_1.default,BZPOPMAX:BZPOPMAX_1.default,bzPopMax:BZPOPMAX_1.default,BZPOPMIN:BZPOPMIN_1.default,bzPopMin:BZPOPMIN_1.default,CLIENT_CACHING:CLIENT_CACHING_1.default,clientCaching:CLIENT_CACHING_1.default,CLIENT_GETNAME:CLIENT_GETNAME_1.default,clientGetName:CLIENT_GETNAME_1.default,CLIENT_GETREDIR:CLIENT_GETREDIR_1.default,clientGetRedir:CLIENT_GETREDIR_1.default,CLIENT_ID:CLIENT_ID_1.default,clientId:CLIENT_ID_1.default,CLIENT_INFO:CLIENT_INFO_1.default,clientInfo:CLIENT_INFO_1.default,CLIENT_KILL:CLIENT_KILL_1.default,clientKill:CLIENT_KILL_1.default,CLIENT_LIST:CLIENT_LIST_1.default,clientList:CLIENT_LIST_1.default,"CLIENT_NO-EVICT":CLIENT_NO_EVICT_1.default,clientNoEvict:CLIENT_NO_EVICT_1.default,"CLIENT_NO-TOUCH":CLIENT_NO_TOUCH_1.default,clientNoTouch:CLIENT_NO_TOUCH_1.default,CLIENT_PAUSE:CLIENT_PAUSE_1.default,clientPause:CLIENT_PAUSE_1.default,CLIENT_SETNAME:CLIENT_SETNAME_1.default,clientSetName:CLIENT_SETNAME_1.default,CLIENT_TRACKING:CLIENT_TRACKING_1.default,clientTracking:CLIENT_TRACKING_1.default,CLIENT_TRACKINGINFO:CLIENT_TRACKINGINFO_1.default,clientTrackingInfo:CLIENT_TRACKINGINFO_1.default,CLIENT_UNPAUSE:CLIENT_UNPAUSE_1.default,clientUnpause:CLIENT_UNPAUSE_1.default,CLUSTER_ADDSLOTS:CLUSTER_ADDSLOTS_1.default,clusterAddSlots:CLUSTER_ADDSLOTS_1.default,CLUSTER_ADDSLOTSRANGE:CLUSTER_ADDSLOTSRANGE_1.default,clusterAddSlotsRange:CLUSTER_ADDSLOTSRANGE_1.default,CLUSTER_BUMPEPOCH:CLUSTER_BUMPEPOCH_1.default,clusterBumpEpoch:CLUSTER_BUMPEPOCH_1.default,"CLUSTER_COUNT-FAILURE-REPORTS":CLUSTER_COUNT_FAILURE_REPORTS_1.default,clusterCountFailureReports:CLUSTER_COUNT_FAILURE_REPORTS_1.default,CLUSTER_COUNTKEYSINSLOT:CLUSTER_COUNTKEYSINSLOT_1.default,clusterCountKeysInSlot:CLUSTER_COUNTKEYSINSLOT_1.default,CLUSTER_DELSLOTS:CLUSTER_DELSLOTS_1.default,clusterDelSlots:CLUSTER_DELSLOTS_1.default,CLUSTER_DELSLOTSRANGE:CLUSTER_DELSLOTSRANGE_1.default,clusterDelSlotsRange:CLUSTER_DELSLOTSRANGE_1.default,CLUSTER_FAILOVER:CLUSTER_FAILOVER_1.default,clusterFailover:CLUSTER_FAILOVER_1.default,CLUSTER_FLUSHSLOTS:CLUSTER_FLUSHSLOTS_1.default,clusterFlushSlots:CLUSTER_FLUSHSLOTS_1.default,CLUSTER_FORGET:CLUSTER_FORGET_1.default,clusterForget:CLUSTER_FORGET_1.default,CLUSTER_GETKEYSINSLOT:CLUSTER_GETKEYSINSLOT_1.default,clusterGetKeysInSlot:CLUSTER_GETKEYSINSLOT_1.default,CLUSTER_INFO:CLUSTER_INFO_1.default,clusterInfo:CLUSTER_INFO_1.default,CLUSTER_KEYSLOT:CLUSTER_KEYSLOT_1.default,clusterKeySlot:CLUSTER_KEYSLOT_1.default,CLUSTER_LINKS:CLUSTER_LINKS_1.default,clusterLinks:CLUSTER_LINKS_1.default,CLUSTER_MEET:CLUSTER_MEET_1.default,clusterMeet:CLUSTER_MEET_1.default,CLUSTER_MYID:CLUSTER_MYID_1.default,clusterMyId:CLUSTER_MYID_1.default,CLUSTER_MYSHARDID:CLUSTER_MYSHARDID_1.default,clusterMyShardId:CLUSTER_MYSHARDID_1.default,CLUSTER_NODES:CLUSTER_NODES_1.default,clusterNodes:CLUSTER_NODES_1.default,CLUSTER_REPLICAS:CLUSTER_REPLICAS_1.default,clusterReplicas:CLUSTER_REPLICAS_1.default,CLUSTER_REPLICATE:CLUSTER_REPLICATE_1.default,clusterReplicate:CLUSTER_REPLICATE_1.default,CLUSTER_RESET:CLUSTER_RESET_1.default,clusterReset:CLUSTER_RESET_1.default,CLUSTER_SAVECONFIG:CLUSTER_SAVECONFIG_1.default,clusterSaveConfig:CLUSTER_SAVECONFIG_1.default,"CLUSTER_SET-CONFIG-EPOCH":CLUSTER_SET_CONFIG_EPOCH_1.default,clusterSetConfigEpoch:CLUSTER_SET_CONFIG_EPOCH_1.default,CLUSTER_SETSLOT:CLUSTER_SETSLOT_1.default,clusterSetSlot:CLUSTER_SETSLOT_1.default,CLUSTER_SLOTS:CLUSTER_SLOTS_1.default,clusterSlots:CLUSTER_SLOTS_1.default,COMMAND_COUNT:COMMAND_COUNT_1.default,commandCount:COMMAND_COUNT_1.default,COMMAND_GETKEYS:COMMAND_GETKEYS_1.default,commandGetKeys:COMMAND_GETKEYS_1.default,COMMAND_GETKEYSANDFLAGS:COMMAND_GETKEYSANDFLAGS_1.default,commandGetKeysAndFlags:COMMAND_GETKEYSANDFLAGS_1.default,COMMAND_INFO:COMMAND_INFO_1.default,commandInfo:COMMAND_INFO_1.default,COMMAND_LIST:COMMAND_LIST_1.default,commandList:COMMAND_LIST_1.default,COMMAND:COMMAND_1.default,command:COMMAND_1.default,CONFIG_GET:CONFIG_GET_1.default,configGet:CONFIG_GET_1.default,CONFIG_RESETASTAT:CONFIG_RESETSTAT_1.default,configResetStat:CONFIG_RESETSTAT_1.default,CONFIG_REWRITE:CONFIG_REWRITE_1.default,configRewrite:CONFIG_REWRITE_1.default,CONFIG_SET:CONFIG_SET_1.default,configSet:CONFIG_SET_1.default,COPY:COPY_1.default,copy:COPY_1.default,DBSIZE:DBSIZE_1.default,dbSize:DBSIZE_1.default,DECR:DECR_1.default,decr:DECR_1.default,DECRBY:DECRBY_1.default,decrBy:DECRBY_1.default,DEL:DEL_1.default,del:DEL_1.default,DUMP:DUMP_1.default,dump:DUMP_1.default,ECHO:ECHO_1.default,echo:ECHO_1.default,EVAL_RO:EVAL_RO_1.default,evalRo:EVAL_RO_1.default,EVAL:EVAL_1.default,eval:EVAL_1.default,EVALSHA_RO:EVALSHA_RO_1.default,evalShaRo:EVALSHA_RO_1.default,EVALSHA:EVALSHA_1.default,evalSha:EVALSHA_1.default,EXISTS:EXISTS_1.default,exists:EXISTS_1.default,EXPIRE:EXPIRE_1.default,expire:EXPIRE_1.default,EXPIREAT:EXPIREAT_1.default,expireAt:EXPIREAT_1.default,EXPIRETIME:EXPIRETIME_1.default,expireTime:EXPIRETIME_1.default,FLUSHALL:FLUSHALL_1.default,flushAll:FLUSHALL_1.default,FLUSHDB:FLUSHDB_1.default,flushDb:FLUSHDB_1.default,FCALL:FCALL_1.default,fCall:FCALL_1.default,FCALL_RO:FCALL_RO_1.default,fCallRo:FCALL_RO_1.default,FUNCTION_DELETE:FUNCTION_DELETE_1.default,functionDelete:FUNCTION_DELETE_1.default,FUNCTION_DUMP:FUNCTION_DUMP_1.default,functionDump:FUNCTION_DUMP_1.default,FUNCTION_FLUSH:FUNCTION_FLUSH_1.default,functionFlush:FUNCTION_FLUSH_1.default,FUNCTION_KILL:FUNCTION_KILL_1.default,functionKill:FUNCTION_KILL_1.default,FUNCTION_LIST_WITHCODE:FUNCTION_LIST_WITHCODE_1.default,functionListWithCode:FUNCTION_LIST_WITHCODE_1.default,FUNCTION_LIST:FUNCTION_LIST_1.default,functionList:FUNCTION_LIST_1.default,FUNCTION_LOAD:FUNCTION_LOAD_1.default,functionLoad:FUNCTION_LOAD_1.default,FUNCTION_RESTORE:FUNCTION_RESTORE_1.default,functionRestore:FUNCTION_RESTORE_1.default,FUNCTION_STATS:FUNCTION_STATS_1.default,functionStats:FUNCTION_STATS_1.default,GEOADD:GEOADD_1.default,geoAdd:GEOADD_1.default,GEODIST:GEODIST_1.default,geoDist:GEODIST_1.default,GEOHASH:GEOHASH_1.default,geoHash:GEOHASH_1.default,GEOPOS:GEOPOS_1.default,geoPos:GEOPOS_1.default,GEORADIUS_RO_WITH:GEORADIUS_RO_WITH_1.default,geoRadiusRoWith:GEORADIUS_RO_WITH_1.default,GEORADIUS_RO:GEORADIUS_RO_1.default,geoRadiusRo:GEORADIUS_RO_1.default,GEORADIUS_STORE:GEORADIUS_STORE_1.default,geoRadiusStore:GEORADIUS_STORE_1.default,GEORADIUS_WITH:GEORADIUS_WITH_1.default,geoRadiusWith:GEORADIUS_WITH_1.default,GEORADIUS:GEORADIUS_1.default,geoRadius:GEORADIUS_1.default,GEORADIUSBYMEMBER_RO_WITH:GEORADIUSBYMEMBER_RO_WITH_1.default,geoRadiusByMemberRoWith:GEORADIUSBYMEMBER_RO_WITH_1.default,GEORADIUSBYMEMBER_RO:GEORADIUSBYMEMBER_RO_1.default,geoRadiusByMemberRo:GEORADIUSBYMEMBER_RO_1.default,GEORADIUSBYMEMBER_STORE:GEORADIUSBYMEMBER_STORE_1.default,geoRadiusByMemberStore:GEORADIUSBYMEMBER_STORE_1.default,GEORADIUSBYMEMBER_WITH:GEORADIUSBYMEMBER_WITH_1.default,geoRadiusByMemberWith:GEORADIUSBYMEMBER_WITH_1.default,GEORADIUSBYMEMBER:GEORADIUSBYMEMBER_1.default,geoRadiusByMember:GEORADIUSBYMEMBER_1.default,GEOSEARCH_WITH:GEOSEARCH_WITH_1.default,geoSearchWith:GEOSEARCH_WITH_1.default,GEOSEARCH:GEOSEARCH_1.default,geoSearch:GEOSEARCH_1.default,GEOSEARCHSTORE:GEOSEARCHSTORE_1.default,geoSearchStore:GEOSEARCHSTORE_1.default,GET:GET_1.default,get:GET_1.default,GETBIT:GETBIT_1.default,getBit:GETBIT_1.default,GETDEL:GETDEL_1.default,getDel:GETDEL_1.default,GETEX:GETEX_1.default,getEx:GETEX_1.default,GETRANGE:GETRANGE_1.default,getRange:GETRANGE_1.default,GETSET:GETSET_1.default,getSet:GETSET_1.default,HDEL:HDEL_1.default,hDel:HDEL_1.default,HELLO:HELLO_1.default,hello:HELLO_1.default,HEXISTS:HEXISTS_1.default,hExists:HEXISTS_1.default,HEXPIRE:HEXPIRE_1.default,hExpire:HEXPIRE_1.default,HEXPIREAT:HEXPIREAT_1.default,hExpireAt:HEXPIREAT_1.default,HEXPIRETIME:HEXPIRETIME_1.default,hExpireTime:HEXPIRETIME_1.default,HGET:HGET_1.default,hGet:HGET_1.default,HGETALL:HGETALL_1.default,hGetAll:HGETALL_1.default,HGETDEL:HGETDEL_1.default,hGetDel:HGETDEL_1.default,HGETEX:HGETEX_1.default,hGetEx:HGETEX_1.default,HINCRBY:HINCRBY_1.default,hIncrBy:HINCRBY_1.default,HINCRBYFLOAT:HINCRBYFLOAT_1.default,hIncrByFloat:HINCRBYFLOAT_1.default,HKEYS:HKEYS_1.default,hKeys:HKEYS_1.default,HLEN:HLEN_1.default,hLen:HLEN_1.default,HMGET:HMGET_1.default,hmGet:HMGET_1.default,HPERSIST:HPERSIST_1.default,hPersist:HPERSIST_1.default,HPEXPIRE:HPEXPIRE_1.default,hpExpire:HPEXPIRE_1.default,HPEXPIREAT:HPEXPIREAT_1.default,hpExpireAt:HPEXPIREAT_1.default,HPEXPIRETIME:HPEXPIRETIME_1.default,hpExpireTime:HPEXPIRETIME_1.default,HPTTL:HPTTL_1.default,hpTTL:HPTTL_1.default,HRANDFIELD_COUNT_WITHVALUES:HRANDFIELD_COUNT_WITHVALUES_1.default,hRandFieldCountWithValues:HRANDFIELD_COUNT_WITHVALUES_1.default,HRANDFIELD_COUNT:HRANDFIELD_COUNT_1.default,hRandFieldCount:HRANDFIELD_COUNT_1.default,HRANDFIELD:HRANDFIELD_1.default,hRandField:HRANDFIELD_1.default,HSCAN:HSCAN_1.default,hScan:HSCAN_1.default,HSCAN_NOVALUES:HSCAN_NOVALUES_1.default,hScanNoValues:HSCAN_NOVALUES_1.default,HSET:HSET_1.default,hSet:HSET_1.default,HSETEX:HSETEX_1.default,hSetEx:HSETEX_1.default,HSETNX:HSETNX_1.default,hSetNX:HSETNX_1.default,HSTRLEN:HSTRLEN_1.default,hStrLen:HSTRLEN_1.default,HTTL:HTTL_1.default,hTTL:HTTL_1.default,HVALS:HVALS_1.default,hVals:HVALS_1.default,INCR:INCR_1.default,incr:INCR_1.default,INCRBY:INCRBY_1.default,incrBy:INCRBY_1.default,INCRBYFLOAT:INCRBYFLOAT_1.default,incrByFloat:INCRBYFLOAT_1.default,INFO:INFO_1.default,info:INFO_1.default,KEYS:KEYS_1.default,keys:KEYS_1.default,LASTSAVE:LASTSAVE_1.default,lastSave:LASTSAVE_1.default,LATENCY_DOCTOR:LATENCY_DOCTOR_1.default,latencyDoctor:LATENCY_DOCTOR_1.default,LATENCY_GRAPH:LATENCY_GRAPH_1.default,latencyGraph:LATENCY_GRAPH_1.default,LATENCY_HISTORY:LATENCY_HISTORY_1.default,latencyHistory:LATENCY_HISTORY_1.default,LATENCY_LATEST:LATENCY_LATEST_1.default,latencyLatest:LATENCY_LATEST_1.default,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,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({"node_modules/@redis/client/dist/lib/client/enterprise-maintenance-manager.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.emitDiagnostics=exports2.dbgMaintenance=exports2.MAINTENANCE_EVENTS=void 0;var net_1=require("net");var promises_1=require("dns/promises");var node_assert_1=__importDefault(require("node:assert"));var promises_2=require("node:timers/promises");var node_diagnostics_channel_1=__importDefault(require("node:diagnostics_channel"));exports2.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"};var dbgMaintenance=__name((...args)=>{if(!process.env.REDIS_DEBUG_MAINTENANCE)return;return console.log("[MNT]",...args)},"dbgMaintenance");exports2.dbgMaintenance=dbgMaintenance;var emitDiagnostics=__name(event=>{if(!process.env.REDIS_EMIT_DIAGNOSTICS)return;const channel=node_diagnostics_channel_1.default.channel("redis.maintenance");channel.publish(event)},"emitDiagnostics");exports2.emitDiagnostics=emitDiagnostics;var EnterpriseMaintenanceManager=class{static{__name(this,"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;const host=options.url?new URL(options.url).hostname:options.socket?.host;if(!host)return;const tls=options.socket?.tls??false;const movingEndpointType=await determineEndpoint(tls,host,options);return{cmd:["CLIENT","MAINT_NOTIFICATIONS","ON","moving-endpoint-type",movingEndpointType],errorHandler:__name(error=>{(0,exports2.dbgMaintenance)("handshake failed:",error);if(options.maintNotifications==="enabled"){throw error}},"errorHandler")}}constructor(commandsQueue,client,options){this.#commandsQueue=commandsQueue;this.#options=options;this.#client=client;this.#commandsQueue.addPushHandler(this.#onPush)}#onPush=__name(push=>{(0,exports2.dbgMaintenance)("ONPUSH:",push.map(String));if(!Array.isArray(push)||!["MOVING","MIGRATING","MIGRATED","FAILING_OVER","FAILED_OVER"].includes(String(push[0]))){return false}const type=String(push[0]);(0,exports2.emitDiagnostics)({type,timestamp:Date.now(),data:{push:push.map(String)}});switch(type){case PN.MOVING:{const afterSeconds=push[2];const url=push[3]?String(push[3]):null;(0,exports2.dbgMaintenance)("Received MOVING:",afterSeconds,url);this.#onMoving(afterSeconds,url);return true}case PN.MIGRATING:case PN.FAILING_OVER:{(0,exports2.dbgMaintenance)("Received MIGRATING|FAILING_OVER");this.#onMigrating();return true}case PN.MIGRATED:case PN.FAILED_OVER:{(0,exports2.dbgMaintenance)("Received MIGRATED|FAILED_OVER");this.#onMigrated();return true}}return false},"#onPush");#onMoving=__name(async(afterSeconds,url)=>{this.#onMigrating();let host;let 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;const waitTime=afterSeconds*1e3/2;(0,exports2.dbgMaintenance)(`Wait for ${waitTime}ms`);await(0,promises_2.setTimeout)(waitTime)}else{const split=url.split(":");host=split[0];port=Number(split[1])}(0,exports2.dbgMaintenance)("Pausing writing of new commands to old socket");this.#client._pause();(0,exports2.dbgMaintenance)("Creating new tmp client");let start=performance.now();if(this.#options.url){const u3=new URL(this.#options.url);u3.hostname=host;u3.port=String(port);this.#options.url=u3.toString()}else{this.#options.socket={...this.#options.socket,host,port}}const tmpClient=this.#client.duplicate();tmpClient.on("error",error=>{(0,exports2.dbgMaintenance)(`[ERR]`,error)});(0,exports2.dbgMaintenance)(`Tmp client created in ${(performance.now()-start).toFixed(2)}ms`);(0,exports2.dbgMaintenance)(`Set timeout for tmp client to ${this.#options.maintRelaxedSocketTimeout}`);tmpClient._maintenanceUpdate({relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout});(0,exports2.dbgMaintenance)(`Connecting tmp client: ${host}:${port}`);start=performance.now();await tmpClient.connect();(0,exports2.dbgMaintenance)(`Connected to tmp client in ${(performance.now()-start).toFixed(2)}ms`);(0,exports2.dbgMaintenance)(`Wait for all in-flight commands to complete`);await this.#commandsQueue.waitForInflightCommandsToComplete();(0,exports2.dbgMaintenance)(`In-flight commands completed`);(0,exports2.dbgMaintenance)("Swap client sockets...");const oldSocket=this.#client._ejectSocket();const newSocket=tmpClient._ejectSocket();this.#client._insertSocket(newSocket);tmpClient._insertSocket(oldSocket);tmpClient.destroy();(0,exports2.dbgMaintenance)("Swap client sockets done.");(0,exports2.dbgMaintenance)("Resume writing");this.#client._unpause();this.#onMigrated()},"#onMoving");#onMigrating=__name(()=>{this.#isMaintenance++;if(this.#isMaintenance>1){(0,exports2.dbgMaintenance)(`Timeout relaxation already done`);return}const update={relaxedCommandTimeout:this.#options.maintRelaxedCommandTimeout,relaxedSocketTimeout:this.#options.maintRelaxedSocketTimeout};this.#client._maintenanceUpdate(update)},"#onMigrating");#onMigrated=__name(()=>{this.#isMaintenance=Math.max(this.#isMaintenance-1,0);if(this.#isMaintenance>0){(0,exports2.dbgMaintenance)(`Not ready to unrelax timeouts yet`);return}const update={relaxedCommandTimeout:void 0,relaxedSocketTimeout:void 0};this.#client._maintenanceUpdate(update)},"#onMigrated")};exports2.default=EnterpriseMaintenanceManager;function isPrivateIP(ip){const version=(0,net_1.isIP)(ip);if(version===4){const 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 false}__name(isPrivateIP,"isPrivateIP");async function determineEndpoint(tlsEnabled,host,options){(0,node_assert_1.default)(options.maintEndpointType!==void 0);if(options.maintEndpointType!=="auto"){(0,exports2.dbgMaintenance)(`Determine endpoint type: ${options.maintEndpointType}`);return options.maintEndpointType}const ip=(0,net_1.isIP)(host)?host:(await(0,promises_1.lookup)(host,{family:0})).address;const isPrivate=isPrivateIP(ip);let result;if(tlsEnabled){result=isPrivate?"internal-fqdn":"external-fqdn"}else{result=isPrivate?"internal-ip":"external-ip"}(0,exports2.dbgMaintenance)(`Determine endpoint type: ${result}`);return result}__name(determineEndpoint,"determineEndpoint")}});var require_socket=__commonJS({"node_modules/@redis/client/dist/lib/client/socket.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var node_events_1=require("node:events");var node_net_1=__importDefault(require("node:net"));var node_tls_1=__importDefault(require("node:tls"));var errors_1=require_errors();var promises_1=require("node:timers/promises");var enterprise_maintenance_manager_1=require_enterprise_maintenance_manager();var RedisSocket=class extends node_events_1.EventEmitter{static{__name(this,"RedisSocket")}#initiator;#connectTimeout;#reconnectStrategy;#socketFactory;#socketTimeout;#maintenanceTimeout;#socket;#isOpen=false;get isOpen(){return this.#isOpen}#isReady=false;get isReady(){return this.#isReady}#isSocketUnrefed=false;#socketEpoch=0;get socketEpoch(){return this.#socketEpoch}constructor(initiator,options){super();this.#initiator=initiator;this.#connectTimeout=options?.connectTimeout??5e3;this.#reconnectStrategy=this.#createReconnectStrategy(options);this.#socketFactory=this.#createSocketFactory(options);this.#socketTimeout=options?.socketTimeout}#createReconnectStrategy(options){const strategy=options?.reconnectStrategy;if(strategy===false||typeof strategy==="number"){return()=>strategy}if(strategy){return(retries,cause)=>{try{const retryIn=strategy(retries,cause);if(retryIn!==false&&!(retryIn instanceof Error)&&typeof retryIn!=="number"){throw new TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`)}return retryIn}catch(err){this.emit("error",err);return this.defaultReconnectStrategy(retries,err)}}}return this.defaultReconnectStrategy}#createSocketFactory(options){if(options?.tls===true){const withDefaults2={...options,port:options?.port??6379,noDelay:options?.noDelay??true,keepAlive:options?.keepAlive??true,keepAliveInitialDelay:options?.keepAliveInitialDelay??5e3,timeout:void 0,onread:void 0,readable:true,writable:true};return{create(){return node_tls_1.default.connect(withDefaults2)},event:"secureConnect"}}if(options&&"path"in options){const withDefaults2={...options,timeout:void 0,onread:void 0,readable:true,writable:true};return{create(){return node_net_1.default.createConnection(withDefaults2)},event:"connect"}}const withDefaults={...options,port:options?.port??6379,noDelay:options?.noDelay??true,keepAlive:options?.keepAlive??true,keepAliveInitialDelay:options?.keepAliveInitialDelay??5e3,timeout:void 0,onread:void 0,readable:true,writable:true};return{create(){return node_net_1.default.createConnection(withDefaults)},event:"connect"}}#shouldReconnect(retries,cause){const retryIn=this.#reconnectStrategy(retries,cause);if(retryIn===false){this.#isOpen=false;this.emit("error",cause);return cause}else if(retryIn instanceof Error){this.#isOpen=false;this.emit("error",cause);return new errors_1.ReconnectStrategyError(retryIn,cause)}return retryIn}async connect(){if(this.#isOpen){throw new Error("Socket already opened")}this.#isOpen=true;return this.#connect()}async#connect(){let retries=0;do{try{this.#socket=await this.#createSocket();this.emit("connect");try{await this.#initiator()}catch(err){this.#socket.destroy();this.#socket=void 0;throw err}this.#isReady=true;this.#socketEpoch++;this.emit("ready")}catch(err){const 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){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Set socket timeout to ${ms}`);if(this.#maintenanceTimeout===ms){(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Socket already set maintenanceCommandTimeout to ${ms}, skipping`);return};this.#maintenanceTimeout=ms;if(ms!==void 0){this.#socket?.setTimeout(ms)}else{this.#socket?.setTimeout(this.#socketTimeout??0)}}async#createSocket(){const socket=this.#socketFactory.create();let onTimeout;if(this.#connectTimeout!==void 0){onTimeout=__name(()=>socket.destroy(new errors_1.ConnectionTimeoutError),"onTimeout");socket.once("timeout",onTimeout);socket.setTimeout(this.#connectTimeout)}if(this.#isSocketUnrefed){socket.unref()}await(0,node_events_1.once)(socket,this.#socketFactory.event);if(onTimeout){socket.removeListener("timeout",onTimeout)}if(this.#socketTimeout){socket.once("timeout",()=>{const error=this.#maintenanceTimeout?new errors_1.SocketTimeoutDuringMaintenanceError(this.#maintenanceTimeout):new errors_1.SocketTimeoutError(this.#socketTimeout);socket.destroy(error)});socket.setTimeout(this.#socketTimeout)}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));return socket}#onSocketError(err){const wasReady=this.#isReady;this.#isReady=false;this.emit("error",err);if(!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(const args of iterable){for(const toWrite of args){this.#socket.write(toWrite)}if(this.#socket.writableNeedDrain)break}this.#socket.uncork()}async quit(fn){if(!this.#isOpen){throw new errors_1.ClientClosedError}this.#isOpen=false;const reply=await fn();this.destroySocket();return reply}close(){if(!this.#isOpen){throw new errors_1.ClientClosedError}this.#isOpen=false}destroy(){if(!this.#isOpen){throw new errors_1.ClientClosedError}this.#isOpen=false;this.destroySocket()}destroySocket(){this.#isReady=false;if(this.#socket){this.#socket.destroy();this.#socket=void 0}this.emit("end")}ref(){this.#isSocketUnrefed=false;this.#socket?.ref()}unref(){this.#isSocketUnrefed=true;this.#socket?.unref()}defaultReconnectStrategy(retries,cause){if(cause instanceof errors_1.SocketTimeoutError){return false}const jitter=Math.floor(Math.random()*200);const delay=Math.min(Math.pow(2,retries)*50,2e3);return delay+jitter}};exports2.default=RedisSocket}});var require_token=__commonJS({"node_modules/@redis/client/dist/lib/authx/token.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.Token=void 0;var Token=class{static{__name(this,"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}};exports2.Token=Token}});var require_token_manager=__commonJS({"node_modules/@redis/client/dist/lib/authx/token-manager.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.TokenManager=exports2.IDPError=void 0;var token_1=require_token();var IDPError=class extends Error{static{__name(this,"IDPError")}message;isRetryable;constructor(message,isRetryable){super(message);this.message=message;this.isRetryable=isRetryable;this.name="IDPError"}};exports2.IDPError=IDPError;var TokenManager=class{static{__name(this,"TokenManager")}identityProvider;config;currentToken=null;refreshTimeout=null;listener=null;retryAttempt=0;constructor(identityProvider,config){this.identityProvider=identityProvider;this.config=config;if(this.config.expirationRefreshRatio>1){throw new Error("expirationRefreshRatio must be less than or equal to 1")}if(this.config.expirationRefreshRatio<0){throw new Error("expirationRefreshRatio must be greater or equal to 0")}}start(listener,initialDelayMs=0){if(this.listener){this.stop()}this.listener=listener;this.retryAttempt=0;this.scheduleNextRefresh(initialDelayMs);return{dispose:__name(()=>this.stop(),"dispose")}}calculateRetryDelay(){if(!this.config.retry)return 0;const{initialDelayMs,maxDelayMs,backoffMultiplier,jitterPercentage}=this.config.retry;let delay=initialDelayMs*Math.pow(backoffMultiplier,this.retryAttempt-1);delay=Math.min(delay,maxDelayMs);if(jitterPercentage){const jitterRange=delay*(jitterPercentage/100);const jitterAmount=Math.random()*jitterRange-jitterRange/2;delay+=jitterAmount}let result=Math.max(0,Math.floor(delay));return result}shouldRetry(error){if(!this.config.retry)return false;const{maxAttempts,isRetryable}=this.config.retry;if(this.retryAttempt>=maxAttempts){return false}if(isRetryable){return isRetryable(error,this.retryAttempt)}return false}isRunning(){return this.listener!==null}async refresh(){if(!this.listener){throw new 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++;const retryDelay=this.calculateRetryDelay();this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${retryDelay}ms: ${error}`,true);this.scheduleNextRefresh(retryDelay)}else{this.notifyError(error,false);this.stop()}}}handleNewToken=__name(async({token:nativeToken,ttlMs})=>{if(!this.listener){throw new Error("TokenManager is not running, but a new token was received")}const token=this.wrapAndSetCurrentToken(nativeToken,ttlMs);this.listener.onNext(token);this.scheduleNextRefresh(this.calculateRefreshTime(token))},"handleNewToken");wrapAndSetCurrentToken(nativeToken,ttlMs){const now=Date.now();const token=new token_1.Token(nativeToken,now+ttlMs,now);this.currentToken=token;return 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()){const 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){const errorMessage=error instanceof Error?error.message:String(error);if(!this.listener){throw new Error(`TokenManager is not running but received an error: ${errorMessage}`)}this.listener.onError(new IDPError(errorMessage,isRetryable))}};exports2.TokenManager=TokenManager}});var require_credentials_provider=__commonJS({"node_modules/@redis/client/dist/lib/authx/credentials-provider.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.UnableToObtainNewCredentialsError=exports2.CredentialsError=void 0;var CredentialsError=class extends Error{static{__name(this,"CredentialsError")}constructor(message){super(`Re-authentication with latest credentials failed: ${message}`);this.name="CredentialsError"}};exports2.CredentialsError=CredentialsError;var UnableToObtainNewCredentialsError=class extends Error{static{__name(this,"UnableToObtainNewCredentialsError")}constructor(message){super(`Unable to obtain new credentials : ${message}`);this.name="UnableToObtainNewCredentialsError"}};exports2.UnableToObtainNewCredentialsError=UnableToObtainNewCredentialsError}});var require_authx=__commonJS({"node_modules/@redis/client/dist/lib/authx/index.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.Token=exports2.CredentialsError=exports2.UnableToObtainNewCredentialsError=exports2.IDPError=exports2.TokenManager=void 0;var token_manager_1=require_token_manager();Object.defineProperty(exports2,"TokenManager",{enumerable:true,get:__name(function(){return token_manager_1.TokenManager},"get")});Object.defineProperty(exports2,"IDPError",{enumerable:true,get:__name(function(){return token_manager_1.IDPError},"get")});var credentials_provider_1=require_credentials_provider();Object.defineProperty(exports2,"UnableToObtainNewCredentialsError",{enumerable:true,get:__name(function(){return credentials_provider_1.UnableToObtainNewCredentialsError},"get")});Object.defineProperty(exports2,"CredentialsError",{enumerable:true,get:__name(function(){return credentials_provider_1.CredentialsError},"get")});var token_1=require_token();Object.defineProperty(exports2,"Token",{enumerable:true,get:__name(function(){return token_1.Token},"get")})}});var require_linked_list=__commonJS({"node_modules/@redis/client/dist/lib/client/linked-list.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.EmptyAwareSinglyLinkedList=exports2.SinglyLinkedList=exports2.DoublyLinkedList=void 0;var events_1=__importDefault(require("events"));var DoublyLinkedList=class{static{__name(this,"DoublyLinkedList")}#length=0;get length(){return this.#length}#head;get head(){return this.#head}#tail;get tail(){return this.#tail}push(value){++this.#length;if(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){++this.#length;if(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,prepend=false){return prepend?this.unshift(value):this.push(value)}shift(){if(this.#head===void 0)return void 0;--this.#length;const 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;--this.#length;if(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){const next=node.next;yield node;node=next}}};exports2.DoublyLinkedList=DoublyLinkedList;var SinglyLinkedList=class{static{__name(this,"SinglyLinkedList")}#length=0;get length(){return this.#length}#head;get head(){return this.#head}#tail;get tail(){return this.#tail}push(value){++this.#length;const node={value,next:void 0,removed:false};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 new Error("node already removed")}--this.#length;if(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=true}shift(){if(this.#head===void 0)return void 0;const node=this.#head;if(--this.#length===0){this.#head=this.#tail=void 0}else{this.#head=node.next}node.removed=true;return 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}}};exports2.SinglyLinkedList=SinglyLinkedList;var EmptyAwareSinglyLinkedList=class extends SinglyLinkedList{static{__name(this,"EmptyAwareSinglyLinkedList")}events=new events_1.default;reset(){const old=this.length;super.reset();if(old!==this.length&&this.length===0){this.events.emit("empty")}}shift(){const old=this.length;const ret=super.shift();if(old!==this.length&&this.length===0){this.events.emit("empty")}return ret}remove(node,parent){const old=this.length;super.remove(node,parent);if(old!==this.length&&this.length===0){this.events.emit("empty")}}};exports2.EmptyAwareSinglyLinkedList=EmptyAwareSinglyLinkedList}});var require_encoder=__commonJS({"node_modules/@redis/client/dist/lib/RESP/encoder.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var CRLF="\r\n";function encodeCommand(args){const toWrite=[];let strings="*"+args.length+CRLF;for(let i=0;i<args.length;i++){const arg=args[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 new TypeError(`"arguments[${i}]" must be of type "string | Buffer", got ${typeof arg} instead.`)}}toWrite.push(strings);return toWrite}__name(encodeCommand,"encodeCommand");exports2.default=encodeCommand}});var require_pub_sub=__commonJS({"node_modules/@redis/client/dist/lib/client/pub-sub.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.PubSub=exports2.PUBSUB_TYPE=void 0;exports2.PUBSUB_TYPE={CHANNELS:"CHANNELS",PATTERNS:"PATTERNS",SHARDED:"SHARDED"};var COMMANDS={[exports2.PUBSUB_TYPE.CHANNELS]:{subscribe:Buffer.from("subscribe"),unsubscribe:Buffer.from("unsubscribe"),message:Buffer.from("message")},[exports2.PUBSUB_TYPE.PATTERNS]:{subscribe:Buffer.from("psubscribe"),unsubscribe:Buffer.from("punsubscribe"),message:Buffer.from("pmessage")},[exports2.PUBSUB_TYPE.SHARDED]:{subscribe:Buffer.from("ssubscribe"),unsubscribe:Buffer.from("sunsubscribe"),message:Buffer.from("smessage")}};var PubSub=class _PubSub{static{__name(this,"PubSub")}static isStatusReply(reply){return COMMANDS[exports2.PUBSUB_TYPE.CHANNELS].subscribe.equals(reply[0])||COMMANDS[exports2.PUBSUB_TYPE.CHANNELS].unsubscribe.equals(reply[0])||COMMANDS[exports2.PUBSUB_TYPE.PATTERNS].subscribe.equals(reply[0])||COMMANDS[exports2.PUBSUB_TYPE.PATTERNS].unsubscribe.equals(reply[0])||COMMANDS[exports2.PUBSUB_TYPE.SHARDED].subscribe.equals(reply[0])}static isShardedUnsubscribe(reply){return COMMANDS[exports2.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=false;get isActive(){return this.#isActive}listeners={[exports2.PUBSUB_TYPE.CHANNELS]:new Map,[exports2.PUBSUB_TYPE.PATTERNS]:new Map,[exports2.PUBSUB_TYPE.SHARDED]:new Map};subscribe(type,channels,listener,returnBuffers){const args=[COMMANDS[type].subscribe],channelsArray=_PubSub.#channelsArray(channels);for(const channel of channelsArray){let channelListeners=this.listeners[type].get(channel);if(!channelListeners||channelListeners.unsubscribing){args.push(channel)}}if(args.length===1){for(const channel of channelsArray){_PubSub.#listenersSet(this.listeners[type].get(channel),returnBuffers).add(listener)}return}this.#isActive=true;this.#subscribing++;return{args,channelsCounter:args.length-1,resolve:__name(()=>{this.#subscribing--;for(const channel of channelsArray){let listeners=this.listeners[type].get(channel);if(!listeners){listeners={unsubscribing:false,buffers:new Set,strings:new Set};this.listeners[type].set(channel,listeners)}_PubSub.#listenersSet(listeners,returnBuffers).add(listener)}},"resolve"),reject:__name(()=>{this.#subscribing--;this.#updateIsActive()},"reject")}}extendChannelListeners(type,channel,listeners){if(!this.#extendChannelListeners(type,channel,listeners))return;this.#isActive=true;this.#subscribing++;return{args:[COMMANDS[type].subscribe,channel],channelsCounter:1,resolve:__name(()=>this.#subscribing--,"resolve"),reject:__name(()=>{this.#subscribing--;this.#updateIsActive()},"reject")}}#extendChannelListeners(type,channel,listeners){const existingListeners=this.listeners[type].get(channel);if(!existingListeners){this.listeners[type].set(channel,listeners);return true}for(const listener of listeners.buffers){existingListeners.buffers.add(listener)}for(const listener of listeners.strings){existingListeners.strings.add(listener)}return false}extendTypeListeners(type,listeners){const args=[COMMANDS[type].subscribe];for(const[channel,channelListeners]of listeners){if(this.#extendChannelListeners(type,channel,channelListeners)){args.push(channel)}}if(args.length===1)return;this.#isActive=true;this.#subscribing++;return{args,channelsCounter:args.length-1,resolve:__name(()=>this.#subscribing--,"resolve"),reject:__name(()=>{this.#subscribing--;this.#updateIsActive()},"reject")}}unsubscribe(type,channels,listener,returnBuffers){const listeners=this.listeners[type];if(!channels){return this.#unsubscribeCommand([COMMANDS[type].unsubscribe],NaN,()=>listeners.clear())}const channelsArray=_PubSub.#channelsArray(channels);if(!listener){return this.#unsubscribeCommand([COMMANDS[type].unsubscribe,...channelsArray],channelsArray.length,()=>{for(const channel of channelsArray){listeners.delete(channel)}})}const args=[COMMANDS[type].unsubscribe];for(const channel of channelsArray){const sets=listeners.get(channel);if(sets){let current,other;if(returnBuffers){current=sets.buffers;other=sets.strings}else{current=sets.strings;other=sets.buffers}const currentSize=current.has(listener)?current.size-1:current.size;if(currentSize!==0||other.size!==0)continue;sets.unsubscribing=true}args.push(channel)}if(args.length===1){for(const channel of channelsArray){_PubSub.#listenersSet(listeners.get(channel),returnBuffers).delete(listener)}return}return this.#unsubscribeCommand(args,args.length-1,()=>{for(const channel of channelsArray){const sets=listeners.get(channel);if(!sets)continue;(returnBuffers?sets.buffers:sets.strings).delete(listener);if(sets.buffers.size===0&&sets.strings.size===0){listeners.delete(channel)}}})}#unsubscribeCommand(args,channelsCounter,removeListeners){return{args,channelsCounter,resolve:__name(()=>{removeListeners();this.#updateIsActive()},"resolve"),reject:void 0}}#updateIsActive(){this.#isActive=this.listeners[exports2.PUBSUB_TYPE.CHANNELS].size!==0||this.listeners[exports2.PUBSUB_TYPE.PATTERNS].size!==0||this.listeners[exports2.PUBSUB_TYPE.SHARDED].size!==0||this.#subscribing!==0}reset(){this.#isActive=false;this.#subscribing=0}resubscribe(){const commands=[];for(const[type,listeners]of Object.entries(this.listeners)){if(!listeners.size)continue;this.#isActive=true;if(type===exports2.PUBSUB_TYPE.SHARDED){this.#shardedResubscribe(commands,listeners)}else{this.#normalResubscribe(commands,type,listeners)}}return commands}#normalResubscribe(commands,type,listeners){this.#subscribing++;const callback=__name(()=>this.#subscribing--,"callback");commands.push({args:[COMMANDS[type].subscribe,...listeners.keys()],channelsCounter:listeners.size,resolve:callback,reject:callback})}#shardedResubscribe(commands,listeners){const callback=__name(()=>this.#subscribing--,"callback");for(const channel of listeners.keys()){this.#subscribing++;commands.push({args:[COMMANDS[exports2.PUBSUB_TYPE.SHARDED].subscribe,channel],channelsCounter:1,resolve:callback,reject:callback})}}handleMessageReply(reply){if(COMMANDS[exports2.PUBSUB_TYPE.CHANNELS].message.equals(reply[0])){this.#emitPubSubMessage(exports2.PUBSUB_TYPE.CHANNELS,reply[2],reply[1]);return true}else if(COMMANDS[exports2.PUBSUB_TYPE.PATTERNS].message.equals(reply[0])){this.#emitPubSubMessage(exports2.PUBSUB_TYPE.PATTERNS,reply[3],reply[2],reply[1]);return true}else if(COMMANDS[exports2.PUBSUB_TYPE.SHARDED].message.equals(reply[0])){this.#emitPubSubMessage(exports2.PUBSUB_TYPE.SHARDED,reply[2],reply[1]);return true}return false}removeShardedListeners(channel){const listeners=this.listeners[exports2.PUBSUB_TYPE.SHARDED].get(channel);this.listeners[exports2.PUBSUB_TYPE.SHARDED].delete(channel);this.#updateIsActive();return listeners}removeAllListeners(){const result={[exports2.PUBSUB_TYPE.CHANNELS]:this.listeners[exports2.PUBSUB_TYPE.CHANNELS],[exports2.PUBSUB_TYPE.PATTERNS]:this.listeners[exports2.PUBSUB_TYPE.PATTERNS],[exports2.PUBSUB_TYPE.SHARDED]:this.listeners[exports2.PUBSUB_TYPE.SHARDED]};this.#updateIsActive();this.listeners[exports2.PUBSUB_TYPE.CHANNELS]=new Map;this.listeners[exports2.PUBSUB_TYPE.PATTERNS]=new Map;this.listeners[exports2.PUBSUB_TYPE.SHARDED]=new Map;return result}#emitPubSubMessage(type,message,channel,pattern){const keyString=(pattern??channel).toString(),listeners=this.listeners[type].get(keyString);if(!listeners)return;for(const listener of listeners.buffers){listener(message,channel)}if(!listeners.strings.size)return;const channelString=pattern?channel.toString():keyString,messageString=channelString==="__redis__:invalidate"?message===null?null:message.map(x=>x.toString()):message.toString();for(const listener of listeners.strings){listener(messageString,channelString)}}};exports2.PubSub=PubSub}});var require_commands_queue=__commonJS({"node_modules/@redis/client/dist/lib/client/commands-queue.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var linked_list_1=require_linked_list();var encoder_1=__importDefault(require_encoder());var decoder_1=require_decoder();var pub_sub_1=require_pub_sub();var errors_1=require_errors();var enterprise_maintenance_manager_1=require_enterprise_maintenance_manager();var PONG=Buffer.from("pong");var RESET=Buffer.from("RESET");var RESP2_PUSH_TYPE_MAPPING={...decoder_1.PUSH_TYPE_MAPPING,[decoder_1.RESP_TYPES.SIMPLE_STRING]:Buffer};var RedisCommandsQueue=class _RedisCommandsQueue{static{__name(this,"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};(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Setting maintenance command timeout to ${ms}`);this.#maintenanceCommandTimeout=ms;if(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 counter=0;const total=this.#toWrite.length;for(const node of this.#toWrite.nodes()){const command=node.value;_RedisCommandsQueue.#removeTimeoutListener(command);counter++;const newTimeout=this.#maintenanceCommandTimeout;const signal=AbortSignal.timeout(newTimeout);command.timeout={signal,listener:__name(()=>{this.#toWrite.remove(node);command.reject(new errors_1.CommandTimeoutDuringMaintenanceError(newTimeout))},"listener"),originalTimeout:command.timeout?.originalTimeout};signal.addEventListener("abort",command.timeout.listener,{once:true})};(0,enterprise_maintenance_manager_1.dbgMaintenance)(`Total of ${counter} 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 true;const isShardedUnsubscribe=pub_sub_1.PubSub.isShardedUnsubscribe(push);if(isShardedUnsubscribe&&!this.#waitingForReply.length){const channel=push[1].toString();this.#onShardedChannelMoved(channel,this.#pubSub.removeShardedListeners(channel));return true}else if(isShardedUnsubscribe||pub_sub_1.PubSub.isStatusReply(push)){const head=this.#waitingForReply.head.value;if(Number.isNaN(head.channelsCounter)&&push[2]===0||--head.channelsCounter===0){this.#waitingForReply.shift().resolve()}return true}return false}#getTypeMapping(){return this.#waitingForReply.head.value.typeMapping??{}}#initiateDecoder(){return new decoder_1.Decoder({onReply:__name(reply=>this.#onReply(reply),"onReply"),onErrorReply:__name(err=>this.#onErrorReply(err),"onErrorReply"),onPush:__name(push=>{for(const pushHandler of this.#pushHandlers){if(pushHandler(push))return}},"onPush"),getTypeMapping:__name(()=>this.#getTypeMapping(),"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(args,options){if(this.#maxLength&&this.#toWrite.length+this.#waitingForReply.length>=this.#maxLength){return Promise.reject(new Error("The queue is full"))}else if(options?.abortSignal?.aborted){return Promise.reject(new errors_1.AbortError)}return new Promise((resolve,reject)=>{let node;const value={args,chainId:options?.chainId,abort:void 0,timeout:void 0,resolve,reject,channelsCounter:void 0,typeMapping:options?.typeMapping};const timeout=this.#maintenanceCommandTimeout??options?.timeout;const wasInMaintenance=this.#maintenanceCommandTimeout!==void 0;if(timeout){const signal2=AbortSignal.timeout(timeout);value.timeout={signal:signal2,listener:__name(()=>{this.#toWrite.remove(node);value.reject(wasInMaintenance?new errors_1.CommandTimeoutDuringMaintenanceError(timeout):new errors_1.TimeoutError)},"listener"),originalTimeout:options?.timeout};signal2.addEventListener("abort",value.timeout.listener,{once:true})}const signal=options?.abortSignal;if(signal){value.abort={signal,listener:__name(()=>{this.#toWrite.remove(node);value.reject(new errors_1.AbortError)},"listener")};signal.addEventListener("abort",value.abort.listener,{once:true})}node=this.#toWrite.add(value,options?.asap)})}#addPubSubCommand(command,asap=false,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])){const{resolve,typeMapping}=this.#waitingForReply.shift(),buffer=reply[1].length===0?reply[0]:reply[1];resolve(typeMapping?.[decoder_1.RESP_TYPES.SIMPLE_STRING]===Buffer?buffer:buffer.toString());return}}return this.#onReply(reply)});this.decoder.getTypeMapping=()=>RESP2_PUSH_TYPE_MAPPING}subscribe(type,channels,listener,returnBuffers){const command=this.#pubSub.subscribe(type,channels,listener,returnBuffers);if(!command)return;this.#setupPubSubHandler();return this.#addPubSubCommand(command)}#resetDecoderCallbacks(){this.decoder.onReply=(reply=>this.#onReply(reply));this.decoder.getTypeMapping=()=>this.#getTypeMapping()}unsubscribe(type,channels,listener,returnBuffers){const command=this.#pubSub.unsubscribe(type,channels,listener,returnBuffers);if(!command)return;if(command&&this.#respVersion===2){const{resolve}=command;command.resolve=()=>{if(!this.#pubSub.isActive){this.#resetDecoderCallbacks()}resolve()}}return this.#addPubSubCommand(command)}removeAllPubSubListeners(){return this.#pubSub.removeAllListeners()}resubscribe(chainId){const commands=this.#pubSub.resubscribe();if(!commands.length)return;this.#setupPubSubHandler();return Promise.all(commands.map(command=>this.#addPubSubCommand(command,true,chainId)))}extendPubSubChannelListeners(type,channel,listeners){const command=this.#pubSub.extendChannelListeners(type,channel,listeners);if(!command)return;this.#setupPubSubHandler();return this.#addPubSubCommand(command)}extendPubSubListeners(type,listeners){const command=this.#pubSub.extendTypeListeners(type,listeners);if(!command)return;this.#setupPubSubHandler();return this.#addPubSubCommand(command)}getPubSubListeners(type){return this.#pubSub.listeners[type]}monitor(callback,options){return new Promise((resolve,reject)=>{const typeMapping=options?.typeMapping??{};this.#toWrite.add({args:["MONITOR"],chainId:options?.chainId,abort:void 0,timeout:void 0,resolve:__name(()=>{if(this.#resetFallbackOnReply){this.#resetFallbackOnReply=callback}else{this.decoder.onReply=callback}this.decoder.getTypeMapping=()=>typeMapping;resolve()},"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}toSend.args=void 0;if(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(const 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){this.resetDecoder();this.#pubSub.reset();this.#flushWaitingForReply(err);if(!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(const node of this.#toWrite){_RedisCommandsQueue.#flushToWrite(node,err)}this.#toWrite.reset()}isEmpty(){return this.#toWrite.length===0&&this.#waitingForReply.length===0}};exports2.default=RedisCommandsQueue}});var require_commander=__commonJS({"node_modules/@redis/client/dist/lib/commander.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.scriptArgumentsPrefix=exports2.functionArgumentsPrefix=exports2.getTransformReply=exports2.attachConfig=void 0;function throwResp3SearchModuleUnstableError(){throw new Error("Some RESP3 results for Redis Query Engine responses may change. Refer to the readme for guidance")}__name(throwResp3SearchModuleUnstableError,"throwResp3SearchModuleUnstableError");function attachConfig({BaseClass,commands,createCommand,createModuleCommand,createFunctionCommand,createScriptCommand,config}){const RESP=config?.RESP??2,Class=class extends BaseClass{static{__name(this,"Class")}};for(const[name,command]of Object.entries(commands)){if(config?.RESP==3&&command.unstableResp3&&!config.unstableResp3){Class.prototype[name]=throwResp3SearchModuleUnstableError}else{Class.prototype[name]=createCommand(command,RESP)}}if(config?.modules){for(const[moduleName,module3]of Object.entries(config.modules)){const fns=Object.create(null);for(const[name,command]of Object.entries(module3)){if(config.RESP==3&&command.unstableResp3&&!config.unstableResp3){fns[name]=throwResp3SearchModuleUnstableError}else{fns[name]=createModuleCommand(command,RESP)}}attachNamespace(Class.prototype,moduleName,fns)}}if(config?.functions){for(const[library,commands2]of Object.entries(config.functions)){const fns=Object.create(null);for(const[name,command]of Object.entries(commands2)){fns[name]=createFunctionCommand(name,command,RESP)}attachNamespace(Class.prototype,library,fns)}}if(config?.scripts){for(const[name,script]of Object.entries(config.scripts)){Class.prototype[name]=createScriptCommand(script,RESP)}}return Class}__name(attachConfig,"attachConfig");exports2.attachConfig=attachConfig;function attachNamespace(prototype,name,fns){Object.defineProperty(prototype,name,{get(){const value=Object.create(fns);value._self=this;Object.defineProperty(this,name,{value});return value}})}__name(attachNamespace,"attachNamespace");function getTransformReply(command,resp){switch(typeof command.transformReply){case"function":return command.transformReply;case"object":return command.transformReply[resp]}}__name(getTransformReply,"getTransformReply");exports2.getTransformReply=getTransformReply;function functionArgumentsPrefix(name,fn){const prefix=[fn.IS_READ_ONLY?"FCALL_RO":"FCALL",name];if(fn.NUMBER_OF_KEYS!==void 0){prefix.push(fn.NUMBER_OF_KEYS.toString())}return prefix}__name(functionArgumentsPrefix,"functionArgumentsPrefix");exports2.functionArgumentsPrefix=functionArgumentsPrefix;function scriptArgumentsPrefix(script){const 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}__name(scriptArgumentsPrefix,"scriptArgumentsPrefix");exports2.scriptArgumentsPrefix=scriptArgumentsPrefix}});var require_multi_command=__commonJS({"node_modules/@redis/client/dist/lib/multi-command.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var errors_1=require_errors();var RedisMultiCommand=class{static{__name(this,"RedisMultiCommand")}typeMapping;constructor(typeMapping){this.typeMapping=typeMapping}queue=[];scriptsInUse=new Set;addCommand(args,transformReply){this.queue.push({args,transformReply})}addScript(script,args,transformReply){const redisArgs=[];redisArgs.preserve=args.preserve;if(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(...args);this.addCommand(redisArgs,transformReply)}transformReplies(rawReplies){const errorIndexes=[],replies=rawReplies.map((reply,i)=>{if(reply instanceof errors_1.ErrorReply){errorIndexes.push(i);return reply}const{transformReply,args}=this.queue[i];return transformReply?transformReply(reply,args.preserve,this.typeMapping):reply});if(errorIndexes.length)throw new errors_1.MultiErrorReply(replies,errorIndexes);return replies}};exports2.default=RedisMultiCommand}});var require_multi_command2=__commonJS({"node_modules/@redis/client/dist/lib/client/multi-command.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands());var multi_command_1=__importDefault(require_multi_command());var commander_1=require_commander();var parser_1=require_parser();var RedisClientMultiCommand=class _RedisClientMultiCommand{static{__name(this,"RedisClientMultiCommand")}static#createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this.addCommand(redisArgs,transformReply)}}static#createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this._self.addCommand(redisArgs,transformReply)}}static#createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this._self.addCommand(redisArgs,transformReply)}}static#createScriptCommand(script,resp){const transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args){const parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return 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){this.#selectedDB=db;this.#multi.addCommand(["SELECT",db.toString()],transformReply);return this}select=this.SELECT;addCommand(args,transformReply){this.#multi.addCommand(args,transformReply);return this}#addScript(script,args,transformReply){this.#multi.addScript(script,args,transformReply);return this}async exec(execAsPipeline=false){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#executeMulti(this.#multi.queue,this.#selectedDB))}EXEC=this.exec;execTyped(execAsPipeline=false){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()}};exports2.default=RedisClientMultiCommand}});var require_legacy_mode=__commonJS({"node_modules/@redis/client/dist/lib/client/legacy-mode.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.RedisLegacyClient=void 0;var commander_1=require_commander();var commands_1=__importDefault(require_commands());var multi_command_1=__importDefault(require_multi_command());var RedisLegacyClient=class _RedisLegacyClient{static{__name(this,"RedisLegacyClient")}static#transformArguments(redisArgs,args){let callback;if(typeof args[args.length-1]==="function"){callback=args.pop()}_RedisLegacyClient.pushArguments(redisArgs,args);return callback}static pushArguments(redisArgs,args){for(let i=0;i<args.length;++i){const arg=args[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){const transformReply=_RedisLegacyClient.getTransformReply(command,resp);return function(...args){const redisArgs=[name],callback=_RedisLegacyClient.#transformArguments(redisArgs,args),promise=this.#client.sendCommand(redisArgs);if(!callback){promise.catch(err=>this.#client.emit("error",err));return}promise.then(reply=>callback(null,transformReply?transformReply(reply):reply)).catch(err=>callback(err))}}#client;#Multi;constructor(client){this.#client=client;const RESP=client.options?.RESP??2;for(const[name,command]of Object.entries(commands_1.default)){this[name]=_RedisLegacyClient.#createCommand(name,command,RESP)}this.#Multi=LegacyMultiCommand.factory(RESP)}sendCommand(...args){const redisArgs=[],callback=_RedisLegacyClient.#transformArguments(redisArgs,args),promise=this.#client.sendCommand(redisArgs);if(!callback){promise.catch(err=>this.#client.emit("error",err));return}promise.then(reply=>callback(null,reply)).catch(err=>callback(err))}multi(){return this.#Multi(this.#client)}};exports2.RedisLegacyClient=RedisLegacyClient;var LegacyMultiCommand=class _LegacyMultiCommand{static{__name(this,"LegacyMultiCommand")}static#createCommand(name,command,resp){const transformReply=RedisLegacyClient.getTransformReply(command,resp);return function(...args){const redisArgs=[name];RedisLegacyClient.pushArguments(redisArgs,args);this.#multi.addCommand(redisArgs,transformReply);return this}}static factory(resp){const Multi=class extends _LegacyMultiCommand{static{__name(this,"Multi")}};for(const[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(...args){const redisArgs=[];RedisLegacyClient.pushArguments(redisArgs,args);this.#multi.addCommand(redisArgs);return this}exec(cb){const promise=this.#client._executeMulti(this.#multi.queue);if(!cb){promise.catch(err=>this.#client.emit("error",err));return}promise.then(results=>cb(null,this.#multi.transformReplies(results))).catch(err=>cb?.(err))}}}});var require_cache=__commonJS({"node_modules/@redis/client/dist/lib/client/cache.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.PooledNoRedirectClientSideCache=exports2.BasicPooledClientSideCache=exports2.PooledClientSideCacheProvider=exports2.BasicClientSideCache=exports2.ClientSideCacheProvider=exports2.CacheStats=void 0;var stream_1=require("stream");var CacheStats=class _CacheStats{static{__name(this,"CacheStats")}hitCount;missCount;loadSuccessCount;loadFailureCount;totalLoadTime;evictionCount;constructor(hitCount,missCount,loadSuccessCount,loadFailureCount,totalLoadTime,evictionCount){this.hitCount=hitCount;this.missCount=missCount;this.loadSuccessCount=loadSuccessCount;this.loadFailureCount=loadFailureCount;this.totalLoadTime=totalLoadTime;this.evictionCount=evictionCount;if(hitCount<0||missCount<0||loadSuccessCount<0||loadFailureCount<0||totalLoadTime<0||evictionCount<0){throw new 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(){const requestCount=this.requestCount();return requestCount===0?1:this.hitCount/requestCount}missRate(){const requestCount=this.requestCount();return requestCount===0?0:this.missCount/requestCount}loadCount(){return this.loadSuccessCount+this.loadFailureCount}loadFailureRate(){const loadCount=this.loadCount();return loadCount===0?0:this.loadFailureCount/loadCount}averageLoadPenalty(){const 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)}};exports2.CacheStats=CacheStats;var DisabledStatsCounter=class _DisabledStatsCounter{static{__name(this,"DisabledStatsCounter")}static INSTANCE=new _DisabledStatsCounter;constructor(){}recordHits(count){}recordMisses(count){}recordLoadSuccess(loadTime){}recordLoadFailure(loadTime){}recordEvictions(count){}snapshot(){return CacheStats.empty()}};function disabledStatsCounter(){return DisabledStatsCounter.INSTANCE}__name(disabledStatsCounter,"disabledStatsCounter");var DefaultStatsCounter=class _DefaultStatsCounter{static{__name(this,"DefaultStatsCounter")}#hitCount=0;#missCount=0;#loadSuccessCount=0;#loadFailureCount=0;#totalLoadTime=0;#evictionCount=0;recordHits(count){this.#hitCount+=count}recordMisses(count){this.#missCount+=count}recordLoadSuccess(loadTime){this.#loadSuccessCount++;this.#totalLoadTime+=loadTime}recordLoadFailure(loadTime){this.#loadFailureCount++;this.#totalLoadTime+=loadTime}recordEvictions(count){this.#evictionCount+=count}snapshot(){return CacheStats.of(this.#hitCount,this.#missCount,this.#loadSuccessCount,this.#loadFailureCount,this.#totalLoadTime,this.#evictionCount)}static create(){return new _DefaultStatsCounter}};function generateCacheKey(redisArgs){const tmp=new 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("_")}__name(generateCacheKey,"generateCacheKey");var ClientSideCacheEntryBase=class{static{__name(this,"ClientSideCacheEntryBase")}#invalidated=false;#expireTime;constructor(ttl){if(ttl==0){this.#expireTime=0}else{this.#expireTime=Date.now()+ttl}}invalidate(){this.#invalidated=true}validate(){return!this.#invalidated&&(this.#expireTime==0||Date.now()<this.#expireTime)}};var ClientSideCacheEntryValue=class extends ClientSideCacheEntryBase{static{__name(this,"ClientSideCacheEntryValue")}#value;get value(){return this.#value}constructor(ttl,value){super(ttl);this.#value=value}};var ClientSideCacheEntryPromise=class extends ClientSideCacheEntryBase{static{__name(this,"ClientSideCacheEntryPromise")}#sendCommandPromise;get promise(){return this.#sendCommandPromise}constructor(ttl,sendCommandPromise){super(ttl);this.#sendCommandPromise=sendCommandPromise}};var ClientSideCacheProvider=class extends stream_1.EventEmitter{static{__name(this,"ClientSideCacheProvider")}};exports2.ClientSideCacheProvider=ClientSideCacheProvider;var BasicClientSideCache=class extends ClientSideCacheProvider{static{__name(this,"BasicClientSideCache")}#cacheKeyToEntryMap;#keyToCacheKeySetMap;ttl;maxEntries;lru;#statsCounter;recordEvictions(count){this.#statsCounter.recordEvictions(count)}recordHits(count){this.#statsCounter.recordHits(count)}recordMisses(count){this.#statsCounter.recordMisses(count)}constructor(config){super();this.#cacheKeyToEntryMap=new Map;this.#keyToCacheKeySetMap=new Map;this.ttl=config?.ttl??0;this.maxEntries=config?.maxEntries??0;this.lru=config?.evictPolicy!=="FIFO";const recordStats=config?.recordStats!==false;this.#statsCounter=recordStats?DefaultStatsCounter.create():disabledStatsCounter()}async handleCache(client,parser,fn,transformReply,typeMapping){let reply;const cacheKey=generateCacheKey(parser.redisArgs);let cacheEntry=this.get(cacheKey);if(cacheEntry){if(cacheEntry instanceof ClientSideCacheEntryValue){this.#statsCounter.recordHits(1);return structuredClone(cacheEntry.value)}else if(cacheEntry instanceof ClientSideCacheEntryPromise){this.#statsCounter.recordMisses(1);reply=await cacheEntry.promise}else{throw new Error("unknown cache entry type")}}else{this.#statsCounter.recordMisses(1);const startTime=performance.now();const promise=fn();cacheEntry=this.createPromiseEntry(client,promise);this.set(cacheKey,cacheEntry,parser.keys);try{reply=await promise;const loadTime=performance.now()-startTime;this.#statsCounter.recordLoadSuccess(loadTime)}catch(err){const loadTime=performance.now()-startTime;this.#statsCounter.recordLoadFailure(loadTime);if(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)}else{}return structuredClone(val)}trackingOn(){return["CLIENT","TRACKING","ON"]}invalidate(key){if(key===null){this.clear(false);this.emit("invalidate",key);return}const keySet=this.#keyToCacheKeySetMap.get(key.toString());if(keySet){for(const cacheKey of keySet){const entry=this.#cacheKeyToEntryMap.get(cacheKey);if(entry){entry.invalidate()}this.#cacheKeyToEntryMap.delete(cacheKey)}this.#keyToCacheKeySetMap.delete(key.toString())}this.emit("invalidate",key)}clear(resetStats=true){const oldSize=this.#cacheKeyToEntryMap.size;this.#cacheKeyToEntryMap.clear();this.#keyToCacheKeySetMap.clear();if(resetStats){if(!(this.#statsCounter instanceof DisabledStatsCounter)){this.#statsCounter=DefaultStatsCounter.create()}}else{if(oldSize>0){this.#statsCounter.recordEvictions(oldSize)}}}get(cacheKey){const val=this.#cacheKeyToEntryMap.get(cacheKey);if(val&&!val.validate()){this.delete(cacheKey);this.#statsCounter.recordEvictions(1);this.emit("cache-evict",cacheKey);return void 0}if(val!==void 0&&this.lru){this.#cacheKeyToEntryMap.delete(cacheKey);this.#cacheKeyToEntryMap.set(cacheKey,val)}return val}delete(cacheKey){const entry=this.#cacheKeyToEntryMap.get(cacheKey);if(entry){entry.invalidate();this.#cacheKeyToEntryMap.delete(cacheKey)}}has(cacheKey){return this.#cacheKeyToEntryMap.has(cacheKey)}set(cacheKey,cacheEntry,keys){let count=this.#cacheKeyToEntryMap.size;const oldEntry=this.#cacheKeyToEntryMap.get(cacheKey);if(oldEntry){count--;oldEntry.invalidate()}if(this.maxEntries>0&&count>=this.maxEntries){this.deleteOldest();this.#statsCounter.recordEvictions(1)}this.#cacheKeyToEntryMap.set(cacheKey,cacheEntry);for(const key of keys){if(!this.#keyToCacheKeySetMap.has(key.toString())){this.#keyToCacheKeySetMap.set(key.toString(),new Set)}const cacheKeySet=this.#keyToCacheKeySetMap.get(key.toString());cacheKeySet.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(){const it=this.#cacheKeyToEntryMap[Symbol.iterator]();const n=it.next();if(!n.done){const key=n.value[0];const entry=this.#cacheKeyToEntryMap.get(key);if(entry){entry.invalidate()}this.#cacheKeyToEntryMap.delete(key)}}entryEntries(){return this.#cacheKeyToEntryMap.entries()}keySetEntries(){return this.#keyToCacheKeySetMap.entries()}};exports2.BasicClientSideCache=BasicClientSideCache;var PooledClientSideCacheProvider=class extends BasicClientSideCache{static{__name(this,"PooledClientSideCacheProvider")}#disabled=false;disable(){this.#disabled=true}enable(){this.#disabled=false}get(cacheKey){if(this.#disabled){return void 0}return super.get(cacheKey)}has(cacheKey){if(this.#disabled){return false}return super.has(cacheKey)}onPoolClose(){this.clear()}};exports2.PooledClientSideCacheProvider=PooledClientSideCacheProvider;var BasicPooledClientSideCache=class extends PooledClientSideCacheProvider{static{__name(this,"BasicPooledClientSideCache")}onError(){this.clear(false)}onClose(){this.clear(false)}};exports2.BasicPooledClientSideCache=BasicPooledClientSideCache;var PooledClientSideCacheEntryValue=class extends ClientSideCacheEntryValue{static{__name(this,"PooledClientSideCacheEntryValue")}#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}};var PooledClientSideCacheEntryPromise=class extends ClientSideCacheEntryPromise{static{__name(this,"PooledClientSideCacheEntryPromise")}#creator;constructor(ttl,creator,sendCommandPromise){super(ttl,sendCommandPromise);this.#creator=creator}validate(){let ret=super.validate();return ret&&this.#creator.client.isReady&&this.#creator.client.socketEpoch==this.#creator.epoch}};var PooledNoRedirectClientSideCache=class extends BasicPooledClientSideCache{static{__name(this,"PooledNoRedirectClientSideCache")}createValueEntry(client,value){const creator={epoch:client.socketEpoch,client};return new PooledClientSideCacheEntryValue(this.ttl,creator,value)}createPromiseEntry(client,sendCommandPromise){const creator={epoch:client.socketEpoch,client};return new PooledClientSideCacheEntryPromise(this.ttl,creator,sendCommandPromise)}onError(){}onClose(){}};exports2.PooledNoRedirectClientSideCache=PooledNoRedirectClientSideCache}});var require_single_entry_cache=__commonJS({"node_modules/@redis/client/dist/lib/single-entry-cache.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var SingleEntryCache=class{static{__name(this,"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())}};exports2.default=SingleEntryCache;function makeCircularReplacer(){const seen=new WeakSet;return __name(function serialize(_,value){if(value&&typeof value==="object"){if(seen.has(value)){return"circular"}seen.add(value);return value}return value},"serialize")}__name(makeCircularReplacer,"makeCircularReplacer")}});var require_pool=__commonJS({"node_modules/@redis/client/dist/lib/client/pool.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.RedisClientPool=void 0;var commands_1=__importDefault(require_commands());var _1=__importDefault(require_client());var node_events_1=require("node:events");var linked_list_1=require_linked_list();var errors_1=require_errors();var commander_1=require_commander();var multi_command_1=__importDefault(require_multi_command2());var cache_1=require_cache();var parser_1=require_parser();var single_entry_cache_1=__importDefault(require_single_entry_cache());var RedisClientPool=class _RedisClientPool extends node_events_1.EventEmitter{static{__name(this,"RedisClientPool")}static#createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this.execute(client=>client._executeCommand(command,parser,this._commandOptions,transformReply))}}static#createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self.execute(client=>client._executeCommand(command,parser,this._self._commandOptions,transformReply))}}static#createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);return this._self.execute(client=>client._executeCommand(fn,parser,this._self._commandOptions,transformReply))}}static#createScriptCommand(script,resp){const prefix=(0,commander_1.scriptArgumentsPrefix)(script);const transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.pushVariadic(prefix);script.parseCommand(parser,...args);return 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:3e3,cleanupDelay:3e3};#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=false;get isOpen(){return this._self.#isOpen}#isClosing=false;get isClosing(){return this._self.#isClosing}#clientSideCache;get clientSideCache(){return this._self.#clientSideCache}constructor(clientOptions,options){super();this.#options={..._RedisClientPool.#DEFAULTS,...options};if(options?.clientSideCache){if(clientOptions===void 0){clientOptions={}}if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider){this.#clientSideCache=clientOptions.clientSideCache=options.clientSideCache}else{const 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){const proxy=Object.create(this._self);proxy._commandOptions=options;return proxy}#commandOptionsProxy(key,value){const proxy=Object.create(this._self);proxy._commandOptions=Object.create(this._commandOptions??null);proxy._commandOptions[key]=value;return proxy}withTypeMapping(typeMapping){return this._self.#commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._self.#commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._self.#commandOptionsProxy("asap",true)}async connect(){if(this._self.#isOpen)return;this._self.#isOpen=true;const promises=[];while(promises.length<this._self.#options.minimum){promises.push(this._self.#create())}try{await Promise.all(promises)}catch(err){this.destroy();throw err}return this}async#create(){const node=this._self.#clientsInUse.push(this._self.#clientFactory().on("error",err=>this.emit("error",err)));try{const client=node.value;await client.connect()}catch(err){this._self.#clientsInUse.remove(node);throw err}this._self.#returnClient(node)}execute(fn){return new Promise((resolve,reject)=>{const client=this._self.#idleClients.shift(),{tail}=this._self.#tasksQueue;if(!client){let timeout;if(this._self.#options.acquireTimeout>0){timeout=setTimeout(()=>{this._self.#tasksQueue.remove(task,tail);reject(new errors_1.TimeoutError("Timeout waiting for a client"))},this._self.#options.acquireTimeout)}const task=this._self.#tasksQueue.push({timeout,resolve,reject,fn});if(this.totalClients<this._self.#options.maximum){this._self.#create()}return}const node=this._self.#clientsInUse.push(client);this._self.#executeTask(node,resolve,reject,fn)})}#executeTask(node,resolve,reject,fn){const result=fn(node.value);if(result instanceof Promise){result.then(resolve,reject).finally(()=>this.#returnClient(node))}else{resolve(result);this.#returnClient(node)}}#returnClient(node){const 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(){const toDestroy=Math.min(this.#idleClients.length,this.totalClients-this.#options.minimum);for(let i=0;i<toDestroy;i++){const client=this.#idleClients.shift();client.destroy()}}sendCommand(args,options){return this.execute(client=>client.sendCommand(args,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=true;try{const promises=[];for(const client of this._self.#idleClients){promises.push(client.close())}for(const 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=false}}destroy(){for(const client of this._self.#idleClients){client.destroy()}this._self.#idleClients.reset();for(const client of this._self.#clientsInUse){client.destroy()}this._self.#clientSideCache?.onPoolClose();this._self.#clientsInUse.reset();this._self.#isOpen=false}};exports2.RedisClientPool=RedisClientPool}});var require_package=__commonJS({"node_modules/@redis/client/dist/package.json"(exports2,module2){module2.exports={name:"@redis/client",version:"5.9.0-beta.3",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({"node_modules/@redis/client/dist/lib/client/index.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};var _a;Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands());var socket_1=__importDefault(require_socket());var authx_1=require_authx();var commands_queue_1=__importDefault(require_commands_queue());var node_events_1=require("node:events");var commander_1=require_commander();var errors_1=require_errors();var node_url_1=require("node:url");var pub_sub_1=require_pub_sub();var multi_command_1=__importDefault(require_multi_command2());var HELLO_1=__importDefault(require_HELLO());var legacy_mode_1=require_legacy_mode();var pool_1=require_pool();var generic_transformers_1=require_generic_transformers();var cache_1=require_cache();var parser_1=require_parser();var single_entry_cache_1=__importDefault(require_single_entry_cache());var package_json_1=require_package();var enterprise_maintenance_manager_1=__importDefault(require_enterprise_maintenance_manager());var RedisClient=class extends node_events_1.EventEmitter{static{__name(this,"RedisClient")}static#createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._executeCommand(command,parser,this._commandOptions,transformReply)}}static#createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._executeCommand(command,parser,this._self._commandOptions,transformReply)}}static#createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);return this._self._executeCommand(fn,parser,this._self._commandOptions,transformReply)}}static#createScriptCommand(script,resp){const prefix=(0,commander_1.scriptArgumentsPrefix)(script);const transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);script.parseCommand(parser,...args);return 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){const parsed=_a.parseURL(options.url);if(options.socket){if(options.socket.tls!==void 0&&options.socket.tls!==parsed.socket.tls){throw new 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){const{hostname,port,protocol,username,password,pathname}=new node_url_1.URL(url),parsed={socket:{host:hostname,tls:false}};if(protocol!=="redis:"&&protocol!=="rediss:"){throw new TypeError("Invalid protocol")}parsed.socket.tls=protocol==="rediss:";if(port){parsed.socket.port=Number(port)}if(username){parsed.username=decodeURIComponent(username)}if(password){parsed.password=decodeURIComponent(password)}if(username||password){parsed.credentialsProvider={type:"async-credentials-provider",credentials:__name(async()=>({username:username?decodeURIComponent(username):void 0,password:password?decodeURIComponent(password):void 0}),"credentials")}}if(pathname.length>1){const database=Number(pathname.substring(1));if(isNaN(database)){throw new TypeError("Invalid pathname")}parsed.database=database}return parsed}#options;#socket;#queue;#selectedDB=0;#monitorCallback;_self=this;_commandOptions;#dirtyWatch;#watchEpoch;#clientSideCache;#credentialsSubscription=null;#paused=false;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();this.#validateOptions(options);this.#options=this.#initiateOptions(options);this.#queue=this.#initiateQueue();this.#socket=this.#initiateSocket();if(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{const cscConfig=this.#options.clientSideCache;this.#clientSideCache=new cache_1.BasicClientSideCache(cscConfig)}this.#queue.addPushHandler(push=>{if(push[0].toString()!=="invalidate")return false;if(push[1]!==null){for(const key of push[1]){this.#clientSideCache?.invalidate(key)}}else{this.#clientSideCache?.invalidate(null)}return true})}else if(options?.emitInvalidate){this.#queue.addPushHandler(push=>{if(push[0].toString()!=="invalidate")return false;if(push[1]!==null){for(const key of push[1]){this.emit("invalidate",key)}}else{this.emit("invalidate",null)}return true})}}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3){throw new Error("Client Side Caching is only supported with RESP3")}if(options?.emitInvalidate&&options?.RESP!==3){throw new Error("emitInvalidate is only supported with RESP3")}if(options?.clientSideCache&&options?.emitInvalidate){throw new Error("emitInvalidate is not supported (or necessary) when clientSideCache is enabled")}if(options?.maintNotifications&&options?.maintNotifications!=="disabled"&&options?.RESP!==3){throw new Error("Graceful Maintenance is only supported with RESP3")}}#initiateOptions(options={}){if(!options.credentialsProvider&&(options.username||options.password)){options.credentialsProvider={type:"async-credentials-provider",credentials:__name(async()=>({username:options.username,password:options.password}),"credentials")}}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){const 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=__name(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??""}))}},"reAuthenticate");#subscribeForStreamingCredentials(cp){return cp.subscribe({onNext:__name(credentials=>{this.reAuthenticate(credentials).catch(error=>{const errorMessage=error instanceof Error?error.message:String(error);cp.onReAuthenticationError(new authx_1.CredentialsError(errorMessage))})},"onNext"),onError:__name(e=>{const errorMessage=`Error from streaming credentials provider: ${e.message}`;cp.onReAuthenticationError(new authx_1.UnableToObtainNewCredentialsError(errorMessage))},"onError")})}async#handshake(chainId,asap){const promises=[];const commandsWithErrorHandlers=await this.#getHandshakeCommands();if(asap)commandsWithErrorHandlers.reverse();for(const{cmd,errorHandler}of commandsWithErrorHandlers){promises.push(this.#queue.addCommand(cmd,{chainId,asap}).catch(errorHandler))}return promises}async#getHandshakeCommands(){const commands=[];const cp=this.#options.credentialsProvider;if(this.#options.RESP){const hello={};if(cp&&cp.type==="async-credentials-provider"){const credentials=await cp.credentials();if(credentials.password){hello.AUTH={username:credentials.username??"default",password:credentials.password}}}if(cp&&cp.type==="streaming-credentials-provider"){const[credentials,disposable]=await this.#subscribeForStreamingCredentials(cp);this.#credentialsSubscription=disposable;if(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"){const 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"){const[credentials,disposable]=await this.#subscribeForStreamingCredentials(cp);this.#credentialsSubscription=disposable;if(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:__name(()=>{},"errorHandler")});commands.push({cmd:["CLIENT","SETINFO","LIB-NAME",this.#options.clientInfoTag?`node-redis(${this.#options.clientInfoTag})`:"node-redis"],errorHandler:__name(()=>{},"errorHandler")})}if(this.#clientSideCache){commands.push({cmd:this.#clientSideCache.trackingOn()})}if(this.#options?.emitInvalidate){commands.push({cmd:["CLIENT","TRACKING","ON"]})}const maintenanceHandshakeCmd=await enterprise_maintenance_manager_1.default.getHandshakeCommand(this.#options);if(maintenanceHandshakeCmd){commands.push(maintenanceHandshakeCmd)};return commands}#attachListeners(socket){socket.on("data",chunk=>{try{this.#queue.decoder.write(chunk)}catch(err){this.#queue.resetDecoder();this.emit("error",err)}}).on("error",err=>{this.emit("error",err);this.#clientSideCache?.onError();if(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(){const socketInitiator=__name(async()=>{const promises=[],chainId=Symbol("Socket Initiator");const resubscribePromise=this.#queue.resubscribe(chainId);resubscribePromise?.catch(error=>{if(error.message&&error.message.startsWith("MOVED")){this.emit("__MOVED",this._self.#queue.removeAllPubSubListeners())}});if(resubscribePromise){promises.push(resubscribePromise)}if(this.#monitorCallback){promises.push(this.#queue.monitor(this.#monitorCallback,{typeMapping:this._commandOptions?.typeMapping,chainId,asap:true}))}promises.push(...await this.#handshake(chainId,true));if(promises.length){this.#write();return Promise.all(promises)}},"socketInitiator");const socket=new socket_1.default(socketInitiator,this.#options.socket);this.#attachListeners(socket);return 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){const proxy=Object.create(this._self);proxy._commandOptions=options;return proxy}_commandOptionsProxy(key,value){const proxy=Object.create(this._self);proxy._commandOptions=Object.create(this._commandOptions??null);proxy._commandOptions[key]=value;return proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}withAbortSignal(abortSignal){return this._commandOptionsProxy("abortSignal",abortSignal)}asap(){return this._commandOptionsProxy("asap",true)}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(){await this._self.#socket.connect();return this}_ejectSocket(){const socket=this._self.#socket;this._self.#socket=null;socket.removeAllListeners();return socket}_insertSocket(socket){if(this._self.#socket){this._self._ejectSocket().destroy()}this._self.#socket=socket;this._self.#attachListeners(this._self.#socket)}_maintenanceUpdate(update){this._self.#socket.setMaintenanceTimeout(update.relaxedSocketTimeout);this._self.#queue.setMaintenanceCommandTimeout(update.relaxedCommandTimeout)}_pause(){this._self.#paused=true}_unpause(){this._self.#paused=false;this._self.#maybeScheduleWrite()}async _executeCommand(command,parser,commandOptions,transformReply){const csc=this._self.#clientSideCache;const defaultTypeMapping=this._self.#options.commandOptions===commandOptions;const fn=__name(()=>{return this.sendCommand(parser.redisArgs,commandOptions)},"fn");if(csc&&command.CACHEABLE&&defaultTypeMapping){return await csc.handleCache(this._self,parser,fn,transformReply,commandOptions?.typeMapping)}else{const reply=await fn();if(transformReply){return transformReply(reply,parser.preserve,commandOptions?.typeMapping)}return reply}}async _executeScript(script,parser,options,transformReply){const args=parser.redisArgs;let reply;try{reply=await this.sendCommand(args,options)}catch(err){if(!err?.message?.startsWith?.("NOSCRIPT"))throw err;args[0]="EVAL";args[1]=script.SCRIPT;reply=await this.sendCommand(args,options)}return transformReply?transformReply(reply,parser.preserve,options?.typeMapping):reply}sendCommand(args,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)}const opts={...this._self._commandOptions,...options};const promise=this._self.#queue.addCommand(args,opts);this._self.#scheduleWrite();return promise}async SELECT(db){await this.sendCommand(["SELECT",db.toString()]);this._self.#selectedDB=db}select=this.SELECT;#pubSubCommand(promise){if(promise===void 0)return Promise.resolve();this.#scheduleWrite();return promise}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){const reply=await this._self.sendCommand((0,generic_transformers_1.pushVariadicArguments)(["WATCH"],key));this._self.#watchEpoch??=this._self.socketEpoch;return reply}watch=this.WATCH;async UNWATCH(){const reply=await this._self.sendCommand(["UNWATCH"]);this._self.#watchEpoch=void 0;return 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)}const chainId=Symbol("Pipeline Chain"),promise=Promise.all(commands.map(({args})=>this._self.#queue.addCommand(args,{chainId,typeMapping:this._commandOptions?.typeMapping})));this._self.#scheduleWrite();const result=await promise;if(selectedDB!==void 0){this._self.#selectedDB=selectedDB}return result}async _executeMulti(commands,selectedDB){const dirtyWatch=this._self.#dirtyWatch;this._self.#dirtyWatch=void 0;const watchEpoch=this._self.#watchEpoch;this._self.#watchEpoch=void 0;if(!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")}const typeMapping=this._commandOptions?.typeMapping;const chainId=Symbol("MULTI Chain");const promises=[this._self.#queue.addCommand(["MULTI"],{chainId})];for(const{args}of commands){promises.push(this._self.#queue.addCommand(args,{chainId,typeMapping}))}promises.push(this._self.#queue.addCommand(["EXEC"],{chainId}));this._self.#scheduleWrite();const 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{const 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{const 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{const 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{const 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{const 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{const reply=await this.zScan(key,cursor,options);cursor=reply.cursor;yield reply.members}while(cursor!=="0")}async MONITOR(callback){const promise=this._self.#queue.monitor(callback,{typeMapping:this._commandOptions?.typeMapping});this._self.#scheduleWrite();await promise;this._self.#monitorCallback=callback}monitor=this.MONITOR;async reset(){const 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,false));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=false;if(this._self.#selectedDB!==(this._self.#options?.database??0)){console.warn("Returning a client with a different selected DB");shouldReset=true}if(this._self.#monitorCallback){console.warn("Returning a client with active MONITOR");shouldReset=true}if(this._self.#queue.isPubSubActive){console.warn("Returning a client with active PubSub");shouldReset=true}if(this._self.#dirtyWatch||this._self.#watchEpoch){console.warn("Returning a client with active WATCH");shouldReset=true}if(shouldReset){return this.reset()}}QUIT(){this._self.#credentialsSubscription?.dispose();this._self.#credentialsSubscription=null;return this._self.#socket.quit(async()=>{clearTimeout(this._self.#pingTimer);const quitPromise=this._self.#queue.addCommand(["QUIT"]);this._self.#scheduleWrite();return quitPromise})}quit=this.QUIT;disconnect(){return Promise.resolve(this.destroy())}close(){return new Promise(resolve=>{clearTimeout(this._self.#pingTimer);this._self.#socket.close();this._self.#clientSideCache?.onClose();if(this._self.#queue.isEmpty()){this._self.#socket.destroySocket();return resolve()}const maybeClose=__name(()=>{if(!this._self.#queue.isEmpty())return;this._self.#socket.off("data",maybeClose);this._self.#socket.destroySocket();resolve()},"maybeClose");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;exports2.default=RedisClient}});var require_lib=__commonJS({"node_modules/cluster-key-slot/lib/index.js"(exports2,module2){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];var toUTF8Array=__name(function toUTF8Array2(str){var char;var i=0;var p=0;var utf8=[];var len=str.length;for(;i<len;i++){char=str.charCodeAt(i);if(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},"toUTF8Array");var generate=module2.exports=__name(function generate2(str){var char;var i=0;var start=-1;var result=0;var resultHash=0;var utf8=typeof str==="string"?toUTF8Array(str):str;var len=utf8.length;while(i<len){char=utf8[i++];if(start===-1){if(char===123){start=i}}else if(char!==125){resultHash=lookup[(char^resultHash>>8)&255]^resultHash<<8}else if(i-1!==start){return resultHash&16383}result=lookup[(char^result>>8)&255]^result<<8}return result&16383},"generate");module2.exports.generateMulti=__name(function generateMulti(keys){var i=1;var len=keys.length;var base=generate(keys[0]);while(i<len){if(generate(keys[i++])!==base)return-1}return base},"generateMulti")}});var require_cluster_slots=__commonJS({"node_modules/@redis/client/dist/lib/cluster/cluster-slots.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};var _a;Object.defineProperty(exports2,"__esModule",{value:true});var errors_1=require_errors();var client_1=__importDefault(require_client());var pub_sub_1=require_pub_sub();var cluster_key_slot_1=__importDefault(require_lib());var cache_1=require_cache();var RedisClusterSlots=class{static{__name(this,"RedisClusterSlots")}static#SLOTS=16384;#options;#clientFactory;#emit;slots=new Array(_a.#SLOTS);masters=new Array;replicas=new Array;nodeByAddress=new Map;pubSubNode;clientSideCache;#isOpen=false;get isOpen(){return this.#isOpen}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3){throw new Error("Client Side Caching is only supported with RESP3")}}constructor(options,emit){this.#validateOptions(options);this.#options=options;if(options?.clientSideCache){if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider){this.clientSideCache=options.clientSideCache}else{this.clientSideCache=new cache_1.BasicPooledClientSideCache(options.clientSideCache)}}this.#clientFactory=client_1.default.factory(this.#options);this.#emit=emit}async connect(){if(this.#isOpen){throw new Error("Cluster already open")}this.#isOpen=true;try{await this.#discoverWithRootNodes();this.#emit("connect")}catch(err){this.#isOpen=false;throw err}}async#discoverWithRootNodes(){let start=Math.floor(Math.random()*this.#options.rootNodes.length);for(let i=start;i<this.#options.rootNodes.length;i++){if(!this.#isOpen)throw new Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}for(let i=0;i<start;i++){if(!this.#isOpen)throw new Error("Cluster closed");if(await this.#discover(this.#options.rootNodes[i]))return}throw new errors_1.RootNodesUnavailableError}#resetSlots(){this.slots=new Array(_a.#SLOTS);this.masters=[];this.replicas=[];this._randomNodeIterator=void 0}async#discover(rootNode){this.clientSideCache?.clear();this.clientSideCache?.disable();try{const addressesInUse=new Set,promises=[],eagerConnect=this.#options.minimizeConnections!==true;const shards=await this.#getShards(rootNode);this.#resetSlots();for(const{from,to,master,replicas}of shards){const shard={master:this.#initiateSlotNode(master,false,eagerConnect,addressesInUse,promises)};if(this.#options.useReplicas){shard.replicas=replicas.map(replica=>this.#initiateSlotNode(replica,true,eagerConnect,addressesInUse,promises))}for(let i=from;i<=to;i++){this.slots[i]=shard}}if(this.pubSubNode&&!addressesInUse.has(this.pubSubNode.address)){const channelsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.CHANNELS),patternsListeners=this.pubSubNode.client.getPubSubListeners(pub_sub_1.PUBSUB_TYPE.PATTERNS);this.pubSubNode.client.destroy();if(channelsListeners.size||patternsListeners.size){promises.push(this.#initiatePubSubClient({[pub_sub_1.PUBSUB_TYPE.CHANNELS]:channelsListeners,[pub_sub_1.PUBSUB_TYPE.PATTERNS]:patternsListeners}))}}for(const[address,node]of this.nodeByAddress.entries()){if(addressesInUse.has(address))continue;if(node.client){node.client.destroy()}const{pubSub}=node;if(pubSub){pubSub.client.destroy()}this.nodeByAddress.delete(address)}await Promise.all(promises);this.clientSideCache?.enable();return true}catch(err){this.#emit("error",err);return false}}async#getShards(rootNode){const options=this.#clientOptionsDefaults(rootNode);options.socket??={};options.socket.reconnectStrategy=false;options.RESP=this.#options.RESP;options.commandOptions=void 0;const 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){const address=`${shard.host}:${shard.port}`;let node=this.nodeByAddress.get(address);if(!node){node={...shard,address,readonly,client:void 0,connectPromise:void 0};if(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){const socket=this.#getNodeAddress(node.address)??{host:node.host,port:node.port};const clientInfo=Object.freeze({host:socket.host,port:socket.port});const emit=this.#emit;const client=this.#clientFactory(this.#clientOptionsDefaults({clientSideCache:this.clientSideCache,RESP:this.#options.RESP,socket,readonly})).on("error",error=>emit("node-error",error,clientInfo)).on("reconnecting",()=>emit("node-reconnecting",clientInfo)).once("ready",()=>emit("node-ready",clientInfo)).once("connect",()=>emit("node-connect",clientInfo)).once("end",()=>emit("node-disconnect",clientInfo)).on("__MOVED",async allPubSubListeners=>{await this.rediscover(client);this.#emit("__resubscribeAllPubSubListeners",allPubSubListeners)});return client}#createNodeClient(node,readonly){const 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){this.#runningRediscoverPromise??=this.#rediscover(startWith).finally(()=>{this.#runningRediscoverPromise=void 0});return 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=false;for(const 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(const master of this.masters){if(master.client){yield master.client}if(master.pubSub){yield master.pubSub.client}}for(const replica of this.replicas){if(replica.client){yield replica.client}}}async#destroy(fn){this.#isOpen=false;const promises=[];for(const client of this.#clients()){promises.push(fn(client))}if(this.pubSubNode){promises.push(fn(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())}const 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(const replica of this.replicas){yield replica}}else{i-=this.masters.length;do{yield this.replicas[i]}while(++i<this.replicas.length)}while(true){for(const master of this.masters){yield master}for(const replica of this.replicas){yield replica}}}_randomNodeIterator;getRandomNode(){this._randomNodeIterator??=this.#iterateAllNodes();return 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(true){yield slot.master;for(const replica of slot.replicas){yield replica}}}getSlotRandomNode(slotNumber){const slot=this.slots[slotNumber];if(!slot.replicas?.length){return slot.master}slot.nodesIterator??=this.#slotNodesIterator(slot);return slot.nodesIterator.next().value}getMasterByAddress(address){const 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){const 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,false);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])])}this.pubSubNode.connectPromise=void 0;return client2}).catch(err=>{this.pubSubNode=void 0;throw err})};return this.pubSubNode.connectPromise}async executeUnsubscribeCommand(unsubscribe){const client=await this.getPubSubClient();await unsubscribe(client);if(!client.isPubSubActive){client.destroy();this.pubSubNode=void 0}}getShardedPubSubClient(channel){const{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){const client=this.#createClient(master,false).on("server-sunsubscribe",async(channel,listeners)=>{try{await this.rediscover(client);const redirectTo=await this.getShardedPubSubClient(channel);await redirectTo.extendPubSubChannelListeners(pub_sub_1.PUBSUB_TYPE.SHARDED,channel,listeners)}catch(err){this.#emit("sharded-shannel-moved-error",err,channel,listeners)}});master.pubSub={client,connectPromise:client.connect().then(client2=>{master.pubSub.connectPromise=void 0;return client2}).catch(err=>{master.pubSub=void 0;throw err})};return master.pubSub.connectPromise}async executeShardedUnsubscribeCommand(channel,unsubscribe){const{master}=this.slots[(0,cluster_key_slot_1.default)(channel)];if(!master.pubSub)return;const client=master.pubSub.connectPromise?await master.pubSub.connectPromise:master.pubSub.client;await unsubscribe(client);if(!client.isPubSubActive){client.destroy();master.pubSub=void 0}}};_a=RedisClusterSlots;exports2.default=RedisClusterSlots}});var require_multi_command3=__commonJS({"node_modules/@redis/client/dist/lib/cluster/multi-command.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands());var multi_command_1=__importDefault(require_multi_command());var commander_1=require_commander();var parser_1=require_parser();var RedisClusterMultiCommand=class _RedisClusterMultiCommand{static{__name(this,"RedisClusterMultiCommand")}static#createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;const firstKey=parser.firstKey;return this.addCommand(firstKey,command.IS_READ_ONLY,redisArgs,transformReply)}}static#createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;const firstKey=parser.firstKey;return this._self.addCommand(firstKey,command.IS_READ_ONLY,redisArgs,transformReply)}}static#createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;const firstKey=parser.firstKey;return this._self.addCommand(firstKey,fn.IS_READ_ONLY,redisArgs,transformReply)}}static#createScriptCommand(script,resp){const transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args){const parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args);const scriptArgs=parser.redisArgs;scriptArgs.preserve=parser.preserve;const 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=true;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,args,transformReply){this.#setState(firstKey,isReadonly);this.#multi.addCommand(args,transformReply);return this}#addScript(firstKey,isReadonly,script,args,transformReply){this.#setState(firstKey,isReadonly);this.#multi.addScript(script,args,transformReply);return this}async exec(execAsPipeline=false){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#executeMulti(this.#firstKey,this.#isReadonly,this.#multi.queue))}EXEC=this.exec;execTyped(execAsPipeline=false){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()}};exports2.default=RedisClusterMultiCommand}});var require_cluster=__commonJS({"node_modules/@redis/client/dist/lib/cluster/index.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands());var node_events_1=require("node:events");var commander_1=require_commander();var cluster_slots_1=__importDefault(require_cluster_slots());var multi_command_1=__importDefault(require_multi_command3());var errors_1=require_errors();var parser_1=require_parser();var ASKING_1=require_ASKING();var single_entry_cache_1=__importDefault(require_single_entry_cache());var RedisCluster=class _RedisCluster extends node_events_1.EventEmitter{static{__name(this,"RedisCluster")}static#createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._execute(parser.firstKey,command.IS_READ_ONLY,this._commandOptions,(client,opts)=>client._executeCommand(command,parser,opts,transformReply))}}static#createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._execute(parser.firstKey,command.IS_READ_ONLY,this._self._commandOptions,(client,opts)=>client._executeCommand(command,parser,opts,transformReply))}}static#createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);return this._self._execute(parser.firstKey,fn.IS_READ_ONLY,this._self._commandOptions,(client,opts)=>client._executeCommand(fn,parser,opts,transformReply))}}static#createScriptCommand(script,resp){const prefix=(0,commander_1.scriptArgumentsPrefix)(script);const transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);script.parseCommand(parser,...args);return 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();this._options=options;this._slots=new cluster_slots_1.default(options,this.emit.bind(this));this.on("__resubscribeAllPubSubListeners",this.resubscribeAllPubSubListeners.bind(this));if(options?.commandOptions){this._commandOptions=options.commandOptions}}duplicate(overrides){return new(Object.getPrototypeOf(this)).constructor({...this._self._options,commandOptions:this._commandOptions,...overrides})}async connect(){await this._self._slots.connect();return this}withCommandOptions(options){const proxy=Object.create(this);proxy._commandOptions=options;return proxy}_commandOptionsProxy(key,value){const proxy=Object.create(this);proxy._commandOptions=Object.create(this._commandOptions??null);proxy._commandOptions[key]=value;return proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}_handleAsk(fn){return async(client,options)=>{const chainId=Symbol("asking chain");const opts=options?{...options}:{};opts.chainId=chainId;const ret=await Promise.all([client.sendCommand([ASKING_1.ASKING_CMD],{chainId}),fn(client,opts)]);return ret[1]}}async _execute(firstKey,isReadonly,options,fn){const maxCommandRedirections=this._options.maxCommandRedirections??16;let client=await this._slots.getClient(firstKey,isReadonly);let i=0;let myFn=fn;while(true){try{return await myFn(client,options)}catch(err){myFn=fn;if(++i>maxCommandRedirections||!(err instanceof Error)){throw err}if(err.message.startsWith("ASK")){const address=err.message.substring(err.message.lastIndexOf(" ")+1);let redirectTo=await this._slots.getMasterByAddress(address);if(!redirectTo){await this._slots.rediscover(client);redirectTo=await this._slots.getMasterByAddress(address)}if(!redirectTo){throw new Error(`Cannot find node ${address}`)}client=redirectTo;myFn=this._handleAsk(fn);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,args,options){const opts={...this._self._commandOptions,...options};return this._self._execute(firstKey,isReadonly,opts,(client,opts2)=>client.sendCommand(args,opts2))}MULTI(routing){return new this.Multi(async(firstKey,isReadonly,commands)=>{const client=await this._self._slots.getClient(firstKey,isReadonly);return client._executeMulti(commands)},async(firstKey,isReadonly,commands)=>{const client=await this._self._slots.getClient(firstKey,isReadonly);return client._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){const maxCommandRedirections=this._self._options.maxCommandRedirections??16,firstChannel=Array.isArray(channels)?channels[0]:channels;let 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(const[channel,listeners]of allListeners.CHANNELS){listeners.buffers.forEach(bufListener=>{this.subscribe(channel,bufListener,true)});listeners.strings.forEach(strListener=>{this.subscribe(channel,strListener)})};for(const[channel,listeners]of allListeners.PATTERNS){listeners.buffers.forEach(bufListener=>{this.pSubscribe(channel,bufListener,true)});listeners.strings.forEach(strListener=>{this.pSubscribe(channel,strListener)})};for(const[channel,listeners]of allListeners.SHARDED){listeners.buffers.forEach(bufListener=>{this.sSubscribe(channel,bufListener,true)});listeners.strings.forEach(strListener=>{this.sSubscribe(channel,strListener)})};}sUnsubscribe=this.SUNSUBSCRIBE;quit(){return this._self._slots.quit()}disconnect(){return this._self._slots.disconnect()}close(){this._self._slots.clientSideCache?.onPoolClose();return this._self._slots.close()}destroy(){this._self._slots.clientSideCache?.onPoolClose();return 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}};exports2.default=RedisCluster}});var require_utils=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/utils.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.createScriptCommand=exports2.createModuleCommand=exports2.createFunctionCommand=exports2.createCommand=exports2.clientSocketToNode=exports2.createNodeList=exports2.parseNode=void 0;var parser_1=require_parser();var commander_1=require_commander();function parseNode(node){if(node.flags.includes("s_down")||node.flags.includes("disconnected")||node.flags.includes("failover_in_progress")){return void 0}return{host:node.ip,port:Number(node.port)}}__name(parseNode,"parseNode");exports2.parseNode=parseNode;function createNodeList(nodes){var nodeList=[];for(const nodeData of nodes){const node=parseNode(nodeData);if(node===void 0){continue}nodeList.push(node)}return nodeList}__name(createNodeList,"createNodeList");exports2.createNodeList=createNodeList;function clientSocketToNode(socket){const s=socket;return{host:s.host,port:s.port}}__name(clientSocketToNode,"clientSocketToNode");exports2.clientSocketToNode=clientSocketToNode;function createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._execute(command.IS_READ_ONLY,client=>client._executeCommand(command,parser,this.commandOptions,transformReply))}}__name(createCommand,"createCommand");exports2.createCommand=createCommand;function createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);return this._self._execute(fn.IS_READ_ONLY,client=>client._executeCommand(fn,parser,this._self.commandOptions,transformReply))}}__name(createFunctionCommand,"createFunctionCommand");exports2.createFunctionCommand=createFunctionCommand;function createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);return this._self._execute(command.IS_READ_ONLY,client=>client._executeCommand(command,parser,this._self.commandOptions,transformReply))}}__name(createModuleCommand,"createModuleCommand");exports2.createModuleCommand=createModuleCommand;function createScriptCommand(script,resp){const prefix=(0,commander_1.scriptArgumentsPrefix)(script);const transformReply=(0,commander_1.getTransformReply)(script,resp);return async function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);script.parseCommand(parser,...args);return this._self._execute(script.IS_READ_ONLY,client=>client._executeScript(script,parser,this.commandOptions,transformReply))}}__name(createScriptCommand,"createScriptCommand");exports2.createScriptCommand=createScriptCommand}});var require_multi_commands=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/multi-commands.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands());var multi_command_1=__importDefault(require_multi_command());var commander_1=require_commander();var parser_1=require_parser();var RedisSentinelMultiCommand=class _RedisSentinelMultiCommand{static{__name(this,"RedisSentinelMultiCommand")}static _createCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this.addCommand(command.IS_READ_ONLY,redisArgs,transformReply)}}static _createModuleCommand(command,resp){const transformReply=(0,commander_1.getTransformReply)(command,resp);return function(...args){const parser=new parser_1.BasicCommandParser;command.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this._self.addCommand(command.IS_READ_ONLY,redisArgs,transformReply)}}static _createFunctionCommand(name,fn,resp){const prefix=(0,commander_1.functionArgumentsPrefix)(name,fn);const transformReply=(0,commander_1.getTransformReply)(fn,resp);return function(...args){const parser=new parser_1.BasicCommandParser;parser.push(...prefix);fn.parseCommand(parser,...args);const redisArgs=parser.redisArgs;redisArgs.preserve=parser.preserve;return this._self.addCommand(fn.IS_READ_ONLY,redisArgs,transformReply)}}static _createScriptCommand(script,resp){const transformReply=(0,commander_1.getTransformReply)(script,resp);return function(...args){const parser=new parser_1.BasicCommandParser;script.parseCommand(parser,...args);const scriptArgs=parser.redisArgs;scriptArgs.preserve=parser.preserve;return 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=true;constructor(sentinel,typeMapping){this.#multi=new multi_command_1.default(typeMapping);this.#sentinel=sentinel}#setState(isReadonly){this.#isReadonly&&=isReadonly}addCommand(isReadonly,args,transformReply){this.#setState(isReadonly);this.#multi.addCommand(args,transformReply);return this}#addScript(isReadonly,script,args,transformReply){this.#setState(isReadonly);this.#multi.addScript(script,args,transformReply);return this}async exec(execAsPipeline=false){if(execAsPipeline)return this.execAsPipeline();return this.#multi.transformReplies(await this.#sentinel._executeMulti(this.#isReadonly,this.#multi.queue))}EXEC=this.exec;execTyped(execAsPipeline=false){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()}};exports2.default=RedisSentinelMultiCommand}});var require_pub_sub_proxy=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/pub-sub-proxy.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.PubSubProxy=void 0;var node_events_1=__importDefault(require("node:events"));var pub_sub_1=require_pub_sub();var client_1=__importDefault(require_client());var PubSubProxy=class extends node_events_1.default{static{__name(this,"PubSubProxy")}#clientOptions;#onError;#node;#state;#subscriptions;constructor(clientOptions,onError){super();this.#clientOptions=clientOptions;this.#onError=onError}#createClient(){if(this.#node===void 0){throw new 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=false){const client=this.#createClient().on("error",this.#onError);const connectPromise=client.connect().then(async client2=>{if(this.#state?.client!==client2){client2.destroy();return 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){client2.destroy();return this.#state?.connectPromise}this.#state.connectPromise=void 0;return client2}).catch(err=>{this.#state=void 0;throw err});this.#state={client,connectPromise};return connectPromise}#getPubSubClient(){if(!this.#state)return this.#initiatePubSubClient();return this.#state.connectPromise??this.#state.client}async changeNode(node){this.#node=node;if(!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(true)}#executeCommand(fn){const client=this.#getPubSubClient();if(client instanceof client_1.default){return fn(client)}return client.then(client2=>{if(client2===void 0)return;return fn(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(fn){return this.#executeCommand(async client=>{const reply=await fn(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(){this.#subscriptions=void 0;if(this.#state===void 0)return;if(!this.#state.connectPromise){this.#state.client.destroy()}this.#state=void 0}};exports2.PubSubProxy=PubSubProxy}});var require_SENTINEL_MASTER=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/SENTINEL_MASTER.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,dbname){parser.push("SENTINEL","MASTER",dbname)},transformReply:{2:generic_transformers_1.transformTuplesReply,3:void 0}}}});var require_SENTINEL_MONITOR=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/SENTINEL_MONITOR.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,dbname,host,port,quorum){parser.push("SENTINEL","MONITOR",dbname,host,port,quorum)},transformReply:void 0}}});var require_SENTINEL_REPLICAS=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/SENTINEL_REPLICAS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,dbname){parser.push("SENTINEL","REPLICAS",dbname)},transformReply:{2:(reply,preserve,typeMapping)=>{const inferred=reply;const initial=[];return inferred.reduce((sentinels,x)=>{sentinels.push((0,generic_transformers_1.transformTuplesReply)(x,void 0,typeMapping));return sentinels},initial)},3:void 0}}}});var require_SENTINEL_SENTINELS=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/SENTINEL_SENTINELS.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var generic_transformers_1=require_generic_transformers();exports2.default={parseCommand(parser,dbname){parser.push("SENTINEL","SENTINELS",dbname)},transformReply:{2:(reply,preserve,typeMapping)=>{const inferred=reply;const initial=[];return inferred.reduce((sentinels,x)=>{sentinels.push((0,generic_transformers_1.transformTuplesReply)(x,void 0,typeMapping));return sentinels},initial)},3:void 0}}}});var require_SENTINEL_SET=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/SENTINEL_SET.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.default={parseCommand(parser,dbname,options){parser.push("SENTINEL","SET",dbname);for(const option of options){parser.push(option.option,option.value)}},transformReply:void 0}}});var require_commands2=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/commands/index.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var SENTINEL_MASTER_1=__importDefault(require_SENTINEL_MASTER());var SENTINEL_MONITOR_1=__importDefault(require_SENTINEL_MONITOR());var SENTINEL_REPLICAS_1=__importDefault(require_SENTINEL_REPLICAS());var SENTINEL_SENTINELS_1=__importDefault(require_SENTINEL_SENTINELS());var SENTINEL_SET_1=__importDefault(require_SENTINEL_SET());exports2.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({"node_modules/@redis/client/dist/lib/sentinel/module.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});var commands_1=__importDefault(require_commands2());exports2.default={sentinel:commands_1.default}}});var require_wait_queue=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/wait-queue.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});exports2.WaitQueue=void 0;var linked_list_1=require_linked_list();var WaitQueue=class{static{__name(this,"WaitQueue")}#list=new linked_list_1.SinglyLinkedList;#queue=new linked_list_1.SinglyLinkedList;push(value){const 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))}};exports2.WaitQueue=WaitQueue}});var require_sentinel=__commonJS({"node_modules/@redis/client/dist/lib/sentinel/index.js"(exports2){"use strict";var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.RedisSentinelFactory=exports2.RedisSentinelClient=void 0;var node_events_1=require("node:events");var client_1=__importDefault(require_client());var commander_1=require_commander();var commands_1=__importDefault(require_commands());var utils_1=require_utils();var multi_commands_1=__importDefault(require_multi_commands());var pub_sub_proxy_1=require_pub_sub_proxy();var promises_1=require("node:timers/promises");var module_1=__importDefault(require_module());var wait_queue_1=require_wait_queue();var cache_1=require_cache();var RedisSentinelClient=class _RedisSentinelClient{static{__name(this,"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){const 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});SentinelClient.prototype.Multi=multi_commands_1.default.extend(config);return(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){const proxy=Object.create(this);proxy._commandOptions=options;return proxy}_commandOptionsProxy(key,value){const proxy=Object.create(this);proxy._commandOptions=Object.create(this._self.#commandOptions??null);proxy._commandOptions[key]=value;return proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}async _execute(isReadonly,fn){if(this._self.#clientInfo===void 0){throw new Error("Attempted execution on released RedisSentinelClient lease")}return await this._self.#internal.execute(fn,this._self.#clientInfo)}async sendCommand(isReadonly,args,options){return this._execute(isReadonly,client=>client.sendCommand(args,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 new Error("Attempted execution on released RedisSentinelClient lease")}return this._execute(false,client=>client.watch(key))}watch=this.WATCH;UNWATCH(){if(this._self.#clientInfo===void 0){throw new Error("Attempted execution on released RedisSentinelClient lease")}return this._execute(false,client=>client.unwatch())}unwatch=this.UNWATCH;release(){if(this._self.#clientInfo===void 0){throw new Error("RedisSentinelClient lease already released")}const result=this._self.#internal.releaseClientLease(this._self.#clientInfo);this._self.#clientInfo=void 0;return result}};exports2.RedisSentinelClient=RedisSentinelClient;var RedisSentinel=class _RedisSentinel extends node_events_1.EventEmitter{static{__name(this,"RedisSentinel")}_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=__name(()=>{},"#trace");#reservedClientInfo;#masterClientCount=0;#masterClientInfo;get clientSideCache(){return this._self.#internal.clientSideCache}constructor(options){super();this._self=this;this.#options=options;if(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){const 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});Sentinel.prototype.Multi=multi_commands_1.default.extend(config);return options=>{return Object.create(new Sentinel(options))}}static create(options){return _RedisSentinel.factory(options)(options)}withCommandOptions(options){const proxy=Object.create(this);proxy._commandOptions=options;return proxy}_commandOptionsProxy(key,value){const proxy=Object.create(this);proxy._self.#commandOptions={...this._self.#commandOptions||{},[key]:value};return proxy}withTypeMapping(typeMapping){return this._commandOptionsProxy("typeMapping",typeMapping)}async connect(){await this._self.#internal.connect();if(this._self.#options.reserveClient){this._self.#reservedClientInfo=await this._self.#internal.getClientLease()}return this}async _execute(isReadonly,fn){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(fn,clientInfo)}finally{if(clientInfo!==void 0&&clientInfo===this._self.#masterClientInfo&&--this._self.#masterClientCount===0){const promise=this._self.#internal.releaseClientLease(clientInfo);this._self.#masterClientInfo=void 0;if(promise)await promise}}}async use(fn){const clientInfo=await this._self.#internal.getClientLease();try{return await fn(RedisSentinelClient.create(this._self.#options,this._self.#internal,clientInfo,this._self.#commandOptions))}finally{const promise=this._self.#internal.releaseClientLease(clientInfo);if(promise)await promise}}async sendCommand(isReadonly,args,options){return this._execute(isReadonly,client=>client.sendCommand(args,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(){const 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(tracer){if(tracer){this._self.#trace=msg=>{tracer.push(msg)}}else{this._self.#trace=()=>{}}this._self.#internal.setTracer(tracer)}};exports2.default=RedisSentinel;var RedisSentinelInternal=class extends node_events_1.EventEmitter{static{__name(this,"RedisSentinelInternal")}#isOpen=false;get isOpen(){return this.#isOpen}#isReady=false;get isReady(){return this.#isReady}#name;#nodeClientOptions;#sentinelClientOptions;#scanInterval;#passthroughClientErrorEvents;#RESP;#anotherReset=false;#configEpoch=0;#sentinelRootNodes;#sentinelClient;#masterClients=[];#masterClientQueue;#masterPoolSize;#replicaClients=[];#replicaClientsIdx=0;#replicaPoolSize;get useReplicas(){return this.#replicaPoolSize>0}#connectPromise;#maxCommandRediscovers;#pubSubProxy;#scanTimer;#destroy=false;#trace=__name(()=>{},"#trace");#clientSideCache;get clientSideCache(){return this.#clientSideCache}#validateOptions(options){if(options?.clientSideCache&&options?.RESP!==3){throw new Error("Client Side Caching is only supported with RESP3")}}constructor(options){super();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??false;this.#nodeClientOptions=options.nodeClientOptions?{...options.nodeClientOptions}:{};if(this.#nodeClientOptions.url!==void 0){throw new Error("invalid nodeClientOptions for Sentinel")}if(options.clientSideCache){if(options.clientSideCache instanceof cache_1.PooledClientSideCacheProvider){this.#clientSideCache=this.#nodeClientOptions.clientSideCache=options.clientSideCache}else{const cscConfig=options.clientSideCache;this.#clientSideCache=this.#nodeClientOptions.clientSideCache=new cache_1.BasicPooledClientSideCache(cscConfig)}}this.#sentinelClientOptions=options.sentinelClientOptions?Object.assign({},options.sentinelClientOptions):{};this.#sentinelClientOptions.modules=module_1.default;if(this.#sentinelClientOptions.url!==void 0){throw new 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(){const id=this.#masterClientQueue.shift();if(id!==void 0){return{id}}return this.#masterClientQueue.wait().then(id2=>({id:id2}))}releaseClientLease(clientInfo){const client=this.#masterClients[clientInfo.id];if(client!==void 0){const dirtyPromise=client.resetIfDirty();if(dirtyPromise){return dirtyPromise.then(()=>this.#masterClientQueue.push(clientInfo.id))}}this.#masterClientQueue.push(clientInfo.id)}async connect(){if(this.#isOpen){throw new Error("already attempting to open")}try{this.#isOpen=true;this.#connectPromise=this.#connect();await this.#connectPromise;this.#isReady=true}finally{this.#connectPromise=void 0;if(this.#scanInterval>0){this.#scanTimer=setInterval(this.#reset.bind(this),this.#scanInterval)}}}async#connect(){let count=0;while(true){this.#trace("starting connect loop");count+=1;if(this.#destroy){this.#trace("in #connect and want to destroy");return}try{this.#anotherReset=false;await this.transform(this.analyze(await this.observe()));if(this.#anotherReset){this.#trace("#connect: anotherReset is true, so continuing");continue}this.#trace("#connect: returning");return}catch(e){this.#trace(`#connect: exception ${e.message}`);if(!this.#isReady&&count>this.#maxCommandRediscovers){throw e}if(e.message!=="no valid master node"){console.log(e)}await(0,promises_1.setTimeout)(1e3)}finally{this.#trace("finished connect")}}}async execute(fn,clientInfo){let iter=0;while(true){if(this.#connectPromise!==void 0){await this.#connectPromise}const client=this.#getClient(clientInfo);if(!client.isReady){await this.#reset();continue}const sockOpts=client.options?.socket;this.#trace("attemping to send command to "+sockOpts?.host+":"+sockOpts?.port);try{return await fn(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){await client.pSubscribe(["switch-master","[-+]sdown","+slave","+sentinel","[-+]odown","+slave-reconf-done"],(message,channel)=>{this.#handlePubSubControlChannel(channel,message)},true);return 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 new Error("no replicas available for read")}return this.#replicaClients[this.#replicaClientsIdx++]}async#reset(){if(this.#isReady==false||this.#destroy==true){return}if(this.#connectPromise!==void 0){this.#anotherReset=true;return await this.#connectPromise}try{this.#connectPromise=this.#connect();return await this.#connectPromise}finally{this.#trace("finished reconfgure");this.#connectPromise=void 0}}#handleSentinelFailure(node){const 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(){this.#destroy=true;if(this.#connectPromise!=void 0){await this.#connectPromise}this.#isReady=false;this.#clientSideCache?.onPoolClose();if(this.#scanTimer){clearInterval(this.#scanTimer);this.#scanTimer=void 0}const promises=[];if(this.#sentinelClient!==void 0){if(this.#sentinelClient.isOpen){promises.push(this.#sentinelClient.close())}this.#sentinelClient=void 0}for(const client of this.#masterClients){if(client.isOpen){promises.push(client.close())}}this.#masterClients=[];for(const client of this.#replicaClients){if(client.isOpen){promises.push(client.close())}}this.#replicaClients=[];await Promise.all(promises);this.#pubSubProxy.destroy();this.#isOpen=false}async destroy(){this.#destroy=true;if(this.#connectPromise!=void 0){await this.#connectPromise}this.#isReady=false;this.#clientSideCache?.onPoolClose();if(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(const client of this.#masterClients){if(client.isOpen){client.destroy()}}this.#masterClients=[];for(const client of this.#replicaClients){if(client.isOpen){client.destroy()}}this.#replicaClients=[];this.#pubSubProxy.destroy();this.#isOpen=false;this.#destroy=false}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(const 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,false);client.on("error",err=>this.emit("error",`obseve client error: ${err}`));await client.connect();this.#trace(`observe: connected to sentinel`);const[sentinelData,masterData,replicaData]=await Promise.all([client.sentinel.sentinelSentinels(this.#name),client.sentinel.sentinelMaster(this.#name),client.sentinel.sentinelReplicas(this.#name)]);this.#trace("observe: got all sentinel data");const ret={sentinelConnected:node,sentinelData,masterData,replicaData,currentMaster:this.getMasterNode(),currentReplicas:this.getReplicaNodes(),currentSentinel:this.getSentinelNode(),replicaPoolSize:this.#replicaPoolSize,useReplicas:this.useReplicas};return ret}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()}}}this.#trace(`observe: none of the sentinels are available`);throw new Error("None of the sentinels are available")}analyze(observed){let master=(0,utils_1.parseNode)(observed.masterData);if(master===void 0){this.#trace(`analyze: no valid master node because ${observed.masterData.flags}`);throw new 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}`)}const replicasToClose=[];const replicasToOpen=new Map;const desiredSet=new Set;const seen=new Set;if(observed.useReplicas){const replicaList=(0,utils_1.createNodeList)(observed.replicaData);for(const node of replicaList){desiredSet.add(JSON.stringify(node))}for(const[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{seen.add(JSON.stringify(node));if(value!=observed.replicaPoolSize){replicasToOpen.set(node,observed.replicaPoolSize-value);this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`)}}}for(const node of replicaList){if(!seen.has(JSON.stringify(node))){replicasToOpen.set(node,observed.replicaPoolSize);this.#trace(`analyze: adding ${node.host}:${node.port} to replicsToOpen`)}}}const ret={sentinelList:[observed.sentinelConnected].concat((0,utils_1.createNodeList)(observed.sentinelData)),epoch:Number(observed.masterData["config-epoch"]),sentinelToOpen:sentinel,masterToOpen:master,replicasToClose,replicasToOpen};return ret}async transform(analyzed){this.#trace("transform: enter");let promises=[];if(analyzed.sentinelToOpen){this.#trace(`transform: opening a new sentinel`);if(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}`);const node=analyzed.sentinelToOpen;const client=this.#createClient(analyzed.sentinelToOpen,this.#sentinelClientOptions,false);client.on("error",err=>{if(this.#passthroughClientErrorEvents){this.emit("error",new Error(`Sentinel Client (${node.host}:${node.port}): ${err.message}`,{cause:err}))}const 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`);const promise=this.#sentinelClient.connect().then(client2=>{return this.#createPubSub(client2)});promises.push(promise);this.#trace(`created sentinel client to ${analyzed.sentinelToOpen.host}:${analyzed.sentinelToOpen.port}`);const event={type:"SENTINEL_CHANGE",node:analyzed.sentinelToOpen};this.#trace(`transform: emiting topology-change event for sentinel_change`);if(!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`);const masterPromises=[];const masterWatches=[];this.#trace(`transform: destroying old masters if open`);for(const client of this.#masterClients){masterWatches.push(client.isWatching||client.isDirtyWatch);if(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++){const node=analyzed.masterToOpen;const client=this.#createClient(analyzed.masterToOpen,this.#nodeClientOptions);client.on("error",err=>{if(this.#passthroughClientErrorEvents){this.emit("error",new Error(`Master Client (${node.host}:${node.port}): ${err.message}`,{cause:err}))}const event2={type:"MASTER",node:(0,utils_1.clientSocketToNode)(client.options.socket),error:err};this.emit("client-error",event2)});if(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);const event={type:"MASTER_CHANGE",node:analyzed.masterToOpen};this.#trace(`transform: emiting topology-change event for master_change`);if(!this.emit("topology-change",event)){this.#trace(`transform: emit for topology-change for master_change returned false`)}this.#configEpoch++}const replicaCloseSet=new Set;for(const node of analyzed.replicasToClose){const str=JSON.stringify(node);replicaCloseSet.add(str)}const newClientList=[];const removedSet=new Set;for(const replica of this.#replicaClients){const node=(0,utils_1.clientSocketToNode)(replica.options.socket);const str=JSON.stringify(node);if(replicaCloseSet.has(str)||!replica.isOpen){if(replica.isOpen){const sockOpts=replica.options?.socket;this.#trace(`destroying replica client to ${sockOpts?.host}:${sockOpts?.port}`);replica.destroy()}if(!removedSet.has(str)){const event={type:"REPLICA_REMOVE",node};this.emit("topology-change",event);removedSet.add(str)}}else{newClientList.push(replica)}}this.#replicaClients=newClientList;if(analyzed.replicasToOpen.size!=0){for(const[node,size]of analyzed.replicasToOpen){for(let i=0;i<size;i++){const client=this.#createClient(node,this.#nodeClientOptions);client.on("error",err=>{if(this.#passthroughClientErrorEvents){this.emit("error",new Error(`Replica Client (${node.host}:${node.port}): ${err.message}`,{cause:err}))}const 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}`)}const event={type:"REPLICA_ADD",node};this.emit("topology-change",event)}}if(analyzed.sentinelList.length!=this.#sentinelRootNodes.length){this.#sentinelRootNodes=analyzed.sentinelList;const 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 void 0}for(const master of this.#masterClients){if(master.isReady){return(0,utils_1.clientSocketToNode)(master.options.socket)}}return void 0}getSentinelNode(){if(this.#sentinelClient===void 0){return void 0}return(0,utils_1.clientSocketToNode)(this.#sentinelClient.options.socket)}getReplicaNodes(){const ret=new Map;const initialMap=new Map;for(const replica of this.#replicaClients){const node=(0,utils_1.clientSocketToNode)(replica.options.socket);const hash=JSON.stringify(node);if(replica.isReady){initialMap.set(hash,(initialMap.get(hash)??0)+1)}else{if(!initialMap.has(hash)){initialMap.set(hash,0)}}}for(const[key,value]of initialMap){ret.set(JSON.parse(key),value)}return ret}setTracer(tracer){if(tracer){this.#trace=msg=>{tracer.push(msg)}}else{this.#trace=()=>{}}}};var RedisSentinelFactory=class extends node_events_1.EventEmitter{static{__name(this,"RedisSentinelFactory")}options;#sentinelRootNodes;#replicaIdx=-1;constructor(options){super();this.options=options;this.#sentinelRootNodes=options.sentinelRootNodes}async updateSentinelRootNodes(){for(const node of this.#sentinelRootNodes){const client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:false},modules:module_1.default}).on("error",err=>this.emit(`updateSentinelRootNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen){client.destroy()}continue}try{const sentinelData=await client.sentinel.sentinelSentinels(this.options.name);this.#sentinelRootNodes=[node].concat((0,utils_1.createNodeList)(sentinelData));return}finally{client.destroy()}}throw new Error("Couldn't connect to any sentinel node")}async getMasterNode(){let connected=false;for(const node of this.#sentinelRootNodes){const client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:false},modules:module_1.default}).on("error",err=>this.emit(`getMasterNode: ${err}`));try{await client.connect()}catch{if(client.isOpen){client.destroy()}continue}connected=true;try{const masterData=await client.sentinel.sentinelMaster(this.options.name);let master=(0,utils_1.parseNode)(masterData);if(master===void 0){continue}return master}finally{client.destroy()}}if(connected){throw new Error("Master Node Not Enumerated")}throw new Error("couldn't connect to any sentinels")}async getMasterClient(){const 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=false;for(const node of this.#sentinelRootNodes){const client=client_1.default.create({...this.options.sentinelClientOptions,socket:{...this.options.sentinelClientOptions?.socket,host:node.host,port:node.port,reconnectStrategy:false},modules:module_1.default}).on("error",err=>this.emit(`getReplicaNodes: ${err}`));try{await client.connect()}catch{if(client.isOpen){client.destroy()}continue}connected=true;try{const replicaData=await client.sentinel.sentinelReplicas(this.options.name);const replicas=(0,utils_1.createNodeList)(replicaData);if(replicas.length==0){continue}return replicas}finally{client.destroy()}}if(connected){throw new Error("No Replicas Nodes Enumerated")}throw new Error("couldn't connect to any sentinels")}async getReplicaClient(){const replicas=await this.getReplicaNodes();if(replicas.length==0){throw new Error("no available replicas")}this.#replicaIdx++;if(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}})}};exports2.RedisSentinelFactory=RedisSentinelFactory}});var require_dist=__commonJS({"node_modules/@redis/client/dist/index.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;var desc=Object.getOwnPropertyDescriptor(m2,k2);if(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:__name(function(){return m2[k2]},"get")}}Object.defineProperty(o2,k22,desc)}):(function(o2,m2,k2,k22){if(k22===void 0)k22=k2;o2[k22]=m2[k2]}));var __exportStar=exports2&&exports2.__exportStar||function(m2,exports3){for(var p in m2)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p))__createBinding(exports3,m2,p)};var __importDefault=exports2&&exports2.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports2,"__esModule",{value:true});exports2.BasicPooledClientSideCache=exports2.BasicClientSideCache=exports2.REDIS_FLUSH_MODES=exports2.COMMAND_LIST_FILTER_BY=exports2.CLUSTER_SLOT_STATES=exports2.FAILOVER_MODES=exports2.CLIENT_KILL_FILTERS=exports2.GEO_REPLY_WITH=exports2.createSentinel=exports2.createCluster=exports2.createClientPool=exports2.createClient=exports2.defineScript=exports2.VerbatimString=exports2.RESP_TYPES=void 0;var decoder_1=require_decoder();Object.defineProperty(exports2,"RESP_TYPES",{enumerable:true,get:__name(function(){return decoder_1.RESP_TYPES},"get")});var verbatim_string_1=require_verbatim_string();Object.defineProperty(exports2,"VerbatimString",{enumerable:true,get:__name(function(){return verbatim_string_1.VerbatimString},"get")});var lua_script_1=require_lua_script();Object.defineProperty(exports2,"defineScript",{enumerable:true,get:__name(function(){return lua_script_1.defineScript},"get")});__exportStar(require_errors(),exports2);var client_1=__importDefault(require_client());exports2.createClient=client_1.default.create;var pool_1=require_pool();exports2.createClientPool=pool_1.RedisClientPool.create;var cluster_1=__importDefault(require_cluster());exports2.createCluster=cluster_1.default.create;var sentinel_1=__importDefault(require_sentinel());exports2.createSentinel=sentinel_1.default.create;var GEOSEARCH_WITH_1=require_GEOSEARCH_WITH();Object.defineProperty(exports2,"GEO_REPLY_WITH",{enumerable:true,get:__name(function(){return GEOSEARCH_WITH_1.GEO_REPLY_WITH},"get")});var commands_1=require_commands();Object.defineProperty(exports2,"CLIENT_KILL_FILTERS",{enumerable:true,get:__name(function(){return commands_1.CLIENT_KILL_FILTERS},"get")});Object.defineProperty(exports2,"FAILOVER_MODES",{enumerable:true,get:__name(function(){return commands_1.FAILOVER_MODES},"get")});Object.defineProperty(exports2,"CLUSTER_SLOT_STATES",{enumerable:true,get:__name(function(){return commands_1.CLUSTER_SLOT_STATES},"get")});Object.defineProperty(exports2,"COMMAND_LIST_FILTER_BY",{enumerable:true,get:__name(function(){return commands_1.COMMAND_LIST_FILTER_BY},"get")});Object.defineProperty(exports2,"REDIS_FLUSH_MODES",{enumerable:true,get:__name(function(){return commands_1.REDIS_FLUSH_MODES},"get")});var cache_1=require_cache();Object.defineProperty(exports2,"BasicClientSideCache",{enumerable:true,get:__name(function(){return cache_1.BasicClientSideCache},"get")});Object.defineProperty(exports2,"BasicPooledClientSideCache",{enumerable:true,get:__name(function(){return cache_1.BasicPooledClientSideCache},"get")})}});var require_node=__commonJS({"node_modules/util-deprecate/node.js"(exports2,module2){module2.exports=require("util").deprecate}});var require_stream=__commonJS({"node_modules/readable-stream/lib/internal/streams/stream.js"(exports2,module2){module2.exports=require("stream")}});var require_destroy=__commonJS({"node_modules/readable-stream/lib/internal/streams/destroy.js"(exports2,module2){"use strict";function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err)}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(err||null,function(err2){if(!cb&&err2){if(!_this._writableState){process.nextTick(emitErrorAndCloseNT,_this,err2)}else if(!_this._writableState.errorEmitted){_this._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,_this,err2)}else{process.nextTick(emitCloseNT,_this)}}else if(cb){process.nextTick(emitCloseNT,_this);cb(err2)}else{process.nextTick(emitCloseNT,_this)}});return this}__name(destroy,"destroy");function emitErrorAndCloseNT(self2,err){emitErrorNT(self2,err);emitCloseNT(self2)}__name(emitErrorAndCloseNT,"emitErrorAndCloseNT");function emitCloseNT(self2){if(self2._writableState&&!self2._writableState.emitClose)return;if(self2._readableState&&!self2._readableState.emitClose)return;self2.emit("close")}__name(emitCloseNT,"emitCloseNT");function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}__name(undestroy,"undestroy");function emitErrorNT(self2,err){self2.emit("error",err)}__name(emitErrorNT,"emitErrorNT");function errorOrDestroy(stream,err){var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit("error",err)}__name(errorOrDestroy,"errorOrDestroy");module2.exports={destroy,undestroy,errorOrDestroy}}});var require_errors2=__commonJS({"node_modules/readable-stream/errors.js"(exports2,module2){"use strict";var codes={};function createErrorType(code,message,Base){if(!Base){Base=Error}function getMessage(arg1,arg2,arg3){if(typeof message==="string"){return message}else{return message(arg1,arg2,arg3)}}__name(getMessage,"getMessage");class NodeError extends Base{static{__name(this,"NodeError")}constructor(arg1,arg2,arg3){super(getMessage(arg1,arg2,arg3))}}NodeError.prototype.name=Base.name;NodeError.prototype.code=code;codes[code]=NodeError}__name(createErrorType,"createErrorType");function oneOf(expected,thing){if(Array.isArray(expected)){const len=expected.length;expected=expected.map(i=>String(i));if(len>2){return`one of ${thing} ${expected.slice(0,len-1).join(", ")}, or `+expected[len-1]}else if(len===2){return`one of ${thing} ${expected[0]} or ${expected[1]}`}else{return`of ${thing} ${expected[0]}`}}else{return`of ${thing} ${String(expected)}`}}__name(oneOf,"oneOf");function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}__name(startsWith,"startsWith");function endsWith(str,search,this_len){if(this_len===void 0||this_len>str.length){this_len=str.length}return str.substring(this_len-search.length,this_len)===search}__name(endsWith,"endsWith");function includes(str,search,start){if(typeof start!=="number"){start=0}if(start+search.length>str.length){return false}else{return str.indexOf(search,start)!==-1}}__name(includes,"includes");createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){let determiner;if(typeof expected==="string"&&startsWith(expected,"not ")){determiner="must not be";expected=expected.replace(/^not /,"")}else{determiner="must be"}let msg;if(endsWith(name," argument")){msg=`The ${name} ${determiner} ${oneOf(expected,"type")}`}else{const type=includes(name,".")?"property":"argument";msg=`The "${name}" ${type} ${determiner} ${oneOf(expected,"type")}`}msg+=`. Received type ${typeof actual}`;return msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module2.exports.codes=codes}});var require_state=__commonJS({"node_modules/readable-stream/lib/internal/streams/state.js"(exports2,module2){"use strict";var ERR_INVALID_OPT_VALUE=require_errors2().codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}__name(highWaterMarkFrom,"highWaterMarkFrom");function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}__name(getHighWaterMark,"getHighWaterMark");module2.exports={getHighWaterMark}}});var require_inherits_browser=__commonJS({"node_modules/inherits/inherits_browser.js"(exports2,module2){if(typeof Object.create==="function"){module2.exports=__name(function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}},"inherits")}else{module2.exports=__name(function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=__name(function(){},"TempCtor");TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}},"inherits")}}});var require_inherits=__commonJS({"node_modules/inherits/inherits.js"(exports2,module2){try{util=require("util");if(typeof util.inherits!=="function")throw"";module2.exports=util.inherits}catch(e){module2.exports=require_inherits_browser()}var util}});var require_buffer_list=__commonJS({"node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports2,module2){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}__name(ownKeys,"ownKeys");function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}__name(_objectSpread,"_objectSpread");function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}__name(_defineProperty,"_defineProperty");function _classCallCheck(instance2,Constructor){if(!(instance2 instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}__name(_classCallCheck,"_classCallCheck");function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,_toPropertyKey(descriptor.key),descriptor)}}__name(_defineProperties,"_defineProperties");function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor}__name(_createClass,"_createClass");function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key)}__name(_toPropertyKey,"_toPropertyKey");function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}__name(_toPrimitive,"_toPrimitive");var _require=require("buffer");var Buffer3=_require.Buffer;var _require2=require("util");var inspect=_require2.inspect;var custom=inspect&&inspect.custom||"inspect";function copyBuffer(src,target,offset){Buffer3.prototype.copy.call(src,target,offset)}__name(copyBuffer,"copyBuffer");module2.exports=(function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}__name(BufferList,"BufferList");_createClass(BufferList,[{key:"push",value:__name(function push(v2){var entry={data:v2,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length},"push")},{key:"unshift",value:__name(function unshift(v2){var entry={data:v2,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length},"unshift")},{key:"shift",value:__name(function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret},"shift")},{key:"clear",value:__name(function clear(){this.head=this.tail=null;this.length=0},"clear")},{key:"join",value:__name(function join2(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next)ret+=s+p.data;return ret},"join")},{key:"concat",value:__name(function concat(n){if(this.length===0)return Buffer3.alloc(0);var ret=Buffer3.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next}return ret},"concat")},{key:"consume",value:__name(function consume(n,hasStrings){var ret;if(n<this.head.data.length){ret=this.head.data.slice(0,n);this.head.data=this.head.data.slice(n)}else if(n===this.head.data.length){ret=this.shift()}else{ret=hasStrings?this._getString(n):this._getBuffer(n)}return ret},"consume")},{key:"first",value:__name(function first(){return this.head.data},"first")},{key:"_getString",value:__name(function _getString(n){var p=this.head;var c2=1;var ret=p.data;n-=ret.length;while(p=p.next){var str=p.data;var nb=n>str.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c2;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=str.slice(nb)}break}++c2}this.length-=c2;return ret},"_getString")},{key:"_getBuffer",value:__name(function _getBuffer(n){var ret=Buffer3.allocUnsafe(n);var p=this.head;var c2=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c2;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=buf.slice(nb)}break}++c2}this.length-=c2;return ret},"_getBuffer")},{key:custom,value:__name(function value(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{depth:0,customInspect:false}))},"value")}]);return BufferList})()}});var require_safe_buffer=__commonJS({"node_modules/safe-buffer/index.js"(exports2,module2){var buffer=require("buffer");var Buffer3=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}__name(copyProps,"copyProps");if(Buffer3.from&&Buffer3.alloc&&Buffer3.allocUnsafe&&Buffer3.allocUnsafeSlow){module2.exports=buffer}else{copyProps(buffer,exports2);exports2.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer3(arg,encodingOrOffset,length)}__name(SafeBuffer,"SafeBuffer");SafeBuffer.prototype=Object.create(Buffer3.prototype);copyProps(Buffer3,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer3(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer3(size);if(fill!==void 0){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer3(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}}});var require_string_decoder=__commonJS({"node_modules/string_decoder/lib/string_decoder.js"(exports2){"use strict";var Buffer3=require_safe_buffer().Buffer;var isEncoding=Buffer3.isEncoding||function(encoding){encoding=""+encoding;switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(enc){if(!enc)return"utf8";var retried;while(true){switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase();retried=true}}}__name(_normalizeEncoding,"_normalizeEncoding");function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=="string"&&(Buffer3.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}__name(normalizeEncoding,"normalizeEncoding");exports2.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;nb=4;break;case"utf8":this.fillLast=utf8FillLast;nb=4;break;case"base64":this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer3.allocUnsafe(nb)}__name(StringDecoder,"StringDecoder");StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===void 0)return"";i=this.lastNeed;this.lastNeed=0}else{i=0}if(i<buf.length)return r?r+this.text(buf,i):this.text(buf,i);return r||""};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length){buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length);this.lastNeed-=buf.length};function utf8CheckByte(byte){if(byte<=127)return 0;else if(byte>>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}__name(utf8CheckByte,"utf8CheckByte");function utf8CheckIncomplete(self2,buf,i){var j2=buf.length-1;if(j2<i)return 0;var nb=utf8CheckByte(buf[j2]);if(nb>=0){if(nb>0)self2.lastNeed=nb-1;return nb}if(--j2<i||nb===-2)return 0;nb=utf8CheckByte(buf[j2]);if(nb>=0){if(nb>0)self2.lastNeed=nb-2;return nb}if(--j2<i||nb===-2)return 0;nb=utf8CheckByte(buf[j2]);if(nb>=0){if(nb>0){if(nb===2)nb=0;else self2.lastNeed=nb-3}return nb}return 0}__name(utf8CheckIncomplete,"utf8CheckIncomplete");function utf8CheckExtraBytes(self2,buf,p){if((buf[0]&192)!==128){self2.lastNeed=0;return"\uFFFD"}if(self2.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self2.lastNeed=1;return"\uFFFD"}if(self2.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self2.lastNeed=2;return"\uFFFD"}}}}__name(utf8CheckExtraBytes,"utf8CheckExtraBytes");function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==void 0)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}__name(utf8FillLast,"utf8FillLast");function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}__name(utf8Text,"utf8Text");function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"\uFFFD";return r}__name(utf8End,"utf8End");function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c2=r.charCodeAt(r.length-1);if(c2>=55296&&c2<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}__name(utf16Text,"utf16Text");function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}__name(utf16End,"utf16End");function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}__name(base64Text,"base64Text");function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}__name(base64End,"base64End");function simpleWrite(buf){return buf.toString(this.encoding)}__name(simpleWrite,"simpleWrite");function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}__name(simpleEnd,"simpleEnd")}});var require_end_of_stream=__commonJS({"node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports2,module2){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require_errors2().codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}callback.apply(this,args)}}__name(once,"once");function noop(){}__name(noop,"noop");function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}__name(isRequest,"isRequest");function eos(stream,opts,callback){if(typeof opts==="function")return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=__name(function onlegacyfinish2(){if(!stream.writable)onfinish()},"onlegacyfinish");var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=__name(function onfinish2(){writable=false;writableEnded=true;if(!readable)callback.call(stream)},"onfinish");var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=__name(function onend2(){readable=false;readableEnded=true;if(!writable)callback.call(stream)},"onend");var onerror=__name(function onerror2(err){callback.call(stream,err)},"onerror");var onclose=__name(function onclose2(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}},"onclose");var onrequest=__name(function onrequest2(){stream.req.on("finish",onfinish)},"onrequest");if(isRequest(stream)){stream.on("complete",onfinish);stream.on("abort",onclose);if(stream.req)onrequest();else stream.on("request",onrequest)}else if(writable&&!stream._writableState){stream.on("end",onlegacyfinish);stream.on("close",onlegacyfinish)}stream.on("end",onend);stream.on("finish",onfinish);if(opts.error!==false)stream.on("error",onerror);stream.on("close",onclose);return function(){stream.removeListener("complete",onfinish);stream.removeListener("abort",onclose);stream.removeListener("request",onrequest);if(stream.req)stream.req.removeListener("finish",onfinish);stream.removeListener("end",onlegacyfinish);stream.removeListener("close",onlegacyfinish);stream.removeListener("finish",onfinish);stream.removeListener("end",onend);stream.removeListener("error",onerror);stream.removeListener("close",onclose)}}__name(eos,"eos");module2.exports=eos}});var require_async_iterator=__commonJS({"node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports2,module2){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}__name(_defineProperty,"_defineProperty");function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key)}__name(_toPropertyKey,"_toPropertyKey");function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}__name(_toPrimitive,"_toPrimitive");var finished=require_end_of_stream();var kLastResolve=Symbol("lastResolve");var kLastReject=Symbol("lastReject");var kError=Symbol("error");var kEnded=Symbol("ended");var kLastPromise=Symbol("lastPromise");var kHandlePromise=Symbol("handlePromise");var kStream=Symbol("stream");function createIterResult(value,done){return{value,done}}__name(createIterResult,"createIterResult");function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();if(data!==null){iter[kLastPromise]=null;iter[kLastResolve]=null;iter[kLastReject]=null;resolve(createIterResult(data,false))}}}__name(readAndResolve,"readAndResolve");function onReadable(iter){process.nextTick(readAndResolve,iter)}__name(onReadable,"onReadable");function wrapForNext(lastPromise,iter){return function(resolve,reject){lastPromise.then(function(){if(iter[kEnded]){resolve(createIterResult(void 0,true));return}iter[kHandlePromise](resolve,reject)},reject)}}__name(wrapForNext,"wrapForNext");var AsyncIteratorPrototype=Object.getPrototypeOf(function(){});var ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_Object$setPrototypeO={get stream(){return this[kStream]},next:__name(function next(){var _this=this;var error=this[kError];if(error!==null){return Promise.reject(error)}if(this[kEnded]){return Promise.resolve(createIterResult(void 0,true))}if(this[kStream].destroyed){return new Promise(function(resolve,reject){process.nextTick(function(){if(_this[kError]){reject(_this[kError])}else{resolve(createIterResult(void 0,true))}})})}var lastPromise=this[kLastPromise];var promise;if(lastPromise){promise=new Promise(wrapForNext(lastPromise,this))}else{var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterResult(data,false))}promise=new Promise(this[kHandlePromise])}this[kLastPromise]=promise;return promise},"next")},_defineProperty(_Object$setPrototypeO,Symbol.asyncIterator,function(){return this}),_defineProperty(_Object$setPrototypeO,"return",__name(function _return(){var _this2=this;return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return}resolve(createIterResult(void 0,true))})})},"_return")),_Object$setPrototypeO),AsyncIteratorPrototype);var createReadableStreamAsyncIterator=__name(function createReadableStreamAsyncIterator2(stream){var _Object$create;var iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:true}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:true}),_defineProperty(_Object$create,kLastReject,{value:null,writable:true}),_defineProperty(_Object$create,kError,{value:null,writable:true}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:true}),_defineProperty(_Object$create,kHandlePromise,{value:__name(function value(resolve,reject){var data=iterator[kStream].read();if(data){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(data,false))}else{iterator[kLastResolve]=resolve;iterator[kLastReject]=reject}},"value"),writable:true}),_Object$create));iterator[kLastPromise]=null;finished(stream,function(err){if(err&&err.code!=="ERR_STREAM_PREMATURE_CLOSE"){var reject=iterator[kLastReject];if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err)}iterator[kError]=err;return}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(void 0,true))}iterator[kEnded]=true});stream.on("readable",onReadable.bind(null,iterator));return iterator},"createReadableStreamAsyncIterator");module2.exports=createReadableStreamAsyncIterator}});var require_from=__commonJS({"node_modules/readable-stream/lib/internal/streams/from.js"(exports2,module2){"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}__name(asyncGeneratorStep,"asyncGeneratorStep");function _asyncToGenerator(fn){return function(){var self2=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self2,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}__name(_next,"_next");function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}__name(_throw,"_throw");_next(void 0)})}}__name(_asyncToGenerator,"_asyncToGenerator");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}__name(ownKeys,"ownKeys");function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}__name(_objectSpread,"_objectSpread");function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}__name(_defineProperty,"_defineProperty");function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key)}__name(_toPropertyKey,"_toPropertyKey");function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==void 0){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}__name(_toPrimitive,"_toPrimitive");var ERR_INVALID_ARG_TYPE=require_errors2().codes.ERR_INVALID_ARG_TYPE;function from(Readable,iterable,opts){var iterator;if(iterable&&typeof iterable.next==="function"){iterator=iterable}else if(iterable&&iterable[Symbol.asyncIterator])iterator=iterable[Symbol.asyncIterator]();else if(iterable&&iterable[Symbol.iterator])iterator=iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE("iterable",["Iterable"],iterable);var readable=new Readable(_objectSpread({objectMode:true},opts));var reading=false;readable._read=function(){if(!reading){reading=true;next()}};function next(){return _next2.apply(this,arguments)}__name(next,"next");function _next2(){_next2=_asyncToGenerator(function*(){try{var _yield$iterator$next=yield iterator.next(),value=_yield$iterator$next.value,done=_yield$iterator$next.done;if(done){readable.push(null)}else if(readable.push(yield value)){next()}else{reading=false}}catch(err){readable.destroy(err)}});return _next2.apply(this,arguments)}__name(_next2,"_next2");return readable}__name(from,"from");module2.exports=from}});var require_stream_readable=__commonJS({"node_modules/readable-stream/lib/_stream_readable.js"(exports2,module2){"use strict";module2.exports=Readable;var Duplex;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;var EElistenerCount=__name(function EElistenerCount2(emitter,type){return emitter.listeners(type).length},"EElistenerCount");var Stream=require_stream();var Buffer3=require("buffer").Buffer;var OurUint8Array=(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer3.from(chunk)}__name(_uint8ArrayToBuffer,"_uint8ArrayToBuffer");function _isUint8Array(obj){return Buffer3.isBuffer(obj)||obj instanceof OurUint8Array}__name(_isUint8Array,"_isUint8Array");var debugUtil=require("util");var debug;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog("stream")}else{debug=__name(function debug2(){},"debug")}var BufferList=require_buffer_list();var destroyImpl=require_destroy();var _require=require_state();var getHighWaterMark=_require.getHighWaterMark;var _require$codes=require_errors2().codes;var ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE;var ERR_STREAM_PUSH_AFTER_EOF=_require$codes.ERR_STREAM_PUSH_AFTER_EOF;var ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED;var ERR_STREAM_UNSHIFT_AFTER_END_EVENT=_require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;var StringDecoder;var createReadableStreamAsyncIterator;var from;require_inherits()(Readable,Stream);var errorOrDestroy=destroyImpl.errorOrDestroy;var kProxyEvents=["error","close","destroy","pause","resume"];function prependListener(emitter,event,fn){if(typeof emitter.prependListener==="function")return emitter.prependListener(event,fn);if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(Array.isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]]}__name(prependListener,"prependListener");function ReadableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex();options=options||{};if(typeof isDuplex!=="boolean")isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.readableObjectMode;this.highWaterMark=getHighWaterMark(this,options,"readableHighWaterMark",isDuplex);this.buffer=new BufferList;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;this.emitClose=options.emitClose!==false;this.autoDestroy=!!options.autoDestroy;this.destroyed=false;this.defaultEncoding=options.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require_string_decoder().StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}__name(ReadableState,"ReadableState");function Readable(options){Duplex=Duplex||require_stream_duplex();if(!(this instanceof Readable))return new Readable(options);var isDuplex=this instanceof Duplex;this._readableState=new ReadableState(options,this,isDuplex);this.readable=true;if(options){if(typeof options.read==="function")this._read=options.read;if(typeof options.destroy==="function")this._destroy=options.destroy}Stream.call(this)}__name(Readable,"Readable");Object.defineProperty(Readable.prototype,"destroyed",{enumerable:false,get:__name(function get(){if(this._readableState===void 0){return false}return this._readableState.destroyed},"get"),set:__name(function set(value){if(!this._readableState){return}this._readableState.destroyed=value},"set")});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype.push=function(chunk,encoding){var state=this._readableState;var skipChunkCheck;if(!state.objectMode){if(typeof chunk==="string"){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer3.from(chunk,encoding);encoding=""}skipChunkCheck=true}}else{skipChunkCheck=true}return readableAddChunk(this,chunk,encoding,false,skipChunkCheck)};Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,true,false)};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){debug("readableAddChunk",chunk);var state=stream._readableState;if(chunk===null){state.reading=false;onEofChunk(stream,state)}else{var er;if(!skipChunkCheck)er=chunkInvalid(state,chunk);if(er){errorOrDestroy(stream,er)}else if(state.objectMode||chunk&&chunk.length>0){if(typeof chunk!=="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer3.prototype){chunk=_uint8ArrayToBuffer(chunk)}if(addToFront){if(state.endEmitted)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else addChunk(stream,state,chunk,true)}else if(state.ended){errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF)}else if(state.destroyed){return false}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state)}else{addChunk(stream,state,chunk,false)}}}else if(!addToFront){state.reading=false;maybeReadMore(stream,state)}}return!state.ended&&(state.length<state.highWaterMark||state.length===0)}__name(readableAddChunk,"readableAddChunk");function addChunk(stream,state,chunk,addToFront){if(state.flowing&&state.length===0&&!state.sync){state.awaitDrain=0;stream.emit("data",chunk)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}maybeReadMore(stream,state)}__name(addChunk,"addChunk");function chunkInvalid(state,chunk){var er;if(!_isUint8Array(chunk)&&typeof chunk!=="string"&&chunk!==void 0&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer","Uint8Array"],chunk)}return er}__name(chunkInvalid,"chunkInvalid");Readable.prototype.isPaused=function(){return this._readableState.flowing===false};Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require_string_decoder().StringDecoder;var decoder=new StringDecoder(enc);this._readableState.decoder=decoder;this._readableState.encoding=this._readableState.decoder.encoding;var p=this._readableState.buffer.head;var content="";while(p!==null){content+=decoder.write(p.data);p=p.next}this._readableState.buffer.clear();if(content!=="")this._readableState.buffer.push(content);this._readableState.length=content.length;return this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}__name(computeNewHighWaterMark,"computeNewHighWaterMark");function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}__name(howMuchToRead,"howMuchToRead");Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug("length less than watermark",doRead)}if(state.ended||state.reading){doRead=false;debug("reading or ended",doRead)}else if(doRead){debug("do read");state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false;if(!state.reading)n=howMuchToRead(nOrig,state)}var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=state.length<=state.highWaterMark;n=0}else{state.length-=n;state.awaitDrain=0}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function onEofChunk(stream,state){debug("onEofChunk");if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.sync){emitReadable(stream)}else{state.needReadable=false;if(!state.emittedReadable){state.emittedReadable=true;emitReadable_(stream)}}}__name(onEofChunk,"onEofChunk");function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable);state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;process.nextTick(emitReadable_,stream)}}__name(emitReadable,"emitReadable");function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended);if(!state.destroyed&&(state.length||state.ended)){stream.emit("readable");state.emittedReadable=false}state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark;flow(stream)}__name(emitReadable_,"emitReadable_");function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(maybeReadMore_,stream,state)}}__name(maybeReadMore,"maybeReadMore");function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length<state.highWaterMark||state.flowing&&state.length===0)){var len=state.length;debug("maybeReadMore read 0");stream.read(0);if(len===state.length)break}state.readingMore=false}__name(maybeReadMore_,"maybeReadMore_");Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:unpipe;if(state.endEmitted)process.nextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable,unpipeInfo){debug("onunpipe");if(readable===src){if(unpipeInfo&&unpipeInfo.hasUnpiped===false){unpipeInfo.hasUnpiped=true;cleanup()}}}__name(onunpipe,"onunpipe");function onend(){debug("onend");dest.end()}__name(onend,"onend");var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=false;function cleanup(){debug("cleanup");dest.removeListener("close",onclose);dest.removeListener("finish",onfinish);dest.removeListener("drain",ondrain);dest.removeListener("error",onerror);dest.removeListener("unpipe",onunpipe);src.removeListener("end",onend);src.removeListener("end",unpipe);src.removeListener("data",ondata);cleanedUp=true;if(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain()}__name(cleanup,"cleanup");src.on("data",ondata);function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret);if(ret===false){if((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",state.awaitDrain);state.awaitDrain++}src.pause()}}__name(ondata,"ondata");function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)errorOrDestroy(dest,er)}__name(onerror,"onerror");prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}__name(onclose,"onclose");dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}__name(onfinish,"onfinish");dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}__name(unpipe,"unpipe");dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return __name(function pipeOnDrainFunctionResult(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}},"pipeOnDrainFunctionResult")}__name(pipeOnDrain,"pipeOnDrain");Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this,unpipeInfo);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i<len;i++)dests[i].emit("unpipe",this,{hasUnpiped:false});return this}var index=indexOf(state.pipes,dest);if(index===-1)return this;state.pipes.splice(index,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this,unpipeInfo);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);var state=this._readableState;if(ev==="data"){state.readableListening=this.listenerCount("readable")>0;if(state.flowing!==false)this.resume()}else if(ev==="readable"){if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.flowing=false;state.emittedReadable=false;debug("on readable",state.length,state.reading);if(state.length){emitReadable(this)}else if(!state.reading){process.nextTick(nReadingNextTick,this)}}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);if(ev==="readable"){process.nextTick(updateReadableListening,this)}return res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev==="readable"||ev===void 0){process.nextTick(updateReadableListening,this)}return res};function updateReadableListening(self2){var state=self2._readableState;state.readableListening=self2.listenerCount("readable")>0;if(state.resumeScheduled&&!state.paused){state.flowing=true}else if(self2.listenerCount("data")>0){self2.resume()}}__name(updateReadableListening,"updateReadableListening");function nReadingNextTick(self2){debug("readable nexttick read 0");self2.read(0)}__name(nReadingNextTick,"nReadingNextTick");Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=!state.readableListening;resume(this,state)}state.paused=false;return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;process.nextTick(resume_,stream,state)}}__name(resume,"resume");function resume_(stream,state){debug("resume",state.reading);if(!state.reading){stream.read(0)}state.resumeScheduled=false;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}__name(resume_,"resume_");Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){debug("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);while(state.flowing&&stream.read()!==null);}__name(flow,"flow");Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk)}_this.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===void 0))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===void 0&&typeof stream[i]==="function"){this[i]=__name(function methodWrap(method){return __name(function methodWrapReturnFunction(){return stream[method].apply(stream,arguments)},"methodWrapReturnFunction")},"methodWrap")(i)}}for(var n=0;n<kProxyEvents.length;n++){stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]))}this._read=function(n2){debug("wrapped _read",n2);if(paused){paused=false;stream.resume()}};return this};if(typeof Symbol==="function"){Readable.prototype[Symbol.asyncIterator]=function(){if(createReadableStreamAsyncIterator===void 0){createReadableStreamAsyncIterator=require_async_iterator()}return createReadableStreamAsyncIterator(this)}}Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:false,get:__name(function get(){return this._readableState.highWaterMark},"get")});Object.defineProperty(Readable.prototype,"readableBuffer",{enumerable:false,get:__name(function get(){return this._readableState&&this._readableState.buffer},"get")});Object.defineProperty(Readable.prototype,"readableFlowing",{enumerable:false,get:__name(function get(){return this._readableState.flowing},"get"),set:__name(function set(state){if(this._readableState){this._readableState.flowing=state}},"set")});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,"readableLength",{enumerable:false,get:__name(function get(){return this._readableState.length},"get")});function fromList(n,state){if(state.length===0)return null;var ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=state.buffer.consume(n,state.decoder)}return ret}__name(fromList,"fromList");function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream)}}__name(endReadable,"endReadable");function endReadableNT(state,stream){debug("endReadableNT",state.endEmitted,state.length);if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end");if(state.autoDestroy){var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy()}}}}__name(endReadableNT,"endReadableNT");if(typeof Symbol==="function"){Readable.from=function(iterable,opts){if(from===void 0){from=require_from()}return from(Readable,iterable,opts)}}function indexOf(xs,x){for(var i=0,l3=xs.length;i<l3;i++){if(xs[i]===x)return i}return-1}__name(indexOf,"indexOf")}});var require_stream_duplex=__commonJS({"node_modules/readable-stream/lib/_stream_duplex.js"(exports2,module2){"use strict";var objectKeys=Object.keys||function(obj){var keys2=[];for(var key in obj)keys2.push(key);return keys2};module2.exports=Duplex;var Readable=require_stream_readable();var Writable=require_stream_writable();require_inherits()(Duplex,Readable);{keys=objectKeys(Writable.prototype);for(v2=0;v2<keys.length;v2++){method=keys[v2];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]}}var keys;var method;var v2;function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);this.allowHalfOpen=true;if(options){if(options.readable===false)this.readable=false;if(options.writable===false)this.writable=false;if(options.allowHalfOpen===false){this.allowHalfOpen=false;this.once("end",onend)}}}__name(Duplex,"Duplex");Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:false,get:__name(function get(){return this._writableState.highWaterMark},"get")});Object.defineProperty(Duplex.prototype,"writableBuffer",{enumerable:false,get:__name(function get(){return this._writableState&&this._writableState.getBuffer()},"get")});Object.defineProperty(Duplex.prototype,"writableLength",{enumerable:false,get:__name(function get(){return this._writableState.length},"get")});function onend(){if(this._writableState.ended)return;process.nextTick(onEndNT,this)}__name(onend,"onend");function onEndNT(self2){self2.end()}__name(onEndNT,"onEndNT");Object.defineProperty(Duplex.prototype,"destroyed",{enumerable:false,get:__name(function get(){if(this._readableState===void 0||this._writableState===void 0){return false}return this._readableState.destroyed&&this._writableState.destroyed},"get"),set:__name(function set(value){if(this._readableState===void 0||this._writableState===void 0){return}this._readableState.destroyed=value;this._writableState.destroyed=value},"set")})}});var require_stream_writable=__commonJS({"node_modules/readable-stream/lib/_stream_writable.js"(exports2,module2){"use strict";module2.exports=Writable;function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(_this,state)}}__name(CorkedRequest,"CorkedRequest");var Duplex;Writable.WritableState=WritableState;var internalUtil={deprecate:require_node()};var Stream=require_stream();var Buffer3=require("buffer").Buffer;var OurUint8Array=(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:{}).Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer3.from(chunk)}__name(_uint8ArrayToBuffer,"_uint8ArrayToBuffer");function _isUint8Array(obj){return Buffer3.isBuffer(obj)||obj instanceof OurUint8Array}__name(_isUint8Array,"_isUint8Array");var destroyImpl=require_destroy();var _require=require_state();var getHighWaterMark=_require.getHighWaterMark;var _require$codes=require_errors2().codes;var ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE;var ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED;var ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK;var ERR_STREAM_CANNOT_PIPE=_require$codes.ERR_STREAM_CANNOT_PIPE;var ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;var ERR_STREAM_NULL_VALUES=_require$codes.ERR_STREAM_NULL_VALUES;var ERR_STREAM_WRITE_AFTER_END=_require$codes.ERR_STREAM_WRITE_AFTER_END;var ERR_UNKNOWN_ENCODING=_require$codes.ERR_UNKNOWN_ENCODING;var errorOrDestroy=destroyImpl.errorOrDestroy;require_inherits()(Writable,Stream);function nop(){}__name(nop,"nop");function WritableState(options,stream,isDuplex){Duplex=Duplex||require_stream_duplex();options=options||{};if(typeof isDuplex!=="boolean")isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.writableObjectMode;this.highWaterMark=getHighWaterMark(this,options,"writableHighWaterMark",isDuplex);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.emitClose=options.emitClose!==false;this.autoDestroy=!!options.autoDestroy;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}__name(WritableState,"WritableState");WritableState.prototype.getBuffer=__name(function getBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next}return out},"getBuffer");(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(__name(function writableStateBufferGetter(){return this.getBuffer()},"writableStateBufferGetter"),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(_){}})();var realHasInstance;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){realHasInstance=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:__name(function value(object){if(realHasInstance.call(this,object))return true;if(this!==Writable)return false;return object&&object._writableState instanceof WritableState},"value")})}else{realHasInstance=__name(function realHasInstance2(object){return object instanceof this},"realHasInstance")}function Writable(options){Duplex=Duplex||require_stream_duplex();var isDuplex=this instanceof Duplex;if(!isDuplex&&!realHasInstance.call(Writable,this))return new Writable(options);this._writableState=new WritableState(options,this,isDuplex);this.writable=true;if(options){if(typeof options.write==="function")this._write=options.write;if(typeof options.writev==="function")this._writev=options.writev;if(typeof options.destroy==="function")this._destroy=options.destroy;if(typeof options.final==="function")this._final=options.final}Stream.call(this)}__name(Writable,"Writable");Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function writeAfterEnd(stream,cb){var er=new ERR_STREAM_WRITE_AFTER_END;errorOrDestroy(stream,er);process.nextTick(cb,er)}__name(writeAfterEnd,"writeAfterEnd");function validChunk(stream,state,chunk,cb){var er;if(chunk===null){er=new ERR_STREAM_NULL_VALUES}else if(typeof chunk!=="string"&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer"],chunk)}if(er){errorOrDestroy(stream,er);process.nextTick(cb,er);return false}return true}__name(validChunk,"validChunk");Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;var isBuf=!state.objectMode&&_isUint8Array(chunk);if(isBuf&&!Buffer3.isBuffer(chunk)){chunk=_uint8ArrayToBuffer(chunk)}if(typeof encoding==="function"){cb=encoding;encoding=null}if(isBuf)encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=nop;if(state.ending)writeAfterEnd(this,cb);else if(isBuf||validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb)}return ret};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=__name(function setDefaultEncoding(encoding){if(typeof encoding==="string")encoding=encoding.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new ERR_UNKNOWN_ENCODING(encoding);this._writableState.defaultEncoding=encoding;return this},"setDefaultEncoding");Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:__name(function get(){return this._writableState&&this._writableState.getBuffer()},"get")});function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=Buffer3.from(chunk,encoding)}return chunk}__name(decodeChunk,"decodeChunk");Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:__name(function get(){return this._writableState.highWaterMark},"get")});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding="buffer";chunk=newChunk}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk,encoding,isBuf,callback:cb,next:null};if(last){last.next=state.lastBufferedRequest}else{state.bufferedRequest=state.lastBufferedRequest}state.bufferedRequestCount+=1}else{doWrite(stream,state,false,len,chunk,encoding,cb)}return ret}__name(writeOrBuffer,"writeOrBuffer");function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(state.destroyed)state.onwrite(new ERR_STREAM_DESTROYED("write"));else if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false}__name(doWrite,"doWrite");function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync){process.nextTick(cb,er);process.nextTick(finishMaybe,stream,state);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er)}else{cb(er);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er);finishMaybe(stream,state)}}__name(onwriteError,"onwriteError");function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}__name(onwriteStateUpdate,"onwriteStateUpdate");function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;if(typeof cb!=="function")throw new ERR_MULTIPLE_CALLBACK;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state)||stream.destroyed;if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state)}if(sync){process.nextTick(afterWrite,stream,state,finished,cb)}else{afterWrite(stream,state,finished,cb)}}}__name(onwrite,"onwrite");function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state)}__name(afterWrite,"afterWrite");function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}__name(onwriteDrain,"onwriteDrain");function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l3=state.bufferedRequestCount;var buffer=new Array(l3);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;var allBuffers=true;while(entry){buffer[count]=entry;if(!entry.isBuf)allBuffers=false;entry=entry.next;count+=1}buffer.allBuffers=allBuffers;doWrite(stream,state,true,state.length,buffer,"",holder.finish);state.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null}else{state.corkedRequestsFree=new CorkedRequest(state)}state.bufferedRequestCount=0}else{while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;state.bufferedRequestCount--;if(state.writing){break}}if(entry===null)state.lastBufferedRequest=null}state.bufferedRequest=entry;state.bufferProcessing=false}__name(clearBuffer,"clearBuffer");Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(chunk!==null&&chunk!==void 0)this.write(chunk,encoding);if(state.corked){state.corked=1;this.uncork()}if(!state.ending)endWritable(this,state,cb);return this};Object.defineProperty(Writable.prototype,"writableLength",{enumerable:false,get:__name(function get(){return this._writableState.length},"get")});function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}__name(needFinish,"needFinish");function callFinal(stream,state){stream._final(function(err){state.pendingcb--;if(err){errorOrDestroy(stream,err)}state.prefinished=true;stream.emit("prefinish");finishMaybe(stream,state)})}__name(callFinal,"callFinal");function prefinish(stream,state){if(!state.prefinished&&!state.finalCalled){if(typeof stream._final==="function"&&!state.destroyed){state.pendingcb++;state.finalCalled=true;process.nextTick(callFinal,stream,state)}else{state.prefinished=true;stream.emit("prefinish")}}}__name(prefinish,"prefinish");function finishMaybe(stream,state){var need=needFinish(state);if(need){prefinish(stream,state);if(state.pendingcb===0){state.finished=true;stream.emit("finish");if(state.autoDestroy){var rState=stream._readableState;if(!rState||rState.autoDestroy&&rState.endEmitted){stream.destroy()}}}}return need}__name(finishMaybe,"finishMaybe");function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)process.nextTick(cb);else stream.once("finish",cb)}state.ended=true;stream.writable=false}__name(endWritable,"endWritable");function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;corkReq.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next}state.corkedRequestsFree.next=corkReq}__name(onCorkedFinish,"onCorkedFinish");Object.defineProperty(Writable.prototype,"destroyed",{enumerable:false,get:__name(function get(){if(this._writableState===void 0){return false}return this._writableState.destroyed},"get"),set:__name(function set(value){if(!this._writableState){return}this._writableState.destroyed=value},"set")});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err)}}});var require_cli=__commonJS({"node_modules/triple-beam/config/cli.js"(exports2){"use strict";exports2.levels={error:0,warn:1,help:2,data:3,info:4,debug:5,prompt:6,verbose:7,input:8,silly:9};exports2.colors={error:"red",warn:"yellow",help:"cyan",data:"grey",info:"green",debug:"blue",prompt:"grey",verbose:"cyan",input:"grey",silly:"magenta"}}});var require_npm=__commonJS({"node_modules/triple-beam/config/npm.js"(exports2){"use strict";exports2.levels={error:0,warn:1,info:2,http:3,verbose:4,debug:5,silly:6};exports2.colors={error:"red",warn:"yellow",info:"green",http:"green",verbose:"cyan",debug:"blue",silly:"magenta"}}});var require_syslog=__commonJS({"node_modules/triple-beam/config/syslog.js"(exports2){"use strict";exports2.levels={emerg:0,alert:1,crit:2,error:3,warning:4,notice:5,info:6,debug:7};exports2.colors={emerg:"red",alert:"yellow",crit:"red",error:"red",warning:"red",notice:"yellow",info:"green",debug:"blue"}}});var require_config=__commonJS({"node_modules/triple-beam/config/index.js"(exports2){"use strict";Object.defineProperty(exports2,"cli",{value:require_cli()});Object.defineProperty(exports2,"npm",{value:require_npm()});Object.defineProperty(exports2,"syslog",{value:require_syslog()})}});var require_triple_beam=__commonJS({"node_modules/triple-beam/index.js"(exports2){"use strict";Object.defineProperty(exports2,"LEVEL",{value:Symbol.for("level")});Object.defineProperty(exports2,"MESSAGE",{value:Symbol.for("message")});Object.defineProperty(exports2,"SPLAT",{value:Symbol.for("splat")});Object.defineProperty(exports2,"configs",{value:require_config()})}});var require_modern=__commonJS({"node_modules/winston-transport/modern.js"(exports2,module2){"use strict";var util=require("util");var Writable=require_stream_writable();var{LEVEL}=require_triple_beam();var TransportStream=module2.exports=__name(function TransportStream2(options={}){Writable.call(this,{objectMode:true,highWaterMark:options.highWaterMark});this.format=options.format;this.level=options.level;this.handleExceptions=options.handleExceptions;this.handleRejections=options.handleRejections;this.silent=options.silent;if(options.log)this.log=options.log;if(options.logv)this.logv=options.logv;if(options.close)this.close=options.close;this.once("pipe",logger=>{this.levels=logger.levels;this.parent=logger});this.once("unpipe",src=>{if(src===this.parent){this.parent=null;if(this.close){this.close()}}})},"TransportStream");util.inherits(TransportStream,Writable);TransportStream.prototype._write=__name(function _write(info,enc,callback){if(this.silent||info.exception===true&&!this.handleExceptions){return callback(null)}const level=this.level||this.parent&&this.parent.level;if(!level||this.levels[level]>=this.levels[info[LEVEL]]){if(info&&!this.format){return this.log(info,callback)}let errState;let transformed;try{transformed=this.format.transform(Object.assign({},info),this.format.options)}catch(err){errState=err}if(errState||!transformed){callback();if(errState)throw errState;return}return this.log(transformed,callback)}this._writableState.sync=false;return callback(null)},"_write");TransportStream.prototype._writev=__name(function _writev(chunks,callback){if(this.logv){const infos=chunks.filter(this._accept,this);if(!infos.length){return callback(null)}return this.logv(infos,callback)}for(let i=0;i<chunks.length;i++){if(!this._accept(chunks[i]))continue;if(chunks[i].chunk&&!this.format){this.log(chunks[i].chunk,chunks[i].callback);continue}let errState;let transformed;try{transformed=this.format.transform(Object.assign({},chunks[i].chunk),this.format.options)}catch(err){errState=err}if(errState||!transformed){chunks[i].callback();if(errState){callback(null);throw errState}}else{this.log(transformed,chunks[i].callback)}}return callback(null)},"_writev");TransportStream.prototype._accept=__name(function _accept(write){const info=write.chunk;if(this.silent){return false}const level=this.level||this.parent&&this.parent.level;if(info.exception===true||!level||this.levels[level]>=this.levels[info[LEVEL]]){if(this.handleExceptions||info.exception!==true){return true}}return false},"_accept");TransportStream.prototype._nop=__name(function _nop(){return void 0},"_nop")}});var require_legacy=__commonJS({"node_modules/winston-transport/legacy.js"(exports2,module2){"use strict";var util=require("util");var{LEVEL}=require_triple_beam();var TransportStream=require_modern();var LegacyTransportStream=module2.exports=__name(function LegacyTransportStream2(options={}){TransportStream.call(this,options);if(!options.transport||typeof options.transport.log!=="function"){throw new Error("Invalid transport, must be an object with a log method.")}this.transport=options.transport;this.level=this.level||options.transport.level;this.handleExceptions=this.handleExceptions||options.transport.handleExceptions;this._deprecated();function transportError(err){this.emit("error",err,this.transport)}__name(transportError,"transportError");if(!this.transport.__winstonError){this.transport.__winstonError=transportError.bind(this);this.transport.on("error",this.transport.__winstonError)}},"LegacyTransportStream");util.inherits(LegacyTransportStream,TransportStream);LegacyTransportStream.prototype._write=__name(function _write(info,enc,callback){if(this.silent||info.exception===true&&!this.handleExceptions){return callback(null)}if(!this.level||this.levels[this.level]>=this.levels[info[LEVEL]]){this.transport.log(info[LEVEL],info.message,info,this._nop)}callback(null)},"_write");LegacyTransportStream.prototype._writev=__name(function _writev(chunks,callback){for(let i=0;i<chunks.length;i++){if(this._accept(chunks[i])){this.transport.log(chunks[i].chunk[LEVEL],chunks[i].chunk.message,chunks[i].chunk,this._nop);chunks[i].callback()}}return callback(null)},"_writev");LegacyTransportStream.prototype._deprecated=__name(function _deprecated(){console.error([`${this.transport.name} is a legacy winston transport. Consider upgrading: `,"- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md"].join("\n"))},"_deprecated");LegacyTransportStream.prototype.close=__name(function close(){if(this.transport.close){this.transport.close()}if(this.transport.__winstonError){this.transport.removeListener("error",this.transport.__winstonError);this.transport.__winstonError=null}},"close")}});var require_winston_transport=__commonJS({"node_modules/winston-transport/index.js"(exports2,module2){"use strict";module2.exports=require_modern();module2.exports.LegacyTransportStream=require_legacy()}});var require_object_hash=__commonJS({"node_modules/object-hash/index.js"(exports2,module2){"use strict";var crypto2=require("crypto");exports2=module2.exports=objectHash;function objectHash(object,options){options=applyDefaults(object,options);return hash(object,options)}__name(objectHash,"objectHash");exports2.sha1=function(object){return objectHash(object)};exports2.keys=function(object){return objectHash(object,{excludeValues:true,algorithm:"sha1",encoding:"hex"})};exports2.MD5=function(object){return objectHash(object,{algorithm:"md5",encoding:"hex"})};exports2.keysMD5=function(object){return objectHash(object,{algorithm:"md5",encoding:"hex",excludeValues:true})};var hashes=crypto2.getHashes?crypto2.getHashes().slice():["sha1","md5"];hashes.push("passthrough");var encodings=["buffer","hex","binary","base64"];function applyDefaults(object,sourceOptions){sourceOptions=sourceOptions||{};var options={};options.algorithm=sourceOptions.algorithm||"sha1";options.encoding=sourceOptions.encoding||"hex";options.excludeValues=sourceOptions.excludeValues?true:false;options.algorithm=options.algorithm.toLowerCase();options.encoding=options.encoding.toLowerCase();options.ignoreUnknown=sourceOptions.ignoreUnknown!==true?false:true;options.respectType=sourceOptions.respectType===false?false:true;options.respectFunctionNames=sourceOptions.respectFunctionNames===false?false:true;options.respectFunctionProperties=sourceOptions.respectFunctionProperties===false?false:true;options.unorderedArrays=sourceOptions.unorderedArrays!==true?false:true;options.unorderedSets=sourceOptions.unorderedSets===false?false:true;options.unorderedObjects=sourceOptions.unorderedObjects===false?false:true;options.replacer=sourceOptions.replacer||void 0;options.excludeKeys=sourceOptions.excludeKeys||void 0;if(typeof object==="undefined"){throw new Error("Object argument required.")}for(var i=0;i<hashes.length;++i){if(hashes[i].toLowerCase()===options.algorithm.toLowerCase()){options.algorithm=hashes[i]}}if(hashes.indexOf(options.algorithm)===-1){throw new Error('Algorithm "'+options.algorithm+'" not supported. supported values: '+hashes.join(", "))}if(encodings.indexOf(options.encoding)===-1&&options.algorithm!=="passthrough"){throw new Error('Encoding "'+options.encoding+'" not supported. supported values: '+encodings.join(", "))}return options}__name(applyDefaults,"applyDefaults");function isNativeFunction(f4){if(typeof f4!=="function"){return false}var exp=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return exp.exec(Function.prototype.toString.call(f4))!=null}__name(isNativeFunction,"isNativeFunction");function hash(object,options){var hashingStream;if(options.algorithm!=="passthrough"){hashingStream=crypto2.createHash(options.algorithm)}else{hashingStream=new PassThrough}if(typeof hashingStream.write==="undefined"){hashingStream.write=hashingStream.update;hashingStream.end=hashingStream.update}var hasher=typeHasher(options,hashingStream);hasher.dispatch(object);if(!hashingStream.update){hashingStream.end("")}if(hashingStream.digest){return hashingStream.digest(options.encoding==="buffer"?void 0:options.encoding)}var buf=hashingStream.read();if(options.encoding==="buffer"){return buf}return buf.toString(options.encoding)}__name(hash,"hash");exports2.writeToStream=function(object,options,stream){if(typeof stream==="undefined"){stream=options;options={}}options=applyDefaults(object,options);return typeHasher(options,stream).dispatch(object)};function typeHasher(options,writeTo,context){context=context||[];var write=__name(function(str){if(writeTo.update){return writeTo.update(str,"utf8")}else{return writeTo.write(str,"utf8")}},"write");return{dispatch:__name(function(value){if(options.replacer){value=options.replacer(value)}var type=typeof value;if(value===null){type="null"}return this["_"+type](value)},"dispatch"),_object:__name(function(object){var pattern=/\[object (.*)\]/i;var objString=Object.prototype.toString.call(object);var objType=pattern.exec(objString);if(!objType){objType="unknown:["+objString+"]"}else{objType=objType[1]}objType=objType.toLowerCase();var objectNumber=null;if((objectNumber=context.indexOf(object))>=0){return this.dispatch("[CIRCULAR:"+objectNumber+"]")}else{context.push(object)}if(typeof Buffer!=="undefined"&&Buffer.isBuffer&&Buffer.isBuffer(object)){write("buffer:");return write(object)}if(objType!=="object"&&objType!=="function"&&objType!=="asyncfunction"){if(this["_"+objType]){this["_"+objType](object)}else if(options.ignoreUnknown){return write("["+objType+"]")}else{throw new Error('Unknown object type "'+objType+'"')}}else{var keys=Object.keys(object);if(options.unorderedObjects){keys=keys.sort()}if(options.respectType!==false&&!isNativeFunction(object)){keys.splice(0,0,"prototype","__proto__","constructor")}if(options.excludeKeys){keys=keys.filter(function(key){return!options.excludeKeys(key)})}write("object:"+keys.length+":");var self2=this;return keys.forEach(function(key){self2.dispatch(key);write(":");if(!options.excludeValues){self2.dispatch(object[key])}write(",")})}},"_object"),_array:__name(function(arr,unordered){unordered=typeof unordered!=="undefined"?unordered:options.unorderedArrays!==false;var self2=this;write("array:"+arr.length+":");if(!unordered||arr.length<=1){return arr.forEach(function(entry){return self2.dispatch(entry)})}var contextAdditions=[];var entries=arr.map(function(entry){var strm=new PassThrough;var localContext=context.slice();var hasher=typeHasher(options,strm,localContext);hasher.dispatch(entry);contextAdditions=contextAdditions.concat(localContext.slice(context.length));return strm.read().toString()});context=context.concat(contextAdditions);entries.sort();return this._array(entries,false)},"_array"),_date:__name(function(date){return write("date:"+date.toJSON())},"_date"),_symbol:__name(function(sym){return write("symbol:"+sym.toString())},"_symbol"),_error:__name(function(err){return write("error:"+err.toString())},"_error"),_boolean:__name(function(bool){return write("bool:"+bool.toString())},"_boolean"),_string:__name(function(string){write("string:"+string.length+":");write(string.toString())},"_string"),_function:__name(function(fn){write("fn:");if(isNativeFunction(fn)){this.dispatch("[native]")}else{this.dispatch(fn.toString())}if(options.respectFunctionNames!==false){this.dispatch("function-name:"+String(fn.name))}if(options.respectFunctionProperties){this._object(fn)}},"_function"),_number:__name(function(number){return write("number:"+number.toString())},"_number"),_xml:__name(function(xml){return write("xml:"+xml.toString())},"_xml"),_null:__name(function(){return write("Null")},"_null"),_undefined:__name(function(){return write("Undefined")},"_undefined"),_regexp:__name(function(regex){return write("regex:"+regex.toString())},"_regexp"),_uint8array:__name(function(arr){write("uint8array:");return this.dispatch(Array.prototype.slice.call(arr))},"_uint8array"),_uint8clampedarray:__name(function(arr){write("uint8clampedarray:");return this.dispatch(Array.prototype.slice.call(arr))},"_uint8clampedarray"),_int8array:__name(function(arr){write("int8array:");return this.dispatch(Array.prototype.slice.call(arr))},"_int8array"),_uint16array:__name(function(arr){write("uint16array:");return this.dispatch(Array.prototype.slice.call(arr))},"_uint16array"),_int16array:__name(function(arr){write("int16array:");return this.dispatch(Array.prototype.slice.call(arr))},"_int16array"),_uint32array:__name(function(arr){write("uint32array:");return this.dispatch(Array.prototype.slice.call(arr))},"_uint32array"),_int32array:__name(function(arr){write("int32array:");return this.dispatch(Array.prototype.slice.call(arr))},"_int32array"),_float32array:__name(function(arr){write("float32array:");return this.dispatch(Array.prototype.slice.call(arr))},"_float32array"),_float64array:__name(function(arr){write("float64array:");return this.dispatch(Array.prototype.slice.call(arr))},"_float64array"),_arraybuffer:__name(function(arr){write("arraybuffer:");return this.dispatch(new Uint8Array(arr))},"_arraybuffer"),_url:__name(function(url){return write("url:"+url.toString(),"utf8")},"_url"),_map:__name(function(map){write("map:");var arr=Array.from(map);return this._array(arr,options.unorderedSets!==false)},"_map"),_set:__name(function(set){write("set:");var arr=Array.from(set);return this._array(arr,options.unorderedSets!==false)},"_set"),_file:__name(function(file){write("file:");return this.dispatch([file.name,file.size,file.type,file.lastModfied])},"_file"),_blob:__name(function(){if(options.ignoreUnknown){return write("[blob]")}throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},"_blob"),_domwindow:__name(function(){return write("domwindow")},"_domwindow"),_bigint:__name(function(number){return write("bigint:"+number.toString())},"_bigint"),_process:__name(function(){return write("process")},"_process"),_timer:__name(function(){return write("timer")},"_timer"),_pipe:__name(function(){return write("pipe")},"_pipe"),_tcp:__name(function(){return write("tcp")},"_tcp"),_udp:__name(function(){return write("udp")},"_udp"),_tty:__name(function(){return write("tty")},"_tty"),_statwatcher:__name(function(){return write("statwatcher")},"_statwatcher"),_securecontext:__name(function(){return write("securecontext")},"_securecontext"),_connection:__name(function(){return write("connection")},"_connection"),_zlib:__name(function(){return write("zlib")},"_zlib"),_context:__name(function(){return write("context")},"_context"),_nodescript:__name(function(){return write("nodescript")},"_nodescript"),_httpparser:__name(function(){return write("httpparser")},"_httpparser"),_dataview:__name(function(){return write("dataview")},"_dataview"),_signal:__name(function(){return write("signal")},"_signal"),_fsevent:__name(function(){return write("fsevent")},"_fsevent"),_tlswrap:__name(function(){return write("tlswrap")},"_tlswrap")}}__name(typeHasher,"typeHasher");function PassThrough(){return{buf:"",write:__name(function(b){this.buf+=b},"write"),end:__name(function(b){this.buf+=b},"end"),read:__name(function(){return this.buf},"read")}}__name(PassThrough,"PassThrough")}});var require_moment=__commonJS({"node_modules/moment/moment.js"(exports2,module2){(function(global2,factory){typeof exports2==="object"&&typeof module2!=="undefined"?module2.exports=factory():typeof define==="function"&&define.amd?define(factory):global2.moment=factory()})(exports2,(function(){"use strict";var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}__name(hooks,"hooks");function setHookCallback(callback){hookCallback=callback}__name(setHookCallback,"setHookCallback");function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)==="[object Array]"}__name(isArray,"isArray");function isObject(input){return input!=null&&Object.prototype.toString.call(input)==="[object Object]"}__name(isObject,"isObject");function hasOwnProp(a3,b){return Object.prototype.hasOwnProperty.call(a3,b)}__name(hasOwnProp,"hasOwnProp");function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0}else{var k2;for(k2 in obj){if(hasOwnProp(obj,k2)){return false}}return true}}__name(isObjectEmpty,"isObjectEmpty");function isUndefined(input){return input===void 0}__name(isUndefined,"isUndefined");function isNumber(input){return typeof input==="number"||Object.prototype.toString.call(input)==="[object Number]"}__name(isNumber,"isNumber");function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)==="[object Date]"}__name(isDate,"isDate");function map(arr,fn){var res=[],i,arrLen=arr.length;for(i=0;i<arrLen;++i){res.push(fn(arr[i],i))}return res}__name(map,"map");function extend(a3,b){for(var i in b){if(hasOwnProp(b,i)){a3[i]=b[i]}}if(hasOwnProp(b,"toString")){a3.toString=b.toString}if(hasOwnProp(b,"valueOf")){a3.valueOf=b.valueOf}return a3}__name(extend,"extend");function createUTC(input,format3,locale2,strict){return createLocalOrUTC(input,format3,locale2,strict,true).utc()}__name(createUTC,"createUTC");function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidEra:null,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],era:null,meridiem:null,rfc2822:false,weekdayMismatch:false}}__name(defaultParsingFlags,"defaultParsingFlags");function getParsingFlags(m2){if(m2._pf==null){m2._pf=defaultParsingFlags()}return m2._pf}__name(getParsingFlags,"getParsingFlags");var some;if(Array.prototype.some){some=Array.prototype.some}else{some=__name(function(fun){var t=Object(this),len=t.length>>>0,i;for(i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true}}return false},"some")}function isValid(m2){var flags=null,parsedParts=false,isNowValid=m2._d&&!isNaN(m2._d.getTime());if(isNowValid){flags=getParsingFlags(m2);parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null});isNowValid=flags.overflow<0&&!flags.empty&&!flags.invalidEra&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m2._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===void 0}}if(Object.isFrozen==null||!Object.isFrozen(m2)){m2._isValid=isNowValid}else{return isNowValid}return m2._isValid}__name(isValid,"isValid");function createInvalid(flags){var m2=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m2),flags)}else{getParsingFlags(m2).userInvalidated=true}return m2}__name(createInvalid,"createInvalid");var momentProperties=hooks.momentProperties=[],updateInProgress=false;function copyConfig(to2,from2){var i,prop,val,momentPropertiesLen=momentProperties.length;if(!isUndefined(from2._isAMomentObject)){to2._isAMomentObject=from2._isAMomentObject}if(!isUndefined(from2._i)){to2._i=from2._i}if(!isUndefined(from2._f)){to2._f=from2._f}if(!isUndefined(from2._l)){to2._l=from2._l}if(!isUndefined(from2._strict)){to2._strict=from2._strict}if(!isUndefined(from2._tzm)){to2._tzm=from2._tzm}if(!isUndefined(from2._isUTC)){to2._isUTC=from2._isUTC}if(!isUndefined(from2._offset)){to2._offset=from2._offset}if(!isUndefined(from2._pf)){to2._pf=getParsingFlags(from2)}if(!isUndefined(from2._locale)){to2._locale=from2._locale}if(momentPropertiesLen>0){for(i=0;i<momentPropertiesLen;i++){prop=momentProperties[i];val=from2[prop];if(!isUndefined(val)){to2[prop]=val}}}return to2}__name(copyConfig,"copyConfig");function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false}}__name(Moment,"Moment");function isMoment(obj){return obj instanceof Moment||obj!=null&&obj._isAMomentObject!=null}__name(isMoment,"isMoment");function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+msg)}}__name(warn,"warn");function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg)}if(firstTime){var args=[],arg,i,key,argLen=arguments.length;for(i=0;i<argLen;i++){arg="";if(typeof arguments[i]==="object"){arg+="\n["+i+"] ";for(key in arguments[0]){if(hasOwnProp(arguments[0],key)){arg+=key+": "+arguments[0][key]+", "}}arg=arg.slice(0,-2)}else{arg=arguments[i]}args.push(arg)}warn(msg+"\nArguments: "+Array.prototype.slice.call(args).join("")+"\n"+new Error().stack);firstTime=false}return fn.apply(this,arguments)},fn)}__name(deprecate,"deprecate");var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg)}if(!deprecations[name]){warn(msg);deprecations[name]=true}}__name(deprecateSimple,"deprecateSimple");hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return typeof Function!=="undefined"&&input instanceof Function||Object.prototype.toString.call(input)==="[object Function]"}__name(isFunction,"isFunction");function set(config){var prop,i;for(i in config){if(hasOwnProp(config,i)){prop=config[i];if(isFunction(prop)){this[i]=prop}else{this["_"+i]=prop}}}this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}__name(set,"set");function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop])}else if(childConfig[prop]!=null){res[prop]=childConfig[prop]}else{delete res[prop]}}}for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop])}}return res}__name(mergeConfigs,"mergeConfigs");function Locale(config){if(config!=null){this.set(config)}}__name(Locale,"Locale");var keys;if(Object.keys){keys=Object.keys}else{keys=__name(function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i)}}return res},"keys")}var defaultCalendar={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function calendar(key,mom,now2){var output=this._calendar[key]||this._calendar["sameElse"];return isFunction(output)?output.call(mom,now2):output}__name(calendar,"calendar");function zeroFill(number,targetLength,forceSign){var absNumber=""+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign2=number>=0;return(sign2?forceSign?"+":"":"-")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}__name(zeroFill,"zeroFill");var formattingTokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,formatFunctions={},formatTokenFunctions={};function addFormatToken(token2,padded,ordinal2,callback){var func=callback;if(typeof callback==="string"){func=__name(function(){return this[callback]()},"func")}if(token2){formatTokenFunctions[token2]=func}if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}}if(ordinal2){formatTokenFunctions[ordinal2]=function(){return this.localeData().ordinal(func.apply(this,arguments),token2)}}}__name(addFormatToken,"addFormatToken");function removeFormattingTokens(input){if(input.match(/\[[\s\S]/)){return input.replace(/^\[|\]$/g,"")}return input.replace(/\\/g,"")}__name(removeFormattingTokens,"removeFormattingTokens");function makeFormatFunction(format3){var array=format3.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output="",i2;for(i2=0;i2<length;i2++){output+=isFunction(array[i2])?array[i2].call(mom,format3):array[i2]}return output}}__name(makeFormatFunction,"makeFormatFunction");function formatMoment(m2,format3){if(!m2.isValid()){return m2.localeData().invalidDate()}format3=expandFormat(format3,m2.localeData());formatFunctions[format3]=formatFunctions[format3]||makeFormatFunction(format3);return formatFunctions[format3](m2)}__name(formatMoment,"formatMoment");function expandFormat(format3,locale2){var i=5;function replaceLongDateFormatTokens(input){return locale2.longDateFormat(input)||input}__name(replaceLongDateFormatTokens,"replaceLongDateFormatTokens");localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format3)){format3=format3.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format3}__name(expandFormat,"expandFormat");var defaultLongDateFormat={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function longDateFormat(key){var format3=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format3||!formatUpper){return format3}this._longDateFormat[key]=formatUpper.match(formattingTokens).map(function(tok){if(tok==="MMMM"||tok==="MM"||tok==="DD"||tok==="dddd"){return tok.slice(1)}return tok}).join("");return this._longDateFormat[key]}__name(longDateFormat,"longDateFormat");var defaultInvalidDate="Invalid date";function invalidDate(){return this._invalidDate}__name(invalidDate,"invalidDate");var defaultOrdinal="%d",defaultDayOfMonthOrdinalParse=/\d{1,2}/;function ordinal(number){return this._ordinal.replace("%d",number)}__name(ordinal,"ordinal");var defaultRelativeTime={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)}__name(relativeTime,"relativeTime");function pastFuture(diff2,output){var format3=this._relativeTime[diff2>0?"future":"past"];return isFunction(format3)?format3(output):format3.replace(/%s/i,output)}__name(pastFuture,"pastFuture");var aliases={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function normalizeUnits(units){return typeof units==="string"?aliases[units]||aliases[units.toLowerCase()]:void 0}__name(normalizeUnits,"normalizeUnits");function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}__name(normalizeObjectUnits,"normalizeObjectUnits");var priorities={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function getPrioritizedUnits(unitsObj){var units=[],u3;for(u3 in unitsObj){if(hasOwnProp(unitsObj,u3)){units.push({unit:u3,priority:priorities[u3]})}}units.sort(function(a3,b){return a3.priority-b.priority});return units}__name(getPrioritizedUnits,"getPrioritizedUnits");var match1=/\d/,match2=/\d\d/,match3=/\d{3}/,match4=/\d{4}/,match6=/[+-]?\d{6}/,match1to2=/\d\d?/,match3to4=/\d\d\d\d?/,match5to6=/\d\d\d\d\d\d?/,match1to3=/\d{1,3}/,match1to4=/\d{1,4}/,match1to6=/[+-]?\d{1,6}/,matchUnsigned=/\d+/,matchSigned=/[+-]?\d+/,matchOffset=/Z|[+-]\d\d:?\d\d/gi,matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi,matchTimestamp=/[+-]?\d+(\.\d{1,3})?/,matchWord=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,match1to2NoLeadingZero=/^[1-9]\d?/,match1to2HasZero=/^([1-9]\d|\d)/,regexes;regexes={};function addRegexToken(token2,regex,strictRegex){regexes[token2]=isFunction(regex)?regex:function(isStrict,localeData2){return isStrict&&strictRegex?strictRegex:regex}}__name(addRegexToken,"addRegexToken");function getParseRegexForToken(token2,config){if(!hasOwnProp(regexes,token2)){return new RegExp(unescapeFormat(token2))}return regexes[token2](config._strict,config._locale)}__name(getParseRegexForToken,"getParseRegexForToken");function unescapeFormat(s){return regexEscape(s.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4}))}__name(unescapeFormat,"unescapeFormat");function regexEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}__name(regexEscape,"regexEscape");function absFloor(number){if(number<0){return Math.ceil(number)||0}else{return Math.floor(number)}}__name(absFloor,"absFloor");function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber)}return value}__name(toInt,"toInt");var tokens={};function addParseToken(token2,callback){var i,func=callback,tokenLen;if(typeof token2==="string"){token2=[token2]}if(isNumber(callback)){func=__name(function(input,array){array[callback]=toInt(input)},"func")}tokenLen=token2.length;for(i=0;i<tokenLen;i++){tokens[token2[i]]=func}}__name(addParseToken,"addParseToken");function addWeekParseToken(token2,callback){addParseToken(token2,function(input,array,config,token3){config._w=config._w||{};callback(input,config._w,config,token3)})}__name(addWeekParseToken,"addWeekParseToken");function addTimeToArrayFromToken(token2,input,config){if(input!=null&&hasOwnProp(tokens,token2)){tokens[token2](input,config._a,config,token2)}}__name(addTimeToArrayFromToken,"addTimeToArrayFromToken");function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}__name(isLeapYear,"isLeapYear");var YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,WEEK=7,WEEKDAY=8;addFormatToken("Y",0,0,function(){var y=this.year();return y<=9999?zeroFill(y,4):"+"+y});addFormatToken(0,["YY",2],0,function(){return this.year()%100});addFormatToken(0,["YYYY",4],0,"year");addFormatToken(0,["YYYYY",5],0,"year");addFormatToken(0,["YYYYYY",6,true],0,"year");addRegexToken("Y",matchSigned);addRegexToken("YY",match1to2,match2);addRegexToken("YYYY",match1to4,match4);addRegexToken("YYYYY",match1to6,match6);addRegexToken("YYYYYY",match1to6,match6);addParseToken(["YYYYY","YYYYYY"],YEAR);addParseToken("YYYY",function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input)});addParseToken("YY",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)});addParseToken("Y",function(input,array){array[YEAR]=parseInt(input,10)});function daysInYear(year){return isLeapYear(year)?366:365}__name(daysInYear,"daysInYear");hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var getSetYear=makeGetSet("FullYear",true);function getIsLeapYear(){return isLeapYear(this.year())}__name(getIsLeapYear,"getIsLeapYear");function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this}else{return get(this,unit)}}}__name(makeGetSet,"makeGetSet");function get(mom,unit){if(!mom.isValid()){return NaN}var d3=mom._d,isUTC=mom._isUTC;switch(unit){case"Milliseconds":return isUTC?d3.getUTCMilliseconds():d3.getMilliseconds();case"Seconds":return isUTC?d3.getUTCSeconds():d3.getSeconds();case"Minutes":return isUTC?d3.getUTCMinutes():d3.getMinutes();case"Hours":return isUTC?d3.getUTCHours():d3.getHours();case"Date":return isUTC?d3.getUTCDate():d3.getDate();case"Day":return isUTC?d3.getUTCDay():d3.getDay();case"Month":return isUTC?d3.getUTCMonth():d3.getMonth();case"FullYear":return isUTC?d3.getUTCFullYear():d3.getFullYear();default:return NaN}}__name(get,"get");function set$1(mom,unit,value){var d3,isUTC,year,month,date;if(!mom.isValid()||isNaN(value)){return}d3=mom._d;isUTC=mom._isUTC;switch(unit){case"Milliseconds":return void(isUTC?d3.setUTCMilliseconds(value):d3.setMilliseconds(value));case"Seconds":return void(isUTC?d3.setUTCSeconds(value):d3.setSeconds(value));case"Minutes":return void(isUTC?d3.setUTCMinutes(value):d3.setMinutes(value));case"Hours":return void(isUTC?d3.setUTCHours(value):d3.setHours(value));case"Date":return void(isUTC?d3.setUTCDate(value):d3.setDate(value));case"FullYear":break;default:return}year=value;month=mom.month();date=mom.date();date=date===29&&month===1&&!isLeapYear(year)?28:date;void(isUTC?d3.setUTCFullYear(year,month,date):d3.setFullYear(year,month,date))}__name(set$1,"set$1");function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]()}return this}__name(stringGet,"stringGet");function stringSet(units,value){if(typeof units==="object"){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units),i,prioritizedLen=prioritized.length;for(i=0;i<prioritizedLen;i++){this[prioritized[i].unit](units[prioritized[i].unit])}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value)}}return this}__name(stringSet,"stringSet");function mod(n,x){return(n%x+x)%x}__name(mod,"mod");var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf}else{indexOf=__name(function(o2){var i;for(i=0;i<this.length;++i){if(this[i]===o2){return i}}return-1},"indexOf")}function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN}var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-modMonth%7%2}__name(daysInMonth,"daysInMonth");addFormatToken("M",["MM",2],"Mo",function(){return this.month()+1});addFormatToken("MMM",0,0,function(format3){return this.localeData().monthsShort(this,format3)});addFormatToken("MMMM",0,0,function(format3){return this.localeData().months(this,format3)});addRegexToken("M",match1to2,match1to2NoLeadingZero);addRegexToken("MM",match1to2,match2);addRegexToken("MMM",function(isStrict,locale2){return locale2.monthsShortRegex(isStrict)});addRegexToken("MMMM",function(isStrict,locale2){return locale2.monthsRegex(isStrict)});addParseToken(["M","MM"],function(input,array){array[MONTH]=toInt(input)-1});addParseToken(["MMM","MMMM"],function(input,array,config,token2){var month=config._locale.monthsParse(input,token2,config._strict);if(month!=null){array[MONTH]=month}else{getParsingFlags(config).invalidMonth=input}});var defaultLocaleMonths="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),defaultLocaleMonthsShort="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,defaultMonthsShortRegex=matchWord,defaultMonthsRegex=matchWord;function localeMonths(m2,format3){if(!m2){return isArray(this._months)?this._months:this._months["standalone"]}return isArray(this._months)?this._months[m2.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format3)?"format":"standalone"][m2.month()]}__name(localeMonths,"localeMonths");function localeMonthsShort(m2,format3){if(!m2){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort["standalone"]}return isArray(this._monthsShort)?this._monthsShort[m2.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format3)?"format":"standalone"][m2.month()]}__name(localeMonthsShort,"localeMonthsShort");function handleStrictParse(monthName,format3,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2e3,i]);this._shortMonthsParse[i]=this.monthsShort(mom,"").toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,"").toLocaleLowerCase()}}if(strict){if(format3==="MMM"){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}}else{if(format3==="MMM"){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}}}__name(handleStrictParse,"handleStrictParse");function localeMonthsParse(monthName,format3,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format3,strict)}if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=createUTC([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp("^"+this.months(mom,"").replace(".","")+"$","i");this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(mom,"").replace(".","")+"$","i")}if(!strict&&!this._monthsParse[i]){regex="^"+this.months(mom,"")+"|^"+this.monthsShort(mom,"");this._monthsParse[i]=new RegExp(regex.replace(".",""),"i")}if(strict&&format3==="MMMM"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format3==="MMM"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}}__name(localeMonthsParse,"localeMonthsParse");function setMonth(mom,value){if(!mom.isValid()){return mom}if(typeof value==="string"){if(/^\d+$/.test(value)){value=toInt(value)}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom}}}var month=value,date=mom.date();date=date<29?date:Math.min(date,daysInMonth(mom.year(),month));void(mom._isUTC?mom._d.setUTCMonth(month,date):mom._d.setMonth(month,date));return mom}__name(setMonth,"setMonth");function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this}else{return get(this,"Month")}}__name(getSetMonth,"getSetMonth");function getDaysInMonth(){return daysInMonth(this.year(),this.month())}__name(getDaysInMonth,"getDaysInMonth");function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,"_monthsRegex")){computeMonthsParse.call(this)}if(isStrict){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!hasOwnProp(this,"_monthsShortRegex")){this._monthsShortRegex=defaultMonthsShortRegex}return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex}}__name(monthsShortRegex,"monthsShortRegex");function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,"_monthsRegex")){computeMonthsParse.call(this)}if(isStrict){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!hasOwnProp(this,"_monthsRegex")){this._monthsRegex=defaultMonthsRegex}return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex}}__name(monthsRegex,"monthsRegex");function computeMonthsParse(){function cmpLenRev(a3,b){return b.length-a3.length}__name(cmpLenRev,"cmpLenRev");var shortPieces=[],longPieces=[],mixedPieces=[],i,mom,shortP,longP;for(i=0;i<12;i++){mom=createUTC([2e3,i]);shortP=regexEscape(this.monthsShort(mom,""));longP=regexEscape(this.months(mom,""));shortPieces.push(shortP);longPieces.push(longP);mixedPieces.push(longP);mixedPieces.push(shortP)}shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);this._monthsRegex=new RegExp("^("+mixedPieces.join("|")+")","i");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp("^("+longPieces.join("|")+")","i");this._monthsShortStrictRegex=new RegExp("^("+shortPieces.join("|")+")","i")}__name(computeMonthsParse,"computeMonthsParse");function createDate(y,m2,d3,h,M,s,ms){var date;if(y<100&&y>=0){date=new Date(y+400,m2,d3,h,M,s,ms);if(isFinite(date.getFullYear())){date.setFullYear(y)}}else{date=new Date(y,m2,d3,h,M,s,ms)}return date}__name(createDate,"createDate");function createUTCDate(y){var date,args;if(y<100&&y>=0){args=Array.prototype.slice.call(arguments);args[0]=y+400;date=new Date(Date.UTC.apply(null,args));if(isFinite(date.getUTCFullYear())){date.setUTCFullYear(y)}}else{date=new Date(Date.UTC.apply(null,arguments))}return date}__name(createUTCDate,"createUTCDate");function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1}__name(firstWeekOffset,"firstWeekOffset");function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year)}else{resYear=year;resDayOfYear=dayOfYear}return{year:resYear,dayOfYear:resDayOfYear}}__name(dayOfYearFromWeeks,"dayOfYearFromWeeks");function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy)}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1}else{resYear=mom.year();resWeek=week}return{week:resWeek,year:resYear}}__name(weekOfYear,"weekOfYear");function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}__name(weeksInYear,"weeksInYear");addFormatToken("w",["ww",2],"wo","week");addFormatToken("W",["WW",2],"Wo","isoWeek");addRegexToken("w",match1to2,match1to2NoLeadingZero);addRegexToken("ww",match1to2,match2);addRegexToken("W",match1to2,match1to2NoLeadingZero);addRegexToken("WW",match1to2,match2);addWeekParseToken(["w","ww","W","WW"],function(input,week,config,token2){week[token2.substr(0,1)]=toInt(input)});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week}__name(localeWeek,"localeWeek");var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}__name(localeFirstDayOfWeek,"localeFirstDayOfWeek");function localeFirstDayOfYear(){return this._week.doy}__name(localeFirstDayOfYear,"localeFirstDayOfYear");function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,"d")}__name(getSetWeek,"getSetWeek");function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,"d")}__name(getSetISOWeek,"getSetISOWeek");addFormatToken("d",0,"do","day");addFormatToken("dd",0,0,function(format3){return this.localeData().weekdaysMin(this,format3)});addFormatToken("ddd",0,0,function(format3){return this.localeData().weekdaysShort(this,format3)});addFormatToken("dddd",0,0,function(format3){return this.localeData().weekdays(this,format3)});addFormatToken("e",0,0,"weekday");addFormatToken("E",0,0,"isoWeekday");addRegexToken("d",match1to2);addRegexToken("e",match1to2);addRegexToken("E",match1to2);addRegexToken("dd",function(isStrict,locale2){return locale2.weekdaysMinRegex(isStrict)});addRegexToken("ddd",function(isStrict,locale2){return locale2.weekdaysShortRegex(isStrict)});addRegexToken("dddd",function(isStrict,locale2){return locale2.weekdaysRegex(isStrict)});addWeekParseToken(["dd","ddd","dddd"],function(input,week,config,token2){var weekday=config._locale.weekdaysParse(input,token2,config._strict);if(weekday!=null){week.d=weekday}else{getParsingFlags(config).invalidWeekday=input}});addWeekParseToken(["d","e","E"],function(input,week,config,token2){week[token2]=toInt(input)});function parseWeekday(input,locale2){if(typeof input!=="string"){return input}if(!isNaN(input)){return parseInt(input,10)}input=locale2.weekdaysParse(input);if(typeof input==="number"){return input}return null}__name(parseWeekday,"parseWeekday");function parseIsoWeekday(input,locale2){if(typeof input==="string"){return locale2.weekdaysParse(input)%7||7}return isNaN(input)?null:input}__name(parseIsoWeekday,"parseIsoWeekday");function shiftWeekdays(ws,n){return ws.slice(n,7).concat(ws.slice(0,n))}__name(shiftWeekdays,"shiftWeekdays");var defaultLocaleWeekdays="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),defaultLocaleWeekdaysShort="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),defaultLocaleWeekdaysMin="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),defaultWeekdaysRegex=matchWord,defaultWeekdaysShortRegex=matchWord,defaultWeekdaysMinRegex=matchWord;function localeWeekdays(m2,format3){var weekdays=isArray(this._weekdays)?this._weekdays:this._weekdays[m2&&m2!==true&&this._weekdays.isFormat.test(format3)?"format":"standalone"];return m2===true?shiftWeekdays(weekdays,this._week.dow):m2?weekdays[m2.day()]:weekdays}__name(localeWeekdays,"localeWeekdays");function localeWeekdaysShort(m2){return m2===true?shiftWeekdays(this._weekdaysShort,this._week.dow):m2?this._weekdaysShort[m2.day()]:this._weekdaysShort}__name(localeWeekdaysShort,"localeWeekdaysShort");function localeWeekdaysMin(m2){return m2===true?shiftWeekdays(this._weekdaysMin,this._week.dow):m2?this._weekdaysMin[m2.day()]:this._weekdaysMin}__name(localeWeekdaysMin,"localeWeekdaysMin");function handleStrictParse$1(weekdayName,format3,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,"").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,"").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,"").toLocaleLowerCase()}}if(strict){if(format3==="dddd"){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format3==="ddd"){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}}else{if(format3==="dddd"){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else if(format3==="ddd"){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}}}__name(handleStrictParse$1,"handleStrictParse$1");function localeWeekdaysParse(weekdayName,format3,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format3,strict)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(mom,"").replace(".","\\.?")+"$","i");this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(mom,"").replace(".","\\.?")+"$","i");this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(mom,"").replace(".","\\.?")+"$","i")}if(!this._weekdaysParse[i]){regex="^"+this.weekdays(mom,"")+"|^"+this.weekdaysShort(mom,"")+"|^"+this.weekdaysMin(mom,"");this._weekdaysParse[i]=new RegExp(regex.replace(".",""),"i")}if(strict&&format3==="dddd"&&this._fullWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format3==="ddd"&&this._shortWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format3==="dd"&&this._minWeekdaysParse[i].test(weekdayName)){return i}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i}}}__name(localeWeekdaysParse,"localeWeekdaysParse");function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var day=get(this,"Day");if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,"d")}else{return day}}__name(getSetDayOfWeek,"getSetDayOfWeek");function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,"d")}__name(getSetLocaleDayOfWeek,"getSetLocaleDayOfWeek");function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}else{return this.day()||7}}__name(getSetISODayOfWeek,"getSetISODayOfWeek");function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,"_weekdaysRegex")){this._weekdaysRegex=defaultWeekdaysRegex}return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex}}__name(weekdaysRegex,"weekdaysRegex");function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,"_weekdaysShortRegex")){this._weekdaysShortRegex=defaultWeekdaysShortRegex}return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}__name(weekdaysShortRegex,"weekdaysShortRegex");function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,"_weekdaysMinRegex")){this._weekdaysMinRegex=defaultWeekdaysMinRegex}return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}__name(weekdaysMinRegex,"weekdaysMinRegex");function computeWeekdaysParse(){function cmpLenRev(a3,b){return b.length-a3.length}__name(cmpLenRev,"cmpLenRev");var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);minp=regexEscape(this.weekdaysMin(mom,""));shortp=regexEscape(this.weekdaysShort(mom,""));longp=regexEscape(this.weekdays(mom,""));minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp)}minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);this._weekdaysRegex=new RegExp("^("+mixedPieces.join("|")+")","i");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp("^("+longPieces.join("|")+")","i");this._weekdaysShortStrictRegex=new RegExp("^("+shortPieces.join("|")+")","i");this._weekdaysMinStrictRegex=new RegExp("^("+minPieces.join("|")+")","i")}__name(computeWeekdaysParse,"computeWeekdaysParse");function hFormat(){return this.hours()%12||12}__name(hFormat,"hFormat");function kFormat(){return this.hours()||24}__name(kFormat,"kFormat");addFormatToken("H",["HH",2],0,"hour");addFormatToken("h",["hh",2],0,hFormat);addFormatToken("k",["kk",2],0,kFormat);addFormatToken("hmm",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)});addFormatToken("hmmss",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});addFormatToken("Hmm",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)});addFormatToken("Hmmss",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(token2,lowercase){addFormatToken(token2,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}__name(meridiem,"meridiem");meridiem("a",true);meridiem("A",false);function matchMeridiem(isStrict,locale2){return locale2._meridiemParse}__name(matchMeridiem,"matchMeridiem");addRegexToken("a",matchMeridiem);addRegexToken("A",matchMeridiem);addRegexToken("H",match1to2,match1to2HasZero);addRegexToken("h",match1to2,match1to2NoLeadingZero);addRegexToken("k",match1to2,match1to2NoLeadingZero);addRegexToken("HH",match1to2,match2);addRegexToken("hh",match1to2,match2);addRegexToken("kk",match1to2,match2);addRegexToken("hmm",match3to4);addRegexToken("hmmss",match5to6);addRegexToken("Hmm",match3to4);addRegexToken("Hmmss",match5to6);addParseToken(["H","HH"],HOUR);addParseToken(["k","kk"],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput});addParseToken(["a","A"],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input});addParseToken(["h","hh"],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true});addParseToken("hmm",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true});addParseToken("hmmss",function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true});addParseToken("Hmm",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos))});addParseToken("Hmmss",function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2))});function localeIsPM(input){return(input+"").toLowerCase().charAt(0)==="p"}__name(localeIsPM,"localeIsPM");var defaultLocaleMeridiemParse=/[ap]\.?m?\.?/i,getSetHour=makeGetSet("Hours",true);function localeMeridiem(hours2,minutes2,isLower){if(hours2>11){return isLower?"pm":"PM"}else{return isLower?"am":"AM"}}__name(localeMeridiem,"localeMeridiem");var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={},localeFamilies={},globalLocale;function commonPrefix(arr1,arr2){var i,minl=Math.min(arr1.length,arr2.length);for(i=0;i<minl;i+=1){if(arr1[i]!==arr2[i]){return i}}return minl}__name(commonPrefix,"commonPrefix");function normalizeLocale(key){return key?key.toLowerCase().replace("_","-"):key}__name(normalizeLocale,"normalizeLocale");function chooseLocale(names){var i=0,j2,next,locale2,split;while(i<names.length){split=normalizeLocale(names[i]).split("-");j2=split.length;next=normalizeLocale(names[i+1]);next=next?next.split("-"):null;while(j2>0){locale2=loadLocale(split.slice(0,j2).join("-"));if(locale2){return locale2}if(next&&next.length>=j2&&commonPrefix(split,next)>=j2-1){break}j2--}i++}return globalLocale}__name(chooseLocale,"chooseLocale");function isLocaleNameSane(name){return!!(name&&name.match("^[^/\\\\]*$"))}__name(isLocaleNameSane,"isLocaleNameSane");function loadLocale(name){var oldLocale=null,aliasedRequire;if(locales[name]===void 0&&typeof module2!=="undefined"&&module2&&module2.exports&&isLocaleNameSane(name)){try{oldLocale=globalLocale._abbr;aliasedRequire=require;aliasedRequire("./locale/"+name);getSetGlobalLocale(oldLocale)}catch(e){locales[name]=null}}return locales[name]}__name(loadLocale,"loadLocale");function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key)}else{data=defineLocale(key,values)}if(data){globalLocale=data}else{if(typeof console!=="undefined"&&console.warn){console.warn("Locale "+key+" not found. Did you forget to load it?")}}}return globalLocale._abbr}__name(getSetGlobalLocale,"getSetGlobalLocale");function defineLocale(name,config){if(config!==null){var locale2,parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.");parentConfig=locales[name]._config}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config}else{locale2=loadLocale(config.parentLocale);if(locale2!=null){parentConfig=locale2._config}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[]}localeFamilies[config.parentLocale].push({name,config});return null}}}locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)})}getSetGlobalLocale(name);return locales[name]}else{delete locales[name];return null}}__name(defineLocale,"defineLocale");function updateLocale(name,config){if(config!=null){var locale2,tmpLocale,parentConfig=baseConfig;if(locales[name]!=null&&locales[name].parentLocale!=null){locales[name].set(mergeConfigs(locales[name]._config,config))}else{tmpLocale=loadLocale(name);if(tmpLocale!=null){parentConfig=tmpLocale._config}config=mergeConfigs(parentConfig,config);if(tmpLocale==null){config.abbr=name}locale2=new Locale(config);locale2.parentLocale=locales[name];locales[name]=locale2}getSetGlobalLocale(name)}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale;if(name===getSetGlobalLocale()){getSetGlobalLocale(name)}}else if(locales[name]!=null){delete locales[name]}}}return locales[name]}__name(updateLocale,"updateLocale");function getLocale(key){var locale2;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return globalLocale}if(!isArray(key)){locale2=loadLocale(key);if(locale2){return locale2}key=[key]}return chooseLocale(key)}__name(getLocale,"getLocale");function listLocales(){return keys(locales)}__name(listLocales,"listLocales");function checkOverflow(m2){var overflow,a3=m2._a;if(a3&&getParsingFlags(m2).overflow===-2){overflow=a3[MONTH]<0||a3[MONTH]>11?MONTH:a3[DATE]<1||a3[DATE]>daysInMonth(a3[YEAR],a3[MONTH])?DATE:a3[HOUR]<0||a3[HOUR]>24||a3[HOUR]===24&&(a3[MINUTE]!==0||a3[SECOND]!==0||a3[MILLISECOND]!==0)?HOUR:a3[MINUTE]<0||a3[MINUTE]>59?MINUTE:a3[SECOND]<0||a3[SECOND]>59?SECOND:a3[MILLISECOND]<0||a3[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m2)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}if(getParsingFlags(m2)._overflowWeeks&&overflow===-1){overflow=WEEK}if(getParsingFlags(m2)._overflowWeekday&&overflow===-1){overflow=WEEKDAY}getParsingFlags(m2).overflow=overflow}return m2}__name(checkOverflow,"checkOverflow");var extendedIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,basicIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tzRegex=/Z|[+-]\d\d(?::?\d\d)?/,isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,false],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,false],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,false],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,false],["YYYY",/\d{4}/,false]],isoTimes=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],aspNetJsonRegex=/^\/?Date\((-?\d+)/i,rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function configFromISO(config){var i,l3,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat,isoDatesLen=isoDates.length,isoTimesLen=isoTimes.length;if(match){getParsingFlags(config).iso=true;for(i=0,l3=isoDatesLen;i<l3;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break}}if(dateFormat==null){config._isValid=false;return}if(match[3]){for(i=0,l3=isoTimesLen;i<l3;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||" ")+isoTimes[i][0];break}}if(timeFormat==null){config._isValid=false;return}}if(!allowTime&&timeFormat!=null){config._isValid=false;return}if(match[4]){if(tzRegex.exec(match[4])){tzFormat="Z"}else{config._isValid=false;return}}config._f=dateFormat+(timeFormat||"")+(tzFormat||"");configFromStringAndFormat(config)}else{config._isValid=false}}__name(configFromISO,"configFromISO");function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10))}return result}__name(extractFromRFC2822Strings,"extractFromRFC2822Strings");function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2e3+year}else if(year<=999){return 1900+year}return year}__name(untruncateYear,"untruncateYear");function preprocessRFC2822(s){return s.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}__name(preprocessRFC2822,"preprocessRFC2822");function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false}}return true}__name(checkWeekday,"checkWeekday");function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset]}else if(militaryOffset){return 0}else{var hm=parseInt(numOffset,10),m2=hm%100,h=(hm-m2)/100;return h*60+m2}}__name(calculateOffset,"calculateOffset");function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i)),parsedArray;if(match){parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return}config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true}else{config._isValid=false}}__name(configFromRFC2822,"configFromRFC2822");function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return}configFromISO(config);if(config._isValid===false){delete config._isValid}else{return}configFromRFC2822(config);if(config._isValid===false){delete config._isValid}else{return}if(config._strict){config._isValid=false}else{hooks.createFromInputFallback(config)}}__name(configFromString,"configFromString");hooks.createFromInputFallback=deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(config){config._d=new Date(config._i+(config._useUTC?" UTC":""))});function defaults(a3,b,c2){if(a3!=null){return a3}if(b!=null){return b}return c2}__name(defaults,"defaults");function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]}return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}__name(currentDateArray,"currentDateArray");function configFromArray(config){var i,date,input=[],currentDate,expectedWeekday,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true}date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);expectedWeekday=config._useUTC?config._d.getUTCDay():config._d.getDay();if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}if(config._w&&typeof config._w.d!=="undefined"&&config._w.d!==expectedWeekday){getParsingFlags(config).weekdayMismatch=true}}__name(configFromArray,"configFromArray");function dayOfYearFromWeekInfo(config){var w2,weekYear,week,weekday,dow,doy,temp,weekdayOverflow,curWeek;w2=config._w;if(w2.GG!=null||w2.W!=null||w2.E!=null){dow=1;doy=4;weekYear=defaults(w2.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w2.W,1);weekday=defaults(w2.E,1);if(weekday<1||weekday>7){weekdayOverflow=true}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w2.gg,config._a[YEAR],curWeek.year);week=defaults(w2.w,curWeek.week);if(w2.d!=null){weekday=w2.d;if(weekday<0||weekday>6){weekdayOverflow=true}}else if(w2.e!=null){weekday=w2.e+dow;if(w2.e<0||w2.e>6){weekdayOverflow=true}}else{weekday=dow}}if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}}__name(dayOfYearFromWeekInfo,"dayOfYearFromWeekInfo");hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return}if(config._f===hooks.RFC_2822){configFromRFC2822(config);return}config._a=[];getParsingFlags(config).empty=true;var string=""+config._i,i,parsedInput,tokens2,token2,skipped,stringLength=string.length,totalParsedInputLength=0,era,tokenLen;tokens2=expandFormat(config._f,config._locale).match(formattingTokens)||[];tokenLen=tokens2.length;for(i=0;i<tokenLen;i++){token2=tokens2[i];parsedInput=(string.match(getParseRegexForToken(token2,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token2]){if(parsedInput){getParsingFlags(config).empty=false}else{getParsingFlags(config).unusedTokens.push(token2)}addTimeToArrayFromToken(token2,parsedInput,config)}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token2)}}getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string)}if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=void 0}getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);era=getParsingFlags(config).era;if(era!==null){config._a[YEAR]=config._locale.erasConvertYear(era,config._a[YEAR])}configFromArray(config);checkOverflow(config)}__name(configFromStringAndFormat,"configFromStringAndFormat");function meridiemFixWrap(locale2,hour,meridiem2){var isPm;if(meridiem2==null){return hour}if(locale2.meridiemHour!=null){return locale2.meridiemHour(hour,meridiem2)}else if(locale2.isPM!=null){isPm=locale2.isPM(meridiem2);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}__name(meridiemFixWrap,"meridiemFixWrap");function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore,validFormatFound,bestFormatIsValid=false,configfLen=config._f.length;if(configfLen===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<configfLen;i++){currentScore=0;validFormatFound=false;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(isValid(tempConfig)){validFormatFound=true}currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(!bestFormatIsValid){if(scoreToBeat==null||currentScore<scoreToBeat||validFormatFound){scoreToBeat=currentScore;bestMoment=tempConfig;if(validFormatFound){bestFormatIsValid=true}}}else{if(currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}}extend(config,bestMoment||tempConfig)}__name(configFromStringAndArray,"configFromStringAndArray");function configFromObject(config){if(config._d){return}var i=normalizeObjectUnits(config._i),dayOrDate=i.day===void 0?i.date:i.day;config._a=map([i.year,i.month,dayOrDate,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)});configFromArray(config)}__name(configFromObject,"configFromObject");function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,"d");res._nextDay=void 0}return res}__name(createFromConfig,"createFromConfig");function prepareConfig(config){var input=config._i,format3=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||format3===void 0&&input===""){return createInvalid({nullInput:true})}if(typeof input==="string"){config._i=input=config._locale.preparse(input)}if(isMoment(input)){return new Moment(checkOverflow(input))}else if(isDate(input)){config._d=input}else if(isArray(format3)){configFromStringAndArray(config)}else if(format3){configFromStringAndFormat(config)}else{configFromInput(config)}if(!isValid(config)){config._d=null}return config}__name(prepareConfig,"prepareConfig");function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now())}else if(isDate(input)){config._d=new Date(input.valueOf())}else if(typeof input==="string"){configFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});configFromArray(config)}else if(isObject(input)){configFromObject(config)}else if(isNumber(input)){config._d=new Date(input)}else{hooks.createFromInputFallback(config)}}__name(configFromInput,"configFromInput");function createLocalOrUTC(input,format3,locale2,strict,isUTC){var c2={};if(format3===true||format3===false){strict=format3;format3=void 0}if(locale2===true||locale2===false){strict=locale2;locale2=void 0}if(isObject(input)&&isObjectEmpty(input)||isArray(input)&&input.length===0){input=void 0}c2._isAMomentObject=true;c2._useUTC=c2._isUTC=isUTC;c2._l=locale2;c2._i=input;c2._f=format3;c2._strict=strict;return createFromConfig(c2)}__name(createLocalOrUTC,"createLocalOrUTC");function createLocal(input,format3,locale2,strict){return createLocalOrUTC(input,format3,locale2,strict,false)}__name(createLocal,"createLocal");var prototypeMin=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{return createInvalid()}}),prototypeMax=deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other}else{return createInvalid()}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return createLocal()}res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i]}}return res}__name(pickBy,"pickBy");function min(){var args=[].slice.call(arguments,0);return pickBy("isBefore",args)}__name(min,"min");function max(){var args=[].slice.call(arguments,0);return pickBy("isAfter",args)}__name(max,"max");var now=__name(function(){return Date.now?Date.now():+new Date},"now");var ordering=["year","quarter","month","week","day","hour","minute","second","millisecond"];function isDurationValid(m2){var key,unitHasDecimal=false,i,orderLen=ordering.length;for(key in m2){if(hasOwnProp(m2,key)&&!(indexOf.call(ordering,key)!==-1&&(m2[key]==null||!isNaN(m2[key])))){return false}}for(i=0;i<orderLen;++i){if(m2[ordering[i]]){if(unitHasDecimal){return false}if(parseFloat(m2[ordering[i]])!==toInt(m2[ordering[i]])){unitHasDecimal=true}}}return true}__name(isDurationValid,"isDurationValid");function isValid$1(){return this._isValid}__name(isValid$1,"isValid$1");function createInvalid$1(){return createDuration(NaN)}__name(createInvalid$1,"createInvalid$1");function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years2=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months2=normalizedInput.month||0,weeks2=normalizedInput.week||normalizedInput.isoWeek||0,days2=normalizedInput.day||0,hours2=normalizedInput.hour||0,minutes2=normalizedInput.minute||0,seconds2=normalizedInput.second||0,milliseconds2=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds2+seconds2*1e3+minutes2*6e4+hours2*1e3*60*60;this._days=+days2+weeks2*7;this._months=+months2+quarters*3+years2*12;this._data={};this._locale=getLocale();this._bubble()}__name(Duration,"Duration");function isDuration(obj){return obj instanceof Duration}__name(isDuration,"isDuration");function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}__name(absRound,"absRound");function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}__name(compareArrays,"compareArrays");function offset(token2,separator){addFormatToken(token2,0,0,function(){var offset2=this.utcOffset(),sign2="+";if(offset2<0){offset2=-offset2;sign2="-"}return sign2+zeroFill(~~(offset2/60),2)+separator+zeroFill(~~offset2%60,2)})}__name(offset,"offset");offset("Z",":");offset("ZZ","");addRegexToken("Z",matchShortOffset);addRegexToken("ZZ",matchShortOffset);addParseToken(["Z","ZZ"],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(matcher,string){var matches=(string||"").match(matcher),chunk,parts,minutes2;if(matches===null){return null}chunk=matches[matches.length-1]||[];parts=(chunk+"").match(chunkOffset)||["-",0,0];minutes2=+(parts[1]*60)+toInt(parts[2]);return minutes2===0?0:parts[0]==="+"?minutes2:-minutes2}__name(offsetFromString,"offsetFromString");function cloneWithOffset(input,model){var res,diff2;if(model._isUTC){res=model.clone();diff2=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff2);hooks.updateOffset(res,false);return res}else{return createLocal(input).local()}}__name(cloneWithOffset,"cloneWithOffset");function getDateOffset(m2){return-Math.round(m2._d.getTimezoneOffset())}__name(getDateOffset,"getDateOffset");hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset2=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input==="string"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,"m")}if(offset2!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset2,"m"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset2:getDateOffset(this)}}__name(getSetOffset,"getSetOffset");function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!=="string"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}__name(getSetZone,"getSetZone");function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime)}__name(setOffsetToUTC,"setOffsetToUTC");function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),"m")}}return this}__name(setOffsetToLocal,"setOffsetToLocal");function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true)}else if(typeof this._i==="string"){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone)}else{this.utcOffset(0,true)}}return this}__name(setOffsetToParsedOffset,"setOffsetToParsedOffset");function hasAlignedHourOffset(input){if(!this.isValid()){return false}input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0}__name(hasAlignedHourOffset,"hasAlignedHourOffset");function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}__name(isDaylightSavingTime,"isDaylightSavingTime");function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var c2={},other;copyConfig(c2,this);c2=prepareConfig(c2);if(c2._a){other=c2._isUTC?createUTC(c2._a):createLocal(c2._a);this._isDSTShifted=this.isValid()&&compareArrays(c2._a,other.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}__name(isDaylightSavingTimeShifted,"isDaylightSavingTimeShifted");function isLocal(){return this.isValid()?!this._isUTC:false}__name(isLocal,"isLocal");function isUtcOffset(){return this.isValid()?this._isUTC:false}__name(isUtcOffset,"isUtcOffset");function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}__name(isUtc,"isUtc");var aspNetRegex=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign2,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(isNumber(input)||!isNaN(+input)){duration={};if(key){duration[key]=+input}else{duration.milliseconds=+input}}else if(match=aspNetRegex.exec(input)){sign2=match[1]==="-"?-1:1;duration={y:0,d:toInt(match[DATE])*sign2,h:toInt(match[HOUR])*sign2,m:toInt(match[MINUTE])*sign2,s:toInt(match[SECOND])*sign2,ms:toInt(absRound(match[MILLISECOND]*1e3))*sign2}}else if(match=isoRegex.exec(input)){sign2=match[1]==="-"?-1:1;duration={y:parseIso(match[2],sign2),M:parseIso(match[3],sign2),w:parseIso(match[4],sign2),d:parseIso(match[5],sign2),h:parseIso(match[6],sign2),m:parseIso(match[7],sign2),s:parseIso(match[8],sign2)}}else if(duration==null){duration={}}else if(typeof duration==="object"&&("from"in duration||"to"in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,"_locale")){ret._locale=input._locale}if(isDuration(input)&&hasOwnProp(input,"_isValid")){ret._isValid=input._isValid}return ret}__name(createDuration,"createDuration");createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign2){var res=inp&&parseFloat(inp.replace(",","."));return(isNaN(res)?0:res)*sign2}__name(parseIso,"parseIso");function positiveMomentsDifference(base,other){var res={};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,"M").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,"M");return res}__name(positiveMomentsDifference,"positiveMomentsDifference");function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0}}other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}__name(momentsDifference,"momentsDifference");function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,"moment()."+name+"(period, number) is deprecated. Please use moment()."+name+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.");tmp=val;val=period;period=tmp}dur=createDuration(val,period);addSubtract(this,dur,direction);return this}}__name(createAdder,"createAdder");function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds2=duration._milliseconds,days2=absRound(duration._days),months2=absRound(duration._months);if(!mom.isValid()){return}updateOffset=updateOffset==null?true:updateOffset;if(months2){setMonth(mom,get(mom,"Month")+months2*isAdding)}if(days2){set$1(mom,"Date",get(mom,"Date")+days2*isAdding)}if(milliseconds2){mom._d.setTime(mom._d.valueOf()+milliseconds2*isAdding)}if(updateOffset){hooks.updateOffset(mom,days2||months2)}}__name(addSubtract,"addSubtract");var add=createAdder(1,"add"),subtract=createAdder(-1,"subtract");function isString(input){return typeof input==="string"||input instanceof String}__name(isString,"isString");function isMomentInput(input){return isMoment(input)||isDate(input)||isString(input)||isNumber(input)||isNumberOrStringArray(input)||isMomentInputObject(input)||input===null||input===void 0}__name(isMomentInput,"isMomentInput");function isMomentInputObject(input){var objectTest=isObject(input)&&!isObjectEmpty(input),propertyTest=false,properties=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],i,property,propertyLen=properties.length;for(i=0;i<propertyLen;i+=1){property=properties[i];propertyTest=propertyTest||hasOwnProp(input,property)}return objectTest&&propertyTest}__name(isMomentInputObject,"isMomentInputObject");function isNumberOrStringArray(input){var arrayTest=isArray(input),dataTypeTest=false;if(arrayTest){dataTypeTest=input.filter(function(item){return!isNumber(item)&&isString(input)}).length===0}return arrayTest&&dataTypeTest}__name(isNumberOrStringArray,"isNumberOrStringArray");function isCalendarSpec(input){var objectTest=isObject(input)&&!isObjectEmpty(input),propertyTest=false,properties=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],i,property;for(i=0;i<properties.length;i+=1){property=properties[i];propertyTest=propertyTest||hasOwnProp(input,property)}return objectTest&&propertyTest}__name(isCalendarSpec,"isCalendarSpec");function getCalendarFormat(myMoment,now2){var diff2=myMoment.diff(now2,"days",true);return diff2<-6?"sameElse":diff2<-1?"lastWeek":diff2<0?"lastDay":diff2<1?"sameDay":diff2<2?"nextDay":diff2<7?"nextWeek":"sameElse"}__name(getCalendarFormat,"getCalendarFormat");function calendar$1(time,formats){if(arguments.length===1){if(!arguments[0]){time=void 0;formats=void 0}else if(isMomentInput(arguments[0])){time=arguments[0];formats=void 0}else if(isCalendarSpec(arguments[0])){formats=arguments[0];time=void 0}}var now2=time||createLocal(),sod=cloneWithOffset(now2,this).startOf("day"),format3=hooks.calendarFormat(this,sod)||"sameElse",output=formats&&(isFunction(formats[format3])?formats[format3].call(this,now2):formats[format3]);return this.format(output||this.localeData().calendar(format3,this,createLocal(now2)))}__name(calendar$1,"calendar$1");function clone(){return new Moment(this)}__name(clone,"clone");function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units)||"millisecond";if(units==="millisecond"){return this.valueOf()>localInput.valueOf()}else{return localInput.valueOf()<this.clone().startOf(units).valueOf()}}__name(isAfter,"isAfter");function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units)||"millisecond";if(units==="millisecond"){return this.valueOf()<localInput.valueOf()}else{return this.clone().endOf(units).valueOf()<localInput.valueOf()}}__name(isBefore,"isBefore");function isBetween(from2,to2,units,inclusivity){var localFrom=isMoment(from2)?from2:createLocal(from2),localTo=isMoment(to2)?to2:createLocal(to2);if(!(this.isValid()&&localFrom.isValid()&&localTo.isValid())){return false}inclusivity=inclusivity||"()";return(inclusivity[0]==="("?this.isAfter(localFrom,units):!this.isBefore(localFrom,units))&&(inclusivity[1]===")"?this.isBefore(localTo,units):!this.isAfter(localTo,units))}__name(isBetween,"isBetween");function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units)||"millisecond";if(units==="millisecond"){return this.valueOf()===localInput.valueOf()}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()}}__name(isSame,"isSame");function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units)}__name(isSameOrAfter,"isSameOrAfter");function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units)}__name(isSameOrBefore,"isSameOrBefore");function diff(input,units,asFloat){var that,zoneDelta,output;if(!this.isValid()){return NaN}that=cloneWithOffset(input,this);if(!that.isValid()){return NaN}zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case"year":output=monthDiff(this,that)/12;break;case"month":output=monthDiff(this,that);break;case"quarter":output=monthDiff(this,that)/3;break;case"second":output=(this-that)/1e3;break;case"minute":output=(this-that)/6e4;break;case"hour":output=(this-that)/36e5;break;case"day":output=(this-that-zoneDelta)/864e5;break;case"week":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)}__name(diff,"diff");function monthDiff(a3,b){if(a3.date()<b.date()){return-monthDiff(b,a3)}var wholeMonthDiff=(b.year()-a3.year())*12+(b.month()-a3.month()),anchor=a3.clone().add(wholeMonthDiff,"months"),anchor2,adjust;if(b-anchor<0){anchor2=a3.clone().add(wholeMonthDiff-1,"months");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a3.clone().add(wholeMonthDiff+1,"months");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)||0}__name(monthDiff,"monthDiff");hooks.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";hooks.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function toString(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}__name(toString,"toString");function toISOString(keepOffset){if(!this.isValid()){return null}var utc=keepOffset!==true,m2=utc?this.clone().utc():this;if(m2.year()<0||m2.year()>9999){return formatMoment(m2,utc?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ")}if(isFunction(Date.prototype.toISOString)){if(utc){return this.toDate().toISOString()}else{return new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",formatMoment(m2,"Z"))}}return formatMoment(m2,utc?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}__name(toISOString,"toISOString");function inspect(){if(!this.isValid()){return"moment.invalid(/* "+this._i+" */)"}var func="moment",zone="",prefix,year,datetime,suffix;if(!this.isLocal()){func=this.utcOffset()===0?"moment.utc":"moment.parseZone";zone="Z"}prefix="["+func+'("]';year=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";datetime="-MM-DD[T]HH:mm:ss.SSS";suffix=zone+'[")]';return this.format(prefix+year+datetime+suffix)}__name(inspect,"inspect");function format2(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var output=formatMoment(this,inputString);return this.localeData().postformat(output)}__name(format2,"format");function from(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}__name(from,"from");function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix)}__name(fromNow,"fromNow");function to(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}__name(to,"to");function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix)}__name(toNow,"toNow");function locale(key){var newLocaleData;if(key===void 0){return this._locale._abbr}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}}__name(locale,"locale");var lang=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(key){if(key===void 0){return this.localeData()}else{return this.locale(key)}});function localeData(){return this._locale}__name(localeData,"localeData");var MS_PER_SECOND=1e3,MS_PER_MINUTE=60*MS_PER_SECOND,MS_PER_HOUR=60*MS_PER_MINUTE,MS_PER_400_YEARS=(365*400+97)*24*MS_PER_HOUR;function mod$1(dividend,divisor){return(dividend%divisor+divisor)%divisor}__name(mod$1,"mod$1");function localStartOfDate(y,m2,d3){if(y<100&&y>=0){return new Date(y+400,m2,d3)-MS_PER_400_YEARS}else{return new Date(y,m2,d3).valueOf()}}__name(localStartOfDate,"localStartOfDate");function utcStartOfDate(y,m2,d3){if(y<100&&y>=0){return Date.UTC(y+400,m2,d3)-MS_PER_400_YEARS}else{return Date.UTC(y,m2,d3)}}__name(utcStartOfDate,"utcStartOfDate");function startOf(units){var time,startOfDate;units=normalizeUnits(units);if(units===void 0||units==="millisecond"||!this.isValid()){return this}startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case"year":time=startOfDate(this.year(),0,1);break;case"quarter":time=startOfDate(this.year(),this.month()-this.month()%3,1);break;case"month":time=startOfDate(this.year(),this.month(),1);break;case"week":time=startOfDate(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":time=startOfDate(this.year(),this.month(),this.date());break;case"hour":time=this._d.valueOf();time-=mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR);break;case"minute":time=this._d.valueOf();time-=mod$1(time,MS_PER_MINUTE);break;case"second":time=this._d.valueOf();time-=mod$1(time,MS_PER_SECOND);break}this._d.setTime(time);hooks.updateOffset(this,true);return this}__name(startOf,"startOf");function endOf(units){var time,startOfDate;units=normalizeUnits(units);if(units===void 0||units==="millisecond"||!this.isValid()){return this}startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case"year":time=startOfDate(this.year()+1,0,1)-1;break;case"quarter":time=startOfDate(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":time=startOfDate(this.year(),this.month()+1,1)-1;break;case"week":time=startOfDate(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":time=startOfDate(this.year(),this.month(),this.date()+1)-1;break;case"hour":time=this._d.valueOf();time+=MS_PER_HOUR-mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR)-1;break;case"minute":time=this._d.valueOf();time+=MS_PER_MINUTE-mod$1(time,MS_PER_MINUTE)-1;break;case"second":time=this._d.valueOf();time+=MS_PER_SECOND-mod$1(time,MS_PER_SECOND)-1;break}this._d.setTime(time);hooks.updateOffset(this,true);return this}__name(endOf,"endOf");function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}__name(valueOf,"valueOf");function unix(){return Math.floor(this.valueOf()/1e3)}__name(unix,"unix");function toDate(){return new Date(this.valueOf())}__name(toDate,"toDate");function toArray(){var m2=this;return[m2.year(),m2.month(),m2.date(),m2.hour(),m2.minute(),m2.second(),m2.millisecond()]}__name(toArray,"toArray");function toObject(){var m2=this;return{years:m2.year(),months:m2.month(),date:m2.date(),hours:m2.hours(),minutes:m2.minutes(),seconds:m2.seconds(),milliseconds:m2.milliseconds()}}__name(toObject,"toObject");function toJSON(){return this.isValid()?this.toISOString():null}__name(toJSON,"toJSON");function isValid$2(){return isValid(this)}__name(isValid$2,"isValid$2");function parsingFlags(){return extend({},getParsingFlags(this))}__name(parsingFlags,"parsingFlags");function invalidAt(){return getParsingFlags(this).overflow}__name(invalidAt,"invalidAt");function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}__name(creationData,"creationData");addFormatToken("N",0,0,"eraAbbr");addFormatToken("NN",0,0,"eraAbbr");addFormatToken("NNN",0,0,"eraAbbr");addFormatToken("NNNN",0,0,"eraName");addFormatToken("NNNNN",0,0,"eraNarrow");addFormatToken("y",["y",1],"yo","eraYear");addFormatToken("y",["yy",2],0,"eraYear");addFormatToken("y",["yyy",3],0,"eraYear");addFormatToken("y",["yyyy",4],0,"eraYear");addRegexToken("N",matchEraAbbr);addRegexToken("NN",matchEraAbbr);addRegexToken("NNN",matchEraAbbr);addRegexToken("NNNN",matchEraName);addRegexToken("NNNNN",matchEraNarrow);addParseToken(["N","NN","NNN","NNNN","NNNNN"],function(input,array,config,token2){var era=config._locale.erasParse(input,token2,config._strict);if(era){getParsingFlags(config).era=era}else{getParsingFlags(config).invalidEra=input}});addRegexToken("y",matchUnsigned);addRegexToken("yy",matchUnsigned);addRegexToken("yyy",matchUnsigned);addRegexToken("yyyy",matchUnsigned);addRegexToken("yo",matchEraYearOrdinal);addParseToken(["y","yy","yyy","yyyy"],YEAR);addParseToken(["yo"],function(input,array,config,token2){var match;if(config._locale._eraYearOrdinalRegex){match=input.match(config._locale._eraYearOrdinalRegex)}if(config._locale.eraYearOrdinalParse){array[YEAR]=config._locale.eraYearOrdinalParse(input,match)}else{array[YEAR]=parseInt(input,10)}});function localeEras(m2,format3){var i,l3,date,eras=this._eras||getLocale("en")._eras;for(i=0,l3=eras.length;i<l3;++i){switch(typeof eras[i].since){case"string":date=hooks(eras[i].since).startOf("day");eras[i].since=date.valueOf();break}switch(typeof eras[i].until){case"undefined":eras[i].until=Infinity;break;case"string":date=hooks(eras[i].until).startOf("day").valueOf();eras[i].until=date.valueOf();break}}return eras}__name(localeEras,"localeEras");function localeErasParse(eraName,format3,strict){var i,l3,eras=this.eras(),name,abbr,narrow;eraName=eraName.toUpperCase();for(i=0,l3=eras.length;i<l3;++i){name=eras[i].name.toUpperCase();abbr=eras[i].abbr.toUpperCase();narrow=eras[i].narrow.toUpperCase();if(strict){switch(format3){case"N":case"NN":case"NNN":if(abbr===eraName){return eras[i]}break;case"NNNN":if(name===eraName){return eras[i]}break;case"NNNNN":if(narrow===eraName){return eras[i]}break}}else if([name,abbr,narrow].indexOf(eraName)>=0){return eras[i]}}}__name(localeErasParse,"localeErasParse");function localeErasConvertYear(era,year){var dir=era.since<=era.until?1:-1;if(year===void 0){return hooks(era.since).year()}else{return hooks(era.since).year()+(year-era.offset)*dir}}__name(localeErasConvertYear,"localeErasConvertYear");function getEraName(){var i,l3,val,eras=this.localeData().eras();for(i=0,l3=eras.length;i<l3;++i){val=this.clone().startOf("day").valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].name}if(eras[i].until<=val&&val<=eras[i].since){return eras[i].name}}return""}__name(getEraName,"getEraName");function getEraNarrow(){var i,l3,val,eras=this.localeData().eras();for(i=0,l3=eras.length;i<l3;++i){val=this.clone().startOf("day").valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].narrow}if(eras[i].until<=val&&val<=eras[i].since){return eras[i].narrow}}return""}__name(getEraNarrow,"getEraNarrow");function getEraAbbr(){var i,l3,val,eras=this.localeData().eras();for(i=0,l3=eras.length;i<l3;++i){val=this.clone().startOf("day").valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].abbr}if(eras[i].until<=val&&val<=eras[i].since){return eras[i].abbr}}return""}__name(getEraAbbr,"getEraAbbr");function getEraYear(){var i,l3,dir,val,eras=this.localeData().eras();for(i=0,l3=eras.length;i<l3;++i){dir=eras[i].since<=eras[i].until?1:-1;val=this.clone().startOf("day").valueOf();if(eras[i].since<=val&&val<=eras[i].until||eras[i].until<=val&&val<=eras[i].since){return(this.year()-hooks(eras[i].since).year())*dir+eras[i].offset}}return this.year()}__name(getEraYear,"getEraYear");function erasNameRegex(isStrict){if(!hasOwnProp(this,"_erasNameRegex")){computeErasParse.call(this)}return isStrict?this._erasNameRegex:this._erasRegex}__name(erasNameRegex,"erasNameRegex");function erasAbbrRegex(isStrict){if(!hasOwnProp(this,"_erasAbbrRegex")){computeErasParse.call(this)}return isStrict?this._erasAbbrRegex:this._erasRegex}__name(erasAbbrRegex,"erasAbbrRegex");function erasNarrowRegex(isStrict){if(!hasOwnProp(this,"_erasNarrowRegex")){computeErasParse.call(this)}return isStrict?this._erasNarrowRegex:this._erasRegex}__name(erasNarrowRegex,"erasNarrowRegex");function matchEraAbbr(isStrict,locale2){return locale2.erasAbbrRegex(isStrict)}__name(matchEraAbbr,"matchEraAbbr");function matchEraName(isStrict,locale2){return locale2.erasNameRegex(isStrict)}__name(matchEraName,"matchEraName");function matchEraNarrow(isStrict,locale2){return locale2.erasNarrowRegex(isStrict)}__name(matchEraNarrow,"matchEraNarrow");function matchEraYearOrdinal(isStrict,locale2){return locale2._eraYearOrdinalRegex||matchUnsigned}__name(matchEraYearOrdinal,"matchEraYearOrdinal");function computeErasParse(){var abbrPieces=[],namePieces=[],narrowPieces=[],mixedPieces=[],i,l3,erasName,erasAbbr,erasNarrow,eras=this.eras();for(i=0,l3=eras.length;i<l3;++i){erasName=regexEscape(eras[i].name);erasAbbr=regexEscape(eras[i].abbr);erasNarrow=regexEscape(eras[i].narrow);namePieces.push(erasName);abbrPieces.push(erasAbbr);narrowPieces.push(erasNarrow);mixedPieces.push(erasName);mixedPieces.push(erasAbbr);mixedPieces.push(erasNarrow)}this._erasRegex=new RegExp("^("+mixedPieces.join("|")+")","i");this._erasNameRegex=new RegExp("^("+namePieces.join("|")+")","i");this._erasAbbrRegex=new RegExp("^("+abbrPieces.join("|")+")","i");this._erasNarrowRegex=new RegExp("^("+narrowPieces.join("|")+")","i")}__name(computeErasParse,"computeErasParse");addFormatToken(0,["gg",2],0,function(){return this.weekYear()%100});addFormatToken(0,["GG",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(token2,getter){addFormatToken(0,[token2,token2.length],0,getter)}__name(addWeekYearFormatToken,"addWeekYearFormatToken");addWeekYearFormatToken("gggg","weekYear");addWeekYearFormatToken("ggggg","weekYear");addWeekYearFormatToken("GGGG","isoWeekYear");addWeekYearFormatToken("GGGGG","isoWeekYear");addRegexToken("G",matchSigned);addRegexToken("g",matchSigned);addRegexToken("GG",match1to2,match2);addRegexToken("gg",match1to2,match2);addRegexToken("GGGG",match1to4,match4);addRegexToken("gggg",match1to4,match4);addRegexToken("GGGGG",match1to6,match6);addRegexToken("ggggg",match1to6,match6);addWeekParseToken(["gggg","ggggg","GGGG","GGGGG"],function(input,week,config,token2){week[token2.substr(0,2)]=toInt(input)});addWeekParseToken(["gg","GG"],function(input,week,config,token2){week[token2]=hooks.parseTwoDigitYear(input)});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}__name(getSetWeekYear,"getSetWeekYear");function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)}__name(getSetISOWeekYear,"getSetISOWeekYear");function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}__name(getISOWeeksInYear,"getISOWeeksInYear");function getISOWeeksInISOWeekYear(){return weeksInYear(this.isoWeekYear(),1,4)}__name(getISOWeeksInISOWeekYear,"getISOWeeksInISOWeekYear");function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)}__name(getWeeksInYear,"getWeeksInYear");function getWeeksInWeekYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.weekYear(),weekInfo.dow,weekInfo.doy)}__name(getWeeksInWeekYear,"getWeeksInWeekYear");function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget}return setWeekAll.call(this,input,week,weekday,dow,doy)}}__name(getSetWeekYearHelper,"getSetWeekYearHelper");function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this}__name(setWeekAll,"setWeekAll");addFormatToken("Q",0,"Qo","quarter");addRegexToken("Q",match1);addParseToken("Q",function(input,array){array[MONTH]=(toInt(input)-1)*3});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)}__name(getSetQuarter,"getSetQuarter");addFormatToken("D",["DD",2],"Do","date");addRegexToken("D",match1to2,match1to2NoLeadingZero);addRegexToken("DD",match1to2,match2);addRegexToken("Do",function(isStrict,locale2){return isStrict?locale2._dayOfMonthOrdinalParse||locale2._ordinalParse:locale2._dayOfMonthOrdinalParseLenient});addParseToken(["D","DD"],DATE);addParseToken("Do",function(input,array){array[DATE]=toInt(input.match(match1to2)[0])});var getSetDayOfMonth=makeGetSet("Date",true);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear");addRegexToken("DDD",match1to3);addRegexToken("DDDD",match3);addParseToken(["DDD","DDDD"],function(input,array,config){config._dayOfYear=toInt(input)});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,"d")}__name(getSetDayOfYear,"getSetDayOfYear");addFormatToken("m",["mm",2],0,"minute");addRegexToken("m",match1to2,match1to2HasZero);addRegexToken("mm",match1to2,match2);addParseToken(["m","mm"],MINUTE);var getSetMinute=makeGetSet("Minutes",false);addFormatToken("s",["ss",2],0,"second");addRegexToken("s",match1to2,match1to2HasZero);addRegexToken("ss",match1to2,match2);addParseToken(["s","ss"],SECOND);var getSetSecond=makeGetSet("Seconds",false);addFormatToken("S",0,0,function(){return~~(this.millisecond()/100)});addFormatToken(0,["SS",2],0,function(){return~~(this.millisecond()/10)});addFormatToken(0,["SSS",3],0,"millisecond");addFormatToken(0,["SSSS",4],0,function(){return this.millisecond()*10});addFormatToken(0,["SSSSS",5],0,function(){return this.millisecond()*100});addFormatToken(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});addFormatToken(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});addFormatToken(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});addFormatToken(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});addRegexToken("S",match1to3,match1);addRegexToken("SS",match1to3,match2);addRegexToken("SSS",match1to3,match3);var token,getSetMillisecond;for(token="SSSS";token.length<=9;token+="S"){addRegexToken(token,matchUnsigned)}function parseMs(input,array){array[MILLISECOND]=toInt(("0."+input)*1e3)}__name(parseMs,"parseMs");for(token="S";token.length<=9;token+="S"){addParseToken(token,parseMs)}getSetMillisecond=makeGetSet("Milliseconds",false);addFormatToken("z",0,0,"zoneAbbr");addFormatToken("zz",0,0,"zoneName");function getZoneAbbr(){return this._isUTC?"UTC":""}__name(getZoneAbbr,"getZoneAbbr");function getZoneName(){return this._isUTC?"Coordinated Universal Time":""}__name(getZoneName,"getZoneName");var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format2;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;if(typeof Symbol!=="undefined"&&Symbol.for!=null){proto[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}}proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.eraName=getEraName;proto.eraNarrow=getEraNarrow;proto.eraAbbr=getEraAbbr;proto.eraYear=getEraYear;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.weeksInWeekYear=getWeeksInWeekYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.isoWeeksInISOWeekYear=getISOWeeksInISOWeekYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate("dates accessor is deprecated. Use date instead.",getSetDayOfMonth);proto.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth);proto.years=deprecate("years accessor is deprecated. Use year instead",getSetYear);proto.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",getSetZone);proto.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1e3)}__name(createUnix,"createUnix");function createInZone(){return createLocal.apply(null,arguments).parseZone()}__name(createInZone,"createInZone");function preParsePostFormat(string){return string}__name(preParsePostFormat,"preParsePostFormat");var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.eras=localeEras;proto$1.erasParse=localeErasParse;proto$1.erasConvertYear=localeErasConvertYear;proto$1.erasAbbrRegex=erasAbbrRegex;proto$1.erasNameRegex=erasNameRegex;proto$1.erasNarrowRegex=erasNarrowRegex;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format3,index,field,setter){var locale2=getLocale(),utc=createUTC().set(setter,index);return locale2[field](utc,format3)}__name(get$1,"get$1");function listMonthsImpl(format3,index,field){if(isNumber(format3)){index=format3;format3=void 0}format3=format3||"";if(index!=null){return get$1(format3,index,field,"month")}var i,out=[];for(i=0;i<12;i++){out[i]=get$1(format3,i,field,"month")}return out}__name(listMonthsImpl,"listMonthsImpl");function listWeekdaysImpl(localeSorted,format3,index,field){if(typeof localeSorted==="boolean"){if(isNumber(format3)){index=format3;format3=void 0}format3=format3||""}else{format3=localeSorted;index=format3;localeSorted=false;if(isNumber(format3)){index=format3;format3=void 0}format3=format3||""}var locale2=getLocale(),shift=localeSorted?locale2._week.dow:0,i,out=[];if(index!=null){return get$1(format3,(index+shift)%7,field,"day")}for(i=0;i<7;i++){out[i]=get$1(format3,(i+shift)%7,field,"day")}return out}__name(listWeekdaysImpl,"listWeekdaysImpl");function listMonths(format3,index){return listMonthsImpl(format3,index,"months")}__name(listMonths,"listMonths");function listMonthsShort(format3,index){return listMonthsImpl(format3,index,"monthsShort")}__name(listMonthsShort,"listMonthsShort");function listWeekdays(localeSorted,format3,index){return listWeekdaysImpl(localeSorted,format3,index,"weekdays")}__name(listWeekdays,"listWeekdays");function listWeekdaysShort(localeSorted,format3,index){return listWeekdaysImpl(localeSorted,format3,index,"weekdaysShort")}__name(listWeekdaysShort,"listWeekdaysShort");function listWeekdaysMin(localeSorted,format3,index){return listWeekdaysImpl(localeSorted,format3,index,"weekdaysMin")}__name(listWeekdaysMin,"listWeekdaysMin");getSetGlobalLocale("en",{eras:[{since:"0001-01-01",until:Infinity,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-Infinity,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:__name(function(number){var b=number%10,output=toInt(number%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th";return number+output},"ordinal")});hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",getSetGlobalLocale);hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this}__name(abs,"abs");function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble()}__name(addSubtract$1,"addSubtract$1");function add$1(input,value){return addSubtract$1(this,input,value,1)}__name(add$1,"add$1");function subtract$1(input,value){return addSubtract$1(this,input,value,-1)}__name(subtract$1,"subtract$1");function absCeil(number){if(number<0){return Math.floor(number)}else{return Math.ceil(number)}}__name(absCeil,"absCeil");function bubble(){var milliseconds2=this._milliseconds,days2=this._days,months2=this._months,data=this._data,seconds2,minutes2,hours2,years2,monthsFromDays;if(!(milliseconds2>=0&&days2>=0&&months2>=0||milliseconds2<=0&&days2<=0&&months2<=0)){milliseconds2+=absCeil(monthsToDays(months2)+days2)*864e5;days2=0;months2=0}data.milliseconds=milliseconds2%1e3;seconds2=absFloor(milliseconds2/1e3);data.seconds=seconds2%60;minutes2=absFloor(seconds2/60);data.minutes=minutes2%60;hours2=absFloor(minutes2/60);data.hours=hours2%24;days2+=absFloor(hours2/24);monthsFromDays=absFloor(daysToMonths(days2));months2+=monthsFromDays;days2-=absCeil(monthsToDays(monthsFromDays));years2=absFloor(months2/12);months2%=12;data.days=days2;data.months=months2;data.years=years2;return this}__name(bubble,"bubble");function daysToMonths(days2){return days2*4800/146097}__name(daysToMonths,"daysToMonths");function monthsToDays(months2){return months2*146097/4800}__name(monthsToDays,"monthsToDays");function as(units){if(!this.isValid()){return NaN}var days2,months2,milliseconds2=this._milliseconds;units=normalizeUnits(units);if(units==="month"||units==="quarter"||units==="year"){days2=this._days+milliseconds2/864e5;months2=this._months+daysToMonths(days2);switch(units){case"month":return months2;case"quarter":return months2/3;case"year":return months2/12}}else{days2=this._days+Math.round(monthsToDays(this._months));switch(units){case"week":return days2/7+milliseconds2/6048e5;case"day":return days2+milliseconds2/864e5;case"hour":return days2*24+milliseconds2/36e5;case"minute":return days2*1440+milliseconds2/6e4;case"second":return days2*86400+milliseconds2/1e3;case"millisecond":return Math.floor(days2*864e5)+milliseconds2;default:throw new Error("Unknown unit "+units)}}}__name(as,"as");function makeAs(alias){return function(){return this.as(alias)}}__name(makeAs,"makeAs");var asMilliseconds=makeAs("ms"),asSeconds=makeAs("s"),asMinutes=makeAs("m"),asHours=makeAs("h"),asDays=makeAs("d"),asWeeks=makeAs("w"),asMonths=makeAs("M"),asQuarters=makeAs("Q"),asYears=makeAs("y"),valueOf$1=asMilliseconds;function clone$1(){return createDuration(this)}__name(clone$1,"clone$1");function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+"s"]():NaN}__name(get$2,"get$2");function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}__name(makeGetter,"makeGetter");var milliseconds=makeGetter("milliseconds"),seconds=makeGetter("seconds"),minutes=makeGetter("minutes"),hours=makeGetter("hours"),days=makeGetter("days"),months=makeGetter("months"),years=makeGetter("years");function weeks(){return absFloor(this.days()/7)}__name(weeks,"weeks");var round=Math.round,thresholds={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale2){return locale2.relativeTime(number||1,!!withoutSuffix,string,isFuture)}__name(substituteTimeAgo,"substituteTimeAgo");function relativeTime$1(posNegDuration,withoutSuffix,thresholds2,locale2){var duration=createDuration(posNegDuration).abs(),seconds2=round(duration.as("s")),minutes2=round(duration.as("m")),hours2=round(duration.as("h")),days2=round(duration.as("d")),months2=round(duration.as("M")),weeks2=round(duration.as("w")),years2=round(duration.as("y")),a3=seconds2<=thresholds2.ss&&["s",seconds2]||seconds2<thresholds2.s&&["ss",seconds2]||minutes2<=1&&["m"]||minutes2<thresholds2.m&&["mm",minutes2]||hours2<=1&&["h"]||hours2<thresholds2.h&&["hh",hours2]||days2<=1&&["d"]||days2<thresholds2.d&&["dd",days2];if(thresholds2.w!=null){a3=a3||weeks2<=1&&["w"]||weeks2<thresholds2.w&&["ww",weeks2]}a3=a3||months2<=1&&["M"]||months2<thresholds2.M&&["MM",months2]||years2<=1&&["y"]||["yy",years2];a3[2]=withoutSuffix;a3[3]=+posNegDuration>0;a3[4]=locale2;return substituteTimeAgo.apply(null,a3)}__name(relativeTime$1,"relativeTime$1");function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===void 0){return round}if(typeof roundingFunction==="function"){round=roundingFunction;return true}return false}__name(getSetRelativeTimeRounding,"getSetRelativeTimeRounding");function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===void 0){return false}if(limit===void 0){return thresholds[threshold]}thresholds[threshold]=limit;if(threshold==="s"){thresholds.ss=limit-1}return true}__name(getSetRelativeTimeThreshold,"getSetRelativeTimeThreshold");function humanize(argWithSuffix,argThresholds){if(!this.isValid()){return this.localeData().invalidDate()}var withSuffix=false,th=thresholds,locale2,output;if(typeof argWithSuffix==="object"){argThresholds=argWithSuffix;argWithSuffix=false}if(typeof argWithSuffix==="boolean"){withSuffix=argWithSuffix}if(typeof argThresholds==="object"){th=Object.assign({},thresholds,argThresholds);if(argThresholds.s!=null&&argThresholds.ss==null){th.ss=argThresholds.s-1}}locale2=this.localeData();output=relativeTime$1(this,!withSuffix,th,locale2);if(withSuffix){output=locale2.pastFuture(+this,output)}return locale2.postformat(output)}__name(humanize,"humanize");var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}__name(sign,"sign");function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var seconds2=abs$1(this._milliseconds)/1e3,days2=abs$1(this._days),months2=abs$1(this._months),minutes2,hours2,years2,s,total=this.asSeconds(),totalSign,ymSign,daysSign,hmsSign;if(!total){return"P0D"}minutes2=absFloor(seconds2/60);hours2=absFloor(minutes2/60);seconds2%=60;minutes2%=60;years2=absFloor(months2/12);months2%=12;s=seconds2?seconds2.toFixed(3).replace(/\.?0+$/,""):"";totalSign=total<0?"-":"";ymSign=sign(this._months)!==sign(total)?"-":"";daysSign=sign(this._days)!==sign(total)?"-":"";hmsSign=sign(this._milliseconds)!==sign(total)?"-":"";return totalSign+"P"+(years2?ymSign+years2+"Y":"")+(months2?ymSign+months2+"M":"")+(days2?daysSign+days2+"D":"")+(hours2||minutes2||seconds2?"T":"")+(hours2?hmsSign+hours2+"H":"")+(minutes2?hmsSign+minutes2+"M":"")+(seconds2?hmsSign+s+"S":"")}__name(toISOString$1,"toISOString$1");var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asQuarters=asQuarters;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",toISOString$1);proto$2.lang=lang;addFormatToken("X",0,0,"unix");addFormatToken("x",0,0,"valueOf");addRegexToken("x",matchSigned);addRegexToken("X",matchTimestamp);addParseToken("X",function(input,array,config){config._d=new Date(parseFloat(input)*1e3)});addParseToken("x",function(input,array,config){config._d=new Date(toInt(input))});hooks.version="2.30.1";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};return hooks}))}});var require_FileStreamRotator=__commonJS({"node_modules/file-stream-rotator/FileStreamRotator.js"(exports2,module2){"use strict";var fs=require("fs");var path=require("path");var moment=require_moment();var crypto2=require("crypto");var EventEmitter=require("events");var FileStreamRotator={};module2.exports=FileStreamRotator;var staticFrequency=["daily","test","m","h","custom"];var DATE_FORMAT="YYYYMMDDHHmm";var _checkNumAndType=__name(function(type,num){if(typeof num=="number"){switch(type){case"m":if(num<0||num>60){return false}break;case"h":if(num<0||num>24){return false}break}return{type,digit:num}}},"_checkNumAndType");var _checkDailyAndTest=__name(function(freqType){switch(freqType){case"custom":case"daily":return{type:freqType,digit:void 0};break;case"test":return{type:freqType,digit:0}}return false},"_checkDailyAndTest");FileStreamRotator.getFrequency=function(frequency){var _f=frequency.toLowerCase().match(/^(\d+)([mh])$/);if(_f){return _checkNumAndType(_f[2],parseInt(_f[1]))}var dailyOrTest=_checkDailyAndTest(frequency);if(dailyOrTest){return dailyOrTest}return false};FileStreamRotator.parseFileSize=function(size){if(size&&typeof size=="string"){var _s=size.toLowerCase().match(/^((?:0\.)?\d+)([kmg])$/);if(_s){switch(_s[2]){case"k":return _s[1]*1024;case"m":return _s[1]*1024*1024;case"g":return _s[1]*1024*1024*1024}}}return null};FileStreamRotator.getDate=function(format2,date_format,utc){date_format=date_format||DATE_FORMAT;let currentMoment=utc?moment.utc():moment().local();if(format2&&staticFrequency.indexOf(format2.type)!==-1){switch(format2.type){case"m":var minute=Math.floor(currentMoment.minutes()/format2.digit)*format2.digit;return currentMoment.minutes(minute).format(date_format);break;case"h":var hour=Math.floor(currentMoment.hour()/format2.digit)*format2.digit;return currentMoment.hour(hour).format(date_format);break;case"daily":case"custom":case"test":return currentMoment.format(date_format)}}return currentMoment.format(date_format)};FileStreamRotator.setAuditLog=function(max_logs,audit_file,log_file){var _rtn=null;if(max_logs){var use_days=max_logs.toString().substr(-1);var _num=max_logs.toString().match(/^(\d+)/);if(Number(_num[1])>0){var baseLog=path.dirname(log_file.replace(/%DATE%.+/,"_filename"));try{if(audit_file){var full_path=path.resolve(audit_file);_rtn=JSON.parse(fs.readFileSync(full_path,{encoding:"utf-8"}))}else{var full_path=path.resolve(baseLog+"/.audit.json");_rtn=JSON.parse(fs.readFileSync(full_path,{encoding:"utf-8"}))}}catch(e){if(e.code!=="ENOENT"){return null}_rtn={keep:{days:false,amount:Number(_num[1])},auditLog:audit_file||baseLog+"/.audit.json",files:[]}}_rtn.keep={days:use_days==="d",amount:Number(_num[1])}}}return _rtn};FileStreamRotator.writeAuditLog=function(audit,verbose){try{mkDirForFile(audit.auditLog);fs.writeFileSync(audit.auditLog,JSON.stringify(audit,null,4))}catch(e){if(verbose){console.error(new Date,"[FileStreamRotator] Failed to store log audit at:",audit.auditLog,"Error:",e)}}};function removeFile(file,verbose){if(file.hash===crypto2.createHash(file.hashType).update(file.name+"LOG_FILE"+file.date).digest("hex")){try{if(fs.existsSync(file.name)){fs.unlinkSync(file.name)}}catch(e){if(verbose){console.error(new Date,"[FileStreamRotator] Could not remove old log file: ",file.name)}}}}__name(removeFile,"removeFile");function createCurrentSymLink(logfile,name,verbose){let symLinkName=name||"current.log";let logPath=path.dirname(logfile);let logfileName=path.basename(logfile);let current=logPath+"/"+symLinkName;try{let stats=fs.lstatSync(current);if(stats.isSymbolicLink()){fs.unlinkSync(current);fs.symlinkSync(logfileName,current)}}catch(err){if(err&&err.code=="ENOENT"){try{fs.symlinkSync(logfileName,current)}catch(e){if(verbose){console.error(new Date,"[FileStreamRotator] Could not create symlink file: ",current," -> ",logfileName)}}}}}__name(createCurrentSymLink,"createCurrentSymLink");function createLogWatcher(logfile,verbose,cb){if(!logfile)return null;try{let stats=fs.lstatSync(logfile);return fs.watch(logfile,function(event,filename){if(event=="rename"){try{let stats2=fs.lstatSync(logfile)}catch(err){cb(err,logfile)}}})}catch(err){if(verbose){console.log(new Date,"[FileStreamRotator] Could not add watcher for "+logfile)}}}__name(createLogWatcher,"createLogWatcher");FileStreamRotator.addLogToAudit=function(logfile,audit,stream,verbose){if(audit&&audit.files){var index=audit.files.findIndex(function(file){return file.name===logfile});if(index!==-1){return audit}var time=Date.now();audit.files.push({date:time,name:logfile,hash:crypto2.createHash(audit.hashType).update(logfile+"LOG_FILE"+time).digest("hex")});if(audit.keep.days){var oldestDate=moment().subtract(audit.keep.amount,"days").valueOf();var recentFiles=audit.files.filter(function(file){if(file.date>oldestDate){return true}file.hashType=audit.hashType;removeFile(file,verbose);stream.emit("logRemoved",file);return false});audit.files=recentFiles}else{var filesToKeep=audit.files.splice(-audit.keep.amount);if(audit.files.length>0){audit.files.filter(function(file){file.hashType=audit.hashType;removeFile(file,verbose);stream.emit("logRemoved",file);return false})}audit.files=filesToKeep}FileStreamRotator.writeAuditLog(audit,verbose)}return audit};FileStreamRotator.getStream=function(options){var frequencyMetaData=null;var curDate=null;var self2=this;if(!options.filename){console.error(new Date,"[FileStreamRotator] No filename supplied. Defaulting to STDOUT");return process.stdout}if(options.frequency){frequencyMetaData=self2.getFrequency(options.frequency)}let auditLog=self2.setAuditLog(options.max_logs,options.audit_file,options.filename);if(auditLog!=null){auditLog.hashType=options.audit_hash_type!==void 0?options.audit_hash_type:"md5"}self2.verbose=options.verbose!==void 0?options.verbose:true;var fileSize=null;var fileCount=0;var curSize=0;if(options.size){fileSize=FileStreamRotator.parseFileSize(options.size)}var dateFormat=options.date_format||DATE_FORMAT;if(frequencyMetaData&&frequencyMetaData.type=="daily"){if(!options.date_format){dateFormat="YYYY-MM-DD"}if(moment().format(dateFormat)!=moment().endOf("day").format(dateFormat)||moment().format(dateFormat)==moment().add(1,"day").format(dateFormat)){if(self2.verbose){console.log(new Date,"[FileStreamRotator] Changing type to custom as date format changes more often than once a day or not every day")}frequencyMetaData.type="custom"}}if(frequencyMetaData){curDate=options.frequency?self2.getDate(frequencyMetaData,dateFormat,options.utc):""}options.create_symlink=options.create_symlink||false;options.extension=options.extension||"";var filename=options.filename;var oldFile=null;var logfile=filename+(curDate?"."+curDate:"");if(filename.match(/%DATE%/)){logfile=filename.replace(/%DATE%/g,curDate?curDate:self2.getDate(null,dateFormat,options.utc))}if(fileSize){var lastLogFile=null;var t_log=logfile;var f4=null;if(auditLog&&auditLog.files&&auditLog.files instanceof Array&&auditLog.files.length>0){var lastEntry=auditLog.files[auditLog.files.length-1].name;if(lastEntry.match(t_log)){var lastCount=lastEntry.match(t_log+"\\.(\\d+)");if(lastCount){t_log=lastEntry;fileCount=lastCount[1]}}}if(fileCount==0&&t_log==logfile){t_log+=options.extension}while(f4=fs.existsSync(t_log)){lastLogFile=t_log;fileCount++;t_log=logfile+"."+fileCount+options.extension}if(lastLogFile){var lastLogFileStats=fs.statSync(lastLogFile);if(lastLogFileStats.size<fileSize){t_log=lastLogFile;fileCount--;curSize=lastLogFileStats.size}}logfile=t_log}else{logfile+=options.extension}if(self2.verbose){console.log(new Date,"[FileStreamRotator] Logging to: ",logfile)}mkDirForFile(logfile);var file_options=options.file_options||{flags:"a"};var rotateStream=fs.createWriteStream(logfile,file_options);if(curDate&&frequencyMetaData&&staticFrequency.indexOf(frequencyMetaData.type)>-1||fileSize>0){if(self2.verbose){console.log(new Date,"[FileStreamRotator] Rotating file: ",frequencyMetaData?frequencyMetaData.type:"",fileSize?"size: "+fileSize:"")}var stream=new EventEmitter;stream.auditLog=auditLog;stream.end=function(){rotateStream.end.apply(rotateStream,arguments)};BubbleEvents(rotateStream,stream);stream.on("close",function(){if(logWatcher){logWatcher.close()}});stream.on("new",function(newLog){stream.auditLog=self2.addLogToAudit(newLog,stream.auditLog,stream,self2.verbose);if(options.create_symlink){createCurrentSymLink(newLog,options.symlink_name,self2.verbose)}if(options.watch_log){stream.emit("addWatcher",newLog)}});var logWatcher;stream.on("addWatcher",function(newLog){if(logWatcher){logWatcher.close()}if(!options.watch_log){return}logWatcher=createLogWatcher(newLog,self2.verbose,function(err,newLog2){stream.emit("createLog",newLog2)})});stream.on("createLog",function(file){try{let stats=fs.lstatSync(file)}catch(err){if(rotateStream&&rotateStream.end=="function"){rotateStream.end()}rotateStream=fs.createWriteStream(file,file_options);stream.emit("new",file);BubbleEvents(rotateStream,stream)}});stream.write=(function(str,encoding){var newDate=frequencyMetaData?this.getDate(frequencyMetaData,dateFormat,options.utc):curDate;if(newDate!=curDate||fileSize&&curSize>fileSize){var newLogfile=filename+(curDate&&frequencyMetaData?"."+newDate:"");if(filename.match(/%DATE%/)&&curDate){newLogfile=filename.replace(/%DATE%/g,newDate)}if(fileSize&&curSize>fileSize){fileCount++;newLogfile+="."+fileCount+options.extension}else{fileCount=0;newLogfile+=options.extension}curSize=0;if(self2.verbose){console.log(new Date,require("util").format("[FileStreamRotator] Changing logs from %s to %s",logfile,newLogfile))}curDate=newDate;oldFile=logfile;logfile=newLogfile;if(options.end_stream===true){rotateStream.end()}else{rotateStream.destroy()}mkDirForFile(logfile);rotateStream=fs.createWriteStream(newLogfile,file_options);stream.emit("new",newLogfile);stream.emit("rotate",oldFile,newLogfile);BubbleEvents(rotateStream,stream)}rotateStream.write(str,encoding);curSize+=Buffer.byteLength(str,encoding)}).bind(this);process.nextTick(function(){stream.emit("new",logfile)});stream.emit("new",logfile);return stream}else{if(self2.verbose){console.log(new Date,"[FileStreamRotator] File won't be rotated: ",options.frequency,options.size)}process.nextTick(function(){rotateStream.emit("new",logfile)});return rotateStream}};var mkDirForFile=__name(function(pathWithFile){var _path=path.dirname(pathWithFile);_path.split(path.sep).reduce(function(fullPath,folder){fullPath+=folder+path.sep;if(!fs.existsSync(fullPath)){try{fs.mkdirSync(fullPath)}catch(e){if(e.code!=="EEXIST"){throw e}}}return fullPath},"")},"mkDirForFile");var BubbleEvents=__name(function BubbleEvents2(emitter,proxy){emitter.on("close",function(){proxy.emit("close")});emitter.on("finish",function(){proxy.emit("finish")});emitter.on("error",function(err){proxy.emit("error",err)});emitter.on("open",function(fd){proxy.emit("open",fd)})},"BubbleEvents")}});var require_daily_rotate_file=__commonJS({"node_modules/winston-daily-rotate-file/daily-rotate-file.js"(exports2,module2){var fs=require("fs");var os=require("os");var path=require("path");var util=require("util");var zlib=require("zlib");var hash=require_object_hash();var MESSAGE=require_triple_beam().MESSAGE;var PassThrough=require("stream").PassThrough;var Transport2=require_winston_transport();var loggerDefaults={json:false,colorize:false,eol:os.EOL,logstash:null,prettyPrint:false,label:null,stringify:false,depth:null,showLevel:true,timestamp:__name(()=>{return new Date().toISOString()},"timestamp")};var DailyRotateFile2=__name(function(options){options=options||{};Transport2.call(this,options);function throwIf(target){Array.prototype.slice.call(arguments,1).forEach(name=>{if(options[name]){throw new Error("Cannot set "+name+" and "+target+" together")}})}__name(throwIf,"throwIf");function getMaxSize(size){if(size&&typeof size==="string"){if(size.toLowerCase().match(/^((?:0\.)?\d+)([kmg])$/)){return size}}else if(size&&Number.isInteger(size)){const sizeK=Math.round(size/1024);return sizeK===0?"1k":sizeK+"k"}return null}__name(getMaxSize,"getMaxSize");function isValidFileName(filename){return!/["<>|:*?\\/\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f]/g.test(filename)}__name(isValidFileName,"isValidFileName");function isValidDirName(dirname){return!/["<>|\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f]/g.test(dirname)}__name(isValidDirName,"isValidDirName");this.options=Object.assign({},loggerDefaults,options);if(options.stream){throwIf("stream","filename","maxsize");this.logStream=new PassThrough;this.logStream.pipe(options.stream)}else{this.filename=options.filename?path.basename(options.filename):"winston.log";this.dirname=options.dirname||path.dirname(options.filename);if(!isValidFileName(this.filename)||!isValidDirName(this.dirname)){throw new Error("Your path or filename contain an invalid character.")}this.logStream=require_FileStreamRotator().getStream({filename:path.join(this.dirname,this.filename),frequency:options.frequency?options.frequency:"custom",date_format:options.datePattern?options.datePattern:"YYYY-MM-DD",verbose:false,size:getMaxSize(options.maxSize),max_logs:options.maxFiles,end_stream:true,audit_file:options.auditFile?options.auditFile:path.join(this.dirname,"."+hash(options)+"-audit.json"),file_options:options.options?options.options:{flags:"a"},utc:options.utc?options.utc:false,extension:options.extension?options.extension:"",create_symlink:options.createSymlink?options.createSymlink:false,symlink_name:options.symlinkName?options.symlinkName:"current.log",watch_log:options.watchLog?options.watchLog:false,audit_hash_type:options.auditHashType?options.auditHashType:"sha256"});this.logStream.on("new",newFile=>{this.emit("new",newFile)});this.logStream.on("rotate",(oldFile,newFile)=>{this.emit("rotate",oldFile,newFile)});this.logStream.on("logRemoved",params=>{if(options.zippedArchive){const gzName=params.name+".gz";try{fs.unlinkSync(gzName)}catch(err){if(err.code!=="ENOENT"){err.message=`Error occurred while removing ${gzName}: ${err.message}`;this.emit("error",err);return}}this.emit("logRemoved",gzName);return}this.emit("logRemoved",params.name)});if(options.zippedArchive){this.logStream.on("rotate",oldFile=>{try{if(!fs.existsSync(oldFile)){return}}catch(err){err.message=`Error occurred while checking existence of ${oldFile}: ${err.message}`;this.emit("error",err);return}try{if(fs.existsSync(`${oldFile}.gz`)){return}}catch(err){err.message=`Error occurred while checking existence of ${oldFile}.gz: ${err.message}`;this.emit("error",err);return}const gzip=zlib.createGzip();const inp=fs.createReadStream(oldFile);inp.on("error",err=>{err.message=`Error occurred while reading ${oldFile}: ${err.message}`;this.emit("error",err)});const out=fs.createWriteStream(oldFile+".gz");out.on("error",err=>{err.message=`Error occurred while writing ${oldFile}.gz: ${err.message}`;this.emit("error",err)});inp.pipe(gzip).pipe(out).on("finish",()=>{try{fs.unlinkSync(oldFile)}catch(err){if(err.code!=="ENOENT"){err.message=`Error occurred while removing ${oldFile}: ${err.message}`;this.emit("error",err);return}}this.emit("archive",oldFile+".gz")})})}if(options.watchLog){this.logStream.on("addWatcher",newFile=>{this.emit("addWatcher",newFile)})}}},"DailyRotateFile");module2.exports=DailyRotateFile2;util.inherits(DailyRotateFile2,Transport2);DailyRotateFile2.prototype.name="dailyRotateFile";var noop=__name(function(){},"noop");DailyRotateFile2.prototype.log=function(info,callback){callback=callback||noop;this.logStream.write(info[MESSAGE]+this.options.eol);this.emit("logged",info);callback(null,true)};DailyRotateFile2.prototype.close=function(){if(this.logStream){this.logStream.end(()=>{this.emit("finish")})}};DailyRotateFile2.prototype.query=function(options,callback){if(typeof options==="function"){callback=options;options={}}if(!this.options.json){throw new Error("query() may not be used without the json option being set to true")}if(!this.filename){throw new Error("query() may not be used when initializing with a stream")}let results=[];options=options||{};options.rows=options.rows||options.limit||10;options.start=options.start||0;options.until=options.until||new Date;if(typeof options.until!=="object"){options.until=new Date(options.until)}options.from=options.from||options.until-24*60*60*1e3;if(typeof options.from!=="object"){options.from=new Date(options.from)}options.order=options.order||"desc";const logFiles=(()=>{const fileRegex=new RegExp(this.filename.replace("%DATE%",".*"),"i");return fs.readdirSync(this.dirname).filter(file=>path.basename(file).match(fileRegex))})();if(logFiles.length===0&&callback){callback(null,results)}const processLogFile=__name(file=>{if(!file){return}const logFile=path.join(this.dirname,file);let buff="";let stream;if(file.endsWith(".gz")){stream=new PassThrough;const inp=fs.createReadStream(logFile);inp.on("error",err=>{err.message=`Error occurred while reading ${logFile}: ${err.message}`;stream.emit("error",err)});inp.pipe(zlib.createGunzip()).pipe(stream)}else{stream=fs.createReadStream(logFile,{encoding:"utf8"})}stream.on("error",err=>{if(stream.readable){stream.destroy()}if(!callback){return}return err.code==="ENOENT"?callback(null,results):callback(err)});stream.on("data",data=>{data=(buff+data).split(/\n+/);const l3=data.length-1;for(let i=0;i<l3;i++){add(data[i])}buff=data[l3]});stream.on("end",()=>{if(buff){add(buff,true)}if(logFiles.length){processLogFile(logFiles.shift())}else if(callback){results.sort((a3,b)=>{const d1=new Date(a3.timestamp).getTime();const d22=new Date(b.timestamp).getTime();return d1>d22?1:d1<d22?-1:0});if(options.order==="desc"){results=results.reverse()}const start=options.start||0;const limit=options.limit||results.length;results=results.slice(start,start+limit);if(options.fields){results=results.map(log=>{const obj={};options.fields.forEach(key=>{obj[key]=log[key]});return obj})}callback(null,results)}});function add(buff2,attempt){try{const log=JSON.parse(buff2);if(!log||typeof log!=="object"){return}const time=new Date(log.timestamp);if(options.from&&time<options.from||options.until&&time>options.until||options.level&&options.level!==log.level){return}results.push(log)}catch(e){if(!attempt){stream.emit("error",e)}}}__name(add,"add")},"processLogFile");processLogFile(logFiles.shift())}}});var require_winston_daily_rotate_file=__commonJS({"node_modules/winston-daily-rotate-file/index.js"(exports2,module2){var winston=require("winston");var DailyRotateFile2=require_daily_rotate_file();winston.transports.DailyRotateFile=DailyRotateFile2;module2.exports=DailyRotateFile2}});var index_exports={};__export(index_exports,{ApiService:()=>ApiService,HybridCache:()=>HybridCache,NestLoggerAdapter:()=>NestLoggerAdapter,RequestScopedApiService:()=>RequestScopedApiService,WinstonLoggerAdapter:()=>WinstonLoggerAdapter,createApiController:()=>createApiController,instance:()=>instance});module.exports=__toCommonJS(index_exports);var import_decorators=require("@flusys/nestjs-shared/decorators");var import_dtos2=require("@flusys/nestjs-shared/dtos");var import_guards=require("@flusys/nestjs-shared/guards");var import_interceptors=require("@flusys/nestjs-shared/interceptors");var import_common2=require("@nestjs/common");var import_swagger2=require("@nestjs/swagger");var import_class_transformer=require("class-transformer");var import_dtos=require("@flusys/nestjs-shared/dtos");var import_common=require("@nestjs/common");var import_swagger=require("@nestjs/swagger");var ApiResponseDto=__name((dto,isArray=false,arrayType="list")=>{let wrapperDto;let metaDto=null;if(!isArray){wrapperDto=import_dtos.SingleResponseDto}else if(arrayType==="bulk"){wrapperDto=import_dtos.BulkResponseDto;metaDto=import_dtos.BulkMetaDto}else{wrapperDto=import_dtos.ListResponseDto;metaDto=import_dtos.PaginationMetaDto}return(0,import_common.applyDecorators)((0,import_swagger.ApiExtraModels)(import_dtos.SingleResponseDto,import_dtos.ListResponseDto,import_dtos.BulkResponseDto,import_dtos.PaginationMetaDto,import_dtos.BulkMetaDto,dto),(0,import_swagger.ApiOkResponse)({schema:{allOf:[{$ref:(0,import_swagger.getSchemaPath)(wrapperDto)},{properties:{data:isArray?{type:"array",items:{$ref:(0,import_swagger.getSchemaPath)(dto)}}:{$ref:(0,import_swagger.getSchemaPath)(dto)},...metaDto?{meta:{$ref:(0,import_swagger.getSchemaPath)(metaDto)}}:{}}}]}}))},"ApiResponseDto");function normalizeSecurity(config){if(!config)return{level:"public"};if(typeof config==="string")return{level:config};return config}__name(normalizeSecurity,"normalizeSecurity");function createSecurityDecorators(security){const decorators=[];switch(security.level){case"public":decorators.push((0,import_decorators.Public)());break;case"jwt":decorators.push((0,import_common2.UseGuards)(import_guards.JwtAuthGuard));decorators.push((0,import_swagger2.ApiBearerAuth)());break;case"permission":decorators.push((0,import_common2.UseGuards)(import_guards.JwtAuthGuard,import_guards.PermissionGuard));decorators.push((0,import_swagger2.ApiBearerAuth)());if(security.condition){decorators.push((0,import_decorators.RequirePermissionCondition)(security.condition))}else if(security.permissions&&security.permissions.length>0){if(security.operator==="or"){decorators.push((0,import_decorators.RequireAnyPermission)(...security.permissions))}else{decorators.push((0,import_decorators.RequirePermission)(...security.permissions))}}break}return(0,import_common2.applyDecorators)(...decorators)}__name(createSecurityDecorators,"createSecurityDecorators");function createApiController(createDtoClass,updateDtoClass,responseDtoClass,options={}){const securityConfig=options.security;const endpointKeys=["insert","insertMany","getById","getAll","update","updateMany","delete"];const isGlobalSecurity=typeof securityConfig==="string"||securityConfig&&typeof securityConfig==="object"&&"level"in securityConfig&&!endpointKeys.some(key=>key in securityConfig);const defaultSecurity=isGlobalSecurity?normalizeSecurity(securityConfig):{level:"public"};const security={insert:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.insert),insertMany:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.insertMany),getById:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.getById),getAll:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.getAll),update:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.update),updateMany:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.updateMany),delete:isGlobalSecurity?defaultSecurity:normalizeSecurity(securityConfig?.delete)};class ApiController{constructor(service){this.service=service}static{__name(this,"ApiController")}async insert(addDto,user){const entity=await this.service.insert(addDto,user);const data=(0,import_class_transformer.plainToInstance)(responseDtoClass,entity);return{success:true,message:"Item created successfully",data}}async insertMany(addDto,user){const entities=await this.service.insertMany(addDto,user);const data=entities.map(item=>(0,import_class_transformer.plainToInstance)(responseDtoClass,item));return{success:true,message:`${data.length} items created successfully`,data,meta:{count:data.length,total:addDto.length,failed:addDto.length-data.length}}}async getById(id,body,user){const entity=await this.service.findById(id,user,body?.select);const data=(0,import_class_transformer.plainToInstance)(responseDtoClass,entity);return{success:true,message:"Item retrieved successfully",data}}async update(updateDto,user){const entity=await this.service.update(updateDto,user);const data=(0,import_class_transformer.plainToInstance)(responseDtoClass,entity);return{success:true,message:"Item updated successfully",data}}async updateMany(updateDtos,user){const entities=await this.service.updateMany(updateDtos,user);const data=(0,import_class_transformer.plainToInstance)(responseDtoClass,entities);return{success:true,message:`${data.length} items updated successfully`,data,meta:{count:data.length,total:updateDtos.length,failed:updateDtos.length-data.length}}}async getAll(filterAndPaginationDto,user,search){const result=await this.service.getAll(search??"",filterAndPaginationDto,user);const data=(0,import_class_transformer.plainToInstance)(responseDtoClass,result.data);const page=filterAndPaginationDto.pagination?.currentPage??0;const pageSize=filterAndPaginationDto.pagination?.pageSize??data.length;const totalPages=pageSize>0?Math.ceil(result.total/pageSize):1;return{success:true,message:"Data retrieved successfully",data,meta:{total:result.total,page,pageSize,count:data.length,hasMore:page<totalPages-1,totalPages}}}async delete(deleteDto,user){await this.service.delete(deleteDto,user);const count=Array.isArray(deleteDto.id)?deleteDto.id.length:1;const action=deleteDto.type==="restore"?"restored":"deleted";return{success:true,message:`${count} item${count>1?"s":""} ${action} successfully`}}}__decorateClass([createSecurityDecorators(security.insert),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("insert"),(0,import_common2.HttpCode)(import_common2.HttpStatus.CREATED),(0,import_swagger2.ApiOperation)({summary:"Insert one item",description:"Creates a new item. Supports idempotency via X-Idempotency-Key header."}),(0,import_swagger2.ApiHeader)({name:"X-Idempotency-Key",required:false,description:"Unique key to prevent duplicate submissions (recommended for production)"}),ApiResponseDto(responseDtoClass),(0,import_swagger2.ApiBody)({type:createDtoClass}),(0,import_common2.UseInterceptors)(import_interceptors.IdempotencyInterceptor,import_interceptors.SetCreatedByOnBody,import_interceptors.Slug),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)())],ApiController.prototype,"insert",1);__decorateClass([createSecurityDecorators(security.insertMany),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("insert-many"),(0,import_common2.HttpCode)(import_common2.HttpStatus.CREATED),(0,import_swagger2.ApiOperation)({summary:"Insert multiple items",description:"Creates multiple items in a single request. Supports idempotency."}),(0,import_swagger2.ApiHeader)({name:"X-Idempotency-Key",required:false,description:"Unique key to prevent duplicate submissions"}),ApiResponseDto(responseDtoClass,true,"bulk"),(0,import_swagger2.ApiBody)({type:createDtoClass,isArray:true}),(0,import_common2.UseInterceptors)(import_interceptors.IdempotencyInterceptor,import_interceptors.SetCreatedByOnBody,import_interceptors.Slug),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)())],ApiController.prototype,"insertMany",1);__decorateClass([createSecurityDecorators(security.getById),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("get/:id"),(0,import_common2.HttpCode)(import_common2.HttpStatus.OK),(0,import_swagger2.ApiOperation)({summary:"Get item by ID",description:"Retrieves a single item by ID. Optionally specify fields to select and relations to include."}),(0,import_swagger2.ApiParam)({name:"id",type:String,description:"UUID of the item"}),(0,import_swagger2.ApiBody)({type:import_dtos2.GetByIdBodyDto,required:false}),ApiResponseDto(responseDtoClass),__decorateParam(0,(0,import_common2.Param)("id")),__decorateParam(1,(0,import_common2.Body)()),__decorateParam(2,(0,import_decorators.CurrentUser)())],ApiController.prototype,"getById",1);__decorateClass([createSecurityDecorators(security.update),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("update"),(0,import_common2.HttpCode)(import_common2.HttpStatus.OK),(0,import_swagger2.ApiOperation)({summary:"Update one item",description:"Updates an existing item. ID must be included in the body."}),ApiResponseDto(responseDtoClass),(0,import_swagger2.ApiBody)({type:updateDtoClass}),(0,import_common2.UseInterceptors)(import_interceptors.SetUpdateByOnBody,import_interceptors.Slug),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)())],ApiController.prototype,"update",1);__decorateClass([createSecurityDecorators(security.updateMany),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("update-many"),(0,import_common2.HttpCode)(import_common2.HttpStatus.OK),(0,import_swagger2.ApiOperation)({summary:"Update multiple items",description:"Updates multiple items in a single request. Each item must include an ID."}),ApiResponseDto(responseDtoClass,true,"bulk"),(0,import_swagger2.ApiBody)({type:updateDtoClass,isArray:true}),(0,import_common2.UseInterceptors)(import_interceptors.SetUpdateByOnBody,import_interceptors.Slug),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)())],ApiController.prototype,"updateMany",1);__decorateClass([createSecurityDecorators(security.getAll),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("get-all"),(0,import_common2.HttpCode)(import_common2.HttpStatus.OK),(0,import_swagger2.ApiOperation)({summary:"Get all items with filters and pagination",description:`
|
|
2
|
+
Retrieves items with support for:
|
|
3
|
+
- **filter**: Apply field-based filters (e.g., \`{ "isActive": true }\`)
|
|
4
|
+
- **pagination**: Control page and page size
|
|
5
|
+
- **sort**: Order by any field (e.g., \`{ "createdAt": "DESC" }\`)
|
|
6
|
+
- **select**: Choose specific fields to return
|
|
7
|
+
- **withDeleted**: Include soft-deleted items
|
|
8
|
+
- **extraKey**: Include additional relations
|
|
9
|
+
- **q** (query param): Global text search
|
|
10
|
+
`}),(0,import_swagger2.ApiQuery)({name:"q",required:false,description:"Global text search across searchable fields"}),(0,import_swagger2.ApiBody)({type:import_dtos2.FilterAndPaginationDto}),ApiResponseDto(responseDtoClass,true,"list"),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)()),__decorateParam(2,(0,import_common2.Query)("q"))],ApiController.prototype,"getAll",1);__decorateClass([createSecurityDecorators(security.delete),(0,import_common2.Version)(import_common2.VERSION_NEUTRAL),(0,import_common2.Post)("delete"),(0,import_common2.HttpCode)(import_common2.HttpStatus.OK),(0,import_swagger2.ApiOperation)({summary:"Delete, restore, or permanently remove items",description:`
|
|
11
|
+
Performs one of three actions:
|
|
12
|
+
|
|
13
|
+
- **"delete"** (soft delete): Marks items as deleted but keeps in database
|
|
14
|
+
- **"restore"**: Reverts soft-deleted items to active
|
|
15
|
+
- **"permanent"**: Completely removes items from database
|
|
16
|
+
|
|
17
|
+
Supports single ID or array of IDs for batch operations.
|
|
18
|
+
`}),(0,import_swagger2.ApiResponse)({status:200,description:"Operation completed successfully",schema:{example:{success:true,message:"3 items deleted successfully"}}}),(0,import_swagger2.ApiBody)({type:import_dtos2.DeleteDto,examples:{softDelete:{summary:"Soft delete",value:{id:["uuid-1","uuid-2"],type:"delete"}},restore:{summary:"Restore deleted",value:{id:["uuid-1"],type:"restore"}},permanent:{summary:"Permanent delete",value:{id:["uuid-1"],type:"permanent"}}}}),(0,import_common2.UseInterceptors)(import_interceptors.SetDeletedByOnBody),__decorateParam(0,(0,import_common2.Body)()),__decorateParam(1,(0,import_decorators.CurrentUser)())],ApiController.prototype,"delete",1);return ApiController}__name(createApiController,"createApiController");var ErrorHandler=class{static{__name(this,"ErrorHandler")}static getErrorMessage(error){if(error instanceof Error){return error.message}if(typeof error==="string"){return error}return"Unknown error occurred"}static getErrorStack(error){if(error instanceof Error){return error.stack}return void 0}static createErrorContext(error,context){const errorContext={error:{message:this.getErrorMessage(error)}};if(error instanceof Error){errorContext.error.stack=error.stack;errorContext.error.name=error.name}if(context&&Object.keys(context).length>0){errorContext.context=context}return errorContext}static logError(logger,error,operation,context){const errorContext=this.createErrorContext(error,{operation,...context});const errorMessage=`Failed to ${operation}: ${errorContext.error.message}`;const loggerContext=logger.context||"ErrorHandler";logger.error(errorMessage,errorContext.error.stack,loggerContext,errorContext)}static rethrowError(error){if(error instanceof Error){throw error}throw new Error(`Unexpected error: ${String(error)}`)}};var import_common3=require("@nestjs/common");var import_typeorm=require("typeorm");var ApiService=class{constructor(entityName,repository,cacheManager,utilsService,loggerName,isCacheable=false){this.entityName=entityName;this.repository=repository;this.cacheManager=cacheManager;this.utilsService=utilsService;this.loggerName=loggerName;this.isCacheable=isCacheable;this.logger=new import_common3.Logger(loggerName)}static{__name(this,"ApiService")}logger=new import_common3.Logger("ApiService");async insert(dto,user){await this.ensureRepositoryInitialized();const qr=this.repository.manager.connection.createQueryRunner();await qr.connect();await qr.startTransaction();try{await this.beforeInsertOperation(dto,user,qr);const entities=await this.convertRequestDtoToEntity(dto,user);const saved=await qr.manager.save(this.repository.target,entities);await this.afterInsertOperation(saved,user,qr);await qr.commitTransaction();if(this.isCacheable)await Promise.all([this.clearCacheForAll(),this.clearCacheForId(Array.isArray(saved)?saved:[saved])]);const first=Array.isArray(saved)?saved[0]:saved;return this.convertEntityToResponseDto(first,false)}catch(error){await qr.rollbackTransaction();this.handleError(error,"insert")}finally{await qr.release()}}async insertMany(dtos,user){await this.ensureRepositoryInitialized();const qr=this.repository.manager.connection.createQueryRunner();await qr.connect();await qr.startTransaction();try{await this.beforeInsertOperation(dtos,user,qr);const entities=await this.convertRequestDtoToEntity(dtos,user);const saved=await qr.manager.save(this.repository.target,entities);await this.afterInsertOperation(Array.isArray(saved)?saved:[saved],user,qr);await qr.commitTransaction();if(this.isCacheable)await Promise.all([this.clearCacheForAll(),this.clearCacheForId(Array.isArray(saved)?saved:[saved])]);const list=(Array.isArray(saved)?saved:[saved]).map(e=>this.convertEntityToResponseDto(e,false));return list}catch(error){await qr.rollbackTransaction();this.handleError(error,"insertMany")}finally{await qr.release()}}async update(dto,user){await this.ensureRepositoryInitialized();const qr=this.repository.manager.connection.createQueryRunner();await qr.connect();await qr.startTransaction();try{await this.beforeUpdateOperation(dto,user,qr);const entities=await this.convertRequestDtoToEntity(dto,user);const saved=await qr.manager.save(this.repository.target,entities);await this.afterUpdateOperation(saved,user,qr);await qr.commitTransaction();if(this.isCacheable)await Promise.all([this.clearCacheForAll(),this.clearCacheForId(Array.isArray(saved)?saved:[saved])]);const first=Array.isArray(saved)?saved[0]:saved;return this.convertEntityToResponseDto(first,false)}catch(error){await qr.rollbackTransaction();this.handleError(error,"update")}finally{await qr.release()}}async updateMany(dtos,user){await this.ensureRepositoryInitialized();const qr=this.repository.manager.connection.createQueryRunner();await qr.connect();await qr.startTransaction();try{await this.beforeUpdateOperation(dtos,user,qr);const entities=await this.convertRequestDtoToEntity(dtos,user);const saved=await qr.manager.save(this.repository.target,entities);await this.afterUpdateOperation(Array.isArray(saved)?saved:[saved],user,qr);await qr.commitTransaction();if(this.isCacheable)await Promise.all([this.clearCacheForAll(),this.clearCacheForId(Array.isArray(saved)?saved:[saved])]);const list=(Array.isArray(saved)?saved:[saved]).map(e=>this.convertEntityToResponseDto(e,false));return list}catch(error){await qr.rollbackTransaction();this.handleError(error,"updateMany")}finally{await qr.release()}}async findByIds(ids,user){await this.ensureRepositoryInitialized();try{const query=this.repository.createQueryBuilder(this.entityName);query.where({id:(0,import_typeorm.In)(ids)});const{query:finalQuery,isRaw}=await this.getSelectQuery(query,user);let output;if(isRaw){output=await finalQuery.getRawMany()}else{output=await finalQuery.getMany()}const result=this.convertEntityListToResponseListDto(output,isRaw);if(!result||!result.length)throw new import_common3.NotFoundException("No Data Found");return result}catch(error){if(error instanceof import_common3.NotFoundException){throw error}this.handleError(error,"findByIds")}}async findById(id,user,select){await this.ensureRepositoryInitialized();try{const query=this.repository.createQueryBuilder(this.entityName);query.where({id});const{query:finalQuery,isRaw}=await this.getSelectQuery(query,user,select);let result;let cacheKey="";if(this.isCacheable){cacheKey=this.utilsService.getCacheKey(this.entityName,finalQuery.getQueryAndParameters(),id);result=await this.cacheManager.get(cacheKey)}if(!result){let output;if(isRaw){output=await finalQuery.getRawMany();const convertResult=this.convertEntityListToResponseListDto(output,isRaw);if(convertResult.length)result=convertResult[0]}else{output=await finalQuery.getOne();if(!output)throw new import_common3.NotFoundException("No Data Found");result=this.convertEntityToResponseDto(output,false)}if(this.isCacheable){await this.cacheManager.set(cacheKey,result);await this.utilsService.trackCacheKey(cacheKey,this.entityName,this.cacheManager,id)}}return result}catch(error){if(error instanceof import_common3.NotFoundException){throw error}this.handleError(error,"findById")}}async getAll(search,filterAndPaginationDto,user){await this.ensureRepositoryInitialized();try{let data;let total;let isRaw=false;let query=this.repository.createQueryBuilder(this.entityName);if(filterAndPaginationDto.filter){const{query:filterQuery,isRaw:filterIsRaw}=await this.getFilterQuery(query,filterAndPaginationDto.filter,user);query=filterQuery;isRaw=isRaw||filterIsRaw}if(search){const{query:searchQuery,isRaw:searchIsRaw}=await this.getGlobalSearchQuery(query,search,user);query=searchQuery;isRaw=isRaw||searchIsRaw}if(filterAndPaginationDto.select){const{query:selectQuery,isRaw:selectIsRaw}=await this.getSelectQuery(query,user,filterAndPaginationDto.select);query=selectQuery;isRaw=isRaw||selectIsRaw}if(filterAndPaginationDto.sort){const{query:sortQuery,isRaw:sortIsRaw}=await this.getSortQuery(query,filterAndPaginationDto.sort,user);query=sortQuery;isRaw=isRaw||sortIsRaw}if(filterAndPaginationDto.withDeleted)query.withDeleted();const{query:extraQuery,isRaw:extraIsRaw}=await this.getExtraManipulateQuery(query,filterAndPaginationDto,user);query=extraQuery;isRaw=isRaw||extraIsRaw;if(filterAndPaginationDto.pagination){const offset=filterAndPaginationDto.pagination.currentPage*filterAndPaginationDto.pagination.pageSize;const limit=filterAndPaginationDto.pagination.pageSize;if(isRaw){query.offset(offset).limit(limit)}else{query.skip(offset).take(limit)}}let cacheKey="";if(this.isCacheable){cacheKey=this.utilsService.getCacheKey(this.entityName,{raw:isRaw,pagination:filterAndPaginationDto.pagination,query:query.getQueryAndParameters()});const cached=await this.cacheManager.get(cacheKey);if(cached){return cached}}if(isRaw){const rawSubQuery=query.clone().offset(void 0).limit(void 0).distinct(true);const countSql=`
|
|
19
|
+
SELECT COUNT(*) as count
|
|
20
|
+
FROM (
|
|
21
|
+
SELECT COUNT(*) as count
|
|
22
|
+
FROM (${rawSubQuery.getQuery()}) AS subquery
|
|
23
|
+
GROUP BY subquery.${this.entityName}_id
|
|
24
|
+
) AS final
|
|
25
|
+
`;const parameters=rawSubQuery.getParameters();const orderedValues=[];const convertedQuery=countSql.replace(/:(\w+)/g,(_,key)=>{if(!(key in parameters))throw new Error(`Missing parameter value for: ${key}`);orderedValues.push(parameters[key]);return"?"});const result=await this.repository.query(convertedQuery,orderedValues);total=Number(result[0]?.count||0);data=await query.getRawMany()}else{[data,total]=await query.getManyAndCount()}const convertedFinalData=this.convertEntityListToResponseListDto(data,isRaw);const finalResponse={data:convertedFinalData,total};if(this.isCacheable){await this.cacheManager.set(cacheKey,finalResponse);await this.utilsService.trackCacheKey(cacheKey,this.entityName,this.cacheManager)}return finalResponse}catch(error){this.handleError(error,"getAll")}}async delete(option,user){await this.ensureRepositoryInitialized();const queryRunner=this.repository.manager.connection.createQueryRunner();await queryRunner.connect();await queryRunner.startTransaction();try{await this.beforeDeleteOperation(option,user,queryRunner);if(option.type==="delete"){await queryRunner.manager.softDelete(this.repository.target,option.id);await queryRunner.manager.update(this.repository.target,option.id,{deletedById:option["deletedById"]})}else if(option.type==="restore"){await queryRunner.manager.restore(this.repository.target,option.id);await queryRunner.manager.update(this.repository.target,option.id,{deletedById:option["deletedById"]})}else{await queryRunner.manager.delete(this.repository.target,option.id)}const ids=(Array.isArray(option.id)?option.id:[option.id]).map(id=>{return{id}});await this.afterDeleteOperation(ids,user,queryRunner);await queryRunner.commitTransaction();await Promise.all([this.clearCacheForAll(),this.clearCacheForId(ids)]);return null}catch(error){await queryRunner.rollbackTransaction();this.handleError(error,"delete")}finally{await queryRunner.release()}}async clearCacheForAll(){await this.utilsService.clearCache(this.entityName,this.cacheManager)}async clearCacheForId(entities){await Promise.all(entities.map(item=>this.utilsService.clearCache(this.entityName,this.cacheManager,item.id)))}handleError(error,operation){ErrorHandler.logError(this.logger,error,operation,{entity:this.entityName});ErrorHandler.rethrowError(error)}async ensureRepositoryInitialized(){}async beforeInsertOperation(_dto,_user,_queryRunner){}async afterInsertOperation(_entity,_user,_queryRunner){}async beforeUpdateOperation(_dto,_user,_queryRunner){}async afterUpdateOperation(_entity,_user,_queryRunner){}async beforeDeleteOperation(_dto,_user,_queryRunner){}async afterDeleteOperation(_entity,_user,_queryRunner){}async getFilterQuery(query,filter,_user){Object.entries(filter).forEach(([key,value])=>{query.andWhere(`${this.entityName}.${key} = :value`,{value})});return{query,isRaw:false}}async getSortQuery(query,sort,_user){Object.entries(sort).forEach(([key,direction])=>{query.addOrderBy(`${this.entityName}.${key}`,direction)});return{query,isRaw:false}}async getSelectQuery(query,_user,select){if(select&&select.length)query.select(select.map(field=>`${this.entityName}.${field}`));return{query,isRaw:false}}async getGlobalSearchQuery(query,search,_user){query.andWhere(`${this.entityName}.name LIKE :search`,{search:`%${search}%`});return{query,isRaw:false}}async getExtraManipulateQuery(query,_dto,_user){return{query,isRaw:false}}async convertRequestDtoToEntity(dto,user){return Array.isArray(dto)?await this.convertArrayDtoToEntities(dto,user):[await this.convertSingleDtoToEntity(dto,user)]}async convertSingleDtoToEntity(dto,_user){const d3=dto;if(d3?.id&&d3.id!=="0"&&d3.id!==""){const existing=await this.repository.findOne({where:{id:d3.id}});if(!existing)throw new import_common3.NotFoundException("No such entity data found for update! Please, Try Again.");return Object.assign(existing,d3)}delete d3.id;return Object.assign(await this.getEntityClass(),d3)}async convertArrayDtoToEntities(dtos,user){return await Promise.all(dtos.map(dto=>this.convertSingleDtoToEntity(dto,user)))}convertEntityToResponseDto(entity,_isRaw){return Object.assign({},entity)}convertEntityListToResponseListDto(entities,_isRaw){return entities.map(entity=>Object.assign({},entity))}async getEntityClass(){return await this.repository.create()}};var import_common4=require("@nestjs/common");var RequestScopedApiService=class extends ApiService{repositoryInitialized=false;async ensureRepositoryInitialized(){if(!this.repositoryInitialized){const entity=this.resolveEntity();const provider=this.getDataSourceProvider();this.repository=await provider.getRepository(entity);this.repositoryInitialized=true}}async initializeAdditionalRepositories(entities){const provider=this.getDataSourceProvider();const repositories=[];for(const entity of entities){repositories.push(await provider.getRepository(entity))}return repositories}async getDataSourceForService(){const provider=this.getDataSourceProvider();return await provider.getDataSource()}};__name(RequestScopedApiService,"RequestScopedApiService");RequestScopedApiService=__decorateClass([(0,import_common4.Injectable)({scope:import_common4.Scope.REQUEST})],RequestScopedApiService);var import_config=require("@flusys/nestjs-core/config");var import_client=__toESM(require_dist(),1);var import_cluster_key_slot=__toESM(require_lib(),1);var Eventified=class{static{__name(this,"Eventified")}_eventListeners;_maxListeners;_logger;_throwOnEmitError=false;constructor(options){this._eventListeners=new Map;this._maxListeners=100;this._logger=options?.logger;if(options?.throwOnEmitError!==void 0){this._throwOnEmitError=options.throwOnEmitError}}get logger(){return this._logger}set logger(logger){this._logger=logger}get throwOnEmitError(){return this._throwOnEmitError}set throwOnEmitError(value){this._throwOnEmitError=value}once(eventName,listener){const onceListener=__name((...arguments_)=>{this.off(eventName,onceListener);listener(...arguments_)},"onceListener");this.on(eventName,onceListener);return this}listenerCount(eventName){if(eventName===void 0){return this.getAllListeners().length}const listeners=this._eventListeners.get(eventName);return listeners?listeners.length:0}eventNames(){return[...this._eventListeners.keys()]}rawListeners(event){if(event===void 0){return this.getAllListeners()}return this._eventListeners.get(event)??[]}prependListener(eventName,listener){const listeners=this._eventListeners.get(eventName)??[];listeners.unshift(listener);this._eventListeners.set(eventName,listeners);return this}prependOnceListener(eventName,listener){const onceListener=__name((...arguments_)=>{this.off(eventName,onceListener);listener(...arguments_)},"onceListener");this.prependListener(eventName,onceListener);return this}maxListeners(){return this._maxListeners}addListener(event,listener){this.on(event,listener);return this}on(event,listener){if(!this._eventListeners.has(event)){this._eventListeners.set(event,[])}const listeners=this._eventListeners.get(event);if(listeners){if(listeners.length>=this._maxListeners){console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length+1} ${event} listeners added. Use setMaxListeners() to increase limit.`)}listeners.push(listener)}return this}removeListener(event,listener){this.off(event,listener);return this}off(event,listener){const listeners=this._eventListeners.get(event)??[];const index=listeners.indexOf(listener);if(index!==-1){listeners.splice(index,1)}if(listeners.length===0){this._eventListeners.delete(event)}return this}emit(event,...arguments_){let result=false;const listeners=this._eventListeners.get(event);if(listeners&&listeners.length>0){for(const listener of listeners){listener(...arguments_);result=true}}if(event==="error"){const error=arguments_[0]instanceof Error?arguments_[0]:new Error(`${arguments_[0]}`);if(this._throwOnEmitError&&!result){throw error}}return result}listeners(event){return this._eventListeners.get(event)??[]}removeAllListeners(event){if(event!==void 0){this._eventListeners.delete(event)}else{this._eventListeners.clear()}return this}setMaxListeners(n){this._maxListeners=n;for(const listeners of this._eventListeners.values()){if(listeners.length>n){listeners.splice(n)}}}getAllListeners(){let result=[];for(const listeners of this._eventListeners.values()){result=[...result,...listeners]}return result}};var Hookified=class extends Eventified{static{__name(this,"Hookified")}_hooks;_throwHookErrors=false;_enforceBeforeAfter=false;_deprecatedHooks;_allowDeprecated=true;constructor(options){super({logger:options?.logger});this._hooks=new Map;this._deprecatedHooks=options?.deprecatedHooks?new Map(options.deprecatedHooks):new Map;if(options?.throwHookErrors!==void 0){this._throwHookErrors=options.throwHookErrors}if(options?.enforceBeforeAfter!==void 0){this._enforceBeforeAfter=options.enforceBeforeAfter}if(options?.allowDeprecated!==void 0){this._allowDeprecated=options.allowDeprecated}}get hooks(){return this._hooks}get throwHookErrors(){return this._throwHookErrors}set throwHookErrors(value){this._throwHookErrors=value}get enforceBeforeAfter(){return this._enforceBeforeAfter}set enforceBeforeAfter(value){this._enforceBeforeAfter=value}get deprecatedHooks(){return this._deprecatedHooks}set deprecatedHooks(value){this._deprecatedHooks=value}get allowDeprecated(){return this._allowDeprecated}set allowDeprecated(value){this._allowDeprecated=value}validateHookName(event){if(this._enforceBeforeAfter){const eventValue=event.trim().toLocaleLowerCase();if(!eventValue.startsWith("before")&&!eventValue.startsWith("after")){throw new Error(`Hook event "${event}" must start with "before" or "after" when enforceBeforeAfter is enabled`)}}}checkDeprecatedHook(event){if(this._deprecatedHooks.has(event)){const message=this._deprecatedHooks.get(event);const warningMessage=`Hook "${event}" is deprecated${message?`: ${message}`:""}`;this.emit("warn",{hook:event,message:warningMessage});if(this.logger?.warn){this.logger.warn(warningMessage)}return this._allowDeprecated}return true}onHook(event,handler){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const eventHandlers=this._hooks.get(event);if(eventHandlers){eventHandlers.push(handler)}else{this._hooks.set(event,[handler])}}onHookEntry(hookEntry){this.onHook(hookEntry.event,hookEntry.handler)}addHook(event,handler){this.onHook(event,handler)}onHooks(hooks){for(const hook of hooks){this.onHook(hook.event,hook.handler)}}prependHook(event,handler){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const eventHandlers=this._hooks.get(event);if(eventHandlers){eventHandlers.unshift(handler)}else{this._hooks.set(event,[handler])}}prependOnceHook(event,handler){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const hook=__name(async(...arguments_)=>{this.removeHook(event,hook);return handler(...arguments_)},"hook");this.prependHook(event,hook)}onceHook(event,handler){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const hook=__name(async(...arguments_)=>{this.removeHook(event,hook);return handler(...arguments_)},"hook");this.onHook(event,hook)}removeHook(event,handler){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const eventHandlers=this._hooks.get(event);if(eventHandlers){const index=eventHandlers.indexOf(handler);if(index!==-1){eventHandlers.splice(index,1)}}}removeHooks(hooks){for(const hook of hooks){this.removeHook(hook.event,hook.handler)}}async hook(event,...arguments_){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return}const eventHandlers=this._hooks.get(event);if(eventHandlers){for(const handler of eventHandlers){try{await handler(...arguments_)}catch(error){const message=`${event}: ${error.message}`;this.emit("error",new Error(message));if(this.logger){this.logger.error(message)}if(this._throwHookErrors){throw new Error(message)}}}}}async beforeHook(event,...arguments_){await this.hook(`before:${event}`,...arguments_)}async afterHook(event,...arguments_){await this.hook(`after:${event}`,...arguments_)}async callHook(event,...arguments_){await this.hook(event,...arguments_)}getHooks(event){this.validateHookName(event);if(!this.checkDeprecatedHook(event)){return void 0}return this._hooks.get(event)}clearHooks(){this._hooks.clear()}};var import_buffer=require("buffer");var _serialize=__name((data,escapeColonStrings=true)=>{if(data===void 0||data===null){return"null"}if(typeof data==="string"){return JSON.stringify(escapeColonStrings&&data.startsWith(":")?`:${data}`:data)}if(import_buffer.Buffer.isBuffer(data)){return JSON.stringify(`:base64:${data.toString("base64")}`)}if(data?.toJSON){data=data.toJSON()}if(typeof data==="object"){let s="";const array=Array.isArray(data);s=array?"[":"{";let first=true;for(const k2 in data){const ignore=typeof data[k2]==="function"||!array&&data[k2]===void 0;if(!Object.hasOwn(data,k2)||ignore){continue}if(!first){s+=","}first=false;if(array){s+=_serialize(data[k2],escapeColonStrings)}else if(data[k2]!==void 0){s+=`${_serialize(k2,false)}:${_serialize(data[k2],escapeColonStrings)}`}}s+=array?"]":"}";return s}return JSON.stringify(data)},"_serialize");var defaultSerialize=__name(data=>{return _serialize(data,true)},"defaultSerialize");var defaultDeserialize=__name(data=>JSON.parse(data,(_,value)=>{if(typeof value==="string"){if(value.startsWith(":base64:")){return import_buffer.Buffer.from(value.slice(8),"base64")}return value.startsWith(":")?value.slice(1):value}return value}),"defaultDeserialize");var EventManager=class{static{__name(this,"EventManager")}_eventListeners;_maxListeners;constructor(){this._eventListeners=new Map;this._maxListeners=100}maxListeners(){return this._maxListeners}addListener(event,listener){this.on(event,listener)}on(event,listener){if(!this._eventListeners.has(event)){this._eventListeners.set(event,[])}const listeners=this._eventListeners.get(event);if(listeners){if(listeners.length>=this._maxListeners){console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length+1} ${event} listeners added. Use setMaxListeners() to increase limit.`)}listeners.push(listener)}return this}removeListener(event,listener){this.off(event,listener)}off(event,listener){const listeners=this._eventListeners.get(event)??[];const index=listeners.indexOf(listener);if(index!==-1){listeners.splice(index,1)}if(listeners.length===0){this._eventListeners.delete(event)}}once(event,listener){const onceListener=__name((...arguments_)=>{listener(...arguments_);this.off(event,onceListener)},"onceListener");this.on(event,onceListener)}emit(event,...arguments_){const listeners=this._eventListeners.get(event);if(listeners&&listeners.length>0){for(const listener of listeners){listener(...arguments_)}}}listeners(event){return this._eventListeners.get(event)??[]}removeAllListeners(event){if(event){this._eventListeners.delete(event)}else{this._eventListeners.clear()}}setMaxListeners(n){this._maxListeners=n}};var event_manager_default=EventManager;var HooksManager=class extends event_manager_default{static{__name(this,"HooksManager")}_hookHandlers;constructor(){super();this._hookHandlers=new Map}addHandler(event,handler){const eventHandlers=this._hookHandlers.get(event);if(eventHandlers){eventHandlers.push(handler)}else{this._hookHandlers.set(event,[handler])}}removeHandler(event,handler){const eventHandlers=this._hookHandlers.get(event);if(eventHandlers){const index=eventHandlers.indexOf(handler);if(index!==-1){eventHandlers.splice(index,1)}}}trigger(event,data){const eventHandlers=this._hookHandlers.get(event);if(eventHandlers){for(const handler of eventHandlers){try{handler(data)}catch(error){this.emit("error",new Error(`Error in hook handler for event "${event}": ${error.message}`))}}}}get handlers(){return new Map(this._hookHandlers)}};var hooks_manager_default=HooksManager;var StatsManager=class extends event_manager_default{static{__name(this,"StatsManager")}enabled=true;hits=0;misses=0;sets=0;deletes=0;errors=0;constructor(enabled){super();if(enabled!==void 0){this.enabled=enabled}this.reset()}hit(){if(this.enabled){this.hits++}}miss(){if(this.enabled){this.misses++}}set(){if(this.enabled){this.sets++}}delete(){if(this.enabled){this.deletes++}}hitsOrMisses(array){for(const item of array){if(item===void 0){this.miss()}else{this.hit()}}}reset(){this.hits=0;this.misses=0;this.sets=0;this.deletes=0;this.errors=0}};var stats_manager_default=StatsManager;var iterableAdapters=["sqlite","postgres","mysql","mongo","redis","valkey","etcd"];var Keyv=class extends event_manager_default{static{__name(this,"Keyv")}opts;iterator;hooks=new hooks_manager_default;stats=new stats_manager_default(false);_ttl;_namespace;_store=new Map;_serialize=defaultSerialize;_deserialize=defaultDeserialize;_compression;_useKeyPrefix=true;_throwOnErrors=false;constructor(store,options){super();options??={};store??={};this.opts={namespace:"keyv",serialize:defaultSerialize,deserialize:defaultDeserialize,emitErrors:true,store:new Map,...options};if(store&&store.get){this.opts.store=store}else{this.opts={...this.opts,...store}}this._store=this.opts.store??new Map;this._compression=this.opts.compression;this._serialize=this.opts.serialize;this._deserialize=this.opts.deserialize;if(this.opts.namespace){this._namespace=this.opts.namespace}if(this._store){if(!this._isValidStorageAdapter(this._store)){throw new Error("Invalid storage adapter")}if(typeof this._store.on==="function"){this._store.on("error",error=>this.emit("error",error))}this._store.namespace=this._namespace;if(typeof this._store[Symbol.iterator]==="function"&&this._store instanceof Map){this.iterator=this.generateIterator(this._store)}else if("iterator"in this._store&&this._store.opts&&this._checkIterableAdapter()){this.iterator=this.generateIterator(this._store.iterator.bind(this._store))}}if(this.opts.stats){this.stats.enabled=this.opts.stats}if(this.opts.ttl){this._ttl=this.opts.ttl}if(this.opts.useKeyPrefix!==void 0){this._useKeyPrefix=this.opts.useKeyPrefix}if(this.opts.throwOnErrors!==void 0){this._throwOnErrors=this.opts.throwOnErrors}}get store(){return this._store}set store(store){if(this._isValidStorageAdapter(store)){this._store=store;this.opts.store=store;if(typeof store.on==="function"){store.on("error",error=>this.emit("error",error))}if(this._namespace){this._store.namespace=this._namespace}if(typeof store[Symbol.iterator]==="function"&&store instanceof Map){this.iterator=this.generateIterator(store)}else if("iterator"in store&&store.opts&&this._checkIterableAdapter()){this.iterator=this.generateIterator(store.iterator?.bind(store))}}else{throw new Error("Invalid storage adapter")}}get compression(){return this._compression}set compression(compress){this._compression=compress}get namespace(){return this._namespace}set namespace(namespace){this._namespace=namespace;this.opts.namespace=namespace;this._store.namespace=namespace;if(this.opts.store){this.opts.store.namespace=namespace}}get ttl(){return this._ttl}set ttl(ttl){this.opts.ttl=ttl;this._ttl=ttl}get serialize(){return this._serialize}set serialize(serialize){this.opts.serialize=serialize;this._serialize=serialize}get deserialize(){return this._deserialize}set deserialize(deserialize){this.opts.deserialize=deserialize;this._deserialize=deserialize}get useKeyPrefix(){return this._useKeyPrefix}set useKeyPrefix(value){this._useKeyPrefix=value;this.opts.useKeyPrefix=value}get throwOnErrors(){return this._throwOnErrors}set throwOnErrors(value){this._throwOnErrors=value;this.opts.throwOnErrors=value}generateIterator(iterator){const function_=__name(async function*(){for await(const[key,raw]of typeof iterator==="function"?iterator(this._store.namespace):iterator){const data=await this.deserializeData(raw);if(this._useKeyPrefix&&this._store.namespace&&!key.includes(this._store.namespace)){continue}if(typeof data.expires==="number"&&Date.now()>data.expires){this.delete(key);continue}yield[this._getKeyUnprefix(key),data.value]}},"function_");return function_.bind(this)}_checkIterableAdapter(){return iterableAdapters.includes(this._store.opts.dialect)||iterableAdapters.some(element=>this._store.opts.url.includes(element))}_getKeyPrefix(key){if(!this._useKeyPrefix){return key}if(!this._namespace){return key}return`${this._namespace}:${key}`}_getKeyPrefixArray(keys){if(!this._useKeyPrefix){return keys}if(!this._namespace){return keys}return keys.map(key=>`${this._namespace}:${key}`)}_getKeyUnprefix(key){if(!this._useKeyPrefix){return key}return key.split(":").splice(1).join(":")}_isValidStorageAdapter(store){return store instanceof Map||typeof store.get==="function"&&typeof store.set==="function"&&typeof store.delete==="function"&&typeof store.clear==="function"}async get(key,options){const{store}=this.opts;const isArray=Array.isArray(key);const keyPrefixed=isArray?this._getKeyPrefixArray(key):this._getKeyPrefix(key);const isDataExpired=__name(data=>typeof data.expires==="number"&&Date.now()>data.expires,"isDataExpired");if(isArray){if(options?.raw===true){return this.getMany(key,{raw:true})}return this.getMany(key,{raw:false})}this.hooks.trigger("preGet",{key:keyPrefixed});let rawData;try{rawData=await store.get(keyPrefixed)}catch(error){if(this.throwOnErrors){throw error}}const deserializedData=typeof rawData==="string"||this.opts.compression?await this.deserializeData(rawData):rawData;if(deserializedData===void 0||deserializedData===null){this.stats.miss();return void 0}if(isDataExpired(deserializedData)){await this.delete(key);this.stats.miss();return void 0}this.hooks.trigger("postGet",{key:keyPrefixed,value:deserializedData});this.stats.hit();return options?.raw?deserializedData:deserializedData.value}async getMany(keys,options){const{store}=this.opts;const keyPrefixed=this._getKeyPrefixArray(keys);const isDataExpired=__name(data=>typeof data.expires==="number"&&Date.now()>data.expires,"isDataExpired");this.hooks.trigger("preGetMany",{keys:keyPrefixed});if(store.getMany===void 0){const promises=keyPrefixed.map(async key=>{const rawData2=await store.get(key);const deserializedRow=typeof rawData2==="string"||this.opts.compression?await this.deserializeData(rawData2):rawData2;if(deserializedRow===void 0||deserializedRow===null){return void 0}if(isDataExpired(deserializedRow)){await this.delete(key);return void 0}return options?.raw?deserializedRow:deserializedRow.value});const deserializedRows=await Promise.allSettled(promises);const result2=deserializedRows.map(row=>row.value);this.hooks.trigger("postGetMany",result2);if(result2.length>0){this.stats.hit()}return result2}const rawData=await store.getMany(keyPrefixed);const result=[];const expiredKeys=[];for(const index in rawData){let row=rawData[index];if(typeof row==="string"){row=await this.deserializeData(row)}if(row===void 0||row===null){result.push(void 0);continue}if(isDataExpired(row)){expiredKeys.push(keys[index]);result.push(void 0);continue}const value=options?.raw?row:row.value;result.push(value)}if(expiredKeys.length>0){await this.deleteMany(expiredKeys)}this.hooks.trigger("postGetMany",result);if(result.length>0){this.stats.hit()}return result}async getRaw(key){const{store}=this.opts;const keyPrefixed=this._getKeyPrefix(key);this.hooks.trigger("preGetRaw",{key:keyPrefixed});const rawData=await store.get(keyPrefixed);if(rawData===void 0||rawData===null){this.stats.miss();return void 0}const deserializedData=typeof rawData==="string"||this.opts.compression?await this.deserializeData(rawData):rawData;if(deserializedData!==void 0&&deserializedData.expires!==void 0&&deserializedData.expires!==null&&deserializedData.expires<Date.now()){this.stats.miss();await this.delete(key);return void 0}this.stats.hit();this.hooks.trigger("postGetRaw",{key:keyPrefixed,value:deserializedData});return deserializedData}async getManyRaw(keys){const{store}=this.opts;const keyPrefixed=this._getKeyPrefixArray(keys);if(keys.length===0){const result2=Array.from({length:keys.length}).fill(void 0);this.stats.misses+=keys.length;this.hooks.trigger("postGetManyRaw",{keys:keyPrefixed,values:result2});return result2}let result=[];if(store.getMany===void 0){const promises=keyPrefixed.map(async key=>{const rawData=await store.get(key);if(rawData!==void 0&&rawData!==null){return this.deserializeData(rawData)}return void 0});const deserializedRows=await Promise.allSettled(promises);result=deserializedRows.map(row=>row.value)}else{const rawData=await store.getMany(keyPrefixed);for(const row of rawData){if(row!==void 0&&row!==null){result.push(await this.deserializeData(row))}else{result.push(void 0)}}}const expiredKeys=[];const isDataExpired=__name(data=>typeof data.expires==="number"&&Date.now()>data.expires,"isDataExpired");for(const[index,row]of result.entries()){if(row!==void 0&&isDataExpired(row)){expiredKeys.push(keyPrefixed[index]);result[index]=void 0}}if(expiredKeys.length>0){await this.deleteMany(expiredKeys)}this.stats.hitsOrMisses(result);this.hooks.trigger("postGetManyRaw",{keys:keyPrefixed,values:result});return result}async set(key,value,ttl){const data={key,value,ttl};this.hooks.trigger("preSet",data);const keyPrefixed=this._getKeyPrefix(data.key);data.ttl??=this._ttl;if(data.ttl===0){data.ttl=void 0}const{store}=this.opts;const expires=typeof data.ttl==="number"?Date.now()+data.ttl:void 0;if(typeof data.value==="symbol"){this.emit("error","symbol cannot be serialized");throw new Error("symbol cannot be serialized")}const formattedValue={value:data.value,expires};const serializedValue=await this.serializeData(formattedValue);let result=true;try{const value2=await store.set(keyPrefixed,serializedValue,data.ttl);if(typeof value2==="boolean"){result=value2}}catch(error){result=false;this.emit("error",error);if(this._throwOnErrors){throw error}}this.hooks.trigger("postSet",{key:keyPrefixed,value:serializedValue,ttl});this.stats.set();return result}async setMany(entries){let results=[];try{if(this._store.setMany===void 0){const promises=[];for(const entry of entries){promises.push(this.set(entry.key,entry.value,entry.ttl))}const promiseResults=await Promise.all(promises);results=promiseResults}else{const serializedEntries=await Promise.all(entries.map(async({key,value,ttl})=>{ttl??=this._ttl;if(ttl===0){ttl=void 0}const expires=typeof ttl==="number"?Date.now()+ttl:void 0;if(typeof value==="symbol"){this.emit("error","symbol cannot be serialized");throw new Error("symbol cannot be serialized")}const formattedValue={value,expires};const serializedValue=await this.serializeData(formattedValue);const keyPrefixed=this._getKeyPrefix(key);return{key:keyPrefixed,value:serializedValue,ttl}}));results=await this._store.setMany(serializedEntries)}}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}results=entries.map(()=>false)}return results}async delete(key){const{store}=this.opts;if(Array.isArray(key)){return this.deleteMany(key)}const keyPrefixed=this._getKeyPrefix(key);this.hooks.trigger("preDelete",{key:keyPrefixed});let result=true;try{const value=await store.delete(keyPrefixed);if(typeof value==="boolean"){result=value}}catch(error){result=false;this.emit("error",error);if(this._throwOnErrors){throw error}}this.hooks.trigger("postDelete",{key:keyPrefixed,value:result});this.stats.delete();return result}async deleteMany(keys){try{const{store}=this.opts;const keyPrefixed=this._getKeyPrefixArray(keys);this.hooks.trigger("preDelete",{key:keyPrefixed});if(store.deleteMany!==void 0){return await store.deleteMany(keyPrefixed)}const promises=keyPrefixed.map(async key=>store.delete(key));const results=await Promise.all(promises);const returnResult=results.every(Boolean);this.hooks.trigger("postDelete",{key:keyPrefixed,value:returnResult});return returnResult}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return false}}async clear(){this.emit("clear");const{store}=this.opts;try{await store.clear()}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}}}async has(key){if(Array.isArray(key)){return this.hasMany(key)}const keyPrefixed=this._getKeyPrefix(key);const{store}=this.opts;if(store.has!==void 0&&!(store instanceof Map)){return store.has(keyPrefixed)}let rawData;try{rawData=await store.get(keyPrefixed)}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return false}if(rawData){const data=await this.deserializeData(rawData);if(data){if(data.expires===void 0||data.expires===null){return true}return data.expires>Date.now()}}return false}async hasMany(keys){const keyPrefixed=this._getKeyPrefixArray(keys);const{store}=this.opts;if(store.hasMany!==void 0){return store.hasMany(keyPrefixed)}const results=[];for(const key of keys){results.push(await this.has(key))}return results}async disconnect(){const{store}=this.opts;this.emit("disconnect");if(typeof store.disconnect==="function"){return store.disconnect()}}emit(event,...arguments_){if(event==="error"&&!this.opts.emitErrors){return}super.emit(event,...arguments_)}async serializeData(data){if(!this._serialize){return data}if(this._compression?.compress){return this._serialize({value:await this._compression.compress(data.value),expires:data.expires})}return this._serialize(data)}async deserializeData(data){if(!this._deserialize){return data}if(this._compression?.decompress&&typeof data==="string"){const result=await this._deserialize(data);return{value:await this._compression.decompress(result?.value),expires:result?.expires}}if(typeof data==="string"){return this._deserialize(data)}return void 0}};var index_default=Keyv;var import_client2=__toESM(require_dist(),1);var defaultReconnectStrategy=__name(attempts=>{const backoff=Math.min(2**attempts*100,2e3);const jitter=(Math.random()-.5)*100;return backoff+jitter},"defaultReconnectStrategy");var KeyvRedis=class extends Hookified{static{__name(this,"KeyvRedis")}_client=(0,import_client.createClient)();_namespace;_keyPrefixSeparator="::";_clearBatchSize=1e3;_useUnlink=true;_noNamespaceAffectsAll=false;_throwOnConnectError=true;_throwOnErrors=false;_connectionTimeout;constructor(connect,options){super();const socket={reconnectStrategy:defaultReconnectStrategy};if(connect){if(typeof connect==="string"){this._client=(0,import_client.createClient)({url:connect,socket})}else if(connect.connect!==void 0){if(this.isClientSentinel(connect)){this._client=connect}else if(this.isClientCluster(connect)){this._client=connect}else{this._client=connect}}else if(connect instanceof Object){if(connect.sentinelRootNodes!==void 0){this._client=(0,import_client.createSentinel)(connect)}else if(connect.rootNodes===void 0){this._client=(0,import_client.createClient)(connect)}else{this._client=(0,import_client.createCluster)(connect)}}}this.setOptions(options);this.initClient()}get client(){return this._client}set client(value){this._client=value;this.initClient()}get opts(){let url="redis://localhost:6379";if(this._client.options){const redisUrl=this._client.options?.url;if(redisUrl){url=redisUrl}}const results={namespace:this._namespace,keyPrefixSeparator:this._keyPrefixSeparator,clearBatchSize:this._clearBatchSize,noNamespaceAffectsAll:this._noNamespaceAffectsAll,useUnlink:this._useUnlink,throwOnConnectError:this._throwOnConnectError,throwOnErrors:this._throwOnErrors,connectionTimeout:this._connectionTimeout,dialect:"redis",url};return results}set opts(options){this.setOptions(options)}get namespace(){return this._namespace}set namespace(value){this._namespace=value}get keyPrefixSeparator(){return this._keyPrefixSeparator}set keyPrefixSeparator(value){this._keyPrefixSeparator=value}get clearBatchSize(){return this._clearBatchSize}set clearBatchSize(value){if(value>0){this._clearBatchSize=value}else{this.emit("error","clearBatchSize must be greater than 0")}}get useUnlink(){return this._useUnlink}set useUnlink(value){this._useUnlink=value}get noNamespaceAffectsAll(){return this._noNamespaceAffectsAll}set noNamespaceAffectsAll(value){this._noNamespaceAffectsAll=value}get throwOnConnectError(){return this._throwOnConnectError}set throwOnConnectError(value){this._throwOnConnectError=value}get throwOnErrors(){return this._throwOnErrors}set throwOnErrors(value){this._throwOnErrors=value}get connectionTimeout(){return this._connectionTimeout}set connectionTimeout(value){this._connectionTimeout=value}async getClient(){if(this._client.isOpen){return this._client}try{if(this._connectionTimeout===void 0){await this._client.connect()}else{await Promise.race([this._client.connect(),this.createTimeoutPromise(this._connectionTimeout)])}}catch(error){this.emit("error",error);await this.disconnect(true);if(this._throwOnConnectError){throw new Error("Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true.")}}this.initClient();return this._client}async set(key,value,ttl){const client=await this.getClient();try{key=this.createKeyPrefix(key,this._namespace);if(ttl){await client.set(key,value,{PX:ttl})}else{await client.set(key,value)}}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}}}async setMany(entries){try{if(this.isCluster()){await this.getClient();const slotMap=new Map;for(const entry of entries){const prefixedKey=this.createKeyPrefix(entry.key,this._namespace);const slot=(0,import_cluster_key_slot.default)(prefixedKey);const slotEntries=slotMap.get(slot)??[];slotEntries.push(entry);slotMap.set(slot,slotEntries)}await Promise.all(Array.from(slotMap.entries(),async([slot,slotEntries])=>{const client=await this.getSlotMaster(slot);const multi=client.multi();for(const{key,value,ttl}of slotEntries){const prefixedKey=this.createKeyPrefix(key,this._namespace);if(ttl){multi.set(prefixedKey,value,{PX:ttl})}else{multi.set(prefixedKey,value)}}await multi.exec()}))}else{const client=await this.getClient();const multi=client.multi();for(const{key,value,ttl}of entries){const prefixedKey=this.createKeyPrefix(key,this._namespace);if(ttl){multi.set(prefixedKey,value,{PX:ttl})}else{multi.set(prefixedKey,value)}}await multi.exec()}}catch(error){this.emit("error",error);if(this._throwOnConnectError&&error.message==="Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true."){throw error}if(this._throwOnErrors){throw error}}}async has(key){const client=await this.getClient();try{key=this.createKeyPrefix(key,this._namespace);const exists=await client.exists(key);return exists===1}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return false}}async hasMany(keys){try{const prefixedKeys=keys.map(key=>this.createKeyPrefix(key,this._namespace));if(this.isCluster()){const slotMap=this.getSlotMap(prefixedKeys);const resultMap=new Map;await Promise.all(Array.from(slotMap.entries(),async([slot,slotKeys])=>{const client=await this.getSlotMaster(slot);const multi=client.multi();for(const key of slotKeys){multi.exists(key)}const results=await multi.exec();for(const[index,result]of results.entries()){resultMap.set(slotKeys[index],typeof result==="number"&&result===1)}}));return prefixedKeys.map(key=>resultMap.get(key)??false)}else{const client=await this.getClient();const multi=client.multi();for(const key of prefixedKeys){multi.exists(key)}const results=await multi.exec();return results.map(result=>typeof result==="number"&&result===1)}}catch(error){this.emit("error",error);if(this._throwOnConnectError&&error.message==="Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true."){throw error}if(this._throwOnErrors){throw error}return Array.from({length:keys.length}).fill(false)}}async get(key){const client=await this.getClient();try{key=this.createKeyPrefix(key,this._namespace);const value=await client.get(key);if(value===null){return void 0}return value}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return void 0}}async getMany(keys){if(keys.length===0){return[]}keys=keys.map(key=>this.createKeyPrefix(key,this._namespace));try{const values=await this.mget(keys);return values}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return Array.from({length:keys.length}).fill(void 0)}}async delete(key){const client=await this.getClient();try{key=this.createKeyPrefix(key,this._namespace);let deleted=0;deleted=await(this._useUnlink?client.unlink(key):client.del(key));return deleted>0}catch(error){this.emit("error",error);if(this._throwOnErrors){throw error}return false}}async deleteMany(keys){let result=false;try{const prefixedKeys=keys.map(key=>this.createKeyPrefix(key,this._namespace));if(this.isCluster()){const slotMap=this.getSlotMap(prefixedKeys);await Promise.all(Array.from(slotMap.entries(),async([slot,slotKeys])=>{const client=await this.getSlotMaster(slot);const multi=client.multi();for(const key of slotKeys){if(this._useUnlink){multi.unlink(key)}else{multi.del(key)}}const results=await multi.exec();for(const deleted of results){if(typeof deleted==="number"&&deleted>0){result=true}}}))}else{const client=await this.getClient();const multi=client.multi();for(const key of prefixedKeys){if(this._useUnlink){multi.unlink(key)}else{multi.del(key)}}const results=await multi.exec();for(const deleted of results){if(typeof deleted==="number"&&deleted>0){result=true}}}}catch(error){this.emit("error",error);if(this._throwOnConnectError&&error.message==="Redis client is not connected or has failed to connect. This is thrown because throwOnConnectError is set to true."){throw error}if(this._throwOnErrors){throw error}}return result}async disconnect(force){if(this._client.isOpen){await(force?this._client.destroy():this._client.close())}}createKeyPrefix(key,namespace){if(namespace){return`${namespace}${this._keyPrefixSeparator}${key}`}return key}getKeyWithoutPrefix(key,namespace){if(namespace){return key.replace(`${namespace}${this._keyPrefixSeparator}`,"")}return key}isCluster(){return this.isClientCluster(this._client)}isSentinel(){return this.isClientSentinel(this._client)}async getMasterNodes(){if(this.isCluster()){const cluster=await this.getClient();const nodes=cluster.masters.map(async main=>cluster.nodeClient(main));return Promise.all(nodes)}return[await this.getClient()]}async*iterator(namespace){const clients=await this.getMasterNodes();for(const client of clients){const match=namespace?`${namespace}${this._keyPrefixSeparator}*`:"*";let cursor="0";do{const result=await client.scan(cursor,{MATCH:match,TYPE:"string"});cursor=result.cursor.toString();let{keys}=result;if(!namespace&&!this._noNamespaceAffectsAll){keys=keys.filter(key=>!key.includes(this._keyPrefixSeparator))}if(keys.length>0){const values=await this.mget(keys);for(const i of keys.keys()){const key=this.getKeyWithoutPrefix(keys[i],namespace);const value=values[i];yield[key,value]}}}while(cursor!=="0")}}async clear(){try{const clients=await this.getMasterNodes();await Promise.all(clients.map(async client=>{if(!this._namespace&&this._noNamespaceAffectsAll){await client.flushDb();return}let cursor="0";const batchSize=this._clearBatchSize;const match=this._namespace?`${this._namespace}${this._keyPrefixSeparator}*`:"*";const deletePromises=[];do{const result=await client.scan(cursor,{MATCH:match,COUNT:batchSize,TYPE:"string"});cursor=result.cursor.toString();let{keys}=result;if(keys.length===0){continue}if(!this._namespace){keys=keys.filter(key=>!key.includes(this._keyPrefixSeparator))}deletePromises.push(this.clearWithClusterSupport(keys))}while(cursor!=="0");await Promise.all(deletePromises)}))}catch(error){this.emit("error",error)}}async mget(keys){const valueMap=new Map;if(this.isCluster()){const slotMap=this.getSlotMap(keys);await Promise.all(Array.from(slotMap.entries(),async([slot,slotKeys])=>{const client=await this.getSlotMaster(slot);const values=await client.mGet(slotKeys);for(const[index,value]of values.entries()){valueMap.set(slotKeys[index],value??void 0)}}))}else{const client=await this.getClient();const values=await client.mGet(keys);for(const[index,value]of values.entries()){valueMap.set(keys[index],value??void 0)}}return keys.map(key=>valueMap.get(key))}async clearWithClusterSupport(keys){if(keys.length>0){const slotMap=this.getSlotMap(keys);await Promise.all(Array.from(slotMap.entries(),async([slot,keys2])=>{const client=await this.getSlotMaster(slot);return this._useUnlink?client.unlink(keys2):client.del(keys2)}))}}async getSlotMaster(slot){const connection=await this.getClient();if(this.isCluster()){const cluster=connection;const mainNode=cluster.slots[slot].master;return cluster.nodeClient(mainNode)}return connection}getSlotMap(keys){const slotMap=new Map;if(this.isCluster()){for(const key of keys){const slot=(0,import_cluster_key_slot.default)(key);const slotKeys=slotMap.get(slot)??[];slotKeys.push(key);slotMap.set(slot,slotKeys)}}else{slotMap.set(0,keys)}return slotMap}isClientCluster(client){return client.slots!==void 0}isClientSentinel(client){return client.getSentinelNode!==void 0}setOptions(options){if(!options){return}if(options.namespace){this._namespace=options.namespace}if(options.keyPrefixSeparator!==void 0){this._keyPrefixSeparator=options.keyPrefixSeparator}if(options.clearBatchSize!==void 0&&options.clearBatchSize>0){this._clearBatchSize=options.clearBatchSize}if(options.useUnlink!==void 0){this._useUnlink=options.useUnlink}if(options.noNamespaceAffectsAll!==void 0){this._noNamespaceAffectsAll=options.noNamespaceAffectsAll}if(options.throwOnConnectError!==void 0){this._throwOnConnectError=options.throwOnConnectError}if(options.throwOnErrors!==void 0){this._throwOnErrors=options.throwOnErrors}if(options.connectionTimeout!==void 0){this._connectionTimeout=options.connectionTimeout}}initClient(){this._client.on("connect",()=>{this.emit("connect",this._client)});this._client.on("disconnect",()=>{this.emit("disconnect",this._client)});this._client.on("reconnecting",reconnectInfo=>{this.emit("reconnecting",reconnectInfo)})}async createTimeoutPromise(timeoutMs){return new Promise((_,reject)=>setTimeout(()=>{reject(new Error(`Redis timed out after ${timeoutMs}ms`))},timeoutMs))}};var l=__toESM(require("crypto"),1);var a=__name(t=>{let e;if(t!==void 0){if(typeof t=="number")e=t;else if(typeof t=="string")if(t=t.trim(),Number.isNaN(Number(t))){let r=/^([\d.]+)\s*(ms|s|m|h|hr|d)$/i.exec(t);if(!r)throw new Error(`Unsupported time format: "${t}". Use 'ms', 's', 'm', 'h', 'hr', or 'd'.`);let[,i,s]=r,n=Number.parseFloat(i);switch(s.toLowerCase()){case"ms":{e=n;break}case"s":{e=n*1e3;break}case"m":{e=n*1e3*60;break}case"h":{e=n*1e3*60*60;break}case"hr":{e=n*1e3*60*60;break}case"d":{e=n*1e3*60*60*24;break}default:e=Number(t)}}else e=Number(t);else throw new TypeError("Time must be a string or a number.");return e}},"a");var g=__name((t,e)=>{e??=new Date;let r=a(t);return r===void 0?e.getTime():e.getTime()+r},"g");var f=(s=>(s.SHA256="sha256",s.SHA512="sha512",s.MD5="md5",s.DJB2="djb2",s))(f||{});function d(t,e={algorithm:"sha256",serialize:JSON.stringify}){e?.algorithm||(e.algorithm="sha256"),e?.serialize||(e.serialize=JSON.stringify);let r=e.serialize(t);if(e?.algorithm==="djb2")return w(r);if(!l.getHashes().includes(e.algorithm))throw new Error(`Unsupported hash algorithm: '${e?.algorithm}'`);let i=l.createHash(e.algorithm);return i.update(r),i.digest("hex")}__name(d,"d");function k(t,e={min:0,max:10,algorithm:"sha256",serialize:JSON.stringify}){let r=e?.min??0,i=e?.max??10;if(r>=i)throw new Error(`Invalid range: min (${r}) must be less than max (${i})`);e?.algorithm||(e.algorithm="sha256"),e?.serialize||(e.serialize=JSON.stringify);let s=d(t,e),n=Number.parseInt(s,16),o2=i-r+1,c2=r+n%o2;return c2<r?r:c2>i?i:c2}__name(k,"k");function w(t){let e=5381;for(let r=0;r<t.length;r++)e=e*33^t.charCodeAt(r);return e.toString()}__name(w,"w");function d2(n,t){let{ttl:e,keyPrefix:a3,cache:r,serialize:c2}=t;return(...s)=>{let i=u(n,s,{keyPrefix:a3,serialize:c2});t.createKey&&(i=t.createKey(n,s,t));let y=r.get(i);if(y===void 0)try{y=n(...s),r.set(i,y,e)}catch(o2){r.emit("error",o2),t.cacheErrors&&r.set(i,o2,e)}return y}}__name(d2,"d");function u(n,t,e){let{keyPrefix:a3,serialize:r}=e||{};return a3?`${a3}::${n.name}::${d(t,{serialize:r})}`:`${n.name}::${d(t,{serialize:r})}`}__name(u,"u");var c=class{static{__name(this,"c")}value;prev=void 0;next=void 0;constructor(e){this.value=e}};var o=class{static{__name(this,"o")}head=void 0;tail=void 0;nodesMap=new Map;addToFront(e){let t=new c(e);this.head?(t.next=this.head,this.head.prev=t,this.head=t):this.head=this.tail=t,this.nodesMap.set(e,t)}moveToFront(e){let t=this.nodesMap.get(e);!t||this.head===t||(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this.tail&&(this.tail=t.prev),t.prev=void 0,t.next=this.head,this.head&&(this.head.prev=t),this.head=t,this.tail??=t)}getOldest(){return this.tail?this.tail.value:void 0}removeOldest(){if(!this.tail)return;let e=this.tail.value;return this.tail.prev?(this.tail=this.tail.prev,this.tail.next=void 0):this.head=this.tail=void 0,this.nodesMap.delete(e),e}get size(){return this.nodesMap.size}};var v=16;var u2=16777216;var a2=class extends Hookified{static{__name(this,"a")}_lru=new o;_storeHashSize=v;_storeHashAlgorithm=f.DJB2;_store=Array.from({length:this._storeHashSize},()=>new Map);_ttl;_useClone=true;_lruSize=0;_checkInterval=0;_interval=0;constructor(e){super(),e?.ttl&&this.setTtl(e.ttl),e?.useClone!==void 0&&(this._useClone=e.useClone),e?.storeHashSize&&e.storeHashSize>0&&(this._storeHashSize=e.storeHashSize),e?.lruSize&&(e.lruSize>u2?this.emit("error",new Error(`LRU size cannot be larger than ${u2} due to Map limitations.`)):this._lruSize=e.lruSize),e?.checkInterval&&(this._checkInterval=e.checkInterval),e?.storeHashAlgorithm&&(this._storeHashAlgorithm=e.storeHashAlgorithm),this._store=Array.from({length:this._storeHashSize},()=>new Map),this.startIntervalCheck()}get ttl(){return this._ttl}set ttl(e){this.setTtl(e)}get useClone(){return this._useClone}set useClone(e){this._useClone=e}get lruSize(){return this._lruSize}set lruSize(e){if(e>u2){this.emit("error",new Error(`LRU size cannot be larger than ${u2} due to Map limitations.`));return}if(this._lruSize=e,this._lruSize===0){this._lru=new o;return}this.lruResize()}get checkInterval(){return this._checkInterval}set checkInterval(e){this._checkInterval=e}get size(){let e=0;for(let t of this._store)e+=t.size;return e}get storeHashSize(){return this._storeHashSize}set storeHashSize(e){e!==this._storeHashSize&&(this._storeHashSize=e,this._store=Array.from({length:this._storeHashSize},()=>new Map))}get storeHashAlgorithm(){return this._storeHashAlgorithm}set storeHashAlgorithm(e){this._storeHashAlgorithm=e}get keys(){let e=[];for(let t of this._store)for(let r of t.keys()){let i=t.get(r);if(i&&this.hasExpired(i)){t.delete(r);continue}e.push(r)}return e.values()}get items(){let e=[];for(let t of this._store)for(let r of t.values()){if(this.hasExpired(r)){t.delete(r.key);continue}e.push(r)}return e.values()}get store(){return this._store}get(e){let t=this.getStore(e),r=t.get(e);if(r){if(r.expires&&Date.now()>r.expires){t.delete(e);return}return this.lruMoveToFront(e),this._useClone?this.clone(r.value):r.value}}getMany(e){let t=[];for(let r of e)t.push(this.get(r));return t}getRaw(e){let t=this.getStore(e),r=t.get(e);if(r){if(r.expires&&r.expires&&Date.now()>r.expires){t.delete(e);return}return this.lruMoveToFront(e),r}}getManyRaw(e){let t=[];for(let r of e)t.push(this.getRaw(r));return t}set(e,t,r){let i=this.getStore(e),h;if(r!==void 0||this._ttl!==void 0)if(typeof r=="object"){if(r.expire&&(h=typeof r.expire=="number"?r.expire:r.expire.getTime()),r.ttl){let n=g(r.ttl);n!==void 0&&(h=n)}}else{let n=g(r??this._ttl);n!==void 0&&(h=n)}if(this._lruSize>0){if(i.has(e))this.lruMoveToFront(e);else if(this.lruAddToFront(e),this._lru.size>this._lruSize){let n=this._lru.getOldest();n&&(this._lru.removeOldest(),this.delete(n))}}let p={key:e,value:t,expires:h};i.set(e,p)}setMany(e){for(let t of e)this.set(t.key,t.value,t.ttl)}has(e){return!!this.get(e)}hasMany(e){let t=[];for(let r of e){let i=this.get(r);t.push(!!i)}return t}take(e){let t=this.get(e);if(t)return this.delete(e),t}takeMany(e){let t=[];for(let r of e)t.push(this.take(r));return t}delete(e){this.getStore(e).delete(e)}deleteMany(e){for(let t of e)this.delete(t)}clear(){this._store=Array.from({length:this._storeHashSize},()=>new Map),this._lru=new o}getStore(e){let t=this.getKeyStoreHash(e);return this._store[t]||=new Map,this._store[t]}getKeyStoreHash(e){if(this._store.length===1)return 0;if(typeof this._storeHashAlgorithm=="function")return this._storeHashAlgorithm(e,this._storeHashSize);let t=this._storeHashSize-1;return k(e,{min:0,max:t,algorithm:this._storeHashAlgorithm})}clone(e){return this.isPrimitive(e)?e:structuredClone(e)}lruAddToFront(e){this._lruSize!==0&&this._lru.addToFront(e)}lruMoveToFront(e){this._lruSize!==0&&this._lru.moveToFront(e)}lruResize(){for(;this._lru.size>this._lruSize;){let e=this._lru.getOldest();e&&(this._lru.removeOldest(),this.delete(e))}}checkExpiration(){for(let e of this._store)for(let t of e.values())t.expires&&Date.now()>t.expires&&e.delete(t.key)}startIntervalCheck(){this._checkInterval>0&&(this._interval&&clearInterval(this._interval),this._interval=setInterval(()=>{this.checkExpiration()},this._checkInterval).unref())}stopIntervalCheck(){this._interval&&clearInterval(this._interval),this._interval=0,this._checkInterval=0}wrap(e,t){let r={ttl:t?.ttl??this._ttl,keyPrefix:t?.keyPrefix,createKey:t?.createKey,cache:this};return d2(e,r)}isPrimitive(e){return e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}setTtl(e){typeof e=="string"||e===void 0?this._ttl=e:e>0?this._ttl=e:this._ttl=void 0}hasExpired(e){return!!(e.expires&&Date.now()>e.expires)}};var HybridCache=class{static{__name(this,"HybridCache")}memory;redis;constructor(memoryTtl=60*1e3,memorySize=5e3){const useCacheLabel=import_config.envConfig.tryGetValue("USE_CACHE_LABEL",false)||"memory";if(useCacheLabel==="memory"||useCacheLabel==="hybrid"){this.memory=new index_default({store:new a2({ttl:memoryTtl,lruSize:memorySize})})}if(useCacheLabel==="redis"||useCacheLabel==="hybrid"){this.redis=new index_default({store:new KeyvRedis(import_config.envConfig.getRedisUrl())})}}async get(key){if(this.memory){const value=await this.memory.get(key);if(value!==void 0)return value}if(this.redis){const value=await this.redis.get(key);if(value!==void 0&&this.memory){await this.memory.set(key,value)}return value}return void 0}async set(key,value,ttl){if(this.memory){await this.memory.set(key,value,ttl)}if(this.redis){await this.redis.set(key,value,ttl)}}async del(key){if(this.memory){await this.memory.delete(key)}if(this.redis){await this.redis.delete(key)}}async reset(){if(this.memory){await this.memory.clear()}}async resetL2(){if(this.redis){await this.redis.clear()}}};var import_config2=require("@flusys/nestjs-core/config");var import_fs=require("fs");var import_path=require("path");var import_winston=require("winston");var Transport=__toESM(require_winston_transport());var DailyRotateFile=__toESM(require_winston_daily_rotate_file());var logConfig=import_config2.envConfig.getLogConfig();var LOG_DIR=logConfig.dir;var LOG_LEVEL=logConfig.level;var LOG_MAX_SIZE=logConfig.maxSize;var LOG_MAX_FILES=logConfig.maxFiles;var USE_TENANT_MODE=import_config2.envConfig.useTenantMode();if(!(0,import_fs.existsSync)(LOG_DIR)){(0,import_fs.mkdirSync)(LOG_DIR,{recursive:true})}var structuredFormat=import_winston.format.printf(({timestamp,level,message,context,requestId,userId,stack,...metadata})=>{const logEntry={timestamp,level:level.toUpperCase(),context:context||"App",message};if(requestId)logEntry.requestId=requestId;if(userId)logEntry.userId=userId;if(Object.keys(metadata).length>0)logEntry.metadata=metadata;if(stack)logEntry.stack=stack;return JSON.stringify(logEntry)});var devConsoleFormat=import_winston.format.printf(({timestamp,level,message,context,requestId,userId,method,url,path,statusCode,duration,stack})=>{const ctx=context||"App";const reqId=requestId?` [${requestId}]`:"";const user=userId?` (user:${userId})`:"";const endpoint=method&&(path||url)?` [${method} ${path||url}]`:"";const status=statusCode?` [${statusCode}]`:"";const time=duration?` (${duration})`:"";const stackTrace=stack?`
|
|
26
|
+
${stack}`:"";return`${timestamp} [${level.toUpperCase().padEnd(7)}] [${ctx}]${endpoint}${status}${time}${reqId}${user} ${message}${stackTrace}`});var combinedRotateTransport=new DailyRotateFile({filename:`${LOG_DIR}/combined-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:true,maxSize:LOG_MAX_SIZE,maxFiles:LOG_MAX_FILES,level:LOG_LEVEL});var errorRotateTransport=new DailyRotateFile({filename:`${LOG_DIR}/error-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:true,maxSize:LOG_MAX_SIZE,maxFiles:LOG_MAX_FILES,level:"error"});var tenantTransportCache=new Map;function getTenantTransport(tenantId){if(tenantTransportCache.has(tenantId)){return tenantTransportCache.get(tenantId)}const tenantLogDir=(0,import_path.join)(LOG_DIR,tenantId);if(!(0,import_fs.existsSync)(tenantLogDir)){(0,import_fs.mkdirSync)(tenantLogDir,{recursive:true})}const transport=new DailyRotateFile({filename:`${tenantLogDir}/combined-%DATE%.log`,datePattern:"YYYY-MM-DD",zippedArchive:true,maxSize:LOG_MAX_SIZE,maxFiles:LOG_MAX_FILES,level:LOG_LEVEL});tenantTransportCache.set(tenantId,transport);return transport}__name(getTenantTransport,"getTenantTransport");var TenantAwareTransport=class extends Transport{static{__name(this,"TenantAwareTransport")}defaultTransport;constructor(defaultTransport){super();this.defaultTransport=defaultTransport}log(info,callback){setImmediate(()=>this.emit("logged",info));const tenantId=info.tenantId||info.metadata?.tenantId;if(USE_TENANT_MODE&&tenantId){const tenantTransport=getTenantTransport(tenantId);tenantTransport.log(info,callback)}else{this.defaultTransport.log(info,callback)}}};var tenantAwareCombinedTransport=new TenantAwareTransport(combinedRotateTransport);var consoleTransport=new import_winston.transports.Console({level:LOG_LEVEL,format:import_winston.format.combine(import_winston.format.colorize({all:true}),import_winston.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),import_winston.format.errors({stack:true}),devConsoleFormat)});var devLogger=(0,import_winston.createLogger)({level:LOG_LEVEL,format:import_winston.format.combine(import_winston.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}),import_winston.format.errors({stack:true})),transports:[consoleTransport],exitOnError:false});var prodLogger=(0,import_winston.createLogger)({level:LOG_LEVEL,format:import_winston.format.combine(import_winston.format.timestamp({format:"YYYY-MM-DD HH:mm:ss.SSS"}),import_winston.format.errors({stack:true}),structuredFormat),transports:[tenantAwareCombinedTransport,errorRotateTransport],exitOnError:false});var instance=import_config2.envConfig.isProduction()?prodLogger:devLogger;var import_config3=require("@flusys/nestjs-core/config");var import_common5=require("@nestjs/common");var import_async_hooks=require("async_hooks");var byteToHex=[];for(let i=0;i<256;++i){byteToHex.push((i+256).toString(16).slice(1))}function unsafeStringify(arr,offset=0){return(byteToHex[arr[offset+0]]+byteToHex[arr[offset+1]]+byteToHex[arr[offset+2]]+byteToHex[arr[offset+3]]+"-"+byteToHex[arr[offset+4]]+byteToHex[arr[offset+5]]+"-"+byteToHex[arr[offset+6]]+byteToHex[arr[offset+7]]+"-"+byteToHex[arr[offset+8]]+byteToHex[arr[offset+9]]+"-"+byteToHex[arr[offset+10]]+byteToHex[arr[offset+11]]+byteToHex[arr[offset+12]]+byteToHex[arr[offset+13]]+byteToHex[arr[offset+14]]+byteToHex[arr[offset+15]]).toLowerCase()}__name(unsafeStringify,"unsafeStringify");var import_node_crypto=require("node:crypto");var rnds8Pool=new Uint8Array(256);var poolPtr=rnds8Pool.length;function rng(){if(poolPtr>rnds8Pool.length-16){(0,import_node_crypto.randomFillSync)(rnds8Pool);poolPtr=0}return rnds8Pool.slice(poolPtr,poolPtr+=16)}__name(rng,"rng");var import_node_crypto2=require("node:crypto");var native_default={randomUUID:import_node_crypto2.randomUUID};function _v4(options,buf,offset){options=options||{};const rnds=options.random??options.rng?.()??rng();if(rnds.length<16){throw new Error("Random bytes length must be >= 16")}rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){offset=offset||0;if(offset<0||offset+16>buf.length){throw new RangeError(`UUID byte range ${offset}:${offset+15} is out of buffer bounds`)}for(let i=0;i<16;++i){buf[offset+i]=rnds[i]}return buf}return unsafeStringify(rnds)}__name(_v4,"_v4");function v4(options,buf,offset){if(native_default.randomUUID&&!buf&&!options){return native_default.randomUUID()}return _v4(options,buf,offset)}__name(v4,"v4");var v4_default=v4;var REQUEST_ID_HEADER="x-request-id";var IS_DEBUG=import_config3.envConfig.getLogConfig().level==="debug";var TENANT_ID_HEADER="x-tenant-id";var EXCLUDED_PATHS=["/health","/metrics","/favicon.ico"];var EXCLUDED_HEADERS=["authorization","cookie","x-api-key"];var MAX_BODY_LOG_SIZE=1e3;var requestContext=new import_async_hooks.AsyncLocalStorage;var getRequestId=__name(()=>requestContext.getStore()?.requestId,"getRequestId");var getTenantId=__name(()=>requestContext.getStore()?.tenantId,"getTenantId");var getUserId=__name(()=>requestContext.getStore()?.userId,"getUserId");var getCompanyId=__name(()=>requestContext.getStore()?.companyId,"getCompanyId");function sanitizeHeaders(headers){const sanitized={};for(const[key,value]of Object.entries(headers)){sanitized[key]=EXCLUDED_HEADERS.includes(key.toLowerCase())?"[REDACTED]":value}return sanitized}__name(sanitizeHeaders,"sanitizeHeaders");function truncateBody(body){if(!body)return void 0;const str=typeof body==="string"?body:JSON.stringify(body);return str.length>MAX_BODY_LOG_SIZE?str.substring(0,MAX_BODY_LOG_SIZE)+"...":body}__name(truncateBody,"truncateBody");function getClientIp(req){return req.headers["x-forwarded-for"]?.split(",")[0]||req.socket?.remoteAddress||"unknown"}__name(getClientIp,"getClientIp");var LoggerMiddleware=class{logger=instance;use(req,res,next){const requestId=req.headers[REQUEST_ID_HEADER]||v4_default();const tenantId=req.headers[TENANT_ID_HEADER];const startTime=Date.now();res.setHeader(REQUEST_ID_HEADER,requestId);const context={requestId,tenantId,startTime};requestContext.run(context,()=>{const shouldSkipLogging=EXCLUDED_PATHS.some(path=>req.originalUrl.startsWith(path));if(!shouldSkipLogging){this.logRequest(req,requestId,tenantId);let responseLogged=false;const originalSend=res.send;const originalJson=res.json;const originalEnd=res.end;const self2=this;res.send=function(body){if(!responseLogged){responseLogged=true;self2.logResponse(req,res,startTime,body,requestId,tenantId)}return originalSend.call(this,body)};res.json=function(body){if(!responseLogged){responseLogged=true;self2.logResponse(req,res,startTime,body,requestId,tenantId)}return originalJson.call(this,body)};res.end=function(...args){if(!responseLogged){responseLogged=true;self2.logResponse(req,res,startTime,args[0],requestId,tenantId)}return originalEnd.apply(this,args)};res.on("error",error=>{this.logger.error("Response error",{context:"HTTP",requestId,tenantId,method:req.method,url:req.originalUrl,path:req.path,error:error.message,stack:error.stack})})}next()})}logRequest(req,requestId,tenantId){const logData={context:"HTTP",requestId,tenantId,method:req.method,url:req.originalUrl,path:req.path,query:Object.keys(req.query).length>0?req.query:void 0,ip:getClientIp(req),userAgent:req.headers["user-agent"],contentType:req.headers["content-type"],contentLength:req.headers["content-length"]};if(IS_DEBUG){logData.headers=sanitizeHeaders(req.headers);logData.body=truncateBody(req.body);logData.params=Object.keys(req.params).length>0?req.params:void 0}this.logger.info("Incoming request",logData)}logResponse(req,res,startTime,body,requestId,tenantId){const duration=Date.now()-startTime;const statusCode=res.statusCode;const level=statusCode>=500?"error":statusCode>=400?"warn":"info";const logData={context:"HTTP",requestId,tenantId,method:req.method,url:req.originalUrl,path:req.path,statusCode,statusMessage:res.statusMessage,duration:`${duration}ms`,durationMs:duration,contentType:res.getHeader("content-type"),contentLength:res.getHeader("content-length")};const userId=getUserId();const companyId=getCompanyId();if(userId)logData.userId=userId;if(companyId)logData.companyId=companyId;if(statusCode>=400||IS_DEBUG){logData.responseBody=truncateBody(body)}this.logger.log(level,`Response [${statusCode}]`,logData);if(duration>3e3&&statusCode<400){this.logger.warn("Slow request detected",{context:"HTTP",requestId,tenantId,userId,companyId,method:req.method,url:req.originalUrl,path:req.path,duration:`${duration}ms`,durationMs:duration,threshold:"3000ms"})}}};__name(LoggerMiddleware,"LoggerMiddleware");LoggerMiddleware=__decorateClass([(0,import_common5.Injectable)()],LoggerMiddleware);function getCorrelationMeta(){const meta={};const requestId=getRequestId();const userId=getUserId();const tenantId=getTenantId();const companyId=getCompanyId();if(requestId)meta.requestId=requestId;if(userId)meta.userId=userId;if(tenantId)meta.tenantId=tenantId;if(companyId)meta.companyId=companyId;return meta}__name(getCorrelationMeta,"getCorrelationMeta");var WinstonLoggerAdapter=class{constructor(context){this.context=context}static{__name(this,"WinstonLoggerAdapter")}log(message,context,...args){const meta=args.length>0&&typeof args[0]==="object"?args[0]:{};instance.info(message,{context:context||this.context,...getCorrelationMeta(),...meta})}error(message,trace,context,...args){const meta=args.length>0&&typeof args[0]==="object"?args[0]:{};instance.error(message,{context:context||this.context,stack:trace,...getCorrelationMeta(),...meta})}warn(message,context,...args){const meta=args.length>0&&typeof args[0]==="object"?args[0]:{};instance.warn(message,{context:context||this.context,...getCorrelationMeta(),...meta})}debug(message,context,...args){const meta=args.length>0&&typeof args[0]==="object"?args[0]:{};instance.debug(message,{context:context||this.context,...getCorrelationMeta(),...meta})}verbose(message,context,...args){const meta=args.length>0&&typeof args[0]==="object"?args[0]:{};instance.verbose(message,{context:context||this.context,...getCorrelationMeta(),...meta})}};var NestLoggerAdapter=class{constructor(logger){this.logger=logger}static{__name(this,"NestLoggerAdapter")}log(message,context,...args){const logMessage=args.length>0?`${message} ${JSON.stringify(args)}`:message;this.logger.log(logMessage,context)}error(message,trace,context,...args){const logMessage=args.length>0?`${message} ${JSON.stringify(args)}`:message;this.logger.error(logMessage,trace,context)}warn(message,context,...args){const logMessage=args.length>0?`${message} ${JSON.stringify(args)}`:message;this.logger.warn(logMessage,context)}debug(message,context,...args){const logMessage=args.length>0?`${message} ${JSON.stringify(args)}`:message;this.logger.debug(logMessage,context)}verbose(message,context,...args){const logMessage=args.length>0?`${message} ${JSON.stringify(args)}`:message;this.logger.verbose(logMessage,context)}};0&&(module.exports={ApiService,HybridCache,NestLoggerAdapter,RequestScopedApiService,WinstonLoggerAdapter,createApiController,instance});
|
|
27
|
+
/*! Bundled license information:
|
|
28
|
+
|
|
29
|
+
safe-buffer/index.js:
|
|
30
|
+
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
31
|
+
|
|
32
|
+
moment/moment.js:
|
|
33
|
+
(*! moment.js *)
|
|
34
|
+
(*! version : 2.30.1 *)
|
|
35
|
+
(*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *)
|
|
36
|
+
(*! license : MIT *)
|
|
37
|
+
(*! momentjs.com *)
|
|
38
|
+
|
|
39
|
+
file-stream-rotator/FileStreamRotator.js:
|
|
40
|
+
(*!
|
|
41
|
+
* FileStreamRotator
|
|
42
|
+
* Copyright(c) 2012-2017 Holiday Extras.
|
|
43
|
+
* Copyright(c) 2017 Roger C.
|
|
44
|
+
* MIT Licensed
|
|
45
|
+
*)
|
|
46
|
+
*/
|