stabilize-orm 1.0.5
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/.eslintrc.json +10 -0
- package/.github/workflows/ci-cd.yml +73 -0
- package/README.md +9 -0
- package/bun.lock +605 -0
- package/cli/stabilize-cli.ts +401 -0
- package/dist/cli/stabilize-cli.js +251 -0
- package/dist/index.js +181 -0
- package/examples/config/dataase.ts +8 -0
- package/examples/migrations/20251013_seed_history.ts +0 -0
- package/examples/models/Role.ts +11 -0
- package/examples/models/User.ts +22 -0
- package/examples/seeds/20251013_additional_seed.ts +29 -0
- package/examples/seeds/20251013_initial_seed.ts +33 -0
- package/package.json +59 -0
- package/src/LICENSE +21 -0
- package/src/cache.ts +110 -0
- package/src/client.ts +258 -0
- package/src/decorators.ts +99 -0
- package/src/index.ts +143 -0
- package/src/logger.ts +126 -0
- package/src/migrations.ts +81 -0
- package/src/query-builder.ts +96 -0
- package/src/repository.ts +565 -0
- package/src/types.ts +76 -0
- package/tests/migrations.test.ts +141 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var E8=Object.create;var{getPrototypeOf:D8,defineProperty:f4,getOwnPropertyNames:C8}=Object;var P8=Object.prototype.hasOwnProperty;var e$=($,X,Q)=>{Q=$!=null?E8(D8($)):{};let J=X||!$||!$.__esModule?f4(Q,"default",{value:$,enumerable:!0}):Q;for(let Z of C8($))if(!P8.call(J,Z))f4(J,Z,{get:()=>$[Z],enumerable:!0});return J};var I=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var f=import.meta.require;var A0=I((N8)=>{class $3 extends Error{constructor($,X,Q){super(Q);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=X,this.exitCode=$,this.nestedError=void 0}}class v4 extends $3{constructor($){super(1,"commander.invalidArgument",$);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}N8.CommanderError=$3;N8.InvalidArgumentError=v4});var V$=I((f8)=>{var{InvalidArgumentError:y8}=A0();class b4{constructor($,X){switch(this.description=X||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,$[0]){case"<":this.required=!0,this._name=$.slice(1,-1);break;case"[":this.required=!1,this._name=$.slice(1,-1);break;default:this.required=!0,this._name=$;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue($,X){if(X===this.defaultValue||!Array.isArray(X))return[$];return X.push($),X}default($,X){return this.defaultValue=$,this.defaultValueDescription=X,this}argParser($){return this.parseArg=$,this}choices($){return this.argChoices=$.slice(),this.parseArg=(X,Q)=>{if(!this.argChoices.includes(X))throw new y8(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(X,Q);return X},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function x8($){let X=$.name()+($.variadic===!0?"...":"");return $.required?"<"+X+">":"["+X+"]"}f8.Argument=b4;f8.humanReadableArgName=x8});var X3=I((g8)=>{var{humanReadableArgName:h8}=V$();class h4{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext($){this.helpWidth=this.helpWidth??$.helpWidth??80}visibleCommands($){let X=$.commands.filter((J)=>!J._hidden),Q=$._getHelpCommand();if(Q&&!Q._hidden)X.push(Q);if(this.sortSubcommands)X.sort((J,Z)=>{return J.name().localeCompare(Z.name())});return X}compareOptions($,X){let Q=(J)=>{return J.short?J.short.replace(/^-/,""):J.long.replace(/^--/,"")};return Q($).localeCompare(Q(X))}visibleOptions($){let X=$.options.filter((J)=>!J.hidden),Q=$._getHelpOption();if(Q&&!Q.hidden){let J=Q.short&&$._findOption(Q.short),Z=Q.long&&$._findOption(Q.long);if(!J&&!Z)X.push(Q);else if(Q.long&&!Z)X.push($.createOption(Q.long,Q.description));else if(Q.short&&!J)X.push($.createOption(Q.short,Q.description))}if(this.sortOptions)X.sort(this.compareOptions);return X}visibleGlobalOptions($){if(!this.showGlobalOptions)return[];let X=[];for(let Q=$.parent;Q;Q=Q.parent){let J=Q.options.filter((Z)=>!Z.hidden);X.push(...J)}if(this.sortOptions)X.sort(this.compareOptions);return X}visibleArguments($){if($._argsDescription)$.registeredArguments.forEach((X)=>{X.description=X.description||$._argsDescription[X.name()]||""});if($.registeredArguments.find((X)=>X.description))return $.registeredArguments;return[]}subcommandTerm($){let X=$.registeredArguments.map((Q)=>h8(Q)).join(" ");return $._name+($._aliases[0]?"|"+$._aliases[0]:"")+($.options.length?" [options]":"")+(X?" "+X:"")}optionTerm($){return $.flags}argumentTerm($){return $.name()}longestSubcommandTermLength($,X){return X.visibleCommands($).reduce((Q,J)=>{return Math.max(Q,this.displayWidth(X.styleSubcommandTerm(X.subcommandTerm(J))))},0)}longestOptionTermLength($,X){return X.visibleOptions($).reduce((Q,J)=>{return Math.max(Q,this.displayWidth(X.styleOptionTerm(X.optionTerm(J))))},0)}longestGlobalOptionTermLength($,X){return X.visibleGlobalOptions($).reduce((Q,J)=>{return Math.max(Q,this.displayWidth(X.styleOptionTerm(X.optionTerm(J))))},0)}longestArgumentTermLength($,X){return X.visibleArguments($).reduce((Q,J)=>{return Math.max(Q,this.displayWidth(X.styleArgumentTerm(X.argumentTerm(J))))},0)}commandUsage($){let X=$._name;if($._aliases[0])X=X+"|"+$._aliases[0];let Q="";for(let J=$.parent;J;J=J.parent)Q=J.name()+" "+Q;return Q+X+" "+$.usage()}commandDescription($){return $.description()}subcommandDescription($){return $.summary()||$.description()}optionDescription($){let X=[];if($.argChoices)X.push(`choices: ${$.argChoices.map((Q)=>JSON.stringify(Q)).join(", ")}`);if($.defaultValue!==void 0){if($.required||$.optional||$.isBoolean()&&typeof $.defaultValue==="boolean")X.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`)}if($.presetArg!==void 0&&$.optional)X.push(`preset: ${JSON.stringify($.presetArg)}`);if($.envVar!==void 0)X.push(`env: ${$.envVar}`);if(X.length>0){let Q=`(${X.join(", ")})`;if($.description)return`${$.description} ${Q}`;return Q}return $.description}argumentDescription($){let X=[];if($.argChoices)X.push(`choices: ${$.argChoices.map((Q)=>JSON.stringify(Q)).join(", ")}`);if($.defaultValue!==void 0)X.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`);if(X.length>0){let Q=`(${X.join(", ")})`;if($.description)return`${$.description} ${Q}`;return Q}return $.description}formatItemList($,X,Q){if(X.length===0)return[];return[Q.styleTitle($),...X,""]}groupItems($,X,Q){let J=new Map;return $.forEach((Z)=>{let Y=Q(Z);if(!J.has(Y))J.set(Y,[])}),X.forEach((Z)=>{let Y=Q(Z);if(!J.has(Y))J.set(Y,[]);J.get(Y).push(Z)}),J}formatHelp($,X){let Q=X.padWidth($,X),J=X.helpWidth??80;function Z(w,W){return X.formatItem(w,Q,W,X)}let Y=[`${X.styleTitle("Usage:")} ${X.styleUsage(X.commandUsage($))}`,""],S=X.commandDescription($);if(S.length>0)Y=Y.concat([X.boxWrap(X.styleCommandDescription(S),J),""]);let q=X.visibleArguments($).map((w)=>{return Z(X.styleArgumentTerm(X.argumentTerm(w)),X.styleArgumentDescription(X.argumentDescription(w)))});if(Y=Y.concat(this.formatItemList("Arguments:",q,X)),this.groupItems($.options,X.visibleOptions($),(w)=>w.helpGroupHeading??"Options:").forEach((w,W)=>{let z=w.map((B)=>{return Z(X.styleOptionTerm(X.optionTerm(B)),X.styleOptionDescription(X.optionDescription(B)))});Y=Y.concat(this.formatItemList(W,z,X))}),X.showGlobalOptions){let w=X.visibleGlobalOptions($).map((W)=>{return Z(X.styleOptionTerm(X.optionTerm(W)),X.styleOptionDescription(X.optionDescription(W)))});Y=Y.concat(this.formatItemList("Global Options:",w,X))}return this.groupItems($.commands,X.visibleCommands($),(w)=>w.helpGroup()||"Commands:").forEach((w,W)=>{let z=w.map((B)=>{return Z(X.styleSubcommandTerm(X.subcommandTerm(B)),X.styleSubcommandDescription(X.subcommandDescription(B)))});Y=Y.concat(this.formatItemList(W,z,X))}),Y.join(`
|
|
4
|
+
`)}displayWidth($){return g4($).length}styleTitle($){return $}styleUsage($){return $.split(" ").map((X)=>{if(X==="[options]")return this.styleOptionText(X);if(X==="[command]")return this.styleSubcommandText(X);if(X[0]==="["||X[0]==="<")return this.styleArgumentText(X);return this.styleCommandText(X)}).join(" ")}styleCommandDescription($){return this.styleDescriptionText($)}styleOptionDescription($){return this.styleDescriptionText($)}styleSubcommandDescription($){return this.styleDescriptionText($)}styleArgumentDescription($){return this.styleDescriptionText($)}styleDescriptionText($){return $}styleOptionTerm($){return this.styleOptionText($)}styleSubcommandTerm($){return $.split(" ").map((X)=>{if(X==="[options]")return this.styleOptionText(X);if(X[0]==="["||X[0]==="<")return this.styleArgumentText(X);return this.styleSubcommandText(X)}).join(" ")}styleArgumentTerm($){return this.styleArgumentText($)}styleOptionText($){return $}styleArgumentText($){return $}styleSubcommandText($){return $}styleCommandText($){return $}padWidth($,X){return Math.max(X.longestOptionTermLength($,X),X.longestGlobalOptionTermLength($,X),X.longestSubcommandTermLength($,X),X.longestArgumentTermLength($,X))}preformatted($){return/\n[^\S\r\n]/.test($)}formatItem($,X,Q,J){let Y=" ".repeat(2);if(!Q)return Y+$;let S=$.padEnd(X+$.length-J.displayWidth($)),q=2,H=(this.helpWidth??80)-X-q-2,w;if(H<this.minWidthToWrap||J.preformatted(Q))w=Q;else w=J.boxWrap(Q,H).replace(/\n/g,`
|
|
5
|
+
`+" ".repeat(X+q));return Y+S+" ".repeat(q)+w.replace(/\n/g,`
|
|
6
|
+
${Y}`)}boxWrap($,X){if(X<this.minWidthToWrap)return $;let Q=$.split(/\r\n|\n/),J=/[\s]*[^\s]+/g,Z=[];return Q.forEach((Y)=>{let S=Y.match(J);if(S===null){Z.push("");return}let q=[S.shift()],V=this.displayWidth(q[0]);S.forEach((H)=>{let w=this.displayWidth(H);if(V+w<=X){q.push(H),V+=w;return}Z.push(q.join(""));let W=H.trimStart();q=[W],V=this.displayWidth(W)}),Z.push(q.join(""))}),Z.join(`
|
|
7
|
+
`)}}function g4($){let X=/\x1b\[\d*(;\d*)*m/g;return $.replace(X,"")}g8.Help=h4;g8.stripColor=g4});var Q3=I((d8)=>{var{InvalidArgumentError:c8}=A0();class m4{constructor($,X){this.flags=$,this.description=X||"",this.required=$.includes("<"),this.optional=$.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test($),this.mandatory=!1;let Q=l8($);if(this.short=Q.shortFlag,this.long=Q.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default($,X){return this.defaultValue=$,this.defaultValueDescription=X,this}preset($){return this.presetArg=$,this}conflicts($){return this.conflictsWith=this.conflictsWith.concat($),this}implies($){let X=$;if(typeof $==="string")X={[$]:!0};return this.implied=Object.assign(this.implied||{},X),this}env($){return this.envVar=$,this}argParser($){return this.parseArg=$,this}makeOptionMandatory($=!0){return this.mandatory=!!$,this}hideHelp($=!0){return this.hidden=!!$,this}_collectValue($,X){if(X===this.defaultValue||!Array.isArray(X))return[$];return X.push($),X}choices($){return this.argChoices=$.slice(),this.parseArg=(X,Q)=>{if(!this.argChoices.includes(X))throw new c8(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(X,Q);return X},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return u4(this.name().replace(/^no-/,""));return u4(this.name())}helpGroup($){return this.helpGroupHeading=$,this}is($){return this.short===$||this.long===$}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class c4{constructor($){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,$.forEach((X)=>{if(X.negate)this.negativeOptions.set(X.attributeName(),X);else this.positiveOptions.set(X.attributeName(),X)}),this.negativeOptions.forEach((X,Q)=>{if(this.positiveOptions.has(Q))this.dualOptions.add(Q)})}valueFromOption($,X){let Q=X.attributeName();if(!this.dualOptions.has(Q))return!0;let J=this.negativeOptions.get(Q).presetArg,Z=J!==void 0?J:!1;return X.negate===(Z===$)}}function u4($){return $.split("-").reduce((X,Q)=>{return X+Q[0].toUpperCase()+Q.slice(1)})}function l8($){let X,Q,J=/^-[^-]$/,Z=/^--[^-]/,Y=$.split(/[ |,]+/).concat("guard");if(J.test(Y[0]))X=Y.shift();if(Z.test(Y[0]))Q=Y.shift();if(!X&&J.test(Y[0]))X=Y.shift();if(!X&&Z.test(Y[0]))X=Q,Q=Y.shift();if(Y[0].startsWith("-")){let S=Y[0],q=`option creation failed due to '${S}' in option flags '${$}'`;if(/^-[^-][^-]/.test(S))throw Error(`${q}
|
|
8
|
+
- a short flag is a single dash and a single character
|
|
9
|
+
- either use a single dash and a single character (for a short flag)
|
|
10
|
+
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(J.test(S))throw Error(`${q}
|
|
11
|
+
- too many short flags`);if(Z.test(S))throw Error(`${q}
|
|
12
|
+
- too many long flags`);throw Error(`${q}
|
|
13
|
+
- unrecognised flag format`)}if(X===void 0&&Q===void 0)throw Error(`option creation failed due to no flags found in '${$}'.`);return{shortFlag:X,longFlag:Q}}d8.Option=m4;d8.DualOptions=c4});var l4=I((s8)=>{function o8($,X){if(Math.abs($.length-X.length)>3)return Math.max($.length,X.length);let Q=[];for(let J=0;J<=$.length;J++)Q[J]=[J];for(let J=0;J<=X.length;J++)Q[0][J]=J;for(let J=1;J<=X.length;J++)for(let Z=1;Z<=$.length;Z++){let Y=1;if($[Z-1]===X[J-1])Y=0;else Y=1;if(Q[Z][J]=Math.min(Q[Z-1][J]+1,Q[Z][J-1]+1,Q[Z-1][J-1]+Y),Z>1&&J>1&&$[Z-1]===X[J-2]&&$[Z-2]===X[J-1])Q[Z][J]=Math.min(Q[Z][J],Q[Z-2][J-2]+1)}return Q[$.length][X.length]}function n8($,X){if(!X||X.length===0)return"";X=Array.from(new Set(X));let Q=$.startsWith("--");if(Q)$=$.slice(2),X=X.map((S)=>S.slice(2));let J=[],Z=3,Y=0.4;if(X.forEach((S)=>{if(S.length<=1)return;let q=o8($,S),V=Math.max($.length,S.length);if((V-q)/V>Y){if(q<Z)Z=q,J=[S];else if(q===Z)J.push(S)}}),J.sort((S,q)=>S.localeCompare(q)),Q)J=J.map((S)=>`--${S}`);if(J.length>1)return`
|
|
14
|
+
(Did you mean one of ${J.join(", ")}?)`;if(J.length===1)return`
|
|
15
|
+
(Did you mean ${J[0]}?)`;return""}s8.suggestSimilar=n8});var o4=I((JQ)=>{var t8=f("events").EventEmitter,J3=f("child_process"),P1=f("path"),w$=f("fs"),x=f("process"),{Argument:r8,humanReadableArgName:e8}=V$(),{CommanderError:Z3}=A0(),{Help:$Q,stripColor:XQ}=X3(),{Option:d4,DualOptions:QQ}=Q3(),{suggestSimilar:p4}=l4();class S3 extends t8{constructor($){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=$||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(X)=>x.stdout.write(X),writeErr:(X)=>x.stderr.write(X),outputError:(X,Q)=>Q(X),getOutHelpWidth:()=>x.stdout.isTTY?x.stdout.columns:void 0,getErrHelpWidth:()=>x.stderr.isTTY?x.stderr.columns:void 0,getOutHasColors:()=>Y3()??(x.stdout.isTTY&&x.stdout.hasColors?.()),getErrHasColors:()=>Y3()??(x.stderr.isTTY&&x.stderr.hasColors?.()),stripColor:(X)=>XQ(X)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings($){return this._outputConfiguration=$._outputConfiguration,this._helpOption=$._helpOption,this._helpCommand=$._helpCommand,this._helpConfiguration=$._helpConfiguration,this._exitCallback=$._exitCallback,this._storeOptionsAsProperties=$._storeOptionsAsProperties,this._combineFlagAndOptionalValue=$._combineFlagAndOptionalValue,this._allowExcessArguments=$._allowExcessArguments,this._enablePositionalOptions=$._enablePositionalOptions,this._showHelpAfterError=$._showHelpAfterError,this._showSuggestionAfterError=$._showSuggestionAfterError,this}_getCommandAndAncestors(){let $=[];for(let X=this;X;X=X.parent)$.push(X);return $}command($,X,Q){let J=X,Z=Q;if(typeof J==="object"&&J!==null)Z=J,J=null;Z=Z||{};let[,Y,S]=$.match(/([^ ]+) *(.*)/),q=this.createCommand(Y);if(J)q.description(J),q._executableHandler=!0;if(Z.isDefault)this._defaultCommandName=q._name;if(q._hidden=!!(Z.noHelp||Z.hidden),q._executableFile=Z.executableFile||null,S)q.arguments(S);if(this._registerCommand(q),q.parent=this,q.copyInheritedSettings(this),J)return this;return q}createCommand($){return new S3($)}createHelp(){return Object.assign(new $Q,this.configureHelp())}configureHelp($){if($===void 0)return this._helpConfiguration;return this._helpConfiguration=$,this}configureOutput($){if($===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...$},this}showHelpAfterError($=!0){if(typeof $!=="string")$=!!$;return this._showHelpAfterError=$,this}showSuggestionAfterError($=!0){return this._showSuggestionAfterError=!!$,this}addCommand($,X){if(!$._name)throw Error(`Command passed to .addCommand() must have a name
|
|
16
|
+
- specify the name in Command constructor or using .name()`);if(X=X||{},X.isDefault)this._defaultCommandName=$._name;if(X.noHelp||X.hidden)$._hidden=!0;return this._registerCommand($),$.parent=this,$._checkForBrokenPassThrough(),this}createArgument($,X){return new r8($,X)}argument($,X,Q,J){let Z=this.createArgument($,X);if(typeof Q==="function")Z.default(J).argParser(Q);else Z.default(Q);return this.addArgument(Z),this}arguments($){return $.trim().split(/ +/).forEach((X)=>{this.argument(X)}),this}addArgument($){let X=this.registeredArguments.slice(-1)[0];if(X?.variadic)throw Error(`only the last argument can be variadic '${X.name()}'`);if($.required&&$.defaultValue!==void 0&&$.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${$.name()}'`);return this.registeredArguments.push($),this}helpCommand($,X){if(typeof $==="boolean"){if(this._addImplicitHelpCommand=$,$&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let Q=$??"help [command]",[,J,Z]=Q.match(/([^ ]+) *(.*)/),Y=X??"display help for command",S=this.createCommand(J);if(S.helpOption(!1),Z)S.arguments(Z);if(Y)S.description(Y);if(this._addImplicitHelpCommand=!0,this._helpCommand=S,$||X)this._initCommandGroup(S);return this}addHelpCommand($,X){if(typeof $!=="object")return this.helpCommand($,X),this;return this._addImplicitHelpCommand=!0,this._helpCommand=$,this._initCommandGroup($),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook($,X){let Q=["preSubcommand","preAction","postAction"];if(!Q.includes($))throw Error(`Unexpected value for event passed to hook : '${$}'.
|
|
17
|
+
Expecting one of '${Q.join("', '")}'`);if(this._lifeCycleHooks[$])this._lifeCycleHooks[$].push(X);else this._lifeCycleHooks[$]=[X];return this}exitOverride($){if($)this._exitCallback=$;else this._exitCallback=(X)=>{if(X.code!=="commander.executeSubCommandAsync")throw X};return this}_exit($,X,Q){if(this._exitCallback)this._exitCallback(new Z3($,X,Q));x.exit($)}action($){let X=(Q)=>{let J=this.registeredArguments.length,Z=Q.slice(0,J);if(this._storeOptionsAsProperties)Z[J]=this;else Z[J]=this.opts();return Z.push(this),$.apply(this,Z)};return this._actionHandler=X,this}createOption($,X){return new d4($,X)}_callParseArg($,X,Q,J){try{return $.parseArg(X,Q)}catch(Z){if(Z.code==="commander.invalidArgument"){let Y=`${J} ${Z.message}`;this.error(Y,{exitCode:Z.exitCode,code:Z.code})}throw Z}}_registerOption($){let X=$.short&&this._findOption($.short)||$.long&&this._findOption($.long);if(X){let Q=$.long&&this._findOption($.long)?$.long:$.short;throw Error(`Cannot add option '${$.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${Q}'
|
|
18
|
+
- already used by option '${X.flags}'`)}this._initOptionGroup($),this.options.push($)}_registerCommand($){let X=(J)=>{return[J.name()].concat(J.aliases())},Q=X($).find((J)=>this._findCommand(J));if(Q){let J=X(this._findCommand(Q)).join("|"),Z=X($).join("|");throw Error(`cannot add command '${Z}' as already have command '${J}'`)}this._initCommandGroup($),this.commands.push($)}addOption($){this._registerOption($);let X=$.name(),Q=$.attributeName();if($.negate){let Z=$.long.replace(/^--no-/,"--");if(!this._findOption(Z))this.setOptionValueWithSource(Q,$.defaultValue===void 0?!0:$.defaultValue,"default")}else if($.defaultValue!==void 0)this.setOptionValueWithSource(Q,$.defaultValue,"default");let J=(Z,Y,S)=>{if(Z==null&&$.presetArg!==void 0)Z=$.presetArg;let q=this.getOptionValue(Q);if(Z!==null&&$.parseArg)Z=this._callParseArg($,Z,q,Y);else if(Z!==null&&$.variadic)Z=$._collectValue(Z,q);if(Z==null)if($.negate)Z=!1;else if($.isBoolean()||$.optional)Z=!0;else Z="";this.setOptionValueWithSource(Q,Z,S)};if(this.on("option:"+X,(Z)=>{let Y=`error: option '${$.flags}' argument '${Z}' is invalid.`;J(Z,Y,"cli")}),$.envVar)this.on("optionEnv:"+X,(Z)=>{let Y=`error: option '${$.flags}' value '${Z}' from env '${$.envVar}' is invalid.`;J(Z,Y,"env")});return this}_optionEx($,X,Q,J,Z){if(typeof X==="object"&&X instanceof d4)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let Y=this.createOption(X,Q);if(Y.makeOptionMandatory(!!$.mandatory),typeof J==="function")Y.default(Z).argParser(J);else if(J instanceof RegExp){let S=J;J=(q,V)=>{let H=S.exec(q);return H?H[0]:V},Y.default(Z).argParser(J)}else Y.default(J);return this.addOption(Y)}option($,X,Q,J){return this._optionEx({},$,X,Q,J)}requiredOption($,X,Q,J){return this._optionEx({mandatory:!0},$,X,Q,J)}combineFlagAndOptionalValue($=!0){return this._combineFlagAndOptionalValue=!!$,this}allowUnknownOption($=!0){return this._allowUnknownOption=!!$,this}allowExcessArguments($=!0){return this._allowExcessArguments=!!$,this}enablePositionalOptions($=!0){return this._enablePositionalOptions=!!$,this}passThroughOptions($=!0){return this._passThroughOptions=!!$,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties($=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!$,this}getOptionValue($){if(this._storeOptionsAsProperties)return this[$];return this._optionValues[$]}setOptionValue($,X){return this.setOptionValueWithSource($,X,void 0)}setOptionValueWithSource($,X,Q){if(this._storeOptionsAsProperties)this[$]=X;else this._optionValues[$]=X;return this._optionValueSources[$]=Q,this}getOptionValueSource($){return this._optionValueSources[$]}getOptionValueSourceWithGlobals($){let X;return this._getCommandAndAncestors().forEach((Q)=>{if(Q.getOptionValueSource($)!==void 0)X=Q.getOptionValueSource($)}),X}_prepareUserArgs($,X){if($!==void 0&&!Array.isArray($))throw Error("first parameter to parse must be array or undefined");if(X=X||{},$===void 0&&X.from===void 0){if(x.versions?.electron)X.from="electron";let J=x.execArgv??[];if(J.includes("-e")||J.includes("--eval")||J.includes("-p")||J.includes("--print"))X.from="eval"}if($===void 0)$=x.argv;this.rawArgs=$.slice();let Q;switch(X.from){case void 0:case"node":this._scriptPath=$[1],Q=$.slice(2);break;case"electron":if(x.defaultApp)this._scriptPath=$[1],Q=$.slice(2);else Q=$.slice(1);break;case"user":Q=$.slice(0);break;case"eval":Q=$.slice(1);break;default:throw Error(`unexpected parse option { from: '${X.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",Q}parse($,X){this._prepareForParse();let Q=this._prepareUserArgs($,X);return this._parseCommand([],Q),this}async parseAsync($,X){this._prepareForParse();let Q=this._prepareUserArgs($,X);return await this._parseCommand([],Q),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
19
|
+
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable($,X,Q){if(w$.existsSync($))return;let J=X?`searched for local subcommand relative to directory '${X}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",Z=`'${$}' does not exist
|
|
20
|
+
- if '${Q}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
21
|
+
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
22
|
+
- ${J}`;throw Error(Z)}_executeSubCommand($,X){X=X.slice();let Q=!1,J=[".js",".ts",".tsx",".mjs",".cjs"];function Z(H,w){let W=P1.resolve(H,w);if(w$.existsSync(W))return W;if(J.includes(P1.extname(w)))return;let z=J.find((B)=>w$.existsSync(`${W}${B}`));if(z)return`${W}${z}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let Y=$._executableFile||`${this._name}-${$._name}`,S=this._executableDir||"";if(this._scriptPath){let H;try{H=w$.realpathSync(this._scriptPath)}catch{H=this._scriptPath}S=P1.resolve(P1.dirname(H),S)}if(S){let H=Z(S,Y);if(!H&&!$._executableFile&&this._scriptPath){let w=P1.basename(this._scriptPath,P1.extname(this._scriptPath));if(w!==this._name)H=Z(S,`${w}-${$._name}`)}Y=H||Y}Q=J.includes(P1.extname(Y));let q;if(x.platform!=="win32")if(Q)X.unshift(Y),X=i4(x.execArgv).concat(X),q=J3.spawn(x.argv[0],X,{stdio:"inherit"});else q=J3.spawn(Y,X,{stdio:"inherit"});else this._checkForMissingExecutable(Y,S,$._name),X.unshift(Y),X=i4(x.execArgv).concat(X),q=J3.spawn(x.execPath,X,{stdio:"inherit"});if(!q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((w)=>{x.on(w,()=>{if(q.killed===!1&&q.exitCode===null)q.kill(w)})});let V=this._exitCallback;q.on("close",(H)=>{if(H=H??1,!V)x.exit(H);else V(new Z3(H,"commander.executeSubCommandAsync","(close)"))}),q.on("error",(H)=>{if(H.code==="ENOENT")this._checkForMissingExecutable(Y,S,$._name);else if(H.code==="EACCES")throw Error(`'${Y}' not executable`);if(!V)x.exit(1);else{let w=new Z3(1,"commander.executeSubCommandAsync","(error)");w.nestedError=H,V(w)}}),this.runningCommand=q}_dispatchSubcommand($,X,Q){let J=this._findCommand($);if(!J)this.help({error:!0});J._prepareForParse();let Z;return Z=this._chainOrCallSubCommandHook(Z,J,"preSubcommand"),Z=this._chainOrCall(Z,()=>{if(J._executableHandler)this._executeSubCommand(J,X.concat(Q));else return J._parseCommand(X,Q)}),Z}_dispatchHelpCommand($){if(!$)this.help();let X=this._findCommand($);if(X&&!X._executableHandler)X.help();return this._dispatchSubcommand($,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach(($,X)=>{if($.required&&this.args[X]==null)this.missingArgument($.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let $=(Q,J,Z)=>{let Y=J;if(J!==null&&Q.parseArg){let S=`error: command-argument value '${J}' is invalid for argument '${Q.name()}'.`;Y=this._callParseArg(Q,J,Z,S)}return Y};this._checkNumberOfArguments();let X=[];this.registeredArguments.forEach((Q,J)=>{let Z=Q.defaultValue;if(Q.variadic){if(J<this.args.length){if(Z=this.args.slice(J),Q.parseArg)Z=Z.reduce((Y,S)=>{return $(Q,S,Y)},Q.defaultValue)}else if(Z===void 0)Z=[]}else if(J<this.args.length){if(Z=this.args[J],Q.parseArg)Z=$(Q,Z,Q.defaultValue)}X[J]=Z}),this.processedArgs=X}_chainOrCall($,X){if($?.then&&typeof $.then==="function")return $.then(()=>X());return X()}_chainOrCallHooks($,X){let Q=$,J=[];if(this._getCommandAndAncestors().reverse().filter((Z)=>Z._lifeCycleHooks[X]!==void 0).forEach((Z)=>{Z._lifeCycleHooks[X].forEach((Y)=>{J.push({hookedCommand:Z,callback:Y})})}),X==="postAction")J.reverse();return J.forEach((Z)=>{Q=this._chainOrCall(Q,()=>{return Z.callback(Z.hookedCommand,this)})}),Q}_chainOrCallSubCommandHook($,X,Q){let J=$;if(this._lifeCycleHooks[Q]!==void 0)this._lifeCycleHooks[Q].forEach((Z)=>{J=this._chainOrCall(J,()=>{return Z(this,X)})});return J}_parseCommand($,X){let Q=this.parseOptions(X);if(this._parseOptionsEnv(),this._parseOptionsImplied(),$=$.concat(Q.operands),X=Q.unknown,this.args=$.concat(X),$&&this._findCommand($[0]))return this._dispatchSubcommand($[0],$.slice(1),X);if(this._getHelpCommand()&&$[0]===this._getHelpCommand().name())return this._dispatchHelpCommand($[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(X),this._dispatchSubcommand(this._defaultCommandName,$,X);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(Q.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let J=()=>{if(Q.unknown.length>0)this.unknownOption(Q.unknown[0])},Z=`command:${this.name()}`;if(this._actionHandler){J(),this._processArguments();let Y;if(Y=this._chainOrCallHooks(Y,"preAction"),Y=this._chainOrCall(Y,()=>this._actionHandler(this.processedArgs)),this.parent)Y=this._chainOrCall(Y,()=>{this.parent.emit(Z,$,X)});return Y=this._chainOrCallHooks(Y,"postAction"),Y}if(this.parent?.listenerCount(Z))J(),this._processArguments(),this.parent.emit(Z,$,X);else if($.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",$,X);if(this.listenerCount("command:*"))this.emit("command:*",$,X);else if(this.commands.length)this.unknownCommand();else J(),this._processArguments()}else if(this.commands.length)J(),this.help({error:!0});else J(),this._processArguments()}_findCommand($){if(!$)return;return this.commands.find((X)=>X._name===$||X._aliases.includes($))}_findOption($){return this.options.find((X)=>X.is($))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(($)=>{$.options.forEach((X)=>{if(X.mandatory&&$.getOptionValue(X.attributeName())===void 0)$.missingMandatoryOptionValue(X)})})}_checkForConflictingLocalOptions(){let $=this.options.filter((Q)=>{let J=Q.attributeName();if(this.getOptionValue(J)===void 0)return!1;return this.getOptionValueSource(J)!=="default"});$.filter((Q)=>Q.conflictsWith.length>0).forEach((Q)=>{let J=$.find((Z)=>Q.conflictsWith.includes(Z.attributeName()));if(J)this._conflictingOption(Q,J)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(($)=>{$._checkForConflictingLocalOptions()})}parseOptions($){let X=[],Q=[],J=X;function Z(H){return H.length>1&&H[0]==="-"}let Y=(H)=>{if(!/^-\d*\.?\d+(e[+-]?\d+)?$/.test(H))return!1;return!this._getCommandAndAncestors().some((w)=>w.options.map((W)=>W.short).some((W)=>/^-\d$/.test(W)))},S=null,q=null,V=0;while(V<$.length||q){let H=q??$[V++];if(q=null,H==="--"){if(J===Q)J.push(H);J.push(...$.slice(V));break}if(S&&(!Z(H)||Y(H))){this.emit(`option:${S.name()}`,H);continue}if(S=null,Z(H)){let w=this._findOption(H);if(w){if(w.required){let W=$[V++];if(W===void 0)this.optionMissingArgument(w);this.emit(`option:${w.name()}`,W)}else if(w.optional){let W=null;if(V<$.length&&(!Z($[V])||Y($[V])))W=$[V++];this.emit(`option:${w.name()}`,W)}else this.emit(`option:${w.name()}`);S=w.variadic?w:null;continue}}if(H.length>2&&H[0]==="-"&&H[1]!=="-"){let w=this._findOption(`-${H[1]}`);if(w){if(w.required||w.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${w.name()}`,H.slice(2));else this.emit(`option:${w.name()}`),q=`-${H.slice(2)}`;continue}}if(/^--[^=]+=/.test(H)){let w=H.indexOf("="),W=this._findOption(H.slice(0,w));if(W&&(W.required||W.optional)){this.emit(`option:${W.name()}`,H.slice(w+1));continue}}if(J===X&&Z(H)&&!(this.commands.length===0&&Y(H)))J=Q;if((this._enablePositionalOptions||this._passThroughOptions)&&X.length===0&&Q.length===0){if(this._findCommand(H)){X.push(H),Q.push(...$.slice(V));break}else if(this._getHelpCommand()&&H===this._getHelpCommand().name()){X.push(H,...$.slice(V));break}else if(this._defaultCommandName){Q.push(H,...$.slice(V));break}}if(this._passThroughOptions){J.push(H,...$.slice(V));break}J.push(H)}return{operands:X,unknown:Q}}opts(){if(this._storeOptionsAsProperties){let $={},X=this.options.length;for(let Q=0;Q<X;Q++){let J=this.options[Q].attributeName();$[J]=J===this._versionOptionName?this._version:this[J]}return $}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce(($,X)=>Object.assign($,X.opts()),{})}error($,X){if(this._outputConfiguration.outputError(`${$}
|
|
23
|
+
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
24
|
+
`);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
|
|
25
|
+
`),this.outputHelp({error:!0});let Q=X||{},J=Q.exitCode||1,Z=Q.code||"commander.error";this._exit(J,Z,$)}_parseOptionsEnv(){this.options.forEach(($)=>{if($.envVar&&$.envVar in x.env){let X=$.attributeName();if(this.getOptionValue(X)===void 0||["default","config","env"].includes(this.getOptionValueSource(X)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,x.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new QQ(this.options),X=(Q)=>{return this.getOptionValue(Q)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(Q))};this.options.filter((Q)=>Q.implied!==void 0&&X(Q.attributeName())&&$.valueFromOption(this.getOptionValue(Q.attributeName()),Q)).forEach((Q)=>{Object.keys(Q.implied).filter((J)=>!X(J)).forEach((J)=>{this.setOptionValueWithSource(J,Q.implied[J],"implied")})})}missingArgument($){let X=`error: missing required argument '${$}'`;this.error(X,{code:"commander.missingArgument"})}optionMissingArgument($){let X=`error: option '${$.flags}' argument missing`;this.error(X,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue($){let X=`error: required option '${$.flags}' not specified`;this.error(X,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption($,X){let Q=(Y)=>{let S=Y.attributeName(),q=this.getOptionValue(S),V=this.options.find((w)=>w.negate&&S===w.attributeName()),H=this.options.find((w)=>!w.negate&&S===w.attributeName());if(V&&(V.presetArg===void 0&&q===!1||V.presetArg!==void 0&&q===V.presetArg))return V;return H||Y},J=(Y)=>{let S=Q(Y),q=S.attributeName();if(this.getOptionValueSource(q)==="env")return`environment variable '${S.envVar}'`;return`option '${S.flags}'`},Z=`error: ${J($)} cannot be used with ${J(X)}`;this.error(Z,{code:"commander.conflictingOption"})}unknownOption($){if(this._allowUnknownOption)return;let X="";if($.startsWith("--")&&this._showSuggestionAfterError){let J=[],Z=this;do{let Y=Z.createHelp().visibleOptions(Z).filter((S)=>S.long).map((S)=>S.long);J=J.concat(Y),Z=Z.parent}while(Z&&!Z._enablePositionalOptions);X=p4($,J)}let Q=`error: unknown option '${$}'${X}`;this.error(Q,{code:"commander.unknownOption"})}_excessArguments($){if(this._allowExcessArguments)return;let X=this.registeredArguments.length,Q=X===1?"":"s",Z=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${X} argument${Q} but got ${$.length}.`;this.error(Z,{code:"commander.excessArguments"})}unknownCommand(){let $=this.args[0],X="";if(this._showSuggestionAfterError){let J=[];this.createHelp().visibleCommands(this).forEach((Z)=>{if(J.push(Z.name()),Z.alias())J.push(Z.alias())}),X=p4($,J)}let Q=`error: unknown command '${$}'${X}`;this.error(Q,{code:"commander.unknownCommand"})}version($,X,Q){if($===void 0)return this._version;this._version=$,X=X||"-V, --version",Q=Q||"output the version number";let J=this.createOption(X,Q);return this._versionOptionName=J.attributeName(),this._registerOption(J),this.on("option:"+J.name(),()=>{this._outputConfiguration.writeOut(`${$}
|
|
26
|
+
`),this._exit(0,"commander.version",$)}),this}description($,X){if($===void 0&&X===void 0)return this._description;if(this._description=$,X)this._argsDescription=X;return this}summary($){if($===void 0)return this._summary;return this._summary=$,this}alias($){if($===void 0)return this._aliases[0];let X=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)X=this.commands[this.commands.length-1];if($===X._name)throw Error("Command alias can't be the same as its name");let Q=this.parent?._findCommand($);if(Q){let J=[Q.name()].concat(Q.aliases()).join("|");throw Error(`cannot add alias '${$}' to command '${this.name()}' as already have command '${J}'`)}return X._aliases.push($),this}aliases($){if($===void 0)return this._aliases;return $.forEach((X)=>this.alias(X)),this}usage($){if($===void 0){if(this._usage)return this._usage;let X=this.registeredArguments.map((Q)=>{return e8(Q)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?X:[]).join(" ")}return this._usage=$,this}name($){if($===void 0)return this._name;return this._name=$,this}helpGroup($){if($===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=$,this}commandsGroup($){if($===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=$,this}optionsGroup($){if($===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=$,this}_initOptionGroup($){if(this._defaultOptionGroup&&!$.helpGroupHeading)$.helpGroup(this._defaultOptionGroup)}_initCommandGroup($){if(this._defaultCommandGroup&&!$.helpGroup())$.helpGroup(this._defaultCommandGroup)}nameFromFilename($){return this._name=P1.basename($,P1.extname($)),this}executableDir($){if($===void 0)return this._executableDir;return this._executableDir=$,this}helpInformation($){let X=this.createHelp(),Q=this._getOutputContext($);X.prepareContext({error:Q.error,helpWidth:Q.helpWidth,outputHasColors:Q.hasColors});let J=X.formatHelp(this,X);if(Q.hasColors)return J;return this._outputConfiguration.stripColor(J)}_getOutputContext($){$=$||{};let X=!!$.error,Q,J,Z;if(X)Q=(S)=>this._outputConfiguration.writeErr(S),J=this._outputConfiguration.getErrHasColors(),Z=this._outputConfiguration.getErrHelpWidth();else Q=(S)=>this._outputConfiguration.writeOut(S),J=this._outputConfiguration.getOutHasColors(),Z=this._outputConfiguration.getOutHelpWidth();return{error:X,write:(S)=>{if(!J)S=this._outputConfiguration.stripColor(S);return Q(S)},hasColors:J,helpWidth:Z}}outputHelp($){let X;if(typeof $==="function")X=$,$=void 0;let Q=this._getOutputContext($),J={error:Q.error,write:Q.write,command:this};this._getCommandAndAncestors().reverse().forEach((Y)=>Y.emit("beforeAllHelp",J)),this.emit("beforeHelp",J);let Z=this.helpInformation({error:Q.error});if(X){if(Z=X(Z),typeof Z!=="string"&&!Buffer.isBuffer(Z))throw Error("outputHelp callback must return a string or a Buffer")}if(Q.write(Z),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",J),this._getCommandAndAncestors().forEach((Y)=>Y.emit("afterAllHelp",J))}helpOption($,X){if(typeof $==="boolean"){if($){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption($??"-h, --help",X??"display help for command"),$||X)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption($){return this._helpOption=$,this._initOptionGroup($),this}help($){this.outputHelp($);let X=Number(x.exitCode??0);if(X===0&&$&&typeof $!=="function"&&$.error)X=1;this._exit(X,"commander.help","(outputHelp)")}addHelpText($,X){let Q=["beforeAll","before","after","afterAll"];if(!Q.includes($))throw Error(`Unexpected value for position to addHelpText.
|
|
27
|
+
Expecting one of '${Q.join("', '")}'`);let J=`${$}Help`;return this.on(J,(Z)=>{let Y;if(typeof X==="function")Y=X({error:Z.error,command:Z.command});else Y=X;if(Y)Z.write(`${Y}
|
|
28
|
+
`)}),this}_outputHelpIfRequested($){let X=this._getHelpOption();if(X&&$.find((J)=>X.is(J)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function i4($){return $.map((X)=>{if(!X.startsWith("--inspect"))return X;let Q,J="127.0.0.1",Z="9229",Y;if((Y=X.match(/^(--inspect(-brk)?)$/))!==null)Q=Y[1];else if((Y=X.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(Q=Y[1],/^\d+$/.test(Y[3]))Z=Y[3];else J=Y[3];else if((Y=X.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)Q=Y[1],J=Y[3],Z=Y[4];if(Q&&Z!=="0")return`${Q}=${J}:${parseInt(Z)+1}`;return X})}function Y3(){if(x.env.NO_COLOR||x.env.FORCE_COLOR==="0"||x.env.FORCE_COLOR==="false")return!1;if(x.env.FORCE_COLOR||x.env.CLICOLOR_FORCE!==void 0)return!0;return}JQ.Command=S3;JQ.useColor=Y3});var t4=I((VQ)=>{var{Argument:n4}=V$(),{Command:q3}=o4(),{CommanderError:SQ,InvalidArgumentError:s4}=A0(),{Help:qQ}=X3(),{Option:a4}=Q3();VQ.program=new q3;VQ.createCommand=($)=>new q3($);VQ.createOption=($,X)=>new a4($,X);VQ.createArgument=($,X)=>new n4($,X);VQ.Command=q3;VQ.Option=a4;VQ.Argument=n4;VQ.Help=qQ;VQ.CommanderError=SQ;VQ.InvalidArgumentError=s4;VQ.InvalidOptionArgumentError=s4});var e4=I((OV,KQ)=>{KQ.exports={acl:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},append:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},asking:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},auth:{arity:-2,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},bgrewriteaof:{arity:1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bgsave:{arity:-1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bitcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},bitfield:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},bitfield_ro:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},bitop:{arity:-4,flags:["write","denyoom"],keyStart:2,keyStop:-1,step:1},bitpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},blmove:{arity:6,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},blmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},blpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpoplpush:{arity:4,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},bzmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},bzpopmax:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},bzpopmin:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},client:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},cluster:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},command:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},config:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},copy:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},dbsize:{arity:1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},debug:{arity:-2,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},decr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},decrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},del:{arity:-2,flags:["write"],keyStart:1,keyStop:-1,step:1},discard:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},dump:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},echo:{arity:2,flags:["fast"],keyStart:0,keyStop:0,step:0},eval:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},eval_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},exec:{arity:1,flags:["noscript","loading","stale","skip_slowlog"],keyStart:0,keyStop:0,step:0},exists:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},expire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},failover:{arity:-1,flags:["admin","noscript","stale"],keyStart:0,keyStop:0,step:0},fcall:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},fcall_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},flushall:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},flushdb:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},function:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},geoadd:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},geodist:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},geohash:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},geopos:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadius:{arity:-6,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadius_ro:{arity:-6,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadiusbymember:{arity:-5,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember_ro:{arity:-5,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearch:{arity:-7,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearchstore:{arity:-8,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},get:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getbit:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getdel:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getex:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},getset:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hello:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},hexists:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hget:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hgetall:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hincrbyfloat:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hkeys:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmget:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hrandfield:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},hset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetnx:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hstrlen:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hvals:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},incr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrbyfloat:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},info:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},keys:{arity:2,flags:["readonly"],keyStart:0,keyStop:0,step:0},lastsave:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},latency:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},lcs:{arity:-3,flags:["readonly"],keyStart:1,keyStop:2,step:1},lindex:{arity:3,flags:["readonly"],keyStart:1,keyStop:1,step:1},linsert:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},llen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},lmove:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},lmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},lolwut:{arity:-1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},lpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},lpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},lpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},lrem:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},lset:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},ltrim:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},memory:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},mget:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},migrate:{arity:-6,flags:["write","movablekeys"],keyStart:3,keyStop:3,step:1},module:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},monitor:{arity:1,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},move:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},mset:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},msetnx:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},multi:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},object:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},persist:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},pfadd:{arity:-2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},pfcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},pfdebug:{arity:3,flags:["write","denyoom","admin"],keyStart:2,keyStop:2,step:1},pfmerge:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},pfselftest:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},ping:{arity:-1,flags:["fast"],keyStart:0,keyStop:0,step:0},psetex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},psubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},psync:{arity:-3,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},pttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},publish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:0,keyStop:0,step:0},pubsub:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},punsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},quit:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},randomkey:{arity:1,flags:["readonly"],keyStart:0,keyStop:0,step:0},readonly:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},readwrite:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},rename:{arity:3,flags:["write"],keyStart:1,keyStop:2,step:1},renamenx:{arity:3,flags:["write","fast"],keyStart:1,keyStop:2,step:1},replconf:{arity:-1,flags:["admin","noscript","loading","stale","allow_busy"],keyStart:0,keyStop:0,step:0},replicaof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},reset:{arity:1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},restore:{arity:-4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},"restore-asking":{arity:-4,flags:["write","denyoom","asking"],keyStart:1,keyStop:1,step:1},role:{arity:1,flags:["noscript","loading","stale","fast"],keyStart:0,keyStop:0,step:0},rpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},rpoplpush:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},rpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},rpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},sadd:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},save:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},scan:{arity:-2,flags:["readonly"],keyStart:0,keyStop:0,step:0},scard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},script:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},sdiff:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sdiffstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},select:{arity:2,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},set:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setbit:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setnx:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},setrange:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},shutdown:{arity:-1,flags:["admin","noscript","loading","stale","no_multi","allow_busy"],keyStart:0,keyStop:0,step:0},sinter:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},sinterstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sismember:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},slaveof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},slowlog:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},smembers:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},smismember:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},smove:{arity:4,flags:["write","fast"],keyStart:1,keyStop:2,step:1},sort:{arity:-2,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},sort_ro:{arity:-2,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},spop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},spublish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:1,keyStop:1,step:1},srandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},srem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},sscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},ssubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},strlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},subscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},substr:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},sunion:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sunionstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sunsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},swapdb:{arity:3,flags:["write","fast"],keyStart:0,keyStop:0,step:0},sync:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},time:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},touch:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},ttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},type:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},unlink:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:-1,step:1},unsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},unwatch:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},wait:{arity:3,flags:["noscript"],keyStart:0,keyStop:0,step:0},watch:{arity:-2,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:1,keyStop:-1,step:1},xack:{arity:-4,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xadd:{arity:-5,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xautoclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdelex:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xgroup:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xinfo:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},xpending:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},xrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xread:{arity:-4,flags:["readonly","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xreadgroup:{arity:-7,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xsetid:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xtrim:{arity:-4,flags:["write"],keyStart:1,keyStop:1,step:1},zadd:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zcard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zdiff:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zdiffstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zinter:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zinterstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zlexcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},zmscore:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zpopmax:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zpopmin:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zrandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangestore:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},zrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zremrangebylex:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyrank:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyscore:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},zscore:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zunion:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zunionstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1}}});var w0=I((V1)=>{var MQ=V1&&V1.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(V1,"__esModule",{value:!0});V1.getKeyIndexes=V1.hasFlag=V1.exists=V1.list=void 0;var H$=MQ(e4());V1.list=Object.keys(H$.default);var V3={};V1.list.forEach(($)=>{V3[$]=H$.default[$].flags.reduce(function(X,Q){return X[Q]=!0,X},{})});function _Q($){return Boolean(H$.default[$])}V1.exists=_Q;function TQ($,X){if(!V3[$])throw Error("Unknown command "+$);return Boolean(V3[$][X])}V1.hasFlag=TQ;function IQ($,X,Q){let J=H$.default[$];if(!J)throw Error("Unknown command "+$);if(!Array.isArray(X))throw Error("Expect args to be an array");let Z=[],Y=Boolean(Q&&Q.parseExternalKey),S=(V,H)=>{let w=[],W=Number(V[H]);for(let z=0;z<W;z++)w.push(z+H+1);return w},q=(V,H,w)=>{for(let W=H;W<V.length-1;W+=1)if(String(V[W]).toLowerCase()===w.toLowerCase())return W+1;return null};switch($){case"zunionstore":case"zinterstore":case"zdiffstore":Z.push(0,...S(X,1));break;case"eval":case"evalsha":case"eval_ro":case"evalsha_ro":case"fcall":case"fcall_ro":case"blmpop":case"bzmpop":Z.push(...S(X,1));break;case"sintercard":case"lmpop":case"zunion":case"zinter":case"zmpop":case"zintercard":case"zdiff":{Z.push(...S(X,0));break}case"georadius":{Z.push(0);let V=q(X,5,"STORE");if(V)Z.push(V);let H=q(X,5,"STOREDIST");if(H)Z.push(H);break}case"georadiusbymember":{Z.push(0);let V=q(X,4,"STORE");if(V)Z.push(V);let H=q(X,4,"STOREDIST");if(H)Z.push(H);break}case"sort":case"sort_ro":Z.push(0);for(let V=1;V<X.length-1;V++){let H=X[V];if(typeof H!=="string")continue;let w=H.toUpperCase();if(w==="GET"){if(V+=1,H=X[V],H!=="#")if(Y)Z.push([V,$5(H)]);else Z.push(V)}else if(w==="BY")if(V+=1,Y)Z.push([V,$5(X[V])]);else Z.push(V);else if(w==="STORE")V+=1,Z.push(V)}break;case"migrate":if(X[2]==="")for(let V=5;V<X.length-1;V++){let H=X[V];if(typeof H==="string"&&H.toUpperCase()==="KEYS"){for(let w=V+1;w<X.length;w++)Z.push(w);break}}else Z.push(2);break;case"xreadgroup":case"xread":for(let V=$==="xread"?0:3;V<X.length-1;V++)if(String(X[V]).toUpperCase()==="STREAMS"){for(let H=V+1;H<=V+(X.length-1-V)/2;H++)Z.push(H);break}break;default:if(J.step>0){let V=J.keyStart-1,H=J.keyStop>0?J.keyStop:X.length+J.keyStop+1;for(let w=V;w<H;w+=J.step)Z.push(w)}break}return Z}V1.getKeyIndexes=IQ;function $5($){if(typeof $!=="string")$=String($);let X=$.indexOf("->");return X===-1?$.length:X}});var J5=I((X5)=>{Object.defineProperty(X5,"__esModule",{value:!0});X5.tryCatch=X5.errorObj=void 0;X5.errorObj={e:{}};var w3;function AQ($,X){try{let Q=w3;return w3=null,Q.apply(this,arguments)}catch(Q){return X5.errorObj.e=Q,X5.errorObj}}function EQ($){return w3=$,AQ}X5.tryCatch=EQ});var b1=I((Y5)=>{Object.defineProperty(Y5,"__esModule",{value:!0});var H0=J5();function Z5($){setTimeout(function(){throw $},0)}function DQ($,X,Q){if(typeof X==="function")$.then((J)=>{let Z;if(Q!==void 0&&Object(Q).spread&&Array.isArray(J))Z=H0.tryCatch(X).apply(void 0,[null].concat(J));else Z=J===void 0?H0.tryCatch(X)(null):H0.tryCatch(X)(null,J);if(Z===H0.errorObj)Z5(Z.e)},(J)=>{if(!J){let Y=Error(J+"");Object.assign(Y,{cause:J}),J=Y}let Z=H0.tryCatch(X)(J);if(Z===H0.errorObj)Z5(Z.e)});return $}Y5.default=DQ});var V5=I((vV,q5)=>{var S5=f("assert"),E0=f("util");function W0($){Object.defineProperty(this,"message",{value:$||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}E0.inherits(W0,Error);Object.defineProperty(W0.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function W3($,X,Q){S5(X),S5.strictEqual(typeof Q,"number"),Object.defineProperty(this,"message",{value:$||"",configurable:!0,writable:!0});let J=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=J,this.offset=Q,this.buffer=X}E0.inherits(W3,W0);Object.defineProperty(W3.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function z3($){Object.defineProperty(this,"message",{value:$||"",configurable:!0,writable:!0});let X=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=X}E0.inherits(z3,W0);Object.defineProperty(z3.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function W$($){Object.defineProperty(this,"message",{value:$||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}E0.inherits(W$,W0);Object.defineProperty(W$.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function G3($){Object.defineProperty(this,"message",{value:$||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}E0.inherits(G3,W$);Object.defineProperty(G3.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});q5.exports={RedisError:W0,ParserError:W3,ReplyError:z3,AbortError:W$,InterruptError:G3}});var U5=I((bV,G5)=>{var w5=f("assert");class D0 extends Error{get name(){return this.constructor.name}}class H5 extends D0{constructor($,X,Q){w5(X),w5.strictEqual(typeof Q,"number");let J=Error.stackTraceLimit;Error.stackTraceLimit=2;super($);Error.stackTraceLimit=J,this.offset=Q,this.buffer=X}get name(){return this.constructor.name}}class W5 extends D0{constructor($){let X=Error.stackTraceLimit;Error.stackTraceLimit=2;super($);Error.stackTraceLimit=X}get name(){return this.constructor.name}}class U3 extends D0{get name(){return this.constructor.name}}class z5 extends U3{get name(){return this.constructor.name}}G5.exports={RedisError:D0,ParserError:H5,ReplyError:W5,AbortError:U3,InterruptError:z5}});var t1=I((hV,B5)=>{var PQ=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?V5():U5();B5.exports=PQ});var C0=I((gV,B3)=>{var L5=[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],NQ=function(X){var Q,J=0,Z=0,Y=[],S=X.length;for(;J<S;J++)if(Q=X.charCodeAt(J),Q<128)Y[Z++]=Q;else if(Q<2048)Y[Z++]=Q>>6|192,Y[Z++]=Q&63|128;else if((Q&64512)===55296&&J+1<X.length&&(X.charCodeAt(J+1)&64512)===56320)Q=65536+((Q&1023)<<10)+(X.charCodeAt(++J)&1023),Y[Z++]=Q>>18|240,Y[Z++]=Q>>12&63|128,Y[Z++]=Q>>6&63|128,Y[Z++]=Q&63|128;else Y[Z++]=Q>>12|224,Y[Z++]=Q>>6&63|128,Y[Z++]=Q&63|128;return Y},j5=B3.exports=function(X){var Q,J=0,Z=-1,Y=0,S=0,q=typeof X==="string"?NQ(X):X,V=q.length;while(J<V){if(Q=q[J++],Z===-1){if(Q===123)Z=J}else if(Q!==125)S=L5[(Q^S>>8)&255]^S<<8;else if(J-1!==Z)return S&16383;Y=L5[(Q^Y>>8)&255]^Y<<8}return Y&16383};B3.exports.generateMulti=function(X){var Q=1,J=X.length,Z=j5(X[0]);while(Q<J)if(j5(X[Q++])!==Z)return-1;return Z}});var A5=I((uV,I5)=>{var F5=9007199254740991,kQ="[object Arguments]",OQ="[object Function]",yQ="[object GeneratorFunction]",xQ=/^(?:0|[1-9]\d*)$/;function K5($,X,Q){switch(Q.length){case 0:return $.call(X);case 1:return $.call(X,Q[0]);case 2:return $.call(X,Q[0],Q[1]);case 3:return $.call(X,Q[0],Q[1],Q[2])}return $.apply(X,Q)}function fQ($,X){var Q=-1,J=Array($);while(++Q<$)J[Q]=X(Q);return J}var P0=Object.prototype,N0=P0.hasOwnProperty,M5=P0.toString,vQ=P0.propertyIsEnumerable,R5=Math.max;function bQ($,X){var Q=oQ($)||iQ($)?fQ($.length,String):[],J=Q.length,Z=!!J;for(var Y in $)if((X||N0.call($,Y))&&!(Z&&(Y=="length"||T5(Y,J))))Q.push(Y);return Q}function hQ($,X,Q,J){if($===void 0||L3($,P0[Q])&&!N0.call(J,Q))return X;return $}function gQ($,X,Q){var J=$[X];if(!(N0.call($,X)&&L3(J,Q))||Q===void 0&&!(X in $))$[X]=Q}function uQ($){if(!R3($))return pQ($);var X=dQ($),Q=[];for(var J in $)if(!(J=="constructor"&&(X||!N0.call($,J))))Q.push(J);return Q}function _5($,X){return X=R5(X===void 0?$.length-1:X,0),function(){var Q=arguments,J=-1,Z=R5(Q.length-X,0),Y=Array(Z);while(++J<Z)Y[J]=Q[X+J];J=-1;var S=Array(X+1);while(++J<X)S[J]=Q[J];return S[X]=Y,K5($,this,S)}}function mQ($,X,Q,J){Q||(Q={});var Z=-1,Y=X.length;while(++Z<Y){var S=X[Z],q=J?J(Q[S],$[S],S,Q,$):void 0;gQ(Q,S,q===void 0?$[S]:q)}return Q}function cQ($){return _5(function(X,Q){var J=-1,Z=Q.length,Y=Z>1?Q[Z-1]:void 0,S=Z>2?Q[2]:void 0;if(Y=$.length>3&&typeof Y=="function"?(Z--,Y):void 0,S&&lQ(Q[0],Q[1],S))Y=Z<3?void 0:Y,Z=1;X=Object(X);while(++J<Z){var q=Q[J];if(q)$(X,q,J,Y)}return X})}function T5($,X){return X=X==null?F5:X,!!X&&(typeof $=="number"||xQ.test($))&&($>-1&&$%1==0&&$<X)}function lQ($,X,Q){if(!R3(Q))return!1;var J=typeof X;if(J=="number"?j3(Q)&&T5(X,Q.length):J=="string"&&(X in Q))return L3(Q[X],$);return!1}function dQ($){var X=$&&$.constructor,Q=typeof X=="function"&&X.prototype||P0;return $===Q}function pQ($){var X=[];if($!=null)for(var Q in Object($))X.push(Q);return X}function L3($,X){return $===X||$!==$&&X!==X}function iQ($){return nQ($)&&N0.call($,"callee")&&(!vQ.call($,"callee")||M5.call($)==kQ)}var oQ=Array.isArray;function j3($){return $!=null&&aQ($.length)&&!sQ($)}function nQ($){return tQ($)&&j3($)}function sQ($){var X=R3($)?M5.call($):"";return X==OQ||X==yQ}function aQ($){return typeof $=="number"&&$>-1&&$%1==0&&$<=F5}function R3($){var X=typeof $;return!!$&&(X=="object"||X=="function")}function tQ($){return!!$&&typeof $=="object"}var rQ=cQ(function($,X,Q,J){mQ(X,$J(X),$,J)}),eQ=_5(function($){return $.push(void 0,hQ),K5(rQ,void 0,$)});function $J($){return j3($)?bQ($,!0):uQ($)}I5.exports=eQ});var C5=I((mV,D5)=>{var XJ=9007199254740991,QJ="[object Arguments]",JJ="[object Function]",ZJ="[object GeneratorFunction]",F3=Object.prototype,YJ=F3.hasOwnProperty,E5=F3.toString,SJ=F3.propertyIsEnumerable;function qJ($){return wJ($)&&YJ.call($,"callee")&&(!SJ.call($,"callee")||E5.call($)==QJ)}function VJ($){return $!=null&&WJ($.length)&&!HJ($)}function wJ($){return GJ($)&&VJ($)}function HJ($){var X=zJ($)?E5.call($):"";return X==JJ||X==ZJ}function WJ($){return typeof $=="number"&&$>-1&&$%1==0&&$<=XJ}function zJ($){var X=typeof $;return!!$&&(X=="object"||X=="function")}function GJ($){return!!$&&typeof $=="object"}D5.exports=qJ});var z$=I((P5)=>{Object.defineProperty(P5,"__esModule",{value:!0});P5.isArguments=P5.defaults=P5.noop=void 0;var UJ=A5();P5.defaults=UJ;var BJ=C5();P5.isArguments=BJ;function LJ(){}P5.noop=LJ});var O5=I((lV,k5)=>{var z0=1000,G0=z0*60,U0=G0*60,r1=U0*24,FJ=r1*7,KJ=r1*365.25;k5.exports=function($,X){X=X||{};var Q=typeof $;if(Q==="string"&&$.length>0)return MJ($);else if(Q==="number"&&isFinite($))return X.long?TJ($):_J($);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify($))};function MJ($){if($=String($),$.length>100)return;var X=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec($);if(!X)return;var Q=parseFloat(X[1]),J=(X[2]||"ms").toLowerCase();switch(J){case"years":case"year":case"yrs":case"yr":case"y":return Q*KJ;case"weeks":case"week":case"w":return Q*FJ;case"days":case"day":case"d":return Q*r1;case"hours":case"hour":case"hrs":case"hr":case"h":return Q*U0;case"minutes":case"minute":case"mins":case"min":case"m":return Q*G0;case"seconds":case"second":case"secs":case"sec":case"s":return Q*z0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Q;default:return}}function _J($){var X=Math.abs($);if(X>=r1)return Math.round($/r1)+"d";if(X>=U0)return Math.round($/U0)+"h";if(X>=G0)return Math.round($/G0)+"m";if(X>=z0)return Math.round($/z0)+"s";return $+"ms"}function TJ($){var X=Math.abs($);if(X>=r1)return G$($,X,r1,"day");if(X>=U0)return G$($,X,U0,"hour");if(X>=G0)return G$($,X,G0,"minute");if(X>=z0)return G$($,X,z0,"second");return $+" ms"}function G$($,X,Q,J){var Z=X>=Q*1.5;return Math.round($/Q)+" "+J+(Z?"s":"")}});var K3=I((dV,y5)=>{function IJ($){Q.debug=Q,Q.default=Q,Q.coerce=V,Q.disable=S,Q.enable=Z,Q.enabled=q,Q.humanize=O5(),Q.destroy=H,Object.keys($).forEach((w)=>{Q[w]=$[w]}),Q.names=[],Q.skips=[],Q.formatters={};function X(w){let W=0;for(let z=0;z<w.length;z++)W=(W<<5)-W+w.charCodeAt(z),W|=0;return Q.colors[Math.abs(W)%Q.colors.length]}Q.selectColor=X;function Q(w){let W,z=null,B,j;function K(...R){if(!K.enabled)return;let C=K,N=Number(new Date),D=N-(W||N);if(C.diff=D,C.prev=W,C.curr=N,W=N,R[0]=Q.coerce(R[0]),typeof R[0]!=="string")R.unshift("%O");let k=0;R[0]=R[0].replace(/%([a-zA-Z%])/g,(X1,v1)=>{if(X1==="%%")return"%";k++;let j1=Q.formatters[v1];if(typeof j1==="function"){let s1=R[k];X1=j1.call(C,s1),R.splice(k,1),k--}return X1}),Q.formatArgs.call(C,R),(C.log||Q.log).apply(C,R)}if(K.namespace=w,K.useColors=Q.useColors(),K.color=Q.selectColor(w),K.extend=J,K.destroy=Q.destroy,Object.defineProperty(K,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(z!==null)return z;if(B!==Q.namespaces)B=Q.namespaces,j=Q.enabled(w);return j},set:(R)=>{z=R}}),typeof Q.init==="function")Q.init(K);return K}function J(w,W){let z=Q(this.namespace+(typeof W>"u"?":":W)+w);return z.log=this.log,z}function Z(w){Q.save(w),Q.namespaces=w,Q.names=[],Q.skips=[];let W=(typeof w==="string"?w:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let z of W)if(z[0]==="-")Q.skips.push(z.slice(1));else Q.names.push(z)}function Y(w,W){let z=0,B=0,j=-1,K=0;while(z<w.length)if(B<W.length&&(W[B]===w[z]||W[B]==="*"))if(W[B]==="*")j=B,K=z,B++;else z++,B++;else if(j!==-1)B=j+1,K++,z=K;else return!1;while(B<W.length&&W[B]==="*")B++;return B===W.length}function S(){let w=[...Q.names,...Q.skips.map((W)=>"-"+W)].join(",");return Q.enable(""),w}function q(w){for(let W of Q.skips)if(Y(w,W))return!1;for(let W of Q.names)if(Y(w,W))return!0;return!1}function V(w){if(w instanceof Error)return w.stack||w.message;return w}function H(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return Q.enable(Q.load()),Q}y5.exports=IJ});var f5=I((x5,U$)=>{x5.formatArgs=EJ;x5.save=DJ;x5.load=CJ;x5.useColors=AJ;x5.storage=PJ();x5.destroy=(()=>{let $=!1;return()=>{if(!$)$=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();x5.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function AJ(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let $;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&($=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt($[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function EJ($){if($[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+$[0]+(this.useColors?"%c ":" ")+"+"+U$.exports.humanize(this.diff),!this.useColors)return;let X="color: "+this.color;$.splice(1,0,X,"color: inherit");let Q=0,J=0;$[0].replace(/%[a-zA-Z%]/g,(Z)=>{if(Z==="%%")return;if(Q++,Z==="%c")J=Q}),$.splice(J,0,X)}x5.log=console.debug||console.log||(()=>{});function DJ($){try{if($)x5.storage.setItem("debug",$);else x5.storage.removeItem("debug")}catch(X){}}function CJ(){let $;try{$=x5.storage.getItem("debug")||x5.storage.getItem("DEBUG")}catch(X){}if(!$&&typeof process<"u"&&"env"in process)$=process.env.DEBUG;return $}function PJ(){try{return localStorage}catch($){}}U$.exports=K3()(x5);var{formatters:NJ}=U$.exports;NJ.j=function($){try{return JSON.stringify($)}catch(X){return"[UnexpectedJSONParseError]: "+X.message}}});var b5=I((iV,v5)=>{v5.exports=($,X=process.argv)=>{let Q=$.startsWith("-")?"":$.length===1?"-":"--",J=X.indexOf(Q+$),Z=X.indexOf("--");return J!==-1&&(Z===-1||J<Z)}});var u5=I((oV,g5)=>{var hJ=f("os"),h5=f("tty"),z1=b5(),{env:p}=process,h1;if(z1("no-color")||z1("no-colors")||z1("color=false")||z1("color=never"))h1=0;else if(z1("color")||z1("colors")||z1("color=true")||z1("color=always"))h1=1;if("FORCE_COLOR"in p)if(p.FORCE_COLOR==="true")h1=1;else if(p.FORCE_COLOR==="false")h1=0;else h1=p.FORCE_COLOR.length===0?1:Math.min(parseInt(p.FORCE_COLOR,10),3);function M3($){if($===0)return!1;return{level:$,hasBasic:!0,has256:$>=2,has16m:$>=3}}function _3($,X){if(h1===0)return 0;if(z1("color=16m")||z1("color=full")||z1("color=truecolor"))return 3;if(z1("color=256"))return 2;if($&&!X&&h1===void 0)return 0;let Q=h1||0;if(p.TERM==="dumb")return Q;if(process.platform==="win32"){let J=hJ.release().split(".");if(Number(J[0])>=10&&Number(J[2])>=10586)return Number(J[2])>=14931?3:2;return 1}if("CI"in p){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((J)=>(J in p))||p.CI_NAME==="codeship")return 1;return Q}if("TEAMCITY_VERSION"in p)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION)?1:0;if(p.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in p){let J=parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return J>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(p.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM))return 1;if("COLORTERM"in p)return 1;return Q}function gJ($){let X=_3($,$&&$.isTTY);return M3(X)}g5.exports={supportsColor:gJ,stdout:M3(_3(!0,h5.isatty(1))),stderr:M3(_3(!0,h5.isatty(2)))}});var d5=I((c5,L$)=>{var uJ=f("tty"),B$=f("util");c5.init=oJ;c5.log=dJ;c5.formatArgs=cJ;c5.save=pJ;c5.load=iJ;c5.useColors=mJ;c5.destroy=B$.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");c5.colors=[6,2,3,4,5,1];try{let $=u5();if($&&($.stderr||$).level>=2)c5.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch($){}c5.inspectOpts=Object.keys(process.env).filter(($)=>{return/^debug_/i.test($)}).reduce(($,X)=>{let Q=X.substring(6).toLowerCase().replace(/_([a-z])/g,(Z,Y)=>{return Y.toUpperCase()}),J=process.env[X];if(/^(yes|on|true|enabled)$/i.test(J))J=!0;else if(/^(no|off|false|disabled)$/i.test(J))J=!1;else if(J==="null")J=null;else J=Number(J);return $[Q]=J,$},{});function mJ(){return"colors"in c5.inspectOpts?Boolean(c5.inspectOpts.colors):uJ.isatty(process.stderr.fd)}function cJ($){let{namespace:X,useColors:Q}=this;if(Q){let J=this.color,Z="\x1B[3"+(J<8?J:"8;5;"+J),Y=` ${Z};1m${X} \x1B[0m`;$[0]=Y+$[0].split(`
|
|
29
|
+
`).join(`
|
|
30
|
+
`+Y),$.push(Z+"m+"+L$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=lJ()+X+" "+$[0]}function lJ(){if(c5.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function dJ(...$){return process.stderr.write(B$.formatWithOptions(c5.inspectOpts,...$)+`
|
|
31
|
+
`)}function pJ($){if($)process.env.DEBUG=$;else delete process.env.DEBUG}function iJ(){return process.env.DEBUG}function oJ($){$.inspectOpts={};let X=Object.keys(c5.inspectOpts);for(let Q=0;Q<X.length;Q++)$.inspectOpts[X[Q]]=c5.inspectOpts[X[Q]]}L$.exports=K3()(c5);var{formatters:m5}=L$.exports;m5.o=function($){return this.inspectOpts.colors=this.useColors,B$.inspect($,this.inspectOpts).split(`
|
|
32
|
+
`).map((X)=>X.trim()).join(" ")};m5.O=function($){return this.inspectOpts.colors=this.useColors,B$.inspect($,this.inspectOpts)}});var p5=I((sV,T3)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)T3.exports=f5();else T3.exports=d5()});var a5=I((n5)=>{Object.defineProperty(n5,"__esModule",{value:!0});n5.genRedactedString=n5.getStringValue=n5.MAX_ARGUMENT_LENGTH=void 0;var X9=p5(),I3=200;n5.MAX_ARGUMENT_LENGTH=I3;var Q9="ioredis";function i5($){if($===null)return;switch(typeof $){case"boolean":return;case"number":return;case"object":if(Buffer.isBuffer($))return $.toString("hex");if(Array.isArray($))return $.join(",");try{return JSON.stringify($)}catch(X){return}case"string":return $}}n5.getStringValue=i5;function o5($,X){let{length:Q}=$;return Q<=X?$:$.slice(0,X)+' ... <REDACTED full-length="'+Q+'">'}n5.genRedactedString=o5;function J9($){let X=(0,X9.default)(`${Q9}:${$}`);function Q(...J){if(!X.enabled)return;for(let Z=1;Z<J.length;Z++){let Y=i5(J[Z]);if(typeof Y==="string"&&Y.length>I3)J[Z]=o5(Y,I3)}return X.apply(null,J)}return Object.defineProperties(Q,{namespace:{get(){return X.namespace}},enabled:{get(){return X.enabled}},destroy:{get(){return X.destroy}},log:{get(){return X.log},set(J){X.log=J}}}),Q}n5.default=J9});var e5=I((r5)=>{Object.defineProperty(r5,"__esModule",{value:!0});var t5=`-----BEGIN CERTIFICATE-----
|
|
33
|
+
MIIDTzCCAjegAwIBAgIJAKSVpiDswLcwMA0GCSqGSIb3DQEBBQUAMD4xFjAUBgNV
|
|
34
|
+
BAoMDUdhcmFudGlhIERhdGExJDAiBgNVBAMMG1NTTCBDZXJ0aWZpY2F0aW9uIEF1
|
|
35
|
+
dGhvcml0eTAeFw0xMzEwMDExMjE0NTVaFw0yMzA5MjkxMjE0NTVaMD4xFjAUBgNV
|
|
36
|
+
BAoMDUdhcmFudGlhIERhdGExJDAiBgNVBAMMG1NTTCBDZXJ0aWZpY2F0aW9uIEF1
|
|
37
|
+
dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZqkh/DczWP
|
|
38
|
+
JnxnHLQ7QL0T4B4CDKWBKCcisriGbA6ZePWVNo4hfKQC6JrzfR+081NeD6VcWUiz
|
|
39
|
+
rmd+jtPhIY4c+WVQYm5PKaN6DT1imYdxQw7aqO5j2KUCEh/cznpLxeSHoTxlR34E
|
|
40
|
+
QwF28Wl3eg2vc5ct8LjU3eozWVk3gb7alx9mSA2SgmuX5lEQawl++rSjsBStemY2
|
|
41
|
+
BDwOpAMXIrdEyP/cVn8mkvi/BDs5M5G+09j0gfhyCzRWMQ7Hn71u1eolRxwVxgi3
|
|
42
|
+
TMn+/vTaFSqxKjgck6zuAYjBRPaHe7qLxHNr1So/Mc9nPy+3wHebFwbIcnUojwbp
|
|
43
|
+
4nctkWbjb2cCAwEAAaNQME4wHQYDVR0OBBYEFP1whtcrydmW3ZJeuSoKZIKjze3w
|
|
44
|
+
MB8GA1UdIwQYMBaAFP1whtcrydmW3ZJeuSoKZIKjze3wMAwGA1UdEwQFMAMBAf8w
|
|
45
|
+
DQYJKoZIhvcNAQEFBQADggEBAG2erXhwRAa7+ZOBs0B6X57Hwyd1R4kfmXcs0rta
|
|
46
|
+
lbPpvgULSiB+TCbf3EbhJnHGyvdCY1tvlffLjdA7HJ0PCOn+YYLBA0pTU/dyvrN6
|
|
47
|
+
Su8NuS5yubnt9mb13nDGYo1rnt0YRfxN+8DM3fXIVr038A30UlPX2Ou1ExFJT0MZ
|
|
48
|
+
uFKY6ZvLdI6/1cbgmguMlAhM+DhKyV6Sr5699LM3zqeI816pZmlREETYkGr91q7k
|
|
49
|
+
BpXJu/dtHaGxg1ZGu6w/PCsYGUcECWENYD4VQPd8N32JjOfu6vEgoEAwfPP+3oGp
|
|
50
|
+
Z4m3ewACcWOAenqflb+cQYC4PsF7qbXDmRaWrbKntOlZ3n0=
|
|
51
|
+
-----END CERTIFICATE-----
|
|
52
|
+
-----BEGIN CERTIFICATE-----
|
|
53
|
+
MIIGMTCCBBmgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwajELMAkGA1UEBhMCVVMx
|
|
54
|
+
CzAJBgNVBAgMAkNBMQswCQYDVQQHDAJDQTESMBAGA1UECgwJUmVkaXNMYWJzMS0w
|
|
55
|
+
KwYDVQQDDCRSZWRpc0xhYnMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
|
56
|
+
MTgwMjI1MTUzNzM3WhcNMjgwMjIzMTUzNzM3WjBfMQswCQYDVQQGEwJVUzELMAkG
|
|
57
|
+
A1UECAwCQ0ExEjAQBgNVBAoMCVJlZGlzTGFiczEvMC0GA1UEAwwmUkNQIEludGVy
|
|
58
|
+
bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
|
|
59
|
+
A4ICDwAwggIKAoICAQDf9dqbxc8Bq7Ctq9rWcxrGNKKHivqLAFpPq02yLPx6fsOv
|
|
60
|
+
Tq7GsDChAYBBc4v7Y2Ap9RD5Vs3dIhEANcnolf27QwrG9RMnnvzk8pCvp1o6zSU4
|
|
61
|
+
VuOE1W66/O1/7e2rVxyrnTcP7UgK43zNIXu7+tiAqWsO92uSnuMoGPGpeaUm1jym
|
|
62
|
+
hjWKtkAwDFSqvHY+XL5qDVBEjeUe+WHkYUg40cAXjusAqgm2hZt29c2wnVrxW25W
|
|
63
|
+
P0meNlzHGFdA2AC5z54iRiqj57dTfBTkHoBczQxcyw6hhzxZQ4e5I5zOKjXXEhZN
|
|
64
|
+
r0tA3YC14CTabKRus/JmZieyZzRgEy2oti64tmLYTqSlAD78pRL40VNoaSYetXLw
|
|
65
|
+
hhNsXCHgWaY6d5bLOc/aIQMAV5oLvZQKvuXAF1IDmhPA+bZbpWipp0zagf1P1H3s
|
|
66
|
+
UzsMdn2KM0ejzgotbtNlj5TcrVwpmvE3ktvUAuA+hi3FkVx1US+2Gsp5x4YOzJ7u
|
|
67
|
+
P1WPk6ShF0JgnJH2ILdj6kttTWwFzH17keSFICWDfH/+kM+k7Y1v3EXMQXE7y0T9
|
|
68
|
+
MjvJskz6d/nv+sQhY04xt64xFMGTnZjlJMzfQNi7zWFLTZnDD0lPowq7l3YiPoTT
|
|
69
|
+
t5Xky83lu0KZsZBo0WlWaDG00gLVdtRgVbcuSWxpi5BdLb1kRab66JptWjxwXQID
|
|
70
|
+
AQABo4HrMIHoMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHBzOi8vcmwtY2Etc2VydmVy
|
|
71
|
+
LnJlZGlzbGFicy5jb20vdjEvY3JsMEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcw
|
|
72
|
+
AYYqaHR0cHM6Ly9ybC1jYS1zZXJ2ZXIucmVkaXNsYWJzLmNvbS92MS9vY3NwMB0G
|
|
73
|
+
A1UdDgQWBBQHar5OKvQUpP2qWt6mckzToeCOHDAfBgNVHSMEGDAWgBQi42wH6hM4
|
|
74
|
+
L2sujEvLM0/u8lRXTzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB
|
|
75
|
+
hjANBgkqhkiG9w0BAQsFAAOCAgEAirEn/iTsAKyhd+pu2W3Z5NjCko4NPU0EYUbr
|
|
76
|
+
AP7+POK2rzjIrJO3nFYQ/LLuC7KCXG+2qwan2SAOGmqWst13Y+WHp44Kae0kaChW
|
|
77
|
+
vcYLXXSoGQGC8QuFSNUdaeg3RbMDYFT04dOkqufeWVccoHVxyTSg9eD8LZuHn5jw
|
|
78
|
+
7QDLiEECBmIJHk5Eeo2TAZrx4Yx6ufSUX5HeVjlAzqwtAqdt99uCJ/EL8bgpWbe+
|
|
79
|
+
XoSpvUv0SEC1I1dCAhCKAvRlIOA6VBcmzg5Am12KzkqTul12/VEFIgzqu0Zy2Jbc
|
|
80
|
+
AUPrYVu/+tOGXQaijy7YgwH8P8n3s7ZeUa1VABJHcxrxYduDDJBLZi+MjheUDaZ1
|
|
81
|
+
jQRHYevI2tlqeSBqdPKG4zBY5lS0GiAlmuze5oENt0P3XboHoZPHiqcK3VECgTVh
|
|
82
|
+
/BkJcuudETSJcZDmQ8YfoKfBzRQNg2sv/hwvUv73Ss51Sco8GEt2lD8uEdib1Q6z
|
|
83
|
+
zDT5lXJowSzOD5ZA9OGDjnSRL+2riNtKWKEqvtEG3VBJoBzu9GoxbAc7wIZLxmli
|
|
84
|
+
iF5a/Zf5X+UXD3s4TMmy6C4QZJpAA2egsSQCnraWO2ULhh7iXMysSkF/nzVfZn43
|
|
85
|
+
iqpaB8++9a37hWq14ZmOv0TJIDz//b2+KC4VFXWQ5W5QC6whsjT+OlG4p5ZYG0jo
|
|
86
|
+
616pxqo=
|
|
87
|
+
-----END CERTIFICATE-----
|
|
88
|
+
-----BEGIN CERTIFICATE-----
|
|
89
|
+
MIIFujCCA6KgAwIBAgIJAJ1aTT1lu2ScMA0GCSqGSIb3DQEBCwUAMGoxCzAJBgNV
|
|
90
|
+
BAYTAlVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCQ0ExEjAQBgNVBAoMCVJlZGlz
|
|
91
|
+
TGFiczEtMCsGA1UEAwwkUmVkaXNMYWJzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
|
|
92
|
+
aXR5MB4XDTE4MDIyNTE1MjA0MloXDTM4MDIyMDE1MjA0MlowajELMAkGA1UEBhMC
|
|
93
|
+
VVMxCzAJBgNVBAgMAkNBMQswCQYDVQQHDAJDQTESMBAGA1UECgwJUmVkaXNMYWJz
|
|
94
|
+
MS0wKwYDVQQDDCRSZWRpc0xhYnMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
|
|
95
|
+
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLEjXy7YrbN5Waau5cd6g1
|
|
96
|
+
G5C2tMmeTpZ0duFAPxNU4oE3RHS5gGiok346fUXuUxbZ6QkuzeN2/2Z+RmRcJhQY
|
|
97
|
+
Dm0ZgdG4x59An1TJfnzKKoWj8ISmoHS/TGNBdFzXV7FYNLBuqZouqePI6ReC6Qhl
|
|
98
|
+
pp45huV32Q3a6IDrrvx7Wo5ZczEQeFNbCeCOQYNDdTmCyEkHqc2AGo8eoIlSTutT
|
|
99
|
+
ULOC7R5gzJVTS0e1hesQ7jmqHjbO+VQS1NAL4/5K6cuTEqUl+XhVhPdLWBXJQ5ag
|
|
100
|
+
54qhX4v+ojLzeU1R/Vc6NjMvVtptWY6JihpgplprN0Yh2556ewcXMeturcKgXfGJ
|
|
101
|
+
xeYzsjzXerEjrVocX5V8BNrg64NlifzTMKNOOv4fVZszq1SIHR8F9ROrqiOdh8iC
|
|
102
|
+
JpUbLpXH9hWCSEO6VRMB2xJoKu3cgl63kF30s77x7wLFMEHiwsQRKxooE1UhgS9K
|
|
103
|
+
2sO4TlQ1eWUvFvHSTVDQDlGQ6zu4qjbOpb3Q8bQwoK+ai2alkXVR4Ltxe9QlgYK3
|
|
104
|
+
StsnPhruzZGA0wbXdpw0bnM+YdlEm5ffSTpNIfgHeaa7Dtb801FtA71ZlH7A6TaI
|
|
105
|
+
SIQuUST9EKmv7xrJyx0W1pGoPOLw5T029aTjnICSLdtV9bLwysrLhIYG5bnPq78B
|
|
106
|
+
cS+jZHFGzD7PUVGQD01nOQIDAQABo2MwYTAdBgNVHQ4EFgQUIuNsB+oTOC9rLoxL
|
|
107
|
+
yzNP7vJUV08wHwYDVR0jBBgwFoAUIuNsB+oTOC9rLoxLyzNP7vJUV08wDwYDVR0T
|
|
108
|
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAHfg
|
|
109
|
+
z5pMNUAKdMzK1aS1EDdK9yKz4qicILz5czSLj1mC7HKDRy8cVADUxEICis++CsCu
|
|
110
|
+
rYOvyCVergHQLREcxPq4rc5Nq1uj6J6649NEeh4WazOOjL4ZfQ1jVznMbGy+fJm3
|
|
111
|
+
3Hoelv6jWRG9iqeJZja7/1s6YC6bWymI/OY1e4wUKeNHAo+Vger7MlHV+RuabaX+
|
|
112
|
+
hSJ8bJAM59NCM7AgMTQpJCncrcdLeceYniGy5Q/qt2b5mJkQVkIdy4TPGGB+AXDJ
|
|
113
|
+
D0q3I/JDRkDUFNFdeW0js7fHdsvCR7O3tJy5zIgEV/o/BCkmJVtuwPYOrw/yOlKj
|
|
114
|
+
TY/U7ATAx9VFF6/vYEOMYSmrZlFX+98L6nJtwDqfLB5VTltqZ4H/KBxGE3IRSt9l
|
|
115
|
+
FXy40U+LnXzhhW+7VBAvyYX8GEXhHkKU8Gqk1xitrqfBXY74xKgyUSTolFSfFVgj
|
|
116
|
+
mcM/X4K45bka+qpkj7Kfv/8D4j6aZekwhN2ly6hhC1SmQ8qjMjpG/mrWOSSHZFmf
|
|
117
|
+
ybu9iD2AYHeIOkshIl6xYIa++Q/00/vs46IzAbQyriOi0XxlSMMVtPx0Q3isp+ji
|
|
118
|
+
n8Mq9eOuxYOEQ4of8twUkUDd528iwGtEdwf0Q01UyT84S62N8AySl1ZBKXJz6W4F
|
|
119
|
+
UhWfa/HQYOAPDdEjNgnVwLI23b8t0TozyCWw7q8h
|
|
120
|
+
-----END CERTIFICATE-----
|
|
121
|
+
|
|
122
|
+
-----BEGIN CERTIFICATE-----
|
|
123
|
+
MIIEjzCCA3egAwIBAgIQe55B/ALCKJDZtdNT8kD6hTANBgkqhkiG9w0BAQsFADBM
|
|
124
|
+
MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xv
|
|
125
|
+
YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMjAxMjYxMjAwMDBaFw0y
|
|
126
|
+
NTAxMjYwMDAwMDBaMFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu
|
|
127
|
+
IG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIE9WIFRMUyBDQSAy
|
|
128
|
+
MDIyIFEyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmGmg1LW9b7Lf
|
|
129
|
+
8zDD83yBDTEkt+FOxKJZqF4veWc5KZsQj9HfnUS2e5nj/E+JImlGPsQuoiosLuXD
|
|
130
|
+
BVBNAMcUFa11buFMGMeEMwiTmCXoXRrXQmH0qjpOfKgYc5gHG3BsRGaRrf7VR4eg
|
|
131
|
+
ofNMG9wUBw4/g/TT7+bQJdA4NfE7Y4d5gEryZiBGB/swaX6Jp/8MF4TgUmOWmalK
|
|
132
|
+
dZCKyb4sPGQFRTtElk67F7vU+wdGcrcOx1tDcIB0ncjLPMnaFicagl+daWGsKqTh
|
|
133
|
+
counQb6QJtYHa91KvCfKWocMxQ7OIbB5UARLPmC4CJ1/f8YFm35ebfzAeULYdGXu
|
|
134
|
+
jE9CLor0OwIDAQABo4IBXzCCAVswDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQG
|
|
135
|
+
CCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQW
|
|
136
|
+
BBSH5Zq7a7B/t95GfJWkDBpA8HHqdjAfBgNVHSMEGDAWgBSP8Et/qC5FJK5NUPpj
|
|
137
|
+
move4t0bvDB7BggrBgEFBQcBAQRvMG0wLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3Nw
|
|
138
|
+
Mi5nbG9iYWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1
|
|
139
|
+
cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0w
|
|
140
|
+
K6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC1yMy5jcmwwIQYD
|
|
141
|
+
VR0gBBowGDAIBgZngQwBAgIwDAYKKwYBBAGgMgoBAjANBgkqhkiG9w0BAQsFAAOC
|
|
142
|
+
AQEAKRic9/f+nmhQU/wz04APZLjgG5OgsuUOyUEZjKVhNGDwxGTvKhyXGGAMW2B/
|
|
143
|
+
3bRi+aElpXwoxu3pL6fkElbX3B0BeS5LoDtxkyiVEBMZ8m+sXbocwlPyxrPbX6mY
|
|
144
|
+
0rVIvnuUeBH8X0L5IwfpNVvKnBIilTbcebfHyXkPezGwz7E1yhUULjJFm2bt0SdX
|
|
145
|
+
y+4X/WeiiYIv+fTVgZZgl+/2MKIsu/qdBJc3f3TvJ8nz+Eax1zgZmww+RSQWeOj3
|
|
146
|
+
15Iw6Z5FX+NwzY/Ab+9PosR5UosSeq+9HhtaxZttXG1nVh+avYPGYddWmiMT90J5
|
|
147
|
+
ZgKnO/Fx2hBgTxhOTMYaD312kg==
|
|
148
|
+
-----END CERTIFICATE-----
|
|
149
|
+
|
|
150
|
+
-----BEGIN CERTIFICATE-----
|
|
151
|
+
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
|
|
152
|
+
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
|
|
153
|
+
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
|
|
154
|
+
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
|
|
155
|
+
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
|
156
|
+
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
|
|
157
|
+
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
|
|
158
|
+
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
|
|
159
|
+
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
|
|
160
|
+
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
|
|
161
|
+
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
|
|
162
|
+
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
|
|
163
|
+
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
|
|
164
|
+
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
|
|
165
|
+
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
|
|
166
|
+
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
|
|
167
|
+
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
|
|
168
|
+
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
|
|
169
|
+
WD9f
|
|
170
|
+
-----END CERTIFICATE-----`,q9={RedisCloudFixed:{ca:t5},RedisCloudFlexible:{ca:t5}};r5.default=q9});var a=I((j$)=>{var __dirname="C:\\Users\\offby\\Documents\\Research\\stabilize\\node_modules\\ioredis\\built\\utils";Object.defineProperty(j$,"__esModule",{value:!0});j$.noop=j$.defaults=j$.Debug=j$.getPackageMeta=j$.zipMap=j$.CONNECTION_CLOSED_ERROR_MSG=j$.shuffle=j$.sample=j$.resolveTLSProfile=j$.parseURL=j$.optimizeErrorStack=j$.toArg=j$.convertMapToArray=j$.convertObjectToArray=j$.timeout=j$.packObject=j$.isInt=j$.wrapMultiResult=j$.convertBufferToString=void 0;var w9=f("fs"),H9=f("path"),$6=f("url"),A3=z$();Object.defineProperty(j$,"defaults",{enumerable:!0,get:function(){return A3.defaults}});Object.defineProperty(j$,"noop",{enumerable:!0,get:function(){return A3.noop}});var W9=a5();j$.Debug=W9.default;var z9=e5();function X6($,X){if($ instanceof Buffer)return $.toString(X);if(Array.isArray($)){let Q=$.length,J=Array(Q);for(let Z=0;Z<Q;++Z)J[Z]=$[Z]instanceof Buffer&&X==="utf8"?$[Z].toString():X6($[Z],X);return J}return $}j$.convertBufferToString=X6;function G9($){if(!$)return null;let X=[],Q=$.length;for(let J=0;J<Q;++J){let Z=$[J];if(Z instanceof Error)X.push([Z]);else X.push([null,Z])}return X}j$.wrapMultiResult=G9;function Q6($){let X=parseFloat($);return!isNaN($)&&(X|0)===X}j$.isInt=Q6;function U9($){let X={},Q=$.length;for(let J=1;J<Q;J+=2)X[$[J-1]]=$[J];return X}j$.packObject=U9;function B9($,X){let Q=null,J=function(){if(Q)clearTimeout(Q),Q=null,$.apply(this,arguments)};return Q=setTimeout(J,X,Error("timeout")),J}j$.timeout=B9;function L9($){let X=[],Q=Object.keys($);for(let J=0,Z=Q.length;J<Z;J++)X.push(Q[J],$[Q[J]]);return X}j$.convertObjectToArray=L9;function j9($){let X=[],Q=0;return $.forEach(function(J,Z){X[Q]=Z,X[Q+1]=J,Q+=2}),X}j$.convertMapToArray=j9;function R9($){if($===null||typeof $>"u")return"";return String($)}j$.toArg=R9;function F9($,X,Q){let J=X.split(`
|
|
171
|
+
`),Z="",Y;for(Y=1;Y<J.length;++Y)if(J[Y].indexOf(Q)===-1)break;for(let S=Y;S<J.length;++S)Z+=`
|
|
172
|
+
`+J[S];if($.stack){let S=$.stack.indexOf(`
|
|
173
|
+
`);$.stack=$.stack.slice(0,S)+Z}return $}j$.optimizeErrorStack=F9;function K9($){if(Q6($))return{port:$};let X=(0,$6.parse)($,!0,!0);if(!X.slashes&&$[0]!=="/")$="//"+$,X=(0,$6.parse)($,!0,!0);let Q=X.query||{},J={};if(X.auth){let Z=X.auth.indexOf(":");J.username=Z===-1?X.auth:X.auth.slice(0,Z),J.password=Z===-1?"":X.auth.slice(Z+1)}if(X.pathname)if(X.protocol==="redis:"||X.protocol==="rediss:"){if(X.pathname.length>1)J.db=X.pathname.slice(1)}else J.path=X.pathname;if(X.host)J.host=X.hostname;if(X.port)J.port=X.port;if(typeof Q.family==="string"){let Z=Number.parseInt(Q.family,10);if(!Number.isNaN(Z))J.family=Z}return(0,A3.defaults)(J,Q),J}j$.parseURL=K9;function M9($){let X=$===null||$===void 0?void 0:$.tls;if(typeof X==="string")X={profile:X};let Q=z9.default[X===null||X===void 0?void 0:X.profile];if(Q)X=Object.assign({},Q,X),delete X.profile,$=Object.assign({},$,{tls:X});return $}j$.resolveTLSProfile=M9;function _9($,X=0){let Q=$.length;if(X>=Q)return null;return $[X+Math.floor(Math.random()*(Q-X))]}j$.sample=_9;function T9($){let X=$.length;while(X>0){let Q=Math.floor(Math.random()*X);X--,[$[X],$[Q]]=[$[Q],$[X]]}return $}j$.shuffle=T9;j$.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.";function I9($,X){let Q=new Map;return $.forEach((J,Z)=>{Q.set(J,X[Z])}),Q}j$.zipMap=I9;var B0=null;async function A9(){if(B0)return B0;try{let $=(0,H9.resolve)(__dirname,"..","..","package.json"),X=await w9.promises.readFile($,"utf8");return B0={version:JSON.parse(X).version},B0}catch($){return B0={version:"error-fetching-version"},B0}}j$.getPackageMeta=A9});var N1=I((q6)=>{var __dirname="C:\\Users\\offby\\Documents\\Research\\stabilize\\node_modules\\ioredis\\built";Object.defineProperty(q6,"__esModule",{value:!0});var J6=w0(),d9=C0(),p9=b1(),$0=a();class w1{constructor($,X=[],Q={},J){if(this.name=$,this.inTransaction=!1,this.isResolved=!1,this.transformed=!1,this.replyEncoding=Q.replyEncoding,this.errorStack=Q.errorStack,this.args=X.flat(),this.callback=J,this.initPromise(),Q.keyPrefix){let Z=Q.keyPrefix instanceof Buffer,Y=Z?Q.keyPrefix:null;this._iterateKeys((S)=>{if(S instanceof Buffer){if(Y===null)Y=Buffer.from(Q.keyPrefix);return Buffer.concat([Y,S])}else if(Z)return Buffer.concat([Q.keyPrefix,Buffer.from(String(S))]);return Q.keyPrefix+S})}if(Q.readOnly)this.isReadOnly=!0}static checkFlag($,X){return!!this.getFlagMap()[$][X]}static setArgumentTransformer($,X){this._transformer.argument[$]=X}static setReplyTransformer($,X){this._transformer.reply[$]=X}static getFlagMap(){if(!this.flagMap)this.flagMap=Object.keys(w1.FLAGS).reduce(($,X)=>{return $[X]={},w1.FLAGS[X].forEach((Q)=>{$[X][Q]=!0}),$},{});return this.flagMap}getSlot(){if(typeof this.slot>"u"){let $=this.getKeys()[0];this.slot=$==null?null:d9($)}return this.slot}getKeys(){return this._iterateKeys()}toWritable($){let X,Q="*"+(this.args.length+1)+`\r
|
|
174
|
+
$`+Buffer.byteLength(this.name)+`\r
|
|
175
|
+
`+this.name+`\r
|
|
176
|
+
`;if(this.bufferMode){let J=new S6;J.push(Q);for(let Z=0;Z<this.args.length;++Z){let Y=this.args[Z];if(Y instanceof Buffer)if(Y.length===0)J.push(`$0\r
|
|
177
|
+
\r
|
|
178
|
+
`);else J.push("$"+Y.length+`\r
|
|
179
|
+
`),J.push(Y),J.push(`\r
|
|
180
|
+
`);else J.push("$"+Buffer.byteLength(Y)+`\r
|
|
181
|
+
`+Y+`\r
|
|
182
|
+
`)}X=J.toBuffer()}else{X=Q;for(let J=0;J<this.args.length;++J){let Z=this.args[J];X+="$"+Buffer.byteLength(Z)+`\r
|
|
183
|
+
`+Z+`\r
|
|
184
|
+
`}}return X}stringifyArguments(){for(let $=0;$<this.args.length;++$){let X=this.args[$];if(typeof X==="string");else if(X instanceof Buffer)this.bufferMode=!0;else this.args[$]=(0,$0.toArg)(X)}}transformReply($){if(this.replyEncoding)$=(0,$0.convertBufferToString)($,this.replyEncoding);let X=w1._transformer.reply[this.name];if(X)$=X($);return $}setTimeout($){if(!this._commandTimeoutTimer)this._commandTimeoutTimer=setTimeout(()=>{if(!this.isResolved)this.reject(Error("Command timed out"))},$)}initPromise(){let $=new Promise((X,Q)=>{if(!this.transformed){this.transformed=!0;let J=w1._transformer.argument[this.name];if(J)this.args=J(this.args);this.stringifyArguments()}if(this.resolve=this._convertValue(X),this.errorStack)this.reject=(J)=>{Q((0,$0.optimizeErrorStack)(J,this.errorStack.stack,__dirname))};else this.reject=Q});this.promise=(0,p9.default)($,this.callback)}_iterateKeys($=(X)=>X){if(typeof this.keys>"u"){if(this.keys=[],(0,J6.exists)(this.name)){let X=(0,J6.getKeyIndexes)(this.name,this.args);for(let Q of X)this.args[Q]=$(this.args[Q]),this.keys.push(this.args[Q])}}return this.keys}_convertValue($){return(X)=>{try{let Q=this._commandTimeoutTimer;if(Q)clearTimeout(Q),delete this._commandTimeoutTimer;$(this.transformReply(X)),this.isResolved=!0}catch(Q){this.reject(Q)}return this.promise}}}q6.default=w1;w1.FLAGS={VALID_IN_SUBSCRIBER_MODE:["subscribe","psubscribe","unsubscribe","punsubscribe","ssubscribe","sunsubscribe","ping","quit"],VALID_IN_MONITOR_MODE:["monitor","auth"],ENTER_SUBSCRIBER_MODE:["subscribe","psubscribe","ssubscribe"],EXIT_SUBSCRIBER_MODE:["unsubscribe","punsubscribe","sunsubscribe"],WILL_DISCONNECT:["quit"]};w1._transformer={argument:{},reply:{}};var Z6=function($){if($.length===1){if($[0]instanceof Map)return(0,$0.convertMapToArray)($[0]);if(typeof $[0]==="object"&&$[0]!==null)return(0,$0.convertObjectToArray)($[0])}return $},Y6=function($){if($.length===2){if($[1]instanceof Map)return[$[0]].concat((0,$0.convertMapToArray)($[1]));if(typeof $[1]==="object"&&$[1]!==null)return[$[0]].concat((0,$0.convertObjectToArray)($[1]))}return $};w1.setArgumentTransformer("mset",Z6);w1.setArgumentTransformer("msetnx",Z6);w1.setArgumentTransformer("hset",Y6);w1.setArgumentTransformer("hmset",Y6);w1.setReplyTransformer("hgetall",function($){if(Array.isArray($)){let X={};for(let Q=0;Q<$.length;Q+=2){let J=$[Q],Z=$[Q+1];if(J in X)Object.defineProperty(X,J,{value:Z,configurable:!0,enumerable:!0,writable:!0});else X[J]=Z}return X}return $});class S6{constructor(){this.length=0,this.items=[]}push($){this.length+=Buffer.byteLength($),this.items.push($)}toBuffer(){let $=Buffer.allocUnsafe(this.length),X=0;for(let Q of this.items){let J=Buffer.byteLength(Q);Buffer.isBuffer(Q)?Q.copy($,X):$.write(Q,X,J),X+=J}return $}}});var w6=I((V6)=>{Object.defineProperty(V6,"__esModule",{value:!0});var o9=t1();class E3 extends o9.RedisError{constructor($,X){super($);this.lastNodeError=X,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}V6.default=E3;E3.defaultMessage="Failed to refresh slots cache."});var R$=I((W6)=>{Object.defineProperty(W6,"__esModule",{value:!0});var s9=f("stream");class H6 extends s9.Readable{constructor($){super($);this.opt=$,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained){this.push(null);return}let $=[this._redisCursor];if(this.opt.key)$.unshift(this.opt.key);if(this.opt.match)$.push("MATCH",this.opt.match);if(this.opt.type)$.push("TYPE",this.opt.type);if(this.opt.count)$.push("COUNT",String(this.opt.count));if(this.opt.noValues)$.push("NOVALUES");this.opt.redis[this.opt.command]($,(X,Q)=>{if(X){this.emit("error",X);return}if(this._redisCursor=Q[0]instanceof Buffer?Q[0].toString():Q[0],this._redisCursor==="0")this._redisDrained=!0;this.push(Q[1])})}close(){this._redisDrained=!0}}W6.default=H6});var K6=I((j6)=>{Object.defineProperty(j6,"__esModule",{value:!0});j6.executeWithAutoPipelining=j6.getFirstValueInFlattenedArray=j6.shouldUseAutoPipelining=j6.notAllowedAutoPipelineCommands=j6.kCallbacks=j6.kExec=void 0;var G6=z$(),t9=C0(),z6=b1();j6.kExec=Symbol("exec");j6.kCallbacks=Symbol("callbacks");j6.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select"];function U6($,X){if($._runningAutoPipelines.has(X))return;if(!$._autoPipelines.has(X))return;$._runningAutoPipelines.add(X);let Q=$._autoPipelines.get(X);$._autoPipelines.delete(X);let J=Q[j6.kCallbacks];Q[j6.kCallbacks]=null,Q.exec(function(Z,Y){if($._runningAutoPipelines.delete(X),Z)for(let S=0;S<J.length;S++)process.nextTick(J[S],Z);else for(let S=0;S<J.length;S++)process.nextTick(J[S],...Y[S]);if($._autoPipelines.has(X))U6($,X)})}function r9($,X,Q){return X&&$.options.enableAutoPipelining&&!$.isPipeline&&!j6.notAllowedAutoPipelineCommands.includes(Q)&&!$.options.autoPipeliningIgnoredCommands.includes(Q)}j6.shouldUseAutoPipelining=r9;function B6($){for(let X=0;X<$.length;X++){let Q=$[X];if(typeof Q==="string")return Q;else if(Array.isArray(Q)||(0,G6.isArguments)(Q)){if(Q.length===0)continue;return Q[0]}let J=[Q].flat();if(J.length>0)return J[0]}return}j6.getFirstValueInFlattenedArray=B6;function L6($,X,Q,J,Z){if($.isCluster&&!$.slots.length){if($.status==="wait")$.connect().catch(G6.noop);return(0,z6.default)(new Promise(function(H,w){$.delayUntilReady((W)=>{if(W){w(W);return}L6($,X,Q,J,null).then(H,w)})}),Z)}let Y=$.options.keyPrefix||"",S=$.isCluster?$.slots[t9(`${Y}${B6(J)}`)].join(","):"main";if(!$._autoPipelines.has(S)){let H=$.pipeline();H[j6.kExec]=!1,H[j6.kCallbacks]=[],$._autoPipelines.set(S,H)}let q=$._autoPipelines.get(S);if(!q[j6.kExec])q[j6.kExec]=!0,setImmediate(U6,$,S);let V=new Promise(function(H,w){if(q[j6.kCallbacks].push(function(W,z){if(W){w(W);return}H(z)}),X==="call")J.unshift(Q);q[X](...J)});return(0,z6.default)(V,Z)}j6.executeWithAutoPipelining=L6});var T6=I((_6)=>{Object.defineProperty(_6,"__esModule",{value:!0});var XZ=f("crypto"),QZ=N1(),JZ=b1();class M6{constructor($,X=null,Q="",J=!1){this.lua=$,this.numberOfKeys=X,this.keyPrefix=Q,this.readOnly=J,this.sha=(0,XZ.createHash)("sha1").update($).digest("hex");let Z=this.sha,Y=new WeakSet;this.Command=class extends QZ.default{toWritable(q){let V=this.reject;if(this.reject=(H)=>{if(H.message.indexOf("NOSCRIPT")!==-1)Y.delete(q);V.call(this,H)},!Y.has(q))Y.add(q),this.name="eval",this.args[0]=$;else if(this.name==="eval")this.name="evalsha",this.args[0]=Z;return super.toWritable(q)}}}execute($,X,Q,J){if(typeof this.numberOfKeys==="number")X.unshift(this.numberOfKeys);if(this.keyPrefix)Q.keyPrefix=this.keyPrefix;if(this.readOnly)Q.readOnly=!0;let Z=new this.Command("evalsha",[this.sha,...X],Q);return Z.promise=Z.promise.catch((Y)=>{if(Y.message.indexOf("NOSCRIPT")===-1)throw Y;let S=new this.Command("evalsha",[this.sha,...X],Q);return($.isPipeline?$.redis:$).sendCommand(S)}),(0,JZ.default)(Z.promise,J),$.sendCommand(Z)}}_6.default=M6});var M$=I((A6)=>{Object.defineProperty(A6,"__esModule",{value:!0});var YZ=w0(),K$=K6(),SZ=N1(),qZ=T6();class u1{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return D3.slice(0)}createBuiltinCommand($){return{string:g1(null,$,"utf8"),buffer:g1(null,$,null)}}addBuiltinCommand($){this.addedBuiltinSet.add($),this[$]=g1($,$,"utf8"),this[$+"Buffer"]=g1($+"Buffer",$,null)}defineCommand($,X){let Q=new qZ.default(X.lua,X.numberOfKeys,this.options.keyPrefix,X.readOnly);this.scriptsSet[$]=Q,this[$]=I6($,$,Q,"utf8"),this[$+"Buffer"]=I6($+"Buffer",$,Q,null)}sendCommand($,X,Q){throw Error('"sendCommand" is not implemented')}}var D3=YZ.list.filter(($)=>$!=="monitor");D3.push("sentinel");D3.forEach(function($){u1.prototype[$]=g1($,$,"utf8"),u1.prototype[$+"Buffer"]=g1($+"Buffer",$,null)});u1.prototype.call=g1("call","utf8");u1.prototype.callBuffer=g1("callBuffer",null);u1.prototype.send_command=u1.prototype.call;function g1($,X,Q){if(typeof Q>"u")Q=X,X=null;return function(...J){let Z=X||J.shift(),Y=J[J.length-1];if(typeof Y==="function")J.pop();else Y=void 0;let S={errorStack:this.options.showFriendlyErrorStack?Error():void 0,keyPrefix:this.options.keyPrefix,replyEncoding:Q};if(!(0,K$.shouldUseAutoPipelining)(this,$,Z))return this.sendCommand(new SZ.default(Z,J,S,Y));return(0,K$.executeWithAutoPipelining)(this,$,Z,J,Y)}}function I6($,X,Q,J){return function(...Z){let Y=typeof Z[Z.length-1]==="function"?Z.pop():void 0,S={replyEncoding:J};if(this.options.showFriendlyErrorStack)S.errorStack=Error();if(!(0,K$.shouldUseAutoPipelining)(this,$,X))return Q.execute(this,Z,S,Y);return(0,K$.executeWithAutoPipelining)(this,$,X,Z,Y)}}A6.default=u1});var P3=I((P6)=>{Object.defineProperty(P6,"__esModule",{value:!0});var C3=C0(),E6=w0(),D6=b1(),wZ=f("util"),HZ=N1(),WZ=a(),zZ=M$();function GZ($,X){let Q=C3(X[0]),J=$._groupsBySlot[Q];for(let Z=1;Z<X.length;Z++)if($._groupsBySlot[C3(X[Z])]!==J)return-1;return Q}class X0 extends zZ.default{constructor($){super();this.redis=$,this.isPipeline=!0,this.replyPending=0,this._queue=[],this._result=[],this._transactions=0,this._shaToScript={},this.isCluster=this.redis.constructor.name==="Cluster"||this.redis.isCluster,this.options=$.options,Object.keys($.scriptsSet).forEach((Q)=>{let J=$.scriptsSet[Q];this._shaToScript[J.sha]=J,this[Q]=$[Q],this[Q+"Buffer"]=$[Q+"Buffer"]}),$.addedBuiltinSet.forEach((Q)=>{this[Q]=$[Q],this[Q+"Buffer"]=$[Q+"Buffer"]}),this.promise=new Promise((Q,J)=>{this.resolve=Q,this.reject=J});let X=this;Object.defineProperty(this,"length",{get:function(){return X._queue.length}})}fillResult($,X){if(this._queue[X].name==="exec"&&Array.isArray($[1])){let J=$[1].length;for(let Z=0;Z<J;Z++){if($[1][Z]instanceof Error)continue;let Y=this._queue[X-(J-Z)];try{$[1][Z]=Y.transformReply($[1][Z])}catch(S){$[1][Z]=S}}}if(this._result[X]=$,--this.replyPending)return;if(this.isCluster){let J=!0,Z;for(let Y=0;Y<this._result.length;++Y){let S=this._result[Y][0],q=this._queue[Y];if(S){if(q.name==="exec"&&S.message==="EXECABORT Transaction discarded because of previous errors.")continue;if(!Z)Z={name:S.name,message:S.message};else if(Z.name!==S.name||Z.message!==S.message){J=!1;break}}else if(!q.inTransaction){if(!((0,E6.exists)(q.name)&&(0,E6.hasFlag)(q.name,"readonly"))){J=!1;break}}}if(Z&&J){let Y=this,S=Z.message.split(" "),q=this._queue,V=!1;this._queue=[];for(let z=0;z<q.length;++z){if(S[0]==="ASK"&&!V&&q[z].name!=="asking"&&(!q[z-1]||q[z-1].name!=="asking")){let B=new HZ.default("asking");B.ignore=!0,this.sendCommand(B)}q[z].initPromise(),this.sendCommand(q[z]),V=q[z].inTransaction}let H=!0;if(typeof this.leftRedirections>"u")this.leftRedirections={};let w=function(){Y.exec()},W=this.redis;if(W.handleError(Z,this.leftRedirections,{moved:function(z,B){Y.preferKey=B,W.slots[S[1]]=[B],W._groupsBySlot[S[1]]=W._groupsIds[W.slots[S[1]].join(";")],W.refreshSlotsCache(),Y.exec()},ask:function(z,B){Y.preferKey=B,Y.exec()},tryagain:w,clusterDown:w,connectionClosed:w,maxRedirections:()=>{H=!1},defaults:()=>{H=!1}}),H)return}}let Q=0;for(let J=0;J<this._queue.length-Q;++J){if(this._queue[J+Q].ignore)Q+=1;this._result[J]=this._result[J+Q]}this.resolve(this._result.slice(0,this._result.length-Q))}sendCommand($){if(this._transactions>0)$.inTransaction=!0;let X=this._queue.length;return $.pipelineIndex=X,$.promise.then((Q)=>{this.fillResult([null,Q],X)}).catch((Q)=>{this.fillResult([Q],X)}),this._queue.push($),this}addBatch($){let X,Q,J;for(let Z=0;Z<$.length;++Z)X=$[Z],Q=X[0],J=X.slice(1),this[Q].apply(this,J);return this}}P6.default=X0;var UZ=X0.prototype.multi;X0.prototype.multi=function(){return this._transactions+=1,UZ.apply(this,arguments)};var C6=X0.prototype.execBuffer;X0.prototype.execBuffer=(0,wZ.deprecate)(function(){if(this._transactions>0)this._transactions-=1;return C6.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead");X0.prototype.exec=function($){if(this.isCluster&&!this.redis.slots.length){if(this.redis.status==="wait")this.redis.connect().catch(WZ.noop);if($&&!this.nodeifiedPromise)this.nodeifiedPromise=!0,(0,D6.default)(this.promise,$);return this.redis.delayUntilReady((Z)=>{if(Z){this.reject(Z);return}this.exec($)}),this.promise}if(this._transactions>0)return this._transactions-=1,C6.apply(this,arguments);if(!this.nodeifiedPromise)this.nodeifiedPromise=!0,(0,D6.default)(this.promise,$);if(!this._queue.length)this.resolve([]);let X;if(this.isCluster){let Z=[];for(let Y=0;Y<this._queue.length;Y++){let S=this._queue[Y].getKeys();if(S.length)Z.push(S[0]);if(S.length&&C3.generateMulti(S)<0)return this.reject(Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(Z.length){if(X=GZ(this.redis,Z),X<0)return this.reject(Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else X=Math.random()*16384|0}let Q=this;return J(),this.promise;function J(){let Z=Q.replyPending=Q._queue.length,Y;if(Q.isCluster)Y={slot:X,redis:Q.redis.connectionPool.nodes.all[Q.preferKey]};let S="",q,V={isPipeline:!0,destination:Q.isCluster?Y:{redis:Q.redis},write(H){if(typeof H!=="string"){if(!q)q=[];if(S)q.push(Buffer.from(S,"utf8")),S="";q.push(H)}else S+=H;if(!--Z){if(q){if(S)q.push(Buffer.from(S,"utf8"));V.destination.redis.stream.write(Buffer.concat(q))}else V.destination.redis.stream.write(S);Z=Q._queue.length,S="",q=void 0}}};for(let H=0;H<Q._queue.length;++H)Q.redis.sendCommand(Q._queue[H],V,Y);return Q.promise}}});var O3=I((k6)=>{Object.defineProperty(k6,"__esModule",{value:!0});k6.addTransactionSupport=void 0;var N3=a(),k3=b1(),N6=P3();function LZ($){$.pipeline=function(J){let Z=new N6.default(this);if(Array.isArray(J))Z.addBatch(J);return Z};let{multi:X}=$;$.multi=function(J,Z){if(typeof Z>"u"&&!Array.isArray(J))Z=J,J=null;if(Z&&Z.pipeline===!1)return X.call(this);let Y=new N6.default(this);if(Y.multi(),Array.isArray(J))Y.addBatch(J);let S=Y.exec;Y.exec=function(V){if(this.isCluster&&!this.redis.slots.length){if(this.redis.status==="wait")this.redis.connect().catch(N3.noop);return(0,k3.default)(new Promise((w,W)=>{this.redis.delayUntilReady((z)=>{if(z){W(z);return}this.exec(Y).then(w,W)})}),V)}if(this._transactions>0)S.call(Y);if(this.nodeifiedPromise)return S.call(Y);let H=S.call(Y);return(0,k3.default)(H.then(function(w){let W=w[w.length-1];if(typeof W>"u")throw Error("Pipeline cannot be used to send any commands when the `exec()` has been called on it.");if(W[0]){W[0].previousErrors=[];for(let z=0;z<w.length-1;++z)if(w[z][0])W[0].previousErrors.push(w[z][0]);throw W[0]}return(0,N3.wrapMultiResult)(W[1])}),V)};let{execBuffer:q}=Y;return Y.execBuffer=function(V){if(this._transactions>0)q.call(Y);return Y.exec(V)},Y};let{exec:Q}=$;$.exec=function(J){return(0,k3.default)(Q.call(this).then(function(Z){if(Array.isArray(Z))Z=(0,N3.wrapMultiResult)(Z);return Z}),J)}}k6.addTransactionSupport=LZ});var y3=I((y6)=>{Object.defineProperty(y6,"__esModule",{value:!0});function jZ($,X){Object.getOwnPropertyNames(X.prototype).forEach((Q)=>{Object.defineProperty($.prototype,Q,Object.getOwnPropertyDescriptor(X.prototype,Q))})}y6.default=jZ});var b6=I((f6)=>{Object.defineProperty(f6,"__esModule",{value:!0});f6.DEFAULT_CLUSTER_OPTIONS=void 0;var x6=f("dns");f6.DEFAULT_CLUSTER_OPTIONS={clusterRetryStrategy:($)=>Math.min(100+$*2,2000),enableOfflineQueue:!0,enableReadyCheck:!0,scaleReads:"master",maxRedirections:16,retryDelayOnMoved:0,retryDelayOnFailover:100,retryDelayOnClusterDown:100,retryDelayOnTryAgain:100,slotsRefreshTimeout:1000,useSRVRecords:!1,resolveSrv:x6.resolveSrv,dnsLookup:x6.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}});var y0=I((g6)=>{Object.defineProperty(g6,"__esModule",{value:!0});g6.getConnectionName=g6.weightSrvRecords=g6.groupSrvRecords=g6.getUniqueHostnamesFromOptions=g6.normalizeNodeOptions=g6.nodeKeyToRedisOptions=g6.getNodeKey=void 0;var h6=a(),FZ=f("net");function KZ($){return $.port=$.port||6379,$.host=$.host||"127.0.0.1",$.host+":"+$.port}g6.getNodeKey=KZ;function MZ($){let X=$.lastIndexOf(":");if(X===-1)throw Error(`Invalid node key ${$}`);return{host:$.slice(0,X),port:Number($.slice(X+1))}}g6.nodeKeyToRedisOptions=MZ;function _Z($){return $.map((X)=>{let Q={};if(typeof X==="object")Object.assign(Q,X);else if(typeof X==="string")Object.assign(Q,(0,h6.parseURL)(X));else if(typeof X==="number")Q.port=X;else throw Error("Invalid argument "+X);if(typeof Q.port==="string")Q.port=parseInt(Q.port,10);if(delete Q.db,!Q.port)Q.port=6379;if(!Q.host)Q.host="127.0.0.1";return(0,h6.resolveTLSProfile)(Q)})}g6.normalizeNodeOptions=_Z;function TZ($){let X={};return $.forEach((Q)=>{X[Q.host]=!0}),Object.keys(X).filter((Q)=>!(0,FZ.isIP)(Q))}g6.getUniqueHostnamesFromOptions=TZ;function IZ($){let X={};for(let Q of $)if(!X.hasOwnProperty(Q.priority))X[Q.priority]={totalWeight:Q.weight,records:[Q]};else X[Q.priority].totalWeight+=Q.weight,X[Q.priority].records.push(Q);return X}g6.groupSrvRecords=IZ;function AZ($){if($.records.length===1)return $.totalWeight=0,$.records.shift();let X=Math.floor(Math.random()*($.totalWeight+$.records.length)),Q=0;for(let[J,Z]of $.records.entries())if(Q+=1+Z.weight,Q>X)return $.totalWeight-=Z.weight,$.records.splice(J,1),Z}g6.weightSrvRecords=AZ;function EZ($,X){let Q=`ioredis-cluster(${$})`;return X?`${Q}:${X}`:Q}g6.getConnectionName=EZ});var f3=I((l6)=>{Object.defineProperty(l6,"__esModule",{value:!0});var m6=y0(),x3=a(),yZ=m1(),I1=(0,x3.Debug)("cluster:subscriber");class c6{constructor($,X,Q=!1){this.connectionPool=$,this.emitter=X,this.isSharded=Q,this.started=!1,this.subscriber=null,this.slotRange=[],this.onSubscriberEnd=()=>{if(!this.started){I1("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");return}I1("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(J,Z)=>{if(!this.started||!this.subscriber)return;if((0,m6.getNodeKey)(this.subscriber.options)===Z)I1("subscriber has left, selecting a new one..."),this.selectSubscriber()}),this.connectionPool.on("+node",()=>{if(!this.started||this.subscriber)return;I1("a new node is discovered and there is no subscriber, selecting a new one..."),this.selectSubscriber()})}getInstance(){return this.subscriber}associateSlotRange($){if(this.isSharded)this.slotRange=$;return this.slotRange}start(){this.started=!0,this.selectSubscriber(),I1("started")}stop(){if(this.started=!1,this.subscriber)this.subscriber.disconnect(),this.subscriber=null}isStarted(){return this.started}selectSubscriber(){let $=this.lastActiveSubscriber;if($)$.off("end",this.onSubscriberEnd),$.disconnect();if(this.subscriber)this.subscriber.off("end",this.onSubscriberEnd),this.subscriber.disconnect();let X=(0,x3.sample)(this.connectionPool.getNodes());if(!X){I1("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:Q}=X;I1("selected a subscriber %s:%s",Q.host,Q.port);let J="subscriber";if(this.isSharded)J="ssubscriber";this.subscriber=new yZ.default({port:Q.port,host:Q.host,username:Q.username,password:Q.password,enableReadyCheck:!0,connectionName:(0,m6.getConnectionName)(J,Q.connectionName),lazyConnect:!0,tls:Q.tls,retryStrategy:null}),this.subscriber.on("error",x3.noop),this.subscriber.on("moved",()=>{this.emitter.emit("forceRefresh")}),this.subscriber.once("end",this.onSubscriberEnd);let Z={subscribe:[],psubscribe:[],ssubscribe:[]};if($){let Y=$.condition||$.prevCondition;if(Y&&Y.subscriber)Z.subscribe=Y.subscriber.channels("subscribe"),Z.psubscribe=Y.subscriber.channels("psubscribe"),Z.ssubscribe=Y.subscriber.channels("ssubscribe")}if(Z.subscribe.length||Z.psubscribe.length||Z.ssubscribe.length){let Y=0;for(let S of["subscribe","psubscribe","ssubscribe"]){let q=Z[S];if(q.length==0)continue;if(I1("%s %d channels",S,q.length),S==="ssubscribe")for(let V of q)Y+=1,this.subscriber[S](V).then(()=>{if(!--Y)this.lastActiveSubscriber=this.subscriber}).catch(()=>{I1("failed to ssubscribe to channel: %s",V)});else Y+=1,this.subscriber[S](q).then(()=>{if(!--Y)this.lastActiveSubscriber=this.subscriber}).catch(()=>{I1("failed to %s %d channels",S,q.length)})}}else this.lastActiveSubscriber=this.subscriber;for(let Y of["message","messageBuffer"])this.subscriber.on(Y,(S,q)=>{this.emitter.emit(Y,S,q)});for(let Y of["pmessage","pmessageBuffer"])this.subscriber.on(Y,(S,q,V)=>{this.emitter.emit(Y,S,q,V)});if(this.isSharded==!0)for(let Y of["smessage","smessageBuffer"])this.subscriber.on(Y,(S,q)=>{this.emitter.emit(Y,S,q)})}}l6.default=c6});var b3=I((p6)=>{Object.defineProperty(p6,"__esModule",{value:!0});var fZ=f("events"),_$=a(),v3=y0(),vZ=m1(),x0=(0,_$.Debug)("cluster:connectionPool");class d6 extends fZ.EventEmitter{constructor($){super();this.redisOptions=$,this.nodes={all:{},master:{},slave:{}},this.specifiedOptions={}}getNodes($="all"){let X=this.nodes[$];return Object.keys(X).map((Q)=>X[Q])}getInstanceByKey($){return this.nodes.all[$]}getSampleInstance($){let X=Object.keys(this.nodes[$]),Q=(0,_$.sample)(X);return this.nodes[$][Q]}addMasterNode($){let X=(0,v3.getNodeKey)($.options),Q=this.createRedisFromOptions($,$.options.readOnly);if(!$.options.readOnly)return this.nodes.all[X]=Q,this.nodes.master[X]=Q,!0;return!1}createRedisFromOptions($,X){return new vZ.default((0,_$.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:X},$,this.redisOptions,{lazyConnect:!0}))}findOrCreate($,X=!1){let Q=(0,v3.getNodeKey)($);if(X=Boolean(X),this.specifiedOptions[Q])Object.assign($,this.specifiedOptions[Q]);else this.specifiedOptions[Q]=$;let J;if(this.nodes.all[Q]){if(J=this.nodes.all[Q],J.options.readOnly!==X)if(J.options.readOnly=X,x0("Change role of %s to %s",Q,X?"slave":"master"),J[X?"readonly":"readwrite"]().catch(_$.noop),X)delete this.nodes.master[Q],this.nodes.slave[Q]=J;else delete this.nodes.slave[Q],this.nodes.master[Q]=J}else x0("Connecting to %s as %s",Q,X?"slave":"master"),J=this.createRedisFromOptions($,X),this.nodes.all[Q]=J,this.nodes[X?"slave":"master"][Q]=J,J.once("end",()=>{if(this.removeNode(Q),this.emit("-node",J,Q),!Object.keys(this.nodes.all).length)this.emit("drain")}),this.emit("+node",J,Q),J.on("error",function(Z){this.emit("nodeError",Z,Q)});return J}reset($){x0("Reset with %O",$);let X={};$.forEach((Q)=>{let J=(0,v3.getNodeKey)(Q);if(!(Q.readOnly&&X[J]))X[J]=Q}),Object.keys(this.nodes.all).forEach((Q)=>{if(!X[Q])x0("Disconnect %s because the node does not hold any slot",Q),this.nodes.all[Q].disconnect(),this.removeNode(Q)}),Object.keys(X).forEach((Q)=>{let J=X[Q];this.findOrCreate(J,J.readOnly)})}removeNode($){let{nodes:X}=this;if(X.all[$])x0("Remove %s from the pool",$),delete X.all[$];delete X.master[$],delete X.slave[$]}}p6.default=d6});var T$=I((Gw,i6)=>{function h($,Q){var Q=Q||{};if(this._capacity=Q.capacity,this._head=0,this._tail=0,Array.isArray($))this._fromArray($);else this._capacityMask=3,this._list=[,,,,]}h.prototype.peekAt=function(X){var Q=X;if(Q!==(Q|0))return;var J=this.size();if(Q>=J||Q<-J)return;if(Q<0)Q+=J;return Q=this._head+Q&this._capacityMask,this._list[Q]};h.prototype.get=function(X){return this.peekAt(X)};h.prototype.peek=function(){if(this._head===this._tail)return;return this._list[this._head]};h.prototype.peekFront=function(){return this.peek()};h.prototype.peekBack=function(){return this.peekAt(-1)};Object.defineProperty(h.prototype,"length",{get:function(){return this.size()}});h.prototype.size=function(){if(this._head===this._tail)return 0;if(this._head<this._tail)return this._tail-this._head;else return this._capacityMask+1-(this._head-this._tail)};h.prototype.unshift=function(X){if(arguments.length===0)return this.size();var Q=this._list.length;if(this._head=this._head-1+Q&this._capacityMask,this._list[this._head]=X,this._tail===this._head)this._growArray();if(this._capacity&&this.size()>this._capacity)this.pop();if(this._head<this._tail)return this._tail-this._head;else return this._capacityMask+1-(this._head-this._tail)};h.prototype.shift=function(){var X=this._head;if(X===this._tail)return;var Q=this._list[X];if(this._list[X]=void 0,this._head=X+1&this._capacityMask,X<2&&this._tail>1e4&&this._tail<=this._list.length>>>2)this._shrinkArray();return Q};h.prototype.push=function(X){if(arguments.length===0)return this.size();var Q=this._tail;if(this._list[Q]=X,this._tail=Q+1&this._capacityMask,this._tail===this._head)this._growArray();if(this._capacity&&this.size()>this._capacity)this.shift();if(this._head<this._tail)return this._tail-this._head;else return this._capacityMask+1-(this._head-this._tail)};h.prototype.pop=function(){var X=this._tail;if(X===this._head)return;var Q=this._list.length;this._tail=X-1+Q&this._capacityMask;var J=this._list[this._tail];if(this._list[this._tail]=void 0,this._head<2&&X>1e4&&X<=Q>>>2)this._shrinkArray();return J};h.prototype.removeOne=function(X){var Q=X;if(Q!==(Q|0))return;if(this._head===this._tail)return;var J=this.size(),Z=this._list.length;if(Q>=J||Q<-J)return;if(Q<0)Q+=J;Q=this._head+Q&this._capacityMask;var Y=this._list[Q],S;if(X<J/2){for(S=X;S>0;S--)this._list[Q]=this._list[Q=Q-1+Z&this._capacityMask];this._list[Q]=void 0,this._head=this._head+1+Z&this._capacityMask}else{for(S=J-1-X;S>0;S--)this._list[Q]=this._list[Q=Q+1+Z&this._capacityMask];this._list[Q]=void 0,this._tail=this._tail-1+Z&this._capacityMask}return Y};h.prototype.remove=function(X,Q){var J=X,Z,Y=Q;if(J!==(J|0))return;if(this._head===this._tail)return;var S=this.size(),q=this._list.length;if(J>=S||J<-S||Q<1)return;if(J<0)J+=S;if(Q===1||!Q)return Z=[,],Z[0]=this.removeOne(J),Z;if(J===0&&J+Q>=S)return Z=this.toArray(),this.clear(),Z;if(J+Q>S)Q=S-J;var V;Z=Array(Q);for(V=0;V<Q;V++)Z[V]=this._list[this._head+J+V&this._capacityMask];if(J=this._head+J&this._capacityMask,X+Q===S){this._tail=this._tail-Q+q&this._capacityMask;for(V=Q;V>0;V--)this._list[J=J+1+q&this._capacityMask]=void 0;return Z}if(X===0){this._head=this._head+Q+q&this._capacityMask;for(V=Q-1;V>0;V--)this._list[J=J+1+q&this._capacityMask]=void 0;return Z}if(J<S/2){this._head=this._head+X+Q+q&this._capacityMask;for(V=X;V>0;V--)this.unshift(this._list[J=J-1+q&this._capacityMask]);J=this._head-1+q&this._capacityMask;while(Y>0)this._list[J=J-1+q&this._capacityMask]=void 0,Y--;if(X<0)this._tail=J}else{this._tail=J,J=J+Q+q&this._capacityMask;for(V=S-(Q+X);V>0;V--)this.push(this._list[J++]);J=this._tail;while(Y>0)this._list[J=J+1+q&this._capacityMask]=void 0,Y--}if(this._head<2&&this._tail>1e4&&this._tail<=q>>>2)this._shrinkArray();return Z};h.prototype.splice=function(X,Q){var J=X;if(J!==(J|0))return;var Z=this.size();if(J<0)J+=Z;if(J>Z)return;if(arguments.length>2){var Y,S,q,V=arguments.length,H=this._list.length,w=2;if(!Z||J<Z/2){S=Array(J);for(Y=0;Y<J;Y++)S[Y]=this._list[this._head+Y&this._capacityMask];if(Q===0){if(q=[],J>0)this._head=this._head+J+H&this._capacityMask}else q=this.remove(J,Q),this._head=this._head+J+H&this._capacityMask;while(V>w)this.unshift(arguments[--V]);for(Y=J;Y>0;Y--)this.unshift(S[Y-1])}else{S=Array(Z-(J+Q));var W=S.length;for(Y=0;Y<W;Y++)S[Y]=this._list[this._head+J+Q+Y&this._capacityMask];if(Q===0){if(q=[],J!=Z)this._tail=this._head+J+H&this._capacityMask}else q=this.remove(J,Q),this._tail=this._tail-W+H&this._capacityMask;while(w<V)this.push(arguments[w++]);for(Y=0;Y<W;Y++)this.push(S[Y])}return q}else return this.remove(J,Q)};h.prototype.clear=function(){this._list=Array(this._list.length),this._head=0,this._tail=0};h.prototype.isEmpty=function(){return this._head===this._tail};h.prototype.toArray=function(){return this._copyArray(!1)};h.prototype._fromArray=function(X){var Q=X.length,J=this._nextPowerOf2(Q);this._list=Array(J),this._capacityMask=J-1,this._tail=Q;for(var Z=0;Z<Q;Z++)this._list[Z]=X[Z]};h.prototype._copyArray=function(X,Q){var J=this._list,Z=J.length,Y=this.length;if(Q=Q|Y,Q==Y&&this._head<this._tail)return this._list.slice(this._head,this._tail);var S=Array(Q),q=0,V;if(X||this._head>this._tail){for(V=this._head;V<Z;V++)S[q++]=J[V];for(V=0;V<this._tail;V++)S[q++]=J[V]}else for(V=this._head;V<this._tail;V++)S[q++]=J[V];return S};h.prototype._growArray=function(){if(this._head!=0){var X=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=X}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1};h.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1};h.prototype._nextPowerOf2=function(X){var Q=Math.log(X)/Math.log(2),J=1<<Q+1;return Math.max(J,4)};i6.exports=h});var s6=I((n6)=>{Object.defineProperty(n6,"__esModule",{value:!0});var hZ=a(),gZ=T$(),uZ=(0,hZ.Debug)("delayqueue");class o6{constructor(){this.queues={},this.timeouts={}}push($,X,Q){let J=Q.callback||process.nextTick;if(!this.queues[$])this.queues[$]=new gZ;if(this.queues[$].push(X),!this.timeouts[$])this.timeouts[$]=setTimeout(()=>{J(()=>{this.timeouts[$]=null,this.execute($)})},Q.timeout)}execute($){let X=this.queues[$];if(!X)return;let{length:Q}=X;if(!Q)return;uZ("send %d commands in %s queue",Q,$),this.queues[$]=null;while(X.length>0)X.shift()()}}n6.default=o6});var $7=I((e6)=>{Object.defineProperty(e6,"__esModule",{value:!0});var cZ=a(),lZ=f3(),dZ=b3(),a6=y0(),I$=C0(),t6=(0,cZ.Debug)("cluster:subscriberGroup");class r6{constructor($,X){this.cluster=$,this.shardedSubscribers=new Map,this.clusterSlots=[],this.subscriberToSlotsIndex=new Map,this.channels=new Map,$.on("+node",(Q)=>{this._addSubscriber(Q)}),$.on("-node",(Q)=>{this._removeSubscriber(Q)}),$.on("refresh",()=>{this._refreshSlots($)}),$.on("forceRefresh",()=>{X()})}getResponsibleSubscriber($){let X=this.clusterSlots[$][0];return this.shardedSubscribers.get(X)}addChannels($){let X=I$($[0]);$.forEach((J)=>{if(I$(J)!=X)return-1});let Q=this.channels.get(X);if(!Q)this.channels.set(X,$);else this.channels.set(X,Q.concat($));return[...this.channels.values()].flatMap((J)=>J).length}removeChannels($){let X=I$($[0]);$.forEach((J)=>{if(I$(J)!=X)return-1});let Q=this.channels.get(X);if(Q){let J=Q.filter((Z)=>!$.includes(Z));this.channels.set(X,J)}return[...this.channels.values()].flatMap((J)=>J).length}stop(){for(let $ of this.shardedSubscribers.values())$.stop()}start(){for(let $ of this.shardedSubscribers.values())if(!$.isStarted())$.start()}_addSubscriber($){let X=new dZ.default($.options);if(X.addMasterNode($)){let Q=new lZ.default(X,this.cluster,!0),J=(0,a6.getNodeKey)($.options);return this.shardedSubscribers.set(J,Q),Q.start(),this._resubscribe(),this.cluster.emit("+subscriber"),Q}return null}_removeSubscriber($){let X=(0,a6.getNodeKey)($.options),Q=this.shardedSubscribers.get(X);if(Q)Q.stop(),this.shardedSubscribers.delete(X),this._resubscribe(),this.cluster.emit("-subscriber");return this.shardedSubscribers}_refreshSlots($){if(this._slotsAreEqual($.slots))t6("Nothing to refresh because the new cluster map is equal to the previous one.");else{t6("Refreshing the slots of the subscriber group."),this.subscriberToSlotsIndex=new Map;for(let X=0;X<$.slots.length;X++){let Q=$.slots[X][0];if(!this.subscriberToSlotsIndex.has(Q))this.subscriberToSlotsIndex.set(Q,[]);this.subscriberToSlotsIndex.get(Q).push(Number(X))}return this._resubscribe(),this.clusterSlots=JSON.parse(JSON.stringify($.slots)),this.cluster.emit("subscribersReady"),!0}return!1}_resubscribe(){if(this.shardedSubscribers)this.shardedSubscribers.forEach(($,X)=>{let Q=this.subscriberToSlotsIndex.get(X);if(Q)$.associateSlotRange(Q),Q.forEach((J)=>{let Z=$.getInstance(),Y=this.channels.get(J);if(Y&&Y.length>0){if(Z)Z.ssubscribe(Y),Z.on("ready",()=>{Z.ssubscribe(Y)})}})})}_slotsAreEqual($){if(this.clusterSlots===void 0)return!1;else return JSON.stringify(this.clusterSlots)===JSON.stringify($)}}e6.default=r6});var g3=I((q7)=>{Object.defineProperty(q7,"__esModule",{value:!0});var X7=w0(),S7=f("events"),f0=t1(),Q7=b1(),J7=N1(),h3=w6(),iZ=m1(),oZ=R$(),nZ=O3(),H1=a(),sZ=y3(),aZ=M$(),tZ=b6(),rZ=f3(),eZ=b3(),$Y=s6(),L0=y0(),Z7=T$(),XY=$7(),g=(0,H1.Debug)("cluster"),Y7=new WeakSet;class v0 extends aZ.default{constructor($,X={}){super();if(this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new $Y.default,this.offlineQueue=new Z7,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,S7.EventEmitter.call(this),this.startupNodes=$,this.options=(0,H1.defaults)({},X,tZ.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers==!0)this.shardedSubscribers=new XY.default(this,this.refreshSlotsCache.bind(this));if(this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix)this.options.keyPrefix=this.options.redisOptions.keyPrefix;if(typeof this.options.scaleReads!=="function"&&["all","master","slave"].indexOf(this.options.scaleReads)===-1)throw Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');if(this.connectionPool=new eZ.default(this.options.redisOptions),this.connectionPool.on("-node",(Q,J)=>{this.emit("-node",Q)}),this.connectionPool.on("+node",(Q)=>{this.emit("+node",Q)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(Q,J)=>{this.emit("node error",Q,J)}),this.subscriber=new rZ.default(this.connectionPool,this),this.options.scripts)Object.entries(this.options.scripts).forEach(([Q,J])=>{this.defineCommand(Q,J)});if(this.options.lazyConnect)this.setStatus("wait");else this.connect().catch((Q)=>{g("connecting failed: %s",Q)})}connect(){return new Promise(($,X)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){X(Error("Redis is already connecting/connected"));return}let Q=++this.connectionEpoch;this.setStatus("connecting"),this.resolveStartupNodeHostnames().then((J)=>{if(this.connectionEpoch!==Q){g("discard connecting after resolving startup nodes because epoch not match: %d != %d",Q,this.connectionEpoch),X(new f0.RedisError("Connection is discarded because a new connection is made"));return}if(this.status!=="connecting"){g("discard connecting after resolving startup nodes because the status changed to %s",this.status),X(new f0.RedisError("Connection is aborted"));return}this.connectionPool.reset(J);let Z=()=>{this.setStatus("ready"),this.retryAttempts=0,this.executeOfflineCommands(),this.resetNodesRefreshInterval(),$()},Y=void 0,S=()=>{if(this.invokeReadyDelayedCallbacks(void 0),this.removeListener("close",Y),this.manuallyClosing=!1,this.setStatus("connect"),this.options.enableReadyCheck)this.readyCheck((q,V)=>{if(q||V){if(g("Ready check failed (%s). Reconnecting...",q||V),this.status==="connect")this.disconnect(!0)}else Z()});else Z()};if(Y=()=>{let q=Error("None of startup nodes is available");this.removeListener("refresh",S),this.invokeReadyDelayedCallbacks(q),X(q)},this.once("refresh",S),this.once("close",Y),this.once("close",this.handleCloseEvent.bind(this)),this.refreshSlotsCache((q)=>{if(q&&q.message===h3.default.defaultMessage)iZ.default.prototype.silentEmit.call(this,"error",q),this.connectionPool.reset([])}),this.subscriber.start(),this.options.shardedSubscribers)this.shardedSubscribers.start()}).catch((J)=>{this.setStatus("close"),this.handleCloseEvent(J),this.invokeReadyDelayedCallbacks(J),X(J)})})}disconnect($=!1){let X=this.status;if(this.setStatus("disconnecting"),!$)this.manuallyClosing=!0;if(this.reconnectTimeout&&!$)clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null,g("Canceled reconnecting attempts");if(this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers)this.shardedSubscribers.stop();if(X==="wait")this.setStatus("close"),this.handleCloseEvent();else this.connectionPool.reset([])}quit($){let X=this.status;if(this.setStatus("disconnecting"),this.manuallyClosing=!0,this.reconnectTimeout)clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null;if(this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers)this.shardedSubscribers.stop();if(X==="wait"){let Q=(0,Q7.default)(Promise.resolve("OK"),$);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),Q}return(0,Q7.default)(Promise.all(this.nodes().map((Q)=>Q.quit().catch((J)=>{if(J.message===H1.CONNECTION_CLOSED_ERROR_MSG)return"OK";throw J}))).then(()=>"OK"),$)}duplicate($=[],X={}){let Q=$.length>0?$:this.startupNodes.slice(0),J=Object.assign({},this.options,X);return new v0(Q,J)}nodes($="all"){if($!=="all"&&$!=="master"&&$!=="slave")throw Error('Invalid role "'+$+'". Expected "all", "master" or "slave"');return this.connectionPool.getNodes($)}delayUntilReady($){this._readyDelayedCallbacks.push($)}get autoPipelineQueueSize(){let $=0;for(let X of this._autoPipelines.values())$+=X.length;return $}refreshSlotsCache($){if($)this._refreshSlotsCacheCallbacks.push($);if(this.isRefreshing)return;this.isRefreshing=!0;let X=this,Q=(S)=>{this.isRefreshing=!1;for(let q of this._refreshSlotsCacheCallbacks)q(S);this._refreshSlotsCacheCallbacks=[]},J=(0,H1.shuffle)(this.connectionPool.getNodes()),Z=null;function Y(S){if(S===J.length){let H=new h3.default(h3.default.defaultMessage,Z);return Q(H)}let q=J[S],V=`${q.options.host}:${q.options.port}`;g("getting slot cache from %s",V),X.getInfoFromNode(q,function(H){switch(X.status){case"close":case"end":return Q(Error("Cluster is disconnected."));case"disconnecting":return Q(Error("Cluster is disconnecting."))}if(H)X.emit("node error",H,V),Z=H,Y(S+1);else X.emit("refresh"),Q()})}Y(0)}sendCommand($,X,Q){if(this.status==="wait")this.connect().catch(H1.noop);if(this.status==="end")return $.reject(Error(H1.CONNECTION_CLOSED_ERROR_MSG)),$.promise;let J=this.options.scaleReads;if(J!=="master"){if(!($.isReadOnly||(0,X7.exists)($.name)&&(0,X7.hasFlag)($.name,"readonly")))J="master"}let Z=Q?Q.slot:$.getSlot(),Y={},S=this;if(!Q&&!Y7.has($)){Y7.add($);let V=$.reject;$.reject=function(H){let w=q.bind(null,!0);S.handleError(H,Y,{moved:function(W,z){if(g("command %s is moved to %s",$.name,z),Z=Number(W),S.slots[W])S.slots[W][0]=z;else S.slots[W]=[z];S._groupsBySlot[W]=S._groupsIds[S.slots[W].join(";")],S.connectionPool.findOrCreate(S.natMapper(z)),q(),g("refreshing slot caches... (triggered by MOVED error)"),S.refreshSlotsCache()},ask:function(W,z){g("command %s is required to ask %s:%s",$.name,z);let B=S.natMapper(z);S.connectionPool.findOrCreate(B),q(!1,`${B.host}:${B.port}`)},tryagain:w,clusterDown:w,connectionClosed:w,maxRedirections:function(W){V.call($,W)},defaults:function(){V.call($,H)}})}}q();function q(V,H){if(S.status==="end"){$.reject(new f0.AbortError("Cluster is ended."));return}let w;if(S.status==="ready"||$.name==="cluster"){if(Q&&Q.redis)w=Q.redis;else if(J7.default.checkFlag("ENTER_SUBSCRIBER_MODE",$.name)||J7.default.checkFlag("EXIT_SUBSCRIBER_MODE",$.name)){if(S.options.shardedSubscribers==!0&&($.name=="ssubscribe"||$.name=="sunsubscribe")){let W=S.shardedSubscribers.getResponsibleSubscriber(Z),z=-1;if($.name=="ssubscribe")z=S.shardedSubscribers.addChannels($.getKeys());if($.name=="sunsubscribe")z=S.shardedSubscribers.removeChannels($.getKeys());if(z!==-1)w=W.getInstance();else $.reject(new f0.AbortError("Can't add or remove the given channels. Are they in the same slot?"))}else w=S.subscriber.getInstance();if(!w){$.reject(new f0.AbortError("No subscriber for the cluster"));return}}else{if(!V){if(typeof Z==="number"&&S.slots[Z]){let W=S.slots[Z];if(typeof J==="function"){let z=W.map(function(B){return S.connectionPool.getInstanceByKey(B)});if(w=J(z,$),Array.isArray(w))w=(0,H1.sample)(w);if(!w)w=z[0]}else{let z;if(J==="all")z=(0,H1.sample)(W);else if(J==="slave"&&W.length>1)z=(0,H1.sample)(W,1);else z=W[0];w=S.connectionPool.getInstanceByKey(z)}}if(H)w=S.connectionPool.getInstanceByKey(H),w.asking()}if(!w)w=(typeof J==="function"?null:S.connectionPool.getSampleInstance(J))||S.connectionPool.getSampleInstance("all")}if(Q&&!Q.redis)Q.redis=w}if(w)w.sendCommand($,X);else if(S.options.enableOfflineQueue)S.offlineQueue.push({command:$,stream:X,node:Q});else $.reject(Error("Cluster isn't ready and enableOfflineQueue options is false"))}return $.promise}sscanStream($,X){return this.createScanStream("sscan",{key:$,options:X})}sscanBufferStream($,X){return this.createScanStream("sscanBuffer",{key:$,options:X})}hscanStream($,X){return this.createScanStream("hscan",{key:$,options:X})}hscanBufferStream($,X){return this.createScanStream("hscanBuffer",{key:$,options:X})}zscanStream($,X){return this.createScanStream("zscan",{key:$,options:X})}zscanBufferStream($,X){return this.createScanStream("zscanBuffer",{key:$,options:X})}handleError($,X,Q){if(typeof X.value>"u")X.value=this.options.maxRedirections;else X.value-=1;if(X.value<=0){Q.maxRedirections(Error("Too many Cluster redirections. Last error: "+$));return}let J=$.message.split(" ");if(J[0]==="MOVED"){let Z=this.options.retryDelayOnMoved;if(Z&&typeof Z==="number")this.delayQueue.push("moved",Q.moved.bind(null,J[1],J[2]),{timeout:Z});else Q.moved(J[1],J[2])}else if(J[0]==="ASK")Q.ask(J[1],J[2]);else if(J[0]==="TRYAGAIN")this.delayQueue.push("tryagain",Q.tryagain,{timeout:this.options.retryDelayOnTryAgain});else if(J[0]==="CLUSTERDOWN"&&this.options.retryDelayOnClusterDown>0)this.delayQueue.push("clusterdown",Q.connectionClosed,{timeout:this.options.retryDelayOnClusterDown,callback:this.refreshSlotsCache.bind(this)});else if($.message===H1.CONNECTION_CLOSED_ERROR_MSG&&this.options.retryDelayOnFailover>0&&this.status==="ready")this.delayQueue.push("failover",Q.connectionClosed,{timeout:this.options.retryDelayOnFailover,callback:this.refreshSlotsCache.bind(this)});else Q.defaults()}resetOfflineQueue(){this.offlineQueue=new Z7}clearNodesRefreshInterval(){if(this.slotsTimer)clearTimeout(this.slotsTimer),this.slotsTimer=null}resetNodesRefreshInterval(){if(this.slotsTimer||!this.options.slotsRefreshInterval)return;let $=()=>{this.slotsTimer=setTimeout(()=>{g('refreshing slot caches... (triggered by "slotsRefreshInterval" option)'),this.refreshSlotsCache(()=>{$()})},this.options.slotsRefreshInterval)};$()}setStatus($){g("status: %s -> %s",this.status||"[empty]",$),this.status=$,process.nextTick(()=>{this.emit($)})}handleCloseEvent($){if($)g("closed because %s",$);let X;if(!this.manuallyClosing&&typeof this.options.clusterRetryStrategy==="function")X=this.options.clusterRetryStrategy.call(this,++this.retryAttempts,$);if(typeof X==="number")this.setStatus("reconnecting"),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,g("Cluster is disconnected. Retrying after %dms",X),this.connect().catch(function(Q){g("Got error %s when reconnecting. Ignoring...",Q)})},X);else this.setStatus("end"),this.flushQueue(Error("None of startup nodes is available"))}flushQueue($){let X;while(X=this.offlineQueue.shift())X.command.reject($)}executeOfflineCommands(){if(this.offlineQueue.length){g("send %d commands in offline queue",this.offlineQueue.length);let $=this.offlineQueue;this.resetOfflineQueue();let X;while(X=$.shift())this.sendCommand(X.command,X.stream,X.node)}}natMapper($){let X=typeof $==="string"?$:`${$.host}:${$.port}`,Q=null;if(this.options.natMap&&typeof this.options.natMap==="function")Q=this.options.natMap(X);else if(this.options.natMap&&typeof this.options.natMap==="object")Q=this.options.natMap[X];if(Q)return g("NAT mapping %s -> %O",X,Q),Object.assign({},Q);return typeof $==="string"?(0,L0.nodeKeyToRedisOptions)($):$}getInfoFromNode($,X){if(!$)return X(Error("Node is disconnected"));let Q=$.duplicate({enableOfflineQueue:!0,enableReadyCheck:!1,retryStrategy:null,connectionName:(0,L0.getConnectionName)("refresher",this.options.redisOptions&&this.options.redisOptions.connectionName)});Q.on("error",H1.noop),Q.cluster("SLOTS",(0,H1.timeout)((J,Z)=>{if(Q.disconnect(),J)return g("error encountered running CLUSTER.SLOTS: %s",J),X(J);if(this.status==="disconnecting"||this.status==="close"||this.status==="end"){g("ignore CLUSTER.SLOTS results (count: %d) since cluster status is %s",Z.length,this.status),X();return}let Y=[];g("cluster slots result count: %d",Z.length);for(let q=0;q<Z.length;++q){let V=Z[q],H=V[0],w=V[1],W=[];for(let z=2;z<V.length;z++){if(!V[z][0])continue;let B=this.natMapper({host:V[z][0],port:V[z][1]});B.readOnly=z!==2,Y.push(B),W.push(B.host+":"+B.port)}g("cluster slots result [%d]: slots %d~%d served by %s",q,H,w,W);for(let z=H;z<=w;z++)this.slots[z]=W}this._groupsIds=Object.create(null);let S=0;for(let q=0;q<16384;q++){let V=(this.slots[q]||[]).join(";");if(!V.length){this._groupsBySlot[q]=void 0;continue}if(!this._groupsIds[V])this._groupsIds[V]=++S;this._groupsBySlot[q]=this._groupsIds[V]}this.connectionPool.reset(Y),X()},this.options.slotsRefreshTimeout))}invokeReadyDelayedCallbacks($){for(let X of this._readyDelayedCallbacks)process.nextTick(X,$);this._readyDelayedCallbacks=[]}readyCheck($){this.cluster("INFO",(X,Q)=>{if(X)return $(X);if(typeof Q!=="string")return $();let J,Z=Q.split(`\r
|
|
185
|
+
`);for(let Y=0;Y<Z.length;++Y){let S=Z[Y].split(":");if(S[0]==="cluster_state"){J=S[1];break}}if(J==="fail")g("cluster state not ok (%s)",J),$(null,J);else $()})}resolveSrv($){return new Promise((X,Q)=>{this.options.resolveSrv($,(J,Z)=>{if(J)return Q(J);let Y=this,S=(0,L0.groupSrvRecords)(Z),q=Object.keys(S).sort((H,w)=>parseInt(H)-parseInt(w));function V(H){if(!q.length)return Q(H);let w=q[0],W=S[w],z=(0,L0.weightSrvRecords)(W);if(!W.records.length)q.shift();Y.dnsLookup(z.name).then((B)=>X({host:B,port:z.port}),V)}V()})})}dnsLookup($){return new Promise((X,Q)=>{this.options.dnsLookup($,(J,Z)=>{if(J)g("failed to resolve hostname %s to IP: %s",$,J.message),Q(J);else g("resolved hostname %s to IP %s",$,Z),X(Z)})})}async resolveStartupNodeHostnames(){if(!Array.isArray(this.startupNodes)||this.startupNodes.length===0)throw Error("`startupNodes` should contain at least one node.");let $=(0,L0.normalizeNodeOptions)(this.startupNodes),X=(0,L0.getUniqueHostnamesFromOptions)($);if(X.length===0)return $;let Q=await Promise.all(X.map((this.options.useSRVRecords?this.resolveSrv:this.dnsLookup).bind(this))),J=(0,H1.zipMap)(X,Q);return $.map((Z)=>{let Y=J.get(Z.host);if(!Y)return Z;if(this.options.useSRVRecords)return Object.assign({},Z,Y);return Object.assign({},Z,{host:Y})})}createScanStream($,{key:X,options:Q={}}){return new oZ.default({objectMode:!0,key:X,redis:this,command:$,...Q})}}(0,sZ.default)(v0,S7.EventEmitter);(0,nZ.addTransactionSupport)(v0.prototype);q7.default=v0});var A$=I((w7)=>{Object.defineProperty(w7,"__esModule",{value:!0});var JY=a(),ZY=(0,JY.Debug)("AbstractConnector");class V7{constructor($){this.connecting=!1,this.disconnectTimeout=$}check($){return!0}disconnect(){if(this.connecting=!1,this.stream){let $=this.stream,X=setTimeout(()=>{ZY("stream %s:%s still open, destroying it",$.remoteAddress,$.remotePort),$.destroy()},this.disconnectTimeout);$.on("close",()=>clearTimeout(X)),$.end()}}}w7.default=V7});var z7=I((W7)=>{Object.defineProperty(W7,"__esModule",{value:!0});var SY=f("net"),qY=f("tls"),VY=a(),wY=A$();class H7 extends wY.default{constructor($){super($.disconnectTimeout);this.options=$}connect($){let{options:X}=this;this.connecting=!0;let Q;if("path"in X&&X.path)Q={path:X.path};else{if(Q={},"port"in X&&X.port!=null)Q.port=X.port;if("host"in X&&X.host!=null)Q.host=X.host;if("family"in X&&X.family!=null)Q.family=X.family}if(X.tls)Object.assign(Q,X.tls);return new Promise((J,Z)=>{process.nextTick(()=>{if(!this.connecting){Z(Error(VY.CONNECTION_CLOSED_ERROR_MSG));return}try{if(X.tls)this.stream=(0,qY.connect)(Q);else this.stream=(0,SY.createConnection)(Q)}catch(Y){Z(Y);return}this.stream.once("error",(Y)=>{this.firstError=Y}),J(this.stream)})})}}W7.default=H7});var B7=I((U7)=>{Object.defineProperty(U7,"__esModule",{value:!0});function WY($,X){return($.host||"127.0.0.1")===(X.host||"127.0.0.1")&&($.port||26379)===(X.port||26379)}class G7{constructor($){this.cursor=0,this.sentinels=$.slice(0)}next(){let $=this.cursor>=this.sentinels.length;return{done:$,value:$?void 0:this.sentinels[this.cursor++]}}reset($){if($&&this.sentinels.length>1&&this.cursor!==1)this.sentinels.unshift(...this.sentinels.splice(this.cursor-1));this.cursor=0}add($){for(let X=0;X<this.sentinels.length;X++)if(WY($,this.sentinels[X]))return!1;return this.sentinels.push($),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}}U7.default=G7});var K7=I((R7)=>{Object.defineProperty(R7,"__esModule",{value:!0});R7.FailoverDetector=void 0;var GY=a(),u3=(0,GY.Debug)("FailoverDetector"),L7="+switch-master";class j7{constructor($,X){this.isDisconnected=!1,this.connector=$,this.sentinels=X}cleanup(){this.isDisconnected=!0;for(let $ of this.sentinels)$.client.disconnect()}async subscribe(){u3("Starting FailoverDetector");let $=[];for(let X of this.sentinels){let Q=X.client.subscribe(L7).catch((J)=>{u3("Failed to subscribe to failover messages on sentinel %s:%s (%s)",X.address.host||"127.0.0.1",X.address.port||26739,J.message)});$.push(Q),X.client.on("message",(J)=>{if(!this.isDisconnected&&J===L7)this.disconnect()})}await Promise.all($)}disconnect(){this.isDisconnected=!0,u3("Failover detected, disconnecting"),this.connector.disconnect()}}R7.FailoverDetector=j7});var E$=I((I7)=>{Object.defineProperty(I7,"__esModule",{value:!0});I7.SentinelIterator=void 0;var UY=f("net"),b0=a(),BY=f("tls"),M7=B7();I7.SentinelIterator=M7.default;var LY=A$(),jY=m1(),RY=K7(),j0=(0,b0.Debug)("SentinelConnector");class _7 extends LY.default{constructor($){super($.disconnectTimeout);if(this.options=$,this.emitter=null,this.failoverDetector=null,!this.options.sentinels.length)throw Error("Requires at least one sentinel to connect to.");if(!this.options.name)throw Error("Requires the name of master.");this.sentinelIterator=new M7.default(this.options.sentinels)}check($){let X=!$.role||this.options.role===$.role;if(!X)j0("role invalid, expected %s, but got %s",this.options.role,$.role),this.sentinelIterator.next(),this.sentinelIterator.next(),this.sentinelIterator.reset(!0);return X}disconnect(){if(super.disconnect(),this.failoverDetector)this.failoverDetector.cleanup()}connect($){this.connecting=!0,this.retryAttempts=0;let X,Q=async()=>{let J=this.sentinelIterator.next();if(J.done){this.sentinelIterator.reset(!1);let q=typeof this.options.sentinelRetryStrategy==="function"?this.options.sentinelRetryStrategy(++this.retryAttempts):null,V=typeof q!=="number"?"All sentinels are unreachable and retry is disabled.":`All sentinels are unreachable. Retrying from scratch after ${q}ms.`;if(X)V+=` Last error: ${X.message}`;j0(V);let H=Error(V);if(typeof q==="number")return $("error",H),await new Promise((w)=>setTimeout(w,q)),Q();else throw H}let Z=null,Y=null;try{Z=await this.resolve(J.value)}catch(q){Y=q}if(!this.connecting)throw Error(b0.CONNECTION_CLOSED_ERROR_MSG);let S=J.value.host+":"+J.value.port;if(Z){if(j0("resolved: %s:%s from sentinel %s",Z.host,Z.port,S),this.options.enableTLSForSentinelMode&&this.options.tls)Object.assign(Z,this.options.tls),this.stream=(0,BY.connect)(Z),this.stream.once("secureConnect",this.initFailoverDetector.bind(this));else this.stream=(0,UY.createConnection)(Z),this.stream.once("connect",this.initFailoverDetector.bind(this));return this.stream.once("error",(q)=>{this.firstError=q}),this.stream}else{let q=Y?"failed to connect to sentinel "+S+" because "+Y.message:"connected to sentinel "+S+" successfully, but got an invalid reply: "+Z;if(j0(q),$("sentinelError",Error(q)),Y)X=Y;return Q()}};return Q()}async updateSentinels($){if(!this.options.updateSentinels)return;let X=await $.sentinel("sentinels",this.options.name);if(!Array.isArray(X))return;X.map(b0.packObject).forEach((Q)=>{if((Q.flags?Q.flags.split(","):[]).indexOf("disconnected")===-1&&Q.ip&&Q.port){let Z=this.sentinelNatResolve(T7(Q));if(this.sentinelIterator.add(Z))j0("adding sentinel %s:%s",Z.host,Z.port)}}),j0("Updated internal sentinels: %s",this.sentinelIterator)}async resolveMaster($){let X=await $.sentinel("get-master-addr-by-name",this.options.name);return await this.updateSentinels($),this.sentinelNatResolve(Array.isArray(X)?{host:X[0],port:Number(X[1])}:null)}async resolveSlave($){let X=await $.sentinel("slaves",this.options.name);if(!Array.isArray(X))return null;let Q=X.map(b0.packObject).filter((J)=>J.flags&&!J.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(FY(Q,this.options.preferredSlaves))}sentinelNatResolve($){if(!$||!this.options.natMap)return $;let X=`${$.host}:${$.port}`,Q=$;if(typeof this.options.natMap==="function")Q=this.options.natMap(X)||$;else if(typeof this.options.natMap==="object")Q=this.options.natMap[X]||$;return Q}connectToSentinel($,X){return new jY.default({port:$.port||26379,host:$.host,username:this.options.sentinelUsername||null,password:this.options.sentinelPassword||null,family:$.family||("path"in this.options&&this.options.path?void 0:this.options.family),tls:this.options.sentinelTLS,retryStrategy:null,enableReadyCheck:!1,connectTimeout:this.options.connectTimeout,commandTimeout:this.options.sentinelCommandTimeout,...X})}async resolve($){let X=this.connectToSentinel($);X.on("error",KY);try{if(this.options.role==="slave")return await this.resolveSlave(X);else return await this.resolveMaster(X)}finally{X.disconnect()}}async initFailoverDetector(){var $;if(!this.options.failoverDetector)return;this.sentinelIterator.reset(!0);let X=[];while(X.length<this.options.sentinelMaxConnections){let{done:Q,value:J}=this.sentinelIterator.next();if(Q)break;let Z=this.connectToSentinel(J,{lazyConnect:!0,retryStrategy:this.options.sentinelReconnectStrategy});Z.on("reconnecting",()=>{var Y;(Y=this.emitter)===null||Y===void 0||Y.emit("sentinelReconnecting")}),X.push({address:J,client:Z})}if(this.sentinelIterator.reset(!1),this.failoverDetector)this.failoverDetector.cleanup();this.failoverDetector=new RY.FailoverDetector(this,X),await this.failoverDetector.subscribe(),($=this.emitter)===null||$===void 0||$.emit("failoverSubscribed")}}I7.default=_7;function FY($,X){if($.length===0)return null;let Q;if(typeof X==="function")Q=X($);else if(X!==null&&typeof X==="object"){let J=Array.isArray(X)?X:[X];J.sort((Z,Y)=>{if(!Z.prio)Z.prio=1;if(!Y.prio)Y.prio=1;if(Z.prio<Y.prio)return-1;if(Z.prio>Y.prio)return 1;return 0});for(let Z=0;Z<J.length;Z++){for(let Y=0;Y<$.length;Y++){let S=$[Y];if(S.ip===J[Z].ip){if(S.port===J[Z].port){Q=S;break}}}if(Q)break}}if(!Q)Q=(0,b0.sample)($);return T7(Q)}function T7($){return{host:$.ip,port:Number($.port)}}function KY(){}});var C7=I((E7)=>{Object.defineProperty(E7,"__esModule",{value:!0});E7.SentinelConnector=E7.StandaloneConnector=void 0;var _Y=z7();E7.StandaloneConnector=_Y.default;var TY=E$();E7.SentinelConnector=TY.default});var k7=I((N7)=>{Object.defineProperty(N7,"__esModule",{value:!0});var AY=t1();class P7 extends AY.AbortError{constructor($){let X=`Reached the max retries per request limit (which is ${$}). Refer to "maxRetriesPerRequest" option for details.`;super(X);Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}}N7.default=P7});var x7=I((O7)=>{Object.defineProperty(O7,"__esModule",{value:!0});O7.MaxRetriesPerRequestError=void 0;var DY=k7();O7.MaxRetriesPerRequestError=DY.default});var c7=I((Aw,m7)=>{var p3=f("buffer").Buffer,CY=f("string_decoder").StringDecoder,m3=new CY,f7=t1(),PY=f7.ReplyError,NY=f7.ParserError,F1=p3.allocUnsafe(32768),Q1=0,D$=null,h0=0,c3=0;function kY($){let X=$.buffer.length-1;var Q=$.offset,J=0,Z=1;if($.buffer[Q]===45)Z=-1,Q++;while(Q<X){let Y=$.buffer[Q++];if(Y===13)return $.offset=Q+1,Z*J;J=J*10+(Y-48)}}function OY($){let X=$.buffer.length-1;var Q=$.offset,J=0,Z="";if($.buffer[Q]===45)Z+="-",Q++;while(Q<X){var Y=$.buffer[Q++];if(Y===13){if($.offset=Q+1,J!==0)Z+=J;return Z}else if(J>429496728)Z+=J*10+(Y-48),J=0;else if(Y===48&&J===0)Z+=0;else J=J*10+(Y-48)}}function v7($){let{offset:X,buffer:Q}=$,J=Q.length-1;var Z=X;while(Z<J)if(Q[Z++]===13){if($.offset=Z+1,$.optionReturnBuffers===!0)return $.buffer.slice(X,Z-1);return $.buffer.toString("utf8",X,Z-1)}}function b7($){let X=$.buffer.length-1;var Q=$.offset,J=0;while(Q<X){let Z=$.buffer[Q++];if(Z===13)return $.offset=Q+1,J;J=J*10+(Z-48)}}function yY($){if($.optionStringNumbers===!0)return OY($);return kY($)}function xY($){let X=b7($);if(X===void 0)return;if(X<0)return null;let Q=$.offset+X;if(Q+2>$.buffer.length){$.bigStrSize=Q+2,$.totalChunkSize=$.buffer.length,$.bufferCache.push($.buffer);return}let J=$.offset;if($.offset=Q+2,$.optionReturnBuffers===!0)return $.buffer.slice(J,Q);return $.buffer.toString("utf8",J,Q)}function fY($){var X=v7($);if(X!==void 0){if($.optionReturnBuffers===!0)X=X.toString();return new PY(X)}}function vY($,X){let Q=new NY("Protocol error, got "+JSON.stringify(String.fromCharCode(X))+" as reply type byte",JSON.stringify($.buffer),$.offset);$.buffer=null,$.returnFatalError(Q)}function bY($){let X=b7($);if(X===void 0)return;if(X<0)return null;let Q=Array(X);return h7($,Q,0)}function l3($,X,Q){$.arrayCache.push(X),$.arrayPos.push(Q)}function d3($){let X=$.arrayCache.pop();var Q=$.arrayPos.pop();if($.arrayCache.length){let J=d3($);if(J===void 0){l3($,X,Q);return}X[Q++]=J}return h7($,X,Q)}function h7($,X,Q){let J=$.buffer.length;while(Q<X.length){let Z=$.offset;if($.offset>=J){l3($,X,Q);return}let Y=g7($,$.buffer[$.offset++]);if(Y===void 0){if(!($.arrayCache.length||$.bufferCache.length))$.offset=Z;l3($,X,Q);return}X[Q]=Y,Q++}return X}function g7($,X){switch(X){case 36:return xY($);case 43:return v7($);case 42:return bY($);case 58:return yY($);case 45:return fY($);default:return vY($,X)}}function hY(){if(F1.length>51200)if(h0===1||c3>h0*2){let $=Math.floor(F1.length/10),X=$<Q1?Q1:$;Q1=0,F1=F1.slice(X,F1.length)}else c3++,h0--;else clearInterval(D$),h0=0,c3=0,D$=null}function gY($){if(F1.length<$+Q1){let X=$>78643200?2:3;if(Q1>116391936)Q1=52428800;if(F1=p3.allocUnsafe($*X+Q1),Q1=0,h0++,D$===null)D$=setInterval(hY,50)}}function uY($){let{bufferCache:X,offset:Q}=$;var J=X.length,Z=$.bigStrSize-$.totalChunkSize;if($.offset=Z,Z<=2){if(J===2)return X[0].toString("utf8",Q,X[0].length+Z-2);J--,Z=X[X.length-2].length+Z}var Y=m3.write(X[0].slice(Q));for(var S=1;S<J-1;S++)Y+=m3.write(X[S]);return Y+=m3.end(X[S].slice(0,Z-2)),Y}function mY($){let{bufferCache:X,offset:Q}=$,J=$.bigStrSize-Q-2;var Z=X.length,Y=$.bigStrSize-$.totalChunkSize;if($.offset=Y,Y<=2){if(Z===2)return X[0].slice(Q,X[0].length+Y-2);Z--,Y=X[X.length-2].length+Y}gY(J);let S=Q1;X[0].copy(F1,S,Q,X[0].length),Q1+=X[0].length-Q;for(var q=1;q<Z-1;q++)X[q].copy(F1,Q1),Q1+=X[q].length;return X[q].copy(F1,Q1,0,Y-2),Q1+=Y-2,F1.slice(S,Q1)}class u7{constructor($){if(!$)throw TypeError("Options are mandatory.");if(typeof $.returnError!=="function"||typeof $.returnReply!=="function")throw TypeError("The returnReply and returnError options have to be functions.");this.setReturnBuffers(!!$.returnBuffers),this.setStringNumbers(!!$.stringNumbers),this.returnError=$.returnError,this.returnFatalError=$.returnFatalError||$.returnError,this.returnReply=$.returnReply,this.reset()}reset(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]}setReturnBuffers($){if(typeof $!=="boolean")throw TypeError("The returnBuffers argument has to be a boolean");this.optionReturnBuffers=$}setStringNumbers($){if(typeof $!=="boolean")throw TypeError("The stringNumbers argument has to be a boolean");this.optionStringNumbers=$}execute($){if(this.buffer===null)this.buffer=$,this.offset=0;else if(this.bigStrSize===0){let Q=this.buffer.length,J=Q-this.offset,Z=p3.allocUnsafe(J+$.length);if(this.buffer.copy(Z,0,this.offset,Q),$.copy(Z,J,0,$.length),this.buffer=Z,this.offset=0,this.arrayCache.length){let Y=d3(this);if(Y===void 0)return;this.returnReply(Y)}}else if(this.totalChunkSize+$.length>=this.bigStrSize){this.bufferCache.push($);var X=this.optionReturnBuffers?mY(this):uY(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=$,this.arrayCache.length){if(this.arrayCache[0][this.arrayPos[0]++]=X,X=d3(this),X===void 0)return}this.returnReply(X)}else{this.bufferCache.push($),this.totalChunkSize+=$.length;return}while(this.offset<this.buffer.length){let Q=this.offset,J=this.buffer[this.offset++],Z=g7(this,J);if(Z===void 0){if(!(this.arrayCache.length||this.bufferCache.length))this.offset=Q;return}if(J===45)this.returnError(Z);else this.returnReply(Z)}this.buffer=null}}m7.exports=u7});var p7=I((d7)=>{Object.defineProperty(d7,"__esModule",{value:!0});class l7{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add($,X){this.set[i3($)][X]=!0}del($,X){delete this.set[i3($)][X]}channels($){return Object.keys(this.set[i3($)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}}d7.default=l7;function i3($){if($==="unsubscribe")return"subscribe";if($==="punsubscribe")return"psubscribe";if($==="sunsubscribe")return"ssubscribe";return $}});var t7=I((a7)=>{Object.defineProperty(a7,"__esModule",{value:!0});var i7=N1(),lY=a(),dY=c7(),pY=p7(),iY=(0,lY.Debug)("dataHandler");class s7{constructor($,X){this.redis=$;let Q=new dY({stringNumbers:X.stringNumbers,returnBuffers:!0,returnError:(J)=>{this.returnError(J)},returnFatalError:(J)=>{this.returnFatalError(J)},returnReply:(J)=>{this.returnReply(J)}});$.stream.prependListener("data",(J)=>{Q.execute(J)}),$.stream.resume()}returnFatalError($){$.message+=". Please report this.",this.redis.recoverFromFatalError($,$,{offlineQueue:!1})}returnError($){let X=this.shiftCommand($);if(!X)return;if($.command={name:X.command.name,args:X.command.args},X.command.name=="ssubscribe"&&$.message.includes("MOVED")){this.redis.emit("moved");return}this.redis.handleReconnection($,X)}returnReply($){if(this.handleMonitorReply($))return;if(this.handleSubscriberReply($))return;let X=this.shiftCommand($);if(!X)return;if(i7.default.checkFlag("ENTER_SUBSCRIBER_MODE",X.command.name)){if(this.redis.condition.subscriber=new pY.default,this.redis.condition.subscriber.add(X.command.name,$[1].toString()),!o7(X.command,$[2]))this.redis.commandQueue.unshift(X)}else if(i7.default.checkFlag("EXIT_SUBSCRIBER_MODE",X.command.name)){if(!n7(X.command,$[2]))this.redis.commandQueue.unshift(X)}else X.command.resolve($)}handleSubscriberReply($){if(!this.redis.condition.subscriber)return!1;let X=Array.isArray($)?$[0].toString():null;switch(iY('receive reply "%s" in subscriber mode',X),X){case"message":if(this.redis.listeners("message").length>0)this.redis.emit("message",$[1].toString(),$[2]?$[2].toString():"");this.redis.emit("messageBuffer",$[1],$[2]);break;case"pmessage":{let Q=$[1].toString();if(this.redis.listeners("pmessage").length>0)this.redis.emit("pmessage",Q,$[2].toString(),$[3].toString());this.redis.emit("pmessageBuffer",Q,$[2],$[3]);break}case"smessage":{if(this.redis.listeners("smessage").length>0)this.redis.emit("smessage",$[1].toString(),$[2]?$[2].toString():"");this.redis.emit("smessageBuffer",$[1],$[2]);break}case"ssubscribe":case"subscribe":case"psubscribe":{let Q=$[1].toString();this.redis.condition.subscriber.add(X,Q);let J=this.shiftCommand($);if(!J)return;if(!o7(J.command,$[2]))this.redis.commandQueue.unshift(J);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let Q=$[1]?$[1].toString():null;if(Q)this.redis.condition.subscriber.del(X,Q);let J=$[2];if(Number(J)===0)this.redis.condition.subscriber=!1;let Z=this.shiftCommand($);if(!Z)return;if(!n7(Z.command,J))this.redis.commandQueue.unshift(Z);break}default:{let Q=this.shiftCommand($);if(!Q)return;Q.command.resolve($)}}return!0}handleMonitorReply($){if(this.redis.status!=="monitoring")return!1;let X=$.toString();if(X==="OK")return!1;let Q=X.indexOf(" "),J=X.slice(0,Q),Z=X.indexOf('"'),Y=X.slice(Z+1,-1).split('" "').map((q)=>q.replace(/\\"/g,'"')),S=X.slice(Q+2,Z-2).split(" ");return this.redis.emit("monitor",J,Y,S[1],S[0]),!0}shiftCommand($){let X=this.redis.commandQueue.shift();if(!X){let J=Error("Command queue state error. If you can reproduce this, please report it."+($ instanceof Error?` Last error: ${$.message}`:` Last reply: ${$.toString()}`));return this.redis.emit("error",J),null}return X}}a7.default=s7;var c1=new WeakMap;function o7($,X){let Q=c1.has($)?c1.get($):$.args.length;if(Q-=1,Q<=0)return $.resolve(X),c1.delete($),!0;return c1.set($,Q),!1}function n7($,X){let Q=c1.has($)?c1.get($):$.args.length;if(Q===0){if(Number(X)===0)return c1.delete($),$.resolve(X),!0;return!1}if(Q-=1,Q<=0)return $.resolve(X),!0;return c1.set($,Q),!1}});var e7=I((r7)=>{Object.defineProperty(r7,"__esModule",{value:!0});r7.readyHandler=r7.errorHandler=r7.closeHandler=r7.connectHandler=void 0;var nY=t1(),sY=N1(),aY=x7(),k1=a(),tY=t7(),t=(0,k1.Debug)("connection");function rY($){return function(){$.setStatus("connect"),$.resetCommandQueue();let X=!1,{connectionEpoch:Q}=$;if($.condition.auth)$.auth($.condition.auth,function(J){if(Q!==$.connectionEpoch)return;if(J)if(J.message.indexOf("no password is set")!==-1)console.warn("[WARN] Redis server does not require a password, but a password was supplied.");else if(J.message.indexOf("without any password configured for the default user")!==-1)console.warn("[WARN] This Redis server's `default` user does not require a password, but a password was supplied");else if(J.message.indexOf("wrong number of arguments for 'auth' command")!==-1)console.warn(`[ERROR] The server returned "wrong number of arguments for 'auth' command". You are probably passing both username and password to Redis version 5 or below. You should only pass the 'password' option for Redis version 5 and under.`);else X=!0,$.recoverFromFatalError(J,J)});if($.condition.select)$.select($.condition.select).catch((J)=>{$.silentEmit("error",J)});if(!$.options.enableReadyCheck)r7.readyHandler($)();if(new tY.default($,{stringNumbers:$.options.stringNumbers}),$.options.enableReadyCheck)$._readyCheck(function(J,Z){if(Q!==$.connectionEpoch)return;if(J){if(!X)$.recoverFromFatalError(Error("Ready check failed: "+J.message),J)}else if($.connector.check(Z))r7.readyHandler($)();else $.disconnect(!0)})}}r7.connectHandler=rY;function o3($){let X=new nY.AbortError("Command aborted due to connection close");return X.command={name:$.name,args:$.args},X}function eY($){var X;let Q=0;for(let J=0;J<$.length;){let Z=(X=$.peekAt(J))===null||X===void 0?void 0:X.command,Y=Z.pipelineIndex;if(Y===void 0||Y===0)Q=0;if(Y!==void 0&&Y!==Q++){$.remove(J,1),Z.reject(o3(Z));continue}J++}}function $S($){var X;for(let Q=0;Q<$.length;){let J=(X=$.peekAt(Q))===null||X===void 0?void 0:X.command;if(J.name==="multi")break;if(J.name==="exec"){$.remove(Q,1),J.reject(o3(J));break}if(J.inTransaction)$.remove(Q,1),J.reject(o3(J));else Q++}}function XS($){return function(){let Q=$.status;if($.setStatus("close"),$.commandQueue.length)eY($.commandQueue);if($.offlineQueue.length)$S($.offlineQueue);if(Q==="ready"){if(!$.prevCondition)$.prevCondition=$.condition;if($.commandQueue.length)$.prevCommandQueue=$.commandQueue}if($.manuallyClosing)return $.manuallyClosing=!1,t("skip reconnecting since the connection is manually closed."),X();if(typeof $.options.retryStrategy!=="function")return t("skip reconnecting because `retryStrategy` is not a function"),X();let J=$.options.retryStrategy(++$.retryAttempts);if(typeof J!=="number")return t("skip reconnecting because `retryStrategy` doesn't return a number"),X();t("reconnect in %sms",J),$.setStatus("reconnecting",J),$.reconnectTimeout=setTimeout(function(){$.reconnectTimeout=null,$.connect().catch(k1.noop)},J);let{maxRetriesPerRequest:Z}=$.options;if(typeof Z==="number"){if(Z<0)t("maxRetriesPerRequest is negative, ignoring...");else if($.retryAttempts%(Z+1)===0)t("reach maxRetriesPerRequest limitation, flushing command queue..."),$.flushQueue(new aY.MaxRetriesPerRequestError(Z))}};function X(){$.setStatus("end"),$.flushQueue(Error(k1.CONNECTION_CLOSED_ERROR_MSG))}}r7.closeHandler=XS;function QS($){return function(X){t("error: %s",X),$.silentEmit("error",X)}}r7.errorHandler=QS;function JS($){return function(){var X,Q;if($.setStatus("ready"),$.retryAttempts=0,$.options.monitor){$.call("monitor").then(()=>$.setStatus("monitoring"),(Y)=>$.emit("error",Y));let{sendCommand:Z}=$;$.sendCommand=function(Y){if(sY.default.checkFlag("VALID_IN_MONITOR_MODE",Y.name))return Z.call($,Y);return Y.reject(Error("Connection is in monitoring mode, can't process commands.")),Y.promise},$.once("close",function(){delete $.sendCommand});return}let J=$.prevCondition?$.prevCondition.select:$.condition.select;if($.options.connectionName)t("set the connection name [%s]",$.options.connectionName),$.client("setname",$.options.connectionName).catch(k1.noop);if(!((X=$.options)===null||X===void 0?void 0:X.disableClientInfo)){t("set the client info");let Z=null;(0,k1.getPackageMeta)().then((Y)=>{Z=Y===null||Y===void 0?void 0:Y.version}).catch(k1.noop).finally(()=>{$.client("SETINFO","LIB-VER",Z).catch(k1.noop)}),$.client("SETINFO","LIB-NAME",((Q=$.options)===null||Q===void 0?void 0:Q.clientInfoTag)?`ioredis(${$.options.clientInfoTag})`:"ioredis").catch(k1.noop)}if($.options.readOnly)t("set the connection to readonly mode"),$.readonly().catch(k1.noop);if($.prevCondition){let Z=$.prevCondition;if($.prevCondition=null,Z.subscriber&&$.options.autoResubscribe){if($.condition.select!==J)t("connect to db [%d]",J),$.select(J);let Y=Z.subscriber.channels("subscribe");if(Y.length)t("subscribe %d channels",Y.length),$.subscribe(Y);let S=Z.subscriber.channels("psubscribe");if(S.length)t("psubscribe %d channels",S.length),$.psubscribe(S);let q=Z.subscriber.channels("ssubscribe");if(q.length){t("ssubscribe %s",q.length);for(let V of q)$.ssubscribe(V)}}}if($.prevCommandQueue)if($.options.autoResendUnfulfilledCommands){t("resend %d unfulfilled commands",$.prevCommandQueue.length);while($.prevCommandQueue.length>0){let Z=$.prevCommandQueue.shift();if(Z.select!==$.condition.select&&Z.command.name!=="select")$.select(Z.select);$.sendCommand(Z.command,Z.stream)}}else $.prevCommandQueue=null;if($.offlineQueue.length){t("send %d commands in offline queue",$.offlineQueue.length);let Z=$.offlineQueue;$.resetOfflineQueue();while(Z.length>0){let Y=Z.shift();if(Y.select!==$.condition.select&&Y.command.name!=="select")$.select(Y.select);$.sendCommand(Y.command,Y.stream)}}if($.condition.select!==J)t("connect to db [%d]",J),$.select(J)}}r7.readyHandler=JS});var QX=I(($X)=>{Object.defineProperty($X,"__esModule",{value:!0});$X.DEFAULT_REDIS_OPTIONS=void 0;$X.DEFAULT_REDIS_OPTIONS={port:6379,host:"localhost",family:4,connectTimeout:1e4,disconnectTimeout:2000,retryStrategy:function($){return Math.min($*50,2000)},keepAlive:0,noDelay:!0,connectionName:null,disableClientInfo:!1,clientInfoTag:void 0,sentinels:null,name:null,role:"master",sentinelRetryStrategy:function($){return Math.min($*10,1000)},sentinelReconnectStrategy:function(){return 60000},natMap:null,enableTLSForSentinelMode:!1,updateSentinels:!0,failoverDetector:!1,username:null,password:null,db:0,enableOfflineQueue:!0,enableReadyCheck:!0,autoResubscribe:!0,autoResendUnfulfilledCommands:!0,lazyConnect:!1,keyPrefix:"",reconnectOnError:null,readOnly:!1,stringNumbers:!1,maxRetriesPerRequest:20,maxLoadingRetryTime:1e4,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],sentinelMaxConnections:10}});var m1=I((SX)=>{Object.defineProperty(SX,"__esModule",{value:!0});var JX=w0(),YX=f("events"),n3=b1(),qS=g3(),s3=N1(),VS=C7(),wS=E$(),l1=e7(),HS=QX(),WS=R$(),zS=O3(),Q0=a(),GS=y3(),US=M$(),d1=z$(),ZX=T$(),p1=(0,Q0.Debug)("redis");class A1 extends US.default{constructor($,X,Q){super();if(this.status="wait",this.isCluster=!1,this.reconnectTimeout=null,this.connectionEpoch=0,this.retryAttempts=0,this.manuallyClosing=!1,this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this.parseOptions($,X,Q),YX.EventEmitter.call(this),this.resetCommandQueue(),this.resetOfflineQueue(),this.options.Connector)this.connector=new this.options.Connector(this.options);else if(this.options.sentinels){let J=new wS.default(this.options);J.emitter=this,this.connector=J}else this.connector=new VS.StandaloneConnector(this.options);if(this.options.scripts)Object.entries(this.options.scripts).forEach(([J,Z])=>{this.defineCommand(J,Z)});if(this.options.lazyConnect)this.setStatus("wait");else this.connect().catch(d1.noop)}static createClient(...$){return new A1(...$)}get autoPipelineQueueSize(){let $=0;for(let X of this._autoPipelines.values())$+=X.length;return $}connect($){let X=new Promise((Q,J)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){J(Error("Redis is already connecting/connected"));return}this.connectionEpoch+=1,this.setStatus("connecting");let{options:Z}=this;this.condition={select:Z.db,auth:Z.username?[Z.username,Z.password]:Z.password,subscriber:!1};let Y=this;(0,n3.default)(this.connector.connect(function(S,q){Y.silentEmit(S,q)}),function(S,q){if(S){Y.flushQueue(S),Y.silentEmit("error",S),J(S),Y.setStatus("end");return}let V=Z.tls?"secureConnect":"connect";if("sentinels"in Z&&Z.sentinels&&!Z.enableTLSForSentinelMode)V="connect";if(Y.stream=q,Z.noDelay)q.setNoDelay(!0);if(typeof Z.keepAlive==="number")if(q.connecting)q.once(V,()=>{q.setKeepAlive(!0,Z.keepAlive)});else q.setKeepAlive(!0,Z.keepAlive);if(q.connecting){if(q.once(V,l1.connectHandler(Y)),Z.connectTimeout){let W=!1;q.setTimeout(Z.connectTimeout,function(){if(W)return;q.setTimeout(0),q.destroy();let z=Error("connect ETIMEDOUT");z.errorno="ETIMEDOUT",z.code="ETIMEDOUT",z.syscall="connect",l1.errorHandler(Y)(z)}),q.once(V,function(){W=!0,q.setTimeout(0)})}}else if(q.destroyed){let W=Y.connector.firstError;if(W)process.nextTick(()=>{l1.errorHandler(Y)(W)});process.nextTick(l1.closeHandler(Y))}else process.nextTick(l1.connectHandler(Y));if(!q.destroyed)q.once("error",l1.errorHandler(Y)),q.once("close",l1.closeHandler(Y));let H=function(){Y.removeListener("close",w),Q()};var w=function(){Y.removeListener("ready",H),J(Error(Q0.CONNECTION_CLOSED_ERROR_MSG))};Y.once("ready",H),Y.once("close",w)})});return(0,n3.default)(X,$)}disconnect($=!1){if(!$)this.manuallyClosing=!0;if(this.reconnectTimeout&&!$)clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null;if(this.status==="wait")l1.closeHandler(this)();else this.connector.disconnect()}end(){this.disconnect()}duplicate($){return new A1({...this.options,...$})}get mode(){var $;return this.options.monitor?"monitor":(($=this.condition)===null||$===void 0?void 0:$.subscriber)?"subscriber":"normal"}monitor($){let X=this.duplicate({monitor:!0,lazyConnect:!1});return(0,n3.default)(new Promise(function(Q,J){X.once("error",J),X.once("monitoring",function(){Q(X)})}),$)}sendCommand($,X){var Q,J;if(this.status==="wait")this.connect().catch(d1.noop);if(this.status==="end")return $.reject(Error(Q0.CONNECTION_CLOSED_ERROR_MSG)),$.promise;if(((Q=this.condition)===null||Q===void 0?void 0:Q.subscriber)&&!s3.default.checkFlag("VALID_IN_SUBSCRIBER_MODE",$.name))return $.reject(Error("Connection in subscriber mode, only subscriber commands may be used")),$.promise;if(typeof this.options.commandTimeout==="number")$.setTimeout(this.options.commandTimeout);let Z=this.status==="ready"||!X&&this.status==="connect"&&(0,JX.exists)($.name)&&(0,JX.hasFlag)($.name,"loading");if(!this.stream)Z=!1;else if(!this.stream.writable)Z=!1;else if(this.stream._writableState&&this.stream._writableState.ended)Z=!1;if(!Z){if(!this.options.enableOfflineQueue)return $.reject(Error("Stream isn't writeable and enableOfflineQueue options is false")),$.promise;if($.name==="quit"&&this.offlineQueue.length===0)return this.disconnect(),$.resolve(Buffer.from("OK")),$.promise;if(p1.enabled)p1("queue command[%s]: %d -> %s(%o)",this._getDescription(),this.condition.select,$.name,$.args);this.offlineQueue.push({command:$,stream:X,select:this.condition.select})}else{if(p1.enabled)p1("write command[%s]: %d -> %s(%o)",this._getDescription(),(J=this.condition)===null||J===void 0?void 0:J.select,$.name,$.args);if(X)if("isPipeline"in X&&X.isPipeline)X.write($.toWritable(X.destination.redis.stream));else X.write($.toWritable(X));else this.stream.write($.toWritable(this.stream));if(this.commandQueue.push({command:$,stream:X,select:this.condition.select}),s3.default.checkFlag("WILL_DISCONNECT",$.name))this.manuallyClosing=!0;if(this.options.socketTimeout!==void 0&&this.socketTimeoutTimer===void 0)this.setSocketTimeout()}if($.name==="select"&&(0,Q0.isInt)($.args[0])){let Y=parseInt($.args[0],10);if(this.condition.select!==Y)this.condition.select=Y,this.emit("select",Y),p1("switch to db [%d]",this.condition.select)}return $.promise}setSocketTimeout(){this.socketTimeoutTimer=setTimeout(()=>{this.stream.destroy(Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`)),this.socketTimeoutTimer=void 0},this.options.socketTimeout),this.stream.once("data",()=>{if(clearTimeout(this.socketTimeoutTimer),this.socketTimeoutTimer=void 0,this.commandQueue.length===0)return;this.setSocketTimeout()})}scanStream($){return this.createScanStream("scan",{options:$})}scanBufferStream($){return this.createScanStream("scanBuffer",{options:$})}sscanStream($,X){return this.createScanStream("sscan",{key:$,options:X})}sscanBufferStream($,X){return this.createScanStream("sscanBuffer",{key:$,options:X})}hscanStream($,X){return this.createScanStream("hscan",{key:$,options:X})}hscanBufferStream($,X){return this.createScanStream("hscanBuffer",{key:$,options:X})}zscanStream($,X){return this.createScanStream("zscan",{key:$,options:X})}zscanBufferStream($,X){return this.createScanStream("zscanBuffer",{key:$,options:X})}silentEmit($,X){let Q;if($==="error"){if(Q=X,this.status==="end")return;if(this.manuallyClosing){if(Q instanceof Error&&(Q.message===Q0.CONNECTION_CLOSED_ERROR_MSG||Q.syscall==="connect"||Q.syscall==="read"))return}}if(this.listeners($).length>0)return this.emit.apply(this,arguments);if(Q&&Q instanceof Error)console.error("[ioredis] Unhandled error event:",Q.stack);return!1}recoverFromFatalError($,X,Q){this.flushQueue(X,Q),this.silentEmit("error",X),this.disconnect(!0)}handleReconnection($,X){var Q;let J=!1;if(this.options.reconnectOnError)J=this.options.reconnectOnError($);switch(J){case 1:case!0:if(this.status!=="reconnecting")this.disconnect(!0);X.command.reject($);break;case 2:if(this.status!=="reconnecting")this.disconnect(!0);if(((Q=this.condition)===null||Q===void 0?void 0:Q.select)!==X.select&&X.command.name!=="select")this.select(X.select);this.sendCommand(X.command);break;default:X.command.reject($)}}_getDescription(){let $;if("path"in this.options&&this.options.path)$=this.options.path;else if(this.stream&&this.stream.remoteAddress&&this.stream.remotePort)$=this.stream.remoteAddress+":"+this.stream.remotePort;else if("host"in this.options&&this.options.host)$=this.options.host+":"+this.options.port;else $="";if(this.options.connectionName)$+=` (${this.options.connectionName})`;return $}resetCommandQueue(){this.commandQueue=new ZX}resetOfflineQueue(){this.offlineQueue=new ZX}parseOptions(...$){let X={},Q=!1;for(let J=0;J<$.length;++J){let Z=$[J];if(Z===null||typeof Z>"u")continue;if(typeof Z==="object")(0,d1.defaults)(X,Z);else if(typeof Z==="string"){if((0,d1.defaults)(X,(0,Q0.parseURL)(Z)),Z.startsWith("rediss://"))Q=!0}else if(typeof Z==="number")X.port=Z;else throw Error("Invalid argument "+Z)}if(Q)(0,d1.defaults)(X,{tls:!0});if((0,d1.defaults)(X,A1.defaultOptions),typeof X.port==="string")X.port=parseInt(X.port,10);if(typeof X.db==="string")X.db=parseInt(X.db,10);this.options=(0,Q0.resolveTLSProfile)(X)}setStatus($,X){if(p1.enabled)p1("status[%s]: %s -> %s",this._getDescription(),this.status||"[empty]",$);this.status=$,process.nextTick(this.emit.bind(this,$,X))}createScanStream($,{key:X,options:Q={}}){return new WS.default({objectMode:!0,key:X,redis:this,command:$,...Q})}flushQueue($,X){X=(0,d1.defaults)({},X,{offlineQueue:!0,commandQueue:!0});let Q;if(X.offlineQueue)while(Q=this.offlineQueue.shift())Q.command.reject($);if(X.commandQueue){if(this.commandQueue.length>0){if(this.stream)this.stream.removeAllListeners("data");while(Q=this.commandQueue.shift())Q.command.reject($)}}}_readyCheck($){let X=this;this.info(function(Q,J){if(Q){if(Q.message&&Q.message.includes("NOPERM"))return console.warn(`Skipping the ready check because INFO command fails: "${Q.message}". You can disable ready check with "enableReadyCheck". More: https://github.com/luin/ioredis/wiki/Disable-ready-check.`),$(null,{});return $(Q)}if(typeof J!=="string")return $(null,J);let Z={},Y=J.split(`\r
|
|
186
|
+
`);for(let S=0;S<Y.length;++S){let[q,...V]=Y[S].split(":"),H=V.join(":");if(H)Z[q]=H}if(!Z.loading||Z.loading==="0")$(null,Z);else{let S=(Z.loading_eta_seconds||1)*1000,q=X.options.maxLoadingRetryTime&&X.options.maxLoadingRetryTime<S?X.options.maxLoadingRetryTime:S;p1("Redis server still loading, trying again in "+q+"ms"),setTimeout(function(){X._readyCheck($)},q)}}).catch(d1.noop)}}A1.Cluster=qS.default;A1.Command=s3.default;A1.defaultOptions=HS.DEFAULT_REDIS_OPTIONS;(0,GS.default)(A1,YX.EventEmitter);(0,zS.addTransactionSupport)(A1.prototype);SX.default=A1});var wX=I((J1,VX)=>{Object.defineProperty(J1,"__esModule",{value:!0});J1.print=J1.ReplyError=J1.SentinelIterator=J1.SentinelConnector=J1.AbstractConnector=J1.Pipeline=J1.ScanStream=J1.Command=J1.Cluster=J1.Redis=J1.default=void 0;J1=VX.exports=m1().default;var LS=m1();Object.defineProperty(J1,"default",{enumerable:!0,get:function(){return LS.default}});var jS=m1();Object.defineProperty(J1,"Redis",{enumerable:!0,get:function(){return jS.default}});var RS=g3();Object.defineProperty(J1,"Cluster",{enumerable:!0,get:function(){return RS.default}});var FS=N1();Object.defineProperty(J1,"Command",{enumerable:!0,get:function(){return FS.default}});var KS=R$();Object.defineProperty(J1,"ScanStream",{enumerable:!0,get:function(){return KS.default}});var MS=P3();Object.defineProperty(J1,"Pipeline",{enumerable:!0,get:function(){return MS.default}});var _S=A$();Object.defineProperty(J1,"AbstractConnector",{enumerable:!0,get:function(){return _S.default}});var qX=E$();Object.defineProperty(J1,"SentinelConnector",{enumerable:!0,get:function(){return qX.default}});Object.defineProperty(J1,"SentinelIterator",{enumerable:!0,get:function(){return qX.SentinelIterator}});J1.ReplyError=t1().ReplyError;Object.defineProperty(J1,"Promise",{get(){return console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used."),Promise},set($){console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used.")}});function TS($,X){if($)console.log("Error: "+$);else console.log("Reply: "+X)}J1.print=TS});var GX=I(()=>{/*! *****************************************************************************
|
|
187
|
+
Copyright (C) Microsoft. All rights reserved.
|
|
188
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
189
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
190
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
191
|
+
|
|
192
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
193
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
194
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
195
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
196
|
+
|
|
197
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
198
|
+
and limitations under the License.
|
|
199
|
+
***************************************************************************** */var zX;(function($){(function(X){var Q=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:q(),J=Z($);if(typeof Q.Reflect<"u")J=Z(Q.Reflect,J);if(X(J,Q),typeof Q.Reflect>"u")Q.Reflect=$;function Z(V,H){return function(w,W){if(Object.defineProperty(V,w,{configurable:!0,writable:!0,value:W}),H)H(w,W)}}function Y(){try{return Function("return this;")()}catch(V){}}function S(){try{return(0,eval)("(function() { return this; })()")}catch(V){}}function q(){return Y()||S()}})(function(X,Q){var J=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",Y=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",S=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",q=typeof Object.create==="function",V={__proto__:[]}instanceof Array,H=!q&&!V,w={create:q?function(){return r$(Object.create(null))}:V?function(){return r$({__proto__:null})}:function(){return r$({})},has:H?function(G,U){return J.call(G,U)}:function(G,U){return U in G},get:H?function(G,U){return J.call(G,U)?G[U]:void 0}:function(G,U){return G[U]}},W=Object.getPrototypeOf(Function),z=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:M8(),B=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:_8(),j=typeof WeakMap==="function"?WeakMap:T8(),K=Z?Symbol.for("@reflect-metadata:registry"):void 0,R=R8(),C=F8(R);function N(G,U,L,F){if(!P(L)){if(!D4(G))throw TypeError();if(!u(U))throw TypeError();if(!u(F)&&!P(F)&&!q0(F))throw TypeError();if(q0(F))F=void 0;return L=T1(L),W8(G,U,L,F)}else{if(!D4(G))throw TypeError();if(!C4(U))throw TypeError();return H8(G,U)}}X("decorate",N);function D(G,U){function L(F,E){if(!u(F))throw TypeError();if(!P(E)&&!L8(E))throw TypeError();_4(G,U,F,E)}return L}X("metadata",D);function k(G,U,L,F){if(!u(L))throw TypeError();if(!P(F))F=T1(F);return _4(G,U,L,F)}X("defineMetadata",k);function q1(G,U,L){if(!u(U))throw TypeError();if(!P(L))L=T1(L);return F4(G,U,L)}X("hasMetadata",q1);function X1(G,U,L){if(!u(U))throw TypeError();if(!P(L))L=T1(L);return s$(G,U,L)}X("hasOwnMetadata",X1);function v1(G,U,L){if(!u(U))throw TypeError();if(!P(L))L=T1(L);return K4(G,U,L)}X("getMetadata",v1);function j1(G,U,L){if(!u(U))throw TypeError();if(!P(L))L=T1(L);return M4(G,U,L)}X("getOwnMetadata",j1);function s1(G,U){if(!u(G))throw TypeError();if(!P(U))U=T1(U);return T4(G,U)}X("getMetadataKeys",s1);function R4(G,U){if(!u(G))throw TypeError();if(!P(U))U=T1(U);return I4(G,U)}X("getOwnMetadataKeys",R4);function w8(G,U,L){if(!u(U))throw TypeError();if(!P(L))L=T1(L);if(!u(U))throw TypeError();if(!P(L))L=T1(L);var F=I0(U,L,!1);if(P(F))return!1;return F.OrdinaryDeleteMetadata(G,U,L)}X("deleteMetadata",w8);function H8(G,U){for(var L=G.length-1;L>=0;--L){var F=G[L],E=F(U);if(!P(E)&&!q0(E)){if(!C4(E))throw TypeError();U=E}}return U}function W8(G,U,L,F){for(var E=G.length-1;E>=0;--E){var m=G[E],d=m(U,L,F);if(!P(d)&&!q0(d)){if(!u(d))throw TypeError();F=d}}return F}function F4(G,U,L){var F=s$(G,U,L);if(F)return!0;var E=t$(U);if(!q0(E))return F4(G,E,L);return!1}function s$(G,U,L){var F=I0(U,L,!1);if(P(F))return!1;return E4(F.OrdinaryHasOwnMetadata(G,U,L))}function K4(G,U,L){var F=s$(G,U,L);if(F)return M4(G,U,L);var E=t$(U);if(!q0(E))return K4(G,E,L);return}function M4(G,U,L){var F=I0(U,L,!1);if(P(F))return;return F.OrdinaryGetOwnMetadata(G,U,L)}function _4(G,U,L,F){var E=I0(L,F,!0);E.OrdinaryDefineOwnMetadata(G,U,L,F)}function T4(G,U){var L=I4(G,U),F=t$(G);if(F===null)return L;var E=T4(F,U);if(E.length<=0)return L;if(L.length<=0)return E;var m=new B,d=[];for(var O=0,M=L;O<M.length;O++){var _=M[O],T=m.has(_);if(!T)m.add(_),d.push(_)}for(var A=0,y=E;A<y.length;A++){var _=y[A],T=m.has(_);if(!T)m.add(_),d.push(_)}return d}function I4(G,U){var L=I0(G,U,!1);if(!L)return[];return L.OrdinaryOwnMetadataKeys(G,U)}function A4(G){if(G===null)return 1;switch(typeof G){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return G===null?1:6;default:return 6}}function P(G){return G===void 0}function q0(G){return G===null}function z8(G){return typeof G==="symbol"}function u(G){return typeof G==="object"?G!==null:typeof G==="function"}function G8(G,U){switch(A4(G)){case 0:return G;case 1:return G;case 2:return G;case 3:return G;case 4:return G;case 5:return G}var L=U===3?"string":U===5?"number":"default",F=P4(G,Y);if(F!==void 0){var E=F.call(G,L);if(u(E))throw TypeError();return E}return U8(G,L==="default"?"number":L)}function U8(G,U){if(U==="string"){var L=G.toString;if(V0(L)){var F=L.call(G);if(!u(F))return F}var E=G.valueOf;if(V0(E)){var F=E.call(G);if(!u(F))return F}}else{var E=G.valueOf;if(V0(E)){var F=E.call(G);if(!u(F))return F}var m=G.toString;if(V0(m)){var F=m.call(G);if(!u(F))return F}}throw TypeError()}function E4(G){return!!G}function B8(G){return""+G}function T1(G){var U=G8(G,3);if(z8(U))return U;return B8(U)}function D4(G){return Array.isArray?Array.isArray(G):G instanceof Object?G instanceof Array:Object.prototype.toString.call(G)==="[object Array]"}function V0(G){return typeof G==="function"}function C4(G){return typeof G==="function"}function L8(G){switch(A4(G)){case 3:return!0;case 4:return!0;default:return!1}}function a$(G,U){return G===U||G!==G&&U!==U}function P4(G,U){var L=G[U];if(L===void 0||L===null)return;if(!V0(L))throw TypeError();return L}function N4(G){var U=P4(G,S);if(!V0(U))throw TypeError();var L=U.call(G);if(!u(L))throw TypeError();return L}function k4(G){return G.value}function O4(G){var U=G.next();return U.done?!1:U}function y4(G){var U=G.return;if(U)U.call(G)}function t$(G){var U=Object.getPrototypeOf(G);if(typeof G!=="function"||G===W)return U;if(U!==W)return U;var L=G.prototype,F=L&&Object.getPrototypeOf(L);if(F==null||F===Object.prototype)return U;var E=F.constructor;if(typeof E!=="function")return U;if(E===G)return U;return E}function j8(){var G;if(!P(K)&&typeof Q.Reflect<"u"&&!(K in Q.Reflect)&&typeof Q.Reflect.defineMetadata==="function")G=K8(Q.Reflect);var U,L,F,E=new j,m={registerProvider:d,getProvider:M,setProvider:T};return m;function d(A){if(!Object.isExtensible(m))throw Error("Cannot add provider to a frozen registry.");switch(!0){case G===A:break;case P(U):U=A;break;case U===A:break;case P(L):L=A;break;case L===A:break;default:if(F===void 0)F=new B;F.add(A);break}}function O(A,y){if(!P(U)){if(U.isProviderFor(A,y))return U;if(!P(L)){if(L.isProviderFor(A,y))return U;if(!P(F)){var v=N4(F);while(!0){var c=O4(v);if(!c)return;var R1=k4(c);if(R1.isProviderFor(A,y))return y4(v),R1}}}}if(!P(G)&&G.isProviderFor(A,y))return G;return}function M(A,y){var v=E.get(A),c;if(!P(v))c=v.get(y);if(!P(c))return c;if(c=O(A,y),!P(c)){if(P(v))v=new z,E.set(A,v);v.set(y,c)}return c}function _(A){if(P(A))throw TypeError();return U===A||L===A||!P(F)&&F.has(A)}function T(A,y,v){if(!_(v))throw Error("Metadata provider not registered.");var c=M(A,y);if(c!==v){if(!P(c))return!1;var R1=E.get(A);if(P(R1))R1=new z,E.set(A,R1);R1.set(y,v)}return!0}}function R8(){var G;if(!P(K)&&u(Q.Reflect)&&Object.isExtensible(Q.Reflect))G=Q.Reflect[K];if(P(G))G=j8();if(!P(K)&&u(Q.Reflect)&&Object.isExtensible(Q.Reflect))Object.defineProperty(Q.Reflect,K,{enumerable:!1,configurable:!1,writable:!1,value:G});return G}function F8(G){var U=new j,L={isProviderFor:function(_,T){var A=U.get(_);if(P(A))return!1;return A.has(T)},OrdinaryDefineOwnMetadata:d,OrdinaryHasOwnMetadata:E,OrdinaryGetOwnMetadata:m,OrdinaryOwnMetadataKeys:O,OrdinaryDeleteMetadata:M};return R.registerProvider(L),L;function F(_,T,A){var y=U.get(_),v=!1;if(P(y)){if(!A)return;y=new z,U.set(_,y),v=!0}var c=y.get(T);if(P(c)){if(!A)return;if(c=new z,y.set(T,c),!G.setProvider(_,T,L)){if(y.delete(T),v)U.delete(_);throw Error("Wrong provider for target.")}}return c}function E(_,T,A){var y=F(T,A,!1);if(P(y))return!1;return E4(y.has(_))}function m(_,T,A){var y=F(T,A,!1);if(P(y))return;return y.get(_)}function d(_,T,A,y){var v=F(A,y,!0);v.set(_,T)}function O(_,T){var A=[],y=F(_,T,!1);if(P(y))return A;var v=y.keys(),c=N4(v),R1=0;while(!0){var x4=O4(c);if(!x4)return A.length=R1,A;var I8=k4(x4);try{A[R1]=I8}catch(A8){try{y4(c)}finally{throw A8}}R1++}}function M(_,T,A){var y=F(T,A,!1);if(P(y))return!1;if(!y.delete(_))return!1;if(y.size===0){var v=U.get(T);if(!P(v)){if(v.delete(A),v.size===0)U.delete(v)}}return!0}}function K8(G){var{defineMetadata:U,hasOwnMetadata:L,getOwnMetadata:F,getOwnMetadataKeys:E,deleteMetadata:m}=G,d=new j,O={isProviderFor:function(M,_){var T=d.get(M);if(!P(T)&&T.has(_))return!0;if(E(M,_).length){if(P(T))T=new B,d.set(M,T);return T.add(_),!0}return!1},OrdinaryDefineOwnMetadata:U,OrdinaryHasOwnMetadata:L,OrdinaryGetOwnMetadata:F,OrdinaryOwnMetadataKeys:E,OrdinaryDeleteMetadata:m};return O}function I0(G,U,L){var F=R.getProvider(G,U);if(!P(F))return F;if(L){if(R.setProvider(G,U,C))return C;throw Error("Illegal state.")}return}function M8(){var G={},U=[],L=function(){function O(M,_,T){this._index=0,this._keys=M,this._values=_,this._selector=T}return O.prototype["@@iterator"]=function(){return this},O.prototype[S]=function(){return this},O.prototype.next=function(){var M=this._index;if(M>=0&&M<this._keys.length){var _=this._selector(this._keys[M],this._values[M]);if(M+1>=this._keys.length)this._index=-1,this._keys=U,this._values=U;else this._index++;return{value:_,done:!1}}return{value:void 0,done:!0}},O.prototype.throw=function(M){if(this._index>=0)this._index=-1,this._keys=U,this._values=U;throw M},O.prototype.return=function(M){if(this._index>=0)this._index=-1,this._keys=U,this._values=U;return{value:M,done:!0}},O}(),F=function(){function O(){this._keys=[],this._values=[],this._cacheKey=G,this._cacheIndex=-2}return Object.defineProperty(O.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),O.prototype.has=function(M){return this._find(M,!1)>=0},O.prototype.get=function(M){var _=this._find(M,!1);return _>=0?this._values[_]:void 0},O.prototype.set=function(M,_){var T=this._find(M,!0);return this._values[T]=_,this},O.prototype.delete=function(M){var _=this._find(M,!1);if(_>=0){var T=this._keys.length;for(var A=_+1;A<T;A++)this._keys[A-1]=this._keys[A],this._values[A-1]=this._values[A];if(this._keys.length--,this._values.length--,a$(M,this._cacheKey))this._cacheKey=G,this._cacheIndex=-2;return!0}return!1},O.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=G,this._cacheIndex=-2},O.prototype.keys=function(){return new L(this._keys,this._values,E)},O.prototype.values=function(){return new L(this._keys,this._values,m)},O.prototype.entries=function(){return new L(this._keys,this._values,d)},O.prototype["@@iterator"]=function(){return this.entries()},O.prototype[S]=function(){return this.entries()},O.prototype._find=function(M,_){if(!a$(this._cacheKey,M)){this._cacheIndex=-1;for(var T=0;T<this._keys.length;T++)if(a$(this._keys[T],M)){this._cacheIndex=T;break}}if(this._cacheIndex<0&&_)this._cacheIndex=this._keys.length,this._keys.push(M),this._values.push(void 0);return this._cacheIndex},O}();return F;function E(O,M){return O}function m(O,M){return M}function d(O,M){return[O,M]}}function _8(){var G=function(){function U(){this._map=new z}return Object.defineProperty(U.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),U.prototype.has=function(L){return this._map.has(L)},U.prototype.add=function(L){return this._map.set(L,L),this},U.prototype.delete=function(L){return this._map.delete(L)},U.prototype.clear=function(){this._map.clear()},U.prototype.keys=function(){return this._map.keys()},U.prototype.values=function(){return this._map.keys()},U.prototype.entries=function(){return this._map.entries()},U.prototype["@@iterator"]=function(){return this.keys()},U.prototype[S]=function(){return this.keys()},U}();return G}function T8(){var G=16,U=w.create(),L=F();return function(){function M(){this._key=F()}return M.prototype.has=function(_){var T=E(_,!1);return T!==void 0?w.has(T,this._key):!1},M.prototype.get=function(_){var T=E(_,!1);return T!==void 0?w.get(T,this._key):void 0},M.prototype.set=function(_,T){var A=E(_,!0);return A[this._key]=T,this},M.prototype.delete=function(_){var T=E(_,!1);return T!==void 0?delete T[this._key]:!1},M.prototype.clear=function(){this._key=F()},M}();function F(){var M;do M="@@WeakMap@@"+O();while(w.has(U,M));return U[M]=!0,M}function E(M,_){if(!J.call(M,L)){if(!_)return;Object.defineProperty(M,L,{value:w.create()})}return M[L]}function m(M,_){for(var T=0;T<_;++T)M[T]=Math.random()*255|0;return M}function d(M){if(typeof Uint8Array==="function"){var _=new Uint8Array(M);if(typeof crypto<"u")crypto.getRandomValues(_);else if(typeof msCrypto<"u")msCrypto.getRandomValues(_);else m(_,M);return _}return m(Array(M),M)}function O(){var M=d(G);M[6]=M[6]&79|64,M[8]=M[8]&191|128;var _="";for(var T=0;T<G;++T){var A=M[T];if(T===4||T===6||T===8)_+="-";if(A<16)_+="0";_+=A.toString(16).toLowerCase()}return _}}function r$(G){return G.__=void 0,delete G.__,G}})})(zX||(zX={}))});var r4=e$(t4(),1),{program:a1,createCommand:MV,createArgument:_V,createOption:TV,CommanderError:IV,InvalidArgumentError:AV,InvalidOptionArgumentError:EV,Command:DV,Argument:CV,Option:PV,Help:NV}=r4.default;var HX=e$(wX(),1);import*as O1 from"fs/promises";class i extends Error{code;constructor($,X){super($);this.code=X;this.name="StabilizeError"}}class y1{level;filePath;maxFileSize;maxFiles;currentFileSize=0;constructor($={}){this.level=$.level||"info",this.filePath=$.filePath||null,this.maxFileSize=$.maxFileSize||1048576,this.maxFiles=$.maxFiles||3}shouldLog($){let X=["error","warn","info","debug"];return X.indexOf($)<=X.indexOf(this.level)}async rotateLogFile(){if(!this.filePath)return;try{let $=await O1.stat(this.filePath).catch(()=>null);if($&&$.size>=this.maxFileSize){for(let X=this.maxFiles-1;X>0;X--){let Q=X===1?this.filePath:`${this.filePath}.${X-1}`,J=`${this.filePath}.${X}`;if(await O1.stat(Q).catch(()=>null))await O1.rename(Q,J).catch(()=>{})}await O1.writeFile(this.filePath,""),this.currentFileSize=0}}catch($){console.error("Log rotation failed:",$)}}async writeToFile($){if(!this.filePath)return;try{await this.rotateLogFile();let X=`${new Date().toISOString()} ${$}
|
|
200
|
+
`;await O1.appendFile(this.filePath,X),this.currentFileSize+=Buffer.byteLength(X)}catch(X){console.error("Failed to write to log file:",X)}}logQuery($,X,Q){if(this.shouldLog("debug")){let J=`[DEBUG] Query: ${$} | Params: ${JSON.stringify(X)} | Time: ${Q?`${Q.toFixed(2)}ms`:"N/A"}`;if(console.log(J),this.filePath)this.writeToFile(J)}}logError($){if(this.shouldLog("error")){let X=`[ERROR] ${$.message}${$.stack?`
|
|
201
|
+
${$.stack}`:""}`;if(console.error(X),this.filePath)this.writeToFile(X)}}logMetrics($){if(this.shouldLog("info")){let X=`[INFO] Pool Metrics: Active=${$.activeConnections}, Idle=${$.idleConnections}, Total=${$.totalConnections}`;if(console.log(X),this.filePath)this.writeToFile(X)}}logInfo($){if(this.shouldLog("info")){let X=`[INFO] ${$}`;if(console.log(X),this.filePath)this.writeToFile(X)}}logDebug($){if(this.shouldLog("debug")){let X=`[DEBUG] ${$}`;if(console.log(X),this.filePath)this.writeToFile(X)}}}class g0{redis=null;ttl;prefix;strategy;logger;hits=0;misses=0;constructor($,X=new y1){if(this.ttl=$.ttl,this.prefix=$.cachePrefix||"cache:",this.strategy=$.strategy||"cache-aside",this.logger=X,$.enabled&&$.redisUrl)this.redis=new HX.default($.redisUrl,{lazyConnect:!0}),this.redis.on("error",(Q)=>this.logger.logError(Q))}getStrategy(){return this.strategy}async get($){if(!this.redis)return null;try{let X=await this.redis.get(this.prefix+$);if(X)return this.hits++,this.logger.logDebug(`Cache hit for key: ${$}`),JSON.parse(X);return this.misses++,this.logger.logDebug(`Cache miss for key: ${$}`),null}catch(X){return this.logger.logError(X),null}}async set($,X,Q=this.ttl){if(!this.redis)return;try{await this.redis.set(this.prefix+$,JSON.stringify(X),"EX",Q),this.logger.logDebug(`Cache set for key: ${$}`)}catch(J){this.logger.logError(J)}}async invalidate($){if(!this.redis)return;try{let X=this.redis.pipeline();for(let Q of $)X.del(this.prefix+Q),this.logger.logDebug(`Cache invalidated for key: ${Q}`);await X.exec()}catch(X){this.logger.logError(X)}}async invalidatePattern($){if(!this.redis)return;try{let X=await this.redis.keys(this.prefix+$);if(X.length>0){let Q=this.redis.pipeline();for(let J of X)Q.del(J),this.logger.logDebug(`Cache invalidated for pattern: ${$}`);await Q.exec()}}catch(X){this.logger.logError(X)}}async getStats(){if(!this.redis)return{hits:0,misses:0,keys:0};try{let $=await this.redis.keys(this.prefix+"*");return{hits:this.hits,misses:this.misses,keys:$.length}}catch($){return this.logger.logError($),{hits:this.hits,misses:this.misses,keys:0}}}async disconnect(){if(this.redis)await this.redis.quit(),this.logger.logInfo("Redis connection closed")}}var{SQL:ES}=globalThis.Bun;import{Database as u0}from"bun:sqlite";function DS($){return $.type==="sqlite"||$.connectionString.includes("sqlite")}class P${client=null;logger;retryAttempts;retryDelay;maxJitter;preparedStatements=new Map;config;constructor($,X=new y1){this.config=$,this.logger=X,this.retryAttempts=$.retryAttempts||3,this.retryDelay=$.retryDelay||1000,this.maxJitter=$.maxJitter||100,this.initializeClient($)}initializeClient($){if(DS($))try{this.client=new u0($.connectionString,{create:!0}),this.logger.logDebug(`Initialized Bun SQLite client for: ${$.connectionString}`)}catch(X){throw this.logger.logError(X),new i(`Failed to initialize SQLite database: ${X.message}`,"INIT_ERROR")}else this.client=new ES($.connectionString),this.logger.logDebug(`Initialized Bun SQL client for: ${$.connectionString}`)}getJitter(){return Math.random()*this.maxJitter}getPoolMetrics(){return{activeConnections:0,idleConnections:0,totalConnections:this.client instanceof u0?1:0}}async switchConnection($){await this.close(),this.config=$,this.preparedStatements.clear(),this.retryAttempts=$.retryAttempts||3,this.retryDelay=$.retryDelay||1000,this.maxJitter=$.maxJitter||100,this.initializeClient($)}async query($,X=[]){let Q=Date.now();this.logger.logQuery($,X),this.logger.logMetrics(this.getPoolMetrics());let J;if(this.client instanceof u0){let Z=$;if(!this.preparedStatements.has(Z))this.preparedStatements.set(Z,this.client.prepare($));J=this.preparedStatements.get(Z)}for(let Z=1;Z<=this.retryAttempts;Z++)try{let Y;if(J)Y=J.all(...X);else if(this.client)Y=await this.client.unsafe($,X);else throw new i("Database client is not initialized or does not support query execution.","INIT_ERROR");let S=Date.now()-Q;return this.logger.logQuery($,X,S),Y}catch(Y){if(this.logger.logError(Y),Z===this.retryAttempts)throw new i(`Query failed after ${this.retryAttempts} attempts: ${Y.message}`,"QUERY_ERROR");await new Promise((S)=>setTimeout(S,this.retryDelay*Math.pow(2,Z-1)+this.getJitter()))}throw new i("Query failed: no attempts made","QUERY_ERROR")}async transaction($){if(this.client instanceof u0){let Q=Date.now();this.logger.logDebug("Starting native SQLite transaction");let J=this.client.transaction(async()=>{return $()});try{let Z=await J();return this.logger.logDebug(`Native transaction committed in ${Date.now()-Q}ms`),Z}catch(Z){throw this.logger.logError(Z),new i(`Native transaction failed: ${Z.message}`,"TX_ERROR")}}let X=Date.now();this.logger.logDebug("Starting manual transaction (non-SQLite)");for(let Q=1;Q<=this.retryAttempts;Q++)try{await this.query("BEGIN",[]);let J=await $();return await this.query("COMMIT",[]),this.logger.logDebug(`Manual transaction committed in ${Date.now()-X}ms`),J}catch(J){if(await this.query("ROLLBACK",[]).catch(()=>{this.logger.logDebug("Rollback failed. Connection may be invalid.")}),this.logger.logError(J),Q===this.retryAttempts)throw new i(`Manual transaction failed after ${this.retryAttempts} attempts: ${J.message}`,"TX_ERROR");await new Promise((Z)=>setTimeout(Z,this.retryDelay*Math.pow(2,Q-1)+this.getJitter()))}throw new i("Transaction failed: no attempts made","TX_ERROR")}async savepoint($,X){let Q=Date.now();this.logger.logDebug(`Starting savepoint ${$}`),await this.query(`SAVEPOINT ${$}`,[]);try{let J=await X();return await this.query(`RELEASE SAVEPOINT ${$}`,[]),this.logger.logDebug(`Savepoint ${$} released in ${Date.now()-Q}ms`),J}catch(J){throw await this.query(`ROLLBACK TO SAVEPOINT ${$}`,[]).catch(()=>{this.logger.logDebug(`Rollback to savepoint ${$} failed. Connection may be invalid.`)}),this.logger.logError(J),J}}async close(){if(this.preparedStatements.clear(),this.client instanceof u0)this.client.close(),this.client=null;else if(this.client&&typeof this.client.close==="function")await this.client.close(),this.client=null;this.logger.logInfo("Database connection closed")}}class N${table;selectFields=["*"];joins=[];whereConditions=[];whereParams=[];orderByClause=null;limitValue=null;offsetValue=null;hints=[];constructor($){this.table=$}select(...$){return this.selectFields=$.length>0?$:["*"],this}where($,...X){return this.whereConditions.push($),this.whereParams.push(...X),this}join($,X){return this.joins.push(`LEFT JOIN ${$} ON ${X}`),this}orderBy($){return this.orderByClause=$,this}limit($){return this.limitValue=$,this}offset($){return this.offsetValue=$,this}hint($){return this.hints.push($),this}build(){let $=`SELECT ${this.selectFields.join(", ")} FROM ${this.table}`;if(this.hints.length>0)$=`SELECT ${this.hints.map((Q)=>`${Q.type}(${Q.value})`).join(" ")} ${this.selectFields.join(", ")} FROM ${this.table}`;if(this.joins.length>0)$+=" "+this.joins.join(" ");if(this.whereConditions.length>0)$+=" WHERE "+this.whereConditions.join(" AND ");if(this.orderByClause)$+=` ORDER BY ${this.orderByClause}`;if(this.limitValue!==null)$+=` LIMIT ${this.limitValue}`;if(this.offsetValue!==null)$+=` OFFSET ${this.offsetValue}`;return{query:$,params:this.whereParams}}async execute($,X,Q){let{query:J,params:Z}=this.build();if(X&&Q){let S=await X.get(Q);if(S)return S}let Y=await $.query(J,Z);if(X&&Q&&Y.length>0)await X.set(Q,Y);return Y}}var JH=e$(GX(),1);var R0=Symbol("model"),m0=Symbol("column"),c0=Symbol("validator"),a3=Symbol("relation"),l0=Symbol("softDelete");class k${client;cache;table;columns;validators;relations;softDeleteField;logger;constructor($,X,Q={enabled:!1,ttl:60},J=new y1){this.client=$,this.cache=Q.enabled?new g0(Q,J):null,this.table=Reflect.getMetadata(R0,X)||"",this.columns=Reflect.getMetadata(m0,X.prototype)||{},this.validators=Reflect.getMetadata(c0,X.prototype)||{},this.relations=Reflect.getMetadata(a3,X.prototype)||{},this.softDeleteField=Reflect.getMetadata(l0,X.prototype)||null,this.logger=J}getDBType(){return this.client.config.type}validate($){for(let[X,Q]of Object.entries(this.validators)){let J=$[X];if(Q.includes("required")&&(J===void 0||J===null))throw new i(`Field ${X} is required`,"VALIDATION_ERROR");if(Q.includes("unique"));}}find(){let $=new N$(this.table);if(this.softDeleteField)$.where(`${this.softDeleteField} IS NULL`);return $}async findOne($,X={}){let Q=performance.now();this.logger.logDebug(`Finding one ${this.table} with ID ${$}`);let J=this.find().where("id = ?",$).limit(1);if(X.relations)for(let S of X.relations)await this.loadRelation(J,S);let Z=X.relations?`findOne:${this.table}:${$}:${X.relations.join(",")}`:`findOne:${this.table}:${$}`,Y=await J.execute(this.client,this.cache,Z);return this.logger.logDebug(`Found ${this.table} with ID ${$} in ${(performance.now()-Q).toFixed(2)}ms`),Y[0]||null}async create($,X={}){let Q=performance.now();return this.logger.logDebug(`Creating ${this.table} with data: ${JSON.stringify($)}`),this.validate($),await this.client.transaction(async()=>{let J=Object.keys($).filter((j)=>this.columns[j]),Z=J.map((j)=>this.columns[j]?.name).join(", "),Y=J.map(()=>"?").join(", "),S=J.map((j)=>$[j]),q=`INSERT INTO ${this.table} (${Z}) VALUES (${Y})`,V,H,w=this.getDBType();if(w==="postgres")q+=" RETURNING *",V=await this.client.query(q,S),H=V?.[0]?.id;else if(await this.client.query(q,S),w==="sqlite")H=(await this.client.query("SELECT last_insert_rowid() as id",[]))[0]?.id;else if(w==="mysql")H=(await this.client.query("SELECT LAST_INSERT_ID() as id",[]))[0]?.id;if(!H)throw new i("Failed to retrieve inserted ID","INSERT_ERROR");let W=[`find:${this.table}`,`findOne:${this.table}:${H}`],z=this.find().where("id = ?",H);if(X.relations)for(let j of X.relations)await this.loadRelation(z,j);if(this.cache){if(await this.cache.invalidate(W),this.cache.getStrategy()==="write-through"){let j=V?.[0]||(await z.execute(this.client))[0];return await this.cache.set(`findOne:${this.table}:${H}`,[j],60),this.logger.logDebug(`Created ${this.table} with ID ${H} in ${(performance.now()-Q).toFixed(2)}ms`),j}}let B=V?.[0]||(await z.execute(this.client))[0];return this.logger.logDebug(`Created ${this.table} with ID ${H} in ${(performance.now()-Q).toFixed(2)}ms`),B})}async bulkCreate($,X={}){let Q=performance.now();if(this.logger.logDebug(`Bulk creating ${$.length} ${this.table} entities`),!$.length)return[];let J=X.batchSize||1000;$.forEach((S)=>this.validate(S));let Z=this.getDBType(),Y=[];for(let S=0;S<$.length;S+=J){let q=$.slice(S,S+J);await this.client.transaction(async()=>{let V=Object.keys(q[0]).filter((R)=>this.columns[R]),H=V.map((R)=>this.columns[R]?.name).join(", "),w=`(${V.map(()=>"?").join(", ")})`,W=`INSERT INTO ${this.table} (${H}) VALUES ${q.map(()=>w).join(", ")}`,z=q.flatMap((R)=>V.map((C)=>R[C])),B=[],j=[];if(Z==="postgres")W+=" RETURNING *",B=await this.client.query(W,z),j=B.map((R)=>R.id);else await this.client.query(W,z),j=(await this.client.query(`SELECT id FROM ${this.table} ORDER BY id DESC LIMIT ?`,[q.length])).map((R)=>R.id);let K=j.map((R)=>`findOne:${this.table}:${R}`).concat(`find:${this.table}`);if(j.length>0&&B.length===0){let R=this.find().where(`id IN (${j.map(()=>"?").join(", ")})`,...j);if(X.relations)for(let C of X.relations)await this.loadRelation(R,C);B=await R.execute(this.client)}if(this.cache){if(await this.cache.invalidate(K),this.cache.getStrategy()==="write-through")await this.cache.set(`bulkCreate:${this.table}:${j.join(",")}`,B,60)}Y.push(...B)})}return this.logger.logDebug(`Bulk created ${Y.length} ${this.table} entities in ${(performance.now()-Q).toFixed(2)}ms`),Y}async update($,X){let Q=performance.now();return this.logger.logDebug(`Updating ${this.table} with ID ${$}`),this.validate(X),await this.client.transaction(async()=>{let J=Object.keys(X).filter((H)=>this.columns[H]),Z=J.map((H)=>`${this.columns[H]?.name} = ?`).join(", "),Y=`UPDATE ${this.table} SET ${Z} WHERE id = ?${this.softDeleteField?` AND ${this.softDeleteField} IS NULL`:""}`,S=[...J.map((H)=>X[H]),$];await this.client.query(Y,S);let q,V=[`find:${this.table}`,`findOne:${this.table}:${$}`];if(this.cache){if(await this.cache.invalidate(V),this.cache.getStrategy()==="write-through")return q=(await this.find().where("id = ?",$).execute(this.client))[0],await this.cache.set(`findOne:${this.table}:${$}`,[q],60),this.logger.logDebug(`Updated ${this.table} with ID ${$} in ${(performance.now()-Q).toFixed(2)}ms`),q}return q=await this.findOne($),this.logger.logDebug(`Updated ${this.table} with ID ${$} in ${(performance.now()-Q).toFixed(2)}ms`),q})}async bulkUpdate($,X={}){let Q=performance.now();if(this.logger.logDebug(`Bulk updating ${$.length} ${this.table} entities`),!$.length)return;let J=X.batchSize||1000;$.forEach((Z)=>this.validate(Z.set));for(let Z=0;Z<$.length;Z+=J){let Y=$.slice(Z,Z+J);await this.client.transaction(async()=>{for(let S of Y){let q=Object.keys(S.set).filter((W)=>this.columns[W]),V=q.map((W)=>`${this.columns[W]?.name} = ?`).join(", "),H=`UPDATE ${this.table} SET ${V} WHERE ${S.where.condition}${this.softDeleteField?` AND ${this.softDeleteField} IS NULL`:""}`,w=[...q.map((W)=>S.set[W]),...S.where.params];await this.client.query(H,w)}if(this.cache)await this.cache.invalidatePattern(`find:${this.table}:*`)})}this.logger.logDebug(`Bulk updated ${$.length} ${this.table} entities in ${(performance.now()-Q).toFixed(2)}ms`)}async upsert($,X){let Q=performance.now();return this.logger.logDebug(`Upserting ${this.table} with keys: ${X.join(", ")}`),this.validate($),await this.client.transaction(async()=>{let J=this.getDBType(),Z=Object.keys($).filter((B)=>this.columns[B]),Y=Z.map((B)=>this.columns[B]?.name).join(", "),S=Z.map(()=>"?").join(", "),q=Z.filter((B)=>!X.includes(B)).map((B)=>`${this.columns[B]?.name} = ?`).join(", "),V;if(J==="sqlite")V=`INSERT INTO ${this.table} (${Y}) VALUES (${S}) ON CONFLICT(${X.map((B)=>this.columns[B].name).join(", ")}) DO UPDATE SET ${q}`;else if(J==="mysql")V=`INSERT INTO ${this.table} (${Y}) VALUES (${S}) ON DUPLICATE KEY UPDATE ${q}`;else V=`INSERT INTO ${this.table} (${Y}) VALUES (${S}) ON CONFLICT (${X.map((B)=>this.columns[B].name).join(", ")}) DO UPDATE SET ${q} RETURNING *`;let H=[...Z.map((B)=>$[B]),...Z.filter((B)=>!X.includes(B)).map((B)=>$[B])],W=(await this.client.query(V,H))[0]?.id||$.id;if(!W&&J==="sqlite")W=(await this.client.query("SELECT last_insert_rowid() as id",[]))[0]?.id;else if(!W&&J==="mysql")W=(await this.client.query("SELECT LAST_INSERT_ID() as id",[]))[0]?.id;if(!W)throw new i("Failed to retrieve upserted ID","UPSERT_ERROR");if(this.cache){if(await this.cache.invalidatePattern(`find:${this.table}:*`),this.cache.getStrategy()==="write-through"){let j=(await this.find().where("id = ?",W).execute(this.client))[0];return await this.cache.set(`findOne:${this.table}:${W}`,[j],60),this.logger.logDebug(`Upserted ${this.table} with ID ${W} in ${(performance.now()-Q).toFixed(2)}ms`),j}}let z=await this.findOne(W);return this.logger.logDebug(`Upserted ${this.table} with ID ${W} in ${(performance.now()-Q).toFixed(2)}ms`),z})}async delete($){let X=performance.now();if(this.logger.logDebug(`Deleting ${this.table} with ID ${$}`),this.softDeleteField)await this.client.query(`UPDATE ${this.table} SET ${this.softDeleteField} = ? WHERE id = ?`,[new Date().toISOString(),$]);else await this.client.query(`DELETE FROM ${this.table} WHERE id = ?`,[$]);if(this.cache)await this.cache.invalidate([`find:${this.table}`,`findOne:${this.table}:${$}`]);this.logger.logDebug(`Deleted ${this.table} with ID ${$} in ${(performance.now()-X).toFixed(2)}ms`)}async bulkDelete($,X={}){let Q=performance.now();if(this.logger.logDebug(`Bulk deleting ${$.length} ${this.table} entities`),!$.length)return;let J=X.batchSize||1000;for(let Z=0;Z<$.length;Z+=J){let Y=$.slice(Z,Z+J);await this.client.transaction(async()=>{let S=Y.map(()=>"?").join(", "),q=this.softDeleteField?`UPDATE ${this.table} SET ${this.softDeleteField} = ? WHERE id IN (${S})`:`DELETE FROM ${this.table} WHERE id IN (${S})`,V=this.softDeleteField?[new Date().toISOString(),...Y]:Y;await this.client.query(q,V)})}if(this.cache)await this.cache.invalidatePattern(`find:${this.table}:*`);this.logger.logDebug(`Bulk deleted ${$.length} ${this.table} entities in ${(performance.now()-Q).toFixed(2)}ms`)}async recover($){let X=performance.now();if(this.logger.logDebug(`Recovering ${this.table} with ID ${$}`),!this.softDeleteField)throw new i("Soft delete not enabled for this model","RECOVER_ERROR");return await this.client.transaction(async()=>{if(await this.client.query(`UPDATE ${this.table} SET ${this.softDeleteField} = NULL WHERE id = ?`,[$]),this.cache)await this.cache.invalidate([`find:${this.table}`,`findOne:${this.table}:${$}`]);let Q=await this.findOne($);return this.logger.logDebug(`Recovered ${this.table} with ID ${$} in ${(performance.now()-X).toFixed(2)}ms`),Q})}async rawQuery($,X=[]){let Q=performance.now();this.logger.logDebug(`Executing raw query: ${$}`);let J=await this.client.query($,X);return this.logger.logDebug(`Raw query completed in ${(performance.now()-Q).toFixed(2)}ms`),J}async loadRelation($,X){this.logger.logDebug(`Loading relation ${X} for ${this.table}`);let Q=this.relations[X];if(!Q)throw new i(`Relation ${X} not found`,"RELATION_ERROR");let J=Reflect.getMetadata(R0,Q.targetModel());if(Q.type==="one-to-one"||Q.type==="many-to-one")$.join(J,`${this.table}.${Q.foreignKey} = ${J}.id`);else if(Q.type==="one-to-many")$.join(J,`${J}.${Q.inverseKey} = ${this.table}.id`);else if(Q.type==="many-to-many")$.join(Q.joinTable,`${Q.joinTable}.${Q.foreignKey} = ${this.table}.id`).join(J,`${J}.id = ${Q.joinTable}.${Q.inverseKey}`)}}async function t3($,X){let Q=Reflect.getMetadata(R0,$);if(!Q)throw new i("Model not decorated with @Model","MIGRATION_ERROR");let J=Reflect.getMetadata(m0,$.prototype)||{},Z=Reflect.getMetadata(c0,$.prototype)||{},Y=Reflect.getMetadata(l0,$.prototype),S=Object.entries(J).map(([H,w])=>{let W=`${w.name} ${w.type}`;if(w.name==="id")W+=" PRIMARY KEY AUTOINCREMENT";if(Z[H]?.includes("required"))W+=" NOT NULL";if(Z[H]?.includes("unique"))W+=" UNIQUE";return W});if(Y&&J[Y])S.push(`${J[Y].name} ${J[Y].type}`);let q=[`CREATE TABLE IF NOT EXISTS ${Q} (${S.join(", ")})`],V=[`DROP TABLE IF EXISTS ${Q}`];return{up:q,down:V}}class d0{client;cache;logger;constructor($,X={enabled:!1,ttl:60},Q={}){this.logger=new y1(Q),this.client=new P$($,this.logger),this.cache=X.enabled?new g0(X,this.logger):null}getRepository($){if(this.cache){let X=this.cache,Q={enabled:!0,ttl:60,redisUrl:X.redisUrl,cachePrefix:X.prefix,strategy:this.cache.getStrategy()};return new k$(this.client,$,Q,this.logger)}return new k$(this.client,$,{enabled:!1,ttl:60},this.logger)}async transaction($){return await this.client.transaction($)}async savepoint($,X){return await this.client.savepoint($,X)}async switchConnection($){await this.client.switchConnection($)}async getCacheStats(){return this.cache?await this.cache.getStats():{hits:0,misses:0,keys:0}}getPoolMetrics(){return this.client.getPoolMetrics()}async close(){if(await this.client.close(),this.cache)await this.cache.disconnect()}}import*as n1 from"fs/promises";import*as b from"path";var r3=($,X,Q)=>{let J=$ instanceof RegExp?BX($,Q):$,Z=X instanceof RegExp?BX(X,Q):X,Y=J!==null&&Z!=null&&CS(J,Z,Q);return Y&&{start:Y[0],end:Y[1],pre:Q.slice(0,Y[0]),body:Q.slice(Y[0]+J.length,Y[1]),post:Q.slice(Y[1]+Z.length)}},BX=($,X)=>{let Q=X.match($);return Q?Q[0]:null},CS=($,X,Q)=>{let J,Z,Y,S=void 0,q,V=Q.indexOf($),H=Q.indexOf(X,V+1),w=V;if(V>=0&&H>0){if($===X)return[V,H];J=[],Y=Q.length;while(w>=0&&!q){if(w===V)J.push(w),V=Q.indexOf($,w+1);else if(J.length===1){let W=J.pop();if(W!==void 0)q=[W,H]}else{if(Z=J.pop(),Z!==void 0&&Z<Y)Y=Z,S=H;H=Q.indexOf(X,w+1)}w=V<H&&V>=0?V:H}if(J.length&&S!==void 0)q=[Y,S]}return q};var LX="\x00SLASH"+Math.random()+"\x00",jX="\x00OPEN"+Math.random()+"\x00",$4="\x00CLOSE"+Math.random()+"\x00",RX="\x00COMMA"+Math.random()+"\x00",FX="\x00PERIOD"+Math.random()+"\x00",PS=new RegExp(LX,"g"),NS=new RegExp(jX,"g"),kS=new RegExp($4,"g"),OS=new RegExp(RX,"g"),yS=new RegExp(FX,"g"),xS=/\\\\/g,fS=/\\{/g,vS=/\\}/g,bS=/\\,/g,hS=/\\./g;function e3($){return!isNaN($)?parseInt($,10):$.charCodeAt(0)}function gS($){return $.replace(xS,LX).replace(fS,jX).replace(vS,$4).replace(bS,RX).replace(hS,FX)}function uS($){return $.replace(PS,"\\").replace(NS,"{").replace(kS,"}").replace(OS,",").replace(yS,".")}function KX($){if(!$)return[""];let X=[],Q=r3("{","}",$);if(!Q)return $.split(",");let{pre:J,body:Z,post:Y}=Q,S=J.split(",");S[S.length-1]+="{"+Z+"}";let q=KX(Y);if(Y.length)S[S.length-1]+=q.shift(),S.push.apply(S,q);return X.push.apply(X,S),X}function MX($){if(!$)return[];if($.slice(0,2)==="{}")$="\\{\\}"+$.slice(2);return p0(gS($),!0).map(uS)}function mS($){return"{"+$+"}"}function cS($){return/^-?0\d/.test($)}function lS($,X){return $<=X}function dS($,X){return $>=X}function p0($,X){let Q=[],J=r3("{","}",$);if(!J)return[$];let Z=J.pre,Y=J.post.length?p0(J.post,!1):[""];if(/\$$/.test(J.pre))for(let S=0;S<Y.length;S++){let q=Z+"{"+J.body+"}"+Y[S];Q.push(q)}else{let S=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(J.body),q=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(J.body),V=S||q,H=J.body.indexOf(",")>=0;if(!V&&!H){if(J.post.match(/,(?!,).*\}/))return $=J.pre+"{"+J.body+$4+J.post,p0($);return[$]}let w;if(V)w=J.body.split(/\.\./);else if(w=KX(J.body),w.length===1&&w[0]!==void 0){if(w=p0(w[0],!1).map(mS),w.length===1)return Y.map((z)=>J.pre+w[0]+z)}let W;if(V&&w[0]!==void 0&&w[1]!==void 0){let z=e3(w[0]),B=e3(w[1]),j=Math.max(w[0].length,w[1].length),K=w.length===3&&w[2]!==void 0?Math.abs(e3(w[2])):1,R=lS;if(B<z)K*=-1,R=dS;let N=w.some(cS);W=[];for(let D=z;R(D,B);D+=K){let k;if(q){if(k=String.fromCharCode(D),k==="\\")k=""}else if(k=String(D),N){let q1=j-k.length;if(q1>0){let X1=Array(q1+1).join("0");if(D<0)k="-"+X1+k.slice(1);else k=X1+k}}W.push(k)}}else{W=[];for(let z=0;z<w.length;z++)W.push.apply(W,p0(w[z],!1))}for(let z=0;z<W.length;z++)for(let B=0;B<Y.length;B++){let j=Z+W[z]+Y[B];if(!X||V||j)Q.push(j)}}return Q}var i0=($)=>{if(typeof $!=="string")throw TypeError("invalid pattern");if($.length>65536)throw TypeError("pattern is too long")};var pS={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},o0=($)=>$.replace(/[[\]\\-]/g,"\\$&"),iS=($)=>$.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),_X=($)=>$.join(""),TX=($,X)=>{let Q=X;if($.charAt(Q)!=="[")throw Error("not in a brace expression");let J=[],Z=[],Y=Q+1,S=!1,q=!1,V=!1,H=!1,w=Q,W="";$:while(Y<$.length){let K=$.charAt(Y);if((K==="!"||K==="^")&&Y===Q+1){H=!0,Y++;continue}if(K==="]"&&S&&!V){w=Y+1;break}if(S=!0,K==="\\"){if(!V){V=!0,Y++;continue}}if(K==="["&&!V){for(let[R,[C,N,D]]of Object.entries(pS))if($.startsWith(R,Y)){if(W)return["$.",!1,$.length-Q,!0];if(Y+=R.length,D)Z.push(C);else J.push(C);q=q||N;continue $}}if(V=!1,W){if(K>W)J.push(o0(W)+"-"+o0(K));else if(K===W)J.push(o0(K));W="",Y++;continue}if($.startsWith("-]",Y+1)){J.push(o0(K+"-")),Y+=2;continue}if($.startsWith("-",Y+1)){W=K,Y+=2;continue}J.push(o0(K)),Y++}if(w<Y)return["",!1,0,!1];if(!J.length&&!Z.length)return["$.",!1,$.length-Q,!0];if(Z.length===0&&J.length===1&&/^\\?.$/.test(J[0])&&!H){let K=J[0].length===2?J[0].slice(-1):J[0];return[iS(K),!1,w-Q,!1]}let z="["+(H?"^":"")+_X(J)+"]",B="["+(H?"":"^")+_X(Z)+"]";return[J.length&&Z.length?"("+z+"|"+B+")":J.length?z:B,q,w-Q,!0]};var K1=($,{windowsPathsNoEscape:X=!1}={})=>{return X?$.replace(/\[([^\/\\])\]/g,"$1"):$.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var oS=new Set(["!","?","+","*","@"]),IX=($)=>oS.has($),nS="(?!(?:^|/)\\.\\.?(?:$|/))",O$="(?!\\.)",sS=new Set(["[","."]),aS=new Set(["..","."]),tS=new Set("().*{}+?[]^$\\!"),rS=($)=>$.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),X4="[^/]",AX=X4+"*?",EX=X4+"+?";class r{type;#$;#X;#Y=!1;#Z=[];#S;#K;#R;#H=!1;#q;#z;#W=!1;constructor($,X,Q={}){if(this.type=$,$)this.#X=!0;if(this.#S=X,this.#$=this.#S?this.#S.#$:this,this.#q=this.#$===this?Q:this.#$.#q,this.#R=this.#$===this?[]:this.#$.#R,$==="!"&&!this.#$.#H)this.#R.push(this);this.#K=this.#S?this.#S.#Z.length:0}get hasMagic(){if(this.#X!==void 0)return this.#X;for(let $ of this.#Z){if(typeof $==="string")continue;if($.type||$.hasMagic)return this.#X=!0}return this.#X}toString(){if(this.#z!==void 0)return this.#z;if(!this.type)return this.#z=this.#Z.map(($)=>String($)).join("");else return this.#z=this.type+"("+this.#Z.map(($)=>String($)).join("|")+")"}#V(){if(this!==this.#$)throw Error("should only call on root");if(this.#H)return this;this.toString(),this.#H=!0;let $;while($=this.#R.pop()){if($.type!=="!")continue;let X=$,Q=X.#S;while(Q){for(let J=X.#K+1;!Q.type&&J<Q.#Z.length;J++)for(let Z of $.#Z){if(typeof Z==="string")throw Error("string part in extglob AST??");Z.copyIn(Q.#Z[J])}X=Q,Q=X.#S}}return this}push(...$){for(let X of $){if(X==="")continue;if(typeof X!=="string"&&!(X instanceof r&&X.#S===this))throw Error("invalid part: "+X);this.#Z.push(X)}}toJSON(){let $=this.type===null?this.#Z.slice().map((X)=>typeof X==="string"?X:X.toJSON()):[this.type,...this.#Z.map((X)=>X.toJSON())];if(this.isStart()&&!this.type)$.unshift([]);if(this.isEnd()&&(this===this.#$||this.#$.#H&&this.#S?.type==="!"))$.push({});return $}isStart(){if(this.#$===this)return!0;if(!this.#S?.isStart())return!1;if(this.#K===0)return!0;let $=this.#S;for(let X=0;X<this.#K;X++){let Q=$.#Z[X];if(!(Q instanceof r&&Q.type==="!"))return!1}return!0}isEnd(){if(this.#$===this)return!0;if(this.#S?.type==="!")return!0;if(!this.#S?.isEnd())return!1;if(!this.type)return this.#S?.isEnd();let $=this.#S?this.#S.#Z.length:0;return this.#K===$-1}copyIn($){if(typeof $==="string")this.push($);else this.push($.clone(this))}clone($){let X=new r(this.type,$);for(let Q of this.#Z)X.copyIn(Q);return X}static#Q($,X,Q,J){let Z=!1,Y=!1,S=-1,q=!1;if(X.type===null){let z=Q,B="";while(z<$.length){let j=$.charAt(z++);if(Z||j==="\\"){Z=!Z,B+=j;continue}if(Y){if(z===S+1){if(j==="^"||j==="!")q=!0}else if(j==="]"&&!(z===S+2&&q))Y=!1;B+=j;continue}else if(j==="["){Y=!0,S=z,q=!1,B+=j;continue}if(!J.noext&&IX(j)&&$.charAt(z)==="("){X.push(B),B="";let K=new r(j,X);z=r.#Q($,K,z,J),X.push(K);continue}B+=j}return X.push(B),z}let V=Q+1,H=new r(null,X),w=[],W="";while(V<$.length){let z=$.charAt(V++);if(Z||z==="\\"){Z=!Z,W+=z;continue}if(Y){if(V===S+1){if(z==="^"||z==="!")q=!0}else if(z==="]"&&!(V===S+2&&q))Y=!1;W+=z;continue}else if(z==="["){Y=!0,S=V,q=!1,W+=z;continue}if(IX(z)&&$.charAt(V)==="("){H.push(W),W="";let B=new r(z,H);H.push(B),V=r.#Q($,B,V,J);continue}if(z==="|"){H.push(W),W="",w.push(H),H=new r(null,X);continue}if(z===")"){if(W===""&&X.#Z.length===0)X.#W=!0;return H.push(W),W="",X.push(...w,H),V}W+=z}return X.type=null,X.#X=void 0,X.#Z=[$.substring(Q-1)],V}static fromGlob($,X={}){let Q=new r(null,void 0,X);return r.#Q($,Q,0,X),Q}toMMPattern(){if(this!==this.#$)return this.#$.toMMPattern();let $=this.toString(),[X,Q,J,Z]=this.toRegExpSource();if(!(J||this.#X||this.#q.nocase&&!this.#q.nocaseMagicOnly&&$.toUpperCase()!==$.toLowerCase()))return Q;let S=(this.#q.nocase?"i":"")+(Z?"u":"");return Object.assign(new RegExp(`^${X}$`,S),{_src:X,_glob:$})}get options(){return this.#q}toRegExpSource($){let X=$??!!this.#q.dot;if(this.#$===this)this.#V();if(!this.type){let q=this.isStart()&&this.isEnd(),V=this.#Z.map((z)=>{let[B,j,K,R]=typeof z==="string"?r.#M(z,this.#X,q):z.toRegExpSource($);return this.#X=this.#X||K,this.#Y=this.#Y||R,B}).join(""),H="";if(this.isStart()){if(typeof this.#Z[0]==="string"){if(!(this.#Z.length===1&&aS.has(this.#Z[0]))){let B=sS,j=X&&B.has(V.charAt(0))||V.startsWith("\\.")&&B.has(V.charAt(2))||V.startsWith("\\.\\.")&&B.has(V.charAt(4)),K=!X&&!$&&B.has(V.charAt(0));H=j?nS:K?O$:""}}}let w="";if(this.isEnd()&&this.#$.#H&&this.#S?.type==="!")w="(?:$|\\/)";return[H+V+w,K1(V),this.#X=!!this.#X,this.#Y]}let Q=this.type==="*"||this.type==="+",J=this.type==="!"?"(?:(?!(?:":"(?:",Z=this.#U(X);if(this.isStart()&&this.isEnd()&&!Z&&this.type!=="!"){let q=this.toString();return this.#Z=[q],this.type=null,this.#X=void 0,[q,K1(this.toString()),!1,!1]}let Y=!Q||$||X||!O$?"":this.#U(!0);if(Y===Z)Y="";if(Y)Z=`(?:${Z})(?:${Y})*?`;let S="";if(this.type==="!"&&this.#W)S=(this.isStart()&&!X?O$:"")+EX;else{let q=this.type==="!"?"))"+(this.isStart()&&!X&&!$?O$:"")+AX+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&Y?")":this.type==="*"&&Y?")?":`)${this.type}`;S=J+Z+q}return[S,K1(Z),this.#X=!!this.#X,this.#Y]}#U($){return this.#Z.map((X)=>{if(typeof X==="string")throw Error("string type in extglob ast??");let[Q,J,Z,Y]=X.toRegExpSource($);return this.#Y=this.#Y||Y,Q}).filter((X)=>!(this.isStart()&&this.isEnd())||!!X).join("|")}static#M($,X,Q=!1){let J=!1,Z="",Y=!1;for(let S=0;S<$.length;S++){let q=$.charAt(S);if(J){J=!1,Z+=(tS.has(q)?"\\":"")+q;continue}if(q==="\\"){if(S===$.length-1)Z+="\\\\";else J=!0;continue}if(q==="["){let[V,H,w,W]=TX($,S);if(w){Z+=V,Y=Y||H,S+=w-1,X=X||W;continue}}if(q==="*"){if(Q&&$==="*")Z+=EX;else Z+=AX;X=!0;continue}if(q==="?"){Z+=X4,X=!0;continue}Z+=rS(q)}return[Z,K1($),!!X,Y]}}var F0=($,{windowsPathsNoEscape:X=!1}={})=>{return X?$.replace(/[?*()[\]]/g,"[$&]"):$.replace(/[?*()[\]\\]/g,"\\$&")};var Z1=($,X,Q={})=>{if(i0(X),!Q.nocomment&&X.charAt(0)==="#")return!1;return new U1(X,Q).match($)},eS=/^\*+([^+@!?\*\[\(]*)$/,$q=($)=>(X)=>!X.startsWith(".")&&X.endsWith($),Xq=($)=>(X)=>X.endsWith($),Qq=($)=>{return $=$.toLowerCase(),(X)=>!X.startsWith(".")&&X.toLowerCase().endsWith($)},Jq=($)=>{return $=$.toLowerCase(),(X)=>X.toLowerCase().endsWith($)},Zq=/^\*+\.\*+$/,Yq=($)=>!$.startsWith(".")&&$.includes("."),Sq=($)=>$!=="."&&$!==".."&&$.includes("."),qq=/^\.\*+$/,Vq=($)=>$!=="."&&$!==".."&&$.startsWith("."),wq=/^\*+$/,Hq=($)=>$.length!==0&&!$.startsWith("."),Wq=($)=>$.length!==0&&$!=="."&&$!=="..",zq=/^\?+([^+@!?\*\[\(]*)?$/,Gq=([$,X=""])=>{let Q=PX([$]);if(!X)return Q;return X=X.toLowerCase(),(J)=>Q(J)&&J.toLowerCase().endsWith(X)},Uq=([$,X=""])=>{let Q=NX([$]);if(!X)return Q;return X=X.toLowerCase(),(J)=>Q(J)&&J.toLowerCase().endsWith(X)},Bq=([$,X=""])=>{let Q=NX([$]);return!X?Q:(J)=>Q(J)&&J.endsWith(X)},Lq=([$,X=""])=>{let Q=PX([$]);return!X?Q:(J)=>Q(J)&&J.endsWith(X)},PX=([$])=>{let X=$.length;return(Q)=>Q.length===X&&!Q.startsWith(".")},NX=([$])=>{let X=$.length;return(Q)=>Q.length===X&&Q!=="."&&Q!==".."},kX=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",DX={win32:{sep:"\\"},posix:{sep:"/"}},jq=kX==="win32"?DX.win32.sep:DX.posix.sep;Z1.sep=jq;var e=Symbol("globstar **");Z1.GLOBSTAR=e;var Rq="[^/]",Fq=Rq+"*?",Kq="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Mq="(?:(?!(?:\\/|^)\\.).)*?",_q=($,X={})=>(Q)=>Z1(Q,$,X);Z1.filter=_q;var G1=($,X={})=>Object.assign({},$,X),Tq=($)=>{if(!$||typeof $!=="object"||!Object.keys($).length)return Z1;let X=Z1;return Object.assign((J,Z,Y={})=>X(J,Z,G1($,Y)),{Minimatch:class extends X.Minimatch{constructor(Z,Y={}){super(Z,G1($,Y))}static defaults(Z){return X.defaults(G1($,Z)).Minimatch}},AST:class extends X.AST{constructor(Z,Y,S={}){super(Z,Y,G1($,S))}static fromGlob(Z,Y={}){return X.AST.fromGlob(Z,G1($,Y))}},unescape:(J,Z={})=>X.unescape(J,G1($,Z)),escape:(J,Z={})=>X.escape(J,G1($,Z)),filter:(J,Z={})=>X.filter(J,G1($,Z)),defaults:(J)=>X.defaults(G1($,J)),makeRe:(J,Z={})=>X.makeRe(J,G1($,Z)),braceExpand:(J,Z={})=>X.braceExpand(J,G1($,Z)),match:(J,Z,Y={})=>X.match(J,Z,G1($,Y)),sep:X.sep,GLOBSTAR:e})};Z1.defaults=Tq;var OX=($,X={})=>{if(i0($),X.nobrace||!/\{(?:(?!\{).)*\}/.test($))return[$];return MX($)};Z1.braceExpand=OX;var Iq=($,X={})=>new U1($,X).makeRe();Z1.makeRe=Iq;var Aq=($,X,Q={})=>{let J=new U1(X,Q);if($=$.filter((Z)=>J.match(Z)),J.options.nonull&&!$.length)$.push(X);return $};Z1.match=Aq;var CX=/[?*]|[+@!]\(.*?\)|\[|\]/,Eq=($)=>$.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class U1{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor($,X={}){if(i0($),X=X||{},this.options=X,this.pattern=$,this.platform=X.platform||kX,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!X.windowsPathsNoEscape||X.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!X.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!X.nonegate,this.comment=!1,this.empty=!1,this.partial=!!X.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=X.windowsNoMagicRoot!==void 0?X.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let $ of this.set)for(let X of $)if(typeof X!=="string")return!0;return!1}debug(...$){}make(){let $=this.pattern,X=this.options;if(!X.nocomment&&$.charAt(0)==="#"){this.comment=!0;return}if(!$){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],X.debug)this.debug=(...Z)=>console.error(...Z);this.debug(this.pattern,this.globSet);let Q=this.globSet.map((Z)=>this.slashSplit(Z));this.globParts=this.preprocess(Q),this.debug(this.pattern,this.globParts);let J=this.globParts.map((Z,Y,S)=>{if(this.isWindows&&this.windowsNoMagicRoot){let q=Z[0]===""&&Z[1]===""&&(Z[2]==="?"||!CX.test(Z[2]))&&!CX.test(Z[3]),V=/^[a-z]:/i.test(Z[0]);if(q)return[...Z.slice(0,4),...Z.slice(4).map((H)=>this.parse(H))];else if(V)return[Z[0],...Z.slice(1).map((H)=>this.parse(H))]}return Z.map((q)=>this.parse(q))});if(this.debug(this.pattern,J),this.set=J.filter((Z)=>Z.indexOf(!1)===-1),this.isWindows)for(let Z=0;Z<this.set.length;Z++){let Y=this.set[Z];if(Y[0]===""&&Y[1]===""&&this.globParts[Z][2]==="?"&&typeof Y[3]==="string"&&/^[a-z]:$/i.test(Y[3]))Y[2]="?"}this.debug(this.pattern,this.set)}preprocess($){if(this.options.noglobstar){for(let Q=0;Q<$.length;Q++)for(let J=0;J<$[Q].length;J++)if($[Q][J]==="**")$[Q][J]="*"}let{optimizationLevel:X=1}=this.options;if(X>=2)$=this.firstPhasePreProcess($),$=this.secondPhasePreProcess($);else if(X>=1)$=this.levelOneOptimize($);else $=this.adjascentGlobstarOptimize($);return $}adjascentGlobstarOptimize($){return $.map((X)=>{let Q=-1;while((Q=X.indexOf("**",Q+1))!==-1){let J=Q;while(X[J+1]==="**")J++;if(J!==Q)X.splice(Q,J-Q)}return X})}levelOneOptimize($){return $.map((X)=>{return X=X.reduce((Q,J)=>{let Z=Q[Q.length-1];if(J==="**"&&Z==="**")return Q;if(J===".."){if(Z&&Z!==".."&&Z!=="."&&Z!=="**")return Q.pop(),Q}return Q.push(J),Q},[]),X.length===0?[""]:X})}levelTwoFileOptimize($){if(!Array.isArray($))$=this.slashSplit($);let X=!1;do{if(X=!1,!this.preserveMultipleSlashes){for(let J=1;J<$.length-1;J++){let Z=$[J];if(J===1&&Z===""&&$[0]==="")continue;if(Z==="."||Z==="")X=!0,$.splice(J,1),J--}if($[0]==="."&&$.length===2&&($[1]==="."||$[1]===""))X=!0,$.pop()}let Q=0;while((Q=$.indexOf("..",Q+1))!==-1){let J=$[Q-1];if(J&&J!=="."&&J!==".."&&J!=="**")X=!0,$.splice(Q-1,2),Q-=2}}while(X);return $.length===0?[""]:$}firstPhasePreProcess($){let X=!1;do{X=!1;for(let Q of $){let J=-1;while((J=Q.indexOf("**",J+1))!==-1){let Y=J;while(Q[Y+1]==="**")Y++;if(Y>J)Q.splice(J+1,Y-J);let S=Q[J+1],q=Q[J+2],V=Q[J+3];if(S!=="..")continue;if(!q||q==="."||q===".."||!V||V==="."||V==="..")continue;X=!0,Q.splice(J,1);let H=Q.slice(0);H[J]="**",$.push(H),J--}if(!this.preserveMultipleSlashes){for(let Y=1;Y<Q.length-1;Y++){let S=Q[Y];if(Y===1&&S===""&&Q[0]==="")continue;if(S==="."||S==="")X=!0,Q.splice(Y,1),Y--}if(Q[0]==="."&&Q.length===2&&(Q[1]==="."||Q[1]===""))X=!0,Q.pop()}let Z=0;while((Z=Q.indexOf("..",Z+1))!==-1){let Y=Q[Z-1];if(Y&&Y!=="."&&Y!==".."&&Y!=="**"){X=!0;let q=Z===1&&Q[Z+1]==="**"?["."]:[];if(Q.splice(Z-1,2,...q),Q.length===0)Q.push("");Z-=2}}}}while(X);return $}secondPhasePreProcess($){for(let X=0;X<$.length-1;X++)for(let Q=X+1;Q<$.length;Q++){let J=this.partsMatch($[X],$[Q],!this.preserveMultipleSlashes);if(J){$[X]=[],$[Q]=J;break}}return $.filter((X)=>X.length)}partsMatch($,X,Q=!1){let J=0,Z=0,Y=[],S="";while(J<$.length&&Z<X.length)if($[J]===X[Z])Y.push(S==="b"?X[Z]:$[J]),J++,Z++;else if(Q&&$[J]==="**"&&X[Z]===$[J+1])Y.push($[J]),J++;else if(Q&&X[Z]==="**"&&$[J]===X[Z+1])Y.push(X[Z]),Z++;else if($[J]==="*"&&X[Z]&&(this.options.dot||!X[Z].startsWith("."))&&X[Z]!=="**"){if(S==="b")return!1;S="a",Y.push($[J]),J++,Z++}else if(X[Z]==="*"&&$[J]&&(this.options.dot||!$[J].startsWith("."))&&$[J]!=="**"){if(S==="a")return!1;S="b",Y.push(X[Z]),J++,Z++}else return!1;return $.length===X.length&&Y}parseNegate(){if(this.nonegate)return;let $=this.pattern,X=!1,Q=0;for(let J=0;J<$.length&&$.charAt(J)==="!";J++)X=!X,Q++;if(Q)this.pattern=$.slice(Q);this.negate=X}matchOne($,X,Q=!1){let J=this.options;if(this.isWindows){let j=typeof $[0]==="string"&&/^[a-z]:$/i.test($[0]),K=!j&&$[0]===""&&$[1]===""&&$[2]==="?"&&/^[a-z]:$/i.test($[3]),R=typeof X[0]==="string"&&/^[a-z]:$/i.test(X[0]),C=!R&&X[0]===""&&X[1]===""&&X[2]==="?"&&typeof X[3]==="string"&&/^[a-z]:$/i.test(X[3]),N=K?3:j?0:void 0,D=C?3:R?0:void 0;if(typeof N==="number"&&typeof D==="number"){let[k,q1]=[$[N],X[D]];if(k.toLowerCase()===q1.toLowerCase()){if(X[D]=k,D>N)X=X.slice(D);else if(N>D)$=$.slice(N)}}}let{optimizationLevel:Z=1}=this.options;if(Z>=2)$=this.levelTwoFileOptimize($);this.debug("matchOne",this,{file:$,pattern:X}),this.debug("matchOne",$.length,X.length);for(var Y=0,S=0,q=$.length,V=X.length;Y<q&&S<V;Y++,S++){this.debug("matchOne loop");var H=X[S],w=$[Y];if(this.debug(X,H,w),H===!1)return!1;if(H===e){this.debug("GLOBSTAR",[X,H,w]);var W=Y,z=S+1;if(z===V){this.debug("** at the end");for(;Y<q;Y++)if($[Y]==="."||$[Y]===".."||!J.dot&&$[Y].charAt(0)===".")return!1;return!0}while(W<q){var B=$[W];if(this.debug(`
|
|
202
|
+
globstar while`,$,W,X,z,B),this.matchOne($.slice(W),X.slice(z),Q))return this.debug("globstar found match!",W,q,B),!0;else{if(B==="."||B===".."||!J.dot&&B.charAt(0)==="."){this.debug("dot detected!",$,W,X,z);break}this.debug("globstar swallow a segment, and continue"),W++}}if(Q){if(this.debug(`
|
|
203
|
+
>>> no match, partial?`,$,W,X,z),W===q)return!0}return!1}let j;if(typeof H==="string")j=w===H,this.debug("string match",H,w,j);else j=H.test(w),this.debug("pattern match",H,w,j);if(!j)return!1}if(Y===q&&S===V)return!0;else if(Y===q)return Q;else if(S===V)return Y===q-1&&$[Y]==="";else throw Error("wtf?")}braceExpand(){return OX(this.pattern,this.options)}parse($){i0($);let X=this.options;if($==="**")return e;if($==="")return"";let Q,J=null;if(Q=$.match(wq))J=X.dot?Wq:Hq;else if(Q=$.match(eS))J=(X.nocase?X.dot?Jq:Qq:X.dot?Xq:$q)(Q[1]);else if(Q=$.match(zq))J=(X.nocase?X.dot?Uq:Gq:X.dot?Bq:Lq)(Q);else if(Q=$.match(Zq))J=X.dot?Sq:Yq;else if(Q=$.match(qq))J=Vq;let Z=r.fromGlob($,this.options).toMMPattern();if(J&&typeof Z==="object")Reflect.defineProperty(Z,"test",{value:J});return Z}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let $=this.set;if(!$.length)return this.regexp=!1,this.regexp;let X=this.options,Q=X.noglobstar?Fq:X.dot?Kq:Mq,J=new Set(X.nocase?["i"]:[]),Z=$.map((q)=>{let V=q.map((H)=>{if(H instanceof RegExp)for(let w of H.flags.split(""))J.add(w);return typeof H==="string"?Eq(H):H===e?e:H._src});return V.forEach((H,w)=>{let W=V[w+1],z=V[w-1];if(H!==e||z===e)return;if(z===void 0)if(W!==void 0&&W!==e)V[w+1]="(?:\\/|"+Q+"\\/)?"+W;else V[w]=Q;else if(W===void 0)V[w-1]=z+"(?:\\/|"+Q+")?";else if(W!==e)V[w-1]=z+"(?:\\/|\\/"+Q+"\\/)"+W,V[w+1]=e}),V.filter((H)=>H!==e).join("/")}).join("|"),[Y,S]=$.length>1?["(?:",")"]:["",""];if(Z="^"+Y+Z+S+"$",this.negate)Z="^(?!"+Z+").+$";try{this.regexp=new RegExp(Z,[...J].join(""))}catch(q){this.regexp=!1}return this.regexp}slashSplit($){if(this.preserveMultipleSlashes)return $.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test($))return["",...$.split(/\/+/)];else return $.split(/\/+/)}match($,X=this.partial){if(this.debug("match",$,this.pattern),this.comment)return!1;if(this.empty)return $==="";if($==="/"&&X)return!0;let Q=this.options;if(this.isWindows)$=$.split("\\").join("/");let J=this.slashSplit($);this.debug(this.pattern,"split",J);let Z=this.set;this.debug(this.pattern,"set",Z);let Y=J[J.length-1];if(!Y)for(let S=J.length-2;!Y&&S>=0;S--)Y=J[S];for(let S=0;S<Z.length;S++){let q=Z[S],V=J;if(Q.matchBase&&q.length===1)V=[Y];if(this.matchOne(V,q,X)){if(Q.flipNegate)return!0;return!this.negate}}if(Q.flipNegate)return!1;return this.negate}static defaults($){return Z1.defaults($).Minimatch}}Z1.AST=r;Z1.Minimatch=U1;Z1.escape=F0;Z1.unescape=K1;import{fileURLToPath as YV}from"url";var Dq=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,xX=new Set,Q4=typeof process==="object"&&!!process?process:{},fX=($,X,Q,J)=>{typeof Q4.emitWarning==="function"?Q4.emitWarning($,X,Q,J):console.error(`[${Q}] ${X}: ${$}`)},y$=globalThis.AbortController,yX=globalThis.AbortSignal;if(typeof y$>"u"){yX=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(J,Z){this._onabort.push(Z)}},y$=class{constructor(){X()}signal=new yX;abort(J){if(this.signal.aborted)return;this.signal.reason=J,this.signal.aborted=!0;for(let Z of this.signal._onabort)Z(J);this.signal.onabort?.(J)}};let $=Q4.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",X=()=>{if(!$)return;$=!1,fX("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",X)}}var Cq=($)=>!xX.has($),$W=Symbol("type"),i1=($)=>$&&$===Math.floor($)&&$>0&&isFinite($),vX=($)=>!i1($)?null:$<=Math.pow(2,8)?Uint8Array:$<=Math.pow(2,16)?Uint16Array:$<=Math.pow(2,32)?Uint32Array:$<=Number.MAX_SAFE_INTEGER?n0:null;class n0 extends Array{constructor($){super($);this.fill(0)}}class K0{heap;length;static#$=!1;static create($){let X=vX($);if(!X)return[];K0.#$=!0;let Q=new K0($,X);return K0.#$=!1,Q}constructor($,X){if(!K0.#$)throw TypeError("instantiate Stack using Stack.create(n)");this.heap=new X($),this.length=0}push($){this.heap[this.length++]=$}pop(){return this.heap[--this.length]}}class s0{#$;#X;#Y;#Z;#S;#K;#R;#H;get perf(){return this.#H}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#q;#z;#W;#V;#Q;#U;#M;#F;#B;#C;#L;#T;#E;#j;#_;#D;#G;#J;static unsafeExposeInternals($){return{starts:$.#E,ttls:$.#j,sizes:$.#T,keyMap:$.#W,keyList:$.#V,valList:$.#Q,next:$.#U,prev:$.#M,get head(){return $.#F},get tail(){return $.#B},free:$.#C,isBackgroundFetch:(X)=>$.#w(X),backgroundFetch:(X,Q,J,Z)=>$.#l(X,Q,J,Z),moveToTail:(X)=>$.#b(X),indexes:(X)=>$.#N(X),rindexes:(X)=>$.#O(X),isStale:(X)=>$.#A(X)}}get max(){return this.#$}get maxSize(){return this.#X}get calculatedSize(){return this.#z}get size(){return this.#q}get fetchMethod(){return this.#K}get memoMethod(){return this.#R}get dispose(){return this.#Y}get onInsert(){return this.#Z}get disposeAfter(){return this.#S}constructor($){let{max:X=0,ttl:Q,ttlResolution:J=1,ttlAutopurge:Z,updateAgeOnGet:Y,updateAgeOnHas:S,allowStale:q,dispose:V,onInsert:H,disposeAfter:w,noDisposeOnSet:W,noUpdateTTL:z,maxSize:B=0,maxEntrySize:j=0,sizeCalculation:K,fetchMethod:R,memoMethod:C,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:D,allowStaleOnFetchRejection:k,allowStaleOnFetchAbort:q1,ignoreFetchAbort:X1,perf:v1}=$;if(v1!==void 0){if(typeof v1?.now!=="function")throw TypeError("perf option must have a now() method if specified")}if(this.#H=v1??Dq,X!==0&&!i1(X))throw TypeError("max option must be a nonnegative integer");let j1=X?vX(X):Array;if(!j1)throw Error("invalid max value: "+X);if(this.#$=X,this.#X=B,this.maxEntrySize=j||this.#X,this.sizeCalculation=K,this.sizeCalculation){if(!this.#X&&!this.maxEntrySize)throw TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw TypeError("sizeCalculation set to non-function")}if(C!==void 0&&typeof C!=="function")throw TypeError("memoMethod must be a function if defined");if(this.#R=C,R!==void 0&&typeof R!=="function")throw TypeError("fetchMethod must be a function if specified");if(this.#K=R,this.#D=!!R,this.#W=new Map,this.#V=Array(X).fill(void 0),this.#Q=Array(X).fill(void 0),this.#U=new j1(X),this.#M=new j1(X),this.#F=0,this.#B=0,this.#C=K0.create(X),this.#q=0,this.#z=0,typeof V==="function")this.#Y=V;if(typeof H==="function")this.#Z=H;if(typeof w==="function")this.#S=w,this.#L=[];else this.#S=void 0,this.#L=void 0;if(this.#_=!!this.#Y,this.#J=!!this.#Z,this.#G=!!this.#S,this.noDisposeOnSet=!!W,this.noUpdateTTL=!!z,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!k,this.allowStaleOnFetchAbort=!!q1,this.ignoreFetchAbort=!!X1,this.maxEntrySize!==0){if(this.#X!==0){if(!i1(this.#X))throw TypeError("maxSize must be a positive integer if specified")}if(!i1(this.maxEntrySize))throw TypeError("maxEntrySize must be a positive integer if specified");this.#h()}if(this.allowStale=!!q,this.noDeleteOnStaleGet=!!D,this.updateAgeOnGet=!!Y,this.updateAgeOnHas=!!S,this.ttlResolution=i1(J)||J===0?J:1,this.ttlAutopurge=!!Z,this.ttl=Q||0,this.ttl){if(!i1(this.ttl))throw TypeError("ttl must be a positive integer if specified");this.#y()}if(this.#$===0&&this.ttl===0&&this.#X===0)throw TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#$&&!this.#X){if(Cq("LRU_CACHE_UNBOUNDED"))xX.add("LRU_CACHE_UNBOUNDED"),fX("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",s0)}}getRemainingTTL($){return this.#W.has($)?1/0:0}#y(){let $=new n0(this.#$),X=new n0(this.#$);this.#j=$,this.#E=X,this.#m=(Z,Y,S=this.#H.now())=>{if(X[Z]=Y!==0?S:0,$[Z]=Y,Y!==0&&this.ttlAutopurge){let q=setTimeout(()=>{if(this.#A(Z))this.#k(this.#V[Z],"expire")},Y+1);if(q.unref)q.unref()}},this.#P=(Z)=>{X[Z]=$[Z]!==0?this.#H.now():0},this.#I=(Z,Y)=>{if($[Y]){let S=$[Y],q=X[Y];if(!S||!q)return;Z.ttl=S,Z.start=q,Z.now=Q||J();let V=Z.now-q;Z.remainingTTL=S-V}};let Q=0,J=()=>{let Z=this.#H.now();if(this.ttlResolution>0){Q=Z;let Y=setTimeout(()=>Q=0,this.ttlResolution);if(Y.unref)Y.unref()}return Z};this.getRemainingTTL=(Z)=>{let Y=this.#W.get(Z);if(Y===void 0)return 0;let S=$[Y],q=X[Y];if(!S||!q)return 1/0;let V=(Q||J())-q;return S-V},this.#A=(Z)=>{let Y=X[Z],S=$[Z];return!!S&&!!Y&&(Q||J())-Y>S}}#P=()=>{};#I=()=>{};#m=()=>{};#A=()=>!1;#h(){let $=new n0(this.#$);this.#z=0,this.#T=$,this.#x=(X)=>{this.#z-=$[X],$[X]=0},this.#f=(X,Q,J,Z)=>{if(this.#w(Q))return 0;if(!i1(J))if(Z){if(typeof Z!=="function")throw TypeError("sizeCalculation must be a function");if(J=Z(Q,X),!i1(J))throw TypeError("sizeCalculation return invalid (expect positive integer)")}else throw TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return J},this.#g=(X,Q,J)=>{if($[X]=Q,this.#X){let Z=this.#X-$[X];while(this.#z>Z)this.#v(!0)}if(this.#z+=$[X],J)J.entrySize=Q,J.totalCalculatedSize=this.#z}}#x=($)=>{};#g=($,X,Q)=>{};#f=($,X,Q,J)=>{if(Q||J)throw TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#N({allowStale:$=this.allowStale}={}){if(this.#q)for(let X=this.#B;;){if(!this.#c(X))break;if($||!this.#A(X))yield X;if(X===this.#F)break;else X=this.#M[X]}}*#O({allowStale:$=this.allowStale}={}){if(this.#q)for(let X=this.#F;;){if(!this.#c(X))break;if($||!this.#A(X))yield X;if(X===this.#B)break;else X=this.#U[X]}}#c($){return $!==void 0&&this.#W.get(this.#V[$])===$}*entries(){for(let $ of this.#N())if(this.#Q[$]!==void 0&&this.#V[$]!==void 0&&!this.#w(this.#Q[$]))yield[this.#V[$],this.#Q[$]]}*rentries(){for(let $ of this.#O())if(this.#Q[$]!==void 0&&this.#V[$]!==void 0&&!this.#w(this.#Q[$]))yield[this.#V[$],this.#Q[$]]}*keys(){for(let $ of this.#N()){let X=this.#V[$];if(X!==void 0&&!this.#w(this.#Q[$]))yield X}}*rkeys(){for(let $ of this.#O()){let X=this.#V[$];if(X!==void 0&&!this.#w(this.#Q[$]))yield X}}*values(){for(let $ of this.#N())if(this.#Q[$]!==void 0&&!this.#w(this.#Q[$]))yield this.#Q[$]}*rvalues(){for(let $ of this.#O())if(this.#Q[$]!==void 0&&!this.#w(this.#Q[$]))yield this.#Q[$]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find($,X={}){for(let Q of this.#N()){let J=this.#Q[Q],Z=this.#w(J)?J.__staleWhileFetching:J;if(Z===void 0)continue;if($(Z,this.#V[Q],this))return this.get(this.#V[Q],X)}}forEach($,X=this){for(let Q of this.#N()){let J=this.#Q[Q],Z=this.#w(J)?J.__staleWhileFetching:J;if(Z===void 0)continue;$.call(X,Z,this.#V[Q],this)}}rforEach($,X=this){for(let Q of this.#O()){let J=this.#Q[Q],Z=this.#w(J)?J.__staleWhileFetching:J;if(Z===void 0)continue;$.call(X,Z,this.#V[Q],this)}}purgeStale(){let $=!1;for(let X of this.#O({allowStale:!0}))if(this.#A(X))this.#k(this.#V[X],"expire"),$=!0;return $}info($){let X=this.#W.get($);if(X===void 0)return;let Q=this.#Q[X],J=this.#w(Q)?Q.__staleWhileFetching:Q;if(J===void 0)return;let Z={value:J};if(this.#j&&this.#E){let Y=this.#j[X],S=this.#E[X];if(Y&&S){let q=Y-(this.#H.now()-S);Z.ttl=q,Z.start=Date.now()}}if(this.#T)Z.size=this.#T[X];return Z}dump(){let $=[];for(let X of this.#N({allowStale:!0})){let Q=this.#V[X],J=this.#Q[X],Z=this.#w(J)?J.__staleWhileFetching:J;if(Z===void 0||Q===void 0)continue;let Y={value:Z};if(this.#j&&this.#E){Y.ttl=this.#j[X];let S=this.#H.now()-this.#E[X];Y.start=Math.floor(Date.now()-S)}if(this.#T)Y.size=this.#T[X];$.unshift([Q,Y])}return $}load($){this.clear();for(let[X,Q]of $){if(Q.start){let J=Date.now()-Q.start;Q.start=this.#H.now()-J}this.set(X,Q.value,Q)}}set($,X,Q={}){if(X===void 0)return this.delete($),this;let{ttl:J=this.ttl,start:Z,noDisposeOnSet:Y=this.noDisposeOnSet,sizeCalculation:S=this.sizeCalculation,status:q}=Q,{noUpdateTTL:V=this.noUpdateTTL}=Q,H=this.#f($,X,Q.size||0,S);if(this.maxEntrySize&&H>this.maxEntrySize){if(q)q.set="miss",q.maxEntrySizeExceeded=!0;return this.#k($,"set"),this}let w=this.#q===0?void 0:this.#W.get($);if(w===void 0){if(w=this.#q===0?this.#B:this.#C.length!==0?this.#C.pop():this.#q===this.#$?this.#v(!1):this.#q,this.#V[w]=$,this.#Q[w]=X,this.#W.set($,w),this.#U[this.#B]=w,this.#M[w]=this.#B,this.#B=w,this.#q++,this.#g(w,H,q),q)q.set="add";if(V=!1,this.#J)this.#Z?.(X,$,"add")}else{this.#b(w);let W=this.#Q[w];if(X!==W){if(this.#D&&this.#w(W)){W.__abortController.abort(Error("replaced"));let{__staleWhileFetching:z}=W;if(z!==void 0&&!Y){if(this.#_)this.#Y?.(z,$,"set");if(this.#G)this.#L?.push([z,$,"set"])}}else if(!Y){if(this.#_)this.#Y?.(W,$,"set");if(this.#G)this.#L?.push([W,$,"set"])}if(this.#x(w),this.#g(w,H,q),this.#Q[w]=X,q){q.set="replace";let z=W&&this.#w(W)?W.__staleWhileFetching:W;if(z!==void 0)q.oldValue=z}}else if(q)q.set="update";if(this.#J)this.onInsert?.(X,$,X===W?"update":"replace")}if(J!==0&&!this.#j)this.#y();if(this.#j){if(!V)this.#m(w,J,Z);if(q)this.#I(q,w)}if(!Y&&this.#G&&this.#L){let W=this.#L,z;while(z=W?.shift())this.#S?.(...z)}return this}pop(){try{while(this.#q){let $=this.#Q[this.#F];if(this.#v(!0),this.#w($)){if($.__staleWhileFetching)return $.__staleWhileFetching}else if($!==void 0)return $}}finally{if(this.#G&&this.#L){let $=this.#L,X;while(X=$?.shift())this.#S?.(...X)}}}#v($){let X=this.#F,Q=this.#V[X],J=this.#Q[X];if(this.#D&&this.#w(J))J.__abortController.abort(Error("evicted"));else if(this.#_||this.#G){if(this.#_)this.#Y?.(J,Q,"evict");if(this.#G)this.#L?.push([J,Q,"evict"])}if(this.#x(X),$)this.#V[X]=void 0,this.#Q[X]=void 0,this.#C.push(X);if(this.#q===1)this.#F=this.#B=0,this.#C.length=0;else this.#F=this.#U[X];return this.#W.delete(Q),this.#q--,X}has($,X={}){let{updateAgeOnHas:Q=this.updateAgeOnHas,status:J}=X,Z=this.#W.get($);if(Z!==void 0){let Y=this.#Q[Z];if(this.#w(Y)&&Y.__staleWhileFetching===void 0)return!1;if(!this.#A(Z)){if(Q)this.#P(Z);if(J)J.has="hit",this.#I(J,Z);return!0}else if(J)J.has="stale",this.#I(J,Z)}else if(J)J.has="miss";return!1}peek($,X={}){let{allowStale:Q=this.allowStale}=X,J=this.#W.get($);if(J===void 0||!Q&&this.#A(J))return;let Z=this.#Q[J];return this.#w(Z)?Z.__staleWhileFetching:Z}#l($,X,Q,J){let Z=X===void 0?void 0:this.#Q[X];if(this.#w(Z))return Z;let Y=new y$,{signal:S}=Q;S?.addEventListener("abort",()=>Y.abort(S.reason),{signal:Y.signal});let q={signal:Y.signal,options:Q,context:J},V=(j,K=!1)=>{let{aborted:R}=Y.signal,C=Q.ignoreFetchAbort&&j!==void 0;if(Q.status)if(R&&!K){if(Q.status.fetchAborted=!0,Q.status.fetchError=Y.signal.reason,C)Q.status.fetchAbortIgnored=!0}else Q.status.fetchResolved=!0;if(R&&!C&&!K)return w(Y.signal.reason);let N=z,D=this.#Q[X];if(D===z||C&&K&&D===void 0)if(j===void 0)if(N.__staleWhileFetching!==void 0)this.#Q[X]=N.__staleWhileFetching;else this.#k($,"fetch");else{if(Q.status)Q.status.fetchUpdated=!0;this.set($,j,q.options)}return j},H=(j)=>{if(Q.status)Q.status.fetchRejected=!0,Q.status.fetchError=j;return w(j)},w=(j)=>{let{aborted:K}=Y.signal,R=K&&Q.allowStaleOnFetchAbort,C=R||Q.allowStaleOnFetchRejection,N=C||Q.noDeleteOnFetchRejection,D=z;if(this.#Q[X]===z){if(!N||D.__staleWhileFetching===void 0)this.#k($,"fetch");else if(!R)this.#Q[X]=D.__staleWhileFetching}if(C){if(Q.status&&D.__staleWhileFetching!==void 0)Q.status.returnedStale=!0;return D.__staleWhileFetching}else if(D.__returned===D)throw j},W=(j,K)=>{let R=this.#K?.($,Z,q);if(R&&R instanceof Promise)R.then((C)=>j(C===void 0?void 0:C),K);Y.signal.addEventListener("abort",()=>{if(!Q.ignoreFetchAbort||Q.allowStaleOnFetchAbort){if(j(void 0),Q.allowStaleOnFetchAbort)j=(C)=>V(C,!0)}})};if(Q.status)Q.status.fetchDispatched=!0;let z=new Promise(W).then(V,H),B=Object.assign(z,{__abortController:Y,__staleWhileFetching:Z,__returned:void 0});if(X===void 0)this.set($,B,{...q.options,status:void 0}),X=this.#W.get($);else this.#Q[X]=B;return B}#w($){if(!this.#D)return!1;let X=$;return!!X&&X instanceof Promise&&X.hasOwnProperty("__staleWhileFetching")&&X.__abortController instanceof y$}async fetch($,X={}){let{allowStale:Q=this.allowStale,updateAgeOnGet:J=this.updateAgeOnGet,noDeleteOnStaleGet:Z=this.noDeleteOnStaleGet,ttl:Y=this.ttl,noDisposeOnSet:S=this.noDisposeOnSet,size:q=0,sizeCalculation:V=this.sizeCalculation,noUpdateTTL:H=this.noUpdateTTL,noDeleteOnFetchRejection:w=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:W=this.allowStaleOnFetchRejection,ignoreFetchAbort:z=this.ignoreFetchAbort,allowStaleOnFetchAbort:B=this.allowStaleOnFetchAbort,context:j,forceRefresh:K=!1,status:R,signal:C}=X;if(!this.#D){if(R)R.fetch="get";return this.get($,{allowStale:Q,updateAgeOnGet:J,noDeleteOnStaleGet:Z,status:R})}let N={allowStale:Q,updateAgeOnGet:J,noDeleteOnStaleGet:Z,ttl:Y,noDisposeOnSet:S,size:q,sizeCalculation:V,noUpdateTTL:H,noDeleteOnFetchRejection:w,allowStaleOnFetchRejection:W,allowStaleOnFetchAbort:B,ignoreFetchAbort:z,status:R,signal:C},D=this.#W.get($);if(D===void 0){if(R)R.fetch="miss";let k=this.#l($,D,N,j);return k.__returned=k}else{let k=this.#Q[D];if(this.#w(k)){let s1=Q&&k.__staleWhileFetching!==void 0;if(R){if(R.fetch="inflight",s1)R.returnedStale=!0}return s1?k.__staleWhileFetching:k.__returned=k}let q1=this.#A(D);if(!K&&!q1){if(R)R.fetch="hit";if(this.#b(D),J)this.#P(D);if(R)this.#I(R,D);return k}let X1=this.#l($,D,N,j),j1=X1.__staleWhileFetching!==void 0&&Q;if(R){if(R.fetch=q1?"stale":"refresh",j1&&q1)R.returnedStale=!0}return j1?X1.__staleWhileFetching:X1.__returned=X1}}async forceFetch($,X={}){let Q=await this.fetch($,X);if(Q===void 0)throw Error("fetch() returned undefined");return Q}memo($,X={}){let Q=this.#R;if(!Q)throw Error("no memoMethod provided to constructor");let{context:J,forceRefresh:Z,...Y}=X,S=this.get($,Y);if(!Z&&S!==void 0)return S;let q=Q($,S,{options:Y,context:J});return this.set($,q,Y),q}get($,X={}){let{allowStale:Q=this.allowStale,updateAgeOnGet:J=this.updateAgeOnGet,noDeleteOnStaleGet:Z=this.noDeleteOnStaleGet,status:Y}=X,S=this.#W.get($);if(S!==void 0){let q=this.#Q[S],V=this.#w(q);if(Y)this.#I(Y,S);if(this.#A(S)){if(Y)Y.get="stale";if(!V){if(!Z)this.#k($,"expire");if(Y&&Q)Y.returnedStale=!0;return Q?q:void 0}else{if(Y&&Q&&q.__staleWhileFetching!==void 0)Y.returnedStale=!0;return Q?q.__staleWhileFetching:void 0}}else{if(Y)Y.get="hit";if(V)return q.__staleWhileFetching;if(this.#b(S),J)this.#P(S);return q}}else if(Y)Y.get="miss"}#d($,X){this.#M[X]=$,this.#U[$]=X}#b($){if($!==this.#B){if($===this.#F)this.#F=this.#U[$];else this.#d(this.#M[$],this.#U[$]);this.#d(this.#B,$),this.#B=$}}delete($){return this.#k($,"delete")}#k($,X){let Q=!1;if(this.#q!==0){let J=this.#W.get($);if(J!==void 0)if(Q=!0,this.#q===1)this.#u(X);else{this.#x(J);let Z=this.#Q[J];if(this.#w(Z))Z.__abortController.abort(Error("deleted"));else if(this.#_||this.#G){if(this.#_)this.#Y?.(Z,$,X);if(this.#G)this.#L?.push([Z,$,X])}if(this.#W.delete($),this.#V[J]=void 0,this.#Q[J]=void 0,J===this.#B)this.#B=this.#M[J];else if(J===this.#F)this.#F=this.#U[J];else{let Y=this.#M[J];this.#U[Y]=this.#U[J];let S=this.#U[J];this.#M[S]=this.#M[J]}this.#q--,this.#C.push(J)}}if(this.#G&&this.#L?.length){let J=this.#L,Z;while(Z=J?.shift())this.#S?.(...Z)}return Q}clear(){return this.#u("delete")}#u($){for(let X of this.#O({allowStale:!0})){let Q=this.#Q[X];if(this.#w(Q))Q.__abortController.abort(Error("deleted"));else{let J=this.#V[X];if(this.#_)this.#Y?.(Q,J,$);if(this.#G)this.#L?.push([Q,J,$])}}if(this.#W.clear(),this.#Q.fill(void 0),this.#V.fill(void 0),this.#j&&this.#E)this.#j.fill(0),this.#E.fill(0);if(this.#T)this.#T.fill(0);if(this.#F=0,this.#B=0,this.#C.length=0,this.#z=0,this.#q=0,this.#G&&this.#L){let X=this.#L,Q;while(Q=X?.shift())this.#S?.(...Q)}}}import{posix as gq,win32 as z4}from"path";import{fileURLToPath as uq}from"url";import{lstatSync as mq,readdir as cq,readdirSync as lq,readlinkSync as dq,realpathSync as pq}from"fs";import*as iq from"fs";import{lstat as nq,readdir as sq,readlink as aq,realpath as tq}from"fs/promises";import{EventEmitter as V4}from"events";import mX from"stream";import{StringDecoder as Pq}from"string_decoder";var bX=typeof process==="object"&&process?process:{stdout:null,stderr:null},Nq=($)=>!!$&&typeof $==="object"&&($ instanceof Z0||$ instanceof mX||kq($)||Oq($)),kq=($)=>!!$&&typeof $==="object"&&$ instanceof V4&&typeof $.pipe==="function"&&$.pipe!==mX.Writable.prototype.pipe,Oq=($)=>!!$&&typeof $==="object"&&$ instanceof V4&&typeof $.write==="function"&&typeof $.end==="function",x1=Symbol("EOF"),f1=Symbol("maybeEmitEnd"),o1=Symbol("emittedEnd"),x$=Symbol("emittingEnd"),a0=Symbol("emittedError"),f$=Symbol("closed"),hX=Symbol("read"),v$=Symbol("flush"),gX=Symbol("flushChunk"),M1=Symbol("encoding"),M0=Symbol("decoder"),o=Symbol("flowing"),t0=Symbol("paused"),_0=Symbol("resume"),n=Symbol("buffer"),Y1=Symbol("pipes"),s=Symbol("bufferLength"),J4=Symbol("bufferPush"),b$=Symbol("bufferShift"),$1=Symbol("objectMode"),l=Symbol("destroyed"),Z4=Symbol("error"),Y4=Symbol("emitData"),uX=Symbol("emitEnd"),S4=Symbol("emitEnd2"),E1=Symbol("async"),q4=Symbol("abort"),h$=Symbol("aborted"),r0=Symbol("signal"),J0=Symbol("dataListeners"),W1=Symbol("discarded"),e0=($)=>Promise.resolve().then($),yq=($)=>$(),xq=($)=>$==="end"||$==="finish"||$==="prefinish",fq=($)=>$ instanceof ArrayBuffer||!!$&&typeof $==="object"&&$.constructor&&$.constructor.name==="ArrayBuffer"&&$.byteLength>=0,vq=($)=>!Buffer.isBuffer($)&&ArrayBuffer.isView($);class w4{src;dest;opts;ondrain;constructor($,X,Q){this.src=$,this.dest=X,this.opts=Q,this.ondrain=()=>$[_0](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors($){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class cX extends w4{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor($,X,Q){super($,X,Q);this.proxyErrors=(J)=>X.emit("error",J),$.on("error",this.proxyErrors)}}var bq=($)=>!!$.objectMode,hq=($)=>!$.objectMode&&!!$.encoding&&$.encoding!=="buffer";class Z0 extends V4{[o]=!1;[t0]=!1;[Y1]=[];[n]=[];[$1];[M1];[E1];[M0];[x1]=!1;[o1]=!1;[x$]=!1;[f$]=!1;[a0]=null;[s]=0;[l]=!1;[r0];[h$]=!1;[J0]=0;[W1]=!1;writable=!0;readable=!0;constructor(...$){let X=$[0]||{};super();if(X.objectMode&&typeof X.encoding==="string")throw TypeError("Encoding and objectMode may not be used together");if(bq(X))this[$1]=!0,this[M1]=null;else if(hq(X))this[M1]=X.encoding,this[$1]=!1;else this[$1]=!1,this[M1]=null;if(this[E1]=!!X.async,this[M0]=this[M1]?new Pq(this[M1]):null,X&&X.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[n]});if(X&&X.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[Y1]});let{signal:Q}=X;if(Q)if(this[r0]=Q,Q.aborted)this[q4]();else Q.addEventListener("abort",()=>this[q4]())}get bufferLength(){return this[s]}get encoding(){return this[M1]}set encoding($){throw Error("Encoding must be set at instantiation time")}setEncoding($){throw Error("Encoding must be set at instantiation time")}get objectMode(){return this[$1]}set objectMode($){throw Error("objectMode must be set at instantiation time")}get["async"](){return this[E1]}set["async"]($){this[E1]=this[E1]||!!$}[q4](){this[h$]=!0,this.emit("abort",this[r0]?.reason),this.destroy(this[r0]?.reason)}get aborted(){return this[h$]}set aborted($){}write($,X,Q){if(this[h$])return!1;if(this[x1])throw Error("write after end");if(this[l])return this.emit("error",Object.assign(Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof X==="function")Q=X,X="utf8";if(!X)X="utf8";let J=this[E1]?e0:yq;if(!this[$1]&&!Buffer.isBuffer($)){if(vq($))$=Buffer.from($.buffer,$.byteOffset,$.byteLength);else if(fq($))$=Buffer.from($);else if(typeof $!=="string")throw Error("Non-contiguous data written to non-objectMode stream")}if(this[$1]){if(this[o]&&this[s]!==0)this[v$](!0);if(this[o])this.emit("data",$);else this[J4]($);if(this[s]!==0)this.emit("readable");if(Q)J(Q);return this[o]}if(!$.length){if(this[s]!==0)this.emit("readable");if(Q)J(Q);return this[o]}if(typeof $==="string"&&!(X===this[M1]&&!this[M0]?.lastNeed))$=Buffer.from($,X);if(Buffer.isBuffer($)&&this[M1])$=this[M0].write($);if(this[o]&&this[s]!==0)this[v$](!0);if(this[o])this.emit("data",$);else this[J4]($);if(this[s]!==0)this.emit("readable");if(Q)J(Q);return this[o]}read($){if(this[l])return null;if(this[W1]=!1,this[s]===0||$===0||$&&$>this[s])return this[f1](),null;if(this[$1])$=null;if(this[n].length>1&&!this[$1])this[n]=[this[M1]?this[n].join(""):Buffer.concat(this[n],this[s])];let X=this[hX]($||null,this[n][0]);return this[f1](),X}[hX]($,X){if(this[$1])this[b$]();else{let Q=X;if($===Q.length||$===null)this[b$]();else if(typeof Q==="string")this[n][0]=Q.slice($),X=Q.slice(0,$),this[s]-=$;else this[n][0]=Q.subarray($),X=Q.subarray(0,$),this[s]-=$}if(this.emit("data",X),!this[n].length&&!this[x1])this.emit("drain");return X}end($,X,Q){if(typeof $==="function")Q=$,$=void 0;if(typeof X==="function")Q=X,X="utf8";if($!==void 0)this.write($,X);if(Q)this.once("end",Q);if(this[x1]=!0,this.writable=!1,this[o]||!this[t0])this[f1]();return this}[_0](){if(this[l])return;if(!this[J0]&&!this[Y1].length)this[W1]=!0;if(this[t0]=!1,this[o]=!0,this.emit("resume"),this[n].length)this[v$]();else if(this[x1])this[f1]();else this.emit("drain")}resume(){return this[_0]()}pause(){this[o]=!1,this[t0]=!0,this[W1]=!1}get destroyed(){return this[l]}get flowing(){return this[o]}get paused(){return this[t0]}[J4]($){if(this[$1])this[s]+=1;else this[s]+=$.length;this[n].push($)}[b$](){if(this[$1])this[s]-=1;else this[s]-=this[n][0].length;return this[n].shift()}[v$]($=!1){do;while(this[gX](this[b$]())&&this[n].length);if(!$&&!this[n].length&&!this[x1])this.emit("drain")}[gX]($){return this.emit("data",$),this[o]}pipe($,X){if(this[l])return $;this[W1]=!1;let Q=this[o1];if(X=X||{},$===bX.stdout||$===bX.stderr)X.end=!1;else X.end=X.end!==!1;if(X.proxyErrors=!!X.proxyErrors,Q){if(X.end)$.end()}else if(this[Y1].push(!X.proxyErrors?new w4(this,$,X):new cX(this,$,X)),this[E1])e0(()=>this[_0]());else this[_0]();return $}unpipe($){let X=this[Y1].find((Q)=>Q.dest===$);if(X){if(this[Y1].length===1){if(this[o]&&this[J0]===0)this[o]=!1;this[Y1]=[]}else this[Y1].splice(this[Y1].indexOf(X),1);X.unpipe()}}addListener($,X){return this.on($,X)}on($,X){let Q=super.on($,X);if($==="data"){if(this[W1]=!1,this[J0]++,!this[Y1].length&&!this[o])this[_0]()}else if($==="readable"&&this[s]!==0)super.emit("readable");else if(xq($)&&this[o1])super.emit($),this.removeAllListeners($);else if($==="error"&&this[a0]){let J=X;if(this[E1])e0(()=>J.call(this,this[a0]));else J.call(this,this[a0])}return Q}removeListener($,X){return this.off($,X)}off($,X){let Q=super.off($,X);if($==="data"){if(this[J0]=this.listeners("data").length,this[J0]===0&&!this[W1]&&!this[Y1].length)this[o]=!1}return Q}removeAllListeners($){let X=super.removeAllListeners($);if($==="data"||$===void 0){if(this[J0]=0,!this[W1]&&!this[Y1].length)this[o]=!1}return X}get emittedEnd(){return this[o1]}[f1](){if(!this[x$]&&!this[o1]&&!this[l]&&this[n].length===0&&this[x1]){if(this[x$]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[f$])this.emit("close");this[x$]=!1}}emit($,...X){let Q=X[0];if($!=="error"&&$!=="close"&&$!==l&&this[l])return!1;else if($==="data")return!this[$1]&&!Q?!1:this[E1]?(e0(()=>this[Y4](Q)),!0):this[Y4](Q);else if($==="end")return this[uX]();else if($==="close"){if(this[f$]=!0,!this[o1]&&!this[l])return!1;let Z=super.emit("close");return this.removeAllListeners("close"),Z}else if($==="error"){this[a0]=Q,super.emit(Z4,Q);let Z=!this[r0]||this.listeners("error").length?super.emit("error",Q):!1;return this[f1](),Z}else if($==="resume"){let Z=super.emit("resume");return this[f1](),Z}else if($==="finish"||$==="prefinish"){let Z=super.emit($);return this.removeAllListeners($),Z}let J=super.emit($,...X);return this[f1](),J}[Y4]($){for(let Q of this[Y1])if(Q.dest.write($)===!1)this.pause();let X=this[W1]?!1:super.emit("data",$);return this[f1](),X}[uX](){if(this[o1])return!1;return this[o1]=!0,this.readable=!1,this[E1]?(e0(()=>this[S4]()),!0):this[S4]()}[S4](){if(this[M0]){let X=this[M0].end();if(X){for(let Q of this[Y1])Q.dest.write(X);if(!this[W1])super.emit("data",X)}}for(let X of this[Y1])X.end();let $=super.emit("end");return this.removeAllListeners("end"),$}async collect(){let $=Object.assign([],{dataLength:0});if(!this[$1])$.dataLength=0;let X=this.promise();return this.on("data",(Q)=>{if($.push(Q),!this[$1])$.dataLength+=Q.length}),await X,$}async concat(){if(this[$1])throw Error("cannot concat in objectMode");let $=await this.collect();return this[M1]?$.join(""):Buffer.concat($,$.dataLength)}async promise(){return new Promise(($,X)=>{this.on(l,()=>X(Error("stream destroyed"))),this.on("error",(Q)=>X(Q)),this.on("end",()=>$())})}[Symbol.asyncIterator](){this[W1]=!1;let $=!1,X=async()=>{return this.pause(),$=!0,{value:void 0,done:!0}};return{next:()=>{if($)return X();let J=this.read();if(J!==null)return Promise.resolve({done:!1,value:J});if(this[x1])return X();let Z,Y,S=(w)=>{this.off("data",q),this.off("end",V),this.off(l,H),X(),Y(w)},q=(w)=>{this.off("error",S),this.off("end",V),this.off(l,H),this.pause(),Z({value:w,done:!!this[x1]})},V=()=>{this.off("error",S),this.off("data",q),this.off(l,H),X(),Z({done:!0,value:void 0})},H=()=>S(Error("stream destroyed"));return new Promise((w,W)=>{Y=W,Z=w,this.once(l,H),this.once("error",S),this.once("end",V),this.once("data",q)})},throw:X,return:X,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[W1]=!1;let $=!1,X=()=>{return this.pause(),this.off(Z4,X),this.off(l,X),this.off("end",X),$=!0,{done:!0,value:void 0}},Q=()=>{if($)return X();let J=this.read();return J===null?X():{done:!1,value:J}};return this.once("end",X),this.once(Z4,X),this.once(l,X),{next:Q,throw:X,return:X,[Symbol.iterator](){return this}}}destroy($){if(this[l]){if($)this.emit("error",$);else this.emit(l);return this}this[l]=!0,this[W1]=!0,this[n].length=0,this[s]=0;let X=this;if(typeof X.close==="function"&&!this[f$])X.close();if($)this.emit("error",$);else this.emit(l);return this}static get isStream(){return Nq}}var oq=pq.native,X$={lstatSync:mq,readdir:cq,readdirSync:lq,readlinkSync:dq,realpathSync:oq,promises:{lstat:nq,readdir:sq,readlink:aq,realpath:tq}},oX=($)=>!$||$===X$||$===iq?X$:{...X$,...$,promises:{...X$.promises,...$.promises||{}}},nX=/^\\\\\?\\([a-z]:)\\?$/i,rq=($)=>$.replace(/\//g,"\\").replace(nX,"$1\\"),eq=/[\\\/]/,L1=0,sX=1,aX=2,D1=4,tX=6,rX=8,Y0=10,eX=12,B1=15,$$=~B1,H4=16,lX=32,Q$=64,_1=128,g$=256,m$=512,dX=Q$|_1|m$,$V=1023,W4=($)=>$.isFile()?rX:$.isDirectory()?D1:$.isSymbolicLink()?Y0:$.isCharacterDevice()?aX:$.isBlockDevice()?tX:$.isSocket()?eX:$.isFIFO()?sX:L1,pX=new Map,J$=($)=>{let X=pX.get($);if(X)return X;let Q=$.normalize("NFKD");return pX.set($,Q),Q},iX=new Map,u$=($)=>{let X=iX.get($);if(X)return X;let Q=J$($.toLowerCase());return iX.set($,Q),Q};class G4 extends s0{constructor(){super({max:256})}}class $8 extends s0{constructor($=16384){super({maxSize:$,sizeCalculation:(X)=>X.length+1})}}var X8=Symbol("PathScurry setAsCwd");class S1{name;root;roots;parent;nocase;isCWD=!1;#$;#X;get dev(){return this.#X}#Y;get mode(){return this.#Y}#Z;get nlink(){return this.#Z}#S;get uid(){return this.#S}#K;get gid(){return this.#K}#R;get rdev(){return this.#R}#H;get blksize(){return this.#H}#q;get ino(){return this.#q}#z;get size(){return this.#z}#W;get blocks(){return this.#W}#V;get atimeMs(){return this.#V}#Q;get mtimeMs(){return this.#Q}#U;get ctimeMs(){return this.#U}#M;get birthtimeMs(){return this.#M}#F;get atime(){return this.#F}#B;get mtime(){return this.#B}#C;get ctime(){return this.#C}#L;get birthtime(){return this.#L}#T;#E;#j;#_;#D;#G;#J;#y;#P;#I;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor($,X=L1,Q,J,Z,Y,S){if(this.name=$,this.#T=Z?u$($):J$($),this.#J=X&$V,this.nocase=Z,this.roots=J,this.root=Q||this,this.#y=Y,this.#j=S.fullpath,this.#D=S.relative,this.#G=S.relativePosix,this.parent=S.parent,this.parent)this.#$=this.parent.#$;else this.#$=oX(S.fs)}depth(){if(this.#E!==void 0)return this.#E;if(!this.parent)return this.#E=0;return this.#E=this.parent.depth()+1}childrenCache(){return this.#y}resolve($){if(!$)return this;let X=this.getRootString($),J=$.substring(X.length).split(this.splitSep);return X?this.getRoot(X).#m(J):this.#m(J)}#m($){let X=this;for(let Q of $)X=X.child(Q);return X}children(){let $=this.#y.get(this);if($)return $;let X=Object.assign([],{provisional:0});return this.#y.set(this,X),this.#J&=~H4,X}child($,X){if($===""||$===".")return this;if($==="..")return this.parent||this;let Q=this.children(),J=this.nocase?u$($):J$($);for(let q of Q)if(q.#T===J)return q;let Z=this.parent?this.sep:"",Y=this.#j?this.#j+Z+$:void 0,S=this.newChild($,L1,{...X,parent:this,fullpath:Y});if(!this.canReaddir())S.#J|=_1;return Q.push(S),S}relative(){if(this.isCWD)return"";if(this.#D!==void 0)return this.#D;let $=this.name,X=this.parent;if(!X)return this.#D=this.name;let Q=X.relative();return Q+(!Q||!X.parent?"":this.sep)+$}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#G!==void 0)return this.#G;let $=this.name,X=this.parent;if(!X)return this.#G=this.fullpathPosix();let Q=X.relativePosix();return Q+(!Q||!X.parent?"":"/")+$}fullpath(){if(this.#j!==void 0)return this.#j;let $=this.name,X=this.parent;if(!X)return this.#j=this.name;let J=X.fullpath()+(!X.parent?"":this.sep)+$;return this.#j=J}fullpathPosix(){if(this.#_!==void 0)return this.#_;if(this.sep==="/")return this.#_=this.fullpath();if(!this.parent){let J=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(J))return this.#_=`//?/${J}`;else return this.#_=J}let $=this.parent,X=$.fullpathPosix(),Q=X+(!X||!$.parent?"":"/")+this.name;return this.#_=Q}isUnknown(){return(this.#J&B1)===L1}isType($){return this[`is${$}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#J&B1)===rX}isDirectory(){return(this.#J&B1)===D1}isCharacterDevice(){return(this.#J&B1)===aX}isBlockDevice(){return(this.#J&B1)===tX}isFIFO(){return(this.#J&B1)===sX}isSocket(){return(this.#J&B1)===eX}isSymbolicLink(){return(this.#J&Y0)===Y0}lstatCached(){return this.#J&lX?this:void 0}readlinkCached(){return this.#P}realpathCached(){return this.#I}readdirCached(){let $=this.children();return $.slice(0,$.provisional)}canReadlink(){if(this.#P)return!0;if(!this.parent)return!1;let $=this.#J&B1;return!($!==L1&&$!==Y0||this.#J&g$||this.#J&_1)}calledReaddir(){return!!(this.#J&H4)}isENOENT(){return!!(this.#J&_1)}isNamed($){return!this.nocase?this.#T===J$($):this.#T===u$($)}async readlink(){let $=this.#P;if($)return $;if(!this.canReadlink())return;if(!this.parent)return;try{let X=await this.#$.promises.readlink(this.fullpath()),Q=(await this.parent.realpath())?.resolve(X);if(Q)return this.#P=Q}catch(X){this.#c(X.code);return}}readlinkSync(){let $=this.#P;if($)return $;if(!this.canReadlink())return;if(!this.parent)return;try{let X=this.#$.readlinkSync(this.fullpath()),Q=this.parent.realpathSync()?.resolve(X);if(Q)return this.#P=Q}catch(X){this.#c(X.code);return}}#A($){this.#J|=H4;for(let X=$.provisional;X<$.length;X++){let Q=$[X];if(Q)Q.#h()}}#h(){if(this.#J&_1)return;this.#J=(this.#J|_1)&$$,this.#x()}#x(){let $=this.children();$.provisional=0;for(let X of $)X.#h()}#g(){this.#J|=m$,this.#f()}#f(){if(this.#J&Q$)return;let $=this.#J;if(($&B1)===D1)$&=$$;this.#J=$|Q$,this.#x()}#N($=""){if($==="ENOTDIR"||$==="EPERM")this.#f();else if($==="ENOENT")this.#h();else this.children().provisional=0}#O($=""){if($==="ENOTDIR")this.parent.#f();else if($==="ENOENT")this.#h()}#c($=""){let X=this.#J;if(X|=g$,$==="ENOENT")X|=_1;if($==="EINVAL"||$==="UNKNOWN")X&=$$;if(this.#J=X,$==="ENOTDIR"&&this.parent)this.parent.#f()}#v($,X){return this.#w($,X)||this.#l($,X)}#l($,X){let Q=W4($),J=this.newChild($.name,Q,{parent:this}),Z=J.#J&B1;if(Z!==D1&&Z!==Y0&&Z!==L1)J.#J|=Q$;return X.unshift(J),X.provisional++,J}#w($,X){for(let Q=X.provisional;Q<X.length;Q++){let J=X[Q];if((this.nocase?u$($.name):J$($.name))!==J.#T)continue;return this.#d($,J,Q,X)}}#d($,X,Q,J){let Z=X.name;if(X.#J=X.#J&$$|W4($),Z!==$.name)X.name=$.name;if(Q!==J.provisional){if(Q===J.length-1)J.pop();else J.splice(Q,1);J.unshift(X)}return J.provisional++,X}async lstat(){if((this.#J&_1)===0)try{return this.#b(await this.#$.promises.lstat(this.fullpath())),this}catch($){this.#O($.code)}}lstatSync(){if((this.#J&_1)===0)try{return this.#b(this.#$.lstatSync(this.fullpath())),this}catch($){this.#O($.code)}}#b($){let{atime:X,atimeMs:Q,birthtime:J,birthtimeMs:Z,blksize:Y,blocks:S,ctime:q,ctimeMs:V,dev:H,gid:w,ino:W,mode:z,mtime:B,mtimeMs:j,nlink:K,rdev:R,size:C,uid:N}=$;this.#F=X,this.#V=Q,this.#L=J,this.#M=Z,this.#H=Y,this.#W=S,this.#C=q,this.#U=V,this.#X=H,this.#K=w,this.#q=W,this.#Y=z,this.#B=B,this.#Q=j,this.#Z=K,this.#R=R,this.#z=C,this.#S=N;let D=W4($);if(this.#J=this.#J&$$|D|lX,D!==L1&&D!==D1&&D!==Y0)this.#J|=Q$}#k=[];#u=!1;#i($){this.#u=!1;let X=this.#k.slice();this.#k.length=0,X.forEach((Q)=>Q(null,$))}readdirCB($,X=!1){if(!this.canReaddir()){if(X)$(null,[]);else queueMicrotask(()=>$(null,[]));return}let Q=this.children();if(this.calledReaddir()){let Z=Q.slice(0,Q.provisional);if(X)$(null,Z);else queueMicrotask(()=>$(null,Z));return}if(this.#k.push($),this.#u)return;this.#u=!0;let J=this.fullpath();this.#$.readdir(J,{withFileTypes:!0},(Z,Y)=>{if(Z)this.#N(Z.code),Q.provisional=0;else{for(let S of Y)this.#v(S,Q);this.#A(Q)}this.#i(Q.slice(0,Q.provisional));return})}#p;async readdir(){if(!this.canReaddir())return[];let $=this.children();if(this.calledReaddir())return $.slice(0,$.provisional);let X=this.fullpath();if(this.#p)await this.#p;else{let Q=()=>{};this.#p=new Promise((J)=>Q=J);try{for(let J of await this.#$.promises.readdir(X,{withFileTypes:!0}))this.#v(J,$);this.#A($)}catch(J){this.#N(J.code),$.provisional=0}this.#p=void 0,Q()}return $.slice(0,$.provisional)}readdirSync(){if(!this.canReaddir())return[];let $=this.children();if(this.calledReaddir())return $.slice(0,$.provisional);let X=this.fullpath();try{for(let Q of this.#$.readdirSync(X,{withFileTypes:!0}))this.#v(Q,$);this.#A($)}catch(Q){this.#N(Q.code),$.provisional=0}return $.slice(0,$.provisional)}canReaddir(){if(this.#J&dX)return!1;let $=B1&this.#J;if(!($===L1||$===D1||$===Y0))return!1;return!0}shouldWalk($,X){return(this.#J&D1)===D1&&!(this.#J&dX)&&!$.has(this)&&(!X||X(this))}async realpath(){if(this.#I)return this.#I;if((m$|g$|_1)&this.#J)return;try{let $=await this.#$.promises.realpath(this.fullpath());return this.#I=this.resolve($)}catch($){this.#g()}}realpathSync(){if(this.#I)return this.#I;if((m$|g$|_1)&this.#J)return;try{let $=this.#$.realpathSync(this.fullpath());return this.#I=this.resolve($)}catch($){this.#g()}}[X8]($){if($===this)return;$.isCWD=!1,this.isCWD=!0;let X=new Set([]),Q=[],J=this;while(J&&J.parent)X.add(J),J.#D=Q.join(this.sep),J.#G=Q.join("/"),J=J.parent,Q.push("..");J=$;while(J&&J.parent&&!X.has(J))J.#D=void 0,J.#G=void 0,J=J.parent}}class c$ extends S1{sep="\\";splitSep=eq;constructor($,X=L1,Q,J,Z,Y,S){super($,X,Q,J,Z,Y,S)}newChild($,X=L1,Q={}){return new c$($,X,this.root,this.roots,this.nocase,this.childrenCache(),Q)}getRootString($){return z4.parse($).root}getRoot($){if($=rq($.toUpperCase()),$===this.root.name)return this.root;for(let[X,Q]of Object.entries(this.roots))if(this.sameRoot($,X))return this.roots[$]=Q;return this.roots[$]=new Z$($,this).root}sameRoot($,X=this.root.name){return $=$.toUpperCase().replace(/\//g,"\\").replace(nX,"$1\\"),$===X}}class l$ extends S1{splitSep="/";sep="/";constructor($,X=L1,Q,J,Z,Y,S){super($,X,Q,J,Z,Y,S)}getRootString($){return $.startsWith("/")?"/":""}getRoot($){return this.root}newChild($,X=L1,Q={}){return new l$($,X,this.root,this.roots,this.nocase,this.childrenCache(),Q)}}class U4{root;rootPath;roots;cwd;#$;#X;#Y;nocase;#Z;constructor($=process.cwd(),X,Q,{nocase:J,childrenCacheSize:Z=16384,fs:Y=X$}={}){if(this.#Z=oX(Y),$ instanceof URL||$.startsWith("file://"))$=uq($);let S=X.resolve($);this.roots=Object.create(null),this.rootPath=this.parseRootPath(S),this.#$=new G4,this.#X=new G4,this.#Y=new $8(Z);let q=S.substring(this.rootPath.length).split(Q);if(q.length===1&&!q[0])q.pop();if(J===void 0)throw TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=J,this.root=this.newRoot(this.#Z),this.roots[this.rootPath]=this.root;let V=this.root,H=q.length-1,w=X.sep,W=this.rootPath,z=!1;for(let B of q){let j=H--;V=V.child(B,{relative:Array(j).fill("..").join(w),relativePosix:Array(j).fill("..").join("/"),fullpath:W+=(z?"":w)+B}),z=!0}this.cwd=V}depth($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.depth()}childrenCache(){return this.#Y}resolve(...$){let X="";for(let Z=$.length-1;Z>=0;Z--){let Y=$[Z];if(!Y||Y===".")continue;if(X=X?`${Y}/${X}`:Y,this.isAbsolute(Y))break}let Q=this.#$.get(X);if(Q!==void 0)return Q;let J=this.cwd.resolve(X).fullpath();return this.#$.set(X,J),J}resolvePosix(...$){let X="";for(let Z=$.length-1;Z>=0;Z--){let Y=$[Z];if(!Y||Y===".")continue;if(X=X?`${Y}/${X}`:Y,this.isAbsolute(Y))break}let Q=this.#X.get(X);if(Q!==void 0)return Q;let J=this.cwd.resolve(X).fullpathPosix();return this.#X.set(X,J),J}relative($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.relative()}relativePosix($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.relativePosix()}basename($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.name}dirname($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return($.parent||$).fullpath()}async readdir($=this.cwd,X={withFileTypes:!0}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q}=X;if(!$.canReaddir())return[];else{let J=await $.readdir();return Q?J:J.map((Z)=>Z.name)}}readdirSync($=this.cwd,X={withFileTypes:!0}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0}=X;if(!$.canReaddir())return[];else if(Q)return $.readdirSync();else return $.readdirSync().map((J)=>J.name)}async lstat($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.lstat()}lstatSync($=this.cwd){if(typeof $==="string")$=this.cwd.resolve($);return $.lstatSync()}async readlink($=this.cwd,{withFileTypes:X}={withFileTypes:!1}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$.withFileTypes,$=this.cwd;let Q=await $.readlink();return X?Q:Q?.fullpath()}readlinkSync($=this.cwd,{withFileTypes:X}={withFileTypes:!1}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$.withFileTypes,$=this.cwd;let Q=$.readlinkSync();return X?Q:Q?.fullpath()}async realpath($=this.cwd,{withFileTypes:X}={withFileTypes:!1}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$.withFileTypes,$=this.cwd;let Q=await $.realpath();return X?Q:Q?.fullpath()}realpathSync($=this.cwd,{withFileTypes:X}={withFileTypes:!1}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$.withFileTypes,$=this.cwd;let Q=$.realpathSync();return X?Q:Q?.fullpath()}async walk($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0,follow:J=!1,filter:Z,walkFilter:Y}=X,S=[];if(!Z||Z($))S.push(Q?$:$.fullpath());let q=new Set,V=(w,W)=>{q.add(w),w.readdirCB((z,B)=>{if(z)return W(z);let j=B.length;if(!j)return W();let K=()=>{if(--j===0)W()};for(let R of B){if(!Z||Z(R))S.push(Q?R:R.fullpath());if(J&&R.isSymbolicLink())R.realpath().then((C)=>C?.isUnknown()?C.lstat():C).then((C)=>C?.shouldWalk(q,Y)?V(C,K):K());else if(R.shouldWalk(q,Y))V(R,K);else K()}},!0)},H=$;return new Promise((w,W)=>{V(H,(z)=>{if(z)return W(z);w(S)})})}walkSync($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0,follow:J=!1,filter:Z,walkFilter:Y}=X,S=[];if(!Z||Z($))S.push(Q?$:$.fullpath());let q=new Set([$]);for(let V of q){let H=V.readdirSync();for(let w of H){if(!Z||Z(w))S.push(Q?w:w.fullpath());let W=w;if(w.isSymbolicLink()){if(!(J&&(W=w.realpathSync())))continue;if(W.isUnknown())W.lstatSync()}if(W.shouldWalk(q,Y))q.add(W)}}return S}[Symbol.asyncIterator](){return this.iterate()}iterate($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;return this.stream($,X)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0,follow:J=!1,filter:Z,walkFilter:Y}=X;if(!Z||Z($))yield Q?$:$.fullpath();let S=new Set([$]);for(let q of S){let V=q.readdirSync();for(let H of V){if(!Z||Z(H))yield Q?H:H.fullpath();let w=H;if(H.isSymbolicLink()){if(!(J&&(w=H.realpathSync())))continue;if(w.isUnknown())w.lstatSync()}if(w.shouldWalk(S,Y))S.add(w)}}}stream($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0,follow:J=!1,filter:Z,walkFilter:Y}=X,S=new Z0({objectMode:!0});if(!Z||Z($))S.write(Q?$:$.fullpath());let q=new Set,V=[$],H=0,w=()=>{let W=!1;while(!W){let z=V.shift();if(!z){if(H===0)S.end();return}H++,q.add(z);let B=(K,R,C=!1)=>{if(K)return S.emit("error",K);if(J&&!C){let N=[];for(let D of R)if(D.isSymbolicLink())N.push(D.realpath().then((k)=>k?.isUnknown()?k.lstat():k));if(N.length){Promise.all(N).then(()=>B(null,R,!0));return}}for(let N of R)if(N&&(!Z||Z(N))){if(!S.write(Q?N:N.fullpath()))W=!0}H--;for(let N of R){let D=N.realpathCached()||N;if(D.shouldWalk(q,Y))V.push(D)}if(W&&!S.flowing)S.once("drain",w);else if(!j)w()},j=!0;z.readdirCB(B,!0),j=!1}};return w(),S}streamSync($=this.cwd,X={}){if(typeof $==="string")$=this.cwd.resolve($);else if(!($ instanceof S1))X=$,$=this.cwd;let{withFileTypes:Q=!0,follow:J=!1,filter:Z,walkFilter:Y}=X,S=new Z0({objectMode:!0}),q=new Set;if(!Z||Z($))S.write(Q?$:$.fullpath());let V=[$],H=0,w=()=>{let W=!1;while(!W){let z=V.shift();if(!z){if(H===0)S.end();return}H++,q.add(z);let B=z.readdirSync();for(let j of B)if(!Z||Z(j)){if(!S.write(Q?j:j.fullpath()))W=!0}H--;for(let j of B){let K=j;if(j.isSymbolicLink()){if(!(J&&(K=j.realpathSync())))continue;if(K.isUnknown())K.lstatSync()}if(K.shouldWalk(q,Y))V.push(K)}}if(W&&!S.flowing)S.once("drain",w)};return w(),S}chdir($=this.cwd){let X=this.cwd;this.cwd=typeof $==="string"?this.cwd.resolve($):$,this.cwd[X8](X)}}class Z$ extends U4{sep="\\";constructor($=process.cwd(),X={}){let{nocase:Q=!0}=X;super($,z4,"\\",{...X,nocase:Q});this.nocase=Q;for(let J=this.cwd;J;J=J.parent)J.nocase=this.nocase}parseRootPath($){return z4.parse($).root.toUpperCase()}newRoot($){return new c$(this.rootPath,D1,void 0,this.roots,this.nocase,this.childrenCache(),{fs:$})}isAbsolute($){return $.startsWith("/")||$.startsWith("\\")||/^[a-z]:(\/|\\)/i.test($)}}class Y$ extends U4{sep="/";constructor($=process.cwd(),X={}){let{nocase:Q=!1}=X;super($,gq,"/",{...X,nocase:Q});this.nocase=Q}parseRootPath($){return"/"}newRoot($){return new l$(this.rootPath,D1,void 0,this.roots,this.nocase,this.childrenCache(),{fs:$})}isAbsolute($){return $.startsWith("/")}}class d$ extends Y${constructor($=process.cwd(),X={}){let{nocase:Q=!0}=X;super($,{...X,nocase:Q})}}var zW=process.platform==="win32"?c$:l$,Q8=process.platform==="win32"?Z$:process.platform==="darwin"?d$:Y$;var XV=($)=>$.length>=1,QV=($)=>$.length>=1;class T0{#$;#X;#Y;length;#Z;#S;#K;#R;#H;#q;#z=!0;constructor($,X,Q,J){if(!XV($))throw TypeError("empty pattern list");if(!QV(X))throw TypeError("empty glob list");if(X.length!==$.length)throw TypeError("mismatched pattern list and glob list lengths");if(this.length=$.length,Q<0||Q>=this.length)throw TypeError("index out of range");if(this.#$=$,this.#X=X,this.#Y=Q,this.#Z=J,this.#Y===0){if(this.isUNC()){let[Z,Y,S,q,...V]=this.#$,[H,w,W,z,...B]=this.#X;if(V[0]==="")V.shift(),B.shift();let j=[Z,Y,S,q,""].join("/"),K=[H,w,W,z,""].join("/");this.#$=[j,...V],this.#X=[K,...B],this.length=this.#$.length}else if(this.isDrive()||this.isAbsolute()){let[Z,...Y]=this.#$,[S,...q]=this.#X;if(Y[0]==="")Y.shift(),q.shift();let V=Z+"/",H=S+"/";this.#$=[V,...Y],this.#X=[H,...q],this.length=this.#$.length}}}pattern(){return this.#$[this.#Y]}isString(){return typeof this.#$[this.#Y]==="string"}isGlobstar(){return this.#$[this.#Y]===e}isRegExp(){return this.#$[this.#Y]instanceof RegExp}globString(){return this.#K=this.#K||(this.#Y===0?this.isAbsolute()?this.#X[0]+this.#X.slice(1).join("/"):this.#X.join("/"):this.#X.slice(this.#Y).join("/"))}hasMore(){return this.length>this.#Y+1}rest(){if(this.#S!==void 0)return this.#S;if(!this.hasMore())return this.#S=null;return this.#S=new T0(this.#$,this.#X,this.#Y+1,this.#Z),this.#S.#q=this.#q,this.#S.#H=this.#H,this.#S.#R=this.#R,this.#S}isUNC(){let $=this.#$;return this.#H!==void 0?this.#H:this.#H=this.#Z==="win32"&&this.#Y===0&&$[0]===""&&$[1]===""&&typeof $[2]==="string"&&!!$[2]&&typeof $[3]==="string"&&!!$[3]}isDrive(){let $=this.#$;return this.#R!==void 0?this.#R:this.#R=this.#Z==="win32"&&this.#Y===0&&this.length>1&&typeof $[0]==="string"&&/^[a-z]:$/i.test($[0])}isAbsolute(){let $=this.#$;return this.#q!==void 0?this.#q:this.#q=$[0]===""&&$.length>1||this.isDrive()||this.isUNC()}root(){let $=this.#$[0];return typeof $==="string"&&this.isAbsolute()&&this.#Y===0?$:""}checkFollowGlobstar(){return!(this.#Y===0||!this.isGlobstar()||!this.#z)}markFollowGlobstar(){if(this.#Y===0||!this.isGlobstar()||!this.#z)return!1;return this.#z=!1,!0}}var JV=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class S${relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor($,{nobrace:X,nocase:Q,noext:J,noglobstar:Z,platform:Y=JV}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=Y,this.mmopts={dot:!0,nobrace:X,nocase:Q,noext:J,noglobstar:Z,optimizationLevel:2,platform:Y,nocomment:!0,nonegate:!0};for(let S of $)this.add(S)}add($){let X=new U1($,this.mmopts);for(let Q=0;Q<X.set.length;Q++){let J=X.set[Q],Z=X.globParts[Q];if(!J||!Z)throw Error("invalid pattern object");while(J[0]==="."&&Z[0]===".")J.shift(),Z.shift();let Y=new T0(J,Z,0,this.platform),S=new U1(Y.globString(),this.mmopts),q=Z[Z.length-1]==="**",V=Y.isAbsolute();if(V)this.absolute.push(S);else this.relative.push(S);if(q)if(V)this.absoluteChildren.push(S);else this.relativeChildren.push(S)}}ignored($){let X=$.fullpath(),Q=`${X}/`,J=$.relative()||".",Z=`${J}/`;for(let Y of this.relative)if(Y.match(J)||Y.match(Z))return!0;for(let Y of this.absolute)if(Y.match(X)||Y.match(Q))return!0;return!1}childrenIgnored($){let X=$.fullpath()+"/",Q=($.relative()||".")+"/";for(let J of this.relativeChildren)if(J.match(Q))return!0;for(let J of this.absoluteChildren)if(J.match(X))return!0;return!1}}class B4{store;constructor($=new Map){this.store=$}copy(){return new B4(new Map(this.store))}hasWalked($,X){return this.store.get($.fullpath())?.has(X.globString())}storeWalked($,X){let Q=$.fullpath(),J=this.store.get(Q);if(J)J.add(X.globString());else this.store.set(Q,new Set([X.globString()]))}}class J8{store=new Map;add($,X,Q){let J=(X?2:0)|(Q?1:0),Z=this.store.get($);this.store.set($,Z===void 0?J:J&Z)}entries(){return[...this.store.entries()].map(([$,X])=>[$,!!(X&2),!!(X&1)])}}class Z8{store=new Map;add($,X){if(!$.canReaddir())return;let Q=this.store.get($);if(Q){if(!Q.find((J)=>J.globString()===X.globString()))Q.push(X)}else this.store.set($,[X])}get($){let X=this.store.get($);if(!X)throw Error("attempting to walk unknown path");return X}entries(){return this.keys().map(($)=>[$,this.store.get($)])}keys(){return[...this.store.keys()].filter(($)=>$.canReaddir())}}class q${hasWalkedCache;matches=new J8;subwalks=new Z8;patterns;follow;dot;opts;constructor($,X){this.opts=$,this.follow=!!$.follow,this.dot=!!$.dot,this.hasWalkedCache=X?X.copy():new B4}processPatterns($,X){this.patterns=X;let Q=X.map((J)=>[$,J]);for(let[J,Z]of Q){this.hasWalkedCache.storeWalked(J,Z);let Y=Z.root(),S=Z.isAbsolute()&&this.opts.absolute!==!1;if(Y){J=J.resolve(Y==="/"&&this.opts.root!==void 0?this.opts.root:Y);let w=Z.rest();if(!w){this.matches.add(J,!0,!1);continue}else Z=w}if(J.isENOENT())continue;let q,V,H=!1;while(typeof(q=Z.pattern())==="string"&&(V=Z.rest()))J=J.resolve(q),Z=V,H=!0;if(q=Z.pattern(),V=Z.rest(),H){if(this.hasWalkedCache.hasWalked(J,Z))continue;this.hasWalkedCache.storeWalked(J,Z)}if(typeof q==="string"){let w=q===".."||q===""||q===".";this.matches.add(J.resolve(q),S,w);continue}else if(q===e){if(!J.isSymbolicLink()||this.follow||Z.checkFollowGlobstar())this.subwalks.add(J,Z);let w=V?.pattern(),W=V?.rest();if(!V||(w===""||w===".")&&!W)this.matches.add(J,S,w===""||w===".");else if(w===".."){let z=J.parent||J;if(!W)this.matches.add(z,S,!0);else if(!this.hasWalkedCache.hasWalked(z,W))this.subwalks.add(z,W)}}else if(q instanceof RegExp)this.subwalks.add(J,Z)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new q$(this.opts,this.hasWalkedCache)}filterEntries($,X){let Q=this.subwalks.get($),J=this.child();for(let Z of X)for(let Y of Q){let S=Y.isAbsolute(),q=Y.pattern(),V=Y.rest();if(q===e)J.testGlobstar(Z,Y,V,S);else if(q instanceof RegExp)J.testRegExp(Z,q,V,S);else J.testString(Z,q,V,S)}return J}testGlobstar($,X,Q,J){if(this.dot||!$.name.startsWith(".")){if(!X.hasMore())this.matches.add($,J,!1);if($.canReaddir()){if(this.follow||!$.isSymbolicLink())this.subwalks.add($,X);else if($.isSymbolicLink()){if(Q&&X.checkFollowGlobstar())this.subwalks.add($,Q);else if(X.markFollowGlobstar())this.subwalks.add($,X)}}}if(Q){let Z=Q.pattern();if(typeof Z==="string"&&Z!==".."&&Z!==""&&Z!==".")this.testString($,Z,Q.rest(),J);else if(Z===".."){let Y=$.parent||$;this.subwalks.add(Y,Q)}else if(Z instanceof RegExp)this.testRegExp($,Z,Q.rest(),J)}}testRegExp($,X,Q,J){if(!X.test($.name))return;if(!Q)this.matches.add($,J,!1);else this.subwalks.add($,Q)}testString($,X,Q,J){if(!$.isNamed(X))return;if(!Q)this.matches.add($,J,!1);else this.subwalks.add($,Q)}}var ZV=($,X)=>typeof $==="string"?new S$([$],X):Array.isArray($)?new S$($,X):$;class L4{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#$=[];#X;#Y;signal;maxDepth;includeChildMatches;constructor($,X,Q){if(this.patterns=$,this.path=X,this.opts=Q,this.#Y=!Q.posix&&Q.platform==="win32"?"\\":"/",this.includeChildMatches=Q.includeChildMatches!==!1,Q.ignore||!this.includeChildMatches){if(this.#X=ZV(Q.ignore??[],Q),!this.includeChildMatches&&typeof this.#X.add!=="function")throw Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=Q.maxDepth||1/0,Q.signal)this.signal=Q.signal,this.signal.addEventListener("abort",()=>{this.#$.length=0})}#Z($){return this.seen.has($)||!!this.#X?.ignored?.($)}#S($){return!!this.#X?.childrenIgnored?.($)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let $=void 0;while(!this.paused&&($=this.#$.shift()))$()}onResume($){if(this.signal?.aborted)return;if(!this.paused)$();else this.#$.push($)}async matchCheck($,X){if(X&&this.opts.nodir)return;let Q;if(this.opts.realpath){if(Q=$.realpathCached()||await $.realpath(),!Q)return;$=Q}let Z=$.isUnknown()||this.opts.stat?await $.lstat():$;if(this.opts.follow&&this.opts.nodir&&Z?.isSymbolicLink()){let Y=await Z.realpath();if(Y&&(Y.isUnknown()||this.opts.stat))await Y.lstat()}return this.matchCheckTest(Z,X)}matchCheckTest($,X){return $&&(this.maxDepth===1/0||$.depth()<=this.maxDepth)&&(!X||$.canReaddir())&&(!this.opts.nodir||!$.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!$.isSymbolicLink()||!$.realpathCached()?.isDirectory())&&!this.#Z($)?$:void 0}matchCheckSync($,X){if(X&&this.opts.nodir)return;let Q;if(this.opts.realpath){if(Q=$.realpathCached()||$.realpathSync(),!Q)return;$=Q}let Z=$.isUnknown()||this.opts.stat?$.lstatSync():$;if(this.opts.follow&&this.opts.nodir&&Z?.isSymbolicLink()){let Y=Z.realpathSync();if(Y&&(Y?.isUnknown()||this.opts.stat))Y.lstatSync()}return this.matchCheckTest(Z,X)}matchFinish($,X){if(this.#Z($))return;if(!this.includeChildMatches&&this.#X?.add){let Z=`${$.relativePosix()}/**`;this.#X.add(Z)}let Q=this.opts.absolute===void 0?X:this.opts.absolute;this.seen.add($);let J=this.opts.mark&&$.isDirectory()?this.#Y:"";if(this.opts.withFileTypes)this.matchEmit($);else if(Q){let Z=this.opts.posix?$.fullpathPosix():$.fullpath();this.matchEmit(Z+J)}else{let Z=this.opts.posix?$.relativePosix():$.relative(),Y=this.opts.dotRelative&&!Z.startsWith(".."+this.#Y)?"."+this.#Y:"";this.matchEmit(!Z?"."+J:Y+Z+J)}}async match($,X,Q){let J=await this.matchCheck($,Q);if(J)this.matchFinish(J,X)}matchSync($,X,Q){let J=this.matchCheckSync($,Q);if(J)this.matchFinish(J,X)}walkCB($,X,Q){if(this.signal?.aborted)Q();this.walkCB2($,X,new q$(this.opts),Q)}walkCB2($,X,Q,J){if(this.#S($))return J();if(this.signal?.aborted)J();if(this.paused){this.onResume(()=>this.walkCB2($,X,Q,J));return}Q.processPatterns($,X);let Z=1,Y=()=>{if(--Z===0)J()};for(let[S,q,V]of Q.matches.entries()){if(this.#Z(S))continue;Z++,this.match(S,q,V).then(()=>Y())}for(let S of Q.subwalkTargets()){if(this.maxDepth!==1/0&&S.depth()>=this.maxDepth)continue;Z++;let q=S.readdirCached();if(S.calledReaddir())this.walkCB3(S,q,Q,Y);else S.readdirCB((V,H)=>this.walkCB3(S,H,Q,Y),!0)}Y()}walkCB3($,X,Q,J){Q=Q.filterEntries($,X);let Z=1,Y=()=>{if(--Z===0)J()};for(let[S,q,V]of Q.matches.entries()){if(this.#Z(S))continue;Z++,this.match(S,q,V).then(()=>Y())}for(let[S,q]of Q.subwalks.entries())Z++,this.walkCB2(S,q,Q.child(),Y);Y()}walkCBSync($,X,Q){if(this.signal?.aborted)Q();this.walkCB2Sync($,X,new q$(this.opts),Q)}walkCB2Sync($,X,Q,J){if(this.#S($))return J();if(this.signal?.aborted)J();if(this.paused){this.onResume(()=>this.walkCB2Sync($,X,Q,J));return}Q.processPatterns($,X);let Z=1,Y=()=>{if(--Z===0)J()};for(let[S,q,V]of Q.matches.entries()){if(this.#Z(S))continue;this.matchSync(S,q,V)}for(let S of Q.subwalkTargets()){if(this.maxDepth!==1/0&&S.depth()>=this.maxDepth)continue;Z++;let q=S.readdirSync();this.walkCB3Sync(S,q,Q,Y)}Y()}walkCB3Sync($,X,Q,J){Q=Q.filterEntries($,X);let Z=1,Y=()=>{if(--Z===0)J()};for(let[S,q,V]of Q.matches.entries()){if(this.#Z(S))continue;this.matchSync(S,q,V)}for(let[S,q]of Q.subwalks.entries())Z++,this.walkCB2Sync(S,q,Q.child(),Y);Y()}}class p$ extends L4{matches=new Set;constructor($,X,Q){super($,X,Q)}matchEmit($){this.matches.add($)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise(($,X)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)X(this.signal.reason);else $(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class i$ extends L4{results;constructor($,X,Q){super($,X,Q);this.results=new Z0({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit($){if(this.results.write($),!this.results.flowing)this.pause()}stream(){let $=this.path;if($.isUnknown())$.lstat().then(()=>{this.walkCB($,this.patterns,()=>this.results.end())});else this.walkCB($,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var SV=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class C1{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor($,X){if(!X)throw TypeError("glob options required");if(this.withFileTypes=!!X.withFileTypes,this.signal=X.signal,this.follow=!!X.follow,this.dot=!!X.dot,this.dotRelative=!!X.dotRelative,this.nodir=!!X.nodir,this.mark=!!X.mark,!X.cwd)this.cwd="";else if(X.cwd instanceof URL||X.cwd.startsWith("file://"))X.cwd=YV(X.cwd);if(this.cwd=X.cwd||"",this.root=X.root,this.magicalBraces=!!X.magicalBraces,this.nobrace=!!X.nobrace,this.noext=!!X.noext,this.realpath=!!X.realpath,this.absolute=X.absolute,this.includeChildMatches=X.includeChildMatches!==!1,this.noglobstar=!!X.noglobstar,this.matchBase=!!X.matchBase,this.maxDepth=typeof X.maxDepth==="number"?X.maxDepth:1/0,this.stat=!!X.stat,this.ignore=X.ignore,this.withFileTypes&&this.absolute!==void 0)throw Error("cannot set absolute and withFileTypes:true");if(typeof $==="string")$=[$];if(this.windowsPathsNoEscape=!!X.windowsPathsNoEscape||X.allowWindowsEscape===!1,this.windowsPathsNoEscape)$=$.map((q)=>q.replace(/\\/g,"/"));if(this.matchBase){if(X.noglobstar)throw TypeError("base matching requires globstar");$=$.map((q)=>q.includes("/")?q:`./**/${q}`)}if(this.pattern=$,this.platform=X.platform||SV,this.opts={...X,platform:this.platform},X.scurry){if(this.scurry=X.scurry,X.nocase!==void 0&&X.nocase!==X.scurry.nocase)throw Error("nocase option contradicts provided scurry option")}else{let q=X.platform==="win32"?Z$:X.platform==="darwin"?d$:X.platform?Y$:Q8;this.scurry=new q(this.cwd,{nocase:X.nocase,fs:X.fs})}this.nocase=this.scurry.nocase;let Q=this.platform==="darwin"||this.platform==="win32",J={...X,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:Q,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},Z=this.pattern.map((q)=>new U1(q,J)),[Y,S]=Z.reduce((q,V)=>{return q[0].push(...V.set),q[1].push(...V.globParts),q},[[],[]]);this.patterns=Y.map((q,V)=>{let H=S[V];if(!H)throw Error("invalid pattern object");return new T0(q,H,0,this.platform)})}async walk(){return[...await new p$(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new p$(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new i$(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new i$(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var j4=($,X={})=>{if(!Array.isArray($))$=[$];for(let Q of $)if(new U1(Q,X).hasMagic())return!0;return!1};function o$($,X={}){return new C1($,X).streamSync()}function S8($,X={}){return new C1($,X).stream()}function q8($,X={}){return new C1($,X).walkSync()}async function Y8($,X={}){return new C1($,X).walk()}function n$($,X={}){return new C1($,X).iterateSync()}function V8($,X={}){return new C1($,X).iterate()}var qV=o$,VV=Object.assign(S8,{sync:o$}),wV=n$,HV=Object.assign(V8,{sync:n$}),WV=Object.assign(q8,{stream:o$,iterate:n$}),S0=Object.assign(Y8,{glob:Y8,globSync:q8,sync:WV,globStream:S8,stream:VV,globStreamSync:o$,streamSync:qV,globIterate:V8,iterate:HV,globIterateSync:n$,iterateSync:wV,Glob:C1,hasMagic:j4,escape:F0,unescape:K1});S0.glob=S0;a1.version("1.0.5").description("Stabilize ORM CLI");a1.command("generate <type> <name>").description("Generate a model, migration, or seed").option("-l, --log-level <level>","Log level (error, warn, info, debug)","info").action(async($,X,Q)=>{let J={level:Q.logLevel,filePath:b.resolve(process.cwd(),"logs/stabilize.log"),maxFileSize:5242880,maxFiles:3};if($==="migration"){let Z=b.resolve(process.cwd(),"models",`${X}.ts`);try{let Y=await import(Z),S=Object.values(Y)[0],q=await t3(S,`create_${X.toLowerCase()}`),V=b.resolve(process.cwd(),"migrations");await n1.mkdir(V,{recursive:!0});let H=new Date().toISOString().replace(/[-:T.]/g,""),w=b.join(V,`${H}_${X.toLowerCase()}.ts`);await n1.writeFile(w,`export default ${JSON.stringify(q,null,2)};`),console.log(`Migration generated: ${w}`)}catch(Y){console.error("Error generating migration:",Y)}}else if($==="model"){let Z=b.resolve(process.cwd(),"models");await n1.mkdir(Z,{recursive:!0});let Y=b.join(Z,`${X}.ts`),S=`
|
|
204
|
+
import { Model, Column, Required } from 'stabilize-orm';
|
|
205
|
+
|
|
206
|
+
@Model('${X.toLowerCase()}s')
|
|
207
|
+
export class ${X} {
|
|
208
|
+
@Column('id', 'INTEGER')
|
|
209
|
+
id?: number;
|
|
210
|
+
|
|
211
|
+
@Column('name', 'TEXT')
|
|
212
|
+
@Required()
|
|
213
|
+
name: string;
|
|
214
|
+
}
|
|
215
|
+
`;await n1.writeFile(Y,S),console.log(`Model generated: ${Y}`)}else if($==="seed"){let Z=b.resolve(process.cwd(),"seeds");await n1.mkdir(Z,{recursive:!0});let Y=new Date().toISOString().replace(/[-:T.]/g,""),S=b.join(Z,`${Y}_${X.toLowerCase()}.ts`),q=`
|
|
216
|
+
import { Stabilize } from 'stabilize-orm';
|
|
217
|
+
|
|
218
|
+
export const dependencies = [];
|
|
219
|
+
|
|
220
|
+
export async function seed(orm: Stabilize) {
|
|
221
|
+
const repo = orm.getRepository(${X});
|
|
222
|
+
await repo.bulkCreate([
|
|
223
|
+
{ name: '${X} 1' },
|
|
224
|
+
{ name: '${X} 2' },
|
|
225
|
+
], { batchSize: 100 });
|
|
226
|
+
|
|
227
|
+
await orm['client'].query(
|
|
228
|
+
\`INSERT INTO seed_history (name, applied_at) VALUES (?, ?)\`,
|
|
229
|
+
['${Y}_${X.toLowerCase()}', new Date().toISOString()]
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export async function rollback(orm: Stabilize) {
|
|
234
|
+
const repo = orm.getRepository(${X});
|
|
235
|
+
const entities = await repo.find().execute(orm['client']);
|
|
236
|
+
await repo.bulkDelete(entities.map(e => e.id!), { batchSize: 100 });
|
|
237
|
+
|
|
238
|
+
await orm['client'].query(
|
|
239
|
+
\`DELETE FROM seed_history WHERE name = ?\`,
|
|
240
|
+
['${Y}_${X.toLowerCase()}']
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
`;await n1.writeFile(S,q),console.log(`Seed generated: ${S}`)}else console.error('Invalid type. Use "model", "migration", or "seed".')});a1.command("seed").description("Run seed files to populate the database").option("-c, --config <path>","Path to database config file","config/database.ts").option("-l, --log-level <level>","Log level (error, warn, info, debug)","info").action(async($)=>{try{let Q=await import(b.resolve(process.cwd(),$.config)),J=Q.default||Q,Z={level:$.logLevel,filePath:b.resolve(process.cwd(),"logs/stabilize.log"),maxFileSize:5242880,maxFiles:3},Y=new d0(J,{enabled:!1,ttl:60},Z);await Y.client.query(`
|
|
244
|
+
CREATE TABLE IF NOT EXISTS seed_history (
|
|
245
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
246
|
+
name TEXT NOT NULL,
|
|
247
|
+
applied_at TEXT NOT NULL
|
|
248
|
+
)
|
|
249
|
+
`);let S=b.resolve(process.cwd(),"seeds"),q=await S0(`${S}/*.ts`);if(q.length===0){console.log("No seed files found in seeds/ directory."),await Y.close();return}let V=new Map;for(let w of q){let W=b.basename(w,".ts"),z=await import(w);V.set(W,{file:w,dependencies:z.dependencies||[]})}let H=zV(V);console.log(`Running ${H.length} seed files...`);for(let w of H){let{file:W}=V.get(w);if((await Y.client.query("SELECT id FROM seed_history WHERE name = ?",[w])).length>0){console.log(`Skipping already applied seed: ${w}`);continue}console.log(`Executing seed: ${w}`);let B=await import(W),j=B.default||B.seed;if(typeof j==="function")await j(Y);else console.error(`Seed file ${W} must export a default function or a function named 'seed'.`)}console.log("Seeding completed successfully."),await Y.close()}catch(X){console.error("Seeding failed:",X),process.exit(1)}});a1.command("seed:rollback").description("Rollback the most recently applied seed").option("-c, --config <path>","Path to database config file","config/database.ts").option("-l, --log-level <level>","Log level (error, warn, info, debug)","info").action(async($)=>{try{let Q=await import(b.resolve(process.cwd(),$.config)),J=Q.default||Q,Z={level:$.logLevel,filePath:b.resolve(process.cwd(),"logs/stabilize.log"),maxFileSize:5242880,maxFiles:3},Y=new d0(J,{enabled:!1,ttl:60},Z),S=b.resolve(process.cwd(),"seeds"),q=await S0(`${S}/*.ts`),V=new Map;for(let j of q){let K=b.basename(j,".ts"),R=await import(j);V.set(K,{file:j,dependencies:R.dependencies||[]})}let H=await Y.client.query("SELECT name FROM seed_history ORDER BY applied_at DESC LIMIT 1");if(H.length===0){console.log("No seeds to rollback."),await Y.close();return}let w=H[0].name,W=V.get(w)?.file;if(!W){console.error(`Seed file for ${w} not found.`),await Y.close();return}console.log(`Rolling back seed: ${w}`);let B=(await import(W)).rollback;if(typeof B==="function")await B(Y),console.log(`Rolled back seed: ${w}`);else console.error(`Seed file ${W} must export a 'rollback' function.`);await Y.close()}catch(X){console.error("Seed rollback failed:",X),process.exit(1)}});a1.command("status").description("Display status of migrations and seeds").option("-c, --config <path>","Path to database config file","config/database.ts").option("-l, --log-level <level>","Log level (error, warn, info, debug)","info").action(async($)=>{try{let Q=await import(b.resolve(process.cwd(),$.config)),J=Q.default||Q,Z={level:$.logLevel,filePath:b.resolve(process.cwd(),"logs/stabilize.log"),maxFileSize:1048576,maxFiles:3},Y=new d0(J,{enabled:!1,ttl:60},Z),S=b.resolve(process.cwd(),"migrations"),q=await S0(`${S}/*.ts`);console.log(`
|
|
250
|
+
Migration Status:`),console.log("-----------------");for(let w of q.sort()){let W=b.basename(w,".ts"),z=await Y.client.query("SELECT name FROM migrations WHERE name = ?",[W]);console.log(`${W}: ${z.length>0?"Applied":"Pending"}`)}let V=b.resolve(process.cwd(),"seeds"),H=await S0(`${V}/*.ts`);console.log(`
|
|
251
|
+
Seed Status:`),console.log("-------------");for(let w of H.sort()){let W=b.basename(w,".ts"),z=await Y.client.query("SELECT name FROM seed_history WHERE name = ?",[W]);console.log(`${W}: ${z.length>0?"Applied":"Pending"}`)}await Y.close()}catch(X){console.error("Status check failed:",X),process.exit(1)}});function zV($){let X=[],Q=new Set,J=new Set;function Z(Y){if(J.has(Y))throw Error(`Circular dependency detected at ${Y}`);if(!Q.has(Y)){J.add(Y);let{dependencies:S}=$.get(Y);for(let q of S){if(!$.has(q))throw Error(`Dependency ${q} not found for ${Y}`);Z(q)}J.delete(Y),Q.add(Y),X.push(Y)}}for(let Y of $.keys())if(!Q.has(Y))Z(Y);return X}a1.parse(process.argv);
|