Files
claude-mem/dist/claude-mem.min.js
T
Alex Newman 2d080b0264 Add a basic Unix socket server using Bun
- Implemented a simple server using the net module.
- The server listens on a specified socket path.
- Added error handling for server errors.
- Included checks to verify the existence of the socket file.
2025-10-16 17:07:14 -04:00

593 lines
291 KiB
JavaScript
Executable File

#!/usr/bin/env bun
// @bun
var _1=Object.create;var{getPrototypeOf:j1,defineProperty:a0,getOwnPropertyNames:M1}=Object;var R1=Object.prototype.hasOwnProperty;var bD=(D,u,F)=>{F=D!=null?_1(j1(D)):{};let C=u||!D||!D.__esModule?a0(F,"default",{value:D,enumerable:!0}):F;for(let B of M1(D))if(!R1.call(C,B))a0(C,B,{get:()=>D[B],enumerable:!0});return C};var l=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var R2=(D,u)=>{for(var F in u)a0(D,F,{get:u[F],enumerable:!0,configurable:!0,set:(C)=>u[F]=()=>C})};var mD=(D,u)=>()=>(D&&(u=D(D=0)),u);var cD=import.meta.require;var _u=l((L1)=>{class r0 extends Error{constructor(D,u,F){super(F);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=u,this.exitCode=D,this.nestedError=void 0}}class L2 extends r0{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}L1.CommanderError=r0;L1.InvalidArgumentError=L2});var D0=l((w1)=>{var{InvalidArgumentError:O1}=_u();class I2{constructor(D,u){switch(this.description=u||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,D[0]){case"<":this.required=!0,this._name=D.slice(1,-1);break;case"[":this.required=!1,this._name=D.slice(1,-1);break;default:this.required=!0,this._name=D;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}default(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}argParser(D){return this.parseArg=D,this}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new O1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function T1(D){let u=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+u+">":"["+u+"]"}w1.Argument=I2;w1.humanReadableArgName=T1});var o0=l((v1)=>{var{humanReadableArgName:k1}=D0();class N2{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(D){this.helpWidth=this.helpWidth??D.helpWidth??80}visibleCommands(D){let u=D.commands.filter((C)=>!C._hidden),F=D._getHelpCommand();if(F&&!F._hidden)u.push(F);if(this.sortSubcommands)u.sort((C,B)=>{return C.name().localeCompare(B.name())});return u}compareOptions(D,u){let F=(C)=>{return C.short?C.short.replace(/^-/,""):C.long.replace(/^--/,"")};return F(D).localeCompare(F(u))}visibleOptions(D){let u=D.options.filter((C)=>!C.hidden),F=D._getHelpOption();if(F&&!F.hidden){let C=F.short&&D._findOption(F.short),B=F.long&&D._findOption(F.long);if(!C&&!B)u.push(F);else if(F.long&&!B)u.push(D.createOption(F.long,F.description));else if(F.short&&!C)u.push(D.createOption(F.short,F.description))}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleGlobalOptions(D){if(!this.showGlobalOptions)return[];let u=[];for(let F=D.parent;F;F=F.parent){let C=F.options.filter((B)=>!B.hidden);u.push(...C)}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleArguments(D){if(D._argsDescription)D.registeredArguments.forEach((u)=>{u.description=u.description||D._argsDescription[u.name()]||""});if(D.registeredArguments.find((u)=>u.description))return D.registeredArguments;return[]}subcommandTerm(D){let u=D.registeredArguments.map((F)=>k1(F)).join(" ");return D._name+(D._aliases[0]?"|"+D._aliases[0]:"")+(D.options.length?" [options]":"")+(u?" "+u:"")}optionTerm(D){return D.flags}argumentTerm(D){return D.name()}longestSubcommandTermLength(D,u){return u.visibleCommands(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleSubcommandTerm(u.subcommandTerm(C))))},0)}longestOptionTermLength(D,u){return u.visibleOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestGlobalOptionTermLength(D,u){return u.visibleGlobalOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestArgumentTermLength(D,u){return u.visibleArguments(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleArgumentTerm(u.argumentTerm(C))))},0)}commandUsage(D){let u=D._name;if(D._aliases[0])u=u+"|"+D._aliases[0];let F="";for(let C=D.parent;C;C=C.parent)F=C.name()+" "+F;return F+u+" "+D.usage()}commandDescription(D){return D.description()}subcommandDescription(D){return D.summary()||D.description()}optionDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0){if(D.required||D.optional||D.isBoolean()&&typeof D.defaultValue==="boolean")u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`)}if(D.presetArg!==void 0&&D.optional)u.push(`preset: ${JSON.stringify(D.presetArg)}`);if(D.envVar!==void 0)u.push(`env: ${D.envVar}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}argumentDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0)u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}formatItemList(D,u,F){if(u.length===0)return[];return[F.styleTitle(D),...u,""]}groupItems(D,u,F){let C=new Map;return D.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[])}),u.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[]);C.get($).push(B)}),C}formatHelp(D,u){let F=u.padWidth(D,u),C=u.helpWidth??80;function B(J,V){return u.formatItem(J,F,V,u)}let $=[`${u.styleTitle("Usage:")} ${u.styleUsage(u.commandUsage(D))}`,""],E=u.commandDescription(D);if(E.length>0)$=$.concat([u.boxWrap(u.styleCommandDescription(E),C),""]);let Q=u.visibleArguments(D).map((J)=>{return B(u.styleArgumentTerm(u.argumentTerm(J)),u.styleArgumentDescription(u.argumentDescription(J)))});if($=$.concat(this.formatItemList("Arguments:",Q,u)),this.groupItems(D.options,u.visibleOptions(D),(J)=>J.helpGroupHeading??"Options:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleOptionTerm(u.optionTerm(z)),u.styleOptionDescription(u.optionDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),u.showGlobalOptions){let J=u.visibleGlobalOptions(D).map((V)=>{return B(u.styleOptionTerm(u.optionTerm(V)),u.styleOptionDescription(u.optionDescription(V)))});$=$.concat(this.formatItemList("Global Options:",J,u))}return this.groupItems(D.commands,u.visibleCommands(D),(J)=>J.helpGroup()||"Commands:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleSubcommandTerm(u.subcommandTerm(z)),u.styleSubcommandDescription(u.subcommandDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),$.join(`
`)}displayWidth(D){return O2(D).length}styleTitle(D){return D}styleUsage(D){return D.split(" ").map((u)=>{if(u==="[options]")return this.styleOptionText(u);if(u==="[command]")return this.styleSubcommandText(u);if(u[0]==="["||u[0]==="<")return this.styleArgumentText(u);return this.styleCommandText(u)}).join(" ")}styleCommandDescription(D){return this.styleDescriptionText(D)}styleOptionDescription(D){return this.styleDescriptionText(D)}styleSubcommandDescription(D){return this.styleDescriptionText(D)}styleArgumentDescription(D){return this.styleDescriptionText(D)}styleDescriptionText(D){return D}styleOptionTerm(D){return this.styleOptionText(D)}styleSubcommandTerm(D){return D.split(" ").map((u)=>{if(u==="[options]")return this.styleOptionText(u);if(u[0]==="["||u[0]==="<")return this.styleArgumentText(u);return this.styleSubcommandText(u)}).join(" ")}styleArgumentTerm(D){return this.styleArgumentText(D)}styleOptionText(D){return D}styleArgumentText(D){return D}styleSubcommandText(D){return D}styleCommandText(D){return D}padWidth(D,u){return Math.max(u.longestOptionTermLength(D,u),u.longestGlobalOptionTermLength(D,u),u.longestSubcommandTermLength(D,u),u.longestArgumentTermLength(D,u))}preformatted(D){return/\n[^\S\r\n]/.test(D)}formatItem(D,u,F,C){let $=" ".repeat(2);if(!F)return $+D;let E=D.padEnd(u+D.length-C.displayWidth(D)),Q=2,Z=(this.helpWidth??80)-u-Q-2,J;if(Z<this.minWidthToWrap||C.preformatted(F))J=F;else J=C.boxWrap(F,Z).replace(/\n/g,`
`+" ".repeat(u+Q));return $+E+" ".repeat(Q)+J.replace(/\n/g,`
${$}`)}boxWrap(D,u){if(u<this.minWidthToWrap)return D;let F=D.split(/\r\n|\n/),C=/[\s]*[^\s]+/g,B=[];return F.forEach(($)=>{let E=$.match(C);if(E===null){B.push("");return}let Q=[E.shift()],X=this.displayWidth(Q[0]);E.forEach((Z)=>{let J=this.displayWidth(Z);if(X+J<=u){Q.push(Z),X+=J;return}B.push(Q.join(""));let V=Z.trimStart();Q=[V],X=this.displayWidth(V)}),B.push(Q.join(""))}),B.join(`
`)}}function O2(D){let u=/\x1b\[\d*(;\d*)*m/g;return D.replace(u,"")}v1.Help=N2;v1.stripColor=O2});var s0=l((h1)=>{var{InvalidArgumentError:b1}=_u();class w2{constructor(D,u){this.flags=D,this.description=u||"",this.required=D.includes("<"),this.optional=D.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(D),this.mandatory=!1;let F=y1(D);if(this.short=F.shortFlag,this.long=F.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(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}preset(D){return this.presetArg=D,this}conflicts(D){return this.conflictsWith=this.conflictsWith.concat(D),this}implies(D){let u=D;if(typeof D==="string")u={[D]:!0};return this.implied=Object.assign(this.implied||{},u),this}env(D){return this.envVar=D,this}argParser(D){return this.parseArg=D,this}makeOptionMandatory(D=!0){return this.mandatory=!!D,this}hideHelp(D=!0){return this.hidden=!!D,this}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new b1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return T2(this.name().replace(/^no-/,""));return T2(this.name())}helpGroup(D){return this.helpGroupHeading=D,this}is(D){return this.short===D||this.long===D}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class P2{constructor(D){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,D.forEach((u)=>{if(u.negate)this.negativeOptions.set(u.attributeName(),u);else this.positiveOptions.set(u.attributeName(),u)}),this.negativeOptions.forEach((u,F)=>{if(this.positiveOptions.has(F))this.dualOptions.add(F)})}valueFromOption(D,u){let F=u.attributeName();if(!this.dualOptions.has(F))return!0;let C=this.negativeOptions.get(F).presetArg,B=C!==void 0?C:!1;return u.negate===(B===D)}}function T2(D){return D.split("-").reduce((u,F)=>{return u+F[0].toUpperCase()+F.slice(1)})}function y1(D){let u,F,C=/^-[^-]$/,B=/^--[^-]/,$=D.split(/[ |,]+/).concat("guard");if(C.test($[0]))u=$.shift();if(B.test($[0]))F=$.shift();if(!u&&C.test($[0]))u=$.shift();if(!u&&B.test($[0]))u=F,F=$.shift();if($[0].startsWith("-")){let E=$[0],Q=`option creation failed due to '${E}' in option flags '${D}'`;if(/^-[^-][^-]/.test(E))throw new Error(`${Q}
- a short flag is a single dash and a single character
- either use a single dash and a single character (for a short flag)
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(C.test(E))throw new Error(`${Q}
- too many short flags`);if(B.test(E))throw new Error(`${Q}
- too many long flags`);throw new Error(`${Q}
- unrecognised flag format`)}if(u===void 0&&F===void 0)throw new Error(`option creation failed due to no flags found in '${D}'.`);return{shortFlag:u,longFlag:F}}h1.Option=w2;h1.DualOptions=P2});var S2=l((l1)=>{function c1(D,u){if(Math.abs(D.length-u.length)>3)return Math.max(D.length,u.length);let F=[];for(let C=0;C<=D.length;C++)F[C]=[C];for(let C=0;C<=u.length;C++)F[0][C]=C;for(let C=1;C<=u.length;C++)for(let B=1;B<=D.length;B++){let $=1;if(D[B-1]===u[C-1])$=0;else $=1;if(F[B][C]=Math.min(F[B-1][C]+1,F[B][C-1]+1,F[B-1][C-1]+$),B>1&&C>1&&D[B-1]===u[C-2]&&D[B-2]===u[C-1])F[B][C]=Math.min(F[B][C],F[B-2][C-2]+1)}return F[D.length][u.length]}function d1(D,u){if(!u||u.length===0)return"";u=Array.from(new Set(u));let F=D.startsWith("--");if(F)D=D.slice(2),u=u.map((E)=>E.slice(2));let C=[],B=3,$=0.4;if(u.forEach((E)=>{if(E.length<=1)return;let Q=c1(D,E),X=Math.max(D.length,E.length);if((X-Q)/X>$){if(Q<B)B=Q,C=[E];else if(Q===B)C.push(E)}}),C.sort((E,Q)=>E.localeCompare(Q)),F)C=C.map((E)=>`--${E}`);if(C.length>1)return`
(Did you mean one of ${C.join(", ")}?)`;if(C.length===1)return`
(Did you mean ${C[0]}?)`;return""}l1.suggestSimilar=d1});var f2=l((t1)=>{var i1=cD("events").EventEmitter,t0=cD("child_process"),yD=cD("path"),u0=cD("fs"),w=cD("process"),{Argument:n1,humanReadableArgName:a1}=D0(),{CommanderError:e0}=_u(),{Help:r1,stripColor:o1}=o0(),{Option:k2,DualOptions:s1}=s0(),{suggestSimilar:v2}=S2();class uF extends i1{constructor(D){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=D||"",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:(u)=>w.stdout.write(u),writeErr:(u)=>w.stderr.write(u),outputError:(u,F)=>F(u),getOutHelpWidth:()=>w.stdout.isTTY?w.stdout.columns:void 0,getErrHelpWidth:()=>w.stderr.isTTY?w.stderr.columns:void 0,getOutHasColors:()=>DF()??(w.stdout.isTTY&&w.stdout.hasColors?.()),getErrHasColors:()=>DF()??(w.stderr.isTTY&&w.stderr.hasColors?.()),stripColor:(u)=>o1(u)},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(D){return this._outputConfiguration=D._outputConfiguration,this._helpOption=D._helpOption,this._helpCommand=D._helpCommand,this._helpConfiguration=D._helpConfiguration,this._exitCallback=D._exitCallback,this._storeOptionsAsProperties=D._storeOptionsAsProperties,this._combineFlagAndOptionalValue=D._combineFlagAndOptionalValue,this._allowExcessArguments=D._allowExcessArguments,this._enablePositionalOptions=D._enablePositionalOptions,this._showHelpAfterError=D._showHelpAfterError,this._showSuggestionAfterError=D._showSuggestionAfterError,this}_getCommandAndAncestors(){let D=[];for(let u=this;u;u=u.parent)D.push(u);return D}command(D,u,F){let C=u,B=F;if(typeof C==="object"&&C!==null)B=C,C=null;B=B||{};let[,$,E]=D.match(/([^ ]+) *(.*)/),Q=this.createCommand($);if(C)Q.description(C),Q._executableHandler=!0;if(B.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(B.noHelp||B.hidden),Q._executableFile=B.executableFile||null,E)Q.arguments(E);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),C)return this;return Q}createCommand(D){return new uF(D)}createHelp(){return Object.assign(new r1,this.configureHelp())}configureHelp(D){if(D===void 0)return this._helpConfiguration;return this._helpConfiguration=D,this}configureOutput(D){if(D===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...D},this}showHelpAfterError(D=!0){if(typeof D!=="string")D=!!D;return this._showHelpAfterError=D,this}showSuggestionAfterError(D=!0){return this._showSuggestionAfterError=!!D,this}addCommand(D,u){if(!D._name)throw new Error(`Command passed to .addCommand() must have a name
- specify the name in Command constructor or using .name()`);if(u=u||{},u.isDefault)this._defaultCommandName=D._name;if(u.noHelp||u.hidden)D._hidden=!0;return this._registerCommand(D),D.parent=this,D._checkForBrokenPassThrough(),this}createArgument(D,u){return new n1(D,u)}argument(D,u,F,C){let B=this.createArgument(D,u);if(typeof F==="function")B.default(C).argParser(F);else B.default(F);return this.addArgument(B),this}arguments(D){return D.trim().split(/ +/).forEach((u)=>{this.argument(u)}),this}addArgument(D){let u=this.registeredArguments.slice(-1)[0];if(u?.variadic)throw new Error(`only the last argument can be variadic '${u.name()}'`);if(D.required&&D.defaultValue!==void 0&&D.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${D.name()}'`);return this.registeredArguments.push(D),this}helpCommand(D,u){if(typeof D==="boolean"){if(this._addImplicitHelpCommand=D,D&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let F=D??"help [command]",[,C,B]=F.match(/([^ ]+) *(.*)/),$=u??"display help for command",E=this.createCommand(C);if(E.helpOption(!1),B)E.arguments(B);if($)E.description($);if(this._addImplicitHelpCommand=!0,this._helpCommand=E,D||u)this._initCommandGroup(E);return this}addHelpCommand(D,u){if(typeof D!=="object")return this.helpCommand(D,u),this;return this._addImplicitHelpCommand=!0,this._helpCommand=D,this._initCommandGroup(D),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(D,u){let F=["preSubcommand","preAction","postAction"];if(!F.includes(D))throw new Error(`Unexpected value for event passed to hook : '${D}'.
Expecting one of '${F.join("', '")}'`);if(this._lifeCycleHooks[D])this._lifeCycleHooks[D].push(u);else this._lifeCycleHooks[D]=[u];return this}exitOverride(D){if(D)this._exitCallback=D;else this._exitCallback=(u)=>{if(u.code!=="commander.executeSubCommandAsync")throw u};return this}_exit(D,u,F){if(this._exitCallback)this._exitCallback(new e0(D,u,F));w.exit(D)}action(D){let u=(F)=>{let C=this.registeredArguments.length,B=F.slice(0,C);if(this._storeOptionsAsProperties)B[C]=this;else B[C]=this.opts();return B.push(this),D.apply(this,B)};return this._actionHandler=u,this}createOption(D,u){return new k2(D,u)}_callParseArg(D,u,F,C){try{return D.parseArg(u,F)}catch(B){if(B.code==="commander.invalidArgument"){let $=`${C} ${B.message}`;this.error($,{exitCode:B.exitCode,code:B.code})}throw B}}_registerOption(D){let u=D.short&&this._findOption(D.short)||D.long&&this._findOption(D.long);if(u){let F=D.long&&this._findOption(D.long)?D.long:D.short;throw new Error(`Cannot add option '${D.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${F}'
- already used by option '${u.flags}'`)}this._initOptionGroup(D),this.options.push(D)}_registerCommand(D){let u=(C)=>{return[C.name()].concat(C.aliases())},F=u(D).find((C)=>this._findCommand(C));if(F){let C=u(this._findCommand(F)).join("|"),B=u(D).join("|");throw new Error(`cannot add command '${B}' as already have command '${C}'`)}this._initCommandGroup(D),this.commands.push(D)}addOption(D){this._registerOption(D);let u=D.name(),F=D.attributeName();if(D.negate){let B=D.long.replace(/^--no-/,"--");if(!this._findOption(B))this.setOptionValueWithSource(F,D.defaultValue===void 0?!0:D.defaultValue,"default")}else if(D.defaultValue!==void 0)this.setOptionValueWithSource(F,D.defaultValue,"default");let C=(B,$,E)=>{if(B==null&&D.presetArg!==void 0)B=D.presetArg;let Q=this.getOptionValue(F);if(B!==null&&D.parseArg)B=this._callParseArg(D,B,Q,$);else if(B!==null&&D.variadic)B=D._collectValue(B,Q);if(B==null)if(D.negate)B=!1;else if(D.isBoolean()||D.optional)B=!0;else B="";this.setOptionValueWithSource(F,B,E)};if(this.on("option:"+u,(B)=>{let $=`error: option '${D.flags}' argument '${B}' is invalid.`;C(B,$,"cli")}),D.envVar)this.on("optionEnv:"+u,(B)=>{let $=`error: option '${D.flags}' value '${B}' from env '${D.envVar}' is invalid.`;C(B,$,"env")});return this}_optionEx(D,u,F,C,B){if(typeof u==="object"&&u instanceof k2)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let $=this.createOption(u,F);if($.makeOptionMandatory(!!D.mandatory),typeof C==="function")$.default(B).argParser(C);else if(C instanceof RegExp){let E=C;C=(Q,X)=>{let Z=E.exec(Q);return Z?Z[0]:X},$.default(B).argParser(C)}else $.default(C);return this.addOption($)}option(D,u,F,C){return this._optionEx({},D,u,F,C)}requiredOption(D,u,F,C){return this._optionEx({mandatory:!0},D,u,F,C)}combineFlagAndOptionalValue(D=!0){return this._combineFlagAndOptionalValue=!!D,this}allowUnknownOption(D=!0){return this._allowUnknownOption=!!D,this}allowExcessArguments(D=!0){return this._allowExcessArguments=!!D,this}enablePositionalOptions(D=!0){return this._enablePositionalOptions=!!D,this}passThroughOptions(D=!0){return this._passThroughOptions=!!D,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(D=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!D,this}getOptionValue(D){if(this._storeOptionsAsProperties)return this[D];return this._optionValues[D]}setOptionValue(D,u){return this.setOptionValueWithSource(D,u,void 0)}setOptionValueWithSource(D,u,F){if(this._storeOptionsAsProperties)this[D]=u;else this._optionValues[D]=u;return this._optionValueSources[D]=F,this}getOptionValueSource(D){return this._optionValueSources[D]}getOptionValueSourceWithGlobals(D){let u;return this._getCommandAndAncestors().forEach((F)=>{if(F.getOptionValueSource(D)!==void 0)u=F.getOptionValueSource(D)}),u}_prepareUserArgs(D,u){if(D!==void 0&&!Array.isArray(D))throw new Error("first parameter to parse must be array or undefined");if(u=u||{},D===void 0&&u.from===void 0){if(w.versions?.electron)u.from="electron";let C=w.execArgv??[];if(C.includes("-e")||C.includes("--eval")||C.includes("-p")||C.includes("--print"))u.from="eval"}if(D===void 0)D=w.argv;this.rawArgs=D.slice();let F;switch(u.from){case void 0:case"node":this._scriptPath=D[1],F=D.slice(2);break;case"electron":if(w.defaultApp)this._scriptPath=D[1],F=D.slice(2);else F=D.slice(1);break;case"user":F=D.slice(0);break;case"eval":F=D.slice(1);break;default:throw new Error(`unexpected parse option { from: '${u.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",F}parse(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return this._parseCommand([],F),this}async parseAsync(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return await this._parseCommand([],F),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 new Error(`Can not call parse again when storeOptionsAsProperties is true.
- 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(D,u,F){if(u0.existsSync(D))return;let C=u?`searched for local subcommand relative to directory '${u}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",B=`'${D}' does not exist
- if '${F}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
- ${C}`;throw new Error(B)}_executeSubCommand(D,u){u=u.slice();let F=!1,C=[".js",".ts",".tsx",".mjs",".cjs"];function B(Z,J){let V=yD.resolve(Z,J);if(u0.existsSync(V))return V;if(C.includes(yD.extname(J)))return;let H=C.find((z)=>u0.existsSync(`${V}${z}`));if(H)return`${V}${H}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let $=D._executableFile||`${this._name}-${D._name}`,E=this._executableDir||"";if(this._scriptPath){let Z;try{Z=u0.realpathSync(this._scriptPath)}catch{Z=this._scriptPath}E=yD.resolve(yD.dirname(Z),E)}if(E){let Z=B(E,$);if(!Z&&!D._executableFile&&this._scriptPath){let J=yD.basename(this._scriptPath,yD.extname(this._scriptPath));if(J!==this._name)Z=B(E,`${J}-${D._name}`)}$=Z||$}F=C.includes(yD.extname($));let Q;if(w.platform!=="win32")if(F)u.unshift($),u=x2(w.execArgv).concat(u),Q=t0.spawn(w.argv[0],u,{stdio:"inherit"});else Q=t0.spawn($,u,{stdio:"inherit"});else this._checkForMissingExecutable($,E,D._name),u.unshift($),u=x2(w.execArgv).concat(u),Q=t0.spawn(w.execPath,u,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{w.on(J,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(J)})});let X=this._exitCallback;Q.on("close",(Z)=>{if(Z=Z??1,!X)w.exit(Z);else X(new e0(Z,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(Z)=>{if(Z.code==="ENOENT")this._checkForMissingExecutable($,E,D._name);else if(Z.code==="EACCES")throw new Error(`'${$}' not executable`);if(!X)w.exit(1);else{let J=new e0(1,"commander.executeSubCommandAsync","(error)");J.nestedError=Z,X(J)}}),this.runningCommand=Q}_dispatchSubcommand(D,u,F){let C=this._findCommand(D);if(!C)this.help({error:!0});C._prepareForParse();let B;return B=this._chainOrCallSubCommandHook(B,C,"preSubcommand"),B=this._chainOrCall(B,()=>{if(C._executableHandler)this._executeSubCommand(C,u.concat(F));else return C._parseCommand(u,F)}),B}_dispatchHelpCommand(D){if(!D)this.help();let u=this._findCommand(D);if(u&&!u._executableHandler)u.help();return this._dispatchSubcommand(D,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((D,u)=>{if(D.required&&this.args[u]==null)this.missingArgument(D.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 D=(F,C,B)=>{let $=C;if(C!==null&&F.parseArg){let E=`error: command-argument value '${C}' is invalid for argument '${F.name()}'.`;$=this._callParseArg(F,C,B,E)}return $};this._checkNumberOfArguments();let u=[];this.registeredArguments.forEach((F,C)=>{let B=F.defaultValue;if(F.variadic){if(C<this.args.length){if(B=this.args.slice(C),F.parseArg)B=B.reduce(($,E)=>{return D(F,E,$)},F.defaultValue)}else if(B===void 0)B=[]}else if(C<this.args.length){if(B=this.args[C],F.parseArg)B=D(F,B,F.defaultValue)}u[C]=B}),this.processedArgs=u}_chainOrCall(D,u){if(D?.then&&typeof D.then==="function")return D.then(()=>u());return u()}_chainOrCallHooks(D,u){let F=D,C=[];if(this._getCommandAndAncestors().reverse().filter((B)=>B._lifeCycleHooks[u]!==void 0).forEach((B)=>{B._lifeCycleHooks[u].forEach(($)=>{C.push({hookedCommand:B,callback:$})})}),u==="postAction")C.reverse();return C.forEach((B)=>{F=this._chainOrCall(F,()=>{return B.callback(B.hookedCommand,this)})}),F}_chainOrCallSubCommandHook(D,u,F){let C=D;if(this._lifeCycleHooks[F]!==void 0)this._lifeCycleHooks[F].forEach((B)=>{C=this._chainOrCall(C,()=>{return B(this,u)})});return C}_parseCommand(D,u){let F=this.parseOptions(u);if(this._parseOptionsEnv(),this._parseOptionsImplied(),D=D.concat(F.operands),u=F.unknown,this.args=D.concat(u),D&&this._findCommand(D[0]))return this._dispatchSubcommand(D[0],D.slice(1),u);if(this._getHelpCommand()&&D[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(D[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(u),this._dispatchSubcommand(this._defaultCommandName,D,u);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(F.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let C=()=>{if(F.unknown.length>0)this.unknownOption(F.unknown[0])},B=`command:${this.name()}`;if(this._actionHandler){C(),this._processArguments();let $;if($=this._chainOrCallHooks($,"preAction"),$=this._chainOrCall($,()=>this._actionHandler(this.processedArgs)),this.parent)$=this._chainOrCall($,()=>{this.parent.emit(B,D,u)});return $=this._chainOrCallHooks($,"postAction"),$}if(this.parent?.listenerCount(B))C(),this._processArguments(),this.parent.emit(B,D,u);else if(D.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",D,u);if(this.listenerCount("command:*"))this.emit("command:*",D,u);else if(this.commands.length)this.unknownCommand();else C(),this._processArguments()}else if(this.commands.length)C(),this.help({error:!0});else C(),this._processArguments()}_findCommand(D){if(!D)return;return this.commands.find((u)=>u._name===D||u._aliases.includes(D))}_findOption(D){return this.options.find((u)=>u.is(D))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((D)=>{D.options.forEach((u)=>{if(u.mandatory&&D.getOptionValue(u.attributeName())===void 0)D.missingMandatoryOptionValue(u)})})}_checkForConflictingLocalOptions(){let D=this.options.filter((F)=>{let C=F.attributeName();if(this.getOptionValue(C)===void 0)return!1;return this.getOptionValueSource(C)!=="default"});D.filter((F)=>F.conflictsWith.length>0).forEach((F)=>{let C=D.find((B)=>F.conflictsWith.includes(B.attributeName()));if(C)this._conflictingOption(F,C)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((D)=>{D._checkForConflictingLocalOptions()})}parseOptions(D){let u=[],F=[],C=u;function B(Z){return Z.length>1&&Z[0]==="-"}let $=(Z)=>{if(!/^-\d*\.?\d+(e[+-]?\d+)?$/.test(Z))return!1;return!this._getCommandAndAncestors().some((J)=>J.options.map((V)=>V.short).some((V)=>/^-\d$/.test(V)))},E=null,Q=null,X=0;while(X<D.length||Q){let Z=Q??D[X++];if(Q=null,Z==="--"){if(C===F)C.push(Z);C.push(...D.slice(X));break}if(E&&(!B(Z)||$(Z))){this.emit(`option:${E.name()}`,Z);continue}if(E=null,B(Z)){let J=this._findOption(Z);if(J){if(J.required){let V=D[X++];if(V===void 0)this.optionMissingArgument(J);this.emit(`option:${J.name()}`,V)}else if(J.optional){let V=null;if(X<D.length&&(!B(D[X])||$(D[X])))V=D[X++];this.emit(`option:${J.name()}`,V)}else this.emit(`option:${J.name()}`);E=J.variadic?J:null;continue}}if(Z.length>2&&Z[0]==="-"&&Z[1]!=="-"){let J=this._findOption(`-${Z[1]}`);if(J){if(J.required||J.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${J.name()}`,Z.slice(2));else this.emit(`option:${J.name()}`),Q=`-${Z.slice(2)}`;continue}}if(/^--[^=]+=/.test(Z)){let J=Z.indexOf("="),V=this._findOption(Z.slice(0,J));if(V&&(V.required||V.optional)){this.emit(`option:${V.name()}`,Z.slice(J+1));continue}}if(C===u&&B(Z)&&!(this.commands.length===0&&$(Z)))C=F;if((this._enablePositionalOptions||this._passThroughOptions)&&u.length===0&&F.length===0){if(this._findCommand(Z)){u.push(Z),F.push(...D.slice(X));break}else if(this._getHelpCommand()&&Z===this._getHelpCommand().name()){u.push(Z,...D.slice(X));break}else if(this._defaultCommandName){F.push(Z,...D.slice(X));break}}if(this._passThroughOptions){C.push(Z,...D.slice(X));break}C.push(Z)}return{operands:u,unknown:F}}opts(){if(this._storeOptionsAsProperties){let D={},u=this.options.length;for(let F=0;F<u;F++){let C=this.options[F].attributeName();D[C]=C===this._versionOptionName?this._version:this[C]}return D}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((D,u)=>Object.assign(D,u.opts()),{})}error(D,u){if(this._outputConfiguration.outputError(`${D}
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
`);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
`),this.outputHelp({error:!0});let F=u||{},C=F.exitCode||1,B=F.code||"commander.error";this._exit(C,B,D)}_parseOptionsEnv(){this.options.forEach((D)=>{if(D.envVar&&D.envVar in w.env){let u=D.attributeName();if(this.getOptionValue(u)===void 0||["default","config","env"].includes(this.getOptionValueSource(u)))if(D.required||D.optional)this.emit(`optionEnv:${D.name()}`,w.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new s1(this.options),u=(F)=>{return this.getOptionValue(F)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(F))};this.options.filter((F)=>F.implied!==void 0&&u(F.attributeName())&&D.valueFromOption(this.getOptionValue(F.attributeName()),F)).forEach((F)=>{Object.keys(F.implied).filter((C)=>!u(C)).forEach((C)=>{this.setOptionValueWithSource(C,F.implied[C],"implied")})})}missingArgument(D){let u=`error: missing required argument '${D}'`;this.error(u,{code:"commander.missingArgument"})}optionMissingArgument(D){let u=`error: option '${D.flags}' argument missing`;this.error(u,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(D){let u=`error: required option '${D.flags}' not specified`;this.error(u,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(D,u){let F=($)=>{let E=$.attributeName(),Q=this.getOptionValue(E),X=this.options.find((J)=>J.negate&&E===J.attributeName()),Z=this.options.find((J)=>!J.negate&&E===J.attributeName());if(X&&(X.presetArg===void 0&&Q===!1||X.presetArg!==void 0&&Q===X.presetArg))return X;return Z||$},C=($)=>{let E=F($),Q=E.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${E.envVar}'`;return`option '${E.flags}'`},B=`error: ${C(D)} cannot be used with ${C(u)}`;this.error(B,{code:"commander.conflictingOption"})}unknownOption(D){if(this._allowUnknownOption)return;let u="";if(D.startsWith("--")&&this._showSuggestionAfterError){let C=[],B=this;do{let $=B.createHelp().visibleOptions(B).filter((E)=>E.long).map((E)=>E.long);C=C.concat($),B=B.parent}while(B&&!B._enablePositionalOptions);u=v2(D,C)}let F=`error: unknown option '${D}'${u}`;this.error(F,{code:"commander.unknownOption"})}_excessArguments(D){if(this._allowExcessArguments)return;let u=this.registeredArguments.length,F=u===1?"":"s",B=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${u} argument${F} but got ${D.length}.`;this.error(B,{code:"commander.excessArguments"})}unknownCommand(){let D=this.args[0],u="";if(this._showSuggestionAfterError){let C=[];this.createHelp().visibleCommands(this).forEach((B)=>{if(C.push(B.name()),B.alias())C.push(B.alias())}),u=v2(D,C)}let F=`error: unknown command '${D}'${u}`;this.error(F,{code:"commander.unknownCommand"})}version(D,u,F){if(D===void 0)return this._version;this._version=D,u=u||"-V, --version",F=F||"output the version number";let C=this.createOption(u,F);return this._versionOptionName=C.attributeName(),this._registerOption(C),this.on("option:"+C.name(),()=>{this._outputConfiguration.writeOut(`${D}
`),this._exit(0,"commander.version",D)}),this}description(D,u){if(D===void 0&&u===void 0)return this._description;if(this._description=D,u)this._argsDescription=u;return this}summary(D){if(D===void 0)return this._summary;return this._summary=D,this}alias(D){if(D===void 0)return this._aliases[0];let u=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)u=this.commands[this.commands.length-1];if(D===u._name)throw new Error("Command alias can't be the same as its name");let F=this.parent?._findCommand(D);if(F){let C=[F.name()].concat(F.aliases()).join("|");throw new Error(`cannot add alias '${D}' to command '${this.name()}' as already have command '${C}'`)}return u._aliases.push(D),this}aliases(D){if(D===void 0)return this._aliases;return D.forEach((u)=>this.alias(u)),this}usage(D){if(D===void 0){if(this._usage)return this._usage;let u=this.registeredArguments.map((F)=>{return a1(F)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?u:[]).join(" ")}return this._usage=D,this}name(D){if(D===void 0)return this._name;return this._name=D,this}helpGroup(D){if(D===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=D,this}commandsGroup(D){if(D===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=D,this}optionsGroup(D){if(D===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=D,this}_initOptionGroup(D){if(this._defaultOptionGroup&&!D.helpGroupHeading)D.helpGroup(this._defaultOptionGroup)}_initCommandGroup(D){if(this._defaultCommandGroup&&!D.helpGroup())D.helpGroup(this._defaultCommandGroup)}nameFromFilename(D){return this._name=yD.basename(D,yD.extname(D)),this}executableDir(D){if(D===void 0)return this._executableDir;return this._executableDir=D,this}helpInformation(D){let u=this.createHelp(),F=this._getOutputContext(D);u.prepareContext({error:F.error,helpWidth:F.helpWidth,outputHasColors:F.hasColors});let C=u.formatHelp(this,u);if(F.hasColors)return C;return this._outputConfiguration.stripColor(C)}_getOutputContext(D){D=D||{};let u=!!D.error,F,C,B;if(u)F=(E)=>this._outputConfiguration.writeErr(E),C=this._outputConfiguration.getErrHasColors(),B=this._outputConfiguration.getErrHelpWidth();else F=(E)=>this._outputConfiguration.writeOut(E),C=this._outputConfiguration.getOutHasColors(),B=this._outputConfiguration.getOutHelpWidth();return{error:u,write:(E)=>{if(!C)E=this._outputConfiguration.stripColor(E);return F(E)},hasColors:C,helpWidth:B}}outputHelp(D){let u;if(typeof D==="function")u=D,D=void 0;let F=this._getOutputContext(D),C={error:F.error,write:F.write,command:this};this._getCommandAndAncestors().reverse().forEach(($)=>$.emit("beforeAllHelp",C)),this.emit("beforeHelp",C);let B=this.helpInformation({error:F.error});if(u){if(B=u(B),typeof B!=="string"&&!Buffer.isBuffer(B))throw new Error("outputHelp callback must return a string or a Buffer")}if(F.write(B),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",C),this._getCommandAndAncestors().forEach(($)=>$.emit("afterAllHelp",C))}helpOption(D,u){if(typeof D==="boolean"){if(D){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(D??"-h, --help",u??"display help for command"),D||u)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(D){return this._helpOption=D,this._initOptionGroup(D),this}help(D){this.outputHelp(D);let u=Number(w.exitCode??0);if(u===0&&D&&typeof D!=="function"&&D.error)u=1;this._exit(u,"commander.help","(outputHelp)")}addHelpText(D,u){let F=["beforeAll","before","after","afterAll"];if(!F.includes(D))throw new Error(`Unexpected value for position to addHelpText.
Expecting one of '${F.join("', '")}'`);let C=`${D}Help`;return this.on(C,(B)=>{let $;if(typeof u==="function")$=u({error:B.error,command:B.command});else $=u;if($)B.write(`${$}
`)}),this}_outputHelpIfRequested(D){let u=this._getHelpOption();if(u&&D.find((C)=>u.is(C)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function x2(D){return D.map((u)=>{if(!u.startsWith("--inspect"))return u;let F,C="127.0.0.1",B="9229",$;if(($=u.match(/^(--inspect(-brk)?)$/))!==null)F=$[1];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(F=$[1],/^\d+$/.test($[3]))B=$[3];else C=$[3];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)F=$[1],C=$[3],B=$[4];if(F&&B!=="0")return`${F}=${C}:${parseInt(B)+1}`;return u})}function DF(){if(w.env.NO_COLOR||w.env.FORCE_COLOR==="0"||w.env.FORCE_COLOR==="false")return!1;if(w.env.FORCE_COLOR||w.env.CLICOLOR_FORCE!==void 0)return!0;return}t1.Command=uF;t1.useColor=DF});var g2=l((CC)=>{var{Argument:b2}=D0(),{Command:FF}=f2(),{CommanderError:uC,InvalidArgumentError:y2}=_u(),{Help:FC}=o0(),{Option:h2}=s0();CC.program=new FF;CC.createCommand=(D)=>new FF(D);CC.createOption=(D,u)=>new h2(D,u);CC.createArgument=(D,u)=>new b2(D,u);CC.Command=FF;CC.Option=h2;CC.Argument=b2;CC.Help=FC;CC.CommanderError=uC;CC.InvalidArgumentError=y2;CC.InvalidOptionArgumentError=y2});var BF=l((OE,s2)=>{var CF={to(D,u){if(!u)return`\x1B[${D+1}G`;return`\x1B[${u+1};${D+1}H`},move(D,u){let F="";if(D<0)F+=`\x1B[${-D}D`;else if(D>0)F+=`\x1B[${D}C`;if(u<0)F+=`\x1B[${-u}A`;else if(u>0)F+=`\x1B[${u}B`;return F},up:(D=1)=>`\x1B[${D}A`,down:(D=1)=>`\x1B[${D}B`,forward:(D=1)=>`\x1B[${D}C`,backward:(D=1)=>`\x1B[${D}D`,nextLine:(D=1)=>"\x1B[E".repeat(D),prevLine:(D=1)=>"\x1B[F".repeat(D),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},WC={up:(D=1)=>"\x1B[S".repeat(D),down:(D=1)=>"\x1B[T".repeat(D)},_C={screen:"\x1B[2J",up:(D=1)=>"\x1B[1J".repeat(D),down:(D=1)=>"\x1B[J".repeat(D),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(D){let u="";for(let F=0;F<D;F++)u+=this.line+(F<D-1?CF.up():"");if(D)u+=CF.left;return u}};s2.exports={cursor:CF,scroll:WC,erase:_C,beep:"\x07"}});var $F=l((TE,EF)=>{var C0=process||{},t2=C0.argv||[],F0=C0.env||{},jC=!(!!F0.NO_COLOR||t2.includes("--no-color"))&&(!!F0.FORCE_COLOR||t2.includes("--color")||C0.platform==="win32"||(C0.stdout||{}).isTTY&&F0.TERM!=="dumb"||!!F0.CI),MC=(D,u,F=D)=>(C)=>{let B=""+C,$=B.indexOf(u,D.length);return~$?D+RC(B,u,F,$)+u:D+B+u},RC=(D,u,F,C)=>{let B="",$=0;do B+=D.substring($,C)+F,$=C+u.length,C=D.indexOf(u,$);while(~C);return B+D.substring($)},e2=(D=jC)=>{let u=D?MC:()=>String;return{isColorSupported:D,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};EF.exports=e2();EF.exports.createColors=e2});var S3=l((LF,IF)=>{(function(D,u){typeof LF==="object"&&typeof IF!=="undefined"?IF.exports=u():typeof define==="function"&&define.amd?define(u):(D=typeof globalThis!=="undefined"?globalThis:D||self,D.tinycolor=u())})(LF,function(){function D(Y){return D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},D(Y)}var u=/^\s+/,F=/\s+$/;function C(Y,K){if(Y=Y?Y:"",K=K||{},Y instanceof C)return Y;if(!(this instanceof C))return new C(Y,K);var q=B(Y);if(this._originalInput=Y,this._r=q.r,this._g=q.g,this._b=q.b,this._a=q.a,this._roundA=Math.round(100*this._a)/100,this._format=K.format||q.format,this._gradientType=K.gradientType,this._r<1)this._r=Math.round(this._r);if(this._g<1)this._g=Math.round(this._g);if(this._b<1)this._b=Math.round(this._b);this._ok=q.ok}C.prototype={isDark:function Y(){return this.getBrightness()<128},isLight:function Y(){return!this.isDark()},isValid:function Y(){return this._ok},getOriginalInput:function Y(){return this._originalInput},getFormat:function Y(){return this._format},getAlpha:function Y(){return this._a},getBrightness:function Y(){var K=this.toRgb();return(K.r*299+K.g*587+K.b*114)/1000},getLuminance:function Y(){var K=this.toRgb(),q,A,_,W,T,P;if(q=K.r/255,A=K.g/255,_=K.b/255,q<=0.03928)W=q/12.92;else W=Math.pow((q+0.055)/1.055,2.4);if(A<=0.03928)T=A/12.92;else T=Math.pow((A+0.055)/1.055,2.4);if(_<=0.03928)P=_/12.92;else P=Math.pow((_+0.055)/1.055,2.4);return 0.2126*W+0.7152*T+0.0722*P},setAlpha:function Y(K){return this._a=_2(K),this._roundA=Math.round(100*this._a)/100,this},toHsv:function Y(){var K=X(this._r,this._g,this._b);return{h:K.h*360,s:K.s,v:K.v,a:this._a}},toHsvString:function Y(){var K=X(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.v*100);return this._a==1?"hsv("+q+", "+A+"%, "+_+"%)":"hsva("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHsl:function Y(){var K=E(this._r,this._g,this._b);return{h:K.h*360,s:K.s,l:K.l,a:this._a}},toHslString:function Y(){var K=E(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.l*100);return this._a==1?"hsl("+q+", "+A+"%, "+_+"%)":"hsla("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHex:function Y(K){return J(this._r,this._g,this._b,K)},toHexString:function Y(K){return"#"+this.toHex(K)},toHex8:function Y(K){return V(this._r,this._g,this._b,this._a,K)},toHex8String:function Y(K){return"#"+this.toHex8(K)},toRgb:function Y(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function Y(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function Y(){return{r:Math.round(k(this._r,255)*100)+"%",g:Math.round(k(this._g,255)*100)+"%",b:Math.round(k(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function Y(){return this._a==1?"rgb("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%)":"rgba("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%, "+this._roundA+")"},toName:function Y(){if(this._a===0)return"transparent";if(this._a<1)return!1;return W2[J(this._r,this._g,this._b,!0)]||!1},toFilter:function Y(K){var q="#"+H(this._r,this._g,this._b,this._a),A=q,_=this._gradientType?"GradientType = 1, ":"";if(K){var W=C(K);A="#"+H(W._r,W._g,W._b,W._a)}return"progid:DXImageTransform.Microsoft.gradient("+_+"startColorstr="+q+",endColorstr="+A+")"},toString:function Y(K){var q=!!K;K=K||this._format;var A=!1,_=this._a<1&&this._a>=0,W=!q&&_&&(K==="hex"||K==="hex6"||K==="hex3"||K==="hex4"||K==="hex8"||K==="name");if(W){if(K==="name"&&this._a===0)return this.toName();return this.toRgbString()}if(K==="rgb")A=this.toRgbString();if(K==="prgb")A=this.toPercentageRgbString();if(K==="hex"||K==="hex6")A=this.toHexString();if(K==="hex3")A=this.toHexString(!0);if(K==="hex4")A=this.toHex8String(!0);if(K==="hex8")A=this.toHex8String();if(K==="name")A=this.toName();if(K==="hsl")A=this.toHslString();if(K==="hsv")A=this.toHsvString();return A||this.toHexString()},clone:function Y(){return C(this.toString())},_applyModification:function Y(K,q){var A=K.apply(null,[this].concat([].slice.call(q)));return this._r=A._r,this._g=A._g,this._b=A._b,this.setAlpha(A._a),this},lighten:function Y(){return this._applyModification(j,arguments)},brighten:function Y(){return this._applyModification(I,arguments)},darken:function Y(){return this._applyModification(O,arguments)},desaturate:function Y(){return this._applyModification(z,arguments)},saturate:function Y(){return this._applyModification(U,arguments)},greyscale:function Y(){return this._applyModification(G,arguments)},spin:function Y(){return this._applyModification(R,arguments)},_applyCombination:function Y(K,q){return K.apply(null,[this].concat([].slice.call(q)))},analogous:function Y(){return this._applyCombination(ZD,arguments)},complement:function Y(){return this._applyCombination(L,arguments)},monochromatic:function Y(){return this._applyCombination(SD,arguments)},splitcomplement:function Y(){return this._applyCombination(y,arguments)},triad:function Y(){return this._applyCombination(S,[3])},tetrad:function Y(){return this._applyCombination(S,[4])}},C.fromRatio=function(Y,K){if(D(Y)=="object"){var q={};for(var A in Y)if(Y.hasOwnProperty(A))if(A==="a")q[A]=Y[A];else q[A]=Gu(Y[A]);Y=q}return C(Y,K)};function B(Y){var K={r:0,g:0,b:0},q=1,A=null,_=null,W=null,T=!1,P=!1;if(typeof Y=="string")Y=G1(Y);if(D(Y)=="object"){if(fD(Y.r)&&fD(Y.g)&&fD(Y.b))K=$(Y.r,Y.g,Y.b),T=!0,P=String(Y.r).substr(-1)==="%"?"prgb":"rgb";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.v))A=Gu(Y.s),_=Gu(Y.v),K=Z(Y.h,A,_),T=!0,P="hsv";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.l))A=Gu(Y.s),W=Gu(Y.l),K=Q(Y.h,A,W),T=!0,P="hsl";if(Y.hasOwnProperty("a"))q=Y.a}return q=_2(q),{ok:T,format:Y.format||P,r:Math.min(255,Math.max(K.r,0)),g:Math.min(255,Math.max(K.g,0)),b:Math.min(255,Math.max(K.b,0)),a:q}}function $(Y,K,q){return{r:k(Y,255)*255,g:k(K,255)*255,b:k(q,255)*255}}function E(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=(A+_)/2;if(A==_)W=T=0;else{var m=A-_;switch(T=P>0.5?m/(2-A-_):m/(A+_),A){case Y:W=(K-q)/m+(K<q?6:0);break;case K:W=(q-Y)/m+2;break;case q:W=(Y-K)/m+4;break}W/=6}return{h:W,s:T,l:P}}function Q(Y,K,q){var A,_,W;Y=k(Y,360),K=k(K,100),q=k(q,100);function T(AD,Wu,ID){if(ID<0)ID+=1;if(ID>1)ID-=1;if(ID<0.16666666666666666)return AD+(Wu-AD)*6*ID;if(ID<0.5)return Wu;if(ID<0.6666666666666666)return AD+(Wu-AD)*(0.6666666666666666-ID)*6;return AD}if(K===0)A=_=W=q;else{var P=q<0.5?q*(1+K):q+K-q*K,m=2*q-P;A=T(m,P,Y+0.3333333333333333),_=T(m,P,Y),W=T(m,P,Y-0.3333333333333333)}return{r:A*255,g:_*255,b:W*255}}function X(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=A,m=A-_;if(T=A===0?0:m/A,A==_)W=0;else{switch(A){case Y:W=(K-q)/m+(K<q?6:0);break;case K:W=(q-Y)/m+2;break;case q:W=(Y-K)/m+4;break}W/=6}return{h:W,s:T,v:P}}function Z(Y,K,q){Y=k(Y,360)*6,K=k(K,100),q=k(q,100);var A=Math.floor(Y),_=Y-A,W=q*(1-K),T=q*(1-_*K),P=q*(1-(1-_)*K),m=A%6,AD=[q,T,W,W,P,q][m],Wu=[P,q,q,T,W,W][m],ID=[W,W,P,q,q,T][m];return{r:AD*255,g:Wu*255,b:ID*255}}function J(Y,K,q,A){var _=[RD(Math.round(Y).toString(16)),RD(Math.round(K).toString(16)),RD(Math.round(q).toString(16))];if(A&&_[0].charAt(0)==_[0].charAt(1)&&_[1].charAt(0)==_[1].charAt(1)&&_[2].charAt(0)==_[2].charAt(1))return _[0].charAt(0)+_[1].charAt(0)+_[2].charAt(0);return _.join("")}function V(Y,K,q,A,_){var W=[RD(Math.round(Y).toString(16)),RD(Math.round(K).toString(16)),RD(Math.round(q).toString(16)),RD(j2(A))];if(_&&W[0].charAt(0)==W[0].charAt(1)&&W[1].charAt(0)==W[1].charAt(1)&&W[2].charAt(0)==W[2].charAt(1)&&W[3].charAt(0)==W[3].charAt(1))return W[0].charAt(0)+W[1].charAt(0)+W[2].charAt(0)+W[3].charAt(0);return W.join("")}function H(Y,K,q,A){var _=[RD(j2(A)),RD(Math.round(Y).toString(16)),RD(Math.round(K).toString(16)),RD(Math.round(q).toString(16))];return _.join("")}C.equals=function(Y,K){if(!Y||!K)return!1;return C(Y).toRgbString()==C(K).toRgbString()},C.random=function(){return C.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function z(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s-=K/100,q.s=eu(q.s),C(q)}function U(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s+=K/100,q.s=eu(q.s),C(q)}function G(Y){return C(Y).desaturate(100)}function j(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.l+=K/100,q.l=eu(q.l),C(q)}function I(Y,K){K=K===0?0:K||10;var q=C(Y).toRgb();return q.r=Math.max(0,Math.min(255,q.r-Math.round(255*-(K/100)))),q.g=Math.max(0,Math.min(255,q.g-Math.round(255*-(K/100)))),q.b=Math.max(0,Math.min(255,q.b-Math.round(255*-(K/100)))),C(q)}function O(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.l-=K/100,q.l=eu(q.l),C(q)}function R(Y,K){var q=C(Y).toHsl(),A=(q.h+K)%360;return q.h=A<0?360+A:A,C(q)}function L(Y){var K=C(Y).toHsl();return K.h=(K.h+180)%360,C(K)}function S(Y,K){if(isNaN(K)||K<=0)throw new Error("Argument to polyad must be a positive number");var q=C(Y).toHsl(),A=[C(Y)],_=360/K;for(var W=1;W<K;W++)A.push(C({h:(q.h+W*_)%360,s:q.s,l:q.l}));return A}function y(Y){var K=C(Y).toHsl(),q=K.h;return[C(Y),C({h:(q+72)%360,s:K.s,l:K.l}),C({h:(q+216)%360,s:K.s,l:K.l})]}function ZD(Y,K,q){K=K||6,q=q||30;var A=C(Y).toHsl(),_=360/q,W=[C(Y)];for(A.h=(A.h-(_*K>>1)+720)%360;--K;)A.h=(A.h+_)%360,W.push(C(A));return W}function SD(Y,K){K=K||6;var q=C(Y).toHsv(),A=q.h,_=q.s,W=q.v,T=[],P=1/K;while(K--)T.push(C({h:A,s:_,v:W})),W=(W+P)%1;return T}C.mix=function(Y,K,q){q=q===0?0:q||50;var A=C(Y).toRgb(),_=C(K).toRgb(),W=q/100,T={r:(_.r-A.r)*W+A.r,g:(_.g-A.g)*W+A.g,b:(_.b-A.b)*W+A.b,a:(_.a-A.a)*W+A.a};return C(T)},C.readability=function(Y,K){var q=C(Y),A=C(K);return(Math.max(q.getLuminance(),A.getLuminance())+0.05)/(Math.min(q.getLuminance(),A.getLuminance())+0.05)},C.isReadable=function(Y,K,q){var A=C.readability(Y,K),_,W;switch(W=!1,_=W1(q),_.level+_.size){case"AAsmall":case"AAAlarge":W=A>=4.5;break;case"AAlarge":W=A>=3;break;case"AAAsmall":W=A>=7;break}return W},C.mostReadable=function(Y,K,q){var A=null,_=0,W,T,P,m;q=q||{},T=q.includeFallbackColors,P=q.level,m=q.size;for(var AD=0;AD<K.length;AD++)if(W=C.readability(Y,K[AD]),W>_)_=W,A=C(K[AD]);if(C.isReadable(Y,A,{level:P,size:m})||!T)return A;else return q.includeFallbackColors=!1,C.mostReadable(Y,["#fff","#000"],q)};var oD=C.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},W2=C.hexNames=A1(oD);function A1(Y){var K={};for(var q in Y)if(Y.hasOwnProperty(q))K[Y[q]]=q;return K}function _2(Y){if(Y=parseFloat(Y),isNaN(Y)||Y<0||Y>1)Y=1;return Y}function k(Y,K){if(z1(Y))Y="100%";var q=U1(Y);if(Y=Math.min(K,Math.max(0,parseFloat(Y))),q)Y=parseInt(Y*K,10)/100;if(Math.abs(Y-K)<0.000001)return 1;return Y%K/parseFloat(K)}function eu(Y){return Math.min(1,Math.max(0,Y))}function JD(Y){return parseInt(Y,16)}function z1(Y){return typeof Y=="string"&&Y.indexOf(".")!=-1&&parseFloat(Y)===1}function U1(Y){return typeof Y==="string"&&Y.indexOf("%")!=-1}function RD(Y){return Y.length==1?"0"+Y:""+Y}function Gu(Y){if(Y<=1)Y=Y*100+"%";return Y}function j2(Y){return Math.round(parseFloat(Y)*255).toString(16)}function M2(Y){return JD(Y)/255}var LD=function(){var Y="[-\\+]?\\d+%?",K="[-\\+]?\\d*\\.\\d+%?",q="(?:"+K+")|(?:"+Y+")",A="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?",_="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?";return{CSS_UNIT:new RegExp(q),rgb:new RegExp("rgb"+A),rgba:new RegExp("rgba"+_),hsl:new RegExp("hsl"+A),hsla:new RegExp("hsla"+_),hsv:new RegExp("hsv"+A),hsva:new RegExp("hsva"+_),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function fD(Y){return!!LD.CSS_UNIT.exec(Y)}function G1(Y){Y=Y.replace(u,"").replace(F,"").toLowerCase();var K=!1;if(oD[Y])Y=oD[Y],K=!0;else if(Y=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var q;if(q=LD.rgb.exec(Y))return{r:q[1],g:q[2],b:q[3]};if(q=LD.rgba.exec(Y))return{r:q[1],g:q[2],b:q[3],a:q[4]};if(q=LD.hsl.exec(Y))return{h:q[1],s:q[2],l:q[3]};if(q=LD.hsla.exec(Y))return{h:q[1],s:q[2],l:q[3],a:q[4]};if(q=LD.hsv.exec(Y))return{h:q[1],s:q[2],v:q[3]};if(q=LD.hsva.exec(Y))return{h:q[1],s:q[2],v:q[3],a:q[4]};if(q=LD.hex8.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),a:M2(q[4]),format:K?"name":"hex8"};if(q=LD.hex6.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),format:K?"name":"hex"};if(q=LD.hex4.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),a:M2(q[4]+""+q[4]),format:K?"name":"hex8"};if(q=LD.hex3.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),format:K?"name":"hex"};return!1}function W1(Y){var K,q;if(Y=Y||{level:"AA",size:"small"},K=(Y.level||"AA").toUpperCase(),q=(Y.size||"small").toLowerCase(),K!=="AA"&&K!=="AAA")K="AA";if(q!=="small"&&q!=="large")q="small";return{level:K,size:q}}return C})});var h3=l((Y5,y3)=>{var Iu=S3(),f3={r:256,g:256,b:256,a:1},b3={h:360,s:1,v:1,a:1};function OF(D,u,F){let C={};for(let B in D)if(D.hasOwnProperty(B))C[B]=F===0?0:(u[B]-D[B])/F;return C}function TF(D,u,F,C){let B={};for(let $ in u)if(u.hasOwnProperty($))B[$]=D[$]*F+u[$],B[$]=B[$]<0?B[$]+C[$]:C[$]!==1?B[$]%C[$]:B[$];return B}function NF(D,u,F){let C=D.color.toRgb(),B=u.color.toRgb(),$=OF(C,B,F),E=[D.color];for(let Q=1;Q<F;Q++){let X=TF($,C,Q,f3);E.push(Iu(X))}return E}function k3(D,u,F,C){let B=D.color.toHsv(),$=u.color.toHsv();if(B.s===0||$.s===0)return NF(D,u,F);let E;if(typeof C==="boolean")E=C;else{let J=B.h<$.h&&$.h-B.h<180||B.h>$.h&&B.h-$.h>180;E=C==="long"&&J||C==="short"&&!J}let Q=OF(B,$,F),X=[D.color],Z;if(B.h<=$.h&&!E||B.h>=$.h&&E)Z=$.h-B.h;else if(E)Z=360-$.h+B.h;else Z=360-B.h+$.h;Q.h=Math.pow(-1,E?1:0)*Math.abs(Z)/F;for(let J=1;J<F;J++){let V=TF(Q,B,J,b3);X.push(Iu(V))}return X}function v3(D,u){let F=D.length;if(u=parseInt(u,10),isNaN(u)||u<2)throw new Error("Invalid number of steps (< 2)");if(u<F)throw new Error("Number of steps cannot be inferior to number of stops");let C=[];for(let $=1;$<F;$++){let E=(u-1)*(D[$].pos-D[$-1].pos);C.push(Math.max(1,Math.round(E)))}let B=1;for(let $=F-1;$--;)B+=C[$];while(B!==u)if(B<u){let $=Math.min.apply(null,C);C[C.indexOf($)]++,B++}else{let $=Math.max.apply(null,C);C[C.indexOf($)]--,B--}return C}function x3(D,u,F,C){if(u<0||u>1)throw new Error("Position must be between 0 and 1");let B,$;for(let X=0,Z=D.length;X<Z-1;X++)if(u>=D[X].pos&&u<D[X+1].pos){B=D[X],$=D[X+1];break}if(!B)B=$=D[D.length-1];let E=OF(B.color[F](),$.color[F](),($.pos-B.pos)*100),Q=TF(E,B.color[F](),(u-B.pos)*100,C);return Iu(Q)}class K0{constructor(D){if(D.length<2)throw new Error("Invalid number of stops (< 2)");let u=D[0].pos!==void 0,F=D.length,C=-1,B=!1;if(this.stops=D.map(($,E)=>{let Q=$.pos!==void 0;if(u^Q)throw new Error("Cannot mix positionned and not posionned color stops");if(Q){let X=$.color!==void 0;if(!X&&(B||E===0||E===F-1))throw new Error("Cannot define two consecutive position-only stops");if(B=!X,$={color:X?Iu($.color):null,colorLess:!X,pos:$.pos},$.pos<0||$.pos>1)throw new Error("Color stops positions must be between 0 and 1");else if($.pos<C)throw new Error("Color stops positions are not ordered");C=$.pos}else $={color:Iu($.color!==void 0?$.color:$),pos:E/(F-1)};return $}),this.stops[0].pos!==0)this.stops.unshift({color:this.stops[0].color,pos:0}),F++;if(this.stops[F-1].pos!==1)this.stops.push({color:this.stops[F-1].color,pos:1})}reverse(){let D=[];return this.stops.forEach(function(u){D.push({color:u.color,pos:1-u.pos})}),new K0(D.reverse())}loop(){let D=[],u=[];return this.stops.forEach((F)=>{D.push({color:F.color,pos:F.pos/2})}),this.stops.slice(0,-1).forEach((F)=>{u.push({color:F.color,pos:1-F.pos/2})}),new K0(D.concat(u.reverse()))}rgb(D){let u=v3(this.stops,D),F=[];this.stops.forEach((C,B)=>{if(C.colorLess)C.color=NF(this.stops[B-1],this.stops[B+1],2)[1]});for(let C=0,B=this.stops.length;C<B-1;C++){let $=NF(this.stops[C],this.stops[C+1],u[C]);F.splice(F.length,0,...$)}return F.push(this.stops[this.stops.length-1].color),F}hsv(D,u){let F=v3(this.stops,D),C=[];this.stops.forEach((B,$)=>{if(B.colorLess)B.color=k3(this.stops[$-1],this.stops[$+1],2,u)[1]});for(let B=0,$=this.stops.length;B<$-1;B++){let E=k3(this.stops[B],this.stops[B+1],F[B],u);C.splice(C.length,0,...E)}return C.push(this.stops[this.stops.length-1].color),C}css(D,u){D=D||"linear",u=u||(D==="linear"?"to right":"ellipse at center");let F=D+"-gradient("+u;return this.stops.forEach(function(C){F+=", "+(C.colorLess?"":C.color.toRgbString()+" ")+C.pos*100+"%"}),F+=")",F}rgbAt(D){return x3(this.stops,D,"toRgb",f3)}hsvAt(D){return x3(this.stops,D,"toHsv",b3)}}y3.exports=function(D){if(arguments.length===1){if(!Array.isArray(arguments[0]))throw new Error('"stops" is not an array');D=arguments[0]}else D=Array.prototype.slice.call(arguments);return new K0(D)}});var i3=l((O5,f7)=>{f7.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}});var xF=l((T5,vF)=>{var n3=i3();vF.exports=n3;vF.exports.default=n3});var e3=l((P5,t3)=>{t3.exports=({onlyFirst:D=!1}={})=>{let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}});var u8=l((S5,D8)=>{var d7=e3();D8.exports=(D)=>typeof D==="string"?D.replace(d7(),""):D});var C8=l((k5,yF)=>{var F8=(D)=>{if(Number.isNaN(D))return!1;if(D>=4352&&(D<=4447||D===9001||D===9002||11904<=D&&D<=12871&&D!==12351||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))return!0;return!1};yF.exports=F8;yF.exports.default=F8});var E8=l((v5,B8)=>{B8.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Q8=l((x5,hF)=>{var l7=u8(),p7=C8(),i7=E8(),$8=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=l7(D),D.length===0)return 0;D=D.replace(i7()," ");let u=0;for(let F=0;F<D.length;F++){let C=D.codePointAt(F);if(C<=31||C>=127&&C<=159)continue;if(C>=768&&C<=879)continue;if(C>65535)F++;u+=p7(C)?2:1}return u};hF.exports=$8;hF.exports.default=$8});var Z8=l((f5,X8)=>{var n7=Q8();function sD(D,u){if(!D)return D;u=u||{};let F=u.align||"center";if(F==="left")return D;let C=u.split||`
`,B=u.pad||" ",$=F!=="right"?a7:r7,E=!1;if(!Array.isArray(D))E=!0,D=String(D).split(C);let Q,X=0;return D=D.map(function(Z){return Z=String(Z),Q=n7(Z),X=Math.max(Q,X),{str:Z,width:Q}}).map(function(Z){return new Array($(X,Z.width)+1).join(B)+Z.str}),E?D.join(C):D}sD.left=function D(u){return sD(u,{align:"left"})};sD.center=function D(u){return sD(u,{align:"center"})};sD.right=function D(u){return sD(u,{align:"right"})};X8.exports=sD;function a7(D,u){return Math.floor((D-u)/2)}function r7(D,u){return D-u}});import{join as t,dirname as pF,basename as F$}from"path";import{homedir as R8}from"os";import{existsSync as L8,mkdirSync as A9}from"fs";import{fileURLToPath as z9}from"url";function Zu(D){return t(g,`worker-${D}.sock`)}function GD(D){A9(D,{recursive:!0})}function O8(){GD(g),GD(U9),GD(iF),GD(tD),GD(G9),GD(Qu)}function T8(){GD(_0),GD(nF)}function W9(){try{let F=cD.resolve("claude-mem/package.json");return pF(F)}catch{}let D=z9(import.meta.url),u=pF(D);for(let F=0;F<10;F++){let C=t(u,"package.json");if(L8(C)){if(cD(C).name==="claude-mem")return u}let B=pF(u);if(B===u)break;u=B}throw new Error("Cannot locate claude-mem package root. Ensure claude-mem is properly installed.")}function w8(){let D=W9(),u=t(D,"commands");if(!L8(t(u,"save.md")))throw new Error("Package commands directory missing required files");return u}var g,_0,U9,iF,tD,G9,Qu,I8,j0,Xu,nF,N8;var $D=mD(()=>{g=process.env.CLAUDE_MEM_DATA_DIR||t(R8(),".claude-mem"),_0=process.env.CLAUDE_CONFIG_DIR||t(R8(),".claude"),U9=t(g,"archives"),iF=t(g,"logs"),tD=t(g,"trash"),G9=t(g,"backups"),Qu=t(g,"chroma"),I8=t(g,"settings.json"),j0=t(g,"claude-mem.db"),Xu=t(_0,"settings.json"),nF=t(_0,"commands"),N8=t(_0,"CLAUDE.md")});import{Database as b4}from"bun:sqlite";class QD{db;constructor(){GD(g),this.db=new b4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON")}getRecentSummaries(D,u=10){return this.db.query(`
SELECT
request, investigated, learned, completed, next_steps,
files_read, files_edited, notes, created_at
FROM session_summaries
WHERE project = ?
ORDER BY created_at_epoch DESC
LIMIT ?
`).all(D,u)}findActiveSDKSession(D){return this.db.query(`
SELECT id, sdk_session_id, project
FROM sdk_sessions
WHERE claude_session_id = ? AND status = 'active'
LIMIT 1
`).get(D)||null}createSDKSession(D,u,F){let C=new Date,B=C.getTime();return this.db.query(`
INSERT INTO sdk_sessions
(claude_session_id, project, user_prompt, started_at, started_at_epoch, status)
VALUES (?, ?, ?, ?, ?, 'active')
`).run(D,u,F,C.toISOString(),B),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(D,u){this.db.query(`
UPDATE sdk_sessions
SET sdk_session_id = ?
WHERE id = ?
`).run(u,D)}storeObservation(D,u,F,C){let B=new Date,$=B.getTime();this.db.query(`
INSERT INTO observations
(sdk_session_id, project, text, type, created_at, created_at_epoch)
VALUES (?, ?, ?, ?, ?, ?)
`).run(D,u,C,F,B.toISOString(),$)}storeSummary(D,u,F){let C=new Date,B=C.getTime();this.db.query(`
INSERT INTO session_summaries
(sdk_session_id, project, request, investigated, learned, completed,
next_steps, files_read, files_edited, notes, created_at, created_at_epoch)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
`).run(D,u,F.request||null,F.investigated||null,F.learned||null,F.completed||null,F.next_steps||null,F.files_read||null,F.files_edited||null,F.notes||null,C.toISOString(),B)}markSessionCompleted(D){let u=new Date,F=u.getTime();this.db.query(`
UPDATE sdk_sessions
SET status = 'completed', completed_at = ?, completed_at_epoch = ?
WHERE id = ?
`).run(u.toISOString(),F,D)}markSessionFailed(D){let u=new Date,F=u.getTime();this.db.query(`
UPDATE sdk_sessions
SET status = 'failed', completed_at = ?, completed_at_epoch = ?
WHERE id = ?
`).run(u.toISOString(),F,D)}close(){this.db.close()}}var Fu=mD(()=>{$D()});import o4 from"path";function o6(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code SessionStart hook"),process.exit(0);if(D.source&&D.source!=="startup")console.log(""),process.exit(0);let u=o4.basename(D.cwd),F=new QD,C=F.getRecentSummaries(u,5);if(F.close(),C.length===0)console.log(`# Recent Session Context
No previous sessions found for this project yet.`),process.exit(0);let B=[];B.push("# Recent Session Context"),B.push(""),B.push(`Here's what happened in recent ${u} sessions:`),B.push("");for(let $ of C){if(B.push("---"),B.push(""),$.request)B.push(`**Request:** ${$.request}`);if($.completed)B.push(`**Completed:** ${$.completed}`);if($.learned)B.push(`**Learned:** ${$.learned}`);if($.next_steps)B.push(`**Next Steps:** ${$.next_steps}`);if($.files_edited)try{let E=JSON.parse($.files_edited);if(Array.isArray(E)&&E.length>0)B.push(`**Files Edited:** ${E.join(", ")}`)}catch{if($.files_edited.trim())B.push(`**Files Edited:** ${$.files_edited}`)}B.push(`**Date:** ${$.created_at.split("T")[0]}`),B.push("")}console.log(B.join(`
`)),process.exit(0)}catch(u){console.error(`[claude-mem context error: ${u.message}]`),process.exit(0)}}var s6=mD(()=>{Fu()});import s4 from"net";function t6(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code PostToolUse hook"),console.log(`
Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",tool_name:"string",tool_input:{},tool_output:{}},null,2)),process.exit(0);let{session_id:u,tool_name:F,tool_input:C,tool_output:B}=D;if(t4.has(F))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let $=new QD,E=$.findActiveSDKSession(u);if($.close(),!E)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=Zu(E.id),X={type:"observation",tool_name:F,tool_input:JSON.stringify(C),tool_output:JSON.stringify(B)},Z=s4.connect(Q,()=>{Z.write(JSON.stringify(X)+`
`),Z.end()});Z.on("error",(J)=>{console.error(`[claude-mem save] Socket error: ${J.message}`)}),Z.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem save error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var t4;var e6=mD(()=>{Fu();$D();t4=new Set(["TodoWrite","ListMcpResourcesTool"])});import D1 from"path";import{spawn as u1}from"child_process";function F1(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code UserPromptSubmit hook"),console.log(`
Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",prompt:"string"},null,2)),process.exit(0);let{session_id:u,cwd:F,prompt:C}=D,B=D1.basename(F),$=new QD;if($.findActiveSDKSession(u))$.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=$.createSDKSession(u,B,C);$.close();let X=process.env.CLAUDE_PLUGIN_ROOT,Z;if(X){let J=D1.join(X,"scripts","hooks","worker.js");Z=u1("bun",[J,Q.toString()],{detached:!0,stdio:"ignore"})}else Z=u1("claude-mem",["worker",Q.toString()],{detached:!0,stdio:"ignore"});Z.unref(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}catch(u){console.error(`[claude-mem new error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var C1=mD(()=>{Fu()});import e4 from"net";function B1(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code Stop hook"),console.log(`
Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string"},null,2)),process.exit(0);let{session_id:u}=D,F=new QD,C=F.findActiveSDKSession(u);if(F.close(),!C)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=Zu(C.id),$={type:"finalize"},E=e4.connect(B,()=>{E.write(JSON.stringify($)+`
`),E.end()});E.on("error",(Q)=>{console.error(`[claude-mem summary] Socket error: ${Q.message}`)}),E.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem summary error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var E1=mD(()=>{Fu();$D()});var su={};R2(su,{summaryHook:()=>B1,saveHook:()=>t6,newHook:()=>F1,contextHook:()=>o6});var tu=mD(()=>{s6();e6();C1();E1()});function $1(D,u,F){return`You are a memory assistant for the "${D}" project.
SESSION CONTEXT
---------------
Session ID: ${u}
User's Goal: ${F}
Date: ${new Date().toISOString().split("T")[0]}
YOUR ROLE
---------
You will observe tool executions during this Claude Code session. Your job is to:
1. Extract meaningful insights (not just raw data)
2. Store atomic observations in SQLite
3. Focus on: key decisions, patterns discovered, problems solved, technical insights
WHAT TO CAPTURE
----------------
\u2713 Architecture decisions (e.g., "chose PostgreSQL over MongoDB for ACID guarantees")
\u2713 Bug fixes (e.g., "fixed race condition in auth middleware by adding mutex")
\u2713 New features (e.g., "implemented JWT refresh token flow")
\u2713 Refactorings (e.g., "extracted validation logic into separate service")
\u2713 Discoveries (e.g., "found that API rate limit is 100 req/min")
\u2717 NOT routine operations (reading files, listing directories)
\u2717 NOT work-in-progress (only completed work)
\u2717 NOT obvious facts (e.g., "TypeScript file has types")
HOW TO STORE OBSERVATIONS
--------------------------
When you identify something worth remembering, output your observation in this EXACT XML format:
\`\`\`xml
<observation>
<type>feature</type>
<text>Implemented JWT token refresh flow with 7-day expiry</text>
</observation>
\`\`\`
Valid types: decision, bugfix, feature, refactor, discovery
Structure requirements:
- <observation> is the root element
- <type> must be one of the 5 valid types (single word)
- <text> contains your concise observation (one sentence preferred)
- No additional fields or nesting
The SDK worker will parse all <observation> blocks from your response using regex and store them in SQLite.
You can include your reasoning before or after the observation block, or just output the observation by itself.
EXAMPLE
-------
Bad: "Read src/auth.ts file"
Good: "Implemented JWT token refresh flow with 7-day expiry"
Wait for tool observations. Acknowledge this message briefly.`}function Q1(D){return`TOOL OBSERVATION
================
Tool: ${D.tool_name}
Time: ${new Date(D.created_at_epoch).toISOString()}
Input:
${JSON.stringify(JSON.parse(D.tool_input),null,2)}
Output:
${JSON.stringify(JSON.parse(D.tool_output),null,2)}
ANALYSIS TASK
-------------
1. Does this observation contain something worth remembering?
2. If YES: Output the observation in this EXACT XML format:
\`\`\`xml
<observation>
<type>feature</type>
<text>Your concise observation here</text>
</observation>
\`\`\`
Requirements:
- Use one of these types: decision, bugfix, feature, refactor, discovery
- Keep text concise (one sentence preferred)
- No markdown formatting inside <text>
- No additional XML fields
3. If NO: Just acknowledge and wait for next observation
Remember: Quality over quantity. Only store meaningful insights.`}function X1(D){return`SESSION ENDING
==============
The Claude Code session is finishing.
FINAL TASK
----------
1. Review the observations you've stored this session
2. Generate a structured summary that answers these questions:
- What did user request?
- What did you investigate?
- What did you learn?
- What did you do?
- What's next?
- Files read
- Files edited
- Notes
3. Generate the structured summary and output it in this EXACT XML format:
\`\`\`xml
<summary>
<request>Implement JWT authentication system</request>
<investigated>Existing auth middleware, session management, token storage patterns</investigated>
<learned>Current system uses session cookies; no JWT support; race condition in middleware</learned>
<completed>Implemented JWT token + refresh flow with 7-day expiry; fixed race condition with mutex; added token validation middleware</completed>
<next_steps>Add token revocation API endpoint; write integration tests</next_steps>
<files_read>
<file>src/auth.ts</file>
<file>src/middleware/session.ts</file>
<file>src/types/user.ts</file>
</files_read>
<files_edited>
<file>src/auth.ts</file>
<file>src/middleware/auth.ts</file>
<file>src/routes/auth.ts</file>
</files_edited>
<notes>Token secret stored in .env; refresh tokens use rotation strategy</notes>
</summary>
\`\`\`
Structure requirements:
- <summary> is the root element
- All 8 child elements are REQUIRED: request, investigated, learned, completed, next_steps, files_read, files_edited, notes
- <files_read> and <files_edited> must contain <file> child elements (one per file)
- If no files were read/edited, use empty tags: <files_read></files_read>
- Text fields can be multiple sentences but avoid markdown formatting
- Use underscores in element names: next_steps, files_read, files_edited
The SDK worker will parse the <summary> block and extract all fields to store in SQLite.
Generate the summary now in the required XML format.`}function J1(D){let u=[],F=/<observation>\s*<type>([^<]+)<\/type>\s*<text>([^<]+)<\/text>\s*<\/observation>/g,C;while((C=F.exec(D))!==null){let B=C[1].trim(),$=C[2].trim();if(!["decision","bugfix","feature","refactor","discovery"].includes(B)){console.warn(`[SDK Parser] Invalid observation type: ${B}, skipping`);continue}u.push({type:B,text:$})}return u}function Y1(D){let F=/<summary>([\s\S]*?)<\/summary>/.exec(D);if(!F)return null;let C=F[1],B=Uu(C,"request"),$=Uu(C,"investigated"),E=Uu(C,"learned"),Q=Uu(C,"completed"),X=Uu(C,"next_steps"),Z=Uu(C,"notes"),J=Z1(C,"files_read"),V=Z1(C,"files_edited");if(!B||!$||!E||!Q||!X||!Z)return console.warn("[SDK Parser] Summary missing required fields"),null;return{request:B,investigated:$,learned:E,completed:Q,next_steps:X,files_read:J,files_edited:V,notes:Z}}function Uu(D,u){let C=new RegExp(`<${u}>([^<]*)</${u}>`).exec(D);return C?C[1].trim():null}function Z1(D,u){let F=[],B=new RegExp(`<${u}>(.*?)</${u}>`,"s").exec(D);if(!B)return F;let $=B[1],E=/<file>([^<]+)<\/file>/g,Q;while((Q=E.exec($))!==null)F.push(Q[1].trim());return F}var V1={};R2(V1,{main:()=>BE});import DE from"net";import{unlinkSync as q1,existsSync as U2}from"fs";import{query as uE}from"@anthropic-ai/claude-agent-sdk";async function BE(){console.error("[SDK Worker DEBUG] main() called");let D=parseInt(process.argv[2],10);if(console.error(`[SDK Worker DEBUG] Session DB ID: ${D}`),!D)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);let u=new K1(D);console.error("[SDK Worker DEBUG] SDKWorker instance created"),await u.run()}class K1{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(D){this.sessionDbId=D,this.db=new QD,this.abortController=new AbortController,this.socketPath=Zu(D)}async run(){try{let D=await this.loadSession();if(!D)console.error("[SDK Worker] Session not found"),process.exit(1);this.project=D.project,this.userPrompt=D.user_prompt,await this.startSocketServer(),console.error(`[SDK Worker] Socket server listening: ${this.socketPath}`),await this.runSDKAgent(),this.db.markSessionCompleted(this.sessionDbId),this.db.close(),this.cleanup()}catch(D){console.error("[SDK Worker] Error:",D.message),this.db.markSessionFailed(this.sessionDbId),this.db.close(),this.cleanup(),process.exit(1)}}async startSocketServer(){if(console.error("[SDK Worker DEBUG] Starting socket server..."),console.error(`[SDK Worker DEBUG] Socket path: ${this.socketPath}`),U2(this.socketPath))console.error("[SDK Worker DEBUG] Removing existing socket"),q1(this.socketPath);return new Promise((D,u)=>{console.error("[SDK Worker DEBUG] Creating net server..."),this.server=DE.createServer((F)=>{let C="";F.on("data",(B)=>{C+=B.toString();let $=C.split(`
`);C=$.pop()||"";for(let E of $)if(E.trim())try{let Q=JSON.parse(E);this.handleMessage(Q)}catch(Q){console.error("[SDK Worker] Invalid message:",E)}}),F.on("error",(B)=>{console.error("[SDK Worker] Socket connection error:",B.message)})}),this.server.on("error",(F)=>{if(F.code==="EADDRINUSE")console.error(`[SDK Worker] Socket already in use: ${this.socketPath}`);u(F)}),this.server.listen(this.socketPath,()=>{console.error("[SDK Worker DEBUG] listen() callback fired"),console.error(`[SDK Worker DEBUG] Checking if socket exists: ${U2(this.socketPath)}`),D()})})}handleMessage(D){if(this.pendingMessages.push(D),D.type==="finalize")this.isFinalized=!0}async loadSession(){return this.db.db.query(`
SELECT id, sdk_session_id, project, user_prompt
FROM sdk_sessions
WHERE id = ?
LIMIT 1
`).get(this.sessionDbId)}async runSDKAgent(){await uE({model:FE,prompt:this.createMessageGenerator(),disallowedTools:CE,signal:this.abortController.signal,onSystemInitMessage:(D)=>{if(D.session_id)this.sdkSessionId=D.session_id,this.db.updateSDKSessionId(this.sessionDbId,D.session_id)},onAgentMessage:(D)=>{this.handleAgentMessage(D.content)}})}async*createMessageGenerator(){let D=`session-${this.sessionDbId}`;yield{type:"user",message:{role:"user",content:$1(this.project,D,this.userPrompt)}};while(!this.isFinalized){if(this.pendingMessages.length===0){await this.sleep(100);continue}while(this.pendingMessages.length>0){let F=this.pendingMessages.shift();if(F.type==="finalize"){this.isFinalized=!0;let C=await this.loadSession();if(C)yield{type:"user",message:{role:"user",content:X1(C)}};break}if(F.type==="observation")yield{type:"user",message:{role:"user",content:Q1({tool_name:F.tool_name,tool_input:F.tool_input,tool_output:F.tool_output})}}}}}handleAgentMessage(D){let u=J1(D);for(let C of u)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,C.type,C.text);let F=Y1(D);if(F&&this.sdkSessionId){let C={request:F.request,investigated:F.investigated,learned:F.learned,completed:F.completed,next_steps:F.next_steps,files_read:JSON.stringify(F.files_read),files_edited:JSON.stringify(F.files_edited),notes:F.notes};this.db.storeSummary(this.sdkSessionId,this.project,C)}}cleanup(){if(this.server)this.server.close();if(U2(this.socketPath))q1(this.socketPath)}sleep(D){return new Promise((u)=>setTimeout(u,D))}}var FE="claude-sonnet-4-5",CE;var H1=mD(()=>{Fu();$D();CE=["Glob","Grep","ListMcpResourcesTool","WebSearch"]});var m2=bD(g2(),1),{program:KE,createCommand:VE,createArgument:HE,createOption:AE,CommanderError:zE,InvalidArgumentError:UE,InvalidOptionArgumentError:GE,Command:c2,Argument:WE,Option:_E,Help:jE}=m2.default;import{readFileSync as HC,existsSync as AC}from"fs";import{join as zC,dirname as UC}from"path";import{fileURLToPath as GC}from"url";var d2="claude-mem",l2="3.9.16",p2="Memory compression system for Claude Code - persist context across sessions",i2=d2,n2=l2,a2=p2;try{let D=GC(import.meta.url),u=UC(D),F=zC(u,"..","..","package.json");if(AC(F)){let C=JSON.parse(HC(F,"utf-8"));i2=C.name||d2,n2=C.version||l2,a2=C.description||p2}}catch{}var dD=i2,r2=n2,o2=a2;import{readFileSync as Su,writeFileSync as Ju,existsSync as iD,mkdirSync as R0,copyFileSync as _9,statSync as Z$,readdirSync as J$}from"fs";import{join as Yu,dirname as rF}from"path";import{homedir as S8}from"os";import{execSync as P8}from"child_process";var o=bD(BF(),1),J3=bD($F(),1);import{stdin as X3,stdout as Z3}from"process";import*as lD from"readline";import D3 from"readline";import{Writable as LC}from"stream";function IC({onlyFirst:D=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}var NC=IC();function Y3(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(NC,"")}function q3(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var K3={exports:{}};(function(D){var u={};D.exports=u,u.eastAsianWidth=function(C){var B=C.charCodeAt(0),$=C.length==2?C.charCodeAt(1):0,E=B;return 55296<=B&&B<=56319&&56320<=$&&$<=57343&&(B&=1023,$&=1023,E=B<<10|$,E+=65536),E==12288||65281<=E&&E<=65376||65504<=E&&E<=65510?"F":E==8361||65377<=E&&E<=65470||65474<=E&&E<=65479||65482<=E&&E<=65487||65490<=E&&E<=65495||65498<=E&&E<=65500||65512<=E&&E<=65518?"H":4352<=E&&E<=4447||4515<=E&&E<=4519||4602<=E&&E<=4607||9001<=E&&E<=9002||11904<=E&&E<=11929||11931<=E&&E<=12019||12032<=E&&E<=12245||12272<=E&&E<=12283||12289<=E&&E<=12350||12353<=E&&E<=12438||12441<=E&&E<=12543||12549<=E&&E<=12589||12593<=E&&E<=12686||12688<=E&&E<=12730||12736<=E&&E<=12771||12784<=E&&E<=12830||12832<=E&&E<=12871||12880<=E&&E<=13054||13056<=E&&E<=19903||19968<=E&&E<=42124||42128<=E&&E<=42182||43360<=E&&E<=43388||44032<=E&&E<=55203||55216<=E&&E<=55238||55243<=E&&E<=55291||63744<=E&&E<=64255||65040<=E&&E<=65049||65072<=E&&E<=65106||65108<=E&&E<=65126||65128<=E&&E<=65131||110592<=E&&E<=110593||127488<=E&&E<=127490||127504<=E&&E<=127546||127552<=E&&E<=127560||127568<=E&&E<=127569||131072<=E&&E<=194367||177984<=E&&E<=196605||196608<=E&&E<=262141?"W":32<=E&&E<=126||162<=E&&E<=163||165<=E&&E<=166||E==172||E==175||10214<=E&&E<=10221||10629<=E&&E<=10630?"Na":E==161||E==164||167<=E&&E<=168||E==170||173<=E&&E<=174||176<=E&&E<=180||182<=E&&E<=186||188<=E&&E<=191||E==198||E==208||215<=E&&E<=216||222<=E&&E<=225||E==230||232<=E&&E<=234||236<=E&&E<=237||E==240||242<=E&&E<=243||247<=E&&E<=250||E==252||E==254||E==257||E==273||E==275||E==283||294<=E&&E<=295||E==299||305<=E&&E<=307||E==312||319<=E&&E<=322||E==324||328<=E&&E<=331||E==333||338<=E&&E<=339||358<=E&&E<=359||E==363||E==462||E==464||E==466||E==468||E==470||E==472||E==474||E==476||E==593||E==609||E==708||E==711||713<=E&&E<=715||E==717||E==720||728<=E&&E<=731||E==733||E==735||768<=E&&E<=879||913<=E&&E<=929||931<=E&&E<=937||945<=E&&E<=961||963<=E&&E<=969||E==1025||1040<=E&&E<=1103||E==1105||E==8208||8211<=E&&E<=8214||8216<=E&&E<=8217||8220<=E&&E<=8221||8224<=E&&E<=8226||8228<=E&&E<=8231||E==8240||8242<=E&&E<=8243||E==8245||E==8251||E==8254||E==8308||E==8319||8321<=E&&E<=8324||E==8364||E==8451||E==8453||E==8457||E==8467||E==8470||8481<=E&&E<=8482||E==8486||E==8491||8531<=E&&E<=8532||8539<=E&&E<=8542||8544<=E&&E<=8555||8560<=E&&E<=8569||E==8585||8592<=E&&E<=8601||8632<=E&&E<=8633||E==8658||E==8660||E==8679||E==8704||8706<=E&&E<=8707||8711<=E&&E<=8712||E==8715||E==8719||E==8721||E==8725||E==8730||8733<=E&&E<=8736||E==8739||E==8741||8743<=E&&E<=8748||E==8750||8756<=E&&E<=8759||8764<=E&&E<=8765||E==8776||E==8780||E==8786||8800<=E&&E<=8801||8804<=E&&E<=8807||8810<=E&&E<=8811||8814<=E&&E<=8815||8834<=E&&E<=8835||8838<=E&&E<=8839||E==8853||E==8857||E==8869||E==8895||E==8978||9312<=E&&E<=9449||9451<=E&&E<=9547||9552<=E&&E<=9587||9600<=E&&E<=9615||9618<=E&&E<=9621||9632<=E&&E<=9633||9635<=E&&E<=9641||9650<=E&&E<=9651||9654<=E&&E<=9655||9660<=E&&E<=9661||9664<=E&&E<=9665||9670<=E&&E<=9672||E==9675||9678<=E&&E<=9681||9698<=E&&E<=9701||E==9711||9733<=E&&E<=9734||E==9737||9742<=E&&E<=9743||9748<=E&&E<=9749||E==9756||E==9758||E==9792||E==9794||9824<=E&&E<=9825||9827<=E&&E<=9829||9831<=E&&E<=9834||9836<=E&&E<=9837||E==9839||9886<=E&&E<=9887||9918<=E&&E<=9919||9924<=E&&E<=9933||9935<=E&&E<=9953||E==9955||9960<=E&&E<=9983||E==10045||E==10071||10102<=E&&E<=10111||11093<=E&&E<=11097||12872<=E&&E<=12879||57344<=E&&E<=63743||65024<=E&&E<=65039||E==65533||127232<=E&&E<=127242||127248<=E&&E<=127277||127280<=E&&E<=127337||127344<=E&&E<=127386||917760<=E&&E<=917999||983040<=E&&E<=1048573||1048576<=E&&E<=1114109?"A":"N"},u.characterLength=function(C){var B=this.eastAsianWidth(C);return B=="F"||B=="W"||B=="A"?2:1};function F(C){return C.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(C){for(var B=F(C),$=0,E=0;E<B.length;E++)$=$+this.characterLength(B[E]);return $},u.slice=function(C,B,$){textLen=u.length(C),B=B||0,$=$||1,B<0&&(B=textLen+B),$<0&&($=textLen+$);for(var E="",Q=0,X=F(C),Z=0;Z<X.length;Z++){var J=X[Z],V=u.length(J);if(Q>=B-(V==2?1:0))if(Q+V<=$)E+=J;else break;Q+=V}return E}})(K3);var OC=K3.exports,TC=q3(OC),wC=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},PC=q3(wC);function ju(D,u={}){if(typeof D!="string"||D.length===0||(u={ambiguousIsNarrow:!0,...u},D=Y3(D),D.length===0))return 0;D=D.replace(PC()," ");let F=u.ambiguousIsNarrow?1:2,C=0;for(let B of D){let $=B.codePointAt(0);if($<=31||$>=127&&$<=159||$>=768&&$<=879)continue;switch(TC.eastAsianWidth(B)){case"F":case"W":C+=2;break;case"A":C+=F;break;default:C+=1}}return C}var QF=10,u3=(D=0)=>(u)=>`\x1B[${u+D}m`,F3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,C3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,v={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(v.modifier);var SC=Object.keys(v.color),kC=Object.keys(v.bgColor);[...SC];function vC(){let D=new Map;for(let[u,F]of Object.entries(v)){for(let[C,B]of Object.entries(F))v[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=v[C],D.set(B[0],B[1]);Object.defineProperty(v,u,{value:F,enumerable:!1})}return Object.defineProperty(v,"codes",{value:D,enumerable:!1}),v.color.close="\x1B[39m",v.bgColor.close="\x1B[49m",v.color.ansi=u3(),v.color.ansi256=F3(),v.color.ansi16m=C3(),v.bgColor.ansi=u3(QF),v.bgColor.ansi256=F3(QF),v.bgColor.ansi16m=C3(QF),Object.defineProperties(v,{rgbToAnsi256:{value:(u,F,C)=>u===F&&F===C?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5),enumerable:!1},hexToRgb:{value:(u)=>{let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;C.length===3&&(C=[...C].map(($)=>$+$).join(""));let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>v.rgbToAnsi256(...v.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:(u)=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));return $===2&&(E+=60),E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>v.ansi256ToAnsi(v.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>v.ansi256ToAnsi(v.hexToAnsi256(u)),enumerable:!1}}),v}var xC=vC(),$0=new Set(["\x1B","\x9B"]),fC=39,JF="\x07",V3="[",bC="]",H3="m",YF=`${bC}8;;`,B3=(D)=>`${$0.values().next().value}${V3}${D}${H3}`,E3=(D)=>`${$0.values().next().value}${YF}${D}${JF}`,yC=(D)=>D.split(" ").map((u)=>ju(u)),XF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=ju(Y3(D[D.length-1]));for(let[Q,X]of C.entries()){let Z=ju(X);if(E+Z<=F?D[D.length-1]+=X:(D.push(X),E=0),$0.has(X)&&(B=!0,$=C.slice(Q+1).join("").startsWith(YF)),B){$?X===JF&&(B=!1,$=!1):X===H3&&(B=!1);continue}E+=Z,E===F&&Q<C.length-1&&(D.push(""),E=0)}!E&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},hC=(D)=>{let u=D.split(" "),F=u.length;for(;F>0&&!(ju(u[F-1])>0);)F--;return F===u.length?D:u.slice(0,F).join(" ")+u.slice(F).join("")},gC=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=yC(D),Q=[""];for(let[Z,J]of D.split(" ").entries()){F.trim!==!1&&(Q[Q.length-1]=Q[Q.length-1].trimStart());let V=ju(Q[Q.length-1]);if(Z!==0&&(V>=u&&(F.wordWrap===!1||F.trim===!1)&&(Q.push(""),V=0),(V>0||F.trim===!1)&&(Q[Q.length-1]+=" ",V++)),F.hard&&E[Z]>u){let H=u-V,z=1+Math.floor((E[Z]-H-1)/u);Math.floor((E[Z]-1)/u)<z&&Q.push(""),XF(Q,J,u);continue}if(V+E[Z]>u&&V>0&&E[Z]>0){if(F.wordWrap===!1&&V<u){XF(Q,J,u);continue}Q.push("")}if(V+E[Z]>u&&F.wordWrap===!1){XF(Q,J,u);continue}Q[Q.length-1]+=J}F.trim!==!1&&(Q=Q.map((Z)=>hC(Z)));let X=[...Q.join(`
`)];for(let[Z,J]of X.entries()){if(C+=J,$0.has(J)){let{groups:H}=new RegExp(`(?:\\${V3}(?<code>\\d+)m|\\${YF}(?<uri>.*)${JF})`).exec(X.slice(Z).join(""))||{groups:{}};if(H.code!==void 0){let z=Number.parseFloat(H.code);B=z===fC?void 0:z}else H.uri!==void 0&&($=H.uri.length===0?void 0:H.uri)}let V=xC.codes.get(Number(B));X[Z+1]===`
`?($&&(C+=E3("")),B&&V&&(C+=B3(V))):J===`
`&&(B&&V&&(C+=B3(B)),$&&(C+=E3($)))}return C};function $3(D,u,F){return String(D).normalize().replace(/\r\n/g,`
`).split(`
`).map((C)=>gC(C,u,F)).join(`
`)}var mC=["up","down","left","right","space","enter","cancel"],E0={actions:new Set(mC),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function qF(D,u){if(typeof D=="string")return E0.aliases.get(D)===u;for(let F of D)if(F!==void 0&&qF(F,u))return!0;return!1}function cC(D,u){if(D===u)return;let F=D.split(`
`),C=u.split(`
`),B=[];for(let $=0;$<Math.max(F.length,C.length);$++)F[$]!==C[$]&&B.push($);return B}var dC=globalThis.process.platform.startsWith("win"),ZF=Symbol("clack:cancel");function zD(D){return D===ZF}function B0(D,u){let F=D;F.isTTY&&F.setRawMode(u)}function A3({input:D=X3,output:u=Z3,overwrite:F=!0,hideCursor:C=!0}={}){let B=lD.createInterface({input:D,output:u,prompt:"",tabSize:1});lD.emitKeypressEvents(D,B),D.isTTY&&D.setRawMode(!0);let $=(E,{name:Q,sequence:X})=>{let Z=String(E);if(qF([Z,Q,X],"cancel")){C&&u.write(o.cursor.show),process.exit(0);return}if(!F)return;lD.moveCursor(u,Q==="return"?0:-1,Q==="return"?-1:0,()=>{lD.clearLine(u,1,()=>{D.once("keypress",$)})})};return C&&u.write(o.cursor.hide),D.once("keypress",$),()=>{D.off("keypress",$),C&&u.write(o.cursor.show),D.isTTY&&!dC&&D.setRawMode(!1),B.terminal=!1,B.close()}}var lC=Object.defineProperty,pC=(D,u,F)=>(u in D)?lC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,YD=(D,u,F)=>(pC(D,typeof u!="symbol"?u+"":u,F),F);class Q0{constructor(D,u=!0){YD(this,"input"),YD(this,"output"),YD(this,"_abortSignal"),YD(this,"rl"),YD(this,"opts"),YD(this,"_render"),YD(this,"_track",!1),YD(this,"_prevFrame",""),YD(this,"_subscribers",new Map),YD(this,"_cursor",0),YD(this,"state","initial"),YD(this,"error",""),YD(this,"value");let{input:F=X3,output:C=Z3,render:B,signal:$,...E}=D;this.opts=E,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=B.bind(this),this._track=u,this._abortSignal=$,this.input=F,this.output=C}unsubscribe(){this._subscribers.clear()}setSubscriber(D,u){let F=this._subscribers.get(D)??[];F.push(u),this._subscribers.set(D,F)}on(D,u){this.setSubscriber(D,{cb:u})}once(D,u){this.setSubscriber(D,{cb:u,once:!0})}emit(D,...u){let F=this._subscribers.get(D)??[],C=[];for(let B of F)B.cb(...u),B.once&&C.push(()=>F.splice(F.indexOf(B),1));for(let B of C)B()}prompt(){return new Promise((D,u)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(ZF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new LC;F._write=(C,B,$)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),$()},this.input.pipe(F),this.rl=D3.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),D3.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),B0(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(ZF)})})}onKeypress(D,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&E0.aliases.has(u.name)&&this.emit("cursor",E0.aliases.get(u.name)),E0.actions.has(u.name)&&this.emit("cursor",u.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),D==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),D&&this.emit("key",D.toLowerCase()),u?.name==="return"){if(this.opts.validate){let F=this.opts.validate(this.value);F&&(this.error=F instanceof Error?F.message:F,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}qF([D,u?.name,u?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
`),B0(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=$3(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
`).length-1;this.output.write(o.cursor.move(-999,D*-1))}render(){let D=$3(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(o.cursor.hide);else{let u=cC(this._prevFrame,D);if(this.restoreCursor(),u&&u?.length===1){let F=u[0];this.output.write(o.cursor.move(0,F)),this.output.write(o.erase.lines(1));let C=D.split(`
`);this.output.write(C[F]),this._prevFrame=D,this.output.write(o.cursor.move(0,C.length-F-1));return}if(u&&u?.length>1){let F=u[0];this.output.write(o.cursor.move(0,F)),this.output.write(o.erase.down());let C=D.split(`
`).slice(F);this.output.write(C.join(`
`)),this._prevFrame=D;return}this.output.write(o.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}class KF extends Q0{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(u)=>{this.output.write(o.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var iC;iC=new WeakMap;var nC=Object.defineProperty,aC=(D,u,F)=>(u in D)?nC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,Q3=(D,u,F)=>(aC(D,typeof u!="symbol"?u+"":u,F),F);class VF extends Q0{constructor(D){super(D,!1),Q3(this,"options"),Q3(this,"cursor",0),this.options=D.options,this.cursor=this.options.findIndex(({value:u})=>u===D.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(u)=>{switch(u){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class HF extends Q0{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let D=this.value.slice(0,this.cursor),[u,...F]=this.value.slice(this.cursor);return`${D}${J3.default.inverse(u)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}}var M=bD($F(),1),X0=bD(BF(),1);import ND from"process";function rC(){return ND.platform!=="win32"?ND.env.TERM!=="linux":!!ND.env.CI||!!ND.env.WT_SESSION||!!ND.env.TERMINUS_SUBLIME||ND.env.ConEmuTask==="{cmd::Cmder}"||ND.env.TERM_PROGRAM==="Terminus-Sublime"||ND.env.TERM_PROGRAM==="vscode"||ND.env.TERM==="xterm-256color"||ND.env.TERM==="alacritty"||ND.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var AF=rC(),c=(D,u)=>AF?D:u,oC=c("\u25C6","*"),z3=c("\u25A0","x"),U3=c("\u25B2","x"),GF=c("\u25C7","o"),mE=c("\u250C","T"),h=c("\u2502","|"),Mu=c("\u2514","\u2014"),zF=c("\u25CF",">"),UF=c("\u25CB"," "),cE=c("\u25FB","[\u2022]"),dE=c("\u25FC","[+]"),lE=c("\u25FB","[ ]"),pE=c("\u25AA","\u2022"),iE=c("\u2500","-"),nE=c("\u256E","+"),aE=c("\u251C","+"),rE=c("\u256F","+"),sC=c("\u25CF","\u2022"),tC=c("\u25C6","*"),eC=c("\u25B2","!"),D7=c("\u25A0","x"),WF=(D)=>{switch(D){case"initial":case"active":return M.default.cyan(oC);case"cancel":return M.default.red(z3);case"error":return M.default.yellow(U3);case"submit":return M.default.green(GF)}},u7=(D)=>{let{cursor:u,options:F,style:C}=D,B=D.maxItems??Number.POSITIVE_INFINITY,$=Math.max(process.stdout.rows-4,0),E=Math.min($,Math.max(B,5)),Q=0;u>=Q+E-3?Q=Math.max(Math.min(u-E+3,F.length-E),0):u<Q+2&&(Q=Math.max(u-2,0));let X=E<F.length&&Q>0,Z=E<F.length&&Q+E<F.length;return F.slice(Q,Q+E).map((J,V,H)=>{let z=V===0&&X,U=V===H.length-1&&Z;return z||U?M.default.dim("..."):C(J,V+Q===u)})},G3=(D)=>new HF({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let u=`${M.default.gray(h)}
${WF(this.state)} ${D.message}
`,F=D.placeholder?M.default.inverse(D.placeholder[0])+M.default.dim(D.placeholder.slice(1)):M.default.inverse(M.default.hidden("_")),C=this.value?this.valueWithCursor:F;switch(this.state){case"error":return`${u.trim()}
${M.default.yellow(h)} ${C}
${M.default.yellow(Mu)} ${M.default.yellow(this.error)}
`;case"submit":return`${u}${M.default.gray(h)} ${M.default.dim(this.value||D.placeholder)}`;case"cancel":return`${u}${M.default.gray(h)} ${M.default.strikethrough(M.default.dim(this.value??""))}${this.value?.trim()?`
${M.default.gray(h)}`:""}`;default:return`${u}${M.default.cyan(h)} ${C}
${M.default.cyan(Mu)}
`}}}).prompt();var Cu=(D)=>{let u=D.active??"Yes",F=D.inactive??"No";return new KF({active:u,inactive:F,initialValue:D.initialValue??!0,render(){let C=`${M.default.gray(h)}
${WF(this.state)} ${D.message}
`,B=this.value?u:F;switch(this.state){case"submit":return`${C}${M.default.gray(h)} ${M.default.dim(B)}`;case"cancel":return`${C}${M.default.gray(h)} ${M.default.strikethrough(M.default.dim(B))}
${M.default.gray(h)}`;default:return`${C}${M.default.cyan(h)} ${this.value?`${M.default.green(zF)} ${u}`:`${M.default.dim(UF)} ${M.default.dim(u)}`} ${M.default.dim("/")} ${this.value?`${M.default.dim(UF)} ${M.default.dim(F)}`:`${M.default.green(zF)} ${F}`}
${M.default.cyan(Mu)}
`}}}).prompt()},Z0=(D)=>{let u=(F,C)=>{let B=F.label??String(F.value);switch(C){case"selected":return`${M.default.dim(B)}`;case"active":return`${M.default.green(zF)} ${B} ${F.hint?M.default.dim(`(${F.hint})`):""}`;case"cancelled":return`${M.default.strikethrough(M.default.dim(B))}`;default:return`${M.default.dim(UF)} ${M.default.dim(B)}`}};return new VF({options:D.options,initialValue:D.initialValue,render(){let F=`${M.default.gray(h)}
${WF(this.state)} ${D.message}
`;switch(this.state){case"submit":return`${F}${M.default.gray(h)} ${u(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${M.default.gray(h)} ${u(this.options[this.cursor],"cancelled")}
${M.default.gray(h)}`;default:return`${F}${M.default.cyan(h)} ${u7({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(C,B)=>u(C,B?"active":"inactive")}).join(`
${M.default.cyan(h)} `)}
${M.default.cyan(Mu)}
`}}}).prompt()};var Bu=(D="")=>{process.stdout.write(`${M.default.gray(Mu)} ${M.default.red(D)}
`)};var DD={message:(D="",{symbol:u=M.default.gray(h)}={})=>{let F=[`${M.default.gray(h)}`];if(D){let[C,...B]=D.split(`
`);F.push(`${u} ${C}`,...B.map(($)=>`${M.default.gray(h)} ${$}`))}process.stdout.write(`${F.join(`
`)}
`)},info:(D)=>{DD.message(D,{symbol:M.default.blue(sC)})},success:(D)=>{DD.message(D,{symbol:M.default.green(tC)})},step:(D)=>{DD.message(D,{symbol:M.default.green(GF)})},warn:(D)=>{DD.message(D,{symbol:M.default.yellow(eC)})},warning:(D)=>{DD.warn(D)},error:(D)=>{DD.message(D,{symbol:M.default.red(D7)})}},oE=`${M.default.gray(h)} `;var W3=({indicator:D="dots"}={})=>{let u=AF?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],F=AF?80:120,C=process.env.CI==="true",B,$,E=!1,Q="",X,Z=performance.now(),J=(L)=>{let S=L>1?"Something went wrong":"Canceled";E&&R(S,L)},V=()=>J(2),H=()=>J(1),z=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",H),process.on("SIGTERM",H),process.on("exit",J)},U=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",H),process.removeListener("SIGTERM",H),process.removeListener("exit",J)},G=()=>{if(X===void 0)return;C&&process.stdout.write(`
`);let L=X.split(`
`);process.stdout.write(X0.cursor.move(-999,L.length-1)),process.stdout.write(X0.erase.down(L.length))},j=(L)=>L.replace(/\.+$/,""),I=(L)=>{let S=(performance.now()-L)/1000,y=Math.floor(S/60),ZD=Math.floor(S%60);return y>0?`[${y}m ${ZD}s]`:`[${ZD}s]`},O=(L="")=>{E=!0,B=A3(),Q=j(L),Z=performance.now(),process.stdout.write(`${M.default.gray(h)}
`);let S=0,y=0;z(),$=setInterval(()=>{if(C&&Q===X)return;G(),X=Q;let ZD=M.default.magenta(u[S]);if(C)process.stdout.write(`${ZD} ${Q}...`);else if(D==="timer")process.stdout.write(`${ZD} ${Q} ${I(Z)}`);else{let SD=".".repeat(Math.floor(y)).slice(0,3);process.stdout.write(`${ZD} ${Q}${SD}`)}S=S+1<u.length?S+1:0,y=y<u.length?y+0.125:0},F)},R=(L="",S=0)=>{E=!1,clearInterval($),G();let y=S===0?M.default.green(GF):S===1?M.default.red(z3):M.default.red(U3);Q=j(L??Q),D==="timer"?process.stdout.write(`${y} ${Q} ${I(Z)}
`):process.stdout.write(`${y} ${Q}
`),U(),B()};return{start:O,stop:R,message:(L="")=>{Q=j(L??Q)}}};var _3=(D=0)=>(u)=>`\x1B[${u+D}m`,j3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,M3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},tE=Object.keys(x.modifier),F7=Object.keys(x.color),C7=Object.keys(x.bgColor),eE=[...F7,...C7];function B7(){let D=new Map;for(let[u,F]of Object.entries(x)){for(let[C,B]of Object.entries(F))x[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=x[C],D.set(B[0],B[1]);Object.defineProperty(x,u,{value:F,enumerable:!1})}return Object.defineProperty(x,"codes",{value:D,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=_3(),x.color.ansi256=j3(),x.color.ansi16m=M3(),x.bgColor.ansi=_3(10),x.bgColor.ansi256=j3(10),x.bgColor.ansi16m=M3(10),Object.defineProperties(x,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>x.rgbToAnsi256(...x.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>x.ansi256ToAnsi(x.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>x.ansi256ToAnsi(x.hexToAnsi256(u)),enumerable:!1}}),x}var E7=B7(),OD=E7;import _F from"process";import $7 from"os";import R3 from"tty";function UD(D,u=globalThis.Deno?globalThis.Deno.args:_F.argv){let F=D.startsWith("-")?"":D.length===1?"-":"--",C=u.indexOf(F+D),B=u.indexOf("--");return C!==-1&&(B===-1||C<B)}var{env:f}=_F,Y0;if(UD("no-color")||UD("no-colors")||UD("color=false")||UD("color=never"))Y0=0;else if(UD("color")||UD("colors")||UD("color=true")||UD("color=always"))Y0=1;function Q7(){if("FORCE_COLOR"in f){if(f.FORCE_COLOR==="true")return 1;if(f.FORCE_COLOR==="false")return 0;return f.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(f.FORCE_COLOR,10),3)}}function X7(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function Z7(D,{streamIsTTY:u,sniffFlags:F=!0}={}){let C=Q7();if(C!==void 0)Y0=C;let B=F?Y0:C;if(B===0)return 0;if(F){if(UD("color=16m")||UD("color=full")||UD("color=truecolor"))return 3;if(UD("color=256"))return 2}if("TF_BUILD"in f&&"AGENT_NAME"in f)return 1;if(D&&!u&&B===void 0)return 0;let $=B||0;if(f.TERM==="dumb")return $;if(_F.platform==="win32"){let E=$7.release().split(".");if(Number(E[0])>=10&&Number(E[2])>=10586)return Number(E[2])>=14931?3:2;return 1}if("CI"in f){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((E)=>(E in f)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((E)=>(E in f))||f.CI_NAME==="codeship")return 1;return $}if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if(f.TERM==="xterm-kitty")return 3;if(f.TERM==="xterm-ghostty")return 3;if(f.TERM==="wezterm")return 3;if("TERM_PROGRAM"in f){let E=Number.parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return E>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(f.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM))return 1;if("COLORTERM"in f)return 1;return $}function L3(D,u={}){let F=Z7(D,{streamIsTTY:D&&D.isTTY,...u});return X7(F)}var J7={stdout:L3({isTTY:R3.isatty(1)}),stderr:L3({isTTY:R3.isatty(2)})},I3=J7;function N3(D,u,F){let C=D.indexOf(u);if(C===-1)return D;let B=u.length,$=0,E="";do E+=D.slice($,C)+u+F,$=C+B,C=D.indexOf(u,$);while(C!==-1);return E+=D.slice($),E}function O3(D,u,F,C){let B=0,$="";do{let E=D[C-1]==="\r";$+=D.slice(B,E?C-1:C)+u+(E?`\r
`:`
`)+F,B=C+1,C=D.indexOf(`
`,B)}while(C!==-1);return $+=D.slice(B),$}var{stdout:T3,stderr:w3}=I3,jF=Symbol("GENERATOR"),Eu=Symbol("STYLER"),Ru=Symbol("IS_EMPTY"),P3=["ansi","ansi","ansi256","ansi16m"],$u=Object.create(null),Y7=(D,u={})=>{if(u.level&&!(Number.isInteger(u.level)&&u.level>=0&&u.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let F=T3?T3.level:0;D.level=u.level===void 0?F:u.level};var q7=(D)=>{let u=(...F)=>F.join(" ");return Y7(u,D),Object.setPrototypeOf(u,Lu.prototype),u};function Lu(D){return q7(D)}Object.setPrototypeOf(Lu.prototype,Function.prototype);for(let[D,u]of Object.entries(OD))$u[D]={get(){let F=q0(this,RF(u.open,u.close,this[Eu]),this[Ru]);return Object.defineProperty(this,D,{value:F}),F}};$u.visible={get(){let D=q0(this,this[Eu],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var MF=(D,u,F,...C)=>{if(D==="rgb"){if(u==="ansi16m")return OD[F].ansi16m(...C);if(u==="ansi256")return OD[F].ansi256(OD.rgbToAnsi256(...C));return OD[F].ansi(OD.rgbToAnsi(...C))}if(D==="hex")return MF("rgb",u,F,...OD.hexToRgb(...C));return OD[F][D](...C)},K7=["rgb","hex","ansi256"];for(let D of K7){$u[D]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,P3[F],"color",...C),OD.color.close,this[Eu]);return q0(this,B,this[Ru])}}};let u="bg"+D[0].toUpperCase()+D.slice(1);$u[u]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,P3[F],"bgColor",...C),OD.bgColor.close,this[Eu]);return q0(this,B,this[Ru])}}}}var V7=Object.defineProperties(()=>{},{...$u,level:{enumerable:!0,get(){return this[jF].level},set(D){this[jF].level=D}}}),RF=(D,u,F)=>{let C,B;if(F===void 0)C=D,B=u;else C=F.openAll+D,B=u+F.closeAll;return{open:D,close:u,openAll:C,closeAll:B,parent:F}},q0=(D,u,F)=>{let C=(...B)=>H7(C,B.length===1?""+B[0]:B.join(" "));return Object.setPrototypeOf(C,V7),C[jF]=D,C[Eu]=u,C[Ru]=F,C},H7=(D,u)=>{if(D.level<=0||!u)return D[Ru]?"":u;let F=D[Eu];if(F===void 0)return u;let{openAll:C,closeAll:B}=F;if(u.includes("\x1B"))while(F!==void 0)u=N3(u,F.close,F.open),F=F.parent;let $=u.indexOf(`
`);if($!==-1)u=O3(u,B,C,$);return C+u+B};Object.defineProperties(Lu.prototype,$u);var A7=Lu(),Z5=Lu({level:w3?w3.level:0});var N=A7;var wF=bD(h3(),1),s=(...D)=>{let u,F;if(D.length===0)throw new Error("Missing gradient colors");if(!Array.isArray(D[0])){if(D.length===1)throw new Error(`Expected an array of colors, received ${JSON.stringify(D[0])}`);u=wF.default(...D)}else u=wF.default(D[0]),F=PF(D[1]);let C=(B,$)=>{return z7(B?B.toString():"",u,$??F)};return C.multiline=(B,$)=>U7(B?B.toString():"",u,$??F),C},g3=(D,u,F)=>{return u.interpolation?.toLowerCase()==="hsv"?D.hsv(F,u.hsvSpin?.toLowerCase()||!1):D.rgb(F)};function z7(D,u,F){let C=PF(F),B=Math.max(D.replace(/\s/g,"").length,u.stops.length),$=g3(u,C,B),E="";for(let Q of D)E+=Q.match(/\s/g)?Q:N.hex($.shift()?.toHex()||"#000")(Q);return E}function U7(D,u,F){let C=PF(F),B=D.split(`
`),$=Math.max(...B.map((X)=>X.length),u.stops.length),E=g3(u,C,$),Q=[];for(let X of B){let Z=E.slice(0),J="";for(let V of X)J+=N.hex(Z.shift()?.toHex()||"#000")(V);Q.push(J)}return Q.join(`
`)}function PF(D){let u={interpolation:"rgb",hsvSpin:"short",...D};if(D!==void 0&&typeof D!=="object")throw new TypeError(`Expected \`options\` to be an \`object\`, got \`${typeof D}\``);if(typeof u.interpolation!=="string")throw new TypeError(`Expected \`options.interpolation\` to be \`rgb\` or \`hsv\`, got \`${typeof u.interpolation}\``);if(u.interpolation.toLowerCase()==="hsv"&&typeof u.hsvSpin!=="string")throw new TypeError(`Expected \`options.hsvSpin\` to be a \`short\` or \`long\`, got \`${typeof u.hsvSpin}\``);return u}var qD={atlas:{colors:["#feac5e","#c779d0","#4bc0c8"],options:{}},cristal:{colors:["#bdfff3","#4ac29a"],options:{}},teen:{colors:["#77a1d3","#79cbca","#e684ae"],options:{}},mind:{colors:["#473b7b","#3584a7","#30d2be"],options:{}},morning:{colors:["#ff5f6d","#ffc371"],options:{interpolation:"hsv"}},vice:{colors:["#5ee7df","#b490ca"],options:{interpolation:"hsv"}},passion:{colors:["#f43b47","#453a94"],options:{}},fruit:{colors:["#ff4e50","#f9d423"],options:{}},instagram:{colors:["#833ab4","#fd1d1d","#fcb045"],options:{}},retro:{colors:["#3f51b1","#5a55ae","#7b5fac","#8f6aae","#a86aa4","#cc6b8e","#f18271","#f3a469","#f7c978"],options:{}},summer:{colors:["#fdbb2d","#22c1c3"],options:{}},rainbow:{colors:["#ff0000","#ff0100"],options:{interpolation:"hsv",hsvSpin:"long"}},pastel:{colors:["#74ebd5","#74ecd5"],options:{interpolation:"hsv",hsvSpin:"long"}}};function KD(D){let u=(F)=>s(...D.colors)(F,D.options);return u.multiline=(F="")=>s(...D.colors).multiline(F,D.options),u}var SF=s,G7=KD(qD.atlas),W7=KD(qD.cristal),_7=KD(qD.teen),j7=KD(qD.mind),M7=KD(qD.morning),R7=KD(qD.vice),L7=KD(qD.passion),I7=KD(qD.fruit),N7=KD(qD.instagram),O7=KD(qD.retro),T7=KD(qD.summer),w7=KD(qD.rainbow),P7=KD(qD.pastel);s.atlas=G7;s.cristal=W7;s.teen=_7;s.mind=j7;s.morning=M7;s.vice=R7;s.passion=L7;s.fruit=I7;s.instagram=N7;s.retro=O7;s.summer=T7;s.rainbow=w7;s.pastel=P7;import U0 from"process";function kF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var S7=kF();function Nu(D){if(typeof D!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(S7,"")}function m3(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function c3(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function d3(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D>=94192&&D<=94198||D>=94208&&D<=101589||D>=101631&&D<=101662||D>=101760&&D<=101874||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128728||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129674||D>=129678&&D<=129734||D===129736||D>=129741&&D<=129756||D>=129759&&D<=129770||D>=129775&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function k7(D){if(!Number.isSafeInteger(D))throw new TypeError(`Expected a code point, got \`${typeof D}\`.`)}function l3(D,{ambiguousAsWide:u=!1}={}){if(k7(D),c3(D)||d3(D)||u&&m3(D))return 2;return 1}var p3=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var v7=new Intl.Segmenter,x7=/^\p{Default_Ignorable_Code_Point}$/u;function uD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:C=!1}=u;if(!C)D=Nu(D);if(D.length===0)return 0;let B=0,$={ambiguousAsWide:!F};for(let{segment:E}of v7.segment(D)){let Q=E.codePointAt(0);if(Q<=31||Q>=127&&Q<=159)continue;if(Q>=8203&&Q<=8207||Q===65279)continue;if(Q>=768&&Q<=879||Q>=6832&&Q<=6911||Q>=7616&&Q<=7679||Q>=8400&&Q<=8447||Q>=65056&&Q<=65071)continue;if(Q>=55296&&Q<=57343)continue;if(Q>=65024&&Q<=65039)continue;if(x7.test(E))continue;if(p3().test(E)){B+=2;continue}B+=l3(Q,$)}return B}function V0(D){let u=0;for(let F of D.split(`
`))u=Math.max(u,uD(F));return u}var _8=bD(xF(),1);var b7=/[\p{Lu}]/u,y7=/[\p{Ll}]/u,a3=/^[\p{Lu}](?![\p{Lu}])/gu,s3=/([\p{Alpha}\p{N}_]|$)/u,fF=/[_.\- ]+/,h7=new RegExp("^"+fF.source),r3=new RegExp(fF.source+s3.source,"gu"),o3=new RegExp("\\d+"+s3.source,"gu"),g7=(D,u,F,C)=>{let B=!1,$=!1,E=!1,Q=!1;for(let X=0;X<D.length;X++){let Z=D[X];if(Q=X>2?D[X-3]==="-":!0,B&&b7.test(Z))D=D.slice(0,X)+"-"+D.slice(X),B=!1,E=$,$=!0,X++;else if($&&E&&y7.test(Z)&&(!Q||C))D=D.slice(0,X-1)+"-"+D.slice(X-1),E=$,$=!1,B=!0;else B=u(Z)===Z&&F(Z)!==Z,E=$,$=F(Z)===Z&&u(Z)!==Z}return D},m7=(D,u)=>{return a3.lastIndex=0,D.replaceAll(a3,(F)=>u(F))},c7=(D,u)=>{return r3.lastIndex=0,o3.lastIndex=0,D.replaceAll(o3,(F,C,B)=>["_","-"].includes(D.charAt(B+F.length))?F:u(F)).replaceAll(r3,(F,C)=>u(C))};function bF(D,u){if(!(typeof D==="string"||Array.isArray(D)))throw new TypeError("Expected the input to be `string | string[]`");if(u={pascalCase:!1,preserveConsecutiveUppercase:!1,...u},Array.isArray(D))D=D.map(($)=>$.trim()).filter(($)=>$.length).join("-");else D=D.trim();if(D.length===0)return"";let F=u.locale===!1?($)=>$.toLowerCase():($)=>$.toLocaleLowerCase(u.locale),C=u.locale===!1?($)=>$.toUpperCase():($)=>$.toLocaleUpperCase(u.locale);if(D.length===1){if(fF.test(D))return"";return u.pascalCase?C(D):F(D)}if(D!==F(D))D=g7(D,F,C,u.preserveConsecutiveUppercase);if(D=D.replace(h7,""),D=u.preserveConsecutiveUppercase?m7(D,F):F(D),u.pascalCase)D=C(D.charAt(0))+D.slice(1);return c7(D,C)}var cF=bD(Z8(),1);var J8=(D=0)=>(u)=>`\x1B[${u+D}m`,Y8=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,q8=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},b5=Object.keys(b.modifier),o7=Object.keys(b.color),s7=Object.keys(b.bgColor),y5=[...o7,...s7];function t7(){let D=new Map;for(let[u,F]of Object.entries(b)){for(let[C,B]of Object.entries(F))b[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=b[C],D.set(B[0],B[1]);Object.defineProperty(b,u,{value:F,enumerable:!1})}return Object.defineProperty(b,"codes",{value:D,enumerable:!1}),b.color.close="\x1B[39m",b.bgColor.close="\x1B[49m",b.color.ansi=J8(),b.color.ansi256=Y8(),b.color.ansi16m=q8(),b.bgColor.ansi=J8(10),b.bgColor.ansi256=Y8(10),b.bgColor.ansi16m=q8(10),Object.defineProperties(b,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>b.rgbToAnsi256(...b.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>b.ansi256ToAnsi(b.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>b.ansi256ToAnsi(b.hexToAnsi256(u)),enumerable:!1}}),b}var e7=t7(),K8=e7;var A0=new Set(["\x1B","\x9B"]),D9=39,mF="\x07",A8="[",u9="]",z8="m",H0=`${u9}8;;`,V8=(D)=>`${A0.values().next().value}${A8}${D}${z8}`,H8=(D)=>`${A0.values().next().value}${H0}${D}${mF}`,F9=(D)=>D.split(" ").map((u)=>uD(u)),gF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=uD(Nu(D.at(-1)));for(let[Q,X]of C.entries()){let Z=uD(X);if(E+Z<=F)D[D.length-1]+=X;else D.push(X),E=0;if(A0.has(X))B=!0,$=C.slice(Q+1,Q+1+H0.length).join("")===H0;if(B){if($){if(X===mF)B=!1,$=!1}else if(X===z8)B=!1;continue}if(E+=Z,E===F&&Q<C.length-1)D.push(""),E=0}if(!E&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},C9=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(uD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},B9=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=F9(D),Q=[""];for(let[V,H]of D.split(" ").entries()){if(F.trim!==!1)Q[Q.length-1]=Q.at(-1).trimStart();let z=uD(Q.at(-1));if(V!==0){if(z>=u&&(F.wordWrap===!1||F.trim===!1))Q.push(""),z=0;if(z>0||F.trim===!1)Q[Q.length-1]+=" ",z++}if(F.hard&&E[V]>u){let U=u-z,G=1+Math.floor((E[V]-U-1)/u);if(Math.floor((E[V]-1)/u)<G)Q.push("");gF(Q,H,u);continue}if(z+E[V]>u&&z>0&&E[V]>0){if(F.wordWrap===!1&&z<u){gF(Q,H,u);continue}Q.push("")}if(z+E[V]>u&&F.wordWrap===!1){gF(Q,H,u);continue}Q[Q.length-1]+=H}if(F.trim!==!1)Q=Q.map((V)=>C9(V));let X=Q.join(`
`),Z=[...X],J=0;for(let[V,H]of Z.entries()){if(C+=H,A0.has(H)){let{groups:U}=new RegExp(`(?:\\${A8}(?<code>\\d+)m|\\${H0}(?<uri>.*)${mF})`).exec(X.slice(J))||{groups:{}};if(U.code!==void 0){let G=Number.parseFloat(U.code);B=G===D9?void 0:G}else if(U.uri!==void 0)$=U.uri.length===0?void 0:U.uri}let z=K8.codes.get(Number(B));if(Z[V+1]===`
`){if($)C+=H8("");if(B&&z)C+=V8(z)}else if(H===`
`){if(B&&z)C+=V8(B);if($)C+=H8($)}J+=H.length}return C};function z0(D,u,F){return String(D).normalize().replaceAll(`\r
`,`
`).split(`
`).map((C)=>B9(C,u,F)).join(`
`)}var K9=bD(xF(),1),pD=`
`,VD=" ",Ou="none",j8=()=>{let{env:D,stdout:u,stderr:F}=U0;if(u?.columns)return u.columns;if(F?.columns)return F.columns;if(D.COLUMNS)return Number.parseInt(D.COLUMNS,10);return 80},U8=(D)=>typeof D==="number"?{top:D,right:D*3,bottom:D,left:D*3}:{top:0,right:0,bottom:0,left:0,...D},Tu=(D)=>D===Ou?0:2,E9=(D)=>{let u=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],F;if(D===Ou){D={};for(let C of u)D[C]=""}if(typeof D==="string"){if(F=_8.default[D],!F)throw new TypeError(`Invalid border style: ${D}`)}else{if(typeof D?.vertical==="string")D.left=D.vertical,D.right=D.vertical;if(typeof D?.horizontal==="string")D.top=D.horizontal,D.bottom=D.horizontal;for(let C of u)if(D[C]===null||typeof D[C]!=="string")throw new TypeError(`Invalid border style: ${C}`);F=D}return F},$9=(D,u,F)=>{let C="",B=uD(D);switch(F){case"left":{C=D+u.slice(B);break}case"right":{C=u.slice(B)+D;break}default:{if(u=u.slice(B),u.length%2===1)u=u.slice(Math.floor(u.length/2)),C=u.slice(1)+D+u;else u=u.slice(u.length/2),C=u+D+u;break}}return C},Q9=(D,{padding:u,width:F,textAlignment:C,height:B})=>{D=cF.default(D,{align:C});let $=D.split(pD),E=V0(D),Q=F-u.left-u.right;if(E>Q){let J=[];for(let V of $){let H=z0(V,Q,{hard:!0}),U=cF.default(H,{align:C}).split(`
`),G=Math.max(...U.map((j)=>uD(j)));for(let j of U){let I;switch(C){case"center":{I=VD.repeat((Q-G)/2)+j;break}case"right":{I=VD.repeat(Q-G)+j;break}default:{I=j;break}}J.push(I)}}$=J}if(C==="center"&&E<Q)$=$.map((J)=>VD.repeat((Q-E)/2)+J);else if(C==="right"&&E<Q)$=$.map((J)=>VD.repeat(Q-E)+J);let X=VD.repeat(u.left),Z=VD.repeat(u.right);if($=$.map((J)=>{let V=X+J+Z;return V+VD.repeat(F-uD(V))}),u.top>0)$=[...Array.from({length:u.top}).fill(VD.repeat(F)),...$];if(u.bottom>0)$=[...$,...Array.from({length:u.bottom}).fill(VD.repeat(F))];if(B&&$.length>B)$=$.slice(0,B);else if(B&&$.length<B)$=[...$,...Array.from({length:B-$.length}).fill(VD.repeat(F))];return $.join(pD)},X9=(D,u,F)=>{let C=(J)=>{let V=F.borderColor?Y9(F.borderColor)(J):J;return F.dimBorder?N.dim(V):V},B=(J)=>F.backgroundColor?q9(F.backgroundColor)(J):J,$=E9(F.borderStyle),E=j8(),Q=VD.repeat(F.margin.left);if(F.float==="center"){let J=Math.max((E-u-Tu(F.borderStyle))/2,0);Q=VD.repeat(J)}else if(F.float==="right"){let J=Math.max(E-u-F.margin.right-Tu(F.borderStyle),0);Q=VD.repeat(J)}let X="";if(F.margin.top)X+=pD.repeat(F.margin.top);if(F.borderStyle!==Ou||F.title)X+=C(Q+$.topLeft+(F.title?$9(F.title,$.top.repeat(u),F.titleAlignment):$.top.repeat(u))+$.topRight)+pD;let Z=D.split(pD);if(X+=Z.map((J)=>Q+C($.left)+B(J)+C($.right)).join(pD),F.borderStyle!==Ou)X+=pD+C(Q+$.bottomLeft+$.bottom.repeat(u)+$.bottomRight);if(F.margin.bottom)X+=pD.repeat(F.margin.bottom);return X},Z9=(D)=>{if(D.fullscreen&&U0?.stdout){let u=[U0.stdout.columns,U0.stdout.rows];if(typeof D.fullscreen==="function")u=D.fullscreen(...u);D.width||=u[0],D.height||=u[1]}return D.width&&=Math.max(1,D.width-Tu(D.borderStyle)),D.height&&=Math.max(1,D.height-Tu(D.borderStyle)),D},G8=(D,u)=>u===Ou?D:` ${D} `,J9=(D,u)=>{u=Z9(u);let F=u.width!==void 0,C=j8(),B=Tu(u.borderStyle),$=C-u.margin.left-u.margin.right-B,E=V0(z0(D,C-B,{hard:!0,trim:!1}))+u.padding.left+u.padding.right;if(u.title&&F)u.title=u.title.slice(0,Math.max(0,u.width-2)),u.title&&=G8(u.title,u.borderStyle);else if(u.title){if(u.title=u.title.slice(0,Math.max(0,$-2)),u.title){if(u.title=G8(u.title,u.borderStyle),uD(u.title)>E)u.width=uD(u.title)}}if(u.width||=E,!F){if(u.margin.left&&u.margin.right&&u.width>$){let X=(C-u.width-B)/(u.margin.left+u.margin.right);u.margin.left=Math.max(0,Math.floor(u.margin.left*X)),u.margin.right=Math.max(0,Math.floor(u.margin.right*X))}u.width=Math.min(u.width,C-B-u.margin.left-u.margin.right)}if(u.width-(u.padding.left+u.padding.right)<=0)u.padding.left=0,u.padding.right=0;if(u.height&&u.height-(u.padding.top+u.padding.bottom)<=0)u.padding.top=0,u.padding.bottom=0;return u},dF=(D)=>D.match(/^#(?:[0-f]{3}){1,2}$/i),W8=(D)=>typeof D==="string"&&(N[D]??dF(D)),Y9=(D)=>dF(D)?N.hex(D):N[D],q9=(D)=>dF(D)?N.bgHex(D):N[bF(["bg",D])];function G0(D,u){if(u={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...u},u.align)u.textAlignment=u.align;if(u.borderColor&&!W8(u.borderColor))throw new Error(`${u.borderColor} is not a valid borderColor`);if(u.backgroundColor&&!W8(u.backgroundColor))throw new Error(`${u.backgroundColor} is not a valid backgroundColor`);return u.padding=U8(u.padding),u.margin=U8(u.margin),u=J9(D,u),D=Q9(D,u),X9(D,u.width,u)}import{platform as V9,homedir as H9}from"os";import{execSync as M8}from"child_process";import{join as wu}from"path";var lF=V9()==="win32",W0={installUv:()=>{if(lF)M8('powershell -Command "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe"});else M8("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/sh"})},getShellConfigPaths:()=>{let D=H9();if(lF)return[wu(D,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),wu(D,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1")];return[wu(D,".bashrc"),wu(D,".zshrc"),wu(D,".bash_profile")]},getAliasDefinition:(D,u)=>{if(lF)return`function ${D} { ${u} $args }`;return`alias ${D}='${u}'`}};$D();function j9(D){let u,F=0,C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];return{start(){u=setInterval(()=>{process.stdout.write(`\r${N.cyan(C[F%C.length])} ${D}`),F++},50)},stop(B,$=!0){clearInterval(u);let E=$?N.green("\u2713"):N.red("\u2717");process.stdout.write(`\r${E} ${B}
`)}}}var Pu=SF(["#ff0000","#ff4500","#ffa500","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"]),aF=SF(["#ff006e","#fb5607","#ffbe0b","#8338ec","#3a86ff"]);function M9(){W0.installUv(),process.env.PATH=`${S8()}/.cargo/bin:${process.env.PATH}`}function R9(){let D=Xu;if(!iD(D))return!1;try{let u=JSON.parse(Su(D,"utf8"));return!!(u.hooks?.SessionStart||u.hooks?.Stop||u.hooks?.PostToolUse)}catch{return!1}}async function L9(D){let u={};if(D){let $=await Cu({message:`\uD83E\uDDE0 Existing claude-mem installation detected. Your memories and data are safe!
Reinstall to update hooks and configuration?`,initialValue:!0});if(zD($)||!$)return Bu("Installation cancelled"),null;u.forceReinstall=!0}else u.forceReinstall=!1;let F=await Z0({message:"Select installation scope",options:[{value:"user",label:"User (Recommended)",hint:"Install for current user (~/.claude)"},{value:"project",label:"Project",hint:"Install for current project only (./.mcp.json)"},{value:"local",label:"Local",hint:"Custom local installation"}],initialValue:"user"});if(zD(F))return Bu("Installation cancelled"),null;if(u.scope=F,F==="local"){let $=await G3({message:"Enter custom installation directory",placeholder:Yu(process.cwd(),".claude-mem"),validate:(E)=>{if(!E)return"Path is required";if(!E.startsWith("/")&&!E.startsWith("~"))return"Please provide an absolute path"}});if(zD($))return Bu("Installation cancelled"),null;u.customPath=$}u.hookTimeout=180000;let C=await Cu({message:'Enable Smart Trash? This creates an alias for "rm" that moves files to ~/.claude-mem/trash instead of permanently deleting them. You can restore files anytime by typing "claude-mem restore".',initialValue:!0});if(zD(C))return Bu("Installation cancelled"),null;u.enableSmartTrash=C;let B=await Cu({message:'Would you like to save memories when you type "/clear" in Claude Code? When running /clear with this on, it takes about a minute to save memories before your new session starts.',initialValue:!1});if(zD(B))return Bu("Installation cancelled"),null;return u.saveMemoriesOnClear=B,u}function I9(){O8(),T8();let D=Yu(g,"package.json");if(!iD(D))Ju(D,JSON.stringify({name:"claude-mem-data",type:"module"},null,2))}function N9(){let D=N8,u=rF(D);R0(u,{recursive:!0});let F=`
<!-- CLAUDE-MEM QUICK REFERENCE -->
## \uD83E\uDDE0 Memory System Quick Reference
### Search Your Memories (SIMPLE & POWERFUL)
- **Semantic search is king**: \`mcp__claude-mem__chroma_query_documents(["search terms"])\`
- **\uD83D\uDD12 ALWAYS include project name in query**: \`["claude-mem feature authentication"]\` not just \`["feature authentication"]\`
- **Include dates for temporal search**: \`["project-name 2025-09-09 bug fix"]\` finds memories from that date
- **Get specific memory**: \`mcp__claude-mem__chroma_get_documents(ids: ["document_id"])\`
### Search Tips That Actually Work
- **Project isolation**: Always prefix queries with project name to avoid cross-contamination
- **Temporal search**: Include dates (YYYY-MM-DD) in query text to find memories from specific times
- **Intent-based**: "implementing oauth" > "oauth implementation code function"
- **Multiple queries**: Search with different phrasings for better coverage
- **Session-specific**: Include session ID in query when you know it
### What Doesn't Work (Don't Do This!)
- \u274C Complex where filters with $and/$or - they cause errors
- \u274C Timestamp comparisons ($gte/$lt) - Chroma stores timestamps as strings
- \u274C Mixing project filters in where clause - causes "Error finding id"
### Storage
- Collection: "claude_memories"
- Archives: ~/.claude-mem/archives/
<!-- /CLAUDE-MEM QUICK REFERENCE -->`,C="";if(iD(D)){C=Su(D,"utf8");let B=C.includes("<!-- CLAUDE-MEM INSTRUCTIONS -->"),$=C.includes("<!-- CLAUDE-MEM QUICK REFERENCE -->");if(B||$){let E,Q;if(B)E="<!-- CLAUDE-MEM INSTRUCTIONS -->",Q="<!-- /CLAUDE-MEM INSTRUCTIONS -->";else E="<!-- CLAUDE-MEM QUICK REFERENCE -->",Q="<!-- /CLAUDE-MEM QUICK REFERENCE -->";let X=C.indexOf(E),Z=C.indexOf(Q)+Q.length;if(X!==-1&&Z!==-1)C=C.substring(0,X)+F.trim()+C.substring(Z)}else C=C.trim()+`
`+F}else C=F.trim();Ju(D,C)}function O9(D=!1){let u=`${S8()}/.cargo/bin`;if(iD(u)&&!process.env.PATH?.includes(u))process.env.PATH=`${u}:${process.env.PATH}`;if(D)try{P8("claude mcp remove claude-mem",{stdio:"pipe"})}catch(C){}let F=`claude mcp add claude-mem -- uvx chroma-mcp --client-type persistent --data-dir ${Qu}`;P8(F,{stdio:"inherit"})}function M0(D,u,F){let C={hooks:[{type:"command",command:D,timeout:u}]};if(F)C.matcher=F;return C}function T9(D){let u=iD(D)?JSON.parse(Su(D,"utf8")):{hooks:{}};if(R0(rF(D),{recursive:!0}),!u.hooks)u.hooks={};["SessionStart","Stop","UserPromptSubmit","PostToolUse"].forEach((C)=>{if(u.hooks[C])u.hooks[C]=u.hooks[C].filter((B)=>!B.hooks?.some(($)=>$.command?.includes(dD)))}),u.hooks.SessionStart=[M0(`${dD} context`,180)],u.hooks.Stop=[M0(`${dD} summary`,60)],u.hooks.UserPromptSubmit=[M0(`${dD} new`,60)],u.hooks.PostToolUse=[M0(`${dD} save`,180,"*")],Ju(D,JSON.stringify(u,null,2))}function w9(D){if(D.scope==="local"&&D.customPath)return Yu(D.customPath,"settings.local.json");else if(D.scope==="project")return Yu(process.cwd(),".claude","settings.json");else return Xu}function P9(D){let u=I8,F=iD(u)?JSON.parse(Su(u,"utf8")):{};F.backend="chroma",F.installed=!0,F.embedded=!0,F.saveMemoriesOnClear=D.saveMemoriesOnClear||!1,Ju(u,JSON.stringify(F,null,2))}function S9(){let D=W0.getShellConfigPaths(),u=W0.getAliasDefinition("rm","claude-mem trash"),F="# claude-mem smart trash alias";for(let C of D){if(!iD(C)){let E=rF(C);R0(E,{recursive:!0}),Ju(C,"")}let B=Su(C,"utf8");if(B.includes(u))continue;let $=`
# claude-mem smart trash alias
${u}
`;B+=$,Ju(C,B)}}function k9(){let D=nF,u=w8();R0(D,{recursive:!0});let F=["save.md","remember.md","claude-mem.md"];for(let C of F){let B=Yu(u,C),$=Yu(D,C);if(iD(B))_9(B,$)}}async function k8(D={}){console.log(Pu(`
\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(Pu(" CLAUDE-MEM INSTALLER ")),console.log(Pu("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550")),console.log(G0(aF(`\uD83E\uDDE0 Persistent Memory System for Claude Code
\u2728 Transform your Claude experience with seamless context preservation
\uD83D\uDE80 Never lose your conversation history again`),{padding:2,margin:1,borderStyle:"double",borderColor:"magenta",textAlignment:"center"})),M9();let u=D.user||D.project||D.local||D.force,F;if(u)F={scope:D.local?"local":D.project?"project":"user",customPath:D.path,hookTimeout:D.timeout?parseInt(D.timeout):180,forceReinstall:!!D.force,enableSmartTrash:!1,saveMemoriesOnClear:!1};else{let X=R9(),Z=await L9(X);if(!Z)process.exit(0);F=Z}console.log(aF(`
\uD83D\uDE80 Beginning Installation Process
`));let C=[{name:"Creating directory structure",fn:()=>I9()},{name:"Installing Chroma MCP server",fn:()=>O9(F.forceReinstall)},{name:"Adding CLAUDE.md instructions",fn:()=>N9()},{name:"Installing Claude commands",fn:()=>k9()},{name:"Configuring Claude settings",fn:()=>T9(w9(F))},{name:"Configuring user settings",fn:()=>P9(F)}];if(F.enableSmartTrash)C.push({name:"Configuring Smart Trash alias",fn:()=>S9()});for(let X=0;X<C.length;X++){let Z=C[X],J=`[${X+1}/${C.length}]`,V=j9(`${N.gray(J)} ${Z.name}...`);V.start(),Z.fn(),V.stop(`${N.gray(J)} ${Z.name} ${aF("completed! \u2728")}`)}let B=Pu("\uD83C\uDF89 INSTALLATION COMPLETE! \uD83C\uDF89"),$=`
${N.bold("How your new memory system works:")}
${N.green("\u2022")} When you start Claude Code, claude-mem loads your latest memories automatically
${N.green("\u2022")} Memories are saved automatically as you work
${N.green("\u2022")} Ask Claude to search your memories anytime with natural language
${N.green("\u2022")} Instructions added to ${N.cyan("~/.claude/CLAUDE.md")} teach Claude how to use the system
${N.bold("Slash Commands Available:")}
${N.cyan("/claude-mem help")} - Show all memory commands and features
${N.cyan("/save")} - Quick save of current conversation overview
${N.cyan("/remember")} - Search your saved memories
${N.bold("Quick Start:")}
${N.yellow("1.")} Restart Claude Code to activate your memory system
${N.yellow("2.")} Start using Claude normally - memories save automatically
${N.yellow("3.")} Search memories by asking: ${N.italic('"Search my memories for X"')}`,E=F.enableSmartTrash?`
${N.blue("\uD83D\uDDD1\uFE0F Smart Trash Enabled:")}
${N.gray(" \u2022 rm commands now move files to ~/.claude-mem/trash")}
${N.gray(" \u2022 View trash:")} ${N.cyan("claude-mem trash view")}
${N.gray(" \u2022 Restore files:")} ${N.cyan("claude-mem restore")}
${N.gray(" \u2022 Empty trash:")} ${N.cyan("claude-mem trash empty")}
${N.yellow(" \u2022 Restart terminal for alias to activate")}`:"",Q=F.saveMemoriesOnClear?`
${N.magenta("\uD83D\uDCBE Save-on-clear enabled:")}
${N.gray(" \u2022 /clear now saves memories automatically (takes ~1 minute)")}`:"";console.log(G0(B+$+E+Q,{padding:2,margin:1,borderStyle:"double",borderColor:"green",backgroundColor:"#001122"})),console.log(Pu(`
\u2728 Welcome to the future of persistent AI conversations! \u2728
`))}$D();import{readFileSync as v8,writeFileSync as L0,existsSync as x8}from"fs";import{join as ku}from"path";import{homedir as v9}from"os";async function x9(){let D=v9(),u=[ku(D,".bashrc"),ku(D,".zshrc"),ku(D,".bash_profile")],F='alias rm="claude-mem trash"',C=["# claude-mem smart trash alias","# claude-mem trash bin alias"],B=!1;for(let $ of u){if(!x8($))continue;let E=v8($,"utf8");if(!E.includes('alias rm="claude-mem trash"'))continue;let Q=E.split(`
`),Z=Q.filter((J,V)=>{if(J.trim()==='alias rm="claude-mem trash"')return!1;for(let H of C)if(J.trim()===H&&V+1<Q.length&&Q[V+1].trim()==='alias rm="claude-mem trash"')return!1;return!0}).join(`
`);if(Z!==E){let J=$+".backup."+Date.now();L0(J,E),L0($,Z),console.log(`\u2705 Removed Smart Trash alias from ${$.replace(D,"~")}`),B=!0}}return B}async function f8(D={}){console.log("\uD83D\uDD04 Uninstalling Claude Memory System hooks...");let u=[];if(D.all)u.push({name:"User",path:Xu}),u.push({name:"Project",path:ku(process.cwd(),".claude","settings.json")});else{let B=D.project;u.push({name:B?"Project":"User",path:B?ku(process.cwd(),".claude","settings.json"):Xu})}let F=0;for(let B of u){if(!x8(B.path)){console.log(`\u23ED\uFE0F No settings found at ${B.name} location`);continue}let $=v8(B.path,"utf8"),E=JSON.parse($);if(!E.hooks){console.log(`\u23ED\uFE0F No hooks configured in ${B.name} settings`);continue}let Q=!1,X=["SessionStart","Stop","UserPromptSubmit","PostToolUse"];for(let Z of X)if(E.hooks[Z]){let J=E.hooks[Z].filter((V)=>!V.hooks?.some((H)=>H.command?.includes("claude-mem")));if(J.length!==E.hooks[Z].length)E.hooks[Z]=J.length?J:void 0,Q=!0,console.log(`\u2705 Removed ${Z} hook from ${B.name} settings`)}if(X.forEach((Z)=>{if(E.hooks[Z]===void 0)delete E.hooks[Z]}),!Object.keys(E.hooks).length)delete E.hooks;if(Q){let Z=B.path+".backup."+Date.now();L0(Z,$),console.log(`\uD83D\uDCCB Created backup: ${Z}`),L0(B.path,JSON.stringify(E,null,2)),F++,console.log(`\u2705 Updated ${B.name} settings: ${B.path}`)}else console.log(`\u2139\uFE0F No Claude Memory System hooks found in ${B.name} settings`)}let C=await x9();if(console.log(""),F>0||C){if(console.log("\u2728 Uninstallation complete!"),F>0)console.log("The Claude Memory System hooks have been removed from your settings.");if(C)console.log("The Smart Trash alias has been removed from your shell configuration."),console.log("\u26A0\uFE0F Restart your terminal for the alias removal to take effect.");console.log(""),console.log("Note: Your compressed transcripts and archives are preserved."),console.log("To reinstall: claude-mem install")}else console.log("\u2139\uFE0F No Claude Memory System hooks or aliases were found to remove.")}$D();import{readFileSync as f9,readdirSync as b9,statSync as y9}from"fs";import{join as b8}from"path";async function h9(D,u,F){try{let $=f9(D,"utf8").split(`
`).filter((E)=>E.trim()).slice(-F);if(console.log(`\uD83D\uDCCB ${u} Logs (last ${F} lines):`),console.log(` File: ${D}`),console.log(""),$.length===0)console.log(" No log entries found");else $.forEach((E)=>{console.log(` ${E}`)});console.log("")}catch(C){console.log(`\u274C Could not read ${u.toLowerCase()} log: ${D}`)}}async function y8(D={}){let u=iF,F=parseInt(D.tail)||20;try{let B=b9(u).filter(($)=>$.startsWith("claude-mem-")&&$.endsWith(".log")).map(($)=>({name:$,path:b8(u,$),mtime:y9(b8(u,$)).mtime})).sort(($,E)=>E.mtime.getTime()-$.mtime.getTime());if(B.length===0){console.log("\u274C No log files found in ~/.claude-mem/logs/");return}if(await h9(B[0].path,"Most Recent",F),D.all&&B.length>1)console.log(`\uD83D\uDCDA Found ${B.length} total log files`)}catch(C){console.log("\u274C Could not read logs directory: ~/.claude-mem/logs/"),console.log(" Run a compression first to generate logs")}}import{renameSync as R4,existsSync as k6,mkdirSync as L4,statSync as I4}from"fs";import{join as N4,basename as O4}from"path";var oF=(D,u,F)=>{let C=D instanceof RegExp?h8(D,F):D,B=u instanceof RegExp?h8(u,F):u,$=C!==null&&B!=null&&g9(C,B,F);return $&&{start:$[0],end:$[1],pre:F.slice(0,$[0]),body:F.slice($[0]+C.length,$[1]),post:F.slice($[1]+B.length)}},h8=(D,u)=>{let F=u.match(D);return F?F[0]:null},g9=(D,u,F)=>{let C,B,$,E=void 0,Q,X=F.indexOf(D),Z=F.indexOf(u,X+1),J=X;if(X>=0&&Z>0){if(D===u)return[X,Z];C=[],$=F.length;while(J>=0&&!Q){if(J===X)C.push(J),X=F.indexOf(D,J+1);else if(C.length===1){let V=C.pop();if(V!==void 0)Q=[V,Z]}else{if(B=C.pop(),B!==void 0&&B<$)$=B,E=Z;Z=F.indexOf(u,J+1)}J=X<Z&&X>=0?X:Z}if(C.length&&E!==void 0)Q=[$,E]}return Q};var g8="\x00SLASH"+Math.random()+"\x00",m8="\x00OPEN"+Math.random()+"\x00",tF="\x00CLOSE"+Math.random()+"\x00",c8="\x00COMMA"+Math.random()+"\x00",d8="\x00PERIOD"+Math.random()+"\x00",m9=new RegExp(g8,"g"),c9=new RegExp(m8,"g"),d9=new RegExp(tF,"g"),l9=new RegExp(c8,"g"),p9=new RegExp(d8,"g"),i9=/\\\\/g,n9=/\\{/g,a9=/\\}/g,r9=/\\,/g,o9=/\\./g;function sF(D){return!isNaN(D)?parseInt(D,10):D.charCodeAt(0)}function s9(D){return D.replace(i9,g8).replace(n9,m8).replace(a9,tF).replace(r9,c8).replace(o9,d8)}function t9(D){return D.replace(m9,"\\").replace(c9,"{").replace(d9,"}").replace(l9,",").replace(p9,".")}function l8(D){if(!D)return[""];let u=[],F=oF("{","}",D);if(!F)return D.split(",");let{pre:C,body:B,post:$}=F,E=C.split(",");E[E.length-1]+="{"+B+"}";let Q=l8($);if($.length)E[E.length-1]+=Q.shift(),E.push.apply(E,Q);return u.push.apply(u,E),u}function p8(D){if(!D)return[];if(D.slice(0,2)==="{}")D="\\{\\}"+D.slice(2);return vu(s9(D),!0).map(t9)}function e9(D){return"{"+D+"}"}function DB(D){return/^-?0\d/.test(D)}function uB(D,u){return D<=u}function FB(D,u){return D>=u}function vu(D,u){let F=[],C=oF("{","}",D);if(!C)return[D];let B=C.pre,$=C.post.length?vu(C.post,!1):[""];if(/\$$/.test(C.pre))for(let E=0;E<$.length;E++){let Q=B+"{"+C.body+"}"+$[E];F.push(Q)}else{let E=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(C.body),Q=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(C.body),X=E||Q,Z=C.body.indexOf(",")>=0;if(!X&&!Z){if(C.post.match(/,(?!,).*\}/))return D=C.pre+"{"+C.body+tF+C.post,vu(D);return[D]}let J;if(X)J=C.body.split(/\.\./);else if(J=l8(C.body),J.length===1&&J[0]!==void 0){if(J=vu(J[0],!1).map(e9),J.length===1)return $.map((H)=>C.pre+J[0]+H)}let V;if(X&&J[0]!==void 0&&J[1]!==void 0){let H=sF(J[0]),z=sF(J[1]),U=Math.max(J[0].length,J[1].length),G=J.length===3&&J[2]!==void 0?Math.abs(sF(J[2])):1,j=uB;if(z<H)G*=-1,j=FB;let O=J.some(DB);V=[];for(let R=H;j(R,z);R+=G){let L;if(Q){if(L=String.fromCharCode(R),L==="\\")L=""}else if(L=String(R),O){let S=U-L.length;if(S>0){let y=new Array(S+1).join("0");if(R<0)L="-"+y+L.slice(1);else L=y+L}}V.push(L)}}else{V=[];for(let H=0;H<J.length;H++)V.push.apply(V,vu(J[H],!1))}for(let H=0;H<V.length;H++)for(let z=0;z<$.length;z++){let U=B+V[H]+$[z];if(!u||X||U)F.push(U)}}return F}var xu=(D)=>{if(typeof D!=="string")throw new TypeError("invalid pattern");if(D.length>65536)throw new TypeError("pattern is too long")};var CB={"[: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]},fu=(D)=>D.replace(/[[\]\\-]/g,"\\$&"),BB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i8=(D)=>D.join(""),n8=(D,u)=>{let F=u;if(D.charAt(F)!=="[")throw new Error("not in a brace expression");let C=[],B=[],$=F+1,E=!1,Q=!1,X=!1,Z=!1,J=F,V="";D:while($<D.length){let G=D.charAt($);if((G==="!"||G==="^")&&$===F+1){Z=!0,$++;continue}if(G==="]"&&E&&!X){J=$+1;break}if(E=!0,G==="\\"){if(!X){X=!0,$++;continue}}if(G==="["&&!X){for(let[j,[I,O,R]]of Object.entries(CB))if(D.startsWith(j,$)){if(V)return["$.",!1,D.length-F,!0];if($+=j.length,R)B.push(I);else C.push(I);Q=Q||O;continue D}}if(X=!1,V){if(G>V)C.push(fu(V)+"-"+fu(G));else if(G===V)C.push(fu(G));V="",$++;continue}if(D.startsWith("-]",$+1)){C.push(fu(G+"-")),$+=2;continue}if(D.startsWith("-",$+1)){V=G,$+=2;continue}C.push(fu(G)),$++}if(J<$)return["",!1,0,!1];if(!C.length&&!B.length)return["$.",!1,D.length-F,!0];if(B.length===0&&C.length===1&&/^\\?.$/.test(C[0])&&!Z){let G=C[0].length===2?C[0].slice(-1):C[0];return[BB(G),!1,J-F,!1]}let H="["+(Z?"^":"")+i8(C)+"]",z="["+(Z?"":"^")+i8(B)+"]";return[C.length&&B.length?"("+H+"|"+z+")":C.length?H:z,Q,J-F,!0]};var TD=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/\[([^\/\\])\]/g,"$1"):D.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var EB=new Set(["!","?","+","*","@"]),a8=(D)=>EB.has(D),$B="(?!(?:^|/)\\.\\.?(?:$|/))",I0="(?!\\.)",QB=new Set(["[","."]),XB=new Set(["..","."]),ZB=new Set("().*{}+?[]^$\\!"),JB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),eF="[^/]",r8=eF+"*?",o8=eF+"+?";class a{type;#D;#u;#E=!1;#B=[];#$;#W;#U;#J=!1;#Q;#q;#Y=!1;constructor(D,u,F={}){if(this.type=D,D)this.#u=!0;if(this.#$=u,this.#D=this.#$?this.#$.#D:this,this.#Q=this.#D===this?F:this.#D.#Q,this.#U=this.#D===this?[]:this.#D.#U,D==="!"&&!this.#D.#J)this.#U.push(this);this.#W=this.#$?this.#$.#B.length:0}get hasMagic(){if(this.#u!==void 0)return this.#u;for(let D of this.#B){if(typeof D==="string")continue;if(D.type||D.hasMagic)return this.#u=!0}return this.#u}toString(){if(this.#q!==void 0)return this.#q;if(!this.type)return this.#q=this.#B.map((D)=>String(D)).join("");else return this.#q=this.type+"("+this.#B.map((D)=>String(D)).join("|")+")"}#X(){if(this!==this.#D)throw new Error("should only call on root");if(this.#J)return this;this.toString(),this.#J=!0;let D;while(D=this.#U.pop()){if(D.type!=="!")continue;let u=D,F=u.#$;while(F){for(let C=u.#W+1;!F.type&&C<F.#B.length;C++)for(let B of D.#B){if(typeof B==="string")throw new Error("string part in extglob AST??");B.copyIn(F.#B[C])}u=F,F=u.#$}}return this}push(...D){for(let u of D){if(u==="")continue;if(typeof u!=="string"&&!(u instanceof a&&u.#$===this))throw new Error("invalid part: "+u);this.#B.push(u)}}toJSON(){let D=this.type===null?this.#B.slice().map((u)=>typeof u==="string"?u:u.toJSON()):[this.type,...this.#B.map((u)=>u.toJSON())];if(this.isStart()&&!this.type)D.unshift([]);if(this.isEnd()&&(this===this.#D||this.#D.#J&&this.#$?.type==="!"))D.push({});return D}isStart(){if(this.#D===this)return!0;if(!this.#$?.isStart())return!1;if(this.#W===0)return!0;let D=this.#$;for(let u=0;u<this.#W;u++){let F=D.#B[u];if(!(F instanceof a&&F.type==="!"))return!1}return!0}isEnd(){if(this.#D===this)return!0;if(this.#$?.type==="!")return!0;if(!this.#$?.isEnd())return!1;if(!this.type)return this.#$?.isEnd();let D=this.#$?this.#$.#B.length:0;return this.#W===D-1}copyIn(D){if(typeof D==="string")this.push(D);else this.push(D.clone(this))}clone(D){let u=new a(this.type,D);for(let F of this.#B)u.copyIn(F);return u}static#F(D,u,F,C){let B=!1,$=!1,E=-1,Q=!1;if(u.type===null){let H=F,z="";while(H<D.length){let U=D.charAt(H++);if(B||U==="\\"){B=!B,z+=U;continue}if($){if(H===E+1){if(U==="^"||U==="!")Q=!0}else if(U==="]"&&!(H===E+2&&Q))$=!1;z+=U;continue}else if(U==="["){$=!0,E=H,Q=!1,z+=U;continue}if(!C.noext&&a8(U)&&D.charAt(H)==="("){u.push(z),z="";let G=new a(U,u);H=a.#F(D,G,H,C),u.push(G);continue}z+=U}return u.push(z),H}let X=F+1,Z=new a(null,u),J=[],V="";while(X<D.length){let H=D.charAt(X++);if(B||H==="\\"){B=!B,V+=H;continue}if($){if(X===E+1){if(H==="^"||H==="!")Q=!0}else if(H==="]"&&!(X===E+2&&Q))$=!1;V+=H;continue}else if(H==="["){$=!0,E=X,Q=!1,V+=H;continue}if(a8(H)&&D.charAt(X)==="("){Z.push(V),V="";let z=new a(H,Z);Z.push(z),X=a.#F(D,z,X,C);continue}if(H==="|"){Z.push(V),V="",J.push(Z),Z=new a(null,u);continue}if(H===")"){if(V===""&&u.#B.length===0)u.#Y=!0;return Z.push(V),V="",u.push(...J,Z),X}V+=H}return u.type=null,u.#u=void 0,u.#B=[D.substring(F-1)],X}static fromGlob(D,u={}){let F=new a(null,void 0,u);return a.#F(D,F,0,u),F}toMMPattern(){if(this!==this.#D)return this.#D.toMMPattern();let D=this.toString(),[u,F,C,B]=this.toRegExpSource();if(!(C||this.#u||this.#Q.nocase&&!this.#Q.nocaseMagicOnly&&D.toUpperCase()!==D.toLowerCase()))return F;let E=(this.#Q.nocase?"i":"")+(B?"u":"");return Object.assign(new RegExp(`^${u}$`,E),{_src:u,_glob:D})}get options(){return this.#Q}toRegExpSource(D){let u=D??!!this.#Q.dot;if(this.#D===this)this.#X();if(!this.type){let Q=this.isStart()&&this.isEnd(),X=this.#B.map((H)=>{let[z,U,G,j]=typeof H==="string"?a.#_(H,this.#u,Q):H.toRegExpSource(D);return this.#u=this.#u||G,this.#E=this.#E||j,z}).join(""),Z="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&XB.has(this.#B[0]))){let z=QB,U=u&&z.has(X.charAt(0))||X.startsWith("\\.")&&z.has(X.charAt(2))||X.startsWith("\\.\\.")&&z.has(X.charAt(4)),G=!u&&!D&&z.has(X.charAt(0));Z=U?$B:G?I0:""}}}let J="";if(this.isEnd()&&this.#D.#J&&this.#$?.type==="!")J="(?:$|\\/)";return[Z+X+J,TD(X),this.#u=!!this.#u,this.#E]}let F=this.type==="*"||this.type==="+",C=this.type==="!"?"(?:(?!(?:":"(?:",B=this.#V(u);if(this.isStart()&&this.isEnd()&&!B&&this.type!=="!"){let Q=this.toString();return this.#B=[Q],this.type=null,this.#u=void 0,[Q,TD(this.toString()),!1,!1]}let $=!F||D||u||!I0?"":this.#V(!0);if($===B)$="";if($)B=`(?:${B})(?:${$})*?`;let E="";if(this.type==="!"&&this.#Y)E=(this.isStart()&&!u?I0:"")+o8;else{let Q=this.type==="!"?"))"+(this.isStart()&&!u&&!D?I0:"")+r8+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&$?")":this.type==="*"&&$?")?":`)${this.type}`;E=C+B+Q}return[E,TD(B),this.#u=!!this.#u,this.#E]}#V(D){return this.#B.map((u)=>{if(typeof u==="string")throw new Error("string type in extglob ast??");let[F,C,B,$]=u.toRegExpSource(D);return this.#E=this.#E||$,F}).filter((u)=>!(this.isStart()&&this.isEnd())||!!u).join("|")}static#_(D,u,F=!1){let C=!1,B="",$=!1;for(let E=0;E<D.length;E++){let Q=D.charAt(E);if(C){C=!1,B+=(ZB.has(Q)?"\\":"")+Q;continue}if(Q==="\\"){if(E===D.length-1)B+="\\\\";else C=!0;continue}if(Q==="["){let[X,Z,J,V]=n8(D,E);if(J){B+=X,$=$||Z,E+=J-1,u=u||V;continue}}if(Q==="*"){if(F&&D==="*")B+=o8;else B+=r8;u=!0;continue}if(Q==="?"){B+=eF,u=!0;continue}B+=JB(Q)}return[B,TD(D),!!u,$]}}var qu=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/[?*()[\]]/g,"[$&]"):D.replace(/[?*()[\]\\]/g,"\\$&")};var CD=(D,u,F={})=>{if(xu(u),!F.nocomment&&u.charAt(0)==="#")return!1;return new _D(u,F).match(D)},YB=/^\*+([^+@!?\*\[\(]*)$/,qB=(D)=>(u)=>!u.startsWith(".")&&u.endsWith(D),KB=(D)=>(u)=>u.endsWith(D),VB=(D)=>{return D=D.toLowerCase(),(u)=>!u.startsWith(".")&&u.toLowerCase().endsWith(D)},HB=(D)=>{return D=D.toLowerCase(),(u)=>u.toLowerCase().endsWith(D)},AB=/^\*+\.\*+$/,zB=(D)=>!D.startsWith(".")&&D.includes("."),UB=(D)=>D!=="."&&D!==".."&&D.includes("."),GB=/^\.\*+$/,WB=(D)=>D!=="."&&D!==".."&&D.startsWith("."),_B=/^\*+$/,jB=(D)=>D.length!==0&&!D.startsWith("."),MB=(D)=>D.length!==0&&D!=="."&&D!=="..",RB=/^\?+([^+@!?\*\[\(]*)?$/,LB=([D,u=""])=>{let F=e8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},IB=([D,u=""])=>{let F=D6([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},NB=([D,u=""])=>{let F=D6([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},OB=([D,u=""])=>{let F=e8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},e8=([D])=>{let u=D.length;return(F)=>F.length===u&&!F.startsWith(".")},D6=([D])=>{let u=D.length;return(F)=>F.length===u&&F!=="."&&F!==".."},u6=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",s8={win32:{sep:"\\"},posix:{sep:"/"}},TB=u6==="win32"?s8.win32.sep:s8.posix.sep;CD.sep=TB;var r=Symbol("globstar **");CD.GLOBSTAR=r;var wB="[^/]",PB=wB+"*?",SB="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",kB="(?:(?!(?:\\/|^)\\.).)*?",vB=(D,u={})=>(F)=>CD(F,D,u);CD.filter=vB;var WD=(D,u={})=>Object.assign({},D,u),xB=(D)=>{if(!D||typeof D!=="object"||!Object.keys(D).length)return CD;let u=CD;return Object.assign((C,B,$={})=>u(C,B,WD(D,$)),{Minimatch:class C extends u.Minimatch{constructor(B,$={}){super(B,WD(D,$))}static defaults(B){return u.defaults(WD(D,B)).Minimatch}},AST:class C extends u.AST{constructor(B,$,E={}){super(B,$,WD(D,E))}static fromGlob(B,$={}){return u.AST.fromGlob(B,WD(D,$))}},unescape:(C,B={})=>u.unescape(C,WD(D,B)),escape:(C,B={})=>u.escape(C,WD(D,B)),filter:(C,B={})=>u.filter(C,WD(D,B)),defaults:(C)=>u.defaults(WD(D,C)),makeRe:(C,B={})=>u.makeRe(C,WD(D,B)),braceExpand:(C,B={})=>u.braceExpand(C,WD(D,B)),match:(C,B,$={})=>u.match(C,B,WD(D,$)),sep:u.sep,GLOBSTAR:r})};CD.defaults=xB;var F6=(D,u={})=>{if(xu(D),u.nobrace||!/\{(?:(?!\{).)*\}/.test(D))return[D];return p8(D)};CD.braceExpand=F6;var fB=(D,u={})=>new _D(D,u).makeRe();CD.makeRe=fB;var bB=(D,u,F={})=>{let C=new _D(u,F);if(D=D.filter((B)=>C.match(B)),C.options.nonull&&!D.length)D.push(u);return D};CD.match=bB;var t8=/[?*]|[+@!]\(.*?\)|\[|\]/,yB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class _D{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(D,u={}){if(xu(D),u=u||{},this.options=u,this.pattern=D,this.platform=u.platform||u6,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!u.windowsPathsNoEscape||u.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!u.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!u.nonegate,this.comment=!1,this.empty=!1,this.partial=!!u.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=u.windowsNoMagicRoot!==void 0?u.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 D of this.set)for(let u of D)if(typeof u!=="string")return!0;return!1}debug(...D){}make(){let D=this.pattern,u=this.options;if(!u.nocomment&&D.charAt(0)==="#"){this.comment=!0;return}if(!D){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],u.debug)this.debug=(...B)=>console.error(...B);this.debug(this.pattern,this.globSet);let F=this.globSet.map((B)=>this.slashSplit(B));this.globParts=this.preprocess(F),this.debug(this.pattern,this.globParts);let C=this.globParts.map((B,$,E)=>{if(this.isWindows&&this.windowsNoMagicRoot){let Q=B[0]===""&&B[1]===""&&(B[2]==="?"||!t8.test(B[2]))&&!t8.test(B[3]),X=/^[a-z]:/i.test(B[0]);if(Q)return[...B.slice(0,4),...B.slice(4).map((Z)=>this.parse(Z))];else if(X)return[B[0],...B.slice(1).map((Z)=>this.parse(Z))]}return B.map((Q)=>this.parse(Q))});if(this.debug(this.pattern,C),this.set=C.filter((B)=>B.indexOf(!1)===-1),this.isWindows)for(let B=0;B<this.set.length;B++){let $=this.set[B];if($[0]===""&&$[1]===""&&this.globParts[B][2]==="?"&&typeof $[3]==="string"&&/^[a-z]:$/i.test($[3]))$[2]="?"}this.debug(this.pattern,this.set)}preprocess(D){if(this.options.noglobstar){for(let F=0;F<D.length;F++)for(let C=0;C<D[F].length;C++)if(D[F][C]==="**")D[F][C]="*"}let{optimizationLevel:u=1}=this.options;if(u>=2)D=this.firstPhasePreProcess(D),D=this.secondPhasePreProcess(D);else if(u>=1)D=this.levelOneOptimize(D);else D=this.adjascentGlobstarOptimize(D);return D}adjascentGlobstarOptimize(D){return D.map((u)=>{let F=-1;while((F=u.indexOf("**",F+1))!==-1){let C=F;while(u[C+1]==="**")C++;if(C!==F)u.splice(F,C-F)}return u})}levelOneOptimize(D){return D.map((u)=>{return u=u.reduce((F,C)=>{let B=F[F.length-1];if(C==="**"&&B==="**")return F;if(C===".."){if(B&&B!==".."&&B!=="."&&B!=="**")return F.pop(),F}return F.push(C),F},[]),u.length===0?[""]:u})}levelTwoFileOptimize(D){if(!Array.isArray(D))D=this.slashSplit(D);let u=!1;do{if(u=!1,!this.preserveMultipleSlashes){for(let C=1;C<D.length-1;C++){let B=D[C];if(C===1&&B===""&&D[0]==="")continue;if(B==="."||B==="")u=!0,D.splice(C,1),C--}if(D[0]==="."&&D.length===2&&(D[1]==="."||D[1]===""))u=!0,D.pop()}let F=0;while((F=D.indexOf("..",F+1))!==-1){let C=D[F-1];if(C&&C!=="."&&C!==".."&&C!=="**")u=!0,D.splice(F-1,2),F-=2}}while(u);return D.length===0?[""]:D}firstPhasePreProcess(D){let u=!1;do{u=!1;for(let F of D){let C=-1;while((C=F.indexOf("**",C+1))!==-1){let $=C;while(F[$+1]==="**")$++;if($>C)F.splice(C+1,$-C);let E=F[C+1],Q=F[C+2],X=F[C+3];if(E!=="..")continue;if(!Q||Q==="."||Q===".."||!X||X==="."||X==="..")continue;u=!0,F.splice(C,1);let Z=F.slice(0);Z[C]="**",D.push(Z),C--}if(!this.preserveMultipleSlashes){for(let $=1;$<F.length-1;$++){let E=F[$];if($===1&&E===""&&F[0]==="")continue;if(E==="."||E==="")u=!0,F.splice($,1),$--}if(F[0]==="."&&F.length===2&&(F[1]==="."||F[1]===""))u=!0,F.pop()}let B=0;while((B=F.indexOf("..",B+1))!==-1){let $=F[B-1];if($&&$!=="."&&$!==".."&&$!=="**"){u=!0;let Q=B===1&&F[B+1]==="**"?["."]:[];if(F.splice(B-1,2,...Q),F.length===0)F.push("");B-=2}}}}while(u);return D}secondPhasePreProcess(D){for(let u=0;u<D.length-1;u++)for(let F=u+1;F<D.length;F++){let C=this.partsMatch(D[u],D[F],!this.preserveMultipleSlashes);if(C){D[u]=[],D[F]=C;break}}return D.filter((u)=>u.length)}partsMatch(D,u,F=!1){let C=0,B=0,$=[],E="";while(C<D.length&&B<u.length)if(D[C]===u[B])$.push(E==="b"?u[B]:D[C]),C++,B++;else if(F&&D[C]==="**"&&u[B]===D[C+1])$.push(D[C]),C++;else if(F&&u[B]==="**"&&D[C]===u[B+1])$.push(u[B]),B++;else if(D[C]==="*"&&u[B]&&(this.options.dot||!u[B].startsWith("."))&&u[B]!=="**"){if(E==="b")return!1;E="a",$.push(D[C]),C++,B++}else if(u[B]==="*"&&D[C]&&(this.options.dot||!D[C].startsWith("."))&&D[C]!=="**"){if(E==="a")return!1;E="b",$.push(u[B]),C++,B++}else return!1;return D.length===u.length&&$}parseNegate(){if(this.nonegate)return;let D=this.pattern,u=!1,F=0;for(let C=0;C<D.length&&D.charAt(C)==="!";C++)u=!u,F++;if(F)this.pattern=D.slice(F);this.negate=u}matchOne(D,u,F=!1){let C=this.options;if(this.isWindows){let U=typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0]),G=!U&&D[0]===""&&D[1]===""&&D[2]==="?"&&/^[a-z]:$/i.test(D[3]),j=typeof u[0]==="string"&&/^[a-z]:$/i.test(u[0]),I=!j&&u[0]===""&&u[1]===""&&u[2]==="?"&&typeof u[3]==="string"&&/^[a-z]:$/i.test(u[3]),O=G?3:U?0:void 0,R=I?3:j?0:void 0;if(typeof O==="number"&&typeof R==="number"){let[L,S]=[D[O],u[R]];if(L.toLowerCase()===S.toLowerCase()){if(u[R]=L,R>O)u=u.slice(R);else if(O>R)D=D.slice(O)}}}let{optimizationLevel:B=1}=this.options;if(B>=2)D=this.levelTwoFileOptimize(D);this.debug("matchOne",this,{file:D,pattern:u}),this.debug("matchOne",D.length,u.length);for(var $=0,E=0,Q=D.length,X=u.length;$<Q&&E<X;$++,E++){this.debug("matchOne loop");var Z=u[E],J=D[$];if(this.debug(u,Z,J),Z===!1)return!1;if(Z===r){this.debug("GLOBSTAR",[u,Z,J]);var V=$,H=E+1;if(H===X){this.debug("** at the end");for(;$<Q;$++)if(D[$]==="."||D[$]===".."||!C.dot&&D[$].charAt(0)===".")return!1;return!0}while(V<Q){var z=D[V];if(this.debug(`
globstar while`,D,V,u,H,z),this.matchOne(D.slice(V),u.slice(H),F))return this.debug("globstar found match!",V,Q,z),!0;else{if(z==="."||z===".."||!C.dot&&z.charAt(0)==="."){this.debug("dot detected!",D,V,u,H);break}this.debug("globstar swallow a segment, and continue"),V++}}if(F){if(this.debug(`
>>> no match, partial?`,D,V,u,H),V===Q)return!0}return!1}let U;if(typeof Z==="string")U=J===Z,this.debug("string match",Z,J,U);else U=Z.test(J),this.debug("pattern match",Z,J,U);if(!U)return!1}if($===Q&&E===X)return!0;else if($===Q)return F;else if(E===X)return $===Q-1&&D[$]==="";else throw new Error("wtf?")}braceExpand(){return F6(this.pattern,this.options)}parse(D){xu(D);let u=this.options;if(D==="**")return r;if(D==="")return"";let F,C=null;if(F=D.match(_B))C=u.dot?MB:jB;else if(F=D.match(YB))C=(u.nocase?u.dot?HB:VB:u.dot?KB:qB)(F[1]);else if(F=D.match(RB))C=(u.nocase?u.dot?IB:LB:u.dot?NB:OB)(F);else if(F=D.match(AB))C=u.dot?UB:zB;else if(F=D.match(GB))C=WB;let B=a.fromGlob(D,this.options).toMMPattern();if(C&&typeof B==="object")Reflect.defineProperty(B,"test",{value:C});return B}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let D=this.set;if(!D.length)return this.regexp=!1,this.regexp;let u=this.options,F=u.noglobstar?PB:u.dot?SB:kB,C=new Set(u.nocase?["i"]:[]),B=D.map((Q)=>{let X=Q.map((Z)=>{if(Z instanceof RegExp)for(let J of Z.flags.split(""))C.add(J);return typeof Z==="string"?yB(Z):Z===r?r:Z._src});return X.forEach((Z,J)=>{let V=X[J+1],H=X[J-1];if(Z!==r||H===r)return;if(H===void 0)if(V!==void 0&&V!==r)X[J+1]="(?:\\/|"+F+"\\/)?"+V;else X[J]=F;else if(V===void 0)X[J-1]=H+"(?:\\/|"+F+")?";else if(V!==r)X[J-1]=H+"(?:\\/|\\/"+F+"\\/)"+V,X[J+1]=r}),X.filter((Z)=>Z!==r).join("/")}).join("|"),[$,E]=D.length>1?["(?:",")"]:["",""];if(B="^"+$+B+E+"$",this.negate)B="^(?!"+B+").+$";try{this.regexp=new RegExp(B,[...C].join(""))}catch(Q){this.regexp=!1}return this.regexp}slashSplit(D){if(this.preserveMultipleSlashes)return D.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(D))return["",...D.split(/\/+/)];else return D.split(/\/+/)}match(D,u=this.partial){if(this.debug("match",D,this.pattern),this.comment)return!1;if(this.empty)return D==="";if(D==="/"&&u)return!0;let F=this.options;if(this.isWindows)D=D.split("\\").join("/");let C=this.slashSplit(D);this.debug(this.pattern,"split",C);let B=this.set;this.debug(this.pattern,"set",B);let $=C[C.length-1];if(!$)for(let E=C.length-2;!$&&E>=0;E--)$=C[E];for(let E=0;E<B.length;E++){let Q=B[E],X=C;if(F.matchBase&&Q.length===1)X=[$];if(this.matchOne(X,Q,u)){if(F.flipNegate)return!0;return!this.negate}}if(F.flipNegate)return!1;return this.negate}static defaults(D){return CD.defaults(D).Minimatch}}CD.AST=a;CD.Minimatch=_D;CD.escape=qu;CD.unescape=TD;import{fileURLToPath as z4}from"url";var hB=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,B6=new Set,D2=typeof process==="object"&&!!process?process:{},E6=(D,u,F,C)=>{typeof D2.emitWarning==="function"?D2.emitWarning(D,u,F,C):console.error(`[${F}] ${u}: ${D}`)},N0=globalThis.AbortController,C6=globalThis.AbortSignal;if(typeof N0==="undefined"){C6=class F{onabort;_onabort=[];reason;aborted=!1;addEventListener(C,B){this._onabort.push(B)}},N0=class F{constructor(){u()}signal=new C6;abort(C){if(this.signal.aborted)return;this.signal.reason=C,this.signal.aborted=!0;for(let B of this.signal._onabort)B(C);this.signal.onabort?.(C)}};let D=D2.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",u=()=>{if(!D)return;D=!1,E6("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",u)}}var gB=(D)=>!B6.has(D),n$=Symbol("type"),nD=(D)=>D&&D===Math.floor(D)&&D>0&&isFinite(D),$6=(D)=>!nD(D)?null:D<=Math.pow(2,8)?Uint8Array:D<=Math.pow(2,16)?Uint16Array:D<=Math.pow(2,32)?Uint32Array:D<=Number.MAX_SAFE_INTEGER?bu:null;class bu extends Array{constructor(D){super(D);this.fill(0)}}class Ku{heap;length;static#D=!1;static create(D){let u=$6(D);if(!u)return[];Ku.#D=!0;let F=new Ku(D,u);return Ku.#D=!1,F}constructor(D,u){if(!Ku.#D)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(D),this.length=0}push(D){this.heap[this.length++]=D}pop(){return this.heap[--this.length]}}class yu{#D;#u;#E;#B;#$;#W;#U;#J;get perf(){return this.#J}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#Q;#q;#Y;#X;#F;#V;#_;#G;#H;#O;#A;#M;#I;#z;#j;#N;#K;#C;static unsafeExposeInternals(D){return{starts:D.#I,ttls:D.#z,sizes:D.#M,keyMap:D.#Y,keyList:D.#X,valList:D.#F,next:D.#V,prev:D.#_,get head(){return D.#G},get tail(){return D.#H},free:D.#O,isBackgroundFetch:(u)=>D.#Z(u),backgroundFetch:(u,F,C,B)=>D.#d(u,F,C,B),moveToTail:(u)=>D.#b(u),indexes:(u)=>D.#w(u),rindexes:(u)=>D.#S(u),isStale:(u)=>D.#L(u)}}get max(){return this.#D}get maxSize(){return this.#u}get calculatedSize(){return this.#q}get size(){return this.#Q}get fetchMethod(){return this.#W}get memoMethod(){return this.#U}get dispose(){return this.#E}get onInsert(){return this.#B}get disposeAfter(){return this.#$}constructor(D){let{max:u=0,ttl:F,ttlResolution:C=1,ttlAutopurge:B,updateAgeOnGet:$,updateAgeOnHas:E,allowStale:Q,dispose:X,onInsert:Z,disposeAfter:J,noDisposeOnSet:V,noUpdateTTL:H,maxSize:z=0,maxEntrySize:U=0,sizeCalculation:G,fetchMethod:j,memoMethod:I,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:L,allowStaleOnFetchAbort:S,ignoreFetchAbort:y,perf:ZD}=D;if(ZD!==void 0){if(typeof ZD?.now!=="function")throw new TypeError("perf option must have a now() method if specified")}if(this.#J=ZD??hB,u!==0&&!nD(u))throw new TypeError("max option must be a nonnegative integer");let SD=u?$6(u):Array;if(!SD)throw new Error("invalid max value: "+u);if(this.#D=u,this.#u=z,this.maxEntrySize=U||this.#u,this.sizeCalculation=G,this.sizeCalculation){if(!this.#u&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#U=I,j!==void 0&&typeof j!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=j,this.#N=!!j,this.#Y=new Map,this.#X=new Array(u).fill(void 0),this.#F=new Array(u).fill(void 0),this.#V=new SD(u),this.#_=new SD(u),this.#G=0,this.#H=0,this.#O=Ku.create(u),this.#Q=0,this.#q=0,typeof X==="function")this.#E=X;if(typeof Z==="function")this.#B=Z;if(typeof J==="function")this.#$=J,this.#A=[];else this.#$=void 0,this.#A=void 0;if(this.#j=!!this.#E,this.#C=!!this.#B,this.#K=!!this.#$,this.noDisposeOnSet=!!V,this.noUpdateTTL=!!H,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!L,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!y,this.maxEntrySize!==0){if(this.#u!==0){if(!nD(this.#u))throw new TypeError("maxSize must be a positive integer if specified")}if(!nD(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#y()}if(this.allowStale=!!Q,this.noDeleteOnStaleGet=!!R,this.updateAgeOnGet=!!$,this.updateAgeOnHas=!!E,this.ttlResolution=nD(C)||C===0?C:1,this.ttlAutopurge=!!B,this.ttl=F||0,this.ttl){if(!nD(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#k()}if(this.#D===0&&this.ttl===0&&this.#u===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#D&&!this.#u){if(gB("LRU_CACHE_UNBOUNDED"))B6.add("LRU_CACHE_UNBOUNDED"),E6("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",yu)}}getRemainingTTL(D){return this.#Y.has(D)?1/0:0}#k(){let D=new bu(this.#D),u=new bu(this.#D);this.#z=D,this.#I=u,this.#m=(B,$,E=this.#J.now())=>{if(u[B]=$!==0?E:0,D[B]=$,$!==0&&this.ttlAutopurge){let Q=setTimeout(()=>{if(this.#L(B))this.#P(this.#X[B],"expire")},$+1);if(Q.unref)Q.unref()}},this.#T=(B)=>{u[B]=D[B]!==0?this.#J.now():0},this.#R=(B,$)=>{if(D[$]){let E=D[$],Q=u[$];if(!E||!Q)return;B.ttl=E,B.start=Q,B.now=F||C();let X=B.now-Q;B.remainingTTL=E-X}};let F=0,C=()=>{let B=this.#J.now();if(this.ttlResolution>0){F=B;let $=setTimeout(()=>F=0,this.ttlResolution);if($.unref)$.unref()}return B};this.getRemainingTTL=(B)=>{let $=this.#Y.get(B);if($===void 0)return 0;let E=D[$],Q=u[$];if(!E||!Q)return 1/0;let X=(F||C())-Q;return E-X},this.#L=(B)=>{let $=u[B],E=D[B];return!!E&&!!$&&(F||C())-$>E}}#T=()=>{};#R=()=>{};#m=()=>{};#L=()=>!1;#y(){let D=new bu(this.#D);this.#q=0,this.#M=D,this.#v=(u)=>{this.#q-=D[u],D[u]=0},this.#x=(u,F,C,B)=>{if(this.#Z(F))return 0;if(!nD(C))if(B){if(typeof B!=="function")throw new TypeError("sizeCalculation must be a function");if(C=B(F,u),!nD(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C},this.#h=(u,F,C)=>{if(D[u]=F,this.#u){let B=this.#u-D[u];while(this.#q>B)this.#f(!0)}if(this.#q+=D[u],C)C.entrySize=F,C.totalCalculatedSize=this.#q}}#v=(D)=>{};#h=(D,u,F)=>{};#x=(D,u,F,C)=>{if(F||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#w({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#H;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#G)break;else u=this.#_[u]}}*#S({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#G;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#H)break;else u=this.#V[u]}}#c(D){return D!==void 0&&this.#Y.get(this.#X[D])===D}*entries(){for(let D of this.#w())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*rentries(){for(let D of this.#S())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*keys(){for(let D of this.#w()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*rkeys(){for(let D of this.#S()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*values(){for(let D of this.#w())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}*rvalues(){for(let D of this.#S())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(D,u={}){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;if(D(B,this.#X[F],this))return this.get(this.#X[F],u)}}forEach(D,u=this){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}rforEach(D,u=this){for(let F of this.#S()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}purgeStale(){let D=!1;for(let u of this.#S({allowStale:!0}))if(this.#L(u))this.#P(this.#X[u],"expire"),D=!0;return D}info(D){let u=this.#Y.get(D);if(u===void 0)return;let F=this.#F[u],C=this.#Z(F)?F.__staleWhileFetching:F;if(C===void 0)return;let B={value:C};if(this.#z&&this.#I){let $=this.#z[u],E=this.#I[u];if($&&E){let Q=$-(this.#J.now()-E);B.ttl=Q,B.start=Date.now()}}if(this.#M)B.size=this.#M[u];return B}dump(){let D=[];for(let u of this.#w({allowStale:!0})){let F=this.#X[u],C=this.#F[u],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0||F===void 0)continue;let $={value:B};if(this.#z&&this.#I){$.ttl=this.#z[u];let E=this.#J.now()-this.#I[u];$.start=Math.floor(Date.now()-E)}if(this.#M)$.size=this.#M[u];D.unshift([F,$])}return D}load(D){this.clear();for(let[u,F]of D){if(F.start){let C=Date.now()-F.start;F.start=this.#J.now()-C}this.set(u,F.value,F)}}set(D,u,F={}){if(u===void 0)return this.delete(D),this;let{ttl:C=this.ttl,start:B,noDisposeOnSet:$=this.noDisposeOnSet,sizeCalculation:E=this.sizeCalculation,status:Q}=F,{noUpdateTTL:X=this.noUpdateTTL}=F,Z=this.#x(D,u,F.size||0,E);if(this.maxEntrySize&&Z>this.maxEntrySize){if(Q)Q.set="miss",Q.maxEntrySizeExceeded=!0;return this.#P(D,"set"),this}let J=this.#Q===0?void 0:this.#Y.get(D);if(J===void 0){if(J=this.#Q===0?this.#H:this.#O.length!==0?this.#O.pop():this.#Q===this.#D?this.#f(!1):this.#Q,this.#X[J]=D,this.#F[J]=u,this.#Y.set(D,J),this.#V[this.#H]=J,this.#_[J]=this.#H,this.#H=J,this.#Q++,this.#h(J,Z,Q),Q)Q.set="add";if(X=!1,this.#C)this.#B?.(u,D,"add")}else{this.#b(J);let V=this.#F[J];if(u!==V){if(this.#N&&this.#Z(V)){V.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:H}=V;if(H!==void 0&&!$){if(this.#j)this.#E?.(H,D,"set");if(this.#K)this.#A?.push([H,D,"set"])}}else if(!$){if(this.#j)this.#E?.(V,D,"set");if(this.#K)this.#A?.push([V,D,"set"])}if(this.#v(J),this.#h(J,Z,Q),this.#F[J]=u,Q){Q.set="replace";let H=V&&this.#Z(V)?V.__staleWhileFetching:V;if(H!==void 0)Q.oldValue=H}}else if(Q)Q.set="update";if(this.#C)this.onInsert?.(u,D,u===V?"update":"replace")}if(C!==0&&!this.#z)this.#k();if(this.#z){if(!X)this.#m(J,C,B);if(Q)this.#R(Q,J)}if(!$&&this.#K&&this.#A){let V=this.#A,H;while(H=V?.shift())this.#$?.(...H)}return this}pop(){try{while(this.#Q){let D=this.#F[this.#G];if(this.#f(!0),this.#Z(D)){if(D.__staleWhileFetching)return D.__staleWhileFetching}else if(D!==void 0)return D}}finally{if(this.#K&&this.#A){let D=this.#A,u;while(u=D?.shift())this.#$?.(...u)}}}#f(D){let u=this.#G,F=this.#X[u],C=this.#F[u];if(this.#N&&this.#Z(C))C.__abortController.abort(new Error("evicted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(C,F,"evict");if(this.#K)this.#A?.push([C,F,"evict"])}if(this.#v(u),D)this.#X[u]=void 0,this.#F[u]=void 0,this.#O.push(u);if(this.#Q===1)this.#G=this.#H=0,this.#O.length=0;else this.#G=this.#V[u];return this.#Y.delete(F),this.#Q--,u}has(D,u={}){let{updateAgeOnHas:F=this.updateAgeOnHas,status:C}=u,B=this.#Y.get(D);if(B!==void 0){let $=this.#F[B];if(this.#Z($)&&$.__staleWhileFetching===void 0)return!1;if(!this.#L(B)){if(F)this.#T(B);if(C)C.has="hit",this.#R(C,B);return!0}else if(C)C.has="stale",this.#R(C,B)}else if(C)C.has="miss";return!1}peek(D,u={}){let{allowStale:F=this.allowStale}=u,C=this.#Y.get(D);if(C===void 0||!F&&this.#L(C))return;let B=this.#F[C];return this.#Z(B)?B.__staleWhileFetching:B}#d(D,u,F,C){let B=u===void 0?void 0:this.#F[u];if(this.#Z(B))return B;let $=new N0,{signal:E}=F;E?.addEventListener("abort",()=>$.abort(E.reason),{signal:$.signal});let Q={signal:$.signal,options:F,context:C},X=(U,G=!1)=>{let{aborted:j}=$.signal,I=F.ignoreFetchAbort&&U!==void 0;if(F.status)if(j&&!G){if(F.status.fetchAborted=!0,F.status.fetchError=$.signal.reason,I)F.status.fetchAbortIgnored=!0}else F.status.fetchResolved=!0;if(j&&!I&&!G)return J($.signal.reason);let O=H,R=this.#F[u];if(R===H||I&&G&&R===void 0)if(U===void 0)if(O.__staleWhileFetching!==void 0)this.#F[u]=O.__staleWhileFetching;else this.#P(D,"fetch");else{if(F.status)F.status.fetchUpdated=!0;this.set(D,U,Q.options)}return U},Z=(U)=>{if(F.status)F.status.fetchRejected=!0,F.status.fetchError=U;return J(U)},J=(U)=>{let{aborted:G}=$.signal,j=G&&F.allowStaleOnFetchAbort,I=j||F.allowStaleOnFetchRejection,O=I||F.noDeleteOnFetchRejection,R=H;if(this.#F[u]===H){if(!O||R.__staleWhileFetching===void 0)this.#P(D,"fetch");else if(!j)this.#F[u]=R.__staleWhileFetching}if(I){if(F.status&&R.__staleWhileFetching!==void 0)F.status.returnedStale=!0;return R.__staleWhileFetching}else if(R.__returned===R)throw U},V=(U,G)=>{let j=this.#W?.(D,B,Q);if(j&&j instanceof Promise)j.then((I)=>U(I===void 0?void 0:I),G);$.signal.addEventListener("abort",()=>{if(!F.ignoreFetchAbort||F.allowStaleOnFetchAbort){if(U(void 0),F.allowStaleOnFetchAbort)U=(I)=>X(I,!0)}})};if(F.status)F.status.fetchDispatched=!0;let H=new Promise(V).then(X,Z),z=Object.assign(H,{__abortController:$,__staleWhileFetching:B,__returned:void 0});if(u===void 0)this.set(D,z,{...Q.options,status:void 0}),u=this.#Y.get(D);else this.#F[u]=z;return z}#Z(D){if(!this.#N)return!1;let u=D;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof N0}async fetch(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,ttl:$=this.ttl,noDisposeOnSet:E=this.noDisposeOnSet,size:Q=0,sizeCalculation:X=this.sizeCalculation,noUpdateTTL:Z=this.noUpdateTTL,noDeleteOnFetchRejection:J=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:V=this.allowStaleOnFetchRejection,ignoreFetchAbort:H=this.ignoreFetchAbort,allowStaleOnFetchAbort:z=this.allowStaleOnFetchAbort,context:U,forceRefresh:G=!1,status:j,signal:I}=u;if(!this.#N){if(j)j.fetch="get";return this.get(D,{allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,status:j})}let O={allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,ttl:$,noDisposeOnSet:E,size:Q,sizeCalculation:X,noUpdateTTL:Z,noDeleteOnFetchRejection:J,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:z,ignoreFetchAbort:H,status:j,signal:I},R=this.#Y.get(D);if(R===void 0){if(j)j.fetch="miss";let L=this.#d(D,R,O,U);return L.__returned=L}else{let L=this.#F[R];if(this.#Z(L)){let oD=F&&L.__staleWhileFetching!==void 0;if(j){if(j.fetch="inflight",oD)j.returnedStale=!0}return oD?L.__staleWhileFetching:L.__returned=L}let S=this.#L(R);if(!G&&!S){if(j)j.fetch="hit";if(this.#b(R),C)this.#T(R);if(j)this.#R(j,R);return L}let y=this.#d(D,R,O,U),SD=y.__staleWhileFetching!==void 0&&F;if(j){if(j.fetch=S?"stale":"refresh",SD&&S)j.returnedStale=!0}return SD?y.__staleWhileFetching:y.__returned=y}}async forceFetch(D,u={}){let F=await this.fetch(D,u);if(F===void 0)throw new Error("fetch() returned undefined");return F}memo(D,u={}){let F=this.#U;if(!F)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:B,...$}=u,E=this.get(D,$);if(!B&&E!==void 0)return E;let Q=F(D,E,{options:$,context:C});return this.set(D,Q,$),Q}get(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,status:$}=u,E=this.#Y.get(D);if(E!==void 0){let Q=this.#F[E],X=this.#Z(Q);if($)this.#R($,E);if(this.#L(E)){if($)$.get="stale";if(!X){if(!B)this.#P(D,"expire");if($&&F)$.returnedStale=!0;return F?Q:void 0}else{if($&&F&&Q.__staleWhileFetching!==void 0)$.returnedStale=!0;return F?Q.__staleWhileFetching:void 0}}else{if($)$.get="hit";if(X)return Q.__staleWhileFetching;if(this.#b(E),C)this.#T(E);return Q}}else if($)$.get="miss"}#l(D,u){this.#_[u]=D,this.#V[D]=u}#b(D){if(D!==this.#H){if(D===this.#G)this.#G=this.#V[D];else this.#l(this.#_[D],this.#V[D]);this.#l(this.#H,D),this.#H=D}}delete(D){return this.#P(D,"delete")}#P(D,u){let F=!1;if(this.#Q!==0){let C=this.#Y.get(D);if(C!==void 0)if(F=!0,this.#Q===1)this.#g(u);else{this.#v(C);let B=this.#F[C];if(this.#Z(B))B.__abortController.abort(new Error("deleted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(B,D,u);if(this.#K)this.#A?.push([B,D,u])}if(this.#Y.delete(D),this.#X[C]=void 0,this.#F[C]=void 0,C===this.#H)this.#H=this.#_[C];else if(C===this.#G)this.#G=this.#V[C];else{let $=this.#_[C];this.#V[$]=this.#V[C];let E=this.#V[C];this.#_[E]=this.#_[C]}this.#Q--,this.#O.push(C)}}if(this.#K&&this.#A?.length){let C=this.#A,B;while(B=C?.shift())this.#$?.(...B)}return F}clear(){return this.#g("delete")}#g(D){for(let u of this.#S({allowStale:!0})){let F=this.#F[u];if(this.#Z(F))F.__abortController.abort(new Error("deleted"));else{let C=this.#X[u];if(this.#j)this.#E?.(F,C,D);if(this.#K)this.#A?.push([F,C,D])}}if(this.#Y.clear(),this.#F.fill(void 0),this.#X.fill(void 0),this.#z&&this.#I)this.#z.fill(0),this.#I.fill(0);if(this.#M)this.#M.fill(0);if(this.#G=0,this.#H=0,this.#O.length=0,this.#q=0,this.#Q=0,this.#K&&this.#A){let u=this.#A,F;while(F=u?.shift())this.#$?.(...F)}}}import{posix as sB,win32 as J2}from"path";import{fileURLToPath as tB}from"url";import{lstatSync as eB,readdir as D4,readdirSync as u4,readlinkSync as F4,realpathSync as C4}from"fs";import*as B4 from"fs";import{lstat as $4,readdir as Q4,readlink as X4,realpath as Z4}from"fs/promises";import{EventEmitter as $2}from"events";import Y6 from"stream";import{StringDecoder as mB}from"string_decoder";var Q6=typeof process==="object"&&process?process:{stdout:null,stderr:null},cB=(D)=>!!D&&typeof D==="object"&&(D instanceof Du||D instanceof Y6||dB(D)||lB(D)),dB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.pipe==="function"&&D.pipe!==Y6.Writable.prototype.pipe,lB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.write==="function"&&typeof D.end==="function",hD=Symbol("EOF"),gD=Symbol("maybeEmitEnd"),aD=Symbol("emittedEnd"),O0=Symbol("emittingEnd"),hu=Symbol("emittedError"),T0=Symbol("closed"),X6=Symbol("read"),w0=Symbol("flush"),Z6=Symbol("flushChunk"),wD=Symbol("encoding"),Vu=Symbol("decoder"),p=Symbol("flowing"),gu=Symbol("paused"),Hu=Symbol("resume"),i=Symbol("buffer"),BD=Symbol("pipes"),n=Symbol("bufferLength"),u2=Symbol("bufferPush"),P0=Symbol("bufferShift"),e=Symbol("objectMode"),d=Symbol("destroyed"),F2=Symbol("error"),C2=Symbol("emitData"),J6=Symbol("emitEnd"),B2=Symbol("emitEnd2"),kD=Symbol("async"),E2=Symbol("abort"),S0=Symbol("aborted"),mu=Symbol("signal"),eD=Symbol("dataListeners"),HD=Symbol("discarded"),cu=(D)=>Promise.resolve().then(D),pB=(D)=>D(),iB=(D)=>D==="end"||D==="finish"||D==="prefinish",nB=(D)=>D instanceof ArrayBuffer||!!D&&typeof D==="object"&&D.constructor&&D.constructor.name==="ArrayBuffer"&&D.byteLength>=0,aB=(D)=>!Buffer.isBuffer(D)&&ArrayBuffer.isView(D);class Q2{src;dest;opts;ondrain;constructor(D,u,F){this.src=D,this.dest=u,this.opts=F,this.ondrain=()=>D[Hu](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(D){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class q6 extends Q2{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(D,u,F){super(D,u,F);this.proxyErrors=(C)=>u.emit("error",C),D.on("error",this.proxyErrors)}}var rB=(D)=>!!D.objectMode,oB=(D)=>!D.objectMode&&!!D.encoding&&D.encoding!=="buffer";class Du extends $2{[p]=!1;[gu]=!1;[BD]=[];[i]=[];[e];[wD];[kD];[Vu];[hD]=!1;[aD]=!1;[O0]=!1;[T0]=!1;[hu]=null;[n]=0;[d]=!1;[mu];[S0]=!1;[eD]=0;[HD]=!1;writable=!0;readable=!0;constructor(...D){let u=D[0]||{};super();if(u.objectMode&&typeof u.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(rB(u))this[e]=!0,this[wD]=null;else if(oB(u))this[wD]=u.encoding,this[e]=!1;else this[e]=!1,this[wD]=null;if(this[kD]=!!u.async,this[Vu]=this[wD]?new mB(this[wD]):null,u&&u.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[i]});if(u&&u.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[BD]});let{signal:F}=u;if(F)if(this[mu]=F,F.aborted)this[E2]();else F.addEventListener("abort",()=>this[E2]())}get bufferLength(){return this[n]}get encoding(){return this[wD]}set encoding(D){throw new Error("Encoding must be set at instantiation time")}setEncoding(D){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[e]}set objectMode(D){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[kD]}set["async"](D){this[kD]=this[kD]||!!D}[E2](){this[S0]=!0,this.emit("abort",this[mu]?.reason),this.destroy(this[mu]?.reason)}get aborted(){return this[S0]}set aborted(D){}write(D,u,F){if(this[S0])return!1;if(this[hD])throw new Error("write after end");if(this[d])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof u==="function")F=u,u="utf8";if(!u)u="utf8";let C=this[kD]?cu:pB;if(!this[e]&&!Buffer.isBuffer(D)){if(aB(D))D=Buffer.from(D.buffer,D.byteOffset,D.byteLength);else if(nB(D))D=Buffer.from(D);else if(typeof D!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[e]){if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(!D.length){if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(typeof D==="string"&&!(u===this[wD]&&!this[Vu]?.lastNeed))D=Buffer.from(D,u);if(Buffer.isBuffer(D)&&this[wD])D=this[Vu].write(D);if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}read(D){if(this[d])return null;if(this[HD]=!1,this[n]===0||D===0||D&&D>this[n])return this[gD](),null;if(this[e])D=null;if(this[i].length>1&&!this[e])this[i]=[this[wD]?this[i].join(""):Buffer.concat(this[i],this[n])];let u=this[X6](D||null,this[i][0]);return this[gD](),u}[X6](D,u){if(this[e])this[P0]();else{let F=u;if(D===F.length||D===null)this[P0]();else if(typeof F==="string")this[i][0]=F.slice(D),u=F.slice(0,D),this[n]-=D;else this[i][0]=F.subarray(D),u=F.subarray(0,D),this[n]-=D}if(this.emit("data",u),!this[i].length&&!this[hD])this.emit("drain");return u}end(D,u,F){if(typeof D==="function")F=D,D=void 0;if(typeof u==="function")F=u,u="utf8";if(D!==void 0)this.write(D,u);if(F)this.once("end",F);if(this[hD]=!0,this.writable=!1,this[p]||!this[gu])this[gD]();return this}[Hu](){if(this[d])return;if(!this[eD]&&!this[BD].length)this[HD]=!0;if(this[gu]=!1,this[p]=!0,this.emit("resume"),this[i].length)this[w0]();else if(this[hD])this[gD]();else this.emit("drain")}resume(){return this[Hu]()}pause(){this[p]=!1,this[gu]=!0,this[HD]=!1}get destroyed(){return this[d]}get flowing(){return this[p]}get paused(){return this[gu]}[u2](D){if(this[e])this[n]+=1;else this[n]+=D.length;this[i].push(D)}[P0](){if(this[e])this[n]-=1;else this[n]-=this[i][0].length;return this[i].shift()}[w0](D=!1){do;while(this[Z6](this[P0]())&&this[i].length);if(!D&&!this[i].length&&!this[hD])this.emit("drain")}[Z6](D){return this.emit("data",D),this[p]}pipe(D,u){if(this[d])return D;this[HD]=!1;let F=this[aD];if(u=u||{},D===Q6.stdout||D===Q6.stderr)u.end=!1;else u.end=u.end!==!1;if(u.proxyErrors=!!u.proxyErrors,F){if(u.end)D.end()}else if(this[BD].push(!u.proxyErrors?new Q2(this,D,u):new q6(this,D,u)),this[kD])cu(()=>this[Hu]());else this[Hu]();return D}unpipe(D){let u=this[BD].find((F)=>F.dest===D);if(u){if(this[BD].length===1){if(this[p]&&this[eD]===0)this[p]=!1;this[BD]=[]}else this[BD].splice(this[BD].indexOf(u),1);u.unpipe()}}addListener(D,u){return this.on(D,u)}on(D,u){let F=super.on(D,u);if(D==="data"){if(this[HD]=!1,this[eD]++,!this[BD].length&&!this[p])this[Hu]()}else if(D==="readable"&&this[n]!==0)super.emit("readable");else if(iB(D)&&this[aD])super.emit(D),this.removeAllListeners(D);else if(D==="error"&&this[hu]){let C=u;if(this[kD])cu(()=>C.call(this,this[hu]));else C.call(this,this[hu])}return F}removeListener(D,u){return this.off(D,u)}off(D,u){let F=super.off(D,u);if(D==="data"){if(this[eD]=this.listeners("data").length,this[eD]===0&&!this[HD]&&!this[BD].length)this[p]=!1}return F}removeAllListeners(D){let u=super.removeAllListeners(D);if(D==="data"||D===void 0){if(this[eD]=0,!this[HD]&&!this[BD].length)this[p]=!1}return u}get emittedEnd(){return this[aD]}[gD](){if(!this[O0]&&!this[aD]&&!this[d]&&this[i].length===0&&this[hD]){if(this[O0]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[T0])this.emit("close");this[O0]=!1}}emit(D,...u){let F=u[0];if(D!=="error"&&D!=="close"&&D!==d&&this[d])return!1;else if(D==="data")return!this[e]&&!F?!1:this[kD]?(cu(()=>this[C2](F)),!0):this[C2](F);else if(D==="end")return this[J6]();else if(D==="close"){if(this[T0]=!0,!this[aD]&&!this[d])return!1;let B=super.emit("close");return this.removeAllListeners("close"),B}else if(D==="error"){this[hu]=F,super.emit(F2,F);let B=!this[mu]||this.listeners("error").length?super.emit("error",F):!1;return this[gD](),B}else if(D==="resume"){let B=super.emit("resume");return this[gD](),B}else if(D==="finish"||D==="prefinish"){let B=super.emit(D);return this.removeAllListeners(D),B}let C=super.emit(D,...u);return this[gD](),C}[C2](D){for(let F of this[BD])if(F.dest.write(D)===!1)this.pause();let u=this[HD]?!1:super.emit("data",D);return this[gD](),u}[J6](){if(this[aD])return!1;return this[aD]=!0,this.readable=!1,this[kD]?(cu(()=>this[B2]()),!0):this[B2]()}[B2](){if(this[Vu]){let u=this[Vu].end();if(u){for(let F of this[BD])F.dest.write(u);if(!this[HD])super.emit("data",u)}}for(let u of this[BD])u.end();let D=super.emit("end");return this.removeAllListeners("end"),D}async collect(){let D=Object.assign([],{dataLength:0});if(!this[e])D.dataLength=0;let u=this.promise();return this.on("data",(F)=>{if(D.push(F),!this[e])D.dataLength+=F.length}),await u,D}async concat(){if(this[e])throw new Error("cannot concat in objectMode");let D=await this.collect();return this[wD]?D.join(""):Buffer.concat(D,D.dataLength)}async promise(){return new Promise((D,u)=>{this.on(d,()=>u(new Error("stream destroyed"))),this.on("error",(F)=>u(F)),this.on("end",()=>D())})}[Symbol.asyncIterator](){this[HD]=!1;let D=!1,u=async()=>{return this.pause(),D=!0,{value:void 0,done:!0}};return{next:()=>{if(D)return u();let C=this.read();if(C!==null)return Promise.resolve({done:!1,value:C});if(this[hD])return u();let B,$,E=(J)=>{this.off("data",Q),this.off("end",X),this.off(d,Z),u(),$(J)},Q=(J)=>{this.off("error",E),this.off("end",X),this.off(d,Z),this.pause(),B({value:J,done:!!this[hD]})},X=()=>{this.off("error",E),this.off("data",Q),this.off(d,Z),u(),B({done:!0,value:void 0})},Z=()=>E(new Error("stream destroyed"));return new Promise((J,V)=>{$=V,B=J,this.once(d,Z),this.once("error",E),this.once("end",X),this.once("data",Q)})},throw:u,return:u,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HD]=!1;let D=!1,u=()=>{return this.pause(),this.off(F2,u),this.off(d,u),this.off("end",u),D=!0,{done:!0,value:void 0}},F=()=>{if(D)return u();let C=this.read();return C===null?u():{done:!1,value:C}};return this.once("end",u),this.once(F2,u),this.once(d,u),{next:F,throw:u,return:u,[Symbol.iterator](){return this}}}destroy(D){if(this[d]){if(D)this.emit("error",D);else this.emit(d);return this}this[d]=!0,this[HD]=!0,this[i].length=0,this[n]=0;let u=this;if(typeof u.close==="function"&&!this[T0])u.close();if(D)this.emit("error",D);else this.emit(d);return this}static get isStream(){return cB}}var E4=C4.native,lu={lstatSync:eB,readdir:D4,readdirSync:u4,readlinkSync:F4,realpathSync:E4,promises:{lstat:$4,readdir:Q4,readlink:X4,realpath:Z4}},z6=(D)=>!D||D===lu||D===B4?lu:{...lu,...D,promises:{...lu.promises,...D.promises||{}}},U6=/^\\\\\?\\([a-z]:)\\?$/i,J4=(D)=>D.replace(/\//g,"\\").replace(U6,"$1\\"),Y4=/[\\\/]/,MD=0,G6=1,W6=2,vD=4,_6=6,j6=8,uu=10,M6=12,jD=15,du=~jD,X2=16,K6=32,pu=64,PD=128,k0=256,x0=512,V6=pu|PD|x0,q4=1023,Z2=(D)=>D.isFile()?j6:D.isDirectory()?vD:D.isSymbolicLink()?uu:D.isCharacterDevice()?W6:D.isBlockDevice()?_6:D.isSocket()?M6:D.isFIFO()?G6:MD,H6=new Map,iu=(D)=>{let u=H6.get(D);if(u)return u;let F=D.normalize("NFKD");return H6.set(D,F),F},A6=new Map,v0=(D)=>{let u=A6.get(D);if(u)return u;let F=iu(D.toLowerCase());return A6.set(D,F),F};class Y2 extends yu{constructor(){super({max:256})}}class R6 extends yu{constructor(D=16384){super({maxSize:D,sizeCalculation:(u)=>u.length+1})}}var L6=Symbol("PathScurry setAsCwd");class ED{name;root;roots;parent;nocase;isCWD=!1;#D;#u;get dev(){return this.#u}#E;get mode(){return this.#E}#B;get nlink(){return this.#B}#$;get uid(){return this.#$}#W;get gid(){return this.#W}#U;get rdev(){return this.#U}#J;get blksize(){return this.#J}#Q;get ino(){return this.#Q}#q;get size(){return this.#q}#Y;get blocks(){return this.#Y}#X;get atimeMs(){return this.#X}#F;get mtimeMs(){return this.#F}#V;get ctimeMs(){return this.#V}#_;get birthtimeMs(){return this.#_}#G;get atime(){return this.#G}#H;get mtime(){return this.#H}#O;get ctime(){return this.#O}#A;get birthtime(){return this.#A}#M;#I;#z;#j;#N;#K;#C;#k;#T;#R;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(D,u=MD,F,C,B,$,E){if(this.name=D,this.#M=B?v0(D):iu(D),this.#C=u&q4,this.nocase=B,this.roots=C,this.root=F||this,this.#k=$,this.#z=E.fullpath,this.#N=E.relative,this.#K=E.relativePosix,this.parent=E.parent,this.parent)this.#D=this.parent.#D;else this.#D=z6(E.fs)}depth(){if(this.#I!==void 0)return this.#I;if(!this.parent)return this.#I=0;return this.#I=this.parent.depth()+1}childrenCache(){return this.#k}resolve(D){if(!D)return this;let u=this.getRootString(D),C=D.substring(u.length).split(this.splitSep);return u?this.getRoot(u).#m(C):this.#m(C)}#m(D){let u=this;for(let F of D)u=u.child(F);return u}children(){let D=this.#k.get(this);if(D)return D;let u=Object.assign([],{provisional:0});return this.#k.set(this,u),this.#C&=~X2,u}child(D,u){if(D===""||D===".")return this;if(D==="..")return this.parent||this;let F=this.children(),C=this.nocase?v0(D):iu(D);for(let Q of F)if(Q.#M===C)return Q;let B=this.parent?this.sep:"",$=this.#z?this.#z+B+D:void 0,E=this.newChild(D,MD,{...u,parent:this,fullpath:$});if(!this.canReaddir())E.#C|=PD;return F.push(E),E}relative(){if(this.isCWD)return"";if(this.#N!==void 0)return this.#N;let D=this.name,u=this.parent;if(!u)return this.#N=this.name;let F=u.relative();return F+(!F||!u.parent?"":this.sep)+D}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#K!==void 0)return this.#K;let D=this.name,u=this.parent;if(!u)return this.#K=this.fullpathPosix();let F=u.relativePosix();return F+(!F||!u.parent?"":"/")+D}fullpath(){if(this.#z!==void 0)return this.#z;let D=this.name,u=this.parent;if(!u)return this.#z=this.name;let C=u.fullpath()+(!u.parent?"":this.sep)+D;return this.#z=C}fullpathPosix(){if(this.#j!==void 0)return this.#j;if(this.sep==="/")return this.#j=this.fullpath();if(!this.parent){let C=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(C))return this.#j=`//?/${C}`;else return this.#j=C}let D=this.parent,u=D.fullpathPosix(),F=u+(!u||!D.parent?"":"/")+this.name;return this.#j=F}isUnknown(){return(this.#C&jD)===MD}isType(D){return this[`is${D}`]()}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.#C&jD)===j6}isDirectory(){return(this.#C&jD)===vD}isCharacterDevice(){return(this.#C&jD)===W6}isBlockDevice(){return(this.#C&jD)===_6}isFIFO(){return(this.#C&jD)===G6}isSocket(){return(this.#C&jD)===M6}isSymbolicLink(){return(this.#C&uu)===uu}lstatCached(){return this.#C&K6?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#R}readdirCached(){let D=this.children();return D.slice(0,D.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let D=this.#C&jD;return!(D!==MD&&D!==uu||this.#C&k0||this.#C&PD)}calledReaddir(){return!!(this.#C&X2)}isENOENT(){return!!(this.#C&PD)}isNamed(D){return!this.nocase?this.#M===iu(D):this.#M===v0(D)}async readlink(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=await this.#D.promises.readlink(this.fullpath()),F=(await this.parent.realpath())?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}readlinkSync(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=this.#D.readlinkSync(this.fullpath()),F=this.parent.realpathSync()?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}#L(D){this.#C|=X2;for(let u=D.provisional;u<D.length;u++){let F=D[u];if(F)F.#y()}}#y(){if(this.#C&PD)return;this.#C=(this.#C|PD)&du,this.#v()}#v(){let D=this.children();D.provisional=0;for(let u of D)u.#y()}#h(){this.#C|=x0,this.#x()}#x(){if(this.#C&pu)return;let D=this.#C;if((D&jD)===vD)D&=du;this.#C=D|pu,this.#v()}#w(D=""){if(D==="ENOTDIR"||D==="EPERM")this.#x();else if(D==="ENOENT")this.#y();else this.children().provisional=0}#S(D=""){if(D==="ENOTDIR")this.parent.#x();else if(D==="ENOENT")this.#y()}#c(D=""){let u=this.#C;if(u|=k0,D==="ENOENT")u|=PD;if(D==="EINVAL"||D==="UNKNOWN")u&=du;if(this.#C=u,D==="ENOTDIR"&&this.parent)this.parent.#x()}#f(D,u){return this.#Z(D,u)||this.#d(D,u)}#d(D,u){let F=Z2(D),C=this.newChild(D.name,F,{parent:this}),B=C.#C&jD;if(B!==vD&&B!==uu&&B!==MD)C.#C|=pu;return u.unshift(C),u.provisional++,C}#Z(D,u){for(let F=u.provisional;F<u.length;F++){let C=u[F];if((this.nocase?v0(D.name):iu(D.name))!==C.#M)continue;return this.#l(D,C,F,u)}}#l(D,u,F,C){let B=u.name;if(u.#C=u.#C&du|Z2(D),B!==D.name)u.name=D.name;if(F!==C.provisional){if(F===C.length-1)C.pop();else C.splice(F,1);C.unshift(u)}return C.provisional++,u}async lstat(){if((this.#C&PD)===0)try{return this.#b(await this.#D.promises.lstat(this.fullpath())),this}catch(D){this.#S(D.code)}}lstatSync(){if((this.#C&PD)===0)try{return this.#b(this.#D.lstatSync(this.fullpath())),this}catch(D){this.#S(D.code)}}#b(D){let{atime:u,atimeMs:F,birthtime:C,birthtimeMs:B,blksize:$,blocks:E,ctime:Q,ctimeMs:X,dev:Z,gid:J,ino:V,mode:H,mtime:z,mtimeMs:U,nlink:G,rdev:j,size:I,uid:O}=D;this.#G=u,this.#X=F,this.#A=C,this.#_=B,this.#J=$,this.#Y=E,this.#O=Q,this.#V=X,this.#u=Z,this.#W=J,this.#Q=V,this.#E=H,this.#H=z,this.#F=U,this.#B=G,this.#U=j,this.#q=I,this.#$=O;let R=Z2(D);if(this.#C=this.#C&du|R|K6,R!==MD&&R!==vD&&R!==uu)this.#C|=pu}#P=[];#g=!1;#i(D){this.#g=!1;let u=this.#P.slice();this.#P.length=0,u.forEach((F)=>F(null,D))}readdirCB(D,u=!1){if(!this.canReaddir()){if(u)D(null,[]);else queueMicrotask(()=>D(null,[]));return}let F=this.children();if(this.calledReaddir()){let B=F.slice(0,F.provisional);if(u)D(null,B);else queueMicrotask(()=>D(null,B));return}if(this.#P.push(D),this.#g)return;this.#g=!0;let C=this.fullpath();this.#D.readdir(C,{withFileTypes:!0},(B,$)=>{if(B)this.#w(B.code),F.provisional=0;else{for(let E of $)this.#f(E,F);this.#L(F)}this.#i(F.slice(0,F.provisional));return})}#p;async readdir(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();if(this.#p)await this.#p;else{let F=()=>{};this.#p=new Promise((C)=>F=C);try{for(let C of await this.#D.promises.readdir(u,{withFileTypes:!0}))this.#f(C,D);this.#L(D)}catch(C){this.#w(C.code),D.provisional=0}this.#p=void 0,F()}return D.slice(0,D.provisional)}readdirSync(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();try{for(let F of this.#D.readdirSync(u,{withFileTypes:!0}))this.#f(F,D);this.#L(D)}catch(F){this.#w(F.code),D.provisional=0}return D.slice(0,D.provisional)}canReaddir(){if(this.#C&V6)return!1;let D=jD&this.#C;if(!(D===MD||D===vD||D===uu))return!1;return!0}shouldWalk(D,u){return(this.#C&vD)===vD&&!(this.#C&V6)&&!D.has(this)&&(!u||u(this))}async realpath(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=await this.#D.promises.realpath(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}realpathSync(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=this.#D.realpathSync(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}[L6](D){if(D===this)return;D.isCWD=!1,this.isCWD=!0;let u=new Set([]),F=[],C=this;while(C&&C.parent)u.add(C),C.#N=F.join(this.sep),C.#K=F.join("/"),C=C.parent,F.push("..");C=D;while(C&&C.parent&&!u.has(C))C.#N=void 0,C.#K=void 0,C=C.parent}}class f0 extends ED{sep="\\";splitSep=Y4;constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}newChild(D,u=MD,F={}){return new f0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}getRootString(D){return J2.parse(D).root}getRoot(D){if(D=J4(D.toUpperCase()),D===this.root.name)return this.root;for(let[u,F]of Object.entries(this.roots))if(this.sameRoot(D,u))return this.roots[D]=F;return this.roots[D]=new nu(D,this).root}sameRoot(D,u=this.root.name){return D=D.toUpperCase().replace(/\//g,"\\").replace(U6,"$1\\"),D===u}}class b0 extends ED{splitSep="/";sep="/";constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}getRootString(D){return D.startsWith("/")?"/":""}getRoot(D){return this.root}newChild(D,u=MD,F={}){return new b0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}}class q2{root;rootPath;roots;cwd;#D;#u;#E;nocase;#B;constructor(D=process.cwd(),u,F,{nocase:C,childrenCacheSize:B=16384,fs:$=lu}={}){if(this.#B=z6($),D instanceof URL||D.startsWith("file://"))D=tB(D);let E=u.resolve(D);this.roots=Object.create(null),this.rootPath=this.parseRootPath(E),this.#D=new Y2,this.#u=new Y2,this.#E=new R6(B);let Q=E.substring(this.rootPath.length).split(F);if(Q.length===1&&!Q[0])Q.pop();if(C===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=C,this.root=this.newRoot(this.#B),this.roots[this.rootPath]=this.root;let X=this.root,Z=Q.length-1,J=u.sep,V=this.rootPath,H=!1;for(let z of Q){let U=Z--;X=X.child(z,{relative:new Array(U).fill("..").join(J),relativePosix:new Array(U).fill("..").join("/"),fullpath:V+=(H?"":J)+z}),H=!0}this.cwd=X}depth(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.depth()}childrenCache(){return this.#E}resolve(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#D.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpath();return this.#D.set(u,C),C}resolvePosix(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#u.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpathPosix();return this.#u.set(u,C),C}relative(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relative()}relativePosix(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relativePosix()}basename(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.name}dirname(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return(D.parent||D).fullpath()}async readdir(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F}=u;if(!D.canReaddir())return[];else{let C=await D.readdir();return F?C:C.map((B)=>B.name)}}readdirSync(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0}=u;if(!D.canReaddir())return[];else if(F)return D.readdirSync();else return D.readdirSync().map((C)=>C.name)}async lstat(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstat()}lstatSync(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstatSync()}async readlink(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.readlink();return u?F:F?.fullpath()}readlinkSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.readlinkSync();return u?F:F?.fullpath()}async realpath(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.realpath();return u?F:F?.fullpath()}realpathSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.realpathSync();return u?F:F?.fullpath()}async walk(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set,X=(J,V)=>{Q.add(J),J.readdirCB((H,z)=>{if(H)return V(H);let U=z.length;if(!U)return V();let G=()=>{if(--U===0)V()};for(let j of z){if(!B||B(j))E.push(F?j:j.fullpath());if(C&&j.isSymbolicLink())j.realpath().then((I)=>I?.isUnknown()?I.lstat():I).then((I)=>I?.shouldWalk(Q,$)?X(I,G):G());else if(j.shouldWalk(Q,$))X(j,G);else G()}},!0)},Z=D;return new Promise((J,V)=>{X(Z,(H)=>{if(H)return V(H);J(E)})})}walkSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set([D]);for(let X of Q){let Z=X.readdirSync();for(let J of Z){if(!B||B(J))E.push(F?J:J.fullpath());let V=J;if(J.isSymbolicLink()){if(!(C&&(V=J.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(Q,$))Q.add(V)}}return E}[Symbol.asyncIterator](){return this.iterate()}iterate(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;return this.stream(D,u)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u;if(!B||B(D))yield F?D:D.fullpath();let E=new Set([D]);for(let Q of E){let X=Q.readdirSync();for(let Z of X){if(!B||B(Z))yield F?Z:Z.fullpath();let J=Z;if(Z.isSymbolicLink()){if(!(C&&(J=Z.realpathSync())))continue;if(J.isUnknown())J.lstatSync()}if(J.shouldWalk(E,$))E.add(J)}}}stream(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0});if(!B||B(D))E.write(F?D:D.fullpath());let Q=new Set,X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=(G,j,I=!1)=>{if(G)return E.emit("error",G);if(C&&!I){let O=[];for(let R of j)if(R.isSymbolicLink())O.push(R.realpath().then((L)=>L?.isUnknown()?L.lstat():L));if(O.length){Promise.all(O).then(()=>z(null,j,!0));return}}for(let O of j)if(O&&(!B||B(O))){if(!E.write(F?O:O.fullpath()))V=!0}Z--;for(let O of j){let R=O.realpathCached()||O;if(R.shouldWalk(Q,$))X.push(R)}if(V&&!E.flowing)E.once("drain",J);else if(!U)J()},U=!0;H.readdirCB(z,!0),U=!1}};return J(),E}streamSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0}),Q=new Set;if(!B||B(D))E.write(F?D:D.fullpath());let X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=H.readdirSync();for(let U of z)if(!B||B(U)){if(!E.write(F?U:U.fullpath()))V=!0}Z--;for(let U of z){let G=U;if(U.isSymbolicLink()){if(!(C&&(G=U.realpathSync())))continue;if(G.isUnknown())G.lstatSync()}if(G.shouldWalk(Q,$))X.push(G)}}if(V&&!E.flowing)E.once("drain",J)};return J(),E}chdir(D=this.cwd){let u=this.cwd;this.cwd=typeof D==="string"?this.cwd.resolve(D):D,this.cwd[L6](u)}}class nu extends q2{sep="\\";constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,J2,"\\",{...u,nocase:F});this.nocase=F;for(let C=this.cwd;C;C=C.parent)C.nocase=this.nocase}parseRootPath(D){return J2.parse(D).root.toUpperCase()}newRoot(D){return new f0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")||D.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(D)}}class au extends q2{sep="/";constructor(D=process.cwd(),u={}){let{nocase:F=!1}=u;super(D,sB,"/",{...u,nocase:F});this.nocase=F}parseRootPath(D){return"/"}newRoot(D){return new b0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")}}class y0 extends au{constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,{...u,nocase:F})}}var EQ=process.platform==="win32"?f0:b0,I6=process.platform==="win32"?nu:process.platform==="darwin"?y0:au;var K4=(D)=>D.length>=1,V4=(D)=>D.length>=1;class Au{#D;#u;#E;length;#B;#$;#W;#U;#J;#Q;#q=!0;constructor(D,u,F,C){if(!K4(D))throw new TypeError("empty pattern list");if(!V4(u))throw new TypeError("empty glob list");if(u.length!==D.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=D.length,F<0||F>=this.length)throw new TypeError("index out of range");if(this.#D=D,this.#u=u,this.#E=F,this.#B=C,this.#E===0){if(this.isUNC()){let[B,$,E,Q,...X]=this.#D,[Z,J,V,H,...z]=this.#u;if(X[0]==="")X.shift(),z.shift();let U=[B,$,E,Q,""].join("/"),G=[Z,J,V,H,""].join("/");this.#D=[U,...X],this.#u=[G,...z],this.length=this.#D.length}else if(this.isDrive()||this.isAbsolute()){let[B,...$]=this.#D,[E,...Q]=this.#u;if($[0]==="")$.shift(),Q.shift();let X=B+"/",Z=E+"/";this.#D=[X,...$],this.#u=[Z,...Q],this.length=this.#D.length}}}pattern(){return this.#D[this.#E]}isString(){return typeof this.#D[this.#E]==="string"}isGlobstar(){return this.#D[this.#E]===r}isRegExp(){return this.#D[this.#E]instanceof RegExp}globString(){return this.#W=this.#W||(this.#E===0?this.isAbsolute()?this.#u[0]+this.#u.slice(1).join("/"):this.#u.join("/"):this.#u.slice(this.#E).join("/"))}hasMore(){return this.length>this.#E+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new Au(this.#D,this.#u,this.#E+1,this.#B),this.#$.#Q=this.#Q,this.#$.#J=this.#J,this.#$.#U=this.#U,this.#$}isUNC(){let D=this.#D;return this.#J!==void 0?this.#J:this.#J=this.#B==="win32"&&this.#E===0&&D[0]===""&&D[1]===""&&typeof D[2]==="string"&&!!D[2]&&typeof D[3]==="string"&&!!D[3]}isDrive(){let D=this.#D;return this.#U!==void 0?this.#U:this.#U=this.#B==="win32"&&this.#E===0&&this.length>1&&typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0])}isAbsolute(){let D=this.#D;return this.#Q!==void 0?this.#Q:this.#Q=D[0]===""&&D.length>1||this.isDrive()||this.isUNC()}root(){let D=this.#D[0];return typeof D==="string"&&this.isAbsolute()&&this.#E===0?D:""}checkFollowGlobstar(){return!(this.#E===0||!this.isGlobstar()||!this.#q)}markFollowGlobstar(){if(this.#E===0||!this.isGlobstar()||!this.#q)return!1;return this.#q=!1,!0}}var H4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class ru{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(D,{nobrace:u,nocase:F,noext:C,noglobstar:B,platform:$=H4}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=$,this.mmopts={dot:!0,nobrace:u,nocase:F,noext:C,noglobstar:B,optimizationLevel:2,platform:$,nocomment:!0,nonegate:!0};for(let E of D)this.add(E)}add(D){let u=new _D(D,this.mmopts);for(let F=0;F<u.set.length;F++){let C=u.set[F],B=u.globParts[F];if(!C||!B)throw new Error("invalid pattern object");while(C[0]==="."&&B[0]===".")C.shift(),B.shift();let $=new Au(C,B,0,this.platform),E=new _D($.globString(),this.mmopts),Q=B[B.length-1]==="**",X=$.isAbsolute();if(X)this.absolute.push(E);else this.relative.push(E);if(Q)if(X)this.absoluteChildren.push(E);else this.relativeChildren.push(E)}}ignored(D){let u=D.fullpath(),F=`${u}/`,C=D.relative()||".",B=`${C}/`;for(let $ of this.relative)if($.match(C)||$.match(B))return!0;for(let $ of this.absolute)if($.match(u)||$.match(F))return!0;return!1}childrenIgnored(D){let u=D.fullpath()+"/",F=(D.relative()||".")+"/";for(let C of this.relativeChildren)if(C.match(F))return!0;for(let C of this.absoluteChildren)if(C.match(u))return!0;return!1}}class K2{store;constructor(D=new Map){this.store=D}copy(){return new K2(new Map(this.store))}hasWalked(D,u){return this.store.get(D.fullpath())?.has(u.globString())}storeWalked(D,u){let F=D.fullpath(),C=this.store.get(F);if(C)C.add(u.globString());else this.store.set(F,new Set([u.globString()]))}}class N6{store=new Map;add(D,u,F){let C=(u?2:0)|(F?1:0),B=this.store.get(D);this.store.set(D,B===void 0?C:C&B)}entries(){return[...this.store.entries()].map(([D,u])=>[D,!!(u&2),!!(u&1)])}}class O6{store=new Map;add(D,u){if(!D.canReaddir())return;let F=this.store.get(D);if(F){if(!F.find((C)=>C.globString()===u.globString()))F.push(u)}else this.store.set(D,[u])}get(D){let u=this.store.get(D);if(!u)throw new Error("attempting to walk unknown path");return u}entries(){return this.keys().map((D)=>[D,this.store.get(D)])}keys(){return[...this.store.keys()].filter((D)=>D.canReaddir())}}class ou{hasWalkedCache;matches=new N6;subwalks=new O6;patterns;follow;dot;opts;constructor(D,u){this.opts=D,this.follow=!!D.follow,this.dot=!!D.dot,this.hasWalkedCache=u?u.copy():new K2}processPatterns(D,u){this.patterns=u;let F=u.map((C)=>[D,C]);for(let[C,B]of F){this.hasWalkedCache.storeWalked(C,B);let $=B.root(),E=B.isAbsolute()&&this.opts.absolute!==!1;if($){C=C.resolve($==="/"&&this.opts.root!==void 0?this.opts.root:$);let J=B.rest();if(!J){this.matches.add(C,!0,!1);continue}else B=J}if(C.isENOENT())continue;let Q,X,Z=!1;while(typeof(Q=B.pattern())==="string"&&(X=B.rest()))C=C.resolve(Q),B=X,Z=!0;if(Q=B.pattern(),X=B.rest(),Z){if(this.hasWalkedCache.hasWalked(C,B))continue;this.hasWalkedCache.storeWalked(C,B)}if(typeof Q==="string"){let J=Q===".."||Q===""||Q===".";this.matches.add(C.resolve(Q),E,J);continue}else if(Q===r){if(!C.isSymbolicLink()||this.follow||B.checkFollowGlobstar())this.subwalks.add(C,B);let J=X?.pattern(),V=X?.rest();if(!X||(J===""||J===".")&&!V)this.matches.add(C,E,J===""||J===".");else if(J===".."){let H=C.parent||C;if(!V)this.matches.add(H,E,!0);else if(!this.hasWalkedCache.hasWalked(H,V))this.subwalks.add(H,V)}}else if(Q instanceof RegExp)this.subwalks.add(C,B)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new ou(this.opts,this.hasWalkedCache)}filterEntries(D,u){let F=this.subwalks.get(D),C=this.child();for(let B of u)for(let $ of F){let E=$.isAbsolute(),Q=$.pattern(),X=$.rest();if(Q===r)C.testGlobstar(B,$,X,E);else if(Q instanceof RegExp)C.testRegExp(B,Q,X,E);else C.testString(B,Q,X,E)}return C}testGlobstar(D,u,F,C){if(this.dot||!D.name.startsWith(".")){if(!u.hasMore())this.matches.add(D,C,!1);if(D.canReaddir()){if(this.follow||!D.isSymbolicLink())this.subwalks.add(D,u);else if(D.isSymbolicLink()){if(F&&u.checkFollowGlobstar())this.subwalks.add(D,F);else if(u.markFollowGlobstar())this.subwalks.add(D,u)}}}if(F){let B=F.pattern();if(typeof B==="string"&&B!==".."&&B!==""&&B!==".")this.testString(D,B,F.rest(),C);else if(B===".."){let $=D.parent||D;this.subwalks.add($,F)}else if(B instanceof RegExp)this.testRegExp(D,B,F.rest(),C)}}testRegExp(D,u,F,C){if(!u.test(D.name))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}testString(D,u,F,C){if(!D.isNamed(u))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}}var A4=(D,u)=>typeof D==="string"?new ru([D],u):Array.isArray(D)?new ru(D,u):D;class V2{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#D=[];#u;#E;signal;maxDepth;includeChildMatches;constructor(D,u,F){if(this.patterns=D,this.path=u,this.opts=F,this.#E=!F.posix&&F.platform==="win32"?"\\":"/",this.includeChildMatches=F.includeChildMatches!==!1,F.ignore||!this.includeChildMatches){if(this.#u=A4(F.ignore??[],F),!this.includeChildMatches&&typeof this.#u.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=F.maxDepth||1/0,F.signal)this.signal=F.signal,this.signal.addEventListener("abort",()=>{this.#D.length=0})}#B(D){return this.seen.has(D)||!!this.#u?.ignored?.(D)}#$(D){return!!this.#u?.childrenIgnored?.(D)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let D=void 0;while(!this.paused&&(D=this.#D.shift()))D()}onResume(D){if(this.signal?.aborted)return;if(!this.paused)D();else this.#D.push(D)}async matchCheck(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||await D.realpath(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?await D.lstat():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=await B.realpath();if($&&($.isUnknown()||this.opts.stat))await $.lstat()}return this.matchCheckTest(B,u)}matchCheckTest(D,u){return D&&(this.maxDepth===1/0||D.depth()<=this.maxDepth)&&(!u||D.canReaddir())&&(!this.opts.nodir||!D.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!D.isSymbolicLink()||!D.realpathCached()?.isDirectory())&&!this.#B(D)?D:void 0}matchCheckSync(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||D.realpathSync(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?D.lstatSync():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=B.realpathSync();if($&&($?.isUnknown()||this.opts.stat))$.lstatSync()}return this.matchCheckTest(B,u)}matchFinish(D,u){if(this.#B(D))return;if(!this.includeChildMatches&&this.#u?.add){let B=`${D.relativePosix()}/**`;this.#u.add(B)}let F=this.opts.absolute===void 0?u:this.opts.absolute;this.seen.add(D);let C=this.opts.mark&&D.isDirectory()?this.#E:"";if(this.opts.withFileTypes)this.matchEmit(D);else if(F){let B=this.opts.posix?D.fullpathPosix():D.fullpath();this.matchEmit(B+C)}else{let B=this.opts.posix?D.relativePosix():D.relative(),$=this.opts.dotRelative&&!B.startsWith(".."+this.#E)?"."+this.#E:"";this.matchEmit(!B?"."+C:$+B+C)}}async match(D,u,F){let C=await this.matchCheck(D,F);if(C)this.matchFinish(C,u)}matchSync(D,u,F){let C=this.matchCheckSync(D,F);if(C)this.matchFinish(C,u)}walkCB(D,u,F){if(this.signal?.aborted)F();this.walkCB2(D,u,new ou(this.opts),F)}walkCB2(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirCached();if(E.calledReaddir())this.walkCB3(E,Q,F,$);else E.readdirCB((X,Z)=>this.walkCB3(E,Z,F,$),!0)}$()}walkCB3(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2(E,Q,F.child(),$);$()}walkCBSync(D,u,F){if(this.signal?.aborted)F();this.walkCB2Sync(D,u,new ou(this.opts),F)}walkCB2Sync(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2Sync(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirSync();this.walkCB3Sync(E,Q,F,$)}$()}walkCB3Sync(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2Sync(E,Q,F.child(),$);$()}}class h0 extends V2{matches=new Set;constructor(D,u,F){super(D,u,F)}matchEmit(D){this.matches.add(D)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((D,u)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)u(this.signal.reason);else D(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 g0 extends V2{results;constructor(D,u,F){super(D,u,F);this.results=new Du({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(D){if(this.results.write(D),!this.results.flowing)this.pause()}stream(){let D=this.path;if(D.isUnknown())D.lstat().then(()=>{this.walkCB(D,this.patterns,()=>this.results.end())});else this.walkCB(D,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 U4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class xD{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(D,u){if(!u)throw new TypeError("glob options required");if(this.withFileTypes=!!u.withFileTypes,this.signal=u.signal,this.follow=!!u.follow,this.dot=!!u.dot,this.dotRelative=!!u.dotRelative,this.nodir=!!u.nodir,this.mark=!!u.mark,!u.cwd)this.cwd="";else if(u.cwd instanceof URL||u.cwd.startsWith("file://"))u.cwd=z4(u.cwd);if(this.cwd=u.cwd||"",this.root=u.root,this.magicalBraces=!!u.magicalBraces,this.nobrace=!!u.nobrace,this.noext=!!u.noext,this.realpath=!!u.realpath,this.absolute=u.absolute,this.includeChildMatches=u.includeChildMatches!==!1,this.noglobstar=!!u.noglobstar,this.matchBase=!!u.matchBase,this.maxDepth=typeof u.maxDepth==="number"?u.maxDepth:1/0,this.stat=!!u.stat,this.ignore=u.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof D==="string")D=[D];if(this.windowsPathsNoEscape=!!u.windowsPathsNoEscape||u.allowWindowsEscape===!1,this.windowsPathsNoEscape)D=D.map((Q)=>Q.replace(/\\/g,"/"));if(this.matchBase){if(u.noglobstar)throw new TypeError("base matching requires globstar");D=D.map((Q)=>Q.includes("/")?Q:`./**/${Q}`)}if(this.pattern=D,this.platform=u.platform||U4,this.opts={...u,platform:this.platform},u.scurry){if(this.scurry=u.scurry,u.nocase!==void 0&&u.nocase!==u.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let Q=u.platform==="win32"?nu:u.platform==="darwin"?y0:u.platform?au:I6;this.scurry=new Q(this.cwd,{nocase:u.nocase,fs:u.fs})}this.nocase=this.scurry.nocase;let F=this.platform==="darwin"||this.platform==="win32",C={...u,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:F,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},B=this.pattern.map((Q)=>new _D(Q,C)),[$,E]=B.reduce((Q,X)=>{return Q[0].push(...X.set),Q[1].push(...X.globParts),Q},[[],[]]);this.patterns=$.map((Q,X)=>{let Z=E[X];if(!Z)throw new Error("invalid pattern object");return new Au(Q,Z,0,this.platform)})}async walk(){return[...await new h0(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 h0(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 g0(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 g0(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 H2=(D,u={})=>{if(!Array.isArray(D))D=[D];for(let F of D)if(new _D(F,u).hasMagic())return!0;return!1};function c0(D,u={}){return new xD(D,u).streamSync()}function w6(D,u={}){return new xD(D,u).stream()}function P6(D,u={}){return new xD(D,u).walkSync()}async function T6(D,u={}){return new xD(D,u).walk()}function d0(D,u={}){return new xD(D,u).iterateSync()}function S6(D,u={}){return new xD(D,u).iterate()}var G4=c0,W4=Object.assign(w6,{sync:c0}),_4=d0,j4=Object.assign(S6,{sync:d0}),M4=Object.assign(P6,{stream:c0,iterate:d0}),m0=Object.assign(T6,{glob:T6,globSync:P6,sync:M4,globStream:w6,stream:W4,globStreamSync:c0,streamSync:G4,globIterate:S6,iterate:j4,globIterateSync:d0,iterateSync:_4,Glob:xD,hasMagic:H2,escape:qu,unescape:TD});m0.glob=m0;async function v6(D,u={}){let F=C.TRASH_DIR;if(!k6(F))L4(F,{recursive:!0});let C=Array.isArray(D)?D:[D];for(let B of C){let $=await m0(B),E=$.length>0?$:[B];for(let Q of E)try{if(!k6(Q)){if(!u.force){console.error(`trash: ${Q}: No such file or directory`);continue}continue}if(I4(Q).isDirectory()&&!u.recursive){if(!u.force){console.error(`trash: ${Q}: is a directory`);continue}}let Z=O4(Q),J=Date.now(),V=N4(F,`${Z}.${J}`);R4(Q,V),console.log(`Moved ${Z} to trash`)}catch(X){if(!u.force){let Z=X instanceof Error?X.message:String(X);console.error(`trash: ${Q}: ${Z}`)}}}}import{readdirSync as f6,statSync as b6}from"fs";import{join as y6}from"path";$D();function T4(D){let u=D.lastIndexOf(".");if(u===-1)return{name:D,timestamp:0};let F=parseInt(D.substring(u+1));if(isNaN(F))return{name:D,timestamp:0};return{name:D.substring(0,u),timestamp:F}}function x6(D){if(D===0)return"0 B";let u=1024,F=["B","KB","MB","GB"],C=Math.floor(Math.log(D)/Math.log(u));return parseFloat((D/Math.pow(u,C)).toFixed(2))+" "+F[C]}function h6(D){let u=0,F=f6(D);for(let C of F){let B=y6(D,C),$=b6(B);if($.isDirectory())u+=h6(B);else u+=$.size}return u}async function g6(){let D=tD;try{let u=f6(D);if(u.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is empty");return}let F=u.map((E)=>{let Q=y6(D,E),X=b6(Q),{name:Z,timestamp:J}=T4(E),V=X.isDirectory()?h6(Q):X.size;return{originalName:Z,trashedName:E,size:V,trashedAt:new Date(J),isDirectory:X.isDirectory()}});F.sort((E,Q)=>Q.trashedAt.getTime()-E.trashedAt.getTime()),console.log(`
\uD83D\uDDD1\uFE0F Trash Contents
`),console.log("\u2500".repeat(80));let C=0,B=0,$=0;for(let E of F){if(C+=E.size,E.isDirectory)B++;else $++;let Q=E.isDirectory?"\uD83D\uDCC1":"\uD83D\uDCC4",X=E.trashedAt.toLocaleString(),Z=x6(E.size);console.log(`${Q} ${E.originalName}`),console.log(` Size: ${Z} | Trashed: ${X}`),console.log(` ID: ${E.trashedName}`),console.log()}console.log("\u2500".repeat(80)),console.log(`Total: ${B} folders, ${$} files (${x6(C)})`),console.log(`
To restore files: claude-mem restore`),console.log("To empty trash: claude-mem trash empty")}catch(u){if(u.code==="ENOENT")DD.info("\uD83D\uDDD1\uFE0F Trash is empty");else DD.error("Failed to read trash directory"),console.error(u)}}import{rmSync as w4,readdirSync as P4,existsSync as S4,statSync as k4}from"fs";import{join as m6}from"path";$D();async function c6(D={}){let u=tD;if(!S4(u)){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}try{let F=P4(u);if(F.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}let C=0,B=0;for(let E of F){let Q=m6(u,E);if(k4(Q).isDirectory())C++;else B++}if(!D.force){let E=await Cu({message:`Permanently delete ${C} folders and ${B} files from trash?`,initialValue:!1});if(zD(E)||!E){DD.info("Cancelled - trash not emptied");return}}let $=W3();$.start("Emptying trash...");for(let E of F){let Q=m6(u,E);w4(Q,{recursive:!0,force:!0})}$.stop(`\uD83D\uDDD1\uFE0F Trash emptied - permanently deleted ${C} folders and ${B} files`)}catch(F){DD.error("Failed to empty trash"),console.error(F),process.exit(1)}}import{readdirSync as v4,renameSync as x4}from"fs";import{join as d6}from"path";$D();async function l6(){let D=tD,u=v4(D);if(u.length===0){console.log("Trash is empty");return}let F=await Z0({message:"Select file to restore:",options:u.map((C)=>({value:C,label:C}))});if(zD(F))return;x4(d6(D,F),d6(process.cwd(),F)),console.log(`Restored ${F}`)}$D();import zu from"fs";import d4 from"path";$D();import{Database as f4}from"bun:sqlite";var l0=null;class rD{static instance;db=null;migrations=[];static getInstance(){if(!rD.instance)rD.instance=new rD;return rD.instance}registerMigration(D){this.migrations.push(D),this.migrations.sort((u,F)=>u.version-F.version)}async initialize(){if(this.db)return this.db;return GD(g),this.db=new f4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.db.run("PRAGMA temp_store = memory"),this.db.run("PRAGMA mmap_size = 268435456"),this.db.run("PRAGMA cache_size = 10000"),this.initializeSchemaVersions(),await this.runMigrations(),l0=this.db,this.db}getConnection(){if(!this.db)throw new Error("Database not initialized. Call initialize() first.");return this.db}withTransaction(D){let u=this.getConnection();return u.transaction(D)(u)}close(){if(this.db)this.db.close(),this.db=null,l0=null}initializeSchemaVersions(){if(!this.db)return;this.db.run(`
CREATE TABLE IF NOT EXISTS schema_versions (
id INTEGER PRIMARY KEY,
version INTEGER UNIQUE NOT NULL,
applied_at TEXT NOT NULL
)
`)}async runMigrations(){if(!this.db)return;let u=this.db.query("SELECT version FROM schema_versions ORDER BY version").all().map((C)=>C.version),F=u.length>0?Math.max(...u):0;for(let C of this.migrations)if(C.version>F)console.log(`Applying migration ${C.version}...`),this.db.transaction(()=>{C.up(this.db),this.db.query("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(C.version,new Date().toISOString())})(),console.log(`Migration ${C.version} applied successfully`)}getCurrentVersion(){if(!this.db)return 0;return this.db.query("SELECT MAX(version) as version FROM schema_versions").get()?.version||0}}function p6(){if(!l0)throw new Error("Database not initialized. Call DatabaseManager.getInstance().initialize() first.");return l0}async function i6(){return await rD.getInstance().initialize()}Fu();var y4={version:1,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT UNIQUE NOT NULL,
project TEXT NOT NULL,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
source TEXT NOT NULL DEFAULT 'compress',
archive_path TEXT,
archive_bytes INTEGER,
archive_checksum TEXT,
archived_at TEXT,
metadata_json TEXT
);
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project);
CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON sessions(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_sessions_project_created ON sessions(project, created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
text TEXT NOT NULL,
document_id TEXT UNIQUE,
keywords TEXT,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
archive_basename TEXT,
origin TEXT NOT NULL DEFAULT 'transcript',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id);
CREATE INDEX IF NOT EXISTS idx_memories_project ON memories(project);
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_memories_project_created ON memories(project, created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_memories_document_id ON memories(document_id);
CREATE INDEX IF NOT EXISTS idx_memories_origin ON memories(origin);
`),D.run(`
CREATE TABLE IF NOT EXISTS overviews (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
content TEXT NOT NULL,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
origin TEXT NOT NULL DEFAULT 'claude',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_overviews_session ON overviews(session_id);
CREATE INDEX IF NOT EXISTS idx_overviews_project ON overviews(project);
CREATE INDEX IF NOT EXISTS idx_overviews_created_at ON overviews(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_overviews_project_created ON overviews(project, created_at_epoch DESC);
CREATE UNIQUE INDEX IF NOT EXISTS idx_overviews_project_latest ON overviews(project, created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS diagnostics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT,
message TEXT NOT NULL,
severity TEXT NOT NULL DEFAULT 'info',
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
origin TEXT NOT NULL DEFAULT 'system',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL
);
CREATE INDEX IF NOT EXISTS idx_diagnostics_session ON diagnostics(session_id);
CREATE INDEX IF NOT EXISTS idx_diagnostics_project ON diagnostics(project);
CREATE INDEX IF NOT EXISTS idx_diagnostics_severity ON diagnostics(severity);
CREATE INDEX IF NOT EXISTS idx_diagnostics_created ON diagnostics(created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS transcript_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
project TEXT,
event_index INTEGER NOT NULL,
event_type TEXT,
raw_json TEXT NOT NULL,
captured_at TEXT NOT NULL,
captured_at_epoch INTEGER NOT NULL,
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE,
UNIQUE(session_id, event_index)
);
CREATE INDEX IF NOT EXISTS idx_transcript_events_session ON transcript_events(session_id, event_index);
CREATE INDEX IF NOT EXISTS idx_transcript_events_project ON transcript_events(project);
CREATE INDEX IF NOT EXISTS idx_transcript_events_type ON transcript_events(event_type);
CREATE INDEX IF NOT EXISTS idx_transcript_events_captured ON transcript_events(captured_at_epoch DESC);
`),console.log("\u2705 Created all database tables successfully")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS transcript_events;
DROP TABLE IF EXISTS diagnostics;
DROP TABLE IF EXISTS overviews;
DROP TABLE IF EXISTS memories;
DROP TABLE IF EXISTS sessions;
`)}},h4={version:2,up:(D)=>{D.run(`
ALTER TABLE memories ADD COLUMN title TEXT;
ALTER TABLE memories ADD COLUMN subtitle TEXT;
ALTER TABLE memories ADD COLUMN facts TEXT;
ALTER TABLE memories ADD COLUMN concepts TEXT;
ALTER TABLE memories ADD COLUMN files_touched TEXT;
`),D.run(`
CREATE INDEX IF NOT EXISTS idx_memories_title ON memories(title);
CREATE INDEX IF NOT EXISTS idx_memories_concepts ON memories(concepts);
`),console.log("\u2705 Added hierarchical memory fields to memories table")},down:(D)=>{console.log("\u26A0\uFE0F Warning: SQLite ALTER TABLE DROP COLUMN not fully supported"),console.log("\u26A0\uFE0F To rollback, manually recreate the memories table")}},g4={version:3,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS streaming_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT,
project TEXT NOT NULL,
title TEXT,
subtitle TEXT,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
updated_at TEXT,
updated_at_epoch INTEGER,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT NOT NULL DEFAULT 'active'
);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_claude_id ON streaming_sessions(claude_session_id);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_sdk_id ON streaming_sessions(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_project ON streaming_sessions(project);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_status ON streaming_sessions(status);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_started ON streaming_sessions(started_at_epoch DESC);
`),console.log("\u2705 Created streaming_sessions table for real-time session tracking")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS streaming_sessions;
`)}},m4={version:4,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS sdk_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT UNIQUE,
project TEXT NOT NULL,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT CHECK(status IN ('active', 'completed', 'failed')) NOT NULL DEFAULT 'active'
);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_claude_id ON sdk_sessions(claude_session_id);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_sdk_id ON sdk_sessions(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_project ON sdk_sessions(project);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_status ON sdk_sessions(status);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_started ON sdk_sessions(started_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS observation_queue (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
tool_name TEXT NOT NULL,
tool_input TEXT NOT NULL,
tool_output TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
processed_at_epoch INTEGER,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_observation_queue_sdk_session ON observation_queue(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_observation_queue_processed ON observation_queue(processed_at_epoch);
CREATE INDEX IF NOT EXISTS idx_observation_queue_pending ON observation_queue(sdk_session_id, processed_at_epoch);
`),D.run(`
CREATE TABLE IF NOT EXISTS observations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
project TEXT NOT NULL,
text TEXT NOT NULL,
type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery')),
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_observations_sdk_session ON observations(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_observations_project ON observations(project);
CREATE INDEX IF NOT EXISTS idx_observations_type ON observations(type);
CREATE INDEX IF NOT EXISTS idx_observations_created ON observations(created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS session_summaries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT UNIQUE NOT NULL,
project TEXT NOT NULL,
request TEXT,
investigated TEXT,
learned TEXT,
completed TEXT,
next_steps TEXT,
files_read TEXT,
files_edited TEXT,
notes TEXT,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project);
CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC);
`),console.log("\u2705 Created SDK agent architecture tables")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS session_summaries;
DROP TABLE IF EXISTS observations;
DROP TABLE IF EXISTS observation_queue;
DROP TABLE IF EXISTS sdk_sessions;
`)}},c4={version:5,up:(D)=>{D.run("DROP TABLE IF EXISTS streaming_sessions"),D.run("DROP TABLE IF EXISTS observation_queue"),console.log("\u2705 Dropped orphaned tables: streaming_sessions, observation_queue")},down:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS streaming_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT,
project TEXT NOT NULL,
title TEXT,
subtitle TEXT,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
updated_at TEXT,
updated_at_epoch INTEGER,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT NOT NULL DEFAULT 'active'
)
`),D.run(`
CREATE TABLE IF NOT EXISTS observation_queue (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
tool_name TEXT NOT NULL,
tool_input TEXT NOT NULL,
tool_output TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
processed_at_epoch INTEGER,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
)
`),console.log("\u26A0\uFE0F Recreated streaming_sessions and observation_queue (for rollback only)")}},n6=[y4,h4,g4,m4,c4];function l4(D){let u=D.status==="pass"?"\u2705":D.status==="warn"?"\u26A0\uFE0F ":"\u274C",F=D.details?`${D.name}: ${D.details}`:D.name;console.log(`${u} ${F}`)}async function a6(D={}){let u=[];try{if(!zu.existsSync(g))zu.mkdirSync(g,{recursive:!0}),u.push({name:`Data directory created at ${g}`,status:"warn"});else{let F=zu.statSync(g),C=!1;try{zu.accessSync(g,zu.constants.W_OK),C=!0}catch{}u.push({name:`Data directory ${g}`,status:F.isDirectory()&&C?"pass":"fail",details:F.isDirectory()&&C?"accessible":"not writable"})}}catch(F){u.push({name:"Data directory",status:"fail",details:F?.message||String(F)})}try{let F=new QD;u.push({name:"SQLite database",status:"pass",details:"connected"})}catch(F){u.push({name:"SQLite database",status:"fail",details:F?.message||String(F)})}try{let F=zu.existsSync(Qu);u.push({name:"Chroma vector store",status:F?"pass":"warn",details:F?`data dir ${d4.resolve(Qu)}`:"Not yet initialized"})}catch(F){u.push({name:"Chroma vector store",status:"warn",details:F?.message||"Unable to check Chroma directory"})}if(D.json)console.log(JSON.stringify({checks:u},null,2));else console.log("claude-mem doctor"),console.log("================="),u.forEach(l4)}$D();import{readFileSync as A2,existsSync as p0,readdirSync as p4,statSync as i4}from"fs";import{join as i0,dirname as n4}from"path";import{execSync as a4}from"child_process";import{fileURLToPath as r4}from"url";var AX=n4(r4(import.meta.url));async function r6(){console.log("\uD83D\uDD0D Claude Memory System Status Check"),console.log(`=====================================
`),console.log("\u2699\uFE0F Settings Configuration:");let D=(Q,X)=>{if(!p0(X)){console.log(` \u23ED\uFE0F ${Q}: No settings file`);return}console.log(` \uD83D\uDCCB ${Q}: ${X}`);try{let Z=JSON.parse(A2(X,"utf8")),J=Z.hooks?.SessionStart?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),V=Z.hooks?.Stop?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),H=Z.hooks?.UserPromptSubmit?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),z=Z.hooks?.PostToolUse?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem")));console.log(` SessionStart (claude-mem context): ${J?"\u2705":"\u274C"}`),console.log(` Stop (claude-mem summary): ${V?"\u2705":"\u274C"}`),console.log(` UserPromptSubmit (claude-mem new): ${H?"\u2705":"\u274C"}`),console.log(` PostToolUse (claude-mem save): ${z?"\u2705":"\u274C"}`)}catch(Z){console.log(" \u26A0\uFE0F Could not parse settings")}};D("Global",(void 0)()),D("Project",i0(process.cwd(),".claude","settings.json")),console.log(""),console.log("\uD83D\uDCE6 Compressed Transcripts:");let u=i0((void 0)(),"projects");if(p0(u))try{let Q=0,X=0,Z=(J,V=0)=>{if(V>3)return;let H=p4(J);for(let z of H){let U=i0(J,z);if(i4(U).isDirectory()&&!z.startsWith("."))Z(U,V+1);else if(z.endsWith(".jsonl.compressed"))Q++;else if(z.endsWith(".jsonl.archive"))X++}};Z(u),console.log(` Compressed files: ${Q}`),console.log(` Archive files: ${X}`)}catch(Q){console.log(" \u26A0\uFE0F Could not scan projects directory")}else console.log(" \u2139\uFE0F No Claude projects directory found");console.log(""),console.log("\uD83D\uDD27 Runtime Environment:");let F=(Q,X)=>{try{let Z=a4(`${Q} --version`,{encoding:"utf8"}).trim();console.log(` \u2705 ${X}: ${Z}`)}catch{console.log(` \u274C ${X}: Not found`)}};F("node","Node.js"),F("bun","Bun"),console.log(""),console.log("\uD83E\uDDE0 Chroma Storage Status:"),console.log(" \u2705 Storage backend: Chroma MCP"),console.log(` \uD83D\uDCCD Data location: ${(void 0)()}`),console.log(" \uD83D\uDD0D Features: Vector search, semantic similarity, document storage"),console.log(""),console.log("\uD83D\uDCCA Summary:");let C=(void 0)(),B=i0(process.cwd(),".claude","settings.json"),$=!1,E="Not installed";try{if(p0(C)){let Q=JSON.parse(A2(C,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E="Global"}if(p0(B)){let Q=JSON.parse(A2(B,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E=E==="Global"?"Global + Project":"Project"}}catch{}if($)console.log(` \u2705 Claude Memory System is installed (${E})`),console.log(""),console.log("\uD83D\uDCA1 To test: Use /compact in Claude Code");else console.log(" \u274C Claude Memory System is not installed"),console.log(""),console.log("\uD83D\uDCA1 To install: claude-mem install")}var XD=new c2;XD.name(dD).description(o2).version(r2);XD.command("install").description("Install Claude Code hooks for automatic compression").option("--user","Install for current user (default)").option("--project","Install for current project only").option("--local","Install to custom local directory").option("--path <path>","Custom installation path (with --local)").option("--timeout <ms>","Hook execution timeout in milliseconds","180000").option("--skip-mcp","Skip Chroma MCP server installation").option("--force","Force installation even if already installed").action(k8);XD.command("uninstall").description("Remove Claude Code hooks").option("--user","Remove from user settings (default)").option("--project","Remove from project settings").option("--all","Remove from both user and project settings").action(f8);XD.command("logs").description("View claude-mem operation logs").option("--debug","Show debug logs only").option("--error","Show error logs only").option("--tail [n]","Show last n lines","50").option("--follow","Follow log output").action(y8);var G2=XD.command("trash").description("Manage trash bin for safe file deletion").argument("[files...]","Files to move to trash").option("-r, --recursive","Remove directories recursively").option("-R","Remove directories recursively (same as -r)").option("-f, --force","Suppress errors for nonexistent files").action(async(D,u)=>{if(!D||D.length===0){G2.outputHelp();return}if(u.R)u.recursive=!0;await v6(D,{force:u.force,recursive:u.recursive})});G2.command("view").description("View contents of trash bin").action(g6);G2.command("empty").description("Permanently delete all files in trash").option("-f, --force","Skip confirmation prompt").action(c6);XD.command("restore").description("Restore files from trash interactively").action(l6);XD.command("doctor").description("Run health checks on claude-mem installation").option("--json","Output results as JSON").action(a6);XD.command("status").description("Show claude-mem system status").action(r6);XD.command("context").description("SessionStart hook - show recent session context").action(async()=>{let{contextHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("new").description("UserPromptSubmit hook - initialize SDK session").action(async()=>{let{newHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("save").description("PostToolUse hook - queue observation").action(async()=>{let{saveHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("summary").description("Stop hook - finalize session").action(async()=>{let{summaryHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("worker <sessionId>").description("Run SDK worker process (internal use)").action(async(D)=>{try{let{main:u}=await Promise.resolve().then(() => (H1(),V1));process.argv[2]=D,await u()}catch(u){console.error(`[SDK Worker] Fatal error: ${u.message}`),process.exit(1)}});async function n0(){return new Promise((D)=>{let u="";process.stdin.on("data",(F)=>{u+=F}),process.stdin.on("end",()=>{D(u)})})}XD.parse();export{n6 as migrations,i6 as initializeDatabase,p6 as getDatabase,rD as DatabaseManager};