6e9be84a01
- Introduced CODEMAP.md detailing project overview, architecture, directory structure, core components, commands, hooks system, SDK, services, shared components, utilities, and key workflows. - Added a test-worker.sh script to automate testing of the SDK worker, including session creation, worker initiation, socket communication, and cleanup after finalization.
588 lines
293 KiB
JavaScript
Executable File
588 lines
293 KiB
JavaScript
Executable File
#!/usr/bin/env bun
|
|
// @bun
|
|
var $1=Object.create;var{getPrototypeOf:Q1,defineProperty:d0,getOwnPropertyNames:X1}=Object;var Z1=Object.prototype.hasOwnProperty;var bD=(D,u,F)=>{F=D!=null?$1(Q1(D)):{};let C=u||!D||!D.__esModule?d0(F,"default",{value:D,enumerable:!0}):F;for(let B of X1(D))if(!Z1.call(C,B))d0(C,B,{get:()=>D[B],enumerable:!0});return C};var l=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var H2=(D,u)=>{for(var F in u)d0(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 LD=import.meta.require;var Au=l((J1)=>{class l0 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 U2 extends l0{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}J1.CommanderError=l0;J1.InvalidArgumentError=U2});var ru=l((A1)=>{var{InvalidArgumentError:K1}=Au();class z2{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 K1(`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 V1(D){let u=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+u+">":"["+u+"]"}A1.Argument=z2;A1.humanReadableArgName=V1});var p0=l((G1)=>{var{humanReadableArgName:z1}=ru();class G2{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)=>z1(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 A=J.map((U)=>{return B(u.styleOptionTerm(u.optionTerm(U)),u.styleOptionDescription(u.optionDescription(U)))});$=$.concat(this.formatItemList(V,A,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 A=J.map((U)=>{return B(u.styleSubcommandTerm(u.subcommandTerm(U)),u.styleSubcommandDescription(u.subcommandDescription(U)))});$=$.concat(this.formatItemList(V,A,u))}),$.join(`
|
|
`)}displayWidth(D){return W2(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 W2(D){let u=/\x1b\[\d*(;\d*)*m/g;return D.replace(u,"")}G1.Help=G2;G1.stripColor=W2});var n0=l((R1)=>{var{InvalidArgumentError:j1}=Au();class j2{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=M1(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 j1(`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 _2(this.name().replace(/^no-/,""));return _2(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 M2{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 _2(D){return D.split("-").reduce((u,F)=>{return u+F[0].toUpperCase()+F.slice(1)})}function M1(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}}R1.Option=j2;R1.DualOptions=M2});var R2=l((O1)=>{function N1(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 T1(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=N1(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""}O1.suggestSimilar=T1});var T2=l((b1)=>{var P1=LD("events").EventEmitter,i0=LD("child_process"),yD=LD("path"),ou=LD("fs"),P=LD("process"),{Argument:k1,humanReadableArgName:S1}=ru(),{CommanderError:a0}=Au(),{Help:x1,stripColor:v1}=p0(),{Option:L2,DualOptions:f1}=n0(),{suggestSimilar:I2}=R2();class o0 extends P1{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)=>P.stdout.write(u),writeErr:(u)=>P.stderr.write(u),outputError:(u,F)=>F(u),getOutHelpWidth:()=>P.stdout.isTTY?P.stdout.columns:void 0,getErrHelpWidth:()=>P.stderr.isTTY?P.stderr.columns:void 0,getOutHasColors:()=>r0()??(P.stdout.isTTY&&P.stdout.hasColors?.()),getErrHasColors:()=>r0()??(P.stderr.isTTY&&P.stderr.hasColors?.()),stripColor:(u)=>v1(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 o0(D)}createHelp(){return Object.assign(new x1,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 k1(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 a0(D,u,F));P.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 L2(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 L2)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(P.versions?.electron)u.from="electron";let C=P.execArgv??[];if(C.includes("-e")||C.includes("--eval")||C.includes("-p")||C.includes("--print"))u.from="eval"}if(D===void 0)D=P.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(P.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(ou.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(ou.existsSync(V))return V;if(C.includes(yD.extname(J)))return;let A=C.find((U)=>ou.existsSync(`${V}${U}`));if(A)return`${V}${A}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let $=D._executableFile||`${this._name}-${D._name}`,E=this._executableDir||"";if(this._scriptPath){let Z;try{Z=ou.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(P.platform!=="win32")if(F)u.unshift($),u=N2(P.execArgv).concat(u),Q=i0.spawn(P.argv[0],u,{stdio:"inherit"});else Q=i0.spawn($,u,{stdio:"inherit"});else this._checkForMissingExecutable($,E,D._name),u.unshift($),u=N2(P.execArgv).concat(u),Q=i0.spawn(P.execPath,u,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{P.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)P.exit(Z);else X(new a0(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)P.exit(1);else{let J=new a0(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 P.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()}`,P.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new f1(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=I2(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=I2(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 S1(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(P.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 N2(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 r0(){if(P.env.NO_COLOR||P.env.FORCE_COLOR==="0"||P.env.FORCE_COLOR==="false")return!1;if(P.env.FORCE_COLOR||P.env.CLICOLOR_FORCE!==void 0)return!0;return}b1.Command=o0;b1.useColor=r0});var k2=l((c1)=>{var{Argument:O2}=ru(),{Command:s0}=T2(),{CommanderError:g1,InvalidArgumentError:w2}=Au(),{Help:m1}=p0(),{Option:P2}=n0();c1.program=new s0;c1.createCommand=(D)=>new s0(D);c1.createOption=(D,u)=>new P2(D,u);c1.createArgument=(D,u)=>new O2(D,u);c1.Command=s0;c1.Option=P2;c1.Argument=O2;c1.Help=m1;c1.CommanderError=g1;c1.InvalidArgumentError=w2;c1.InvalidOptionArgumentError=w2});var e0=l((WE,d2)=>{var t0={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"},EC={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?t0.up():"");if(D)u+=t0.left;return u}};d2.exports={cursor:t0,scroll:EC,erase:$C,beep:"\x07"}});var uF=l((_E,DF)=>{var tu=process||{},l2=tu.argv||[],su=tu.env||{},QC=!(!!su.NO_COLOR||l2.includes("--no-color"))&&(!!su.FORCE_COLOR||l2.includes("--color")||tu.platform==="win32"||(tu.stdout||{}).isTTY&&su.TERM!=="dumb"||!!su.CI),XC=(D,u,F=D)=>(C)=>{let B=""+C,$=B.indexOf(u,D.length);return~$?D+ZC(B,u,F,$)+u:D+B+u},ZC=(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($)},p2=(D=QC)=>{let u=D?XC:()=>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")}};DF.exports=p2();DF.exports.createColors=p2});var R3=l((WF,_F)=>{(function(D,u){typeof WF==="object"&&typeof _F!=="undefined"?_F.exports=u():typeof define==="function"&&define.amd?define(u):(D=typeof globalThis!=="undefined"?globalThis:D||self,D.tinycolor=u())})(WF,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,H,j,_,w,k;if(q=K.r/255,H=K.g/255,j=K.b/255,q<=0.03928)_=q/12.92;else _=Math.pow((q+0.055)/1.055,2.4);if(H<=0.03928)w=H/12.92;else w=Math.pow((H+0.055)/1.055,2.4);if(j<=0.03928)k=j/12.92;else k=Math.pow((j+0.055)/1.055,2.4);return 0.2126*_+0.7152*w+0.0722*k},setAlpha:function Y(K){return this._a=K2(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),H=Math.round(K.s*100),j=Math.round(K.v*100);return this._a==1?"hsv("+q+", "+H+"%, "+j+"%)":"hsva("+q+", "+H+"%, "+j+"%, "+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),H=Math.round(K.s*100),j=Math.round(K.l*100);return this._a==1?"hsl("+q+", "+H+"%, "+j+"%)":"hsla("+q+", "+H+"%, "+j+"%, "+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(x(this._r,255)*100)+"%",g:Math.round(x(this._g,255)*100)+"%",b:Math.round(x(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function Y(){return this._a==1?"rgb("+Math.round(x(this._r,255)*100)+"%, "+Math.round(x(this._g,255)*100)+"%, "+Math.round(x(this._b,255)*100)+"%)":"rgba("+Math.round(x(this._r,255)*100)+"%, "+Math.round(x(this._g,255)*100)+"%, "+Math.round(x(this._b,255)*100)+"%, "+this._roundA+")"},toName:function Y(){if(this._a===0)return"transparent";if(this._a<1)return!1;return q2[J(this._r,this._g,this._b,!0)]||!1},toFilter:function Y(K){var q="#"+A(this._r,this._g,this._b,this._a),H=q,j=this._gradientType?"GradientType = 1, ":"";if(K){var _=C(K);H="#"+A(_._r,_._g,_._b,_._a)}return"progid:DXImageTransform.Microsoft.gradient("+j+"startColorstr="+q+",endColorstr="+H+")"},toString:function Y(K){var q=!!K;K=K||this._format;var H=!1,j=this._a<1&&this._a>=0,_=!q&&j&&(K==="hex"||K==="hex6"||K==="hex3"||K==="hex4"||K==="hex8"||K==="name");if(_){if(K==="name"&&this._a===0)return this.toName();return this.toRgbString()}if(K==="rgb")H=this.toRgbString();if(K==="prgb")H=this.toPercentageRgbString();if(K==="hex"||K==="hex6")H=this.toHexString();if(K==="hex3")H=this.toHexString(!0);if(K==="hex4")H=this.toHex8String(!0);if(K==="hex8")H=this.toHex8String();if(K==="name")H=this.toName();if(K==="hsl")H=this.toHslString();if(K==="hsv")H=this.toHsvString();return H||this.toHexString()},clone:function Y(){return C(this.toString())},_applyModification:function Y(K,q){var H=K.apply(null,[this].concat([].slice.call(q)));return this._r=H._r,this._g=H._g,this._b=H._b,this.setAlpha(H._a),this},lighten:function Y(){return this._applyModification(W,arguments)},brighten:function Y(){return this._applyModification(I,arguments)},darken:function Y(){return this._applyModification(O,arguments)},desaturate:function Y(){return this._applyModification(U,arguments)},saturate:function Y(){return this._applyModification(z,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(XD,arguments)},complement:function Y(){return this._applyCombination(L,arguments)},monochromatic:function Y(){return this._applyCombination(PD,arguments)},splitcomplement:function Y(){return this._applyCombination(h,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 H in Y)if(Y.hasOwnProperty(H))if(H==="a")q[H]=Y[H];else q[H]=Ku(Y[H]);Y=q}return C(Y,K)};function B(Y){var K={r:0,g:0,b:0},q=1,H=null,j=null,_=null,w=!1,k=!1;if(typeof Y=="string")Y=B1(Y);if(D(Y)=="object"){if(fD(Y.r)&&fD(Y.g)&&fD(Y.b))K=$(Y.r,Y.g,Y.b),w=!0,k=String(Y.r).substr(-1)==="%"?"prgb":"rgb";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.v))H=Ku(Y.s),j=Ku(Y.v),K=Z(Y.h,H,j),w=!0,k="hsv";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.l))H=Ku(Y.s),_=Ku(Y.l),K=Q(Y.h,H,_),w=!0,k="hsl";if(Y.hasOwnProperty("a"))q=Y.a}return q=K2(q),{ok:w,format:Y.format||k,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:x(Y,255)*255,g:x(K,255)*255,b:x(q,255)*255}}function E(Y,K,q){Y=x(Y,255),K=x(K,255),q=x(q,255);var H=Math.max(Y,K,q),j=Math.min(Y,K,q),_,w,k=(H+j)/2;if(H==j)_=w=0;else{var m=H-j;switch(w=k>0.5?m/(2-H-j):m/(H+j),H){case Y:_=(K-q)/m+(K<q?6:0);break;case K:_=(q-Y)/m+2;break;case q:_=(Y-K)/m+4;break}_/=6}return{h:_,s:w,l:k}}function Q(Y,K,q){var H,j,_;Y=x(Y,360),K=x(K,100),q=x(q,100);function w(AD,Vu,RD){if(RD<0)RD+=1;if(RD>1)RD-=1;if(RD<0.16666666666666666)return AD+(Vu-AD)*6*RD;if(RD<0.5)return Vu;if(RD<0.6666666666666666)return AD+(Vu-AD)*(0.6666666666666666-RD)*6;return AD}if(K===0)H=j=_=q;else{var k=q<0.5?q*(1+K):q+K-q*K,m=2*q-k;H=w(m,k,Y+0.3333333333333333),j=w(m,k,Y),_=w(m,k,Y-0.3333333333333333)}return{r:H*255,g:j*255,b:_*255}}function X(Y,K,q){Y=x(Y,255),K=x(K,255),q=x(q,255);var H=Math.max(Y,K,q),j=Math.min(Y,K,q),_,w,k=H,m=H-j;if(w=H===0?0:m/H,H==j)_=0;else{switch(H){case Y:_=(K-q)/m+(K<q?6:0);break;case K:_=(q-Y)/m+2;break;case q:_=(Y-K)/m+4;break}_/=6}return{h:_,s:w,v:k}}function Z(Y,K,q){Y=x(Y,360)*6,K=x(K,100),q=x(q,100);var H=Math.floor(Y),j=Y-H,_=q*(1-K),w=q*(1-j*K),k=q*(1-(1-j)*K),m=H%6,AD=[q,w,_,_,k,q][m],Vu=[k,q,q,w,_,_][m],RD=[_,_,k,q,q,w][m];return{r:AD*255,g:Vu*255,b:RD*255}}function J(Y,K,q,H){var j=[jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16))];if(H&&j[0].charAt(0)==j[0].charAt(1)&&j[1].charAt(0)==j[1].charAt(1)&&j[2].charAt(0)==j[2].charAt(1))return j[0].charAt(0)+j[1].charAt(0)+j[2].charAt(0);return j.join("")}function V(Y,K,q,H,j){var _=[jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16)),jD(V2(H))];if(j&&_[0].charAt(0)==_[0].charAt(1)&&_[1].charAt(0)==_[1].charAt(1)&&_[2].charAt(0)==_[2].charAt(1)&&_[3].charAt(0)==_[3].charAt(1))return _[0].charAt(0)+_[1].charAt(0)+_[2].charAt(0)+_[3].charAt(0);return _.join("")}function A(Y,K,q,H){var j=[jD(V2(H)),jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16))];return j.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 U(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s-=K/100,q.s=au(q.s),C(q)}function z(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s+=K/100,q.s=au(q.s),C(q)}function G(Y){return C(Y).desaturate(100)}function W(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.l+=K/100,q.l=au(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=au(q.l),C(q)}function R(Y,K){var q=C(Y).toHsl(),H=(q.h+K)%360;return q.h=H<0?360+H:H,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(),H=[C(Y)],j=360/K;for(var _=1;_<K;_++)H.push(C({h:(q.h+_*j)%360,s:q.s,l:q.l}));return H}function h(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 XD(Y,K,q){K=K||6,q=q||30;var H=C(Y).toHsl(),j=360/q,_=[C(Y)];for(H.h=(H.h-(j*K>>1)+720)%360;--K;)H.h=(H.h+j)%360,_.push(C(H));return _}function PD(Y,K){K=K||6;var q=C(Y).toHsv(),H=q.h,j=q.s,_=q.v,w=[],k=1/K;while(K--)w.push(C({h:H,s:j,v:_})),_=(_+k)%1;return w}C.mix=function(Y,K,q){q=q===0?0:q||50;var H=C(Y).toRgb(),j=C(K).toRgb(),_=q/100,w={r:(j.r-H.r)*_+H.r,g:(j.g-H.g)*_+H.g,b:(j.b-H.b)*_+H.b,a:(j.a-H.a)*_+H.a};return C(w)},C.readability=function(Y,K){var q=C(Y),H=C(K);return(Math.max(q.getLuminance(),H.getLuminance())+0.05)/(Math.min(q.getLuminance(),H.getLuminance())+0.05)},C.isReadable=function(Y,K,q){var H=C.readability(Y,K),j,_;switch(_=!1,j=E1(q),j.level+j.size){case"AAsmall":case"AAAlarge":_=H>=4.5;break;case"AAlarge":_=H>=3;break;case"AAAsmall":_=H>=7;break}return _},C.mostReadable=function(Y,K,q){var H=null,j=0,_,w,k,m;q=q||{},w=q.includeFallbackColors,k=q.level,m=q.size;for(var AD=0;AD<K.length;AD++)if(_=C.readability(Y,K[AD]),_>j)j=_,H=C(K[AD]);if(C.isReadable(Y,H,{level:k,size:m})||!w)return H;else return q.includeFallbackColors=!1,C.mostReadable(Y,["#fff","#000"],q)};var iD=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"},q2=C.hexNames=u1(iD);function u1(Y){var K={};for(var q in Y)if(Y.hasOwnProperty(q))K[Y[q]]=q;return K}function K2(Y){if(Y=parseFloat(Y),isNaN(Y)||Y<0||Y>1)Y=1;return Y}function x(Y,K){if(F1(Y))Y="100%";var q=C1(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 au(Y){return Math.min(1,Math.max(0,Y))}function ZD(Y){return parseInt(Y,16)}function F1(Y){return typeof Y=="string"&&Y.indexOf(".")!=-1&&parseFloat(Y)===1}function C1(Y){return typeof Y==="string"&&Y.indexOf("%")!=-1}function jD(Y){return Y.length==1?"0"+Y:""+Y}function Ku(Y){if(Y<=1)Y=Y*100+"%";return Y}function V2(Y){return Math.round(parseFloat(Y)*255).toString(16)}function A2(Y){return ZD(Y)/255}var MD=function(){var Y="[-\\+]?\\d+%?",K="[-\\+]?\\d*\\.\\d+%?",q="(?:"+K+")|(?:"+Y+")",H="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?",j="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?";return{CSS_UNIT:new RegExp(q),rgb:new RegExp("rgb"+H),rgba:new RegExp("rgba"+j),hsl:new RegExp("hsl"+H),hsla:new RegExp("hsla"+j),hsv:new RegExp("hsv"+H),hsva:new RegExp("hsva"+j),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!!MD.CSS_UNIT.exec(Y)}function B1(Y){Y=Y.replace(u,"").replace(F,"").toLowerCase();var K=!1;if(iD[Y])Y=iD[Y],K=!0;else if(Y=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var q;if(q=MD.rgb.exec(Y))return{r:q[1],g:q[2],b:q[3]};if(q=MD.rgba.exec(Y))return{r:q[1],g:q[2],b:q[3],a:q[4]};if(q=MD.hsl.exec(Y))return{h:q[1],s:q[2],l:q[3]};if(q=MD.hsla.exec(Y))return{h:q[1],s:q[2],l:q[3],a:q[4]};if(q=MD.hsv.exec(Y))return{h:q[1],s:q[2],v:q[3]};if(q=MD.hsva.exec(Y))return{h:q[1],s:q[2],v:q[3],a:q[4]};if(q=MD.hex8.exec(Y))return{r:ZD(q[1]),g:ZD(q[2]),b:ZD(q[3]),a:A2(q[4]),format:K?"name":"hex8"};if(q=MD.hex6.exec(Y))return{r:ZD(q[1]),g:ZD(q[2]),b:ZD(q[3]),format:K?"name":"hex"};if(q=MD.hex4.exec(Y))return{r:ZD(q[1]+""+q[1]),g:ZD(q[2]+""+q[2]),b:ZD(q[3]+""+q[3]),a:A2(q[4]+""+q[4]),format:K?"name":"hex8"};if(q=MD.hex3.exec(Y))return{r:ZD(q[1]+""+q[1]),g:ZD(q[2]+""+q[2]),b:ZD(q[3]+""+q[3]),format:K?"name":"hex"};return!1}function E1(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 P3=l((C5,w3)=>{var _u=R3(),T3={r:256,g:256,b:256,a:1},O3={h:360,s:1,v:1,a:1};function MF(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 RF(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 jF(D,u,F){let C=D.color.toRgb(),B=u.color.toRgb(),$=MF(C,B,F),E=[D.color];for(let Q=1;Q<F;Q++){let X=RF($,C,Q,T3);E.push(_u(X))}return E}function L3(D,u,F,C){let B=D.color.toHsv(),$=u.color.toHsv();if(B.s===0||$.s===0)return jF(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=MF(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=RF(Q,B,J,O3);X.push(_u(V))}return X}function I3(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 N3(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=MF(B.color[F](),$.color[F](),($.pos-B.pos)*100),Q=RF(E,B.color[F](),(u-B.pos)*100,C);return _u(Q)}class X0{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?_u($.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:_u($.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 X0(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 X0(D.concat(u.reverse()))}rgb(D){let u=I3(this.stops,D),F=[];this.stops.forEach((C,B)=>{if(C.colorLess)C.color=jF(this.stops[B-1],this.stops[B+1],2)[1]});for(let C=0,B=this.stops.length;C<B-1;C++){let $=jF(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=I3(this.stops,D),C=[];this.stops.forEach((B,$)=>{if(B.colorLess)B.color=L3(this.stops[$-1],this.stops[$+1],2,u)[1]});for(let B=0,$=this.stops.length;B<$-1;B++){let E=L3(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 N3(this.stops,D,"toRgb",T3)}hsvAt(D){return N3(this.stops,D,"toHsv",O3)}}w3.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 X0(D)}});var y3=l((W5,_7)=>{_7.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 wF=l((_5,OF)=>{var h3=y3();OF.exports=h3;OF.exports.default=h3});var p3=l((M5,l3)=>{l3.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 i3=l((R5,n3)=>{var T7=p3();n3.exports=(D)=>typeof D==="string"?D.replace(T7(),""):D});var r3=l((L5,SF)=>{var a3=(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};SF.exports=a3;SF.exports.default=a3});var s3=l((I5,o3)=>{o3.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 e3=l((N5,xF)=>{var O7=i3(),w7=r3(),P7=s3(),t3=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=O7(D),D.length===0)return 0;D=D.replace(P7()," ");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+=w7(C)?2:1}return u};xF.exports=t3;xF.exports.default=t3});var u8=l((T5,D8)=>{var k7=e3();function aD(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"?S7:x7,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=k7(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}aD.left=function D(u){return aD(u,{align:"left"})};aD.center=function D(u){return aD(u,{align:"center"})};aD.right=function D(u){return aD(u,{align:"right"})};D8.exports=aD;function S7(D,u){return Math.floor((D-u)/2)}function x7(D,u){return D-u}});import{join as p,dirname as A0,sep as e7}from"path";import{homedir as hF}from"os";import{existsSync as H0,statSync as D9}from"fs";import{execSync as A8}from"child_process";import{fileURLToPath as u9}from"url";class T{static instance=null;_dataDirectory=null;_packageRoot=null;_claudeConfigDirectory=null;static getInstance(){if(!T.instance)T.instance=new T;return T.instance}getDataDirectory(){if(this._dataDirectory)return this._dataDirectory;return this._dataDirectory=process.env.CLAUDE_MEM_DATA_DIR||p(hF(),".claude-mem"),this._dataDirectory}getArchivesDirectory(){return p(this.getDataDirectory(),"archives")}getLogsDirectory(){return p(this.getDataDirectory(),"logs")}getIndexDirectory(){return this.getDataDirectory()}getIndexPath(){return p(this.getIndexDirectory(),"claude-mem-index.jsonl")}getTrashDirectory(){return p(this.getDataDirectory(),"trash")}getBackupsDirectory(){return p(this.getDataDirectory(),"backups")}getChromaDirectory(){return p(this.getDataDirectory(),"chroma")}getProjectArchiveDirectory(D){return p(this.getArchivesDirectory(),D)}getUserSettingsPath(){return p(this.getDataDirectory(),"settings.json")}getClaudeConfigDirectory(){if(this._claudeConfigDirectory)return this._claudeConfigDirectory;return this._claudeConfigDirectory=process.env.CLAUDE_CONFIG_DIR||p(hF(),".claude"),this._claudeConfigDirectory}getClaudeSettingsPath(){return p(this.getClaudeConfigDirectory(),"settings.json")}getClaudeCommandsDirectory(){return p(this.getClaudeConfigDirectory(),"commands")}getClaudeMdPath(){return p(this.getClaudeConfigDirectory(),"CLAUDE.md")}getMcpConfigPath(){return p(hF(),".claude.json")}getProjectMcpConfigPath(){return p(process.cwd(),".mcp.json")}getPackageRoot(){if(this._packageRoot)return this._packageRoot;try{let F=LD.resolve("claude-mem/package.json");return this._packageRoot=A0(F),this._packageRoot}catch{}let D=u9(import.meta.url),u=A0(D);for(let F=0;F<10;F++){let C=p(u,"package.json");if(H0(C)){if(LD(C).name==="claude-mem")return this._packageRoot=u,this._packageRoot}let B=A0(u);if(B===u)break;u=B}try{let F=A8("npm list -g claude-mem --json 2>/dev/null || npm list claude-mem --json 2>/dev/null",{encoding:"utf8"}),C=JSON.parse(F);if(C.dependencies?.["claude-mem"]?.resolved)return this._packageRoot=A0(C.dependencies["claude-mem"].resolved),this._packageRoot}catch{}throw new Error("Cannot locate claude-mem package root. Ensure claude-mem is properly installed.")}findPackageCommandsDirectory(){let D=this.getPackageRoot(),u=p(D,"commands"),F=["save.md"];for(let C of F)if(!H0(p(u,C)))throw new Error(`Package commands directory missing required file: ${C}`);return u}ensureDirectory(D){if(!H0(D))LD("fs").mkdirSync(D,{recursive:!0})}ensureDirectories(D){D.forEach((u)=>this.ensureDirectory(u))}ensureAllDataDirectories(){this.ensureDirectories([this.getDataDirectory(),this.getArchivesDirectory(),this.getLogsDirectory(),this.getTrashDirectory(),this.getBackupsDirectory(),this.getChromaDirectory()])}ensureAllClaudeDirectories(){this.ensureDirectories([this.getClaudeConfigDirectory(),this.getClaudeCommandsDirectory()])}static extractProjectName(D){let u=D.split(e7),F=["src","lib","app","project","workspace"];for(let C=u.length-1;C>=0;C--)if(F.includes(u[C])&&C>0)return u[C-1];if(u.length>1)return u[u.length-2];return"unknown-project"}static getCurrentProjectName(){try{let D=A8("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();return LD("path").basename(D)}catch{return LD("path").basename(process.cwd())}}static createBackupFilename(D){let u=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${D}.backup.${u}`}static isPathAccessible(D){return H0(D)&&D9(D).isDirectory()}}var FD=()=>{};import{Database as j4}from"bun:sqlite";import M4 from"path";import R4 from"fs";class $D{db;constructor(){let D=T.getInstance().getDataDirectory();R4.mkdirSync(D,{recursive:!0});let u=M4.join(D,"claude-mem.db");this.db=new j4(u,{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 tD=mD(()=>{FD()});import b4 from"path";function f6(D){try{if(D.source&&D.source!=="startup")console.log(""),process.exit(0);let u=b4.basename(D.cwd),F=new $D,C=F.getRecentSummaries(u,5);if(F.close(),C.length===0)console.log(""),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 b6=mD(()=>{tD()});import y4 from"net";import{join as h4}from"path";function y6(D){try{let{session_id:u,tool_name:F,tool_input:C,tool_output:B}=D;if(g4.has(F))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let $=new $D,E=$.findActiveSDKSession(u);if($.close(),!E)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=T.getInstance().getDataDirectory(),X=h4(Q,`worker-${E.id}.sock`),Z={type:"observation",tool_name:F,tool_input:JSON.stringify(C),tool_output:JSON.stringify(B)},J=y4.connect(X,()=>{J.write(JSON.stringify(Z)+`
|
|
`),J.end()});J.on("error",(V)=>{console.error(`[claude-mem save] Socket error: ${V.message}`)}),J.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 g4;var h6=mD(()=>{tD();FD();g4=new Set(["TodoWrite","ListMcpResourcesTool"])});import m4 from"path";import{spawn as c4}from"child_process";function g6(D){try{let{session_id:u,cwd:F,prompt:C}=D,B=m4.basename(F),$=new $D;if($.findActiveSDKSession(u))$.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=$.createSDKSession(u,B,C);$.close(),c4("claude-mem",["worker",Q.toString()],{detached:!0,stdio:"ignore"}).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 m6=mD(()=>{tD()});import d4 from"net";import{join as l4}from"path";function c6(D){try{let{session_id:u}=D,F=new $D,C=F.findActiveSDKSession(u);if(F.close(),!C)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=T.getInstance().getDataDirectory(),$=l4(B,`worker-${C.id}.sock`),E={type:"finalize"},Q=d4.connect($,()=>{Q.write(JSON.stringify(E)+`
|
|
`),Q.end()});Q.on("error",(X)=>{console.error(`[claude-mem summary] Socket error: ${X.message}`)}),Q.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 d6=mD(()=>{tD();FD()});var nu={};H2(nu,{summaryHook:()=>c6,saveHook:()=>y6,newHook:()=>g6,contextHook:()=>f6});var iu=mD(()=>{b6();h6();m6();d6()});function l6(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 p6(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 n6(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 a6(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 r6(D){let F=/<summary>([\s\S]*?)<\/summary>/.exec(D);if(!F)return null;let C=F[1],B=qu(C,"request"),$=qu(C,"investigated"),E=qu(C,"learned"),Q=qu(C,"completed"),X=qu(C,"next_steps"),Z=qu(C,"notes"),J=i6(C,"files_read"),V=i6(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 qu(D,u){let C=new RegExp(`<${u}>([^<]*)</${u}>`).exec(D);return C?C[1].trim():null}function i6(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 e6={};H2(e6,{main:()=>o4});import p4 from"net";import{unlinkSync as o6,existsSync as s6}from"fs";import{join as n4}from"path";import{query as i4}from"@anthropic-ai/claude-agent-sdk";async function o4(){let D=parseInt(process.argv[2],10);if(!D)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);await new t6(D).run()}class t6{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(D){this.sessionDbId=D,this.db=new $D,this.abortController=new AbortController;let u=T.getInstance().getDataDirectory();this.socketPath=n4(u,`worker-${D}.sock`)}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(s6(this.socketPath))o6(this.socketPath);return new Promise((D,u)=>{this.server=p4.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,()=>{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 i4({model:a4,messages:()=>this.createMessageGenerator(),disallowedTools:r4,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{role:"user",content:l6(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{role:"user",content:n6(C)};break}if(F.type==="observation")yield{role:"user",content:p6({tool_name:F.tool_name,tool_input:F.tool_input,tool_output:F.tool_output})}}}}handleAgentMessage(D){let u=a6(D);for(let C of u)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,C.type,C.text);let F=r6(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(s6(this.socketPath))o6(this.socketPath)}sleep(D){return new Promise((u)=>setTimeout(u,D))}}var a4="claude-sonnet-4-5",r4;var D1=mD(()=>{tD();FD();r4=["Glob","Grep","ListMcpResourcesTool","WebSearch"]});var S2=bD(k2(),1),{program:EE,createCommand:$E,createArgument:QE,createOption:XE,CommanderError:ZE,InvalidArgumentError:JE,InvalidOptionArgumentError:YE,Command:x2,Argument:qE,Option:KE,Help:VE}=S2.default;import{readFileSync as DC,existsSync as uC}from"fs";import{join as FC,dirname as CC}from"path";import{fileURLToPath as BC}from"url";var v2="claude-mem",f2="3.9.16",b2="Memory compression system for Claude Code - persist context across sessions",y2=v2,h2=f2,g2=b2;try{let D=BC(import.meta.url),u=CC(D),F=FC(u,"..","..","package.json");if(uC(F)){let C=JSON.parse(DC(F,"utf-8"));y2=C.name||v2,h2=C.version||f2,g2=C.description||b2}}catch{}var Hu=y2,m2=h2,c2=g2;import{readFileSync as Nu,writeFileSync as Bu,existsSync as kD,mkdirSync as G0,copyFileSync as B9,statSync as u$,readdirSync as F$}from"fs";import{join as Eu,dirname as cF}from"path";import{homedir as U8}from"os";import{execSync as H8}from"child_process";var s=bD(e0(),1),F3=bD(uF(),1);import{stdin as D3,stdout as u3}from"process";import*as cD from"readline";import n2 from"readline";import{Writable as JC}from"stream";function YC({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 qC=YC();function C3(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(qC,"")}function B3(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var E3={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}})(E3);var KC=E3.exports,VC=B3(KC),AC=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},HC=B3(AC);function Uu(D,u={}){if(typeof D!="string"||D.length===0||(u={ambiguousIsNarrow:!0,...u},D=C3(D),D.length===0))return 0;D=D.replace(HC()," ");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(VC.eastAsianWidth(B)){case"F":case"W":C+=2;break;case"A":C+=F;break;default:C+=1}}return C}var FF=10,i2=(D=0)=>(u)=>`\x1B[${u+D}m`,a2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,r2=(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 UC=Object.keys(v.color),zC=Object.keys(v.bgColor);[...UC];function GC(){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=i2(),v.color.ansi256=a2(),v.color.ansi16m=r2(),v.bgColor.ansi=i2(FF),v.bgColor.ansi256=a2(FF),v.bgColor.ansi16m=r2(FF),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 WC=GC(),u0=new Set(["\x1B","\x9B"]),_C=39,EF="\x07",$3="[",jC="]",Q3="m",$F=`${jC}8;;`,o2=(D)=>`${u0.values().next().value}${$3}${D}${Q3}`,s2=(D)=>`${u0.values().next().value}${$F}${D}${EF}`,MC=(D)=>D.split(" ").map((u)=>Uu(u)),CF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=Uu(C3(D[D.length-1]));for(let[Q,X]of C.entries()){let Z=Uu(X);if(E+Z<=F?D[D.length-1]+=X:(D.push(X),E=0),u0.has(X)&&(B=!0,$=C.slice(Q+1).join("").startsWith($F)),B){$?X===EF&&(B=!1,$=!1):X===Q3&&(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())},RC=(D)=>{let u=D.split(" "),F=u.length;for(;F>0&&!(Uu(u[F-1])>0);)F--;return F===u.length?D:u.slice(0,F).join(" ")+u.slice(F).join("")},LC=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=MC(D),Q=[""];for(let[Z,J]of D.split(" ").entries()){F.trim!==!1&&(Q[Q.length-1]=Q[Q.length-1].trimStart());let V=Uu(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 A=u-V,U=1+Math.floor((E[Z]-A-1)/u);Math.floor((E[Z]-1)/u)<U&&Q.push(""),CF(Q,J,u);continue}if(V+E[Z]>u&&V>0&&E[Z]>0){if(F.wordWrap===!1&&V<u){CF(Q,J,u);continue}Q.push("")}if(V+E[Z]>u&&F.wordWrap===!1){CF(Q,J,u);continue}Q[Q.length-1]+=J}F.trim!==!1&&(Q=Q.map((Z)=>RC(Z)));let X=[...Q.join(`
|
|
`)];for(let[Z,J]of X.entries()){if(C+=J,u0.has(J)){let{groups:A}=new RegExp(`(?:\\${$3}(?<code>\\d+)m|\\${$F}(?<uri>.*)${EF})`).exec(X.slice(Z).join(""))||{groups:{}};if(A.code!==void 0){let U=Number.parseFloat(A.code);B=U===_C?void 0:U}else A.uri!==void 0&&($=A.uri.length===0?void 0:A.uri)}let V=WC.codes.get(Number(B));X[Z+1]===`
|
|
`?($&&(C+=s2("")),B&&V&&(C+=o2(V))):J===`
|
|
`&&(B&&V&&(C+=o2(B)),$&&(C+=s2($)))}return C};function t2(D,u,F){return String(D).normalize().replace(/\r\n/g,`
|
|
`).split(`
|
|
`).map((C)=>LC(C,u,F)).join(`
|
|
`)}var IC=["up","down","left","right","space","enter","cancel"],D0={actions:new Set(IC),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function QF(D,u){if(typeof D=="string")return D0.aliases.get(D)===u;for(let F of D)if(F!==void 0&&QF(F,u))return!0;return!1}function NC(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 TC=globalThis.process.platform.startsWith("win"),BF=Symbol("clack:cancel");function HD(D){return D===BF}function eu(D,u){let F=D;F.isTTY&&F.setRawMode(u)}function X3({input:D=D3,output:u=u3,overwrite:F=!0,hideCursor:C=!0}={}){let B=cD.createInterface({input:D,output:u,prompt:"",tabSize:1});cD.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(s.cursor.show),process.exit(0);return}if(!F)return;cD.moveCursor(u,Q==="return"?0:-1,Q==="return"?-1:0,()=>{cD.clearLine(u,1,()=>{D.once("keypress",$)})})};return C&&u.write(s.cursor.hide),D.once("keypress",$),()=>{D.off("keypress",$),C&&u.write(s.cursor.show),D.isTTY&&!TC&&D.setRawMode(!1),B.terminal=!1,B.close()}}var OC=Object.defineProperty,wC=(D,u,F)=>(u in D)?OC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,JD=(D,u,F)=>(wC(D,typeof u!="symbol"?u+"":u,F),F);class F0{constructor(D,u=!0){JD(this,"input"),JD(this,"output"),JD(this,"_abortSignal"),JD(this,"rl"),JD(this,"opts"),JD(this,"_render"),JD(this,"_track",!1),JD(this,"_prevFrame",""),JD(this,"_subscribers",new Map),JD(this,"_cursor",0),JD(this,"state","initial"),JD(this,"error",""),JD(this,"value");let{input:F=D3,output:C=u3,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(BF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new JC;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=n2.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),n2.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),eu(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(s.cursor.show),this.output.off("resize",this.render),eu(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(s.cursor.show),this.output.off("resize",this.render),eu(this.input,!1),D(BF)})})}onKeypress(D,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&D0.aliases.has(u.name)&&this.emit("cursor",D0.aliases.get(u.name)),D0.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(`
|
|
`),eu(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=t2(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
`).length-1;this.output.write(s.cursor.move(-999,D*-1))}render(){let D=t2(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(s.cursor.hide);else{let u=NC(this._prevFrame,D);if(this.restoreCursor(),u&&u?.length===1){let F=u[0];this.output.write(s.cursor.move(0,F)),this.output.write(s.erase.lines(1));let C=D.split(`
|
|
`);this.output.write(C[F]),this._prevFrame=D,this.output.write(s.cursor.move(0,C.length-F-1));return}if(u&&u?.length>1){let F=u[0];this.output.write(s.cursor.move(0,F)),this.output.write(s.erase.down());let C=D.split(`
|
|
`).slice(F);this.output.write(C.join(`
|
|
`)),this._prevFrame=D;return}this.output.write(s.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}class XF extends F0{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(s.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var PC;PC=new WeakMap;var kC=Object.defineProperty,SC=(D,u,F)=>(u in D)?kC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,e2=(D,u,F)=>(SC(D,typeof u!="symbol"?u+"":u,F),F);class ZF extends F0{constructor(D){super(D,!1),e2(this,"options"),e2(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 JF extends F0{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}${F3.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(uF(),1),C0=bD(e0(),1);import ID from"process";function xC(){return ID.platform!=="win32"?ID.env.TERM!=="linux":!!ID.env.CI||!!ID.env.WT_SESSION||!!ID.env.TERMINUS_SUBLIME||ID.env.ConEmuTask==="{cmd::Cmder}"||ID.env.TERM_PROGRAM==="Terminus-Sublime"||ID.env.TERM_PROGRAM==="vscode"||ID.env.TERM==="xterm-256color"||ID.env.TERM==="alacritty"||ID.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var YF=xC(),c=(D,u)=>YF?D:u,vC=c("\u25C6","*"),Z3=c("\u25A0","x"),J3=c("\u25B2","x"),VF=c("\u25C7","o"),SE=c("\u250C","T"),g=c("\u2502","|"),zu=c("\u2514","\u2014"),qF=c("\u25CF",">"),KF=c("\u25CB"," "),xE=c("\u25FB","[\u2022]"),vE=c("\u25FC","[+]"),fE=c("\u25FB","[ ]"),bE=c("\u25AA","\u2022"),yE=c("\u2500","-"),hE=c("\u256E","+"),gE=c("\u251C","+"),mE=c("\u256F","+"),fC=c("\u25CF","\u2022"),bC=c("\u25C6","*"),yC=c("\u25B2","!"),hC=c("\u25A0","x"),AF=(D)=>{switch(D){case"initial":case"active":return M.default.cyan(vC);case"cancel":return M.default.red(Z3);case"error":return M.default.yellow(J3);case"submit":return M.default.green(VF)}},gC=(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,A)=>{let U=V===0&&X,z=V===A.length-1&&Z;return U||z?M.default.dim("..."):C(J,V+Q===u)})},Y3=(D)=>new JF({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let u=`${M.default.gray(g)}
|
|
${AF(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(g)} ${C}
|
|
${M.default.yellow(zu)} ${M.default.yellow(this.error)}
|
|
`;case"submit":return`${u}${M.default.gray(g)} ${M.default.dim(this.value||D.placeholder)}`;case"cancel":return`${u}${M.default.gray(g)} ${M.default.strikethrough(M.default.dim(this.value??""))}${this.value?.trim()?`
|
|
${M.default.gray(g)}`:""}`;default:return`${u}${M.default.cyan(g)} ${C}
|
|
${M.default.cyan(zu)}
|
|
`}}}).prompt();var eD=(D)=>{let u=D.active??"Yes",F=D.inactive??"No";return new XF({active:u,inactive:F,initialValue:D.initialValue??!0,render(){let C=`${M.default.gray(g)}
|
|
${AF(this.state)} ${D.message}
|
|
`,B=this.value?u:F;switch(this.state){case"submit":return`${C}${M.default.gray(g)} ${M.default.dim(B)}`;case"cancel":return`${C}${M.default.gray(g)} ${M.default.strikethrough(M.default.dim(B))}
|
|
${M.default.gray(g)}`;default:return`${C}${M.default.cyan(g)} ${this.value?`${M.default.green(qF)} ${u}`:`${M.default.dim(KF)} ${M.default.dim(u)}`} ${M.default.dim("/")} ${this.value?`${M.default.dim(KF)} ${M.default.dim(F)}`:`${M.default.green(qF)} ${F}`}
|
|
${M.default.cyan(zu)}
|
|
`}}}).prompt()},B0=(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(qF)} ${B} ${F.hint?M.default.dim(`(${F.hint})`):""}`;case"cancelled":return`${M.default.strikethrough(M.default.dim(B))}`;default:return`${M.default.dim(KF)} ${M.default.dim(B)}`}};return new ZF({options:D.options,initialValue:D.initialValue,render(){let F=`${M.default.gray(g)}
|
|
${AF(this.state)} ${D.message}
|
|
`;switch(this.state){case"submit":return`${F}${M.default.gray(g)} ${u(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${M.default.gray(g)} ${u(this.options[this.cursor],"cancelled")}
|
|
${M.default.gray(g)}`;default:return`${F}${M.default.cyan(g)} ${gC({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(C,B)=>u(C,B?"active":"inactive")}).join(`
|
|
${M.default.cyan(g)} `)}
|
|
${M.default.cyan(zu)}
|
|
`}}}).prompt()};var Du=(D="")=>{process.stdout.write(`${M.default.gray(zu)} ${M.default.red(D)}
|
|
|
|
`)};var DD={message:(D="",{symbol:u=M.default.gray(g)}={})=>{let F=[`${M.default.gray(g)}`];if(D){let[C,...B]=D.split(`
|
|
`);F.push(`${u} ${C}`,...B.map(($)=>`${M.default.gray(g)} ${$}`))}process.stdout.write(`${F.join(`
|
|
`)}
|
|
`)},info:(D)=>{DD.message(D,{symbol:M.default.blue(fC)})},success:(D)=>{DD.message(D,{symbol:M.default.green(bC)})},step:(D)=>{DD.message(D,{symbol:M.default.green(VF)})},warn:(D)=>{DD.message(D,{symbol:M.default.yellow(yC)})},warning:(D)=>{DD.warn(D)},error:(D)=>{DD.message(D,{symbol:M.default.red(hC)})}},cE=`${M.default.gray(g)} `;var q3=({indicator:D="dots"}={})=>{let u=YF?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],F=YF?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),A=()=>J(1),U=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",A),process.on("SIGTERM",A),process.on("exit",J)},z=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",A),process.removeListener("SIGTERM",A),process.removeListener("exit",J)},G=()=>{if(X===void 0)return;C&&process.stdout.write(`
|
|
`);let L=X.split(`
|
|
`);process.stdout.write(C0.cursor.move(-999,L.length-1)),process.stdout.write(C0.erase.down(L.length))},W=(L)=>L.replace(/\.+$/,""),I=(L)=>{let S=(performance.now()-L)/1000,h=Math.floor(S/60),XD=Math.floor(S%60);return h>0?`[${h}m ${XD}s]`:`[${XD}s]`},O=(L="")=>{E=!0,B=X3(),Q=W(L),Z=performance.now(),process.stdout.write(`${M.default.gray(g)}
|
|
`);let S=0,h=0;U(),$=setInterval(()=>{if(C&&Q===X)return;G(),X=Q;let XD=M.default.magenta(u[S]);if(C)process.stdout.write(`${XD} ${Q}...`);else if(D==="timer")process.stdout.write(`${XD} ${Q} ${I(Z)}`);else{let PD=".".repeat(Math.floor(h)).slice(0,3);process.stdout.write(`${XD} ${Q}${PD}`)}S=S+1<u.length?S+1:0,h=h<u.length?h+0.125:0},F)},R=(L="",S=0)=>{E=!1,clearInterval($),G();let h=S===0?M.default.green(VF):S===1?M.default.red(Z3):M.default.red(J3);Q=W(L??Q),D==="timer"?process.stdout.write(`${h} ${Q} ${I(Z)}
|
|
`):process.stdout.write(`${h} ${Q}
|
|
`),z(),B()};return{start:O,stop:R,message:(L="")=>{Q=W(L??Q)}}};var K3=(D=0)=>(u)=>`\x1B[${u+D}m`,V3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,A3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,f={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]}},lE=Object.keys(f.modifier),mC=Object.keys(f.color),cC=Object.keys(f.bgColor),pE=[...mC,...cC];function dC(){let D=new Map;for(let[u,F]of Object.entries(f)){for(let[C,B]of Object.entries(F))f[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=f[C],D.set(B[0],B[1]);Object.defineProperty(f,u,{value:F,enumerable:!1})}return Object.defineProperty(f,"codes",{value:D,enumerable:!1}),f.color.close="\x1B[39m",f.bgColor.close="\x1B[49m",f.color.ansi=K3(),f.color.ansi256=V3(),f.color.ansi16m=A3(),f.bgColor.ansi=K3(10),f.bgColor.ansi256=V3(10),f.bgColor.ansi16m=A3(10),Object.defineProperties(f,{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)=>f.rgbToAnsi256(...f.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)=>f.ansi256ToAnsi(f.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>f.ansi256ToAnsi(f.hexToAnsi256(u)),enumerable:!1}}),f}var lC=dC(),ND=lC;import HF from"process";import pC from"os";import H3 from"tty";function UD(D,u=globalThis.Deno?globalThis.Deno.args:HF.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:b}=HF,$0;if(UD("no-color")||UD("no-colors")||UD("color=false")||UD("color=never"))$0=0;else if(UD("color")||UD("colors")||UD("color=true")||UD("color=always"))$0=1;function nC(){if("FORCE_COLOR"in b){if(b.FORCE_COLOR==="true")return 1;if(b.FORCE_COLOR==="false")return 0;return b.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(b.FORCE_COLOR,10),3)}}function iC(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function aC(D,{streamIsTTY:u,sniffFlags:F=!0}={}){let C=nC();if(C!==void 0)$0=C;let B=F?$0: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 b&&"AGENT_NAME"in b)return 1;if(D&&!u&&B===void 0)return 0;let $=B||0;if(b.TERM==="dumb")return $;if(HF.platform==="win32"){let E=pC.release().split(".");if(Number(E[0])>=10&&Number(E[2])>=10586)return Number(E[2])>=14931?3:2;return 1}if("CI"in b){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((E)=>(E in b)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((E)=>(E in b))||b.CI_NAME==="codeship")return 1;return $}if("TEAMCITY_VERSION"in b)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(b.TEAMCITY_VERSION)?1:0;if(b.COLORTERM==="truecolor")return 3;if(b.TERM==="xterm-kitty")return 3;if(b.TERM==="xterm-ghostty")return 3;if(b.TERM==="wezterm")return 3;if("TERM_PROGRAM"in b){let E=Number.parseInt((b.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(b.TERM_PROGRAM){case"iTerm.app":return E>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(b.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(b.TERM))return 1;if("COLORTERM"in b)return 1;return $}function U3(D,u={}){let F=aC(D,{streamIsTTY:D&&D.isTTY,...u});return iC(F)}var rC={stdout:U3({isTTY:H3.isatty(1)}),stderr:U3({isTTY:H3.isatty(2)})},z3=rC;function G3(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 W3(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:_3,stderr:j3}=z3,UF=Symbol("GENERATOR"),uu=Symbol("STYLER"),Gu=Symbol("IS_EMPTY"),M3=["ansi","ansi","ansi256","ansi16m"],Fu=Object.create(null),oC=(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=_3?_3.level:0;D.level=u.level===void 0?F:u.level};var sC=(D)=>{let u=(...F)=>F.join(" ");return oC(u,D),Object.setPrototypeOf(u,Wu.prototype),u};function Wu(D){return sC(D)}Object.setPrototypeOf(Wu.prototype,Function.prototype);for(let[D,u]of Object.entries(ND))Fu[D]={get(){let F=Q0(this,GF(u.open,u.close,this[uu]),this[Gu]);return Object.defineProperty(this,D,{value:F}),F}};Fu.visible={get(){let D=Q0(this,this[uu],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var zF=(D,u,F,...C)=>{if(D==="rgb"){if(u==="ansi16m")return ND[F].ansi16m(...C);if(u==="ansi256")return ND[F].ansi256(ND.rgbToAnsi256(...C));return ND[F].ansi(ND.rgbToAnsi(...C))}if(D==="hex")return zF("rgb",u,F,...ND.hexToRgb(...C));return ND[F][D](...C)},tC=["rgb","hex","ansi256"];for(let D of tC){Fu[D]={get(){let{level:F}=this;return function(...C){let B=GF(zF(D,M3[F],"color",...C),ND.color.close,this[uu]);return Q0(this,B,this[Gu])}}};let u="bg"+D[0].toUpperCase()+D.slice(1);Fu[u]={get(){let{level:F}=this;return function(...C){let B=GF(zF(D,M3[F],"bgColor",...C),ND.bgColor.close,this[uu]);return Q0(this,B,this[Gu])}}}}var eC=Object.defineProperties(()=>{},{...Fu,level:{enumerable:!0,get(){return this[UF].level},set(D){this[UF].level=D}}}),GF=(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)=>D7(C,B.length===1?""+B[0]:B.join(" "));return Object.setPrototypeOf(C,eC),C[UF]=D,C[uu]=u,C[Gu]=F,C},D7=(D,u)=>{if(D.level<=0||!u)return D[Gu]?"":u;let F=D[uu];if(F===void 0)return u;let{openAll:C,closeAll:B}=F;if(u.includes("\x1B"))while(F!==void 0)u=G3(u,F.close,F.open),F=F.parent;let $=u.indexOf(`
|
|
`);if($!==-1)u=W3(u,B,C,$);return C+u+B};Object.defineProperties(Wu.prototype,Fu);var u7=Wu(),u5=Wu({level:j3?j3.level:0});var N=u7;var LF=bD(P3(),1),t=(...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=LF.default(...D)}else u=LF.default(D[0]),F=IF(D[1]);let C=(B,$)=>{return F7(B?B.toString():"",u,$??F)};return C.multiline=(B,$)=>C7(B?B.toString():"",u,$??F),C},k3=(D,u,F)=>{return u.interpolation?.toLowerCase()==="hsv"?D.hsv(F,u.hsvSpin?.toLowerCase()||!1):D.rgb(F)};function F7(D,u,F){let C=IF(F),B=Math.max(D.replace(/\s/g,"").length,u.stops.length),$=k3(u,C,B),E="";for(let Q of D)E+=Q.match(/\s/g)?Q:N.hex($.shift()?.toHex()||"#000")(Q);return E}function C7(D,u,F){let C=IF(F),B=D.split(`
|
|
`),$=Math.max(...B.map((X)=>X.length),u.stops.length),E=k3(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 IF(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 YD={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 qD(D){let u=(F)=>t(...D.colors)(F,D.options);return u.multiline=(F="")=>t(...D.colors).multiline(F,D.options),u}var NF=t,B7=qD(YD.atlas),E7=qD(YD.cristal),$7=qD(YD.teen),Q7=qD(YD.mind),X7=qD(YD.morning),Z7=qD(YD.vice),J7=qD(YD.passion),Y7=qD(YD.fruit),q7=qD(YD.instagram),K7=qD(YD.retro),V7=qD(YD.summer),A7=qD(YD.rainbow),H7=qD(YD.pastel);t.atlas=B7;t.cristal=E7;t.teen=$7;t.mind=Q7;t.morning=X7;t.vice=Z7;t.passion=J7;t.fruit=Y7;t.instagram=q7;t.retro=K7;t.summer=V7;t.rainbow=A7;t.pastel=H7;import K0 from"process";function TF({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 U7=TF();function ju(D){if(typeof D!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(U7,"")}function S3(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 x3(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function v3(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 z7(D){if(!Number.isSafeInteger(D))throw new TypeError(`Expected a code point, got \`${typeof D}\`.`)}function f3(D,{ambiguousAsWide:u=!1}={}){if(z7(D),x3(D)||v3(D)||u&&S3(D))return 2;return 1}var b3=()=>{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 G7=new Intl.Segmenter,W7=/^\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=ju(D);if(D.length===0)return 0;let B=0,$={ambiguousAsWide:!F};for(let{segment:E}of G7.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(W7.test(E))continue;if(b3().test(E)){B+=2;continue}B+=f3(Q,$)}return B}function Z0(D){let u=0;for(let F of D.split(`
|
|
`))u=Math.max(u,uD(F));return u}var K8=bD(wF(),1);var j7=/[\p{Lu}]/u,M7=/[\p{Ll}]/u,g3=/^[\p{Lu}](?![\p{Lu}])/gu,d3=/([\p{Alpha}\p{N}_]|$)/u,PF=/[_.\- ]+/,R7=new RegExp("^"+PF.source),m3=new RegExp(PF.source+d3.source,"gu"),c3=new RegExp("\\d+"+d3.source,"gu"),L7=(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&&j7.test(Z))D=D.slice(0,X)+"-"+D.slice(X),B=!1,E=$,$=!0,X++;else if($&&E&&M7.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},I7=(D,u)=>{return g3.lastIndex=0,D.replaceAll(g3,(F)=>u(F))},N7=(D,u)=>{return m3.lastIndex=0,c3.lastIndex=0,D.replaceAll(c3,(F,C,B)=>["_","-"].includes(D.charAt(B+F.length))?F:u(F)).replaceAll(m3,(F,C)=>u(C))};function kF(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(PF.test(D))return"";return u.pascalCase?C(D):F(D)}if(D!==F(D))D=L7(D,F,C,u.preserveConsecutiveUppercase);if(D=D.replace(R7,""),D=u.preserveConsecutiveUppercase?I7(D,F):F(D),u.pascalCase)D=C(D.charAt(0))+D.slice(1);return N7(D,C)}var bF=bD(u8(),1);var F8=(D=0)=>(u)=>`\x1B[${u+D}m`,C8=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,B8=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,y={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]}},O5=Object.keys(y.modifier),v7=Object.keys(y.color),f7=Object.keys(y.bgColor),w5=[...v7,...f7];function b7(){let D=new Map;for(let[u,F]of Object.entries(y)){for(let[C,B]of Object.entries(F))y[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=y[C],D.set(B[0],B[1]);Object.defineProperty(y,u,{value:F,enumerable:!1})}return Object.defineProperty(y,"codes",{value:D,enumerable:!1}),y.color.close="\x1B[39m",y.bgColor.close="\x1B[49m",y.color.ansi=F8(),y.color.ansi256=C8(),y.color.ansi16m=B8(),y.bgColor.ansi=F8(10),y.bgColor.ansi256=C8(10),y.bgColor.ansi16m=B8(10),Object.defineProperties(y,{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)=>y.rgbToAnsi256(...y.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)=>y.ansi256ToAnsi(y.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>y.ansi256ToAnsi(y.hexToAnsi256(u)),enumerable:!1}}),y}var y7=b7(),E8=y7;var Y0=new Set(["\x1B","\x9B"]),h7=39,fF="\x07",X8="[",g7="]",Z8="m",J0=`${g7}8;;`,$8=(D)=>`${Y0.values().next().value}${X8}${D}${Z8}`,Q8=(D)=>`${Y0.values().next().value}${J0}${D}${fF}`,m7=(D)=>D.split(" ").map((u)=>uD(u)),vF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=uD(ju(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(Y0.has(X))B=!0,$=C.slice(Q+1,Q+1+J0.length).join("")===J0;if(B){if($){if(X===fF)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()},c7=(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("")},d7=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=m7(D),Q=[""];for(let[V,A]of D.split(" ").entries()){if(F.trim!==!1)Q[Q.length-1]=Q.at(-1).trimStart();let U=uD(Q.at(-1));if(V!==0){if(U>=u&&(F.wordWrap===!1||F.trim===!1))Q.push(""),U=0;if(U>0||F.trim===!1)Q[Q.length-1]+=" ",U++}if(F.hard&&E[V]>u){let z=u-U,G=1+Math.floor((E[V]-z-1)/u);if(Math.floor((E[V]-1)/u)<G)Q.push("");vF(Q,A,u);continue}if(U+E[V]>u&&U>0&&E[V]>0){if(F.wordWrap===!1&&U<u){vF(Q,A,u);continue}Q.push("")}if(U+E[V]>u&&F.wordWrap===!1){vF(Q,A,u);continue}Q[Q.length-1]+=A}if(F.trim!==!1)Q=Q.map((V)=>c7(V));let X=Q.join(`
|
|
`),Z=[...X],J=0;for(let[V,A]of Z.entries()){if(C+=A,Y0.has(A)){let{groups:z}=new RegExp(`(?:\\${X8}(?<code>\\d+)m|\\${J0}(?<uri>.*)${fF})`).exec(X.slice(J))||{groups:{}};if(z.code!==void 0){let G=Number.parseFloat(z.code);B=G===h7?void 0:G}else if(z.uri!==void 0)$=z.uri.length===0?void 0:z.uri}let U=E8.codes.get(Number(B));if(Z[V+1]===`
|
|
`){if($)C+=Q8("");if(B&&U)C+=$8(U)}else if(A===`
|
|
`){if(B&&U)C+=$8(B);if($)C+=Q8($)}J+=A.length}return C};function q0(D,u,F){return String(D).normalize().replaceAll(`\r
|
|
`,`
|
|
`).split(`
|
|
`).map((C)=>d7(C,u,F)).join(`
|
|
`)}var t7=bD(wF(),1),dD=`
|
|
`,KD=" ",Mu="none",V8=()=>{let{env:D,stdout:u,stderr:F}=K0;if(u?.columns)return u.columns;if(F?.columns)return F.columns;if(D.COLUMNS)return Number.parseInt(D.COLUMNS,10);return 80},J8=(D)=>typeof D==="number"?{top:D,right:D*3,bottom:D,left:D*3}:{top:0,right:0,bottom:0,left:0,...D},Ru=(D)=>D===Mu?0:2,l7=(D)=>{let u=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],F;if(D===Mu){D={};for(let C of u)D[C]=""}if(typeof D==="string"){if(F=K8.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},p7=(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},n7=(D,{padding:u,width:F,textAlignment:C,height:B})=>{D=bF.default(D,{align:C});let $=D.split(dD),E=Z0(D),Q=F-u.left-u.right;if(E>Q){let J=[];for(let V of $){let A=q0(V,Q,{hard:!0}),z=bF.default(A,{align:C}).split(`
|
|
`),G=Math.max(...z.map((W)=>uD(W)));for(let W of z){let I;switch(C){case"center":{I=KD.repeat((Q-G)/2)+W;break}case"right":{I=KD.repeat(Q-G)+W;break}default:{I=W;break}}J.push(I)}}$=J}if(C==="center"&&E<Q)$=$.map((J)=>KD.repeat((Q-E)/2)+J);else if(C==="right"&&E<Q)$=$.map((J)=>KD.repeat(Q-E)+J);let X=KD.repeat(u.left),Z=KD.repeat(u.right);if($=$.map((J)=>{let V=X+J+Z;return V+KD.repeat(F-uD(V))}),u.top>0)$=[...Array.from({length:u.top}).fill(KD.repeat(F)),...$];if(u.bottom>0)$=[...$,...Array.from({length:u.bottom}).fill(KD.repeat(F))];if(B&&$.length>B)$=$.slice(0,B);else if(B&&$.length<B)$=[...$,...Array.from({length:B-$.length}).fill(KD.repeat(F))];return $.join(dD)},i7=(D,u,F)=>{let C=(J)=>{let V=F.borderColor?o7(F.borderColor)(J):J;return F.dimBorder?N.dim(V):V},B=(J)=>F.backgroundColor?s7(F.backgroundColor)(J):J,$=l7(F.borderStyle),E=V8(),Q=KD.repeat(F.margin.left);if(F.float==="center"){let J=Math.max((E-u-Ru(F.borderStyle))/2,0);Q=KD.repeat(J)}else if(F.float==="right"){let J=Math.max(E-u-F.margin.right-Ru(F.borderStyle),0);Q=KD.repeat(J)}let X="";if(F.margin.top)X+=dD.repeat(F.margin.top);if(F.borderStyle!==Mu||F.title)X+=C(Q+$.topLeft+(F.title?p7(F.title,$.top.repeat(u),F.titleAlignment):$.top.repeat(u))+$.topRight)+dD;let Z=D.split(dD);if(X+=Z.map((J)=>Q+C($.left)+B(J)+C($.right)).join(dD),F.borderStyle!==Mu)X+=dD+C(Q+$.bottomLeft+$.bottom.repeat(u)+$.bottomRight);if(F.margin.bottom)X+=dD.repeat(F.margin.bottom);return X},a7=(D)=>{if(D.fullscreen&&K0?.stdout){let u=[K0.stdout.columns,K0.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-Ru(D.borderStyle)),D.height&&=Math.max(1,D.height-Ru(D.borderStyle)),D},Y8=(D,u)=>u===Mu?D:` ${D} `,r7=(D,u)=>{u=a7(u);let F=u.width!==void 0,C=V8(),B=Ru(u.borderStyle),$=C-u.margin.left-u.margin.right-B,E=Z0(q0(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&&=Y8(u.title,u.borderStyle);else if(u.title){if(u.title=u.title.slice(0,Math.max(0,$-2)),u.title){if(u.title=Y8(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},yF=(D)=>D.match(/^#(?:[0-f]{3}){1,2}$/i),q8=(D)=>typeof D==="string"&&(N[D]??yF(D)),o7=(D)=>yF(D)?N.hex(D):N[D],s7=(D)=>yF(D)?N.bgHex(D):N[kF(["bg",D])];function V0(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&&!q8(u.borderColor))throw new Error(`${u.borderColor} is not a valid borderColor`);if(u.backgroundColor&&!q8(u.backgroundColor))throw new Error(`${u.backgroundColor} is not a valid backgroundColor`);return u.padding=J8(u.padding),u.margin=J8(u.margin),u=r7(D,u),D=n7(D,u),i7(D,u.width,u)}FD();import{platform as F9,homedir as C9}from"os";import{execSync as gF}from"child_process";import{join as Lu}from"path";var U0=F9()==="win32",Cu={findExecutable:(D)=>{let u=U0?`where ${D}`:`which ${D}`;return gF(u,{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()},installUv:()=>{if(U0)gF('powershell -Command "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe"});else gF("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/sh"})},getShellConfigPaths:()=>{let D=C9();if(U0)return[Lu(D,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),Lu(D,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1")];return[Lu(D,".bashrc"),Lu(D,".zshrc"),Lu(D,".bash_profile")]},getAliasDefinition:(D,u)=>{if(U0)return`function ${D} { ${u} $args }`;return`alias ${D}='${u}'`}};function E9(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 Iu=NF(["#ff0000","#ff4500","#ffa500","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"]),mF=NF(["#ff006e","#fb5607","#ffbe0b","#8338ec","#3a86ff"]);function $9(){Cu.installUv(),process.env.PATH=`${U8()}/.cargo/bin:${process.env.PATH}`}function z8(){return Cu.findExecutable("claude")}function Q9(){let u=T.getInstance().getClaudeSettingsPath();if(!kD(u))return!1;try{let F=JSON.parse(Nu(u,"utf8"));return!!(F.hooks?.SessionStart||F.hooks?.Stop||F.hooks?.PostToolUse)}catch{return!1}}async function X9(D){let u={};if(D){let $=await eD({message:`\uD83E\uDDE0 Existing claude-mem installation detected. Your memories and data are safe!
|
|
|
|
Reinstall to update hooks and configuration?`,initialValue:!0});if(HD($)||!$)return Du("Installation cancelled"),null;u.forceReinstall=!0}else u.forceReinstall=!1;let F=await B0({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(HD(F))return Du("Installation cancelled"),null;if(u.scope=F,F==="local"){let $=await Y3({message:"Enter custom installation directory",placeholder:Eu(process.cwd(),".claude-mem"),validate:(E)=>{if(!E)return"Path is required";if(!E.startsWith("/")&&!E.startsWith("~"))return"Please provide an absolute path"}});if(HD($))return Du("Installation cancelled"),null;u.customPath=$}u.hookTimeout=180000;let C=await eD({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(HD(C))return Du("Installation cancelled"),null;u.enableSmartTrash=C;let B=await eD({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(HD(B))return Du("Installation cancelled"),null;return u.saveMemoriesOnClear=B,u}function Z9(){let D=T.getInstance();D.ensureAllDataDirectories(),D.ensureAllClaudeDirectories();let u=Eu(D.getDataDirectory(),"package.json");if(!kD(u))Bu(u,JSON.stringify({name:"claude-mem-data",type:"module"},null,2))}function J9(){let u=T.getInstance().getClaudeMdPath(),F=cF(u);if(!kD(F))G0(F,{recursive:!0});let C=`
|
|
<!-- 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 -->`,B="";if(kD(u)){B=Nu(u,"utf8");let $=B.includes("<!-- CLAUDE-MEM INSTRUCTIONS -->"),E=B.includes("<!-- CLAUDE-MEM QUICK REFERENCE -->");if($||E){let Q,X;if($)Q="<!-- CLAUDE-MEM INSTRUCTIONS -->",X="<!-- /CLAUDE-MEM INSTRUCTIONS -->";else Q="<!-- CLAUDE-MEM QUICK REFERENCE -->",X="<!-- /CLAUDE-MEM QUICK REFERENCE -->";let Z=B.indexOf(Q),J=B.indexOf(X)+X.length;if(Z!==-1&&J!==-1)B=B.substring(0,Z)+C.trim()+B.substring(J)}else B=B.trim()+`
|
|
`+C}else B=C.trim();Bu(u,B)}function Y9(D=!1){let u=`${U8()}/.cargo/bin`;if(kD(u)&&!process.env.PATH?.includes(u))process.env.PATH=`${u}:${process.env.PATH}`;if(D)try{H8("claude mcp remove claude-mem",{stdio:"pipe"})}catch(C){}let F=`claude mcp add claude-mem -- uvx chroma-mcp --client-type persistent --data-dir ${T.getInstance().getChromaDirectory()}`;H8(F,{stdio:"inherit"})}function z0(D,u,F){let C={hooks:[{type:"command",command:D,timeout:u}]};if(F)C.matcher=F;return C}function q9(D){let u=kD(D)?JSON.parse(Nu(D,"utf8")):{hooks:{}};if(G0(cF(D),{recursive:!0}),!u.hooks)u.hooks={};["SessionStart","Stop","UserPromptSubmit","PostToolUse"].forEach((B)=>{if(u.hooks[B])u.hooks[B]=u.hooks[B].filter(($)=>!$.hooks?.some((E)=>E.command?.includes(Hu)))});let C=z8()||Hu;u.hooks.SessionStart=[z0(`${C} context`,180)],u.hooks.Stop=[z0(`${C} summary`,60)],u.hooks.UserPromptSubmit=[z0(`${C} new`,60)],u.hooks.PostToolUse=[z0(`${C} save`,180,"*")],Bu(D,JSON.stringify(u,null,2))}function K9(D){if(D.scope==="local"&&D.customPath)return Eu(D.customPath,"settings.local.json");else if(D.scope==="project")return Eu(process.cwd(),".claude","settings.json");else return T.getInstance().getClaudeSettingsPath()}function V9(D){let F=T.getInstance().getUserSettingsPath(),C=kD(F)?JSON.parse(Nu(F,"utf8")):{};C.backend="chroma",C.installed=!0,C.embedded=!0,C.saveMemoriesOnClear=D.saveMemoriesOnClear||!1,C.claudePath=z8(),Bu(F,JSON.stringify(C,null,2))}function A9(){let D=Cu.getShellConfigPaths(),u=Cu.getAliasDefinition("rm","claude-mem trash"),F=Cu.isWindows()?"# claude-mem smart trash alias":"# claude-mem smart trash alias";for(let C of D){if(!kD(C)){let E=cF(C);if(!kD(E))G0(E,{recursive:!0});Bu(C,"")}let B=Nu(C,"utf8");if(B.includes(u))continue;let $=`
|
|
${F}
|
|
${u}
|
|
`;B+=$,Bu(C,B)}}function H9(){let D=T.getInstance(),u=D.getClaudeCommandsDirectory(),F=D.findPackageCommandsDirectory();G0(u,{recursive:!0});let C=["save.md","remember.md","claude-mem.md"];for(let B of C){let $=Eu(F,B),E=Eu(u,B);if(kD($))B9($,E)}}async function G8(D={}){console.log(Iu(`
|
|
\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(Iu(" CLAUDE-MEM INSTALLER ")),console.log(Iu("\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(V0(mF(`\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"})),$9();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=Q9(),Z=await X9(X);if(!Z)process.exit(0);F=Z}console.log(mF(`
|
|
\uD83D\uDE80 Beginning Installation Process
|
|
`));let C=[{name:"Creating directory structure",fn:()=>Z9()},{name:"Installing Chroma MCP server",fn:()=>Y9(F.forceReinstall)},{name:"Adding CLAUDE.md instructions",fn:()=>J9()},{name:"Installing Claude commands",fn:()=>H9()},{name:"Configuring Claude settings",fn:()=>q9(K9(F))},{name:"Configuring user settings",fn:()=>V9(F)}];if(F.enableSmartTrash)C.push({name:"Configuring Smart Trash alias",fn:()=>A9()});for(let X=0;X<C.length;X++){let Z=C[X],J=`[${X+1}/${C.length}]`,V=E9(`${N.gray(J)} ${Z.name}...`);V.start(),Z.fn(),V.stop(`${N.gray(J)} ${Z.name} ${mF("completed! \u2728")}`)}let B=Iu("\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(V0(B+$+E+Q,{padding:2,margin:1,borderStyle:"double",borderColor:"green",backgroundColor:"#001122"})),console.log(Iu(`
|
|
\u2728 Welcome to the future of persistent AI conversations! \u2728
|
|
`))}FD();import{readFileSync as W8,writeFileSync as W0,existsSync as _8}from"fs";import{join as Tu}from"path";import{homedir as U9}from"os";async function z9(){let D=U9(),u=[Tu(D,".bashrc"),Tu(D,".zshrc"),Tu(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(!_8($))continue;let E=W8($,"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 A of C)if(J.trim()===A&&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();W0(J,E),W0($,Z),console.log(`\u2705 Removed Smart Trash alias from ${$.replace(D,"~")}`),B=!0}}return B}async function j8(D={}){console.log("\uD83D\uDD04 Uninstalling Claude Memory System hooks...");let u=[];if(D.all)u.push({name:"User",path:T.getInstance().getClaudeSettingsPath()}),u.push({name:"Project",path:Tu(process.cwd(),".claude","settings.json")});else{let B=D.project,$=T.getInstance();u.push({name:B?"Project":"User",path:B?Tu(process.cwd(),".claude","settings.json"):$.getClaudeSettingsPath()})}let F=0;for(let B of u){if(!_8(B.path)){console.log(`\u23ED\uFE0F No settings found at ${B.name} location`);continue}let $=W8(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((A)=>A.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();W0(Z,$),console.log(`\uD83D\uDCCB Created backup: ${Z}`),W0(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 z9();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.")}FD();import{readFileSync as G9,readdirSync as W9,statSync as _9}from"fs";import{join as M8}from"path";async function j9(D,u,F){try{let $=G9(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 R8(D={}){let u=T.getLogsDirectory(),F=parseInt(D.tail)||20;try{let B=W9(u).filter(($)=>$.startsWith("claude-mem-")&&$.endsWith(".log")).map(($)=>({name:$,path:M8(u,$),mtime:_9(M8(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 j9(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 Q4,existsSync as G6,mkdirSync as X4,statSync as Z4}from"fs";import{join as J4,basename as Y4}from"path";var dF=(D,u,F)=>{let C=D instanceof RegExp?L8(D,F):D,B=u instanceof RegExp?L8(u,F):u,$=C!==null&&B!=null&&M9(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)}},L8=(D,u)=>{let F=u.match(D);return F?F[0]:null},M9=(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 I8="\x00SLASH"+Math.random()+"\x00",N8="\x00OPEN"+Math.random()+"\x00",pF="\x00CLOSE"+Math.random()+"\x00",T8="\x00COMMA"+Math.random()+"\x00",O8="\x00PERIOD"+Math.random()+"\x00",R9=new RegExp(I8,"g"),L9=new RegExp(N8,"g"),I9=new RegExp(pF,"g"),N9=new RegExp(T8,"g"),T9=new RegExp(O8,"g"),O9=/\\\\/g,w9=/\\{/g,P9=/\\}/g,k9=/\\,/g,S9=/\\./g;function lF(D){return!isNaN(D)?parseInt(D,10):D.charCodeAt(0)}function x9(D){return D.replace(O9,I8).replace(w9,N8).replace(P9,pF).replace(k9,T8).replace(S9,O8)}function v9(D){return D.replace(R9,"\\").replace(L9,"{").replace(I9,"}").replace(N9,",").replace(T9,".")}function w8(D){if(!D)return[""];let u=[],F=dF("{","}",D);if(!F)return D.split(",");let{pre:C,body:B,post:$}=F,E=C.split(",");E[E.length-1]+="{"+B+"}";let Q=w8($);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 Ou(x9(D),!0).map(v9)}function f9(D){return"{"+D+"}"}function b9(D){return/^-?0\d/.test(D)}function y9(D,u){return D<=u}function h9(D,u){return D>=u}function Ou(D,u){let F=[],C=dF("{","}",D);if(!C)return[D];let B=C.pre,$=C.post.length?Ou(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+pF+C.post,Ou(D);return[D]}let J;if(X)J=C.body.split(/\.\./);else if(J=w8(C.body),J.length===1&&J[0]!==void 0){if(J=Ou(J[0],!1).map(f9),J.length===1)return $.map((A)=>C.pre+J[0]+A)}let V;if(X&&J[0]!==void 0&&J[1]!==void 0){let A=lF(J[0]),U=lF(J[1]),z=Math.max(J[0].length,J[1].length),G=J.length===3&&J[2]!==void 0?Math.abs(lF(J[2])):1,W=y9;if(U<A)G*=-1,W=h9;let O=J.some(b9);V=[];for(let R=A;W(R,U);R+=G){let L;if(Q){if(L=String.fromCharCode(R),L==="\\")L=""}else if(L=String(R),O){let S=z-L.length;if(S>0){let h=new Array(S+1).join("0");if(R<0)L="-"+h+L.slice(1);else L=h+L}}V.push(L)}}else{V=[];for(let A=0;A<J.length;A++)V.push.apply(V,Ou(J[A],!1))}for(let A=0;A<V.length;A++)for(let U=0;U<$.length;U++){let z=B+V[A]+$[U];if(!u||X||z)F.push(z)}}return F}var wu=(D)=>{if(typeof D!=="string")throw new TypeError("invalid pattern");if(D.length>65536)throw new TypeError("pattern is too long")};var g9={"[: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]},Pu=(D)=>D.replace(/[[\]\\-]/g,"\\$&"),m9=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k8=(D)=>D.join(""),S8=(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[W,[I,O,R]]of Object.entries(g9))if(D.startsWith(W,$)){if(V)return["$.",!1,D.length-F,!0];if($+=W.length,R)B.push(I);else C.push(I);Q=Q||O;continue D}}if(X=!1,V){if(G>V)C.push(Pu(V)+"-"+Pu(G));else if(G===V)C.push(Pu(G));V="",$++;continue}if(D.startsWith("-]",$+1)){C.push(Pu(G+"-")),$+=2;continue}if(D.startsWith("-",$+1)){V=G,$+=2;continue}C.push(Pu(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[m9(G),!1,J-F,!1]}let A="["+(Z?"^":"")+k8(C)+"]",U="["+(Z?"":"^")+k8(B)+"]";return[C.length&&B.length?"("+A+"|"+U+")":C.length?A:U,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 c9=new Set(["!","?","+","*","@"]),x8=(D)=>c9.has(D),d9="(?!(?:^|/)\\.\\.?(?:$|/))",_0="(?!\\.)",l9=new Set(["[","."]),p9=new Set(["..","."]),n9=new Set("().*{}+?[]^$\\!"),i9=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),nF="[^/]",v8=nF+"*?",f8=nF+"+?";class r{type;#D;#u;#E=!1;#B=[];#$;#W;#z;#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.#z=this.#D===this?[]:this.#D.#z,D==="!"&&!this.#D.#J)this.#z.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.#z.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 r&&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 r&&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 r(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 A=F,U="";while(A<D.length){let z=D.charAt(A++);if(B||z==="\\"){B=!B,U+=z;continue}if($){if(A===E+1){if(z==="^"||z==="!")Q=!0}else if(z==="]"&&!(A===E+2&&Q))$=!1;U+=z;continue}else if(z==="["){$=!0,E=A,Q=!1,U+=z;continue}if(!C.noext&&x8(z)&&D.charAt(A)==="("){u.push(U),U="";let G=new r(z,u);A=r.#F(D,G,A,C),u.push(G);continue}U+=z}return u.push(U),A}let X=F+1,Z=new r(null,u),J=[],V="";while(X<D.length){let A=D.charAt(X++);if(B||A==="\\"){B=!B,V+=A;continue}if($){if(X===E+1){if(A==="^"||A==="!")Q=!0}else if(A==="]"&&!(X===E+2&&Q))$=!1;V+=A;continue}else if(A==="["){$=!0,E=X,Q=!1,V+=A;continue}if(x8(A)&&D.charAt(X)==="("){Z.push(V),V="";let U=new r(A,Z);Z.push(U),X=r.#F(D,U,X,C);continue}if(A==="|"){Z.push(V),V="",J.push(Z),Z=new r(null,u);continue}if(A===")"){if(V===""&&u.#B.length===0)u.#Y=!0;return Z.push(V),V="",u.push(...J,Z),X}V+=A}return u.type=null,u.#u=void 0,u.#B=[D.substring(F-1)],X}static fromGlob(D,u={}){let F=new r(null,void 0,u);return r.#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((A)=>{let[U,z,G,W]=typeof A==="string"?r.#_(A,this.#u,Q):A.toRegExpSource(D);return this.#u=this.#u||G,this.#E=this.#E||W,U}).join(""),Z="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&p9.has(this.#B[0]))){let U=l9,z=u&&U.has(X.charAt(0))||X.startsWith("\\.")&&U.has(X.charAt(2))||X.startsWith("\\.\\.")&&U.has(X.charAt(4)),G=!u&&!D&&U.has(X.charAt(0));Z=z?d9:G?_0:""}}}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||!_0?"":this.#V(!0);if($===B)$="";if($)B=`(?:${B})(?:${$})*?`;let E="";if(this.type==="!"&&this.#Y)E=(this.isStart()&&!u?_0:"")+f8;else{let Q=this.type==="!"?"))"+(this.isStart()&&!u&&!D?_0:"")+v8+")":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+=(n9.has(Q)?"\\":"")+Q;continue}if(Q==="\\"){if(E===D.length-1)B+="\\\\";else C=!0;continue}if(Q==="["){let[X,Z,J,V]=S8(D,E);if(J){B+=X,$=$||Z,E+=J-1,u=u||V;continue}}if(Q==="*"){if(F&&D==="*")B+=f8;else B+=v8;u=!0;continue}if(Q==="?"){B+=nF,u=!0;continue}B+=i9(Q)}return[B,TD(D),!!u,$]}}var $u=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/[?*()[\]]/g,"[$&]"):D.replace(/[?*()[\]\\]/g,"\\$&")};var CD=(D,u,F={})=>{if(wu(u),!F.nocomment&&u.charAt(0)==="#")return!1;return new GD(u,F).match(D)},a9=/^\*+([^+@!?\*\[\(]*)$/,r9=(D)=>(u)=>!u.startsWith(".")&&u.endsWith(D),o9=(D)=>(u)=>u.endsWith(D),s9=(D)=>{return D=D.toLowerCase(),(u)=>!u.startsWith(".")&&u.toLowerCase().endsWith(D)},t9=(D)=>{return D=D.toLowerCase(),(u)=>u.toLowerCase().endsWith(D)},e9=/^\*+\.\*+$/,DB=(D)=>!D.startsWith(".")&&D.includes("."),uB=(D)=>D!=="."&&D!==".."&&D.includes("."),FB=/^\.\*+$/,CB=(D)=>D!=="."&&D!==".."&&D.startsWith("."),BB=/^\*+$/,EB=(D)=>D.length!==0&&!D.startsWith("."),$B=(D)=>D.length!==0&&D!=="."&&D!=="..",QB=/^\?+([^+@!?\*\[\(]*)?$/,XB=([D,u=""])=>{let F=h8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},ZB=([D,u=""])=>{let F=g8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},JB=([D,u=""])=>{let F=g8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},YB=([D,u=""])=>{let F=h8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},h8=([D])=>{let u=D.length;return(F)=>F.length===u&&!F.startsWith(".")},g8=([D])=>{let u=D.length;return(F)=>F.length===u&&F!=="."&&F!==".."},m8=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",b8={win32:{sep:"\\"},posix:{sep:"/"}},qB=m8==="win32"?b8.win32.sep:b8.posix.sep;CD.sep=qB;var o=Symbol("globstar **");CD.GLOBSTAR=o;var KB="[^/]",VB=KB+"*?",AB="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",HB="(?:(?!(?:\\/|^)\\.).)*?",UB=(D,u={})=>(F)=>CD(F,D,u);CD.filter=UB;var zD=(D,u={})=>Object.assign({},D,u),zB=(D)=>{if(!D||typeof D!=="object"||!Object.keys(D).length)return CD;let u=CD;return Object.assign((C,B,$={})=>u(C,B,zD(D,$)),{Minimatch:class C extends u.Minimatch{constructor(B,$={}){super(B,zD(D,$))}static defaults(B){return u.defaults(zD(D,B)).Minimatch}},AST:class C extends u.AST{constructor(B,$,E={}){super(B,$,zD(D,E))}static fromGlob(B,$={}){return u.AST.fromGlob(B,zD(D,$))}},unescape:(C,B={})=>u.unescape(C,zD(D,B)),escape:(C,B={})=>u.escape(C,zD(D,B)),filter:(C,B={})=>u.filter(C,zD(D,B)),defaults:(C)=>u.defaults(zD(D,C)),makeRe:(C,B={})=>u.makeRe(C,zD(D,B)),braceExpand:(C,B={})=>u.braceExpand(C,zD(D,B)),match:(C,B,$={})=>u.match(C,B,zD(D,$)),sep:u.sep,GLOBSTAR:o})};CD.defaults=zB;var c8=(D,u={})=>{if(wu(D),u.nobrace||!/\{(?:(?!\{).)*\}/.test(D))return[D];return P8(D)};CD.braceExpand=c8;var GB=(D,u={})=>new GD(D,u).makeRe();CD.makeRe=GB;var WB=(D,u,F={})=>{let C=new GD(u,F);if(D=D.filter((B)=>C.match(B)),C.options.nonull&&!D.length)D.push(u);return D};CD.match=WB;var y8=/[?*]|[+@!]\(.*?\)|\[|\]/,_B=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class GD{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(D,u={}){if(wu(D),u=u||{},this.options=u,this.pattern=D,this.platform=u.platform||m8,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]==="?"||!y8.test(B[2]))&&!y8.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 z=typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0]),G=!z&&D[0]===""&&D[1]===""&&D[2]==="?"&&/^[a-z]:$/i.test(D[3]),W=typeof u[0]==="string"&&/^[a-z]:$/i.test(u[0]),I=!W&&u[0]===""&&u[1]===""&&u[2]==="?"&&typeof u[3]==="string"&&/^[a-z]:$/i.test(u[3]),O=G?3:z?0:void 0,R=I?3:W?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===o){this.debug("GLOBSTAR",[u,Z,J]);var V=$,A=E+1;if(A===X){this.debug("** at the end");for(;$<Q;$++)if(D[$]==="."||D[$]===".."||!C.dot&&D[$].charAt(0)===".")return!1;return!0}while(V<Q){var U=D[V];if(this.debug(`
|
|
globstar while`,D,V,u,A,U),this.matchOne(D.slice(V),u.slice(A),F))return this.debug("globstar found match!",V,Q,U),!0;else{if(U==="."||U===".."||!C.dot&&U.charAt(0)==="."){this.debug("dot detected!",D,V,u,A);break}this.debug("globstar swallow a segment, and continue"),V++}}if(F){if(this.debug(`
|
|
>>> no match, partial?`,D,V,u,A),V===Q)return!0}return!1}let z;if(typeof Z==="string")z=J===Z,this.debug("string match",Z,J,z);else z=Z.test(J),this.debug("pattern match",Z,J,z);if(!z)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 c8(this.pattern,this.options)}parse(D){wu(D);let u=this.options;if(D==="**")return o;if(D==="")return"";let F,C=null;if(F=D.match(BB))C=u.dot?$B:EB;else if(F=D.match(a9))C=(u.nocase?u.dot?t9:s9:u.dot?o9:r9)(F[1]);else if(F=D.match(QB))C=(u.nocase?u.dot?ZB:XB:u.dot?JB:YB)(F);else if(F=D.match(e9))C=u.dot?uB:DB;else if(F=D.match(FB))C=CB;let B=r.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?VB:u.dot?AB:HB,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"?_B(Z):Z===o?o:Z._src});return X.forEach((Z,J)=>{let V=X[J+1],A=X[J-1];if(Z!==o||A===o)return;if(A===void 0)if(V!==void 0&&V!==o)X[J+1]="(?:\\/|"+F+"\\/)?"+V;else X[J]=F;else if(V===void 0)X[J-1]=A+"(?:\\/|"+F+")?";else if(V!==o)X[J-1]=A+"(?:\\/|\\/"+F+"\\/)"+V,X[J+1]=o}),X.filter((Z)=>Z!==o).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=r;CD.Minimatch=GD;CD.escape=$u;CD.unescape=TD;import{fileURLToPath as D4}from"url";var jB=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,l8=new Set,iF=typeof process==="object"&&!!process?process:{},p8=(D,u,F,C)=>{typeof iF.emitWarning==="function"?iF.emitWarning(D,u,F,C):console.error(`[${F}] ${u}: ${D}`)},j0=globalThis.AbortController,d8=globalThis.AbortSignal;if(typeof j0==="undefined"){d8=class F{onabort;_onabort=[];reason;aborted=!1;addEventListener(C,B){this._onabort.push(B)}},j0=class F{constructor(){u()}signal=new d8;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=iF.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",u=()=>{if(!D)return;D=!1,p8("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 MB=(D)=>!l8.has(D),c$=Symbol("type"),lD=(D)=>D&&D===Math.floor(D)&&D>0&&isFinite(D),n8=(D)=>!lD(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?ku:null;class ku extends Array{constructor(D){super(D);this.fill(0)}}class Qu{heap;length;static#D=!1;static create(D){let u=n8(D);if(!u)return[];Qu.#D=!0;let F=new Qu(D,u);return Qu.#D=!1,F}constructor(D,u){if(!Qu.#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 Su{#D;#u;#E;#B;#$;#W;#z;#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;#A;#T;#H;#M;#I;#U;#j;#N;#K;#C;static unsafeExposeInternals(D){return{starts:D.#I,ttls:D.#U,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.#A},free:D.#T,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.#k(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.#z}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:A,maxSize:U=0,maxEntrySize:z=0,sizeCalculation:G,fetchMethod:W,memoMethod:I,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:L,allowStaleOnFetchAbort:S,ignoreFetchAbort:h,perf:XD}=D;if(XD!==void 0){if(typeof XD?.now!=="function")throw new TypeError("perf option must have a now() method if specified")}if(this.#J=XD??jB,u!==0&&!lD(u))throw new TypeError("max option must be a nonnegative integer");let PD=u?n8(u):Array;if(!PD)throw new Error("invalid max value: "+u);if(this.#D=u,this.#u=U,this.maxEntrySize=z||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.#z=I,W!==void 0&&typeof W!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=W,this.#N=!!W,this.#Y=new Map,this.#X=new Array(u).fill(void 0),this.#F=new Array(u).fill(void 0),this.#V=new PD(u),this.#_=new PD(u),this.#G=0,this.#A=0,this.#T=Qu.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.#H=[];else this.#$=void 0,this.#H=void 0;if(this.#j=!!this.#E,this.#C=!!this.#B,this.#K=!!this.#$,this.noDisposeOnSet=!!V,this.noUpdateTTL=!!A,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!L,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!h,this.maxEntrySize!==0){if(this.#u!==0){if(!lD(this.#u))throw new TypeError("maxSize must be a positive integer if specified")}if(!lD(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=lD(C)||C===0?C:1,this.ttlAutopurge=!!B,this.ttl=F||0,this.ttl){if(!lD(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#S()}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(MB("LRU_CACHE_UNBOUNDED"))l8.add("LRU_CACHE_UNBOUNDED"),p8("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",Su)}}getRemainingTTL(D){return this.#Y.has(D)?1/0:0}#S(){let D=new ku(this.#D),u=new ku(this.#D);this.#U=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.#O=(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}}#O=()=>{};#R=()=>{};#m=()=>{};#L=()=>!1;#y(){let D=new ku(this.#D);this.#q=0,this.#M=D,this.#x=(u)=>{this.#q-=D[u],D[u]=0},this.#v=(u,F,C,B)=>{if(this.#Z(F))return 0;if(!lD(C))if(B){if(typeof B!=="function")throw new TypeError("sizeCalculation must be a function");if(C=B(F,u),!lD(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}}#x=(D)=>{};#h=(D,u,F)=>{};#v=(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.#A;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#G)break;else u=this.#_[u]}}*#k({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.#A)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.#k())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.#k()){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.#k())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.#k()){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.#k({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.#U&&this.#I){let $=this.#U[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.#U&&this.#I){$.ttl=this.#U[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.#v(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.#A:this.#T.length!==0?this.#T.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.#A]=J,this.#_[J]=this.#A,this.#A=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:A}=V;if(A!==void 0&&!$){if(this.#j)this.#E?.(A,D,"set");if(this.#K)this.#H?.push([A,D,"set"])}}else if(!$){if(this.#j)this.#E?.(V,D,"set");if(this.#K)this.#H?.push([V,D,"set"])}if(this.#x(J),this.#h(J,Z,Q),this.#F[J]=u,Q){Q.set="replace";let A=V&&this.#Z(V)?V.__staleWhileFetching:V;if(A!==void 0)Q.oldValue=A}}else if(Q)Q.set="update";if(this.#C)this.onInsert?.(u,D,u===V?"update":"replace")}if(C!==0&&!this.#U)this.#S();if(this.#U){if(!X)this.#m(J,C,B);if(Q)this.#R(Q,J)}if(!$&&this.#K&&this.#H){let V=this.#H,A;while(A=V?.shift())this.#$?.(...A)}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.#H){let D=this.#H,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.#H?.push([C,F,"evict"])}if(this.#x(u),D)this.#X[u]=void 0,this.#F[u]=void 0,this.#T.push(u);if(this.#Q===1)this.#G=this.#A=0,this.#T.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.#O(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 j0,{signal:E}=F;E?.addEventListener("abort",()=>$.abort(E.reason),{signal:$.signal});let Q={signal:$.signal,options:F,context:C},X=(z,G=!1)=>{let{aborted:W}=$.signal,I=F.ignoreFetchAbort&&z!==void 0;if(F.status)if(W&&!G){if(F.status.fetchAborted=!0,F.status.fetchError=$.signal.reason,I)F.status.fetchAbortIgnored=!0}else F.status.fetchResolved=!0;if(W&&!I&&!G)return J($.signal.reason);let O=A,R=this.#F[u];if(R===A||I&&G&&R===void 0)if(z===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,z,Q.options)}return z},Z=(z)=>{if(F.status)F.status.fetchRejected=!0,F.status.fetchError=z;return J(z)},J=(z)=>{let{aborted:G}=$.signal,W=G&&F.allowStaleOnFetchAbort,I=W||F.allowStaleOnFetchRejection,O=I||F.noDeleteOnFetchRejection,R=A;if(this.#F[u]===A){if(!O||R.__staleWhileFetching===void 0)this.#P(D,"fetch");else if(!W)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 z},V=(z,G)=>{let W=this.#W?.(D,B,Q);if(W&&W instanceof Promise)W.then((I)=>z(I===void 0?void 0:I),G);$.signal.addEventListener("abort",()=>{if(!F.ignoreFetchAbort||F.allowStaleOnFetchAbort){if(z(void 0),F.allowStaleOnFetchAbort)z=(I)=>X(I,!0)}})};if(F.status)F.status.fetchDispatched=!0;let A=new Promise(V).then(X,Z),U=Object.assign(A,{__abortController:$,__staleWhileFetching:B,__returned:void 0});if(u===void 0)this.set(D,U,{...Q.options,status:void 0}),u=this.#Y.get(D);else this.#F[u]=U;return U}#Z(D){if(!this.#N)return!1;let u=D;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof j0}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:A=this.ignoreFetchAbort,allowStaleOnFetchAbort:U=this.allowStaleOnFetchAbort,context:z,forceRefresh:G=!1,status:W,signal:I}=u;if(!this.#N){if(W)W.fetch="get";return this.get(D,{allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,status:W})}let O={allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,ttl:$,noDisposeOnSet:E,size:Q,sizeCalculation:X,noUpdateTTL:Z,noDeleteOnFetchRejection:J,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:U,ignoreFetchAbort:A,status:W,signal:I},R=this.#Y.get(D);if(R===void 0){if(W)W.fetch="miss";let L=this.#d(D,R,O,z);return L.__returned=L}else{let L=this.#F[R];if(this.#Z(L)){let iD=F&&L.__staleWhileFetching!==void 0;if(W){if(W.fetch="inflight",iD)W.returnedStale=!0}return iD?L.__staleWhileFetching:L.__returned=L}let S=this.#L(R);if(!G&&!S){if(W)W.fetch="hit";if(this.#b(R),C)this.#O(R);if(W)this.#R(W,R);return L}let h=this.#d(D,R,O,z),PD=h.__staleWhileFetching!==void 0&&F;if(W){if(W.fetch=S?"stale":"refresh",PD&&S)W.returnedStale=!0}return PD?h.__staleWhileFetching:h.__returned=h}}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.#z;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.#O(E);return Q}}else if($)$.get="miss"}#l(D,u){this.#_[u]=D,this.#V[D]=u}#b(D){if(D!==this.#A){if(D===this.#G)this.#G=this.#V[D];else this.#l(this.#_[D],this.#V[D]);this.#l(this.#A,D),this.#A=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.#x(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.#H?.push([B,D,u])}if(this.#Y.delete(D),this.#X[C]=void 0,this.#F[C]=void 0,C===this.#A)this.#A=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.#T.push(C)}}if(this.#K&&this.#H?.length){let C=this.#H,B;while(B=C?.shift())this.#$?.(...B)}return F}clear(){return this.#g("delete")}#g(D){for(let u of this.#k({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.#H?.push([F,C,D])}}if(this.#Y.clear(),this.#F.fill(void 0),this.#X.fill(void 0),this.#U&&this.#I)this.#U.fill(0),this.#I.fill(0);if(this.#M)this.#M.fill(0);if(this.#G=0,this.#A=0,this.#T.length=0,this.#q=0,this.#Q=0,this.#K&&this.#H){let u=this.#H,F;while(F=u?.shift())this.#$?.(...F)}}}import{posix as xB,win32 as C2}from"path";import{fileURLToPath as vB}from"url";import{lstatSync as fB,readdir as bB,readdirSync as yB,readlinkSync as hB,realpathSync as gB}from"fs";import*as mB from"fs";import{lstat as dB,readdir as lB,readlink as pB,realpath as nB}from"fs/promises";import{EventEmitter as eF}from"events";import s8 from"stream";import{StringDecoder as RB}from"string_decoder";var i8=typeof process==="object"&&process?process:{stdout:null,stderr:null},LB=(D)=>!!D&&typeof D==="object"&&(D instanceof oD||D instanceof s8||IB(D)||NB(D)),IB=(D)=>!!D&&typeof D==="object"&&D instanceof eF&&typeof D.pipe==="function"&&D.pipe!==s8.Writable.prototype.pipe,NB=(D)=>!!D&&typeof D==="object"&&D instanceof eF&&typeof D.write==="function"&&typeof D.end==="function",hD=Symbol("EOF"),gD=Symbol("maybeEmitEnd"),pD=Symbol("emittedEnd"),M0=Symbol("emittingEnd"),xu=Symbol("emittedError"),R0=Symbol("closed"),a8=Symbol("read"),L0=Symbol("flush"),r8=Symbol("flushChunk"),OD=Symbol("encoding"),Xu=Symbol("decoder"),n=Symbol("flowing"),vu=Symbol("paused"),Zu=Symbol("resume"),i=Symbol("buffer"),BD=Symbol("pipes"),a=Symbol("bufferLength"),aF=Symbol("bufferPush"),I0=Symbol("bufferShift"),e=Symbol("objectMode"),d=Symbol("destroyed"),rF=Symbol("error"),oF=Symbol("emitData"),o8=Symbol("emitEnd"),sF=Symbol("emitEnd2"),SD=Symbol("async"),tF=Symbol("abort"),N0=Symbol("aborted"),fu=Symbol("signal"),rD=Symbol("dataListeners"),VD=Symbol("discarded"),bu=(D)=>Promise.resolve().then(D),TB=(D)=>D(),OB=(D)=>D==="end"||D==="finish"||D==="prefinish",wB=(D)=>D instanceof ArrayBuffer||!!D&&typeof D==="object"&&D.constructor&&D.constructor.name==="ArrayBuffer"&&D.byteLength>=0,PB=(D)=>!Buffer.isBuffer(D)&&ArrayBuffer.isView(D);class D2{src;dest;opts;ondrain;constructor(D,u,F){this.src=D,this.dest=u,this.opts=F,this.ondrain=()=>D[Zu](),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 t8 extends D2{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 kB=(D)=>!!D.objectMode,SB=(D)=>!D.objectMode&&!!D.encoding&&D.encoding!=="buffer";class oD extends eF{[n]=!1;[vu]=!1;[BD]=[];[i]=[];[e];[OD];[SD];[Xu];[hD]=!1;[pD]=!1;[M0]=!1;[R0]=!1;[xu]=null;[a]=0;[d]=!1;[fu];[N0]=!1;[rD]=0;[VD]=!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(kB(u))this[e]=!0,this[OD]=null;else if(SB(u))this[OD]=u.encoding,this[e]=!1;else this[e]=!1,this[OD]=null;if(this[SD]=!!u.async,this[Xu]=this[OD]?new RB(this[OD]):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[fu]=F,F.aborted)this[tF]();else F.addEventListener("abort",()=>this[tF]())}get bufferLength(){return this[a]}get encoding(){return this[OD]}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[SD]}set["async"](D){this[SD]=this[SD]||!!D}[tF](){this[N0]=!0,this.emit("abort",this[fu]?.reason),this.destroy(this[fu]?.reason)}get aborted(){return this[N0]}set aborted(D){}write(D,u,F){if(this[N0])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[SD]?bu:TB;if(!this[e]&&!Buffer.isBuffer(D)){if(PB(D))D=Buffer.from(D.buffer,D.byteOffset,D.byteLength);else if(wB(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[n]&&this[a]!==0)this[L0](!0);if(this[n])this.emit("data",D);else this[aF](D);if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}if(!D.length){if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}if(typeof D==="string"&&!(u===this[OD]&&!this[Xu]?.lastNeed))D=Buffer.from(D,u);if(Buffer.isBuffer(D)&&this[OD])D=this[Xu].write(D);if(this[n]&&this[a]!==0)this[L0](!0);if(this[n])this.emit("data",D);else this[aF](D);if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}read(D){if(this[d])return null;if(this[VD]=!1,this[a]===0||D===0||D&&D>this[a])return this[gD](),null;if(this[e])D=null;if(this[i].length>1&&!this[e])this[i]=[this[OD]?this[i].join(""):Buffer.concat(this[i],this[a])];let u=this[a8](D||null,this[i][0]);return this[gD](),u}[a8](D,u){if(this[e])this[I0]();else{let F=u;if(D===F.length||D===null)this[I0]();else if(typeof F==="string")this[i][0]=F.slice(D),u=F.slice(0,D),this[a]-=D;else this[i][0]=F.subarray(D),u=F.subarray(0,D),this[a]-=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[n]||!this[vu])this[gD]();return this}[Zu](){if(this[d])return;if(!this[rD]&&!this[BD].length)this[VD]=!0;if(this[vu]=!1,this[n]=!0,this.emit("resume"),this[i].length)this[L0]();else if(this[hD])this[gD]();else this.emit("drain")}resume(){return this[Zu]()}pause(){this[n]=!1,this[vu]=!0,this[VD]=!1}get destroyed(){return this[d]}get flowing(){return this[n]}get paused(){return this[vu]}[aF](D){if(this[e])this[a]+=1;else this[a]+=D.length;this[i].push(D)}[I0](){if(this[e])this[a]-=1;else this[a]-=this[i][0].length;return this[i].shift()}[L0](D=!1){do;while(this[r8](this[I0]())&&this[i].length);if(!D&&!this[i].length&&!this[hD])this.emit("drain")}[r8](D){return this.emit("data",D),this[n]}pipe(D,u){if(this[d])return D;this[VD]=!1;let F=this[pD];if(u=u||{},D===i8.stdout||D===i8.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 D2(this,D,u):new t8(this,D,u)),this[SD])bu(()=>this[Zu]());else this[Zu]();return D}unpipe(D){let u=this[BD].find((F)=>F.dest===D);if(u){if(this[BD].length===1){if(this[n]&&this[rD]===0)this[n]=!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[VD]=!1,this[rD]++,!this[BD].length&&!this[n])this[Zu]()}else if(D==="readable"&&this[a]!==0)super.emit("readable");else if(OB(D)&&this[pD])super.emit(D),this.removeAllListeners(D);else if(D==="error"&&this[xu]){let C=u;if(this[SD])bu(()=>C.call(this,this[xu]));else C.call(this,this[xu])}return F}removeListener(D,u){return this.off(D,u)}off(D,u){let F=super.off(D,u);if(D==="data"){if(this[rD]=this.listeners("data").length,this[rD]===0&&!this[VD]&&!this[BD].length)this[n]=!1}return F}removeAllListeners(D){let u=super.removeAllListeners(D);if(D==="data"||D===void 0){if(this[rD]=0,!this[VD]&&!this[BD].length)this[n]=!1}return u}get emittedEnd(){return this[pD]}[gD](){if(!this[M0]&&!this[pD]&&!this[d]&&this[i].length===0&&this[hD]){if(this[M0]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[R0])this.emit("close");this[M0]=!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[SD]?(bu(()=>this[oF](F)),!0):this[oF](F);else if(D==="end")return this[o8]();else if(D==="close"){if(this[R0]=!0,!this[pD]&&!this[d])return!1;let B=super.emit("close");return this.removeAllListeners("close"),B}else if(D==="error"){this[xu]=F,super.emit(rF,F);let B=!this[fu]||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}[oF](D){for(let F of this[BD])if(F.dest.write(D)===!1)this.pause();let u=this[VD]?!1:super.emit("data",D);return this[gD](),u}[o8](){if(this[pD])return!1;return this[pD]=!0,this.readable=!1,this[SD]?(bu(()=>this[sF]()),!0):this[sF]()}[sF](){if(this[Xu]){let u=this[Xu].end();if(u){for(let F of this[BD])F.dest.write(u);if(!this[VD])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[OD]?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[VD]=!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[VD]=!1;let D=!1,u=()=>{return this.pause(),this.off(rF,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(rF,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[VD]=!0,this[i].length=0,this[a]=0;let u=this;if(typeof u.close==="function"&&!this[R0])u.close();if(D)this.emit("error",D);else this.emit(d);return this}static get isStream(){return LB}}var cB=gB.native,hu={lstatSync:fB,readdir:bB,readdirSync:yB,readlinkSync:hB,realpathSync:cB,promises:{lstat:dB,readdir:lB,readlink:pB,realpath:nB}},C6=(D)=>!D||D===hu||D===mB?hu:{...hu,...D,promises:{...hu.promises,...D.promises||{}}},B6=/^\\\\\?\\([a-z]:)\\?$/i,iB=(D)=>D.replace(/\//g,"\\").replace(B6,"$1\\"),aB=/[\\\/]/,_D=0,E6=1,$6=2,xD=4,Q6=6,X6=8,sD=10,Z6=12,WD=15,yu=~WD,u2=16,e8=32,gu=64,wD=128,T0=256,w0=512,D6=gu|wD|w0,rB=1023,F2=(D)=>D.isFile()?X6:D.isDirectory()?xD:D.isSymbolicLink()?sD:D.isCharacterDevice()?$6:D.isBlockDevice()?Q6:D.isSocket()?Z6:D.isFIFO()?E6:_D,u6=new Map,mu=(D)=>{let u=u6.get(D);if(u)return u;let F=D.normalize("NFKD");return u6.set(D,F),F},F6=new Map,O0=(D)=>{let u=F6.get(D);if(u)return u;let F=mu(D.toLowerCase());return F6.set(D,F),F};class B2 extends Su{constructor(){super({max:256})}}class J6 extends Su{constructor(D=16384){super({maxSize:D,sizeCalculation:(u)=>u.length+1})}}var Y6=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}#z;get rdev(){return this.#z}#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}#A;get mtime(){return this.#A}#T;get ctime(){return this.#T}#H;get birthtime(){return this.#H}#M;#I;#U;#j;#N;#K;#C;#S;#O;#R;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(D,u=_D,F,C,B,$,E){if(this.name=D,this.#M=B?O0(D):mu(D),this.#C=u&rB,this.nocase=B,this.roots=C,this.root=F||this,this.#S=$,this.#U=E.fullpath,this.#N=E.relative,this.#K=E.relativePosix,this.parent=E.parent,this.parent)this.#D=this.parent.#D;else this.#D=C6(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.#S}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.#S.get(this);if(D)return D;let u=Object.assign([],{provisional:0});return this.#S.set(this,u),this.#C&=~u2,u}child(D,u){if(D===""||D===".")return this;if(D==="..")return this.parent||this;let F=this.children(),C=this.nocase?O0(D):mu(D);for(let Q of F)if(Q.#M===C)return Q;let B=this.parent?this.sep:"",$=this.#U?this.#U+B+D:void 0,E=this.newChild(D,_D,{...u,parent:this,fullpath:$});if(!this.canReaddir())E.#C|=wD;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.#U!==void 0)return this.#U;let D=this.name,u=this.parent;if(!u)return this.#U=this.name;let C=u.fullpath()+(!u.parent?"":this.sep)+D;return this.#U=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&WD)===_D}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&WD)===X6}isDirectory(){return(this.#C&WD)===xD}isCharacterDevice(){return(this.#C&WD)===$6}isBlockDevice(){return(this.#C&WD)===Q6}isFIFO(){return(this.#C&WD)===E6}isSocket(){return(this.#C&WD)===Z6}isSymbolicLink(){return(this.#C&sD)===sD}lstatCached(){return this.#C&e8?this:void 0}readlinkCached(){return this.#O}realpathCached(){return this.#R}readdirCached(){let D=this.children();return D.slice(0,D.provisional)}canReadlink(){if(this.#O)return!0;if(!this.parent)return!1;let D=this.#C&WD;return!(D!==_D&&D!==sD||this.#C&T0||this.#C&wD)}calledReaddir(){return!!(this.#C&u2)}isENOENT(){return!!(this.#C&wD)}isNamed(D){return!this.nocase?this.#M===mu(D):this.#M===O0(D)}async readlink(){let D=this.#O;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.#O=F}catch(u){this.#c(u.code);return}}readlinkSync(){let D=this.#O;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.#O=F}catch(u){this.#c(u.code);return}}#L(D){this.#C|=u2;for(let u=D.provisional;u<D.length;u++){let F=D[u];if(F)F.#y()}}#y(){if(this.#C&wD)return;this.#C=(this.#C|wD)&yu,this.#x()}#x(){let D=this.children();D.provisional=0;for(let u of D)u.#y()}#h(){this.#C|=w0,this.#v()}#v(){if(this.#C&gu)return;let D=this.#C;if((D&WD)===xD)D&=yu;this.#C=D|gu,this.#x()}#w(D=""){if(D==="ENOTDIR"||D==="EPERM")this.#v();else if(D==="ENOENT")this.#y();else this.children().provisional=0}#k(D=""){if(D==="ENOTDIR")this.parent.#v();else if(D==="ENOENT")this.#y()}#c(D=""){let u=this.#C;if(u|=T0,D==="ENOENT")u|=wD;if(D==="EINVAL"||D==="UNKNOWN")u&=yu;if(this.#C=u,D==="ENOTDIR"&&this.parent)this.parent.#v()}#f(D,u){return this.#Z(D,u)||this.#d(D,u)}#d(D,u){let F=F2(D),C=this.newChild(D.name,F,{parent:this}),B=C.#C&WD;if(B!==xD&&B!==sD&&B!==_D)C.#C|=gu;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?O0(D.name):mu(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&yu|F2(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&wD)===0)try{return this.#b(await this.#D.promises.lstat(this.fullpath())),this}catch(D){this.#k(D.code)}}lstatSync(){if((this.#C&wD)===0)try{return this.#b(this.#D.lstatSync(this.fullpath())),this}catch(D){this.#k(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:A,mtime:U,mtimeMs:z,nlink:G,rdev:W,size:I,uid:O}=D;this.#G=u,this.#X=F,this.#H=C,this.#_=B,this.#J=$,this.#Y=E,this.#T=Q,this.#V=X,this.#u=Z,this.#W=J,this.#Q=V,this.#E=A,this.#A=U,this.#F=z,this.#B=G,this.#z=W,this.#q=I,this.#$=O;let R=F2(D);if(this.#C=this.#C&yu|R|e8,R!==_D&&R!==xD&&R!==sD)this.#C|=gu}#P=[];#g=!1;#n(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.#n(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&D6)return!1;let D=WD&this.#C;if(!(D===_D||D===xD||D===sD))return!1;return!0}shouldWalk(D,u){return(this.#C&xD)===xD&&!(this.#C&D6)&&!D.has(this)&&(!u||u(this))}async realpath(){if(this.#R)return this.#R;if((w0|T0|wD)&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((w0|T0|wD)&this.#C)return;try{let D=this.#D.realpathSync(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}[Y6](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 P0 extends ED{sep="\\";splitSep=aB;constructor(D,u=_D,F,C,B,$,E){super(D,u,F,C,B,$,E)}newChild(D,u=_D,F={}){return new P0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}getRootString(D){return C2.parse(D).root}getRoot(D){if(D=iB(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 cu(D,this).root}sameRoot(D,u=this.root.name){return D=D.toUpperCase().replace(/\//g,"\\").replace(B6,"$1\\"),D===u}}class k0 extends ED{splitSep="/";sep="/";constructor(D,u=_D,F,C,B,$,E){super(D,u,F,C,B,$,E)}getRootString(D){return D.startsWith("/")?"/":""}getRoot(D){return this.root}newChild(D,u=_D,F={}){return new k0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}}class E2{root;rootPath;roots;cwd;#D;#u;#E;nocase;#B;constructor(D=process.cwd(),u,F,{nocase:C,childrenCacheSize:B=16384,fs:$=hu}={}){if(this.#B=C6($),D instanceof URL||D.startsWith("file://"))D=vB(D);let E=u.resolve(D);this.roots=Object.create(null),this.rootPath=this.parseRootPath(E),this.#D=new B2,this.#u=new B2,this.#E=new J6(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,A=!1;for(let U of Q){let z=Z--;X=X.child(U,{relative:new Array(z).fill("..").join(J),relativePosix:new Array(z).fill("..").join("/"),fullpath:V+=(A?"":J)+U}),A=!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((A,U)=>{if(A)return V(A);let z=U.length;if(!z)return V();let G=()=>{if(--z===0)V()};for(let W of U){if(!B||B(W))E.push(F?W:W.fullpath());if(C&&W.isSymbolicLink())W.realpath().then((I)=>I?.isUnknown()?I.lstat():I).then((I)=>I?.shouldWalk(Q,$)?X(I,G):G());else if(W.shouldWalk(Q,$))X(W,G);else G()}},!0)},Z=D;return new Promise((J,V)=>{X(Z,(A)=>{if(A)return V(A);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 oD({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 A=X.shift();if(!A){if(Z===0)E.end();return}Z++,Q.add(A);let U=(G,W,I=!1)=>{if(G)return E.emit("error",G);if(C&&!I){let O=[];for(let R of W)if(R.isSymbolicLink())O.push(R.realpath().then((L)=>L?.isUnknown()?L.lstat():L));if(O.length){Promise.all(O).then(()=>U(null,W,!0));return}}for(let O of W)if(O&&(!B||B(O))){if(!E.write(F?O:O.fullpath()))V=!0}Z--;for(let O of W){let R=O.realpathCached()||O;if(R.shouldWalk(Q,$))X.push(R)}if(V&&!E.flowing)E.once("drain",J);else if(!z)J()},z=!0;A.readdirCB(U,!0),z=!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 oD({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 A=X.shift();if(!A){if(Z===0)E.end();return}Z++,Q.add(A);let U=A.readdirSync();for(let z of U)if(!B||B(z)){if(!E.write(F?z:z.fullpath()))V=!0}Z--;for(let z of U){let G=z;if(z.isSymbolicLink()){if(!(C&&(G=z.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[Y6](u)}}class cu extends E2{sep="\\";constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,C2,"\\",{...u,nocase:F});this.nocase=F;for(let C=this.cwd;C;C=C.parent)C.nocase=this.nocase}parseRootPath(D){return C2.parse(D).root.toUpperCase()}newRoot(D){return new P0(this.rootPath,xD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")||D.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(D)}}class du extends E2{sep="/";constructor(D=process.cwd(),u={}){let{nocase:F=!1}=u;super(D,xB,"/",{...u,nocase:F});this.nocase=F}parseRootPath(D){return"/"}newRoot(D){return new k0(this.rootPath,xD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")}}class S0 extends du{constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,{...u,nocase:F})}}var DQ=process.platform==="win32"?P0:k0,q6=process.platform==="win32"?cu:process.platform==="darwin"?S0:du;var oB=(D)=>D.length>=1,sB=(D)=>D.length>=1;class Ju{#D;#u;#E;length;#B;#$;#W;#z;#J;#Q;#q=!0;constructor(D,u,F,C){if(!oB(D))throw new TypeError("empty pattern list");if(!sB(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,A,...U]=this.#u;if(X[0]==="")X.shift(),U.shift();let z=[B,$,E,Q,""].join("/"),G=[Z,J,V,A,""].join("/");this.#D=[z,...X],this.#u=[G,...U],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]===o}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 Ju(this.#D,this.#u,this.#E+1,this.#B),this.#$.#Q=this.#Q,this.#$.#J=this.#J,this.#$.#z=this.#z,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.#z!==void 0?this.#z:this.#z=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 tB=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class lu{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(D,{nobrace:u,nocase:F,noext:C,noglobstar:B,platform:$=tB}){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 GD(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 Ju(C,B,0,this.platform),E=new GD($.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 $2{store;constructor(D=new Map){this.store=D}copy(){return new $2(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 K6{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 V6{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 pu{hasWalkedCache;matches=new K6;subwalks=new V6;patterns;follow;dot;opts;constructor(D,u){this.opts=D,this.follow=!!D.follow,this.dot=!!D.dot,this.hasWalkedCache=u?u.copy():new $2}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===o){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 A=C.parent||C;if(!V)this.matches.add(A,E,!0);else if(!this.hasWalkedCache.hasWalked(A,V))this.subwalks.add(A,V)}}else if(Q instanceof RegExp)this.subwalks.add(C,B)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new pu(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===o)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 eB=(D,u)=>typeof D==="string"?new lu([D],u):Array.isArray(D)?new lu(D,u):D;class Q2{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=eB(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 pu(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 pu(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 x0 extends Q2{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 v0 extends Q2{results;constructor(D,u,F){super(D,u,F);this.results=new oD({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 vD{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=D4(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"?cu:u.platform==="darwin"?S0:u.platform?du:q6;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 GD(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 Ju(Q,Z,0,this.platform)})}async walk(){return[...await new x0(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 x0(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 v0(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 v0(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 X2=(D,u={})=>{if(!Array.isArray(D))D=[D];for(let F of D)if(new GD(F,u).hasMagic())return!0;return!1};function b0(D,u={}){return new vD(D,u).streamSync()}function H6(D,u={}){return new vD(D,u).stream()}function U6(D,u={}){return new vD(D,u).walkSync()}async function A6(D,u={}){return new vD(D,u).walk()}function y0(D,u={}){return new vD(D,u).iterateSync()}function z6(D,u={}){return new vD(D,u).iterate()}var F4=b0,C4=Object.assign(H6,{sync:b0}),B4=y0,E4=Object.assign(z6,{sync:y0}),$4=Object.assign(U6,{stream:b0,iterate:y0}),f0=Object.assign(A6,{glob:A6,globSync:U6,sync:$4,globStream:H6,stream:C4,globStreamSync:b0,streamSync:F4,globIterate:z6,iterate:E4,globIterateSync:y0,iterateSync:B4,Glob:vD,hasMagic:X2,escape:$u,unescape:TD});f0.glob=f0;FD();async function W6(D,u={}){let F=T.getInstance().getTrashDirectory();if(!G6(F))X4(F,{recursive:!0});let C=Array.isArray(D)?D:[D];for(let B of C){let $=await f0(B),E=$.length>0?$:[B];for(let Q of E)try{if(!G6(Q)){if(!u.force){console.error(`trash: ${Q}: No such file or directory`);continue}continue}if(Z4(Q).isDirectory()&&!u.recursive){if(!u.force){console.error(`trash: ${Q}: is a directory`);continue}}let Z=Y4(Q),J=Date.now(),V=J4(F,`${Z}.${J}`);Q4(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 j6,statSync as M6}from"fs";import{join as R6}from"path";FD();function q4(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 _6(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 L6(D){let u=0,F=j6(D);for(let C of F){let B=R6(D,C),$=M6(B);if($.isDirectory())u+=L6(B);else u+=$.size}return u}async function I6(){let D=T.getInstance().getTrashDirectory();try{let u=j6(D);if(u.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is empty");return}let F=u.map((E)=>{let Q=R6(D,E),X=M6(Q),{name:Z,timestamp:J}=q4(E),V=X.isDirectory()?L6(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=_6(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 (${_6(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 K4,readdirSync as V4,existsSync as A4,statSync as H4}from"fs";import{join as N6}from"path";FD();async function T6(D={}){let u=T.getInstance().getTrashDirectory();if(!A4(u)){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}try{let F=V4(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=N6(u,E);if(H4(Q).isDirectory())C++;else B++}if(!D.force){let E=await eD({message:`Permanently delete ${C} folders and ${B} files from trash?`,initialValue:!1});if(HD(E)||!E){DD.info("Cancelled - trash not emptied");return}}let $=q3();$.start("Emptying trash...");for(let E of F){let Q=N6(u,E);K4(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 U4,renameSync as z4}from"fs";import{join as O6}from"path";FD();async function w6(){let D=T.getInstance().getTrashDirectory(),u=U4(D);if(u.length===0){console.log("Trash is empty");return}let F=await B0({message:"Select file to restore:",options:u.map((C)=>({value:C,label:C}))});if(HD(F))return;z4(O6(D,F),O6(process.cwd(),F)),console.log(`Restored ${F}`)}FD();import Yu from"fs";import w4 from"path";FD();import{Database as G4}from"bun:sqlite";import W4 from"path";import _4 from"fs";var h0=null;class nD{static instance;db=null;migrations=[];static getInstance(){if(!nD.instance)nD.instance=new nD;return nD.instance}registerMigration(D){this.migrations.push(D),this.migrations.sort((u,F)=>u.version-F.version)}async initialize(){if(this.db)return this.db;let D=T.getInstance().getDataDirectory();_4.mkdirSync(D,{recursive:!0});let u=W4.join(D,"claude-mem.db");return this.db=new G4(u,{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(),h0=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,h0=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(!h0)throw new Error("Database not initialized. Call DatabaseManager.getInstance().initialize() first.");return h0}async function k6(){return await nD.getInstance().initialize()}tD();var L4={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;
|
|
`)}},I4={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")}},N4={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;
|
|
`)}},T4={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;
|
|
`)}},O4={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)")}},S6=[L4,I4,N4,T4,O4];function P4(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 x6(D={}){let u=T.getInstance(),F=[];try{let C=u.getDataDirectory();if(!Yu.existsSync(C))Yu.mkdirSync(C,{recursive:!0}),F.push({name:`Data directory created at ${C}`,status:"warn"});else{let B=Yu.statSync(C),$=!1;try{Yu.accessSync(C,Yu.constants.W_OK),$=!0}catch{}F.push({name:`Data directory ${C}`,status:B.isDirectory()&&$?"pass":"fail",details:B.isDirectory()&&$?"accessible":"not writable"})}}catch(C){F.push({name:"Data directory",status:"fail",details:C?.message||String(C)})}try{let C=new $D;F.push({name:"SQLite database",status:"pass",details:"connected"})}catch(C){F.push({name:"SQLite database",status:"fail",details:C?.message||String(C)})}try{let C=u.getChromaDirectory(),B=Yu.existsSync(C);F.push({name:"Chroma vector store",status:B?"pass":"warn",details:B?`data dir ${w4.resolve(C)}`:"Not yet initialized"})}catch(C){F.push({name:"Chroma vector store",status:"warn",details:C?.message||"Unable to check Chroma directory"})}if(D.json)console.log(JSON.stringify({checks:F},null,2));else console.log("claude-mem doctor"),console.log("================="),F.forEach(P4)}FD();import{readFileSync as Z2,existsSync as g0,readdirSync as k4,statSync as S4}from"fs";import{join as m0,dirname as x4}from"path";import{execSync as v4}from"child_process";import{fileURLToPath as f4}from"url";var _X=x4(f4(import.meta.url));async function v6(){console.log("\uD83D\uDD0D Claude Memory System Status Check"),console.log(`=====================================
|
|
`);let D=T.getInstance();console.log("\u2699\uFE0F Settings Configuration:");let u=(X,Z)=>{if(!g0(Z)){console.log(` \u23ED\uFE0F ${X}: No settings file`);return}console.log(` \uD83D\uDCCB ${X}: ${Z}`);try{let J=JSON.parse(Z2(Z,"utf8")),V=J.hooks?.SessionStart?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),A=J.hooks?.Stop?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),U=J.hooks?.UserPromptSubmit?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),z=J.hooks?.PostToolUse?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem")));console.log(` SessionStart (claude-mem context): ${V?"\u2705":"\u274C"}`),console.log(` Stop (claude-mem summary): ${A?"\u2705":"\u274C"}`),console.log(` UserPromptSubmit (claude-mem new): ${U?"\u2705":"\u274C"}`),console.log(` PostToolUse (claude-mem save): ${z?"\u2705":"\u274C"}`)}catch(J){console.log(" \u26A0\uFE0F Could not parse settings")}};u("Global",D.getClaudeSettingsPath()),u("Project",m0(process.cwd(),".claude","settings.json")),console.log(""),console.log("\uD83D\uDCE6 Compressed Transcripts:");let F=m0(D.getClaudeConfigDirectory(),"projects");if(g0(F))try{let X=0,Z=0,J=(V,A=0)=>{if(A>3)return;let U=k4(V);for(let z of U){let G=m0(V,z);if(S4(G).isDirectory()&&!z.startsWith("."))J(G,A+1);else if(z.endsWith(".jsonl.compressed"))X++;else if(z.endsWith(".jsonl.archive"))Z++}};J(F),console.log(` Compressed files: ${X}`),console.log(` Archive files: ${Z}`)}catch(X){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 C=(X,Z)=>{try{let J=v4(`${X} --version`,{encoding:"utf8"}).trim();console.log(` \u2705 ${Z}: ${J}`)}catch{console.log(` \u274C ${Z}: Not found`)}};C("node","Node.js"),C("bun","Bun"),console.log(""),console.log("\uD83E\uDDE0 Chroma Storage Status:"),console.log(" \u2705 Storage backend: Chroma MCP"),console.log(` \uD83D\uDCCD Data location: ${D.getChromaDirectory()}`),console.log(" \uD83D\uDD0D Features: Vector search, semantic similarity, document storage"),console.log(""),console.log("\uD83D\uDCCA Summary:");let B=D.getClaudeSettingsPath(),$=m0(process.cwd(),".claude","settings.json"),E=!1,Q="Not installed";try{if(g0(B)){let X=JSON.parse(Z2(B,"utf8"));if(X.hooks?.SessionStart||X.hooks?.Stop||X.hooks?.PostToolUse)E=!0,Q="Global"}if(g0($)){let X=JSON.parse(Z2($,"utf8"));if(X.hooks?.SessionStart||X.hooks?.Stop||X.hooks?.PostToolUse)E=!0,Q=Q==="Global"?"Global + Project":"Project"}}catch{}if(E)console.log(` \u2705 Claude Memory System is installed (${Q})`),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 QD=new x2;QD.name(Hu).description(c2).version(m2);QD.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(G8);QD.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(j8);QD.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(R8);var Y2=QD.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){Y2.outputHelp();return}if(u.R)u.recursive=!0;await W6(D,{force:u.force,recursive:u.recursive})});Y2.command("view").description("View contents of trash bin").action(I6);Y2.command("empty").description("Permanently delete all files in trash").option("-f, --force","Skip confirmation prompt").action(T6);QD.command("restore").description("Restore files from trash interactively").action(w6);QD.command("doctor").description("Run health checks on claude-mem installation").option("--json","Output results as JSON").action(x6);QD.command("status").description("Show claude-mem system status").action(v6);QD.command("context").description("SessionStart hook - show recent session context").action(async()=>{let{contextHook:D}=await Promise.resolve().then(() => (iu(),nu)),u=await c0();D(JSON.parse(u))});QD.command("new").description("UserPromptSubmit hook - initialize SDK session").action(async()=>{let{newHook:D}=await Promise.resolve().then(() => (iu(),nu)),u=await c0();D(JSON.parse(u))});QD.command("save").description("PostToolUse hook - queue observation").action(async()=>{let{saveHook:D}=await Promise.resolve().then(() => (iu(),nu)),u=await c0();D(JSON.parse(u))});QD.command("summary").description("Stop hook - finalize session").action(async()=>{let{summaryHook:D}=await Promise.resolve().then(() => (iu(),nu)),u=await c0();D(JSON.parse(u))});QD.command("worker <sessionId>").description("Run SDK worker process (internal use)").action(async(D)=>{try{let{main:u}=await Promise.resolve().then(() => (D1(),e6));process.argv[2]=D,await u()}catch(u){console.error(`[SDK Worker] Fatal error: ${u.message}`),process.exit(1)}});async function c0(){return new Promise((D)=>{let u="";process.stdin.on("data",(F)=>{u+=F}),process.stdin.on("end",()=>{D(u)})})}QD.parse();export{S6 as migrations,k6 as initializeDatabase,P6 as getDatabase,nD as DatabaseManager};
|