diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..90111e90 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,13 @@ +{ + "name": "thedotmack", + "owner": { + "name": "Alex Newman" + }, + "plugins": [ + { + "name": "claude-mem", + "source": "./claude-mem", + "description": "Persistent memory system for Claude Code" + } + ] +} diff --git a/context/claude-code/plugins.md b/context/claude-code/plugins.md new file mode 100644 index 00000000..05731784 --- /dev/null +++ b/context/claude-code/plugins.md @@ -0,0 +1,90 @@ +# Claude Code Plugins Quick Reference + +For custom files in your claude-mem plugin, you have several designated locations based on the standard plugin structure [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#standard-plugin-layout): + +## Standard Plugin Directory Structure [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#standard-plugin-layout) + +``` +enterprise-plugin/ +├── .claude-plugin/ # Metadata directory +│ └── plugin.json # Required: plugin manifest +├── commands/ # Default command location +│ ├── status.md +│ └── logs.md +├── agents/ # Default agent location +│ ├── security-reviewer.md +│ ├── performance-tester.md +│ └── compliance-checker.md +├── hooks/ # Hook configurations +│ ├── hooks.json # Main hook config +│ └── security-hooks.json # Additional hooks +├── .mcp.json # MCP server definitions +├── scripts/ # Hook and utility scripts +│ ├── security-scan.sh +│ ├── format-code.py +│ └── deploy.js +├── LICENSE # License file +└── CHANGELOG.md # Version history +``` + +## Where to Put Your Custom Files + +### Hook Scripts [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#standard-plugin-layout) +Put your hook execution scripts in the `scripts/` directory [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#standard-plugin-layout). For your claude-mem hooks: + +``` +claude-mem-plugin/ +├── scripts/ +│ ├── context-hook.js # Your SessionStart hook +│ ├── new-hook.js # Your UserPromptSubmit hook +│ ├── save-hook.js # Your PostToolUse hook +│ └── summary-hook.js # Your Stop hook +``` + +### Hook Configuration [(4)](https://docs.claude.com/en/docs/claude-code/hooks#plugin-hooks) +Your hook configuration goes in `hooks/hooks.json` and can reference plugin files using the `${CLAUDE_PLUGIN_ROOT}` environment variable [(4)](https://docs.claude.com/en/docs/claude-code/hooks#plugin-hooks): + +```json +{ + "description": "Claude-mem memory system hooks", + "hooks": { + "SessionStart": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/context-hook.js", + "timeout": 180 + } + ] + } + ] + } +} +``` + +### Commands [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#commands) +Your slash commands go in the `commands/` directory as markdown files [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#commands): + +``` +claude-mem-plugin/ +├── commands/ +│ ├── claude-mem.md +│ ├── save.md +│ └── remember.md +``` + +### Additional Custom Files +For any other custom files (configuration, templates, data files), you can create additional directories in your plugin root. The plugin system will make them available via `${CLAUDE_PLUGIN_ROOT}` [(4)](https://docs.claude.com/en/docs/claude-code/hooks#plugin-hooks). + +## File Location Reference [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#file-locations-reference) + +| Component | Default Location | Purpose | +|-----------|------------------|---------| +| **Manifest** | `.claude-plugin/plugin.json` | Required metadata file | +| **Commands** | `commands/` | Slash command markdown files | +| **Agents** | `agents/` | Subagent markdown files | +| **Hooks** | `hooks/hooks.json` | Hook configuration | +| **MCP servers** | `.mcp.json` | MCP server definitions | + +The key point is that all component directories (commands/, agents/, hooks/, scripts/) must be at the plugin root, not inside `.claude-plugin/` [(1)](https://docs.claude.com/en/docs/claude-code/plugins-reference#standard-plugin-layout). \ No newline at end of file diff --git a/dist/claude-mem.min.js b/dist/claude-mem.min.js index e717057f..da43a1a9 100755 --- a/dist/claude-mem.min.js +++ b/dist/claude-mem.min.js @@ -1,19 +1,19 @@ #!/usr/bin/env bun // @bun -var G1=Object.create;var{getPrototypeOf:W1,defineProperty:a0,getOwnPropertyNames:_1}=Object;var j1=Object.prototype.hasOwnProperty;var bD=(D,u,F)=>{F=D!=null?G1(W1(D)):{};let C=u||!D||!D.__esModule?a0(F,"default",{value:D,enumerable:!0}):F;for(let B of _1(D))if(!j1.call(C,B))a0(C,B,{get:()=>D[B],enumerable:!0});return C};var l=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var M2=(D,u)=>{for(var F in u)a0(D,F,{get:u[F],enumerable:!0,configurable:!0,set:(C)=>u[F]=()=>C})};var mD=(D,u)=>()=>(D&&(u=D(D=0)),u);var cD=import.meta.require;var _u=l((M1)=>{class r0 extends Error{constructor(D,u,F){super(F);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=u,this.exitCode=D,this.nestedError=void 0}}class R2 extends r0{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}M1.CommanderError=r0;M1.InvalidArgumentError=R2});var D0=l((O1)=>{var{InvalidArgumentError:I1}=_u();class L2{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 I1(`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 N1(D){let u=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+u+">":"["+u+"]"}O1.Argument=L2;O1.humanReadableArgName=N1});var o0=l((S1)=>{var{humanReadableArgName:P1}=D0();class I2{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)=>P1(F)).join(" ");return D._name+(D._aliases[0]?"|"+D._aliases[0]:"")+(D.options.length?" [options]":"")+(u?" "+u:"")}optionTerm(D){return D.flags}argumentTerm(D){return D.name()}longestSubcommandTermLength(D,u){return u.visibleCommands(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleSubcommandTerm(u.subcommandTerm(C))))},0)}longestOptionTermLength(D,u){return u.visibleOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestGlobalOptionTermLength(D,u){return u.visibleGlobalOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestArgumentTermLength(D,u){return u.visibleArguments(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleArgumentTerm(u.argumentTerm(C))))},0)}commandUsage(D){let u=D._name;if(D._aliases[0])u=u+"|"+D._aliases[0];let F="";for(let C=D.parent;C;C=C.parent)F=C.name()+" "+F;return F+u+" "+D.usage()}commandDescription(D){return D.description()}subcommandDescription(D){return D.summary()||D.description()}optionDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0){if(D.required||D.optional||D.isBoolean()&&typeof D.defaultValue==="boolean")u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`)}if(D.presetArg!==void 0&&D.optional)u.push(`preset: ${JSON.stringify(D.presetArg)}`);if(D.envVar!==void 0)u.push(`env: ${D.envVar}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}argumentDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0)u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}formatItemList(D,u,F){if(u.length===0)return[];return[F.styleTitle(D),...u,""]}groupItems(D,u,F){let C=new Map;return D.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[])}),u.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[]);C.get($).push(B)}),C}formatHelp(D,u){let F=u.padWidth(D,u),C=u.helpWidth??80;function B(J,V){return u.formatItem(J,F,V,u)}let $=[`${u.styleTitle("Usage:")} ${u.styleUsage(u.commandUsage(D))}`,""],E=u.commandDescription(D);if(E.length>0)$=$.concat([u.boxWrap(u.styleCommandDescription(E),C),""]);let Q=u.visibleArguments(D).map((J)=>{return B(u.styleArgumentTerm(u.argumentTerm(J)),u.styleArgumentDescription(u.argumentDescription(J)))});if($=$.concat(this.formatItemList("Arguments:",Q,u)),this.groupItems(D.options,u.visibleOptions(D),(J)=>J.helpGroupHeading??"Options:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleOptionTerm(u.optionTerm(z)),u.styleOptionDescription(u.optionDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),u.showGlobalOptions){let J=u.visibleGlobalOptions(D).map((V)=>{return B(u.styleOptionTerm(u.optionTerm(V)),u.styleOptionDescription(u.optionDescription(V)))});$=$.concat(this.formatItemList("Global Options:",J,u))}return this.groupItems(D.commands,u.visibleCommands(D),(J)=>J.helpGroup()||"Commands:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleSubcommandTerm(u.subcommandTerm(z)),u.styleSubcommandDescription(u.subcommandDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),$.join(` +var _1=Object.create;var{getPrototypeOf:j1,defineProperty:a0,getOwnPropertyNames:M1}=Object;var R1=Object.prototype.hasOwnProperty;var bD=(D,u,F)=>{F=D!=null?_1(j1(D)):{};let C=u||!D||!D.__esModule?a0(F,"default",{value:D,enumerable:!0}):F;for(let B of M1(D))if(!R1.call(C,B))a0(C,B,{get:()=>D[B],enumerable:!0});return C};var l=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var M2=(D,u)=>{for(var F in u)a0(D,F,{get:u[F],enumerable:!0,configurable:!0,set:(C)=>u[F]=()=>C})};var mD=(D,u)=>()=>(D&&(u=D(D=0)),u);var cD=import.meta.require;var _u=l((L1)=>{class r0 extends Error{constructor(D,u,F){super(F);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=u,this.exitCode=D,this.nestedError=void 0}}class R2 extends r0{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}L1.CommanderError=r0;L1.InvalidArgumentError=R2});var D0=l((w1)=>{var{InvalidArgumentError:O1}=_u();class L2{constructor(D,u){switch(this.description=u||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,D[0]){case"<":this.required=!0,this._name=D.slice(1,-1);break;case"[":this.required=!1,this._name=D.slice(1,-1);break;default:this.required=!0,this._name=D;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}default(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}argParser(D){return this.parseArg=D,this}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new O1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function T1(D){let u=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+u+">":"["+u+"]"}w1.Argument=L2;w1.humanReadableArgName=T1});var o0=l((v1)=>{var{humanReadableArgName:k1}=D0();class I2{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(D){this.helpWidth=this.helpWidth??D.helpWidth??80}visibleCommands(D){let u=D.commands.filter((C)=>!C._hidden),F=D._getHelpCommand();if(F&&!F._hidden)u.push(F);if(this.sortSubcommands)u.sort((C,B)=>{return C.name().localeCompare(B.name())});return u}compareOptions(D,u){let F=(C)=>{return C.short?C.short.replace(/^-/,""):C.long.replace(/^--/,"")};return F(D).localeCompare(F(u))}visibleOptions(D){let u=D.options.filter((C)=>!C.hidden),F=D._getHelpOption();if(F&&!F.hidden){let C=F.short&&D._findOption(F.short),B=F.long&&D._findOption(F.long);if(!C&&!B)u.push(F);else if(F.long&&!B)u.push(D.createOption(F.long,F.description));else if(F.short&&!C)u.push(D.createOption(F.short,F.description))}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleGlobalOptions(D){if(!this.showGlobalOptions)return[];let u=[];for(let F=D.parent;F;F=F.parent){let C=F.options.filter((B)=>!B.hidden);u.push(...C)}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleArguments(D){if(D._argsDescription)D.registeredArguments.forEach((u)=>{u.description=u.description||D._argsDescription[u.name()]||""});if(D.registeredArguments.find((u)=>u.description))return D.registeredArguments;return[]}subcommandTerm(D){let u=D.registeredArguments.map((F)=>k1(F)).join(" ");return D._name+(D._aliases[0]?"|"+D._aliases[0]:"")+(D.options.length?" [options]":"")+(u?" "+u:"")}optionTerm(D){return D.flags}argumentTerm(D){return D.name()}longestSubcommandTermLength(D,u){return u.visibleCommands(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleSubcommandTerm(u.subcommandTerm(C))))},0)}longestOptionTermLength(D,u){return u.visibleOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestGlobalOptionTermLength(D,u){return u.visibleGlobalOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestArgumentTermLength(D,u){return u.visibleArguments(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleArgumentTerm(u.argumentTerm(C))))},0)}commandUsage(D){let u=D._name;if(D._aliases[0])u=u+"|"+D._aliases[0];let F="";for(let C=D.parent;C;C=C.parent)F=C.name()+" "+F;return F+u+" "+D.usage()}commandDescription(D){return D.description()}subcommandDescription(D){return D.summary()||D.description()}optionDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0){if(D.required||D.optional||D.isBoolean()&&typeof D.defaultValue==="boolean")u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`)}if(D.presetArg!==void 0&&D.optional)u.push(`preset: ${JSON.stringify(D.presetArg)}`);if(D.envVar!==void 0)u.push(`env: ${D.envVar}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}argumentDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0)u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}formatItemList(D,u,F){if(u.length===0)return[];return[F.styleTitle(D),...u,""]}groupItems(D,u,F){let C=new Map;return D.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[])}),u.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[]);C.get($).push(B)}),C}formatHelp(D,u){let F=u.padWidth(D,u),C=u.helpWidth??80;function B(J,V){return u.formatItem(J,F,V,u)}let $=[`${u.styleTitle("Usage:")} ${u.styleUsage(u.commandUsage(D))}`,""],E=u.commandDescription(D);if(E.length>0)$=$.concat([u.boxWrap(u.styleCommandDescription(E),C),""]);let Q=u.visibleArguments(D).map((J)=>{return B(u.styleArgumentTerm(u.argumentTerm(J)),u.styleArgumentDescription(u.argumentDescription(J)))});if($=$.concat(this.formatItemList("Arguments:",Q,u)),this.groupItems(D.options,u.visibleOptions(D),(J)=>J.helpGroupHeading??"Options:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleOptionTerm(u.optionTerm(z)),u.styleOptionDescription(u.optionDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),u.showGlobalOptions){let J=u.visibleGlobalOptions(D).map((V)=>{return B(u.styleOptionTerm(u.optionTerm(V)),u.styleOptionDescription(u.optionDescription(V)))});$=$.concat(this.formatItemList("Global Options:",J,u))}return this.groupItems(D.commands,u.visibleCommands(D),(J)=>J.helpGroup()||"Commands:").forEach((J,V)=>{let H=J.map((z)=>{return B(u.styleSubcommandTerm(u.subcommandTerm(z)),u.styleSubcommandDescription(u.subcommandDescription(z)))});$=$.concat(this.formatItemList(V,H,u))}),$.join(` `)}displayWidth(D){return N2(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{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 N2(D){let u=/\x1b\[\d*(;\d*)*m/g;return D.replace(u,"")}S1.Help=I2;S1.stripColor=N2});var s0=l((b1)=>{var{InvalidArgumentError:x1}=_u();class T2{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=f1(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 x1(`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 O2(this.name().replace(/^no-/,""));return O2(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 w2{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 O2(D){return D.split("-").reduce((u,F)=>{return u+F[0].toUpperCase()+F.slice(1)})}function f1(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} +`)}}function N2(D){let u=/\x1b\[\d*(;\d*)*m/g;return D.replace(u,"")}v1.Help=I2;v1.stripColor=N2});var s0=l((h1)=>{var{InvalidArgumentError:b1}=_u();class T2{constructor(D,u){this.flags=D,this.description=u||"",this.required=D.includes("<"),this.optional=D.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(D),this.mandatory=!1;let F=y1(D);if(this.short=F.shortFlag,this.long=F.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}preset(D){return this.presetArg=D,this}conflicts(D){return this.conflictsWith=this.conflictsWith.concat(D),this}implies(D){let u=D;if(typeof D==="string")u={[D]:!0};return this.implied=Object.assign(this.implied||{},u),this}env(D){return this.envVar=D,this}argParser(D){return this.parseArg=D,this}makeOptionMandatory(D=!0){return this.mandatory=!!D,this}hideHelp(D=!0){return this.hidden=!!D,this}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new b1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return O2(this.name().replace(/^no-/,""));return O2(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 w2{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 O2(D){return D.split("-").reduce((u,F)=>{return u+F[0].toUpperCase()+F.slice(1)})}function y1(D){let u,F,C=/^-[^-]$/,B=/^--[^-]/,$=D.split(/[ |,]+/).concat("guard");if(C.test($[0]))u=$.shift();if(B.test($[0]))F=$.shift();if(!u&&C.test($[0]))u=$.shift();if(!u&&B.test($[0]))u=F,F=$.shift();if($[0].startsWith("-")){let E=$[0],Q=`option creation failed due to '${E}' in option flags '${D}'`;if(/^-[^-][^-]/.test(E))throw new Error(`${Q} - a short flag is a single dash and a single character - either use a single dash and a single character (for a short flag) - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(C.test(E))throw new Error(`${Q} - too many short flags`);if(B.test(E))throw new Error(`${Q} - too many long flags`);throw new Error(`${Q} -- unrecognised flag format`)}if(u===void 0&&F===void 0)throw new Error(`option creation failed due to no flags found in '${D}'.`);return{shortFlag:u,longFlag:F}}b1.Option=T2;b1.DualOptions=w2});var P2=l((c1)=>{function g1(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 m1(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=g1(D,E),X=Math.max(D.length,E.length);if((X-Q)/X>$){if(QE.localeCompare(Q)),F)C=C.map((E)=>`--${E}`);if(C.length>1)return` +- unrecognised flag format`)}if(u===void 0&&F===void 0)throw new Error(`option creation failed due to no flags found in '${D}'.`);return{shortFlag:u,longFlag:F}}h1.Option=T2;h1.DualOptions=w2});var P2=l((l1)=>{function c1(D,u){if(Math.abs(D.length-u.length)>3)return Math.max(D.length,u.length);let F=[];for(let C=0;C<=D.length;C++)F[C]=[C];for(let C=0;C<=u.length;C++)F[0][C]=C;for(let C=1;C<=u.length;C++)for(let B=1;B<=D.length;B++){let $=1;if(D[B-1]===u[C-1])$=0;else $=1;if(F[B][C]=Math.min(F[B-1][C]+1,F[B][C-1]+1,F[B-1][C-1]+$),B>1&&C>1&&D[B-1]===u[C-2]&&D[B-2]===u[C-1])F[B][C]=Math.min(F[B][C],F[B-2][C-2]+1)}return F[D.length][u.length]}function d1(D,u){if(!u||u.length===0)return"";u=Array.from(new Set(u));let F=D.startsWith("--");if(F)D=D.slice(2),u=u.map((E)=>E.slice(2));let C=[],B=3,$=0.4;if(u.forEach((E)=>{if(E.length<=1)return;let Q=c1(D,E),X=Math.max(D.length,E.length);if((X-Q)/X>$){if(QE.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""}c1.suggestSimilar=m1});var x2=l((o1)=>{var l1=cD("events").EventEmitter,t0=cD("child_process"),yD=cD("path"),u0=cD("fs"),w=cD("process"),{Argument:p1,humanReadableArgName:i1}=D0(),{CommanderError:e0}=_u(),{Help:n1,stripColor:a1}=o0(),{Option:S2,DualOptions:r1}=s0(),{suggestSimilar:k2}=P2();class uF extends l1{constructor(D){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=D||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(u)=>w.stdout.write(u),writeErr:(u)=>w.stderr.write(u),outputError:(u,F)=>F(u),getOutHelpWidth:()=>w.stdout.isTTY?w.stdout.columns:void 0,getErrHelpWidth:()=>w.stderr.isTTY?w.stderr.columns:void 0,getOutHasColors:()=>DF()??(w.stdout.isTTY&&w.stdout.hasColors?.()),getErrHasColors:()=>DF()??(w.stderr.isTTY&&w.stderr.hasColors?.()),stripColor:(u)=>a1(u)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(D){return this._outputConfiguration=D._outputConfiguration,this._helpOption=D._helpOption,this._helpCommand=D._helpCommand,this._helpConfiguration=D._helpConfiguration,this._exitCallback=D._exitCallback,this._storeOptionsAsProperties=D._storeOptionsAsProperties,this._combineFlagAndOptionalValue=D._combineFlagAndOptionalValue,this._allowExcessArguments=D._allowExcessArguments,this._enablePositionalOptions=D._enablePositionalOptions,this._showHelpAfterError=D._showHelpAfterError,this._showSuggestionAfterError=D._showSuggestionAfterError,this}_getCommandAndAncestors(){let D=[];for(let u=this;u;u=u.parent)D.push(u);return D}command(D,u,F){let C=u,B=F;if(typeof C==="object"&&C!==null)B=C,C=null;B=B||{};let[,$,E]=D.match(/([^ ]+) *(.*)/),Q=this.createCommand($);if(C)Q.description(C),Q._executableHandler=!0;if(B.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(B.noHelp||B.hidden),Q._executableFile=B.executableFile||null,E)Q.arguments(E);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),C)return this;return Q}createCommand(D){return new uF(D)}createHelp(){return Object.assign(new n1,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 p1(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}'. +(Did you mean ${C[0]}?)`;return""}l1.suggestSimilar=d1});var x2=l((t1)=>{var i1=cD("events").EventEmitter,t0=cD("child_process"),yD=cD("path"),u0=cD("fs"),w=cD("process"),{Argument:n1,humanReadableArgName:a1}=D0(),{CommanderError:e0}=_u(),{Help:r1,stripColor:o1}=o0(),{Option:S2,DualOptions:s1}=s0(),{suggestSimilar:k2}=P2();class uF extends i1{constructor(D){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=D||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(u)=>w.stdout.write(u),writeErr:(u)=>w.stderr.write(u),outputError:(u,F)=>F(u),getOutHelpWidth:()=>w.stdout.isTTY?w.stdout.columns:void 0,getErrHelpWidth:()=>w.stderr.isTTY?w.stderr.columns:void 0,getOutHasColors:()=>DF()??(w.stdout.isTTY&&w.stdout.hasColors?.()),getErrHasColors:()=>DF()??(w.stderr.isTTY&&w.stderr.hasColors?.()),stripColor:(u)=>o1(u)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(D){return this._outputConfiguration=D._outputConfiguration,this._helpOption=D._helpOption,this._helpCommand=D._helpCommand,this._helpConfiguration=D._helpConfiguration,this._exitCallback=D._exitCallback,this._storeOptionsAsProperties=D._storeOptionsAsProperties,this._combineFlagAndOptionalValue=D._combineFlagAndOptionalValue,this._allowExcessArguments=D._allowExcessArguments,this._enablePositionalOptions=D._enablePositionalOptions,this._showHelpAfterError=D._showHelpAfterError,this._showSuggestionAfterError=D._showSuggestionAfterError,this}_getCommandAndAncestors(){let D=[];for(let u=this;u;u=u.parent)D.push(u);return D}command(D,u,F){let C=u,B=F;if(typeof C==="object"&&C!==null)B=C,C=null;B=B||{};let[,$,E]=D.match(/([^ ]+) *(.*)/),Q=this.createCommand($);if(C)Q.description(C),Q._executableHandler=!0;if(B.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(B.noHelp||B.hidden),Q._executableFile=B.executableFile||null,E)Q.arguments(E);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),C)return this;return Q}createCommand(D){return new uF(D)}createHelp(){return Object.assign(new r1,this.configureHelp())}configureHelp(D){if(D===void 0)return this._helpConfiguration;return this._helpConfiguration=D,this}configureOutput(D){if(D===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...D},this}showHelpAfterError(D=!0){if(typeof D!=="string")D=!!D;return this._showHelpAfterError=D,this}showSuggestionAfterError(D=!0){return this._showSuggestionAfterError=!!D,this}addCommand(D,u){if(!D._name)throw new Error(`Command passed to .addCommand() must have a name +- specify the name in Command constructor or using .name()`);if(u=u||{},u.isDefault)this._defaultCommandName=D._name;if(u.noHelp||u.hidden)D._hidden=!0;return this._registerCommand(D),D.parent=this,D._checkForBrokenPassThrough(),this}createArgument(D,u){return new n1(D,u)}argument(D,u,F,C){let B=this.createArgument(D,u);if(typeof F==="function")B.default(C).argParser(F);else B.default(F);return this.addArgument(B),this}arguments(D){return D.trim().split(/ +/).forEach((u)=>{this.argument(u)}),this}addArgument(D){let u=this.registeredArguments.slice(-1)[0];if(u?.variadic)throw new Error(`only the last argument can be variadic '${u.name()}'`);if(D.required&&D.defaultValue!==void 0&&D.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${D.name()}'`);return this.registeredArguments.push(D),this}helpCommand(D,u){if(typeof D==="boolean"){if(this._addImplicitHelpCommand=D,D&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let F=D??"help [command]",[,C,B]=F.match(/([^ ]+) *(.*)/),$=u??"display help for command",E=this.createCommand(C);if(E.helpOption(!1),B)E.arguments(B);if($)E.description($);if(this._addImplicitHelpCommand=!0,this._helpCommand=E,D||u)this._initCommandGroup(E);return this}addHelpCommand(D,u){if(typeof D!=="object")return this.helpCommand(D,u),this;return this._addImplicitHelpCommand=!0,this._helpCommand=D,this._initCommandGroup(D),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(D,u){let F=["preSubcommand","preAction","postAction"];if(!F.includes(D))throw new Error(`Unexpected value for event passed to hook : '${D}'. Expecting one of '${F.join("', '")}'`);if(this._lifeCycleHooks[D])this._lifeCycleHooks[D].push(u);else this._lifeCycleHooks[D]=[u];return this}exitOverride(D){if(D)this._exitCallback=D;else this._exitCallback=(u)=>{if(u.code!=="commander.executeSubCommandAsync")throw u};return this}_exit(D,u,F){if(this._exitCallback)this._exitCallback(new e0(D,u,F));w.exit(D)}action(D){let u=(F)=>{let C=this.registeredArguments.length,B=F.slice(0,C);if(this._storeOptionsAsProperties)B[C]=this;else B[C]=this.opts();return B.push(this),D.apply(this,B)};return this._actionHandler=u,this}createOption(D,u){return new S2(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 S2)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let $=this.createOption(u,F);if($.makeOptionMandatory(!!D.mandatory),typeof C==="function")$.default(B).argParser(C);else if(C instanceof RegExp){let E=C;C=(Q,X)=>{let Z=E.exec(Q);return Z?Z[0]:X},$.default(B).argParser(C)}else $.default(C);return this.addOption($)}option(D,u,F,C){return this._optionEx({},D,u,F,C)}requiredOption(D,u,F,C){return this._optionEx({mandatory:!0},D,u,F,C)}combineFlagAndOptionalValue(D=!0){return this._combineFlagAndOptionalValue=!!D,this}allowUnknownOption(D=!0){return this._allowUnknownOption=!!D,this}allowExcessArguments(D=!0){return this._allowExcessArguments=!!D,this}enablePositionalOptions(D=!0){return this._enablePositionalOptions=!!D,this}passThroughOptions(D=!0){return this._passThroughOptions=!!D,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(D=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!D,this}getOptionValue(D){if(this._storeOptionsAsProperties)return this[D];return this._optionValues[D]}setOptionValue(D,u){return this.setOptionValueWithSource(D,u,void 0)}setOptionValueWithSource(D,u,F){if(this._storeOptionsAsProperties)this[D]=u;else this._optionValues[D]=u;return this._optionValueSources[D]=F,this}getOptionValueSource(D){return this._optionValueSources[D]}getOptionValueSourceWithGlobals(D){let u;return this._getCommandAndAncestors().forEach((F)=>{if(F.getOptionValueSource(D)!==void 0)u=F.getOptionValueSource(D)}),u}_prepareUserArgs(D,u){if(D!==void 0&&!Array.isArray(D))throw new Error("first parameter to parse must be array or undefined");if(u=u||{},D===void 0&&u.from===void 0){if(w.versions?.electron)u.from="electron";let C=w.execArgv??[];if(C.includes("-e")||C.includes("--eval")||C.includes("-p")||C.includes("--print"))u.from="eval"}if(D===void 0)D=w.argv;this.rawArgs=D.slice();let F;switch(u.from){case void 0:case"node":this._scriptPath=D[1],F=D.slice(2);break;case"electron":if(w.defaultApp)this._scriptPath=D[1],F=D.slice(2);else F=D.slice(1);break;case"user":F=D.slice(0);break;case"eval":F=D.slice(1);break;default:throw new Error(`unexpected parse option { from: '${u.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",F}parse(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return this._parseCommand([],F),this}async parseAsync(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return await this._parseCommand([],F),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true. - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(D,u,F){if(u0.existsSync(D))return;let C=u?`searched for local subcommand relative to directory '${u}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",B=`'${D}' does not exist @@ -22,11 +22,11 @@ Expecting one of '${F.join("', '")}'`);if(this._lifeCycleHooks[D])this._lifeCycl - ${C}`;throw new Error(B)}_executeSubCommand(D,u){u=u.slice();let F=!1,C=[".js",".ts",".tsx",".mjs",".cjs"];function B(Z,J){let V=yD.resolve(Z,J);if(u0.existsSync(V))return V;if(C.includes(yD.extname(J)))return;let H=C.find((z)=>u0.existsSync(`${V}${z}`));if(H)return`${V}${H}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let $=D._executableFile||`${this._name}-${D._name}`,E=this._executableDir||"";if(this._scriptPath){let Z;try{Z=u0.realpathSync(this._scriptPath)}catch{Z=this._scriptPath}E=yD.resolve(yD.dirname(Z),E)}if(E){let Z=B(E,$);if(!Z&&!D._executableFile&&this._scriptPath){let J=yD.basename(this._scriptPath,yD.extname(this._scriptPath));if(J!==this._name)Z=B(E,`${J}-${D._name}`)}$=Z||$}F=C.includes(yD.extname($));let Q;if(w.platform!=="win32")if(F)u.unshift($),u=v2(w.execArgv).concat(u),Q=t0.spawn(w.argv[0],u,{stdio:"inherit"});else Q=t0.spawn($,u,{stdio:"inherit"});else this._checkForMissingExecutable($,E,D._name),u.unshift($),u=v2(w.execArgv).concat(u),Q=t0.spawn(w.execPath,u,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{w.on(J,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(J)})});let X=this._exitCallback;Q.on("close",(Z)=>{if(Z=Z??1,!X)w.exit(Z);else X(new e0(Z,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(Z)=>{if(Z.code==="ENOENT")this._checkForMissingExecutable($,E,D._name);else if(Z.code==="EACCES")throw new Error(`'${$}' not executable`);if(!X)w.exit(1);else{let J=new e0(1,"commander.executeSubCommandAsync","(error)");J.nestedError=Z,X(J)}}),this.runningCommand=Q}_dispatchSubcommand(D,u,F){let C=this._findCommand(D);if(!C)this.help({error:!0});C._prepareForParse();let B;return B=this._chainOrCallSubCommandHook(B,C,"preSubcommand"),B=this._chainOrCall(B,()=>{if(C._executableHandler)this._executeSubCommand(C,u.concat(F));else return C._parseCommand(u,F)}),B}_dispatchHelpCommand(D){if(!D)this.help();let u=this._findCommand(D);if(u&&!u._executableHandler)u.help();return this._dispatchSubcommand(D,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((D,u)=>{if(D.required&&this.args[u]==null)this.missingArgument(D.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let D=(F,C,B)=>{let $=C;if(C!==null&&F.parseArg){let E=`error: command-argument value '${C}' is invalid for argument '${F.name()}'.`;$=this._callParseArg(F,C,B,E)}return $};this._checkNumberOfArguments();let u=[];this.registeredArguments.forEach((F,C)=>{let B=F.defaultValue;if(F.variadic){if(C{return D(F,E,$)},F.defaultValue)}else if(B===void 0)B=[]}else if(Cu());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(X2&&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;FObject.assign(D,u.opts()),{})}error(D,u){if(this._outputConfiguration.outputError(`${D} `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError} `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(` -`),this.outputHelp({error:!0});let F=u||{},C=F.exitCode||1,B=F.code||"commander.error";this._exit(C,B,D)}_parseOptionsEnv(){this.options.forEach((D)=>{if(D.envVar&&D.envVar in w.env){let u=D.attributeName();if(this.getOptionValue(u)===void 0||["default","config","env"].includes(this.getOptionValueSource(u)))if(D.required||D.optional)this.emit(`optionEnv:${D.name()}`,w.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new r1(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=k2(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=k2(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 i1(F)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?u:[]).join(" ")}return this._usage=D,this}name(D){if(D===void 0)return this._name;return this._name=D,this}helpGroup(D){if(D===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=D,this}commandsGroup(D){if(D===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=D,this}optionsGroup(D){if(D===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=D,this}_initOptionGroup(D){if(this._defaultOptionGroup&&!D.helpGroupHeading)D.helpGroup(this._defaultOptionGroup)}_initCommandGroup(D){if(this._defaultCommandGroup&&!D.helpGroup())D.helpGroup(this._defaultCommandGroup)}nameFromFilename(D){return this._name=yD.basename(D,yD.extname(D)),this}executableDir(D){if(D===void 0)return this._executableDir;return this._executableDir=D,this}helpInformation(D){let u=this.createHelp(),F=this._getOutputContext(D);u.prepareContext({error:F.error,helpWidth:F.helpWidth,outputHasColors:F.hasColors});let C=u.formatHelp(this,u);if(F.hasColors)return C;return this._outputConfiguration.stripColor(C)}_getOutputContext(D){D=D||{};let u=!!D.error,F,C,B;if(u)F=(E)=>this._outputConfiguration.writeErr(E),C=this._outputConfiguration.getErrHasColors(),B=this._outputConfiguration.getErrHelpWidth();else F=(E)=>this._outputConfiguration.writeOut(E),C=this._outputConfiguration.getOutHasColors(),B=this._outputConfiguration.getOutHelpWidth();return{error:u,write:(E)=>{if(!C)E=this._outputConfiguration.stripColor(E);return F(E)},hasColors:C,helpWidth:B}}outputHelp(D){let u;if(typeof D==="function")u=D,D=void 0;let F=this._getOutputContext(D),C={error:F.error,write:F.write,command:this};this._getCommandAndAncestors().reverse().forEach(($)=>$.emit("beforeAllHelp",C)),this.emit("beforeHelp",C);let B=this.helpInformation({error:F.error});if(u){if(B=u(B),typeof B!=="string"&&!Buffer.isBuffer(B))throw new Error("outputHelp callback must return a string or a Buffer")}if(F.write(B),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",C),this._getCommandAndAncestors().forEach(($)=>$.emit("afterAllHelp",C))}helpOption(D,u){if(typeof D==="boolean"){if(D){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(D??"-h, --help",u??"display help for command"),D||u)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(D){return this._helpOption=D,this._initOptionGroup(D),this}help(D){this.outputHelp(D);let u=Number(w.exitCode??0);if(u===0&&D&&typeof D!=="function"&&D.error)u=1;this._exit(u,"commander.help","(outputHelp)")}addHelpText(D,u){let F=["beforeAll","before","after","afterAll"];if(!F.includes(D))throw new Error(`Unexpected value for position to addHelpText. +`),this.outputHelp({error:!0});let F=u||{},C=F.exitCode||1,B=F.code||"commander.error";this._exit(C,B,D)}_parseOptionsEnv(){this.options.forEach((D)=>{if(D.envVar&&D.envVar in w.env){let u=D.attributeName();if(this.getOptionValue(u)===void 0||["default","config","env"].includes(this.getOptionValueSource(u)))if(D.required||D.optional)this.emit(`optionEnv:${D.name()}`,w.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new s1(this.options),u=(F)=>{return this.getOptionValue(F)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(F))};this.options.filter((F)=>F.implied!==void 0&&u(F.attributeName())&&D.valueFromOption(this.getOptionValue(F.attributeName()),F)).forEach((F)=>{Object.keys(F.implied).filter((C)=>!u(C)).forEach((C)=>{this.setOptionValueWithSource(C,F.implied[C],"implied")})})}missingArgument(D){let u=`error: missing required argument '${D}'`;this.error(u,{code:"commander.missingArgument"})}optionMissingArgument(D){let u=`error: option '${D.flags}' argument missing`;this.error(u,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(D){let u=`error: required option '${D.flags}' not specified`;this.error(u,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(D,u){let F=($)=>{let E=$.attributeName(),Q=this.getOptionValue(E),X=this.options.find((J)=>J.negate&&E===J.attributeName()),Z=this.options.find((J)=>!J.negate&&E===J.attributeName());if(X&&(X.presetArg===void 0&&Q===!1||X.presetArg!==void 0&&Q===X.presetArg))return X;return Z||$},C=($)=>{let E=F($),Q=E.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${E.envVar}'`;return`option '${E.flags}'`},B=`error: ${C(D)} cannot be used with ${C(u)}`;this.error(B,{code:"commander.conflictingOption"})}unknownOption(D){if(this._allowUnknownOption)return;let u="";if(D.startsWith("--")&&this._showSuggestionAfterError){let C=[],B=this;do{let $=B.createHelp().visibleOptions(B).filter((E)=>E.long).map((E)=>E.long);C=C.concat($),B=B.parent}while(B&&!B._enablePositionalOptions);u=k2(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=k2(D,C)}let F=`error: unknown command '${D}'${u}`;this.error(F,{code:"commander.unknownCommand"})}version(D,u,F){if(D===void 0)return this._version;this._version=D,u=u||"-V, --version",F=F||"output the version number";let C=this.createOption(u,F);return this._versionOptionName=C.attributeName(),this._registerOption(C),this.on("option:"+C.name(),()=>{this._outputConfiguration.writeOut(`${D} +`),this._exit(0,"commander.version",D)}),this}description(D,u){if(D===void 0&&u===void 0)return this._description;if(this._description=D,u)this._argsDescription=u;return this}summary(D){if(D===void 0)return this._summary;return this._summary=D,this}alias(D){if(D===void 0)return this._aliases[0];let u=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)u=this.commands[this.commands.length-1];if(D===u._name)throw new Error("Command alias can't be the same as its name");let F=this.parent?._findCommand(D);if(F){let C=[F.name()].concat(F.aliases()).join("|");throw new Error(`cannot add alias '${D}' to command '${this.name()}' as already have command '${C}'`)}return u._aliases.push(D),this}aliases(D){if(D===void 0)return this._aliases;return D.forEach((u)=>this.alias(u)),this}usage(D){if(D===void 0){if(this._usage)return this._usage;let u=this.registeredArguments.map((F)=>{return a1(F)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?u:[]).join(" ")}return this._usage=D,this}name(D){if(D===void 0)return this._name;return this._name=D,this}helpGroup(D){if(D===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=D,this}commandsGroup(D){if(D===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=D,this}optionsGroup(D){if(D===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=D,this}_initOptionGroup(D){if(this._defaultOptionGroup&&!D.helpGroupHeading)D.helpGroup(this._defaultOptionGroup)}_initCommandGroup(D){if(this._defaultCommandGroup&&!D.helpGroup())D.helpGroup(this._defaultCommandGroup)}nameFromFilename(D){return this._name=yD.basename(D,yD.extname(D)),this}executableDir(D){if(D===void 0)return this._executableDir;return this._executableDir=D,this}helpInformation(D){let u=this.createHelp(),F=this._getOutputContext(D);u.prepareContext({error:F.error,helpWidth:F.helpWidth,outputHasColors:F.hasColors});let C=u.formatHelp(this,u);if(F.hasColors)return C;return this._outputConfiguration.stripColor(C)}_getOutputContext(D){D=D||{};let u=!!D.error,F,C,B;if(u)F=(E)=>this._outputConfiguration.writeErr(E),C=this._outputConfiguration.getErrHasColors(),B=this._outputConfiguration.getErrHelpWidth();else F=(E)=>this._outputConfiguration.writeOut(E),C=this._outputConfiguration.getOutHasColors(),B=this._outputConfiguration.getOutHelpWidth();return{error:u,write:(E)=>{if(!C)E=this._outputConfiguration.stripColor(E);return F(E)},hasColors:C,helpWidth:B}}outputHelp(D){let u;if(typeof D==="function")u=D,D=void 0;let F=this._getOutputContext(D),C={error:F.error,write:F.write,command:this};this._getCommandAndAncestors().reverse().forEach(($)=>$.emit("beforeAllHelp",C)),this.emit("beforeHelp",C);let B=this.helpInformation({error:F.error});if(u){if(B=u(B),typeof B!=="string"&&!Buffer.isBuffer(B))throw new Error("outputHelp callback must return a string or a Buffer")}if(F.write(B),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",C),this._getCommandAndAncestors().forEach(($)=>$.emit("afterAllHelp",C))}helpOption(D,u){if(typeof D==="boolean"){if(D){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(D??"-h, --help",u??"display help for command"),D||u)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(D){return this._helpOption=D,this._initOptionGroup(D),this}help(D){this.outputHelp(D);let u=Number(w.exitCode??0);if(u===0&&D&&typeof D!=="function"&&D.error)u=1;this._exit(u,"commander.help","(outputHelp)")}addHelpText(D,u){let F=["beforeAll","before","after","afterAll"];if(!F.includes(D))throw new Error(`Unexpected value for position to addHelpText. Expecting one of '${F.join("', '")}'`);let C=`${D}Help`;return this.on(C,(B)=>{let $;if(typeof u==="function")$=u({error:B.error,command:B.command});else $=u;if($)B.write(`${$} -`)}),this}_outputHelpIfRequested(D){let u=this._getHelpOption();if(u&&D.find((C)=>u.is(C)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function v2(D){return D.map((u)=>{if(!u.startsWith("--inspect"))return u;let F,C="127.0.0.1",B="9229",$;if(($=u.match(/^(--inspect(-brk)?)$/))!==null)F=$[1];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(F=$[1],/^\d+$/.test($[3]))B=$[3];else C=$[3];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)F=$[1],C=$[3],B=$[4];if(F&&B!=="0")return`${F}=${C}:${parseInt(B)+1}`;return u})}function DF(){if(w.env.NO_COLOR||w.env.FORCE_COLOR==="0"||w.env.FORCE_COLOR==="false")return!1;if(w.env.FORCE_COLOR||w.env.CLICOLOR_FORCE!==void 0)return!0;return}o1.Command=uF;o1.useColor=DF});var h2=l((uC)=>{var{Argument:f2}=D0(),{Command:FF}=x2(),{CommanderError:e1,InvalidArgumentError:b2}=_u(),{Help:DC}=o0(),{Option:y2}=s0();uC.program=new FF;uC.createCommand=(D)=>new FF(D);uC.createOption=(D,u)=>new y2(D,u);uC.createArgument=(D,u)=>new f2(D,u);uC.Command=FF;uC.Option=y2;uC.Argument=f2;uC.Help=DC;uC.CommanderError=e1;uC.InvalidArgumentError=b2;uC.InvalidOptionArgumentError=b2});var BF=l((OE,o2)=>{var CF={to(D,u){if(!u)return`\x1B[${D+1}G`;return`\x1B[${u+1};${D+1}H`},move(D,u){let F="";if(D<0)F+=`\x1B[${-D}D`;else if(D>0)F+=`\x1B[${D}C`;if(u<0)F+=`\x1B[${-u}A`;else if(u>0)F+=`\x1B[${u}B`;return F},up:(D=1)=>`\x1B[${D}A`,down:(D=1)=>`\x1B[${D}B`,forward:(D=1)=>`\x1B[${D}C`,backward:(D=1)=>`\x1B[${D}D`,nextLine:(D=1)=>"\x1B[E".repeat(D),prevLine:(D=1)=>"\x1B[F".repeat(D),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},UC={up:(D=1)=>"\x1B[S".repeat(D),down:(D=1)=>"\x1B[T".repeat(D)},GC={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{var C0=process||{},s2=C0.argv||[],F0=C0.env||{},WC=!(!!F0.NO_COLOR||s2.includes("--no-color"))&&(!!F0.FORCE_COLOR||s2.includes("--color")||C0.platform==="win32"||(C0.stdout||{}).isTTY&&F0.TERM!=="dumb"||!!F0.CI),_C=(D,u,F=D)=>(C)=>{let B=""+C,$=B.indexOf(u,D.length);return~$?D+jC(B,u,F,$)+u:D+B+u},jC=(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($)},t2=(D=WC)=>{let u=D?_C:()=>String;return{isColorSupported:D,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};EF.exports=t2();EF.exports.createColors=t2});var P3=l((LF,IF)=>{(function(D,u){typeof LF==="object"&&typeof IF!=="undefined"?IF.exports=u():typeof define==="function"&&define.amd?define(u):(D=typeof globalThis!=="undefined"?globalThis:D||self,D.tinycolor=u())})(LF,function(){function D(Y){return D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},D(Y)}var u=/^\s+/,F=/\s+$/;function C(Y,K){if(Y=Y?Y:"",K=K||{},Y instanceof C)return Y;if(!(this instanceof C))return new C(Y,K);var q=B(Y);if(this._originalInput=Y,this._r=q.r,this._g=q.g,this._b=q.b,this._a=q.a,this._roundA=Math.round(100*this._a)/100,this._format=K.format||q.format,this._gradientType=K.gradientType,this._r<1)this._r=Math.round(this._r);if(this._g<1)this._g=Math.round(this._g);if(this._b<1)this._b=Math.round(this._b);this._ok=q.ok}C.prototype={isDark:function Y(){return this.getBrightness()<128},isLight:function Y(){return!this.isDark()},isValid:function Y(){return this._ok},getOriginalInput:function Y(){return this._originalInput},getFormat:function Y(){return this._format},getAlpha:function Y(){return this._a},getBrightness:function Y(){var K=this.toRgb();return(K.r*299+K.g*587+K.b*114)/1000},getLuminance:function Y(){var K=this.toRgb(),q,A,_,W,T,P;if(q=K.r/255,A=K.g/255,_=K.b/255,q<=0.03928)W=q/12.92;else W=Math.pow((q+0.055)/1.055,2.4);if(A<=0.03928)T=A/12.92;else T=Math.pow((A+0.055)/1.055,2.4);if(_<=0.03928)P=_/12.92;else P=Math.pow((_+0.055)/1.055,2.4);return 0.2126*W+0.7152*T+0.0722*P},setAlpha:function Y(K){return this._a=W2(K),this._roundA=Math.round(100*this._a)/100,this},toHsv:function Y(){var K=X(this._r,this._g,this._b);return{h:K.h*360,s:K.s,v:K.v,a:this._a}},toHsvString:function Y(){var K=X(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.v*100);return this._a==1?"hsv("+q+", "+A+"%, "+_+"%)":"hsva("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHsl:function Y(){var K=E(this._r,this._g,this._b);return{h:K.h*360,s:K.s,l:K.l,a:this._a}},toHslString:function Y(){var K=E(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.l*100);return this._a==1?"hsl("+q+", "+A+"%, "+_+"%)":"hsla("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHex:function Y(K){return J(this._r,this._g,this._b,K)},toHexString:function Y(K){return"#"+this.toHex(K)},toHex8:function Y(K){return V(this._r,this._g,this._b,this._a,K)},toHex8String:function Y(K){return"#"+this.toHex8(K)},toRgb:function Y(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function Y(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function Y(){return{r:Math.round(k(this._r,255)*100)+"%",g:Math.round(k(this._g,255)*100)+"%",b:Math.round(k(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function Y(){return this._a==1?"rgb("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%)":"rgba("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%, "+this._roundA+")"},toName:function Y(){if(this._a===0)return"transparent";if(this._a<1)return!1;return G2[J(this._r,this._g,this._b,!0)]||!1},toFilter:function Y(K){var q="#"+H(this._r,this._g,this._b,this._a),A=q,_=this._gradientType?"GradientType = 1, ":"";if(K){var W=C(K);A="#"+H(W._r,W._g,W._b,W._a)}return"progid:DXImageTransform.Microsoft.gradient("+_+"startColorstr="+q+",endColorstr="+A+")"},toString:function Y(K){var q=!!K;K=K||this._format;var A=!1,_=this._a<1&&this._a>=0,W=!q&&_&&(K==="hex"||K==="hex6"||K==="hex3"||K==="hex4"||K==="hex8"||K==="name");if(W){if(K==="name"&&this._a===0)return this.toName();return this.toRgbString()}if(K==="rgb")A=this.toRgbString();if(K==="prgb")A=this.toPercentageRgbString();if(K==="hex"||K==="hex6")A=this.toHexString();if(K==="hex3")A=this.toHexString(!0);if(K==="hex4")A=this.toHex8String(!0);if(K==="hex8")A=this.toHex8String();if(K==="name")A=this.toName();if(K==="hsl")A=this.toHslString();if(K==="hsv")A=this.toHsvString();return A||this.toHexString()},clone:function Y(){return C(this.toString())},_applyModification:function Y(K,q){var A=K.apply(null,[this].concat([].slice.call(q)));return this._r=A._r,this._g=A._g,this._b=A._b,this.setAlpha(A._a),this},lighten:function Y(){return this._applyModification(j,arguments)},brighten:function Y(){return this._applyModification(I,arguments)},darken:function Y(){return this._applyModification(O,arguments)},desaturate:function Y(){return this._applyModification(z,arguments)},saturate:function Y(){return this._applyModification(U,arguments)},greyscale:function Y(){return this._applyModification(G,arguments)},spin:function Y(){return this._applyModification(R,arguments)},_applyCombination:function Y(K,q){return K.apply(null,[this].concat([].slice.call(q)))},analogous:function Y(){return this._applyCombination(ZD,arguments)},complement:function Y(){return this._applyCombination(L,arguments)},monochromatic:function Y(){return this._applyCombination(SD,arguments)},splitcomplement:function Y(){return this._applyCombination(y,arguments)},triad:function Y(){return this._applyCombination(S,[3])},tetrad:function Y(){return this._applyCombination(S,[4])}},C.fromRatio=function(Y,K){if(D(Y)=="object"){var q={};for(var A in Y)if(Y.hasOwnProperty(A))if(A==="a")q[A]=Y[A];else q[A]=Gu(Y[A]);Y=q}return C(Y,K)};function B(Y){var K={r:0,g:0,b:0},q=1,A=null,_=null,W=null,T=!1,P=!1;if(typeof Y=="string")Y=z1(Y);if(D(Y)=="object"){if(fD(Y.r)&&fD(Y.g)&&fD(Y.b))K=$(Y.r,Y.g,Y.b),T=!0,P=String(Y.r).substr(-1)==="%"?"prgb":"rgb";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.v))A=Gu(Y.s),_=Gu(Y.v),K=Z(Y.h,A,_),T=!0,P="hsv";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.l))A=Gu(Y.s),W=Gu(Y.l),K=Q(Y.h,A,W),T=!0,P="hsl";if(Y.hasOwnProperty("a"))q=Y.a}return q=W2(q),{ok:T,format:Y.format||P,r:Math.min(255,Math.max(K.r,0)),g:Math.min(255,Math.max(K.g,0)),b:Math.min(255,Math.max(K.b,0)),a:q}}function $(Y,K,q){return{r:k(Y,255)*255,g:k(K,255)*255,b:k(q,255)*255}}function E(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=(A+_)/2;if(A==_)W=T=0;else{var m=A-_;switch(T=P>0.5?m/(2-A-_):m/(A+_),A){case Y:W=(K-q)/m+(K1)ID-=1;if(ID<0.16666666666666666)return AD+(Wu-AD)*6*ID;if(ID<0.5)return Wu;if(ID<0.6666666666666666)return AD+(Wu-AD)*(0.6666666666666666-ID)*6;return AD}if(K===0)A=_=W=q;else{var P=q<0.5?q*(1+K):q+K-q*K,m=2*q-P;A=T(m,P,Y+0.3333333333333333),_=T(m,P,Y),W=T(m,P,Y-0.3333333333333333)}return{r:A*255,g:_*255,b:W*255}}function X(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=A,m=A-_;if(T=A===0?0:m/A,A==_)W=0;else{switch(A){case Y:W=(K-q)/m+(K>1)+720)%360;--K;)A.h=(A.h+_)%360,W.push(C(A));return W}function SD(Y,K){K=K||6;var q=C(Y).toHsv(),A=q.h,_=q.s,W=q.v,T=[],P=1/K;while(K--)T.push(C({h:A,s:_,v:W})),W=(W+P)%1;return T}C.mix=function(Y,K,q){q=q===0?0:q||50;var A=C(Y).toRgb(),_=C(K).toRgb(),W=q/100,T={r:(_.r-A.r)*W+A.r,g:(_.g-A.g)*W+A.g,b:(_.b-A.b)*W+A.b,a:(_.a-A.a)*W+A.a};return C(T)},C.readability=function(Y,K){var q=C(Y),A=C(K);return(Math.max(q.getLuminance(),A.getLuminance())+0.05)/(Math.min(q.getLuminance(),A.getLuminance())+0.05)},C.isReadable=function(Y,K,q){var A=C.readability(Y,K),_,W;switch(W=!1,_=U1(q),_.level+_.size){case"AAsmall":case"AAAlarge":W=A>=4.5;break;case"AAlarge":W=A>=3;break;case"AAAsmall":W=A>=7;break}return W},C.mostReadable=function(Y,K,q){var A=null,_=0,W,T,P,m;q=q||{},T=q.includeFallbackColors,P=q.level,m=q.size;for(var AD=0;AD_)_=W,A=C(K[AD]);if(C.isReadable(Y,A,{level:P,size:m})||!T)return A;else return q.includeFallbackColors=!1,C.mostReadable(Y,["#fff","#000"],q)};var oD=C.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G2=C.hexNames=V1(oD);function V1(Y){var K={};for(var q in Y)if(Y.hasOwnProperty(q))K[Y[q]]=q;return K}function W2(Y){if(Y=parseFloat(Y),isNaN(Y)||Y<0||Y>1)Y=1;return Y}function k(Y,K){if(H1(Y))Y="100%";var q=A1(Y);if(Y=Math.min(K,Math.max(0,parseFloat(Y))),q)Y=parseInt(Y*K,10)/100;if(Math.abs(Y-K)<0.000001)return 1;return Y%K/parseFloat(K)}function eu(Y){return Math.min(1,Math.max(0,Y))}function JD(Y){return parseInt(Y,16)}function H1(Y){return typeof Y=="string"&&Y.indexOf(".")!=-1&&parseFloat(Y)===1}function A1(Y){return typeof Y==="string"&&Y.indexOf("%")!=-1}function RD(Y){return Y.length==1?"0"+Y:""+Y}function Gu(Y){if(Y<=1)Y=Y*100+"%";return Y}function _2(Y){return Math.round(parseFloat(Y)*255).toString(16)}function j2(Y){return JD(Y)/255}var LD=function(){var Y="[-\\+]?\\d+%?",K="[-\\+]?\\d*\\.\\d+%?",q="(?:"+K+")|(?:"+Y+")",A="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?",_="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?";return{CSS_UNIT:new RegExp(q),rgb:new RegExp("rgb"+A),rgba:new RegExp("rgba"+_),hsl:new RegExp("hsl"+A),hsla:new RegExp("hsla"+_),hsv:new RegExp("hsv"+A),hsva:new RegExp("hsva"+_),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function fD(Y){return!!LD.CSS_UNIT.exec(Y)}function z1(Y){Y=Y.replace(u,"").replace(F,"").toLowerCase();var K=!1;if(oD[Y])Y=oD[Y],K=!0;else if(Y=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var q;if(q=LD.rgb.exec(Y))return{r:q[1],g:q[2],b:q[3]};if(q=LD.rgba.exec(Y))return{r:q[1],g:q[2],b:q[3],a:q[4]};if(q=LD.hsl.exec(Y))return{h:q[1],s:q[2],l:q[3]};if(q=LD.hsla.exec(Y))return{h:q[1],s:q[2],l:q[3],a:q[4]};if(q=LD.hsv.exec(Y))return{h:q[1],s:q[2],v:q[3]};if(q=LD.hsva.exec(Y))return{h:q[1],s:q[2],v:q[3],a:q[4]};if(q=LD.hex8.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),a:j2(q[4]),format:K?"name":"hex8"};if(q=LD.hex6.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),format:K?"name":"hex"};if(q=LD.hex4.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),a:j2(q[4]+""+q[4]),format:K?"name":"hex8"};if(q=LD.hex3.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),format:K?"name":"hex"};return!1}function U1(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 y3=l((Y5,b3)=>{var Iu=P3(),x3={r:256,g:256,b:256,a:1},f3={h:360,s:1,v:1,a:1};function OF(D,u,F){let C={};for(let B in D)if(D.hasOwnProperty(B))C[B]=F===0?0:(u[B]-D[B])/F;return C}function TF(D,u,F,C){let B={};for(let $ in u)if(u.hasOwnProperty($))B[$]=D[$]*F+u[$],B[$]=B[$]<0?B[$]+C[$]:C[$]!==1?B[$]%C[$]:B[$];return B}function NF(D,u,F){let C=D.color.toRgb(),B=u.color.toRgb(),$=OF(C,B,F),E=[D.color];for(let Q=1;Q$.h&&B.h-$.h>180;E=C==="long"&&J||C==="short"&&!J}let Q=OF(B,$,F),X=[D.color],Z;if(B.h<=$.h&&!E||B.h>=$.h&&E)Z=$.h-B.h;else if(E)Z=360-$.h+B.h;else Z=360-B.h+$.h;Q.h=Math.pow(-1,E?1:0)*Math.abs(Z)/F;for(let J=1;J1)throw new Error("Position must be between 0 and 1");let B,$;for(let X=0,Z=D.length;X=D[X].pos&&u{let Q=$.pos!==void 0;if(u^Q)throw new Error("Cannot mix positionned and not posionned color stops");if(Q){let X=$.color!==void 0;if(!X&&(B||E===0||E===F-1))throw new Error("Cannot define two consecutive position-only stops");if(B=!X,$={color:X?Iu($.color):null,colorLess:!X,pos:$.pos},$.pos<0||$.pos>1)throw new Error("Color stops positions must be between 0 and 1");else if($.pos{D.push({color:F.color,pos:F.pos/2})}),this.stops.slice(0,-1).forEach((F)=>{u.push({color:F.color,pos:1-F.pos/2})}),new K0(D.concat(u.reverse()))}rgb(D){let u=k3(this.stops,D),F=[];this.stops.forEach((C,B)=>{if(C.colorLess)C.color=NF(this.stops[B-1],this.stops[B+1],2)[1]});for(let C=0,B=this.stops.length;C{if(B.colorLess)B.color=S3(this.stops[$-1],this.stops[$+1],2,u)[1]});for(let B=0,$=this.stops.length;B<$-1;B++){let E=S3(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 v3(this.stops,D,"toRgb",x3)}hsvAt(D){return v3(this.stops,D,"toHsv",f3)}}b3.exports=function(D){if(arguments.length===1){if(!Array.isArray(arguments[0]))throw new Error('"stops" is not an array');D=arguments[0]}else D=Array.prototype.slice.call(arguments);return new K0(D)}});var p3=l((O5,v7)=>{v7.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}});var xF=l((T5,vF)=>{var i3=p3();vF.exports=i3;vF.exports.default=i3});var t3=l((P5,s3)=>{s3.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 D8=l((S5,e3)=>{var m7=t3();e3.exports=(D)=>typeof D==="string"?D.replace(m7(),""):D});var F8=l((k5,yF)=>{var u8=(D)=>{if(Number.isNaN(D))return!1;if(D>=4352&&(D<=4447||D===9001||D===9002||11904<=D&&D<=12871&&D!==12351||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))return!0;return!1};yF.exports=u8;yF.exports.default=u8});var B8=l((v5,C8)=>{C8.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 $8=l((x5,hF)=>{var c7=D8(),d7=F8(),l7=B8(),E8=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=c7(D),D.length===0)return 0;D=D.replace(l7()," ");let u=0;for(let F=0;F=127&&C<=159)continue;if(C>=768&&C<=879)continue;if(C>65535)F++;u+=d7(C)?2:1}return u};hF.exports=E8;hF.exports.default=E8});var X8=l((f5,Q8)=>{var p7=$8();function sD(D,u){if(!D)return D;u=u||{};let F=u.align||"center";if(F==="left")return D;let C=u.split||` -`,B=u.pad||" ",$=F!=="right"?i7:n7,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=p7(Z),X=Math.max(Q,X),{str:Z,width:Q}}).map(function(Z){return new Array($(X,Z.width)+1).join(B)+Z.str}),E?D.join(C):D}sD.left=function D(u){return sD(u,{align:"left"})};sD.center=function D(u){return sD(u,{align:"center"})};sD.right=function D(u){return sD(u,{align:"right"})};Q8.exports=sD;function i7(D,u){return Math.floor((D-u)/2)}function n7(D,u){return D-u}});import{join as t,dirname as pF,basename as F$}from"path";import{homedir as M8}from"os";import{existsSync as R8,mkdirSync as V9}from"fs";import{fileURLToPath as H9}from"url";function Zu(D){return t(g,`worker-${D}.sock`)}function GD(D){V9(D,{recursive:!0})}function N8(){GD(g),GD(A9),GD(iF),GD(tD),GD(z9),GD(Qu)}function O8(){GD(_0),GD(nF)}function U9(){try{let F=cD.resolve("claude-mem/package.json");return pF(F)}catch{}let D=H9(import.meta.url),u=pF(D);for(let F=0;F<10;F++){let C=t(u,"package.json");if(R8(C)){if(cD(C).name==="claude-mem")return u}let B=pF(u);if(B===u)break;u=B}throw new Error("Cannot locate claude-mem package root. Ensure claude-mem is properly installed.")}function T8(){let D=U9(),u=t(D,"commands");if(!R8(t(u,"save.md")))throw new Error("Package commands directory missing required files");return u}var g,_0,A9,iF,tD,z9,Qu,L8,j0,Xu,nF,I8;var $D=mD(()=>{g=process.env.CLAUDE_MEM_DATA_DIR||t(M8(),".claude-mem"),_0=process.env.CLAUDE_CONFIG_DIR||t(M8(),".claude"),A9=t(g,"archives"),iF=t(g,"logs"),tD=t(g,"trash"),z9=t(g,"backups"),Qu=t(g,"chroma"),L8=t(g,"settings.json"),j0=t(g,"claude-mem.db"),Xu=t(_0,"settings.json"),nF=t(_0,"commands"),I8=t(_0,"CLAUDE.md")});import{Database as x4}from"bun:sqlite";class QD{db;constructor(){GD(g),this.db=new x4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON")}getRecentSummaries(D,u=10){return this.db.query(` +`)}),this}_outputHelpIfRequested(D){let u=this._getHelpOption();if(u&&D.find((C)=>u.is(C)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function v2(D){return D.map((u)=>{if(!u.startsWith("--inspect"))return u;let F,C="127.0.0.1",B="9229",$;if(($=u.match(/^(--inspect(-brk)?)$/))!==null)F=$[1];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(F=$[1],/^\d+$/.test($[3]))B=$[3];else C=$[3];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)F=$[1],C=$[3],B=$[4];if(F&&B!=="0")return`${F}=${C}:${parseInt(B)+1}`;return u})}function DF(){if(w.env.NO_COLOR||w.env.FORCE_COLOR==="0"||w.env.FORCE_COLOR==="false")return!1;if(w.env.FORCE_COLOR||w.env.CLICOLOR_FORCE!==void 0)return!0;return}t1.Command=uF;t1.useColor=DF});var h2=l((CC)=>{var{Argument:f2}=D0(),{Command:FF}=x2(),{CommanderError:uC,InvalidArgumentError:b2}=_u(),{Help:FC}=o0(),{Option:y2}=s0();CC.program=new FF;CC.createCommand=(D)=>new FF(D);CC.createOption=(D,u)=>new y2(D,u);CC.createArgument=(D,u)=>new f2(D,u);CC.Command=FF;CC.Option=y2;CC.Argument=f2;CC.Help=FC;CC.CommanderError=uC;CC.InvalidArgumentError=b2;CC.InvalidOptionArgumentError=b2});var BF=l((OE,o2)=>{var CF={to(D,u){if(!u)return`\x1B[${D+1}G`;return`\x1B[${u+1};${D+1}H`},move(D,u){let F="";if(D<0)F+=`\x1B[${-D}D`;else if(D>0)F+=`\x1B[${D}C`;if(u<0)F+=`\x1B[${-u}A`;else if(u>0)F+=`\x1B[${u}B`;return F},up:(D=1)=>`\x1B[${D}A`,down:(D=1)=>`\x1B[${D}B`,forward:(D=1)=>`\x1B[${D}C`,backward:(D=1)=>`\x1B[${D}D`,nextLine:(D=1)=>"\x1B[E".repeat(D),prevLine:(D=1)=>"\x1B[F".repeat(D),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},WC={up:(D=1)=>"\x1B[S".repeat(D),down:(D=1)=>"\x1B[T".repeat(D)},_C={screen:"\x1B[2J",up:(D=1)=>"\x1B[1J".repeat(D),down:(D=1)=>"\x1B[J".repeat(D),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(D){let u="";for(let F=0;F{var C0=process||{},s2=C0.argv||[],F0=C0.env||{},jC=!(!!F0.NO_COLOR||s2.includes("--no-color"))&&(!!F0.FORCE_COLOR||s2.includes("--color")||C0.platform==="win32"||(C0.stdout||{}).isTTY&&F0.TERM!=="dumb"||!!F0.CI),MC=(D,u,F=D)=>(C)=>{let B=""+C,$=B.indexOf(u,D.length);return~$?D+RC(B,u,F,$)+u:D+B+u},RC=(D,u,F,C)=>{let B="",$=0;do B+=D.substring($,C)+F,$=C+u.length,C=D.indexOf(u,$);while(~C);return B+D.substring($)},t2=(D=jC)=>{let u=D?MC:()=>String;return{isColorSupported:D,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};EF.exports=t2();EF.exports.createColors=t2});var P3=l((LF,IF)=>{(function(D,u){typeof LF==="object"&&typeof IF!=="undefined"?IF.exports=u():typeof define==="function"&&define.amd?define(u):(D=typeof globalThis!=="undefined"?globalThis:D||self,D.tinycolor=u())})(LF,function(){function D(Y){return D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},D(Y)}var u=/^\s+/,F=/\s+$/;function C(Y,K){if(Y=Y?Y:"",K=K||{},Y instanceof C)return Y;if(!(this instanceof C))return new C(Y,K);var q=B(Y);if(this._originalInput=Y,this._r=q.r,this._g=q.g,this._b=q.b,this._a=q.a,this._roundA=Math.round(100*this._a)/100,this._format=K.format||q.format,this._gradientType=K.gradientType,this._r<1)this._r=Math.round(this._r);if(this._g<1)this._g=Math.round(this._g);if(this._b<1)this._b=Math.round(this._b);this._ok=q.ok}C.prototype={isDark:function Y(){return this.getBrightness()<128},isLight:function Y(){return!this.isDark()},isValid:function Y(){return this._ok},getOriginalInput:function Y(){return this._originalInput},getFormat:function Y(){return this._format},getAlpha:function Y(){return this._a},getBrightness:function Y(){var K=this.toRgb();return(K.r*299+K.g*587+K.b*114)/1000},getLuminance:function Y(){var K=this.toRgb(),q,A,_,W,T,P;if(q=K.r/255,A=K.g/255,_=K.b/255,q<=0.03928)W=q/12.92;else W=Math.pow((q+0.055)/1.055,2.4);if(A<=0.03928)T=A/12.92;else T=Math.pow((A+0.055)/1.055,2.4);if(_<=0.03928)P=_/12.92;else P=Math.pow((_+0.055)/1.055,2.4);return 0.2126*W+0.7152*T+0.0722*P},setAlpha:function Y(K){return this._a=W2(K),this._roundA=Math.round(100*this._a)/100,this},toHsv:function Y(){var K=X(this._r,this._g,this._b);return{h:K.h*360,s:K.s,v:K.v,a:this._a}},toHsvString:function Y(){var K=X(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.v*100);return this._a==1?"hsv("+q+", "+A+"%, "+_+"%)":"hsva("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHsl:function Y(){var K=E(this._r,this._g,this._b);return{h:K.h*360,s:K.s,l:K.l,a:this._a}},toHslString:function Y(){var K=E(this._r,this._g,this._b),q=Math.round(K.h*360),A=Math.round(K.s*100),_=Math.round(K.l*100);return this._a==1?"hsl("+q+", "+A+"%, "+_+"%)":"hsla("+q+", "+A+"%, "+_+"%, "+this._roundA+")"},toHex:function Y(K){return J(this._r,this._g,this._b,K)},toHexString:function Y(K){return"#"+this.toHex(K)},toHex8:function Y(K){return V(this._r,this._g,this._b,this._a,K)},toHex8String:function Y(K){return"#"+this.toHex8(K)},toRgb:function Y(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function Y(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function Y(){return{r:Math.round(k(this._r,255)*100)+"%",g:Math.round(k(this._g,255)*100)+"%",b:Math.round(k(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function Y(){return this._a==1?"rgb("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%)":"rgba("+Math.round(k(this._r,255)*100)+"%, "+Math.round(k(this._g,255)*100)+"%, "+Math.round(k(this._b,255)*100)+"%, "+this._roundA+")"},toName:function Y(){if(this._a===0)return"transparent";if(this._a<1)return!1;return G2[J(this._r,this._g,this._b,!0)]||!1},toFilter:function Y(K){var q="#"+H(this._r,this._g,this._b,this._a),A=q,_=this._gradientType?"GradientType = 1, ":"";if(K){var W=C(K);A="#"+H(W._r,W._g,W._b,W._a)}return"progid:DXImageTransform.Microsoft.gradient("+_+"startColorstr="+q+",endColorstr="+A+")"},toString:function Y(K){var q=!!K;K=K||this._format;var A=!1,_=this._a<1&&this._a>=0,W=!q&&_&&(K==="hex"||K==="hex6"||K==="hex3"||K==="hex4"||K==="hex8"||K==="name");if(W){if(K==="name"&&this._a===0)return this.toName();return this.toRgbString()}if(K==="rgb")A=this.toRgbString();if(K==="prgb")A=this.toPercentageRgbString();if(K==="hex"||K==="hex6")A=this.toHexString();if(K==="hex3")A=this.toHexString(!0);if(K==="hex4")A=this.toHex8String(!0);if(K==="hex8")A=this.toHex8String();if(K==="name")A=this.toName();if(K==="hsl")A=this.toHslString();if(K==="hsv")A=this.toHsvString();return A||this.toHexString()},clone:function Y(){return C(this.toString())},_applyModification:function Y(K,q){var A=K.apply(null,[this].concat([].slice.call(q)));return this._r=A._r,this._g=A._g,this._b=A._b,this.setAlpha(A._a),this},lighten:function Y(){return this._applyModification(j,arguments)},brighten:function Y(){return this._applyModification(I,arguments)},darken:function Y(){return this._applyModification(O,arguments)},desaturate:function Y(){return this._applyModification(z,arguments)},saturate:function Y(){return this._applyModification(U,arguments)},greyscale:function Y(){return this._applyModification(G,arguments)},spin:function Y(){return this._applyModification(R,arguments)},_applyCombination:function Y(K,q){return K.apply(null,[this].concat([].slice.call(q)))},analogous:function Y(){return this._applyCombination(ZD,arguments)},complement:function Y(){return this._applyCombination(L,arguments)},monochromatic:function Y(){return this._applyCombination(SD,arguments)},splitcomplement:function Y(){return this._applyCombination(y,arguments)},triad:function Y(){return this._applyCombination(S,[3])},tetrad:function Y(){return this._applyCombination(S,[4])}},C.fromRatio=function(Y,K){if(D(Y)=="object"){var q={};for(var A in Y)if(Y.hasOwnProperty(A))if(A==="a")q[A]=Y[A];else q[A]=Gu(Y[A]);Y=q}return C(Y,K)};function B(Y){var K={r:0,g:0,b:0},q=1,A=null,_=null,W=null,T=!1,P=!1;if(typeof Y=="string")Y=G1(Y);if(D(Y)=="object"){if(fD(Y.r)&&fD(Y.g)&&fD(Y.b))K=$(Y.r,Y.g,Y.b),T=!0,P=String(Y.r).substr(-1)==="%"?"prgb":"rgb";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.v))A=Gu(Y.s),_=Gu(Y.v),K=Z(Y.h,A,_),T=!0,P="hsv";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.l))A=Gu(Y.s),W=Gu(Y.l),K=Q(Y.h,A,W),T=!0,P="hsl";if(Y.hasOwnProperty("a"))q=Y.a}return q=W2(q),{ok:T,format:Y.format||P,r:Math.min(255,Math.max(K.r,0)),g:Math.min(255,Math.max(K.g,0)),b:Math.min(255,Math.max(K.b,0)),a:q}}function $(Y,K,q){return{r:k(Y,255)*255,g:k(K,255)*255,b:k(q,255)*255}}function E(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=(A+_)/2;if(A==_)W=T=0;else{var m=A-_;switch(T=P>0.5?m/(2-A-_):m/(A+_),A){case Y:W=(K-q)/m+(K1)ID-=1;if(ID<0.16666666666666666)return AD+(Wu-AD)*6*ID;if(ID<0.5)return Wu;if(ID<0.6666666666666666)return AD+(Wu-AD)*(0.6666666666666666-ID)*6;return AD}if(K===0)A=_=W=q;else{var P=q<0.5?q*(1+K):q+K-q*K,m=2*q-P;A=T(m,P,Y+0.3333333333333333),_=T(m,P,Y),W=T(m,P,Y-0.3333333333333333)}return{r:A*255,g:_*255,b:W*255}}function X(Y,K,q){Y=k(Y,255),K=k(K,255),q=k(q,255);var A=Math.max(Y,K,q),_=Math.min(Y,K,q),W,T,P=A,m=A-_;if(T=A===0?0:m/A,A==_)W=0;else{switch(A){case Y:W=(K-q)/m+(K>1)+720)%360;--K;)A.h=(A.h+_)%360,W.push(C(A));return W}function SD(Y,K){K=K||6;var q=C(Y).toHsv(),A=q.h,_=q.s,W=q.v,T=[],P=1/K;while(K--)T.push(C({h:A,s:_,v:W})),W=(W+P)%1;return T}C.mix=function(Y,K,q){q=q===0?0:q||50;var A=C(Y).toRgb(),_=C(K).toRgb(),W=q/100,T={r:(_.r-A.r)*W+A.r,g:(_.g-A.g)*W+A.g,b:(_.b-A.b)*W+A.b,a:(_.a-A.a)*W+A.a};return C(T)},C.readability=function(Y,K){var q=C(Y),A=C(K);return(Math.max(q.getLuminance(),A.getLuminance())+0.05)/(Math.min(q.getLuminance(),A.getLuminance())+0.05)},C.isReadable=function(Y,K,q){var A=C.readability(Y,K),_,W;switch(W=!1,_=W1(q),_.level+_.size){case"AAsmall":case"AAAlarge":W=A>=4.5;break;case"AAlarge":W=A>=3;break;case"AAAsmall":W=A>=7;break}return W},C.mostReadable=function(Y,K,q){var A=null,_=0,W,T,P,m;q=q||{},T=q.includeFallbackColors,P=q.level,m=q.size;for(var AD=0;AD_)_=W,A=C(K[AD]);if(C.isReadable(Y,A,{level:P,size:m})||!T)return A;else return q.includeFallbackColors=!1,C.mostReadable(Y,["#fff","#000"],q)};var oD=C.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G2=C.hexNames=A1(oD);function A1(Y){var K={};for(var q in Y)if(Y.hasOwnProperty(q))K[Y[q]]=q;return K}function W2(Y){if(Y=parseFloat(Y),isNaN(Y)||Y<0||Y>1)Y=1;return Y}function k(Y,K){if(z1(Y))Y="100%";var q=U1(Y);if(Y=Math.min(K,Math.max(0,parseFloat(Y))),q)Y=parseInt(Y*K,10)/100;if(Math.abs(Y-K)<0.000001)return 1;return Y%K/parseFloat(K)}function eu(Y){return Math.min(1,Math.max(0,Y))}function JD(Y){return parseInt(Y,16)}function z1(Y){return typeof Y=="string"&&Y.indexOf(".")!=-1&&parseFloat(Y)===1}function U1(Y){return typeof Y==="string"&&Y.indexOf("%")!=-1}function RD(Y){return Y.length==1?"0"+Y:""+Y}function Gu(Y){if(Y<=1)Y=Y*100+"%";return Y}function _2(Y){return Math.round(parseFloat(Y)*255).toString(16)}function j2(Y){return JD(Y)/255}var LD=function(){var Y="[-\\+]?\\d+%?",K="[-\\+]?\\d*\\.\\d+%?",q="(?:"+K+")|(?:"+Y+")",A="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?",_="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?";return{CSS_UNIT:new RegExp(q),rgb:new RegExp("rgb"+A),rgba:new RegExp("rgba"+_),hsl:new RegExp("hsl"+A),hsla:new RegExp("hsla"+_),hsv:new RegExp("hsv"+A),hsva:new RegExp("hsva"+_),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function fD(Y){return!!LD.CSS_UNIT.exec(Y)}function G1(Y){Y=Y.replace(u,"").replace(F,"").toLowerCase();var K=!1;if(oD[Y])Y=oD[Y],K=!0;else if(Y=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var q;if(q=LD.rgb.exec(Y))return{r:q[1],g:q[2],b:q[3]};if(q=LD.rgba.exec(Y))return{r:q[1],g:q[2],b:q[3],a:q[4]};if(q=LD.hsl.exec(Y))return{h:q[1],s:q[2],l:q[3]};if(q=LD.hsla.exec(Y))return{h:q[1],s:q[2],l:q[3],a:q[4]};if(q=LD.hsv.exec(Y))return{h:q[1],s:q[2],v:q[3]};if(q=LD.hsva.exec(Y))return{h:q[1],s:q[2],v:q[3],a:q[4]};if(q=LD.hex8.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),a:j2(q[4]),format:K?"name":"hex8"};if(q=LD.hex6.exec(Y))return{r:JD(q[1]),g:JD(q[2]),b:JD(q[3]),format:K?"name":"hex"};if(q=LD.hex4.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),a:j2(q[4]+""+q[4]),format:K?"name":"hex8"};if(q=LD.hex3.exec(Y))return{r:JD(q[1]+""+q[1]),g:JD(q[2]+""+q[2]),b:JD(q[3]+""+q[3]),format:K?"name":"hex"};return!1}function W1(Y){var K,q;if(Y=Y||{level:"AA",size:"small"},K=(Y.level||"AA").toUpperCase(),q=(Y.size||"small").toLowerCase(),K!=="AA"&&K!=="AAA")K="AA";if(q!=="small"&&q!=="large")q="small";return{level:K,size:q}}return C})});var y3=l((Y5,b3)=>{var Iu=P3(),x3={r:256,g:256,b:256,a:1},f3={h:360,s:1,v:1,a:1};function OF(D,u,F){let C={};for(let B in D)if(D.hasOwnProperty(B))C[B]=F===0?0:(u[B]-D[B])/F;return C}function TF(D,u,F,C){let B={};for(let $ in u)if(u.hasOwnProperty($))B[$]=D[$]*F+u[$],B[$]=B[$]<0?B[$]+C[$]:C[$]!==1?B[$]%C[$]:B[$];return B}function NF(D,u,F){let C=D.color.toRgb(),B=u.color.toRgb(),$=OF(C,B,F),E=[D.color];for(let Q=1;Q$.h&&B.h-$.h>180;E=C==="long"&&J||C==="short"&&!J}let Q=OF(B,$,F),X=[D.color],Z;if(B.h<=$.h&&!E||B.h>=$.h&&E)Z=$.h-B.h;else if(E)Z=360-$.h+B.h;else Z=360-B.h+$.h;Q.h=Math.pow(-1,E?1:0)*Math.abs(Z)/F;for(let J=1;J1)throw new Error("Position must be between 0 and 1");let B,$;for(let X=0,Z=D.length;X=D[X].pos&&u{let Q=$.pos!==void 0;if(u^Q)throw new Error("Cannot mix positionned and not posionned color stops");if(Q){let X=$.color!==void 0;if(!X&&(B||E===0||E===F-1))throw new Error("Cannot define two consecutive position-only stops");if(B=!X,$={color:X?Iu($.color):null,colorLess:!X,pos:$.pos},$.pos<0||$.pos>1)throw new Error("Color stops positions must be between 0 and 1");else if($.pos{D.push({color:F.color,pos:F.pos/2})}),this.stops.slice(0,-1).forEach((F)=>{u.push({color:F.color,pos:1-F.pos/2})}),new K0(D.concat(u.reverse()))}rgb(D){let u=k3(this.stops,D),F=[];this.stops.forEach((C,B)=>{if(C.colorLess)C.color=NF(this.stops[B-1],this.stops[B+1],2)[1]});for(let C=0,B=this.stops.length;C{if(B.colorLess)B.color=S3(this.stops[$-1],this.stops[$+1],2,u)[1]});for(let B=0,$=this.stops.length;B<$-1;B++){let E=S3(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 v3(this.stops,D,"toRgb",x3)}hsvAt(D){return v3(this.stops,D,"toHsv",f3)}}b3.exports=function(D){if(arguments.length===1){if(!Array.isArray(arguments[0]))throw new Error('"stops" is not an array');D=arguments[0]}else D=Array.prototype.slice.call(arguments);return new K0(D)}});var p3=l((O5,f7)=>{f7.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}});var xF=l((T5,vF)=>{var i3=p3();vF.exports=i3;vF.exports.default=i3});var t3=l((P5,s3)=>{s3.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 D8=l((S5,e3)=>{var d7=t3();e3.exports=(D)=>typeof D==="string"?D.replace(d7(),""):D});var F8=l((k5,yF)=>{var u8=(D)=>{if(Number.isNaN(D))return!1;if(D>=4352&&(D<=4447||D===9001||D===9002||11904<=D&&D<=12871&&D!==12351||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))return!0;return!1};yF.exports=u8;yF.exports.default=u8});var B8=l((v5,C8)=>{C8.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 $8=l((x5,hF)=>{var l7=D8(),p7=F8(),i7=B8(),E8=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=l7(D),D.length===0)return 0;D=D.replace(i7()," ");let u=0;for(let F=0;F=127&&C<=159)continue;if(C>=768&&C<=879)continue;if(C>65535)F++;u+=p7(C)?2:1}return u};hF.exports=E8;hF.exports.default=E8});var X8=l((f5,Q8)=>{var n7=$8();function sD(D,u){if(!D)return D;u=u||{};let F=u.align||"center";if(F==="left")return D;let C=u.split||` +`,B=u.pad||" ",$=F!=="right"?a7:r7,E=!1;if(!Array.isArray(D))E=!0,D=String(D).split(C);let Q,X=0;return D=D.map(function(Z){return Z=String(Z),Q=n7(Z),X=Math.max(Q,X),{str:Z,width:Q}}).map(function(Z){return new Array($(X,Z.width)+1).join(B)+Z.str}),E?D.join(C):D}sD.left=function D(u){return sD(u,{align:"left"})};sD.center=function D(u){return sD(u,{align:"center"})};sD.right=function D(u){return sD(u,{align:"right"})};Q8.exports=sD;function a7(D,u){return Math.floor((D-u)/2)}function r7(D,u){return D-u}});import{join as t,dirname as pF,basename as F$}from"path";import{homedir as M8}from"os";import{existsSync as R8,mkdirSync as A9}from"fs";import{fileURLToPath as z9}from"url";function Zu(D){return t(g,`worker-${D}.sock`)}function GD(D){A9(D,{recursive:!0})}function N8(){GD(g),GD(U9),GD(iF),GD(tD),GD(G9),GD(Qu)}function O8(){GD(_0),GD(nF)}function W9(){try{let F=cD.resolve("claude-mem/package.json");return pF(F)}catch{}let D=z9(import.meta.url),u=pF(D);for(let F=0;F<10;F++){let C=t(u,"package.json");if(R8(C)){if(cD(C).name==="claude-mem")return u}let B=pF(u);if(B===u)break;u=B}throw new Error("Cannot locate claude-mem package root. Ensure claude-mem is properly installed.")}function T8(){let D=W9(),u=t(D,"commands");if(!R8(t(u,"save.md")))throw new Error("Package commands directory missing required files");return u}var g,_0,U9,iF,tD,G9,Qu,L8,j0,Xu,nF,I8;var $D=mD(()=>{g=process.env.CLAUDE_MEM_DATA_DIR||t(M8(),".claude-mem"),_0=process.env.CLAUDE_CONFIG_DIR||t(M8(),".claude"),U9=t(g,"archives"),iF=t(g,"logs"),tD=t(g,"trash"),G9=t(g,"backups"),Qu=t(g,"chroma"),L8=t(g,"settings.json"),j0=t(g,"claude-mem.db"),Xu=t(_0,"settings.json"),nF=t(_0,"commands"),I8=t(_0,"CLAUDE.md")});import{Database as b4}from"bun:sqlite";class QD{db;constructor(){GD(g),this.db=new b4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON")}getRecentSummaries(D,u=10){return this.db.query(` SELECT request, investigated, learned, completed, next_steps, files_read, files_edited, notes, created_at @@ -64,10 +64,15 @@ Expecting one of '${F.join("', '")}'`);let C=`${D}Help`;return this.on(C,(B)=>{l UPDATE sdk_sessions SET status = 'failed', completed_at = ?, completed_at_epoch = ? WHERE id = ? - `).run(u.toISOString(),F,D)}close(){this.db.close()}}var Fu=mD(()=>{$D()});import a4 from"path";function r6(D){try{if(D.source&&D.source!=="startup")console.log(""),process.exit(0);let u=a4.basename(D.cwd),F=new QD,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 o6=mD(()=>{Fu()});import r4 from"net";function s6(D){try{let{session_id:u,tool_name:F,tool_input:C,tool_output:B}=D;if(o4.has(F))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let $=new QD,E=$.findActiveSDKSession(u);if($.close(),!E)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=Zu(E.id),X={type:"observation",tool_name:F,tool_input:JSON.stringify(C),tool_output:JSON.stringify(B)},Z=r4.connect(Q,()=>{Z.write(JSON.stringify(X)+` -`),Z.end()});Z.on("error",(J)=>{console.error(`[claude-mem save] Socket error: ${J.message}`)}),Z.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem save error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var o4;var t6=mD(()=>{Fu();$D();o4=new Set(["TodoWrite","ListMcpResourcesTool"])});import s4 from"path";import{spawn as t4}from"child_process";function e6(D){try{let{session_id:u,cwd:F,prompt:C}=D,B=s4.basename(F),$=new QD;if($.findActiveSDKSession(u))$.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=$.createSDKSession(u,B,C);$.close(),t4("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 D1=mD(()=>{Fu()});import e4 from"net";function u1(D){try{let{session_id:u}=D,F=new QD,C=F.findActiveSDKSession(u);if(F.close(),!C)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=Zu(C.id),$={type:"finalize"},E=e4.connect(B,()=>{E.write(JSON.stringify($)+` -`),E.end()});E.on("error",(Q)=>{console.error(`[claude-mem summary] Socket error: ${Q.message}`)}),E.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem summary error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var F1=mD(()=>{Fu();$D()});var su={};M2(su,{summaryHook:()=>u1,saveHook:()=>s6,newHook:()=>e6,contextHook:()=>r6});var tu=mD(()=>{o6();t6();D1();F1()});function C1(D,u,F){return`You are a memory assistant for the "${D}" project. + `).run(u.toISOString(),F,D)}close(){this.db.close()}}var Fu=mD(()=>{$D()});import o4 from"path";function r6(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code SessionStart hook"),process.exit(0);if(D.source&&D.source!=="startup")console.log(""),process.exit(0);let u=o4.basename(D.cwd),F=new QD,C=F.getRecentSummaries(u,5);if(F.close(),C.length===0)console.log(`# Recent Session Context + +No previous sessions found for this project yet.`),process.exit(0);let B=[];B.push("# Recent Session Context"),B.push(""),B.push(`Here's what happened in recent ${u} sessions:`),B.push("");for(let $ of C){if(B.push("---"),B.push(""),$.request)B.push(`**Request:** ${$.request}`);if($.completed)B.push(`**Completed:** ${$.completed}`);if($.learned)B.push(`**Learned:** ${$.learned}`);if($.next_steps)B.push(`**Next Steps:** ${$.next_steps}`);if($.files_edited)try{let E=JSON.parse($.files_edited);if(Array.isArray(E)&&E.length>0)B.push(`**Files Edited:** ${E.join(", ")}`)}catch{if($.files_edited.trim())B.push(`**Files Edited:** ${$.files_edited}`)}B.push(`**Date:** ${$.created_at.split("T")[0]}`),B.push("")}console.log(B.join(` +`)),process.exit(0)}catch(u){console.error(`[claude-mem context error: ${u.message}]`),process.exit(0)}}var o6=mD(()=>{Fu()});import s4 from"net";function s6(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code PostToolUse hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",tool_name:"string",tool_input:{},tool_output:{}},null,2)),process.exit(0);let{session_id:u,tool_name:F,tool_input:C,tool_output:B}=D;if(t4.has(F))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let $=new QD,E=$.findActiveSDKSession(u);if($.close(),!E)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=Zu(E.id),X={type:"observation",tool_name:F,tool_input:JSON.stringify(C),tool_output:JSON.stringify(B)},Z=s4.connect(Q,()=>{Z.write(JSON.stringify(X)+` +`),Z.end()});Z.on("error",(J)=>{console.error(`[claude-mem save] Socket error: ${J.message}`)}),Z.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem save error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var t4;var t6=mD(()=>{Fu();$D();t4=new Set(["TodoWrite","ListMcpResourcesTool"])});import e6 from"path";import{spawn as D1}from"child_process";function u1(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code UserPromptSubmit hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",prompt:"string"},null,2)),process.exit(0);let{session_id:u,cwd:F,prompt:C}=D,B=e6.basename(F),$=new QD;if($.findActiveSDKSession(u))$.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=$.createSDKSession(u,B,C);$.close();let X=process.env.CLAUDE_PLUGIN_ROOT,Z;if(X){let J=e6.join(X,"scripts","hooks","worker.js");Z=D1("bun",[J,Q.toString()],{detached:!0,stdio:"ignore"})}else Z=D1("claude-mem",["worker",Q.toString()],{detached:!0,stdio:"ignore"});Z.unref(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}catch(u){console.error(`[claude-mem new error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var F1=mD(()=>{Fu()});import e4 from"net";function C1(D){try{if(!D)console.log("No input provided - this script is designed to run as a Claude Code Stop hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string"},null,2)),process.exit(0);let{session_id:u}=D,F=new QD,C=F.findActiveSDKSession(u);if(F.close(),!C)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=Zu(C.id),$={type:"finalize"},E=e4.connect(B,()=>{E.write(JSON.stringify($)+` +`),E.end()});E.on("error",(Q)=>{console.error(`[claude-mem summary] Socket error: ${Q.message}`)}),E.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem summary error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var B1=mD(()=>{Fu();$D()});var su={};M2(su,{summaryHook:()=>C1,saveHook:()=>s6,newHook:()=>u1,contextHook:()=>r6});var tu=mD(()=>{o6();t6();F1();B1()});function E1(D,u,F){return`You are a memory assistant for the "${D}" project. SESSION CONTEXT --------------- @@ -123,7 +128,7 @@ 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 B1(D){return`TOOL OBSERVATION +Wait for tool observations. Acknowledge this message briefly.`}function $1(D){return`TOOL OBSERVATION ================ Tool: ${D.tool_name} Time: ${new Date(D.created_at_epoch).toISOString()} @@ -154,7 +159,7 @@ ANALYSIS TASK 3. If NO: Just acknowledge and wait for next observation -Remember: Quality over quantity. Only store meaningful insights.`}function E1(D){return`SESSION ENDING +Remember: Quality over quantity. Only store meaningful insights.`}function Q1(D){return`SESSION ENDING ============== The Claude Code session is finishing. @@ -204,26 +209,26 @@ Structure requirements: The SDK worker will parse the block and extract all fields to store in SQLite. -Generate the summary now in the required XML format.`}function Q1(D){let u=[],F=/\s*([^<]+)<\/type>\s*([^<]+)<\/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 X1(D){let F=/([\s\S]*?)<\/summary>/.exec(D);if(!F)return null;let C=F[1],B=Uu(C,"request"),$=Uu(C,"investigated"),E=Uu(C,"learned"),Q=Uu(C,"completed"),X=Uu(C,"next_steps"),Z=Uu(C,"notes"),J=$1(C,"files_read"),V=$1(C,"files_edited");if(!B||!$||!E||!Q||!X||!Z)return console.warn("[SDK Parser] Summary missing required fields"),null;return{request:B,investigated:$,learned:E,completed:Q,next_steps:X,files_read:J,files_edited:V,notes:Z}}function Uu(D,u){let C=new RegExp(`<${u}>([^<]*)`).exec(D);return C?C[1].trim():null}function $1(D,u){let F=[],B=new RegExp(`<${u}>(.*?)`,"s").exec(D);if(!B)return F;let $=B[1],E=/([^<]+)<\/file>/g,Q;while((Q=E.exec($))!==null)F.push(Q[1].trim());return F}var q1={};M2(q1,{main:()=>BE});import DE from"net";import{unlinkSync as Z1,existsSync as J1}from"fs";import{query as uE}from"@anthropic-ai/claude-agent-sdk";async function BE(){let D=parseInt(process.argv[2],10);if(!D)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);await new Y1(D).run()}class Y1{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(D){this.sessionDbId=D,this.db=new QD,this.abortController=new AbortController,this.socketPath=Zu(D)}async run(){try{let D=await this.loadSession();if(!D)console.error("[SDK Worker] Session not found"),process.exit(1);this.project=D.project,this.userPrompt=D.user_prompt,await this.startSocketServer(),console.error(`[SDK Worker] Socket server listening: ${this.socketPath}`),await this.runSDKAgent(),this.db.markSessionCompleted(this.sessionDbId),this.db.close(),this.cleanup()}catch(D){console.error("[SDK Worker] Error:",D.message),this.db.markSessionFailed(this.sessionDbId),this.db.close(),this.cleanup(),process.exit(1)}}async startSocketServer(){if(J1(this.socketPath))Z1(this.socketPath);return new Promise((D,u)=>{this.server=DE.createServer((F)=>{let C="";F.on("data",(B)=>{C+=B.toString();let $=C.split(` +Generate the summary now in the required XML format.`}function Z1(D){let u=[],F=/\s*([^<]+)<\/type>\s*([^<]+)<\/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 J1(D){let F=/([\s\S]*?)<\/summary>/.exec(D);if(!F)return null;let C=F[1],B=Uu(C,"request"),$=Uu(C,"investigated"),E=Uu(C,"learned"),Q=Uu(C,"completed"),X=Uu(C,"next_steps"),Z=Uu(C,"notes"),J=X1(C,"files_read"),V=X1(C,"files_edited");if(!B||!$||!E||!Q||!X||!Z)return console.warn("[SDK Parser] Summary missing required fields"),null;return{request:B,investigated:$,learned:E,completed:Q,next_steps:X,files_read:J,files_edited:V,notes:Z}}function Uu(D,u){let C=new RegExp(`<${u}>([^<]*)`).exec(D);return C?C[1].trim():null}function X1(D,u){let F=[],B=new RegExp(`<${u}>(.*?)`,"s").exec(D);if(!B)return F;let $=B[1],E=/([^<]+)<\/file>/g,Q;while((Q=E.exec($))!==null)F.push(Q[1].trim());return F}var V1={};M2(V1,{main:()=>BE});import DE from"net";import{unlinkSync as Y1,existsSync as q1}from"fs";import{query as uE}from"@anthropic-ai/claude-agent-sdk";async function BE(){let D=parseInt(process.argv[2],10);if(!D)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);await new K1(D).run()}class K1{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(D){this.sessionDbId=D,this.db=new QD,this.abortController=new AbortController,this.socketPath=Zu(D)}async run(){try{let D=await this.loadSession();if(!D)console.error("[SDK Worker] Session not found"),process.exit(1);this.project=D.project,this.userPrompt=D.user_prompt,await this.startSocketServer(),console.error(`[SDK Worker] Socket server listening: ${this.socketPath}`),await this.runSDKAgent(),this.db.markSessionCompleted(this.sessionDbId),this.db.close(),this.cleanup()}catch(D){console.error("[SDK Worker] Error:",D.message),this.db.markSessionFailed(this.sessionDbId),this.db.close(),this.cleanup(),process.exit(1)}}async startSocketServer(){if(q1(this.socketPath))Y1(this.socketPath);return new Promise((D,u)=>{this.server=DE.createServer((F)=>{let C="";F.on("data",(B)=>{C+=B.toString();let $=C.split(` `);C=$.pop()||"";for(let E of $)if(E.trim())try{let Q=JSON.parse(E);this.handleMessage(Q)}catch(Q){console.error("[SDK Worker] Invalid message:",E)}}),F.on("error",(B)=>{console.error("[SDK Worker] Socket connection error:",B.message)})}),this.server.on("error",(F)=>{if(F.code==="EADDRINUSE")console.error(`[SDK Worker] Socket already in use: ${this.socketPath}`);u(F)}),this.server.listen(this.socketPath,()=>{D()})})}handleMessage(D){if(this.pendingMessages.push(D),D.type==="finalize")this.isFinalized=!0}async loadSession(){return this.db.db.query(` SELECT id, sdk_session_id, project, user_prompt FROM sdk_sessions WHERE id = ? LIMIT 1 - `).get(this.sessionDbId)}async runSDKAgent(){await uE({model:FE,messages:()=>this.createMessageGenerator(),disallowedTools:CE,signal:this.abortController.signal,onSystemInitMessage:(D)=>{if(D.session_id)this.sdkSessionId=D.session_id,this.db.updateSDKSessionId(this.sessionDbId,D.session_id)},onAgentMessage:(D)=>{this.handleAgentMessage(D.content)}})}async*createMessageGenerator(){let D=`session-${this.sessionDbId}`;yield{role:"user",content:C1(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:E1(C)};break}if(F.type==="observation")yield{role:"user",content:B1({tool_name:F.tool_name,tool_input:F.tool_input,tool_output:F.tool_output})}}}}handleAgentMessage(D){let u=Q1(D);for(let C of u)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,C.type,C.text);let F=X1(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(J1(this.socketPath))Z1(this.socketPath)}sleep(D){return new Promise((u)=>setTimeout(u,D))}}var FE="claude-sonnet-4-5",CE;var K1=mD(()=>{Fu();$D();CE=["Glob","Grep","ListMcpResourcesTool","WebSearch"]});var g2=bD(h2(),1),{program:KE,createCommand:VE,createArgument:HE,createOption:AE,CommanderError:zE,InvalidArgumentError:UE,InvalidOptionArgumentError:GE,Command:m2,Argument:WE,Option:_E,Help:jE}=g2.default;import{readFileSync as KC,existsSync as VC}from"fs";import{join as HC,dirname as AC}from"path";import{fileURLToPath as zC}from"url";var c2="claude-mem",d2="3.9.16",l2="Memory compression system for Claude Code - persist context across sessions",p2=c2,i2=d2,n2=l2;try{let D=zC(import.meta.url),u=AC(D),F=HC(u,"..","..","package.json");if(VC(F)){let C=JSON.parse(KC(F,"utf-8"));p2=C.name||c2,i2=C.version||d2,n2=C.description||l2}}catch{}var dD=p2,a2=i2,r2=n2;import{readFileSync as Su,writeFileSync as Ju,existsSync as iD,mkdirSync as R0,copyFileSync as G9,statSync as Z$,readdirSync as J$}from"fs";import{join as Yu,dirname as rF}from"path";import{homedir as P8}from"os";import{execSync as w8}from"child_process";var o=bD(BF(),1),Z3=bD($F(),1);import{stdin as Q3,stdout as X3}from"process";import*as lD from"readline";import e2 from"readline";import{Writable as MC}from"stream";function RC({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 LC=RC();function J3(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(LC,"")}function Y3(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var q3={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-(V==2?1:0))if(Q+V<=$)E+=J;else break;Q+=V}return E}})(q3);var IC=q3.exports,NC=Y3(IC),OC=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},TC=Y3(OC);function ju(D,u={}){if(typeof D!="string"||D.length===0||(u={ambiguousIsNarrow:!0,...u},D=J3(D),D.length===0))return 0;D=D.replace(TC()," ");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(NC.eastAsianWidth(B)){case"F":case"W":C+=2;break;case"A":C+=F;break;default:C+=1}}return C}var QF=10,D3=(D=0)=>(u)=>`\x1B[${u+D}m`,u3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,F3=(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 wC=Object.keys(v.color),PC=Object.keys(v.bgColor);[...wC];function SC(){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=D3(),v.color.ansi256=u3(),v.color.ansi16m=F3(),v.bgColor.ansi=D3(QF),v.bgColor.ansi256=u3(QF),v.bgColor.ansi16m=F3(QF),Object.defineProperties(v,{rgbToAnsi256:{value:(u,F,C)=>u===F&&F===C?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5),enumerable:!1},hexToRgb:{value:(u)=>{let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;C.length===3&&(C=[...C].map(($)=>$+$).join(""));let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>v.rgbToAnsi256(...v.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:(u)=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));return $===2&&(E+=60),E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>v.ansi256ToAnsi(v.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>v.ansi256ToAnsi(v.hexToAnsi256(u)),enumerable:!1}}),v}var kC=SC(),$0=new Set(["\x1B","\x9B"]),vC=39,JF="\x07",K3="[",xC="]",V3="m",YF=`${xC}8;;`,C3=(D)=>`${$0.values().next().value}${K3}${D}${V3}`,B3=(D)=>`${$0.values().next().value}${YF}${D}${JF}`,fC=(D)=>D.split(" ").map((u)=>ju(u)),XF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=ju(J3(D[D.length-1]));for(let[Q,X]of C.entries()){let Z=ju(X);if(E+Z<=F?D[D.length-1]+=X:(D.push(X),E=0),$0.has(X)&&(B=!0,$=C.slice(Q+1).join("").startsWith(YF)),B){$?X===JF&&(B=!1,$=!1):X===V3&&(B=!1);continue}E+=Z,E===F&&Q0&&D.length>1&&(D[D.length-2]+=D.pop())},bC=(D)=>{let u=D.split(" "),F=u.length;for(;F>0&&!(ju(u[F-1])>0);)F--;return F===u.length?D:u.slice(0,F).join(" ")+u.slice(F).join("")},yC=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=fC(D),Q=[""];for(let[Z,J]of D.split(" ").entries()){F.trim!==!1&&(Q[Q.length-1]=Q[Q.length-1].trimStart());let V=ju(Q[Q.length-1]);if(Z!==0&&(V>=u&&(F.wordWrap===!1||F.trim===!1)&&(Q.push(""),V=0),(V>0||F.trim===!1)&&(Q[Q.length-1]+=" ",V++)),F.hard&&E[Z]>u){let H=u-V,z=1+Math.floor((E[Z]-H-1)/u);Math.floor((E[Z]-1)/u)u&&V>0&&E[Z]>0){if(F.wordWrap===!1&&Vu&&F.wordWrap===!1){XF(Q,J,u);continue}Q[Q.length-1]+=J}F.trim!==!1&&(Q=Q.map((Z)=>bC(Z)));let X=[...Q.join(` -`)];for(let[Z,J]of X.entries()){if(C+=J,$0.has(J)){let{groups:H}=new RegExp(`(?:\\${K3}(?\\d+)m|\\${YF}(?.*)${JF})`).exec(X.slice(Z).join(""))||{groups:{}};if(H.code!==void 0){let z=Number.parseFloat(H.code);B=z===vC?void 0:z}else H.uri!==void 0&&($=H.uri.length===0?void 0:H.uri)}let V=kC.codes.get(Number(B));X[Z+1]===` + `).get(this.sessionDbId)}async runSDKAgent(){await uE({model:FE,messages:()=>this.createMessageGenerator(),disallowedTools:CE,signal:this.abortController.signal,onSystemInitMessage:(D)=>{if(D.session_id)this.sdkSessionId=D.session_id,this.db.updateSDKSessionId(this.sessionDbId,D.session_id)},onAgentMessage:(D)=>{this.handleAgentMessage(D.content)}})}async*createMessageGenerator(){let D=`session-${this.sessionDbId}`;yield{role:"user",content:E1(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:Q1(C)};break}if(F.type==="observation")yield{role:"user",content:$1({tool_name:F.tool_name,tool_input:F.tool_input,tool_output:F.tool_output})}}}}handleAgentMessage(D){let u=Z1(D);for(let C of u)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,C.type,C.text);let F=J1(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(q1(this.socketPath))Y1(this.socketPath)}sleep(D){return new Promise((u)=>setTimeout(u,D))}}var FE="claude-sonnet-4-5",CE;var H1=mD(()=>{Fu();$D();CE=["Glob","Grep","ListMcpResourcesTool","WebSearch"]});var g2=bD(h2(),1),{program:KE,createCommand:VE,createArgument:HE,createOption:AE,CommanderError:zE,InvalidArgumentError:UE,InvalidOptionArgumentError:GE,Command:m2,Argument:WE,Option:_E,Help:jE}=g2.default;import{readFileSync as HC,existsSync as AC}from"fs";import{join as zC,dirname as UC}from"path";import{fileURLToPath as GC}from"url";var c2="claude-mem",d2="3.9.16",l2="Memory compression system for Claude Code - persist context across sessions",p2=c2,i2=d2,n2=l2;try{let D=GC(import.meta.url),u=UC(D),F=zC(u,"..","..","package.json");if(AC(F)){let C=JSON.parse(HC(F,"utf-8"));p2=C.name||c2,i2=C.version||d2,n2=C.description||l2}}catch{}var dD=p2,a2=i2,r2=n2;import{readFileSync as Su,writeFileSync as Ju,existsSync as iD,mkdirSync as R0,copyFileSync as _9,statSync as Z$,readdirSync as J$}from"fs";import{join as Yu,dirname as rF}from"path";import{homedir as P8}from"os";import{execSync as w8}from"child_process";var o=bD(BF(),1),Z3=bD($F(),1);import{stdin as Q3,stdout as X3}from"process";import*as lD from"readline";import e2 from"readline";import{Writable as LC}from"stream";function IC({onlyFirst:D=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}var NC=IC();function J3(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(NC,"")}function Y3(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var q3={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-(V==2?1:0))if(Q+V<=$)E+=J;else break;Q+=V}return E}})(q3);var OC=q3.exports,TC=Y3(OC),wC=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},PC=Y3(wC);function ju(D,u={}){if(typeof D!="string"||D.length===0||(u={ambiguousIsNarrow:!0,...u},D=J3(D),D.length===0))return 0;D=D.replace(PC()," ");let F=u.ambiguousIsNarrow?1:2,C=0;for(let B of D){let $=B.codePointAt(0);if($<=31||$>=127&&$<=159||$>=768&&$<=879)continue;switch(TC.eastAsianWidth(B)){case"F":case"W":C+=2;break;case"A":C+=F;break;default:C+=1}}return C}var QF=10,D3=(D=0)=>(u)=>`\x1B[${u+D}m`,u3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,F3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,v={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(v.modifier);var SC=Object.keys(v.color),kC=Object.keys(v.bgColor);[...SC];function vC(){let D=new Map;for(let[u,F]of Object.entries(v)){for(let[C,B]of Object.entries(F))v[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=v[C],D.set(B[0],B[1]);Object.defineProperty(v,u,{value:F,enumerable:!1})}return Object.defineProperty(v,"codes",{value:D,enumerable:!1}),v.color.close="\x1B[39m",v.bgColor.close="\x1B[49m",v.color.ansi=D3(),v.color.ansi256=u3(),v.color.ansi16m=F3(),v.bgColor.ansi=D3(QF),v.bgColor.ansi256=u3(QF),v.bgColor.ansi16m=F3(QF),Object.defineProperties(v,{rgbToAnsi256:{value:(u,F,C)=>u===F&&F===C?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5),enumerable:!1},hexToRgb:{value:(u)=>{let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;C.length===3&&(C=[...C].map(($)=>$+$).join(""));let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>v.rgbToAnsi256(...v.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:(u)=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));return $===2&&(E+=60),E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>v.ansi256ToAnsi(v.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>v.ansi256ToAnsi(v.hexToAnsi256(u)),enumerable:!1}}),v}var xC=vC(),$0=new Set(["\x1B","\x9B"]),fC=39,JF="\x07",K3="[",bC="]",V3="m",YF=`${bC}8;;`,C3=(D)=>`${$0.values().next().value}${K3}${D}${V3}`,B3=(D)=>`${$0.values().next().value}${YF}${D}${JF}`,yC=(D)=>D.split(" ").map((u)=>ju(u)),XF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=ju(J3(D[D.length-1]));for(let[Q,X]of C.entries()){let Z=ju(X);if(E+Z<=F?D[D.length-1]+=X:(D.push(X),E=0),$0.has(X)&&(B=!0,$=C.slice(Q+1).join("").startsWith(YF)),B){$?X===JF&&(B=!1,$=!1):X===V3&&(B=!1);continue}E+=Z,E===F&&Q0&&D.length>1&&(D[D.length-2]+=D.pop())},hC=(D)=>{let u=D.split(" "),F=u.length;for(;F>0&&!(ju(u[F-1])>0);)F--;return F===u.length?D:u.slice(0,F).join(" ")+u.slice(F).join("")},gC=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=yC(D),Q=[""];for(let[Z,J]of D.split(" ").entries()){F.trim!==!1&&(Q[Q.length-1]=Q[Q.length-1].trimStart());let V=ju(Q[Q.length-1]);if(Z!==0&&(V>=u&&(F.wordWrap===!1||F.trim===!1)&&(Q.push(""),V=0),(V>0||F.trim===!1)&&(Q[Q.length-1]+=" ",V++)),F.hard&&E[Z]>u){let H=u-V,z=1+Math.floor((E[Z]-H-1)/u);Math.floor((E[Z]-1)/u)u&&V>0&&E[Z]>0){if(F.wordWrap===!1&&Vu&&F.wordWrap===!1){XF(Q,J,u);continue}Q[Q.length-1]+=J}F.trim!==!1&&(Q=Q.map((Z)=>hC(Z)));let X=[...Q.join(` +`)];for(let[Z,J]of X.entries()){if(C+=J,$0.has(J)){let{groups:H}=new RegExp(`(?:\\${K3}(?\\d+)m|\\${YF}(?.*)${JF})`).exec(X.slice(Z).join(""))||{groups:{}};if(H.code!==void 0){let z=Number.parseFloat(H.code);B=z===fC?void 0:z}else H.uri!==void 0&&($=H.uri.length===0?void 0:H.uri)}let V=xC.codes.get(Number(B));X[Z+1]===` `?($&&(C+=B3("")),B&&V&&(C+=C3(V))):J===` `&&(B&&V&&(C+=C3(B)),$&&(C+=B3($)))}return C};function E3(D,u,F){return String(D).normalize().replace(/\r\n/g,` `).split(` -`).map((C)=>yC(C,u,F)).join(` -`)}var hC=["up","down","left","right","space","enter","cancel"],E0={actions:new Set(hC),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function qF(D,u){if(typeof D=="string")return E0.aliases.get(D)===u;for(let F of D)if(F!==void 0&&qF(F,u))return!0;return!1}function gC(D,u){if(D===u)return;let F=D.split(` +`).map((C)=>gC(C,u,F)).join(` +`)}var mC=["up","down","left","right","space","enter","cancel"],E0={actions:new Set(mC),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function qF(D,u){if(typeof D=="string")return E0.aliases.get(D)===u;for(let F of D)if(F!==void 0&&qF(F,u))return!0;return!1}function cC(D,u){if(D===u)return;let F=D.split(` `),C=u.split(` -`),B=[];for(let $=0;${let Z=String(E);if(qF([Z,Q,X],"cancel")){C&&u.write(o.cursor.show),process.exit(0);return}if(!F)return;lD.moveCursor(u,Q==="return"?0:-1,Q==="return"?-1:0,()=>{lD.clearLine(u,1,()=>{D.once("keypress",$)})})};return C&&u.write(o.cursor.hide),D.once("keypress",$),()=>{D.off("keypress",$),C&&u.write(o.cursor.show),D.isTTY&&!mC&&D.setRawMode(!1),B.terminal=!1,B.close()}}var cC=Object.defineProperty,dC=(D,u,F)=>(u in D)?cC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,YD=(D,u,F)=>(dC(D,typeof u!="symbol"?u+"":u,F),F);class Q0{constructor(D,u=!0){YD(this,"input"),YD(this,"output"),YD(this,"_abortSignal"),YD(this,"rl"),YD(this,"opts"),YD(this,"_render"),YD(this,"_track",!1),YD(this,"_prevFrame",""),YD(this,"_subscribers",new Map),YD(this,"_cursor",0),YD(this,"state","initial"),YD(this,"error",""),YD(this,"value");let{input:F=Q3,output:C=X3,render:B,signal:$,...E}=D;this.opts=E,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=B.bind(this),this._track=u,this._abortSignal=$,this.input=F,this.output=C}unsubscribe(){this._subscribers.clear()}setSubscriber(D,u){let F=this._subscribers.get(D)??[];F.push(u),this._subscribers.set(D,F)}on(D,u){this.setSubscriber(D,{cb:u})}once(D,u){this.setSubscriber(D,{cb:u,once:!0})}emit(D,...u){let F=this._subscribers.get(D)??[],C=[];for(let B of F)B.cb(...u),B.once&&C.push(()=>F.splice(F.indexOf(B),1));for(let B of C)B()}prompt(){return new Promise((D,u)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(ZF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new MC;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=e2.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),e2.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),B0(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(ZF)})})}onKeypress(D,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&E0.aliases.has(u.name)&&this.emit("cursor",E0.aliases.get(u.name)),E0.actions.has(u.name)&&this.emit("cursor",u.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),D==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),D&&this.emit("key",D.toLowerCase()),u?.name==="return"){if(this.opts.validate){let F=this.opts.validate(this.value);F&&(this.error=F instanceof Error?F.message:F,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}qF([D,u?.name,u?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(` +`),B=[];for(let $=0;${let Z=String(E);if(qF([Z,Q,X],"cancel")){C&&u.write(o.cursor.show),process.exit(0);return}if(!F)return;lD.moveCursor(u,Q==="return"?0:-1,Q==="return"?-1:0,()=>{lD.clearLine(u,1,()=>{D.once("keypress",$)})})};return C&&u.write(o.cursor.hide),D.once("keypress",$),()=>{D.off("keypress",$),C&&u.write(o.cursor.show),D.isTTY&&!dC&&D.setRawMode(!1),B.terminal=!1,B.close()}}var lC=Object.defineProperty,pC=(D,u,F)=>(u in D)?lC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,YD=(D,u,F)=>(pC(D,typeof u!="symbol"?u+"":u,F),F);class Q0{constructor(D,u=!0){YD(this,"input"),YD(this,"output"),YD(this,"_abortSignal"),YD(this,"rl"),YD(this,"opts"),YD(this,"_render"),YD(this,"_track",!1),YD(this,"_prevFrame",""),YD(this,"_subscribers",new Map),YD(this,"_cursor",0),YD(this,"state","initial"),YD(this,"error",""),YD(this,"value");let{input:F=Q3,output:C=X3,render:B,signal:$,...E}=D;this.opts=E,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=B.bind(this),this._track=u,this._abortSignal=$,this.input=F,this.output=C}unsubscribe(){this._subscribers.clear()}setSubscriber(D,u){let F=this._subscribers.get(D)??[];F.push(u),this._subscribers.set(D,F)}on(D,u){this.setSubscriber(D,{cb:u})}once(D,u){this.setSubscriber(D,{cb:u,once:!0})}emit(D,...u){let F=this._subscribers.get(D)??[],C=[];for(let B of F)B.cb(...u),B.once&&C.push(()=>F.splice(F.indexOf(B),1));for(let B of C)B()}prompt(){return new Promise((D,u)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(ZF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new LC;F._write=(C,B,$)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),$()},this.input.pipe(F),this.rl=e2.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),e2.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),B0(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(o.cursor.show),this.output.off("resize",this.render),B0(this.input,!1),D(ZF)})})}onKeypress(D,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&E0.aliases.has(u.name)&&this.emit("cursor",E0.aliases.get(u.name)),E0.actions.has(u.name)&&this.emit("cursor",u.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),D==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),D&&this.emit("key",D.toLowerCase()),u?.name==="return"){if(this.opts.validate){let F=this.opts.validate(this.value);F&&(this.error=F instanceof Error?F.message:F,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}qF([D,u?.name,u?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(` `),B0(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=E3(this._prevFrame,process.stdout.columns,{hard:!0}).split(` -`).length-1;this.output.write(o.cursor.move(-999,D*-1))}render(){let D=E3(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(o.cursor.hide);else{let u=gC(this._prevFrame,D);if(this.restoreCursor(),u&&u?.length===1){let F=u[0];this.output.write(o.cursor.move(0,F)),this.output.write(o.erase.lines(1));let C=D.split(` +`).length-1;this.output.write(o.cursor.move(-999,D*-1))}render(){let D=E3(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(o.cursor.hide);else{let u=cC(this._prevFrame,D);if(this.restoreCursor(),u&&u?.length===1){let F=u[0];this.output.write(o.cursor.move(0,F)),this.output.write(o.erase.lines(1));let C=D.split(` `);this.output.write(C[F]),this._prevFrame=D,this.output.write(o.cursor.move(0,C.length-F-1));return}if(u&&u?.length>1){let F=u[0];this.output.write(o.cursor.move(0,F)),this.output.write(o.erase.down());let C=D.split(` `).slice(F);this.output.write(C.join(` -`)),this._prevFrame=D;return}this.output.write(o.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}class KF extends Q0{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(u)=>{this.output.write(o.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var lC;lC=new WeakMap;var pC=Object.defineProperty,iC=(D,u,F)=>(u in D)?pC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,$3=(D,u,F)=>(iC(D,typeof u!="symbol"?u+"":u,F),F);class VF extends Q0{constructor(D){super(D,!1),$3(this,"options"),$3(this,"cursor",0),this.options=D.options,this.cursor=this.options.findIndex(({value:u})=>u===D.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(u)=>{switch(u){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class HF extends Q0{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let D=this.value.slice(0,this.cursor),[u,...F]=this.value.slice(this.cursor);return`${D}${Z3.default.inverse(u)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}}var M=bD($F(),1),X0=bD(BF(),1);import ND from"process";function nC(){return ND.platform!=="win32"?ND.env.TERM!=="linux":!!ND.env.CI||!!ND.env.WT_SESSION||!!ND.env.TERMINUS_SUBLIME||ND.env.ConEmuTask==="{cmd::Cmder}"||ND.env.TERM_PROGRAM==="Terminus-Sublime"||ND.env.TERM_PROGRAM==="vscode"||ND.env.TERM==="xterm-256color"||ND.env.TERM==="alacritty"||ND.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var AF=nC(),c=(D,u)=>AF?D:u,aC=c("\u25C6","*"),A3=c("\u25A0","x"),z3=c("\u25B2","x"),GF=c("\u25C7","o"),mE=c("\u250C","T"),h=c("\u2502","|"),Mu=c("\u2514","\u2014"),zF=c("\u25CF",">"),UF=c("\u25CB"," "),cE=c("\u25FB","[\u2022]"),dE=c("\u25FC","[+]"),lE=c("\u25FB","[ ]"),pE=c("\u25AA","\u2022"),iE=c("\u2500","-"),nE=c("\u256E","+"),aE=c("\u251C","+"),rE=c("\u256F","+"),rC=c("\u25CF","\u2022"),oC=c("\u25C6","*"),sC=c("\u25B2","!"),tC=c("\u25A0","x"),WF=(D)=>{switch(D){case"initial":case"active":return M.default.cyan(aC);case"cancel":return M.default.red(A3);case"error":return M.default.yellow(z3);case"submit":return M.default.green(GF)}},eC=(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):u0,Z=E{let z=V===0&&X,U=V===H.length-1&&Z;return z||U?M.default.dim("..."):C(J,V+Q===u)})},U3=(D)=>new HF({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let u=`${M.default.gray(h)} +`)),this._prevFrame=D;return}this.output.write(o.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}class KF extends Q0{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(u)=>{this.output.write(o.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var iC;iC=new WeakMap;var nC=Object.defineProperty,aC=(D,u,F)=>(u in D)?nC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,$3=(D,u,F)=>(aC(D,typeof u!="symbol"?u+"":u,F),F);class VF extends Q0{constructor(D){super(D,!1),$3(this,"options"),$3(this,"cursor",0),this.options=D.options,this.cursor=this.options.findIndex(({value:u})=>u===D.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(u)=>{switch(u){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class HF extends Q0{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let D=this.value.slice(0,this.cursor),[u,...F]=this.value.slice(this.cursor);return`${D}${Z3.default.inverse(u)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}}var M=bD($F(),1),X0=bD(BF(),1);import ND from"process";function rC(){return ND.platform!=="win32"?ND.env.TERM!=="linux":!!ND.env.CI||!!ND.env.WT_SESSION||!!ND.env.TERMINUS_SUBLIME||ND.env.ConEmuTask==="{cmd::Cmder}"||ND.env.TERM_PROGRAM==="Terminus-Sublime"||ND.env.TERM_PROGRAM==="vscode"||ND.env.TERM==="xterm-256color"||ND.env.TERM==="alacritty"||ND.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var AF=rC(),c=(D,u)=>AF?D:u,oC=c("\u25C6","*"),A3=c("\u25A0","x"),z3=c("\u25B2","x"),GF=c("\u25C7","o"),mE=c("\u250C","T"),h=c("\u2502","|"),Mu=c("\u2514","\u2014"),zF=c("\u25CF",">"),UF=c("\u25CB"," "),cE=c("\u25FB","[\u2022]"),dE=c("\u25FC","[+]"),lE=c("\u25FB","[ ]"),pE=c("\u25AA","\u2022"),iE=c("\u2500","-"),nE=c("\u256E","+"),aE=c("\u251C","+"),rE=c("\u256F","+"),sC=c("\u25CF","\u2022"),tC=c("\u25C6","*"),eC=c("\u25B2","!"),D7=c("\u25A0","x"),WF=(D)=>{switch(D){case"initial":case"active":return M.default.cyan(oC);case"cancel":return M.default.red(A3);case"error":return M.default.yellow(z3);case"submit":return M.default.green(GF)}},u7=(D)=>{let{cursor:u,options:F,style:C}=D,B=D.maxItems??Number.POSITIVE_INFINITY,$=Math.max(process.stdout.rows-4,0),E=Math.min($,Math.max(B,5)),Q=0;u>=Q+E-3?Q=Math.max(Math.min(u-E+3,F.length-E),0):u0,Z=E{let z=V===0&&X,U=V===H.length-1&&Z;return z||U?M.default.dim("..."):C(J,V+Q===u)})},U3=(D)=>new HF({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let u=`${M.default.gray(h)} ${WF(this.state)} ${D.message} `,F=D.placeholder?M.default.inverse(D.placeholder[0])+M.default.dim(D.placeholder.slice(1)):M.default.inverse(M.default.hidden("_")),C=this.value?this.valueWithCursor:F;switch(this.state){case"error":return`${u.trim()} ${M.default.yellow(h)} ${C} @@ -239,7 +244,7 @@ ${M.default.cyan(Mu)} `}}}).prompt()},Z0=(D)=>{let u=(F,C)=>{let B=F.label??String(F.value);switch(C){case"selected":return`${M.default.dim(B)}`;case"active":return`${M.default.green(zF)} ${B} ${F.hint?M.default.dim(`(${F.hint})`):""}`;case"cancelled":return`${M.default.strikethrough(M.default.dim(B))}`;default:return`${M.default.dim(UF)} ${M.default.dim(B)}`}};return new VF({options:D.options,initialValue:D.initialValue,render(){let F=`${M.default.gray(h)} ${WF(this.state)} ${D.message} `;switch(this.state){case"submit":return`${F}${M.default.gray(h)} ${u(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${M.default.gray(h)} ${u(this.options[this.cursor],"cancelled")} -${M.default.gray(h)}`;default:return`${F}${M.default.cyan(h)} ${eC({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(C,B)=>u(C,B?"active":"inactive")}).join(` +${M.default.gray(h)}`;default:return`${F}${M.default.cyan(h)} ${u7({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(C,B)=>u(C,B?"active":"inactive")}).join(` ${M.default.cyan(h)} `)} ${M.default.cyan(Mu)} `}}}).prompt()};var Bu=(D="")=>{process.stdout.write(`${M.default.gray(Mu)} ${M.default.red(D)} @@ -247,31 +252,31 @@ ${M.default.cyan(Mu)} `)};var DD={message:(D="",{symbol:u=M.default.gray(h)}={})=>{let F=[`${M.default.gray(h)}`];if(D){let[C,...B]=D.split(` `);F.push(`${u} ${C}`,...B.map(($)=>`${M.default.gray(h)} ${$}`))}process.stdout.write(`${F.join(` `)} -`)},info:(D)=>{DD.message(D,{symbol:M.default.blue(rC)})},success:(D)=>{DD.message(D,{symbol:M.default.green(oC)})},step:(D)=>{DD.message(D,{symbol:M.default.green(GF)})},warn:(D)=>{DD.message(D,{symbol:M.default.yellow(sC)})},warning:(D)=>{DD.warn(D)},error:(D)=>{DD.message(D,{symbol:M.default.red(tC)})}},oE=`${M.default.gray(h)} `;var G3=({indicator:D="dots"}={})=>{let u=AF?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],F=AF?80:120,C=process.env.CI==="true",B,$,E=!1,Q="",X,Z=performance.now(),J=(L)=>{let S=L>1?"Something went wrong":"Canceled";E&&R(S,L)},V=()=>J(2),H=()=>J(1),z=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",H),process.on("SIGTERM",H),process.on("exit",J)},U=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",H),process.removeListener("SIGTERM",H),process.removeListener("exit",J)},G=()=>{if(X===void 0)return;C&&process.stdout.write(` +`)},info:(D)=>{DD.message(D,{symbol:M.default.blue(sC)})},success:(D)=>{DD.message(D,{symbol:M.default.green(tC)})},step:(D)=>{DD.message(D,{symbol:M.default.green(GF)})},warn:(D)=>{DD.message(D,{symbol:M.default.yellow(eC)})},warning:(D)=>{DD.warn(D)},error:(D)=>{DD.message(D,{symbol:M.default.red(D7)})}},oE=`${M.default.gray(h)} `;var G3=({indicator:D="dots"}={})=>{let u=AF?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],F=AF?80:120,C=process.env.CI==="true",B,$,E=!1,Q="",X,Z=performance.now(),J=(L)=>{let S=L>1?"Something went wrong":"Canceled";E&&R(S,L)},V=()=>J(2),H=()=>J(1),z=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",H),process.on("SIGTERM",H),process.on("exit",J)},U=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",H),process.removeListener("SIGTERM",H),process.removeListener("exit",J)},G=()=>{if(X===void 0)return;C&&process.stdout.write(` `);let L=X.split(` `);process.stdout.write(X0.cursor.move(-999,L.length-1)),process.stdout.write(X0.erase.down(L.length))},j=(L)=>L.replace(/\.+$/,""),I=(L)=>{let S=(performance.now()-L)/1000,y=Math.floor(S/60),ZD=Math.floor(S%60);return y>0?`[${y}m ${ZD}s]`:`[${ZD}s]`},O=(L="")=>{E=!0,B=H3(),Q=j(L),Z=performance.now(),process.stdout.write(`${M.default.gray(h)} `);let S=0,y=0;z(),$=setInterval(()=>{if(C&&Q===X)return;G(),X=Q;let ZD=M.default.magenta(u[S]);if(C)process.stdout.write(`${ZD} ${Q}...`);else if(D==="timer")process.stdout.write(`${ZD} ${Q} ${I(Z)}`);else{let SD=".".repeat(Math.floor(y)).slice(0,3);process.stdout.write(`${ZD} ${Q}${SD}`)}S=S+1{E=!1,clearInterval($),G();let y=S===0?M.default.green(GF):S===1?M.default.red(A3):M.default.red(z3);Q=j(L??Q),D==="timer"?process.stdout.write(`${y} ${Q} ${I(Z)} `):process.stdout.write(`${y} ${Q} -`),U(),B()};return{start:O,stop:R,message:(L="")=>{Q=j(L??Q)}}};var W3=(D=0)=>(u)=>`\x1B[${u+D}m`,_3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,j3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},tE=Object.keys(x.modifier),D7=Object.keys(x.color),u7=Object.keys(x.bgColor),eE=[...D7,...u7];function F7(){let D=new Map;for(let[u,F]of Object.entries(x)){for(let[C,B]of Object.entries(F))x[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=x[C],D.set(B[0],B[1]);Object.defineProperty(x,u,{value:F,enumerable:!1})}return Object.defineProperty(x,"codes",{value:D,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=W3(),x.color.ansi256=_3(),x.color.ansi16m=j3(),x.bgColor.ansi=W3(10),x.bgColor.ansi256=_3(10),x.bgColor.ansi16m=j3(10),Object.defineProperties(x,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>x.rgbToAnsi256(...x.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>x.ansi256ToAnsi(x.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>x.ansi256ToAnsi(x.hexToAnsi256(u)),enumerable:!1}}),x}var C7=F7(),OD=C7;import _F from"process";import B7 from"os";import M3 from"tty";function UD(D,u=globalThis.Deno?globalThis.Deno.args:_F.argv){let F=D.startsWith("-")?"":D.length===1?"-":"--",C=u.indexOf(F+D),B=u.indexOf("--");return C!==-1&&(B===-1||C=2,has16m:D>=3}}function Q7(D,{streamIsTTY:u,sniffFlags:F=!0}={}){let C=E7();if(C!==void 0)Y0=C;let B=F?Y0:C;if(B===0)return 0;if(F){if(UD("color=16m")||UD("color=full")||UD("color=truecolor"))return 3;if(UD("color=256"))return 2}if("TF_BUILD"in f&&"AGENT_NAME"in f)return 1;if(D&&!u&&B===void 0)return 0;let $=B||0;if(f.TERM==="dumb")return $;if(_F.platform==="win32"){let E=B7.release().split(".");if(Number(E[0])>=10&&Number(E[2])>=10586)return Number(E[2])>=14931?3:2;return 1}if("CI"in f){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((E)=>(E in f)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((E)=>(E in f))||f.CI_NAME==="codeship")return 1;return $}if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if(f.TERM==="xterm-kitty")return 3;if(f.TERM==="xterm-ghostty")return 3;if(f.TERM==="wezterm")return 3;if("TERM_PROGRAM"in f){let E=Number.parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return E>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(f.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM))return 1;if("COLORTERM"in f)return 1;return $}function R3(D,u={}){let F=Q7(D,{streamIsTTY:D&&D.isTTY,...u});return $7(F)}var X7={stdout:R3({isTTY:M3.isatty(1)}),stderr:R3({isTTY:M3.isatty(2)})},L3=X7;function I3(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 N3(D,u,F,C){let B=0,$="";do{let E=D[C-1]==="\r";$+=D.slice(B,E?C-1:C)+u+(E?`\r +`),U(),B()};return{start:O,stop:R,message:(L="")=>{Q=j(L??Q)}}};var W3=(D=0)=>(u)=>`\x1B[${u+D}m`,_3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,j3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,x={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},tE=Object.keys(x.modifier),F7=Object.keys(x.color),C7=Object.keys(x.bgColor),eE=[...F7,...C7];function B7(){let D=new Map;for(let[u,F]of Object.entries(x)){for(let[C,B]of Object.entries(F))x[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=x[C],D.set(B[0],B[1]);Object.defineProperty(x,u,{value:F,enumerable:!1})}return Object.defineProperty(x,"codes",{value:D,enumerable:!1}),x.color.close="\x1B[39m",x.bgColor.close="\x1B[49m",x.color.ansi=W3(),x.color.ansi256=_3(),x.color.ansi16m=j3(),x.bgColor.ansi=W3(10),x.bgColor.ansi256=_3(10),x.bgColor.ansi16m=j3(10),Object.defineProperties(x,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>x.rgbToAnsi256(...x.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>x.ansi256ToAnsi(x.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>x.ansi256ToAnsi(x.hexToAnsi256(u)),enumerable:!1}}),x}var E7=B7(),OD=E7;import _F from"process";import $7 from"os";import M3 from"tty";function UD(D,u=globalThis.Deno?globalThis.Deno.args:_F.argv){let F=D.startsWith("-")?"":D.length===1?"-":"--",C=u.indexOf(F+D),B=u.indexOf("--");return C!==-1&&(B===-1||C=2,has16m:D>=3}}function Z7(D,{streamIsTTY:u,sniffFlags:F=!0}={}){let C=Q7();if(C!==void 0)Y0=C;let B=F?Y0:C;if(B===0)return 0;if(F){if(UD("color=16m")||UD("color=full")||UD("color=truecolor"))return 3;if(UD("color=256"))return 2}if("TF_BUILD"in f&&"AGENT_NAME"in f)return 1;if(D&&!u&&B===void 0)return 0;let $=B||0;if(f.TERM==="dumb")return $;if(_F.platform==="win32"){let E=$7.release().split(".");if(Number(E[0])>=10&&Number(E[2])>=10586)return Number(E[2])>=14931?3:2;return 1}if("CI"in f){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((E)=>(E in f)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((E)=>(E in f))||f.CI_NAME==="codeship")return 1;return $}if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if(f.TERM==="xterm-kitty")return 3;if(f.TERM==="xterm-ghostty")return 3;if(f.TERM==="wezterm")return 3;if("TERM_PROGRAM"in f){let E=Number.parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return E>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(f.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM))return 1;if("COLORTERM"in f)return 1;return $}function R3(D,u={}){let F=Z7(D,{streamIsTTY:D&&D.isTTY,...u});return X7(F)}var J7={stdout:R3({isTTY:M3.isatty(1)}),stderr:R3({isTTY:M3.isatty(2)})},L3=J7;function I3(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 N3(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:O3,stderr:T3}=L3,jF=Symbol("GENERATOR"),Eu=Symbol("STYLER"),Ru=Symbol("IS_EMPTY"),w3=["ansi","ansi","ansi256","ansi16m"],$u=Object.create(null),Z7=(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=O3?O3.level:0;D.level=u.level===void 0?F:u.level};var J7=(D)=>{let u=(...F)=>F.join(" ");return Z7(u,D),Object.setPrototypeOf(u,Lu.prototype),u};function Lu(D){return J7(D)}Object.setPrototypeOf(Lu.prototype,Function.prototype);for(let[D,u]of Object.entries(OD))$u[D]={get(){let F=q0(this,RF(u.open,u.close,this[Eu]),this[Ru]);return Object.defineProperty(this,D,{value:F}),F}};$u.visible={get(){let D=q0(this,this[Eu],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var MF=(D,u,F,...C)=>{if(D==="rgb"){if(u==="ansi16m")return OD[F].ansi16m(...C);if(u==="ansi256")return OD[F].ansi256(OD.rgbToAnsi256(...C));return OD[F].ansi(OD.rgbToAnsi(...C))}if(D==="hex")return MF("rgb",u,F,...OD.hexToRgb(...C));return OD[F][D](...C)},Y7=["rgb","hex","ansi256"];for(let D of Y7){$u[D]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,w3[F],"color",...C),OD.color.close,this[Eu]);return q0(this,B,this[Ru])}}};let u="bg"+D[0].toUpperCase()+D.slice(1);$u[u]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,w3[F],"bgColor",...C),OD.bgColor.close,this[Eu]);return q0(this,B,this[Ru])}}}}var q7=Object.defineProperties(()=>{},{...$u,level:{enumerable:!0,get(){return this[jF].level},set(D){this[jF].level=D}}}),RF=(D,u,F)=>{let C,B;if(F===void 0)C=D,B=u;else C=F.openAll+D,B=u+F.closeAll;return{open:D,close:u,openAll:C,closeAll:B,parent:F}},q0=(D,u,F)=>{let C=(...B)=>K7(C,B.length===1?""+B[0]:B.join(" "));return Object.setPrototypeOf(C,q7),C[jF]=D,C[Eu]=u,C[Ru]=F,C},K7=(D,u)=>{if(D.level<=0||!u)return D[Ru]?"":u;let F=D[Eu];if(F===void 0)return u;let{openAll:C,closeAll:B}=F;if(u.includes("\x1B"))while(F!==void 0)u=I3(u,F.close,F.open),F=F.parent;let $=u.indexOf(` -`);if($!==-1)u=N3(u,B,C,$);return C+u+B};Object.defineProperties(Lu.prototype,$u);var V7=Lu(),Z5=Lu({level:T3?T3.level:0});var N=V7;var wF=bD(y3(),1),s=(...D)=>{let u,F;if(D.length===0)throw new Error("Missing gradient colors");if(!Array.isArray(D[0])){if(D.length===1)throw new Error(`Expected an array of colors, received ${JSON.stringify(D[0])}`);u=wF.default(...D)}else u=wF.default(D[0]),F=PF(D[1]);let C=(B,$)=>{return H7(B?B.toString():"",u,$??F)};return C.multiline=(B,$)=>A7(B?B.toString():"",u,$??F),C},h3=(D,u,F)=>{return u.interpolation?.toLowerCase()==="hsv"?D.hsv(F,u.hsvSpin?.toLowerCase()||!1):D.rgb(F)};function H7(D,u,F){let C=PF(F),B=Math.max(D.replace(/\s/g,"").length,u.stops.length),$=h3(u,C,B),E="";for(let Q of D)E+=Q.match(/\s/g)?Q:N.hex($.shift()?.toHex()||"#000")(Q);return E}function A7(D,u,F){let C=PF(F),B=D.split(` +`,B)}while(C!==-1);return $+=D.slice(B),$}var{stdout:O3,stderr:T3}=L3,jF=Symbol("GENERATOR"),Eu=Symbol("STYLER"),Ru=Symbol("IS_EMPTY"),w3=["ansi","ansi","ansi256","ansi16m"],$u=Object.create(null),Y7=(D,u={})=>{if(u.level&&!(Number.isInteger(u.level)&&u.level>=0&&u.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let F=O3?O3.level:0;D.level=u.level===void 0?F:u.level};var q7=(D)=>{let u=(...F)=>F.join(" ");return Y7(u,D),Object.setPrototypeOf(u,Lu.prototype),u};function Lu(D){return q7(D)}Object.setPrototypeOf(Lu.prototype,Function.prototype);for(let[D,u]of Object.entries(OD))$u[D]={get(){let F=q0(this,RF(u.open,u.close,this[Eu]),this[Ru]);return Object.defineProperty(this,D,{value:F}),F}};$u.visible={get(){let D=q0(this,this[Eu],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var MF=(D,u,F,...C)=>{if(D==="rgb"){if(u==="ansi16m")return OD[F].ansi16m(...C);if(u==="ansi256")return OD[F].ansi256(OD.rgbToAnsi256(...C));return OD[F].ansi(OD.rgbToAnsi(...C))}if(D==="hex")return MF("rgb",u,F,...OD.hexToRgb(...C));return OD[F][D](...C)},K7=["rgb","hex","ansi256"];for(let D of K7){$u[D]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,w3[F],"color",...C),OD.color.close,this[Eu]);return q0(this,B,this[Ru])}}};let u="bg"+D[0].toUpperCase()+D.slice(1);$u[u]={get(){let{level:F}=this;return function(...C){let B=RF(MF(D,w3[F],"bgColor",...C),OD.bgColor.close,this[Eu]);return q0(this,B,this[Ru])}}}}var V7=Object.defineProperties(()=>{},{...$u,level:{enumerable:!0,get(){return this[jF].level},set(D){this[jF].level=D}}}),RF=(D,u,F)=>{let C,B;if(F===void 0)C=D,B=u;else C=F.openAll+D,B=u+F.closeAll;return{open:D,close:u,openAll:C,closeAll:B,parent:F}},q0=(D,u,F)=>{let C=(...B)=>H7(C,B.length===1?""+B[0]:B.join(" "));return Object.setPrototypeOf(C,V7),C[jF]=D,C[Eu]=u,C[Ru]=F,C},H7=(D,u)=>{if(D.level<=0||!u)return D[Ru]?"":u;let F=D[Eu];if(F===void 0)return u;let{openAll:C,closeAll:B}=F;if(u.includes("\x1B"))while(F!==void 0)u=I3(u,F.close,F.open),F=F.parent;let $=u.indexOf(` +`);if($!==-1)u=N3(u,B,C,$);return C+u+B};Object.defineProperties(Lu.prototype,$u);var A7=Lu(),Z5=Lu({level:T3?T3.level:0});var N=A7;var wF=bD(y3(),1),s=(...D)=>{let u,F;if(D.length===0)throw new Error("Missing gradient colors");if(!Array.isArray(D[0])){if(D.length===1)throw new Error(`Expected an array of colors, received ${JSON.stringify(D[0])}`);u=wF.default(...D)}else u=wF.default(D[0]),F=PF(D[1]);let C=(B,$)=>{return z7(B?B.toString():"",u,$??F)};return C.multiline=(B,$)=>U7(B?B.toString():"",u,$??F),C},h3=(D,u,F)=>{return u.interpolation?.toLowerCase()==="hsv"?D.hsv(F,u.hsvSpin?.toLowerCase()||!1):D.rgb(F)};function z7(D,u,F){let C=PF(F),B=Math.max(D.replace(/\s/g,"").length,u.stops.length),$=h3(u,C,B),E="";for(let Q of D)E+=Q.match(/\s/g)?Q:N.hex($.shift()?.toHex()||"#000")(Q);return E}function U7(D,u,F){let C=PF(F),B=D.split(` `),$=Math.max(...B.map((X)=>X.length),u.stops.length),E=h3(u,C,$),Q=[];for(let X of B){let Z=E.slice(0),J="";for(let V of X)J+=N.hex(Z.shift()?.toHex()||"#000")(V);Q.push(J)}return Q.join(` -`)}function PF(D){let u={interpolation:"rgb",hsvSpin:"short",...D};if(D!==void 0&&typeof D!=="object")throw new TypeError(`Expected \`options\` to be an \`object\`, got \`${typeof D}\``);if(typeof u.interpolation!=="string")throw new TypeError(`Expected \`options.interpolation\` to be \`rgb\` or \`hsv\`, got \`${typeof u.interpolation}\``);if(u.interpolation.toLowerCase()==="hsv"&&typeof u.hsvSpin!=="string")throw new TypeError(`Expected \`options.hsvSpin\` to be a \`short\` or \`long\`, got \`${typeof u.hsvSpin}\``);return u}var qD={atlas:{colors:["#feac5e","#c779d0","#4bc0c8"],options:{}},cristal:{colors:["#bdfff3","#4ac29a"],options:{}},teen:{colors:["#77a1d3","#79cbca","#e684ae"],options:{}},mind:{colors:["#473b7b","#3584a7","#30d2be"],options:{}},morning:{colors:["#ff5f6d","#ffc371"],options:{interpolation:"hsv"}},vice:{colors:["#5ee7df","#b490ca"],options:{interpolation:"hsv"}},passion:{colors:["#f43b47","#453a94"],options:{}},fruit:{colors:["#ff4e50","#f9d423"],options:{}},instagram:{colors:["#833ab4","#fd1d1d","#fcb045"],options:{}},retro:{colors:["#3f51b1","#5a55ae","#7b5fac","#8f6aae","#a86aa4","#cc6b8e","#f18271","#f3a469","#f7c978"],options:{}},summer:{colors:["#fdbb2d","#22c1c3"],options:{}},rainbow:{colors:["#ff0000","#ff0100"],options:{interpolation:"hsv",hsvSpin:"long"}},pastel:{colors:["#74ebd5","#74ecd5"],options:{interpolation:"hsv",hsvSpin:"long"}}};function KD(D){let u=(F)=>s(...D.colors)(F,D.options);return u.multiline=(F="")=>s(...D.colors).multiline(F,D.options),u}var SF=s,z7=KD(qD.atlas),U7=KD(qD.cristal),G7=KD(qD.teen),W7=KD(qD.mind),_7=KD(qD.morning),j7=KD(qD.vice),M7=KD(qD.passion),R7=KD(qD.fruit),L7=KD(qD.instagram),I7=KD(qD.retro),N7=KD(qD.summer),O7=KD(qD.rainbow),T7=KD(qD.pastel);s.atlas=z7;s.cristal=U7;s.teen=G7;s.mind=W7;s.morning=_7;s.vice=j7;s.passion=M7;s.fruit=R7;s.instagram=L7;s.retro=I7;s.summer=N7;s.rainbow=O7;s.pastel=T7;import U0 from"process";function kF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var w7=kF();function Nu(D){if(typeof D!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(w7,"")}function g3(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 m3(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function c3(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 P7(D){if(!Number.isSafeInteger(D))throw new TypeError(`Expected a code point, got \`${typeof D}\`.`)}function d3(D,{ambiguousAsWide:u=!1}={}){if(P7(D),m3(D)||c3(D)||u&&g3(D))return 2;return 1}var l3=()=>{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 S7=new Intl.Segmenter,k7=/^\p{Default_Ignorable_Code_Point}$/u;function uD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:C=!1}=u;if(!C)D=Nu(D);if(D.length===0)return 0;let B=0,$={ambiguousAsWide:!F};for(let{segment:E}of S7.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(k7.test(E))continue;if(l3().test(E)){B+=2;continue}B+=d3(Q,$)}return B}function V0(D){let u=0;for(let F of D.split(` -`))u=Math.max(u,uD(F));return u}var W8=bD(xF(),1);var x7=/[\p{Lu}]/u,f7=/[\p{Ll}]/u,n3=/^[\p{Lu}](?![\p{Lu}])/gu,o3=/([\p{Alpha}\p{N}_]|$)/u,fF=/[_.\- ]+/,b7=new RegExp("^"+fF.source),a3=new RegExp(fF.source+o3.source,"gu"),r3=new RegExp("\\d+"+o3.source,"gu"),y7=(D,u,F,C)=>{let B=!1,$=!1,E=!1,Q=!1;for(let X=0;X2?D[X-3]==="-":!0,B&&x7.test(Z))D=D.slice(0,X)+"-"+D.slice(X),B=!1,E=$,$=!0,X++;else if($&&E&&f7.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},h7=(D,u)=>{return n3.lastIndex=0,D.replaceAll(n3,(F)=>u(F))},g7=(D,u)=>{return a3.lastIndex=0,r3.lastIndex=0,D.replaceAll(r3,(F,C,B)=>["_","-"].includes(D.charAt(B+F.length))?F:u(F)).replaceAll(a3,(F,C)=>u(C))};function bF(D,u){if(!(typeof D==="string"||Array.isArray(D)))throw new TypeError("Expected the input to be `string | string[]`");if(u={pascalCase:!1,preserveConsecutiveUppercase:!1,...u},Array.isArray(D))D=D.map(($)=>$.trim()).filter(($)=>$.length).join("-");else D=D.trim();if(D.length===0)return"";let F=u.locale===!1?($)=>$.toLowerCase():($)=>$.toLocaleLowerCase(u.locale),C=u.locale===!1?($)=>$.toUpperCase():($)=>$.toLocaleUpperCase(u.locale);if(D.length===1){if(fF.test(D))return"";return u.pascalCase?C(D):F(D)}if(D!==F(D))D=y7(D,F,C,u.preserveConsecutiveUppercase);if(D=D.replace(b7,""),D=u.preserveConsecutiveUppercase?h7(D,F):F(D),u.pascalCase)D=C(D.charAt(0))+D.slice(1);return g7(D,C)}var cF=bD(X8(),1);var Z8=(D=0)=>(u)=>`\x1B[${u+D}m`,J8=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,Y8=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},b5=Object.keys(b.modifier),a7=Object.keys(b.color),r7=Object.keys(b.bgColor),y5=[...a7,...r7];function o7(){let D=new Map;for(let[u,F]of Object.entries(b)){for(let[C,B]of Object.entries(F))b[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=b[C],D.set(B[0],B[1]);Object.defineProperty(b,u,{value:F,enumerable:!1})}return Object.defineProperty(b,"codes",{value:D,enumerable:!1}),b.color.close="\x1B[39m",b.bgColor.close="\x1B[49m",b.color.ansi=Z8(),b.color.ansi256=J8(),b.color.ansi16m=Y8(),b.bgColor.ansi=Z8(10),b.bgColor.ansi256=J8(10),b.bgColor.ansi16m=Y8(10),Object.defineProperties(b,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>b.rgbToAnsi256(...b.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>b.ansi256ToAnsi(b.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>b.ansi256ToAnsi(b.hexToAnsi256(u)),enumerable:!1}}),b}var s7=o7(),q8=s7;var A0=new Set(["\x1B","\x9B"]),t7=39,mF="\x07",H8="[",e7="]",A8="m",H0=`${e7}8;;`,K8=(D)=>`${A0.values().next().value}${H8}${D}${A8}`,V8=(D)=>`${A0.values().next().value}${H0}${D}${mF}`,D9=(D)=>D.split(" ").map((u)=>uD(u)),gF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=uD(Nu(D.at(-1)));for(let[Q,X]of C.entries()){let Z=uD(X);if(E+Z<=F)D[D.length-1]+=X;else D.push(X),E=0;if(A0.has(X))B=!0,$=C.slice(Q+1,Q+1+H0.length).join("")===H0;if(B){if($){if(X===mF)B=!1,$=!1}else if(X===A8)B=!1;continue}if(E+=Z,E===F&&Q0&&D.length>1)D[D.length-2]+=D.pop()},u9=(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("")},F9=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=D9(D),Q=[""];for(let[V,H]of D.split(" ").entries()){if(F.trim!==!1)Q[Q.length-1]=Q.at(-1).trimStart();let z=uD(Q.at(-1));if(V!==0){if(z>=u&&(F.wordWrap===!1||F.trim===!1))Q.push(""),z=0;if(z>0||F.trim===!1)Q[Q.length-1]+=" ",z++}if(F.hard&&E[V]>u){let U=u-z,G=1+Math.floor((E[V]-U-1)/u);if(Math.floor((E[V]-1)/u)u&&z>0&&E[V]>0){if(F.wordWrap===!1&&zu&&F.wordWrap===!1){gF(Q,H,u);continue}Q[Q.length-1]+=H}if(F.trim!==!1)Q=Q.map((V)=>u9(V));let X=Q.join(` -`),Z=[...X],J=0;for(let[V,H]of Z.entries()){if(C+=H,A0.has(H)){let{groups:U}=new RegExp(`(?:\\${H8}(?\\d+)m|\\${H0}(?.*)${mF})`).exec(X.slice(J))||{groups:{}};if(U.code!==void 0){let G=Number.parseFloat(U.code);B=G===t7?void 0:G}else if(U.uri!==void 0)$=U.uri.length===0?void 0:U.uri}let z=q8.codes.get(Number(B));if(Z[V+1]===` +`)}function PF(D){let u={interpolation:"rgb",hsvSpin:"short",...D};if(D!==void 0&&typeof D!=="object")throw new TypeError(`Expected \`options\` to be an \`object\`, got \`${typeof D}\``);if(typeof u.interpolation!=="string")throw new TypeError(`Expected \`options.interpolation\` to be \`rgb\` or \`hsv\`, got \`${typeof u.interpolation}\``);if(u.interpolation.toLowerCase()==="hsv"&&typeof u.hsvSpin!=="string")throw new TypeError(`Expected \`options.hsvSpin\` to be a \`short\` or \`long\`, got \`${typeof u.hsvSpin}\``);return u}var qD={atlas:{colors:["#feac5e","#c779d0","#4bc0c8"],options:{}},cristal:{colors:["#bdfff3","#4ac29a"],options:{}},teen:{colors:["#77a1d3","#79cbca","#e684ae"],options:{}},mind:{colors:["#473b7b","#3584a7","#30d2be"],options:{}},morning:{colors:["#ff5f6d","#ffc371"],options:{interpolation:"hsv"}},vice:{colors:["#5ee7df","#b490ca"],options:{interpolation:"hsv"}},passion:{colors:["#f43b47","#453a94"],options:{}},fruit:{colors:["#ff4e50","#f9d423"],options:{}},instagram:{colors:["#833ab4","#fd1d1d","#fcb045"],options:{}},retro:{colors:["#3f51b1","#5a55ae","#7b5fac","#8f6aae","#a86aa4","#cc6b8e","#f18271","#f3a469","#f7c978"],options:{}},summer:{colors:["#fdbb2d","#22c1c3"],options:{}},rainbow:{colors:["#ff0000","#ff0100"],options:{interpolation:"hsv",hsvSpin:"long"}},pastel:{colors:["#74ebd5","#74ecd5"],options:{interpolation:"hsv",hsvSpin:"long"}}};function KD(D){let u=(F)=>s(...D.colors)(F,D.options);return u.multiline=(F="")=>s(...D.colors).multiline(F,D.options),u}var SF=s,G7=KD(qD.atlas),W7=KD(qD.cristal),_7=KD(qD.teen),j7=KD(qD.mind),M7=KD(qD.morning),R7=KD(qD.vice),L7=KD(qD.passion),I7=KD(qD.fruit),N7=KD(qD.instagram),O7=KD(qD.retro),T7=KD(qD.summer),w7=KD(qD.rainbow),P7=KD(qD.pastel);s.atlas=G7;s.cristal=W7;s.teen=_7;s.mind=j7;s.morning=M7;s.vice=R7;s.passion=L7;s.fruit=I7;s.instagram=N7;s.retro=O7;s.summer=T7;s.rainbow=w7;s.pastel=P7;import U0 from"process";function kF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var S7=kF();function Nu(D){if(typeof D!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(S7,"")}function g3(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 m3(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function c3(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D>=94192&&D<=94198||D>=94208&&D<=101589||D>=101631&&D<=101662||D>=101760&&D<=101874||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128728||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129674||D>=129678&&D<=129734||D===129736||D>=129741&&D<=129756||D>=129759&&D<=129770||D>=129775&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function k7(D){if(!Number.isSafeInteger(D))throw new TypeError(`Expected a code point, got \`${typeof D}\`.`)}function d3(D,{ambiguousAsWide:u=!1}={}){if(k7(D),m3(D)||c3(D)||u&&g3(D))return 2;return 1}var l3=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var v7=new Intl.Segmenter,x7=/^\p{Default_Ignorable_Code_Point}$/u;function uD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:C=!1}=u;if(!C)D=Nu(D);if(D.length===0)return 0;let B=0,$={ambiguousAsWide:!F};for(let{segment:E}of v7.segment(D)){let Q=E.codePointAt(0);if(Q<=31||Q>=127&&Q<=159)continue;if(Q>=8203&&Q<=8207||Q===65279)continue;if(Q>=768&&Q<=879||Q>=6832&&Q<=6911||Q>=7616&&Q<=7679||Q>=8400&&Q<=8447||Q>=65056&&Q<=65071)continue;if(Q>=55296&&Q<=57343)continue;if(Q>=65024&&Q<=65039)continue;if(x7.test(E))continue;if(l3().test(E)){B+=2;continue}B+=d3(Q,$)}return B}function V0(D){let u=0;for(let F of D.split(` +`))u=Math.max(u,uD(F));return u}var W8=bD(xF(),1);var b7=/[\p{Lu}]/u,y7=/[\p{Ll}]/u,n3=/^[\p{Lu}](?![\p{Lu}])/gu,o3=/([\p{Alpha}\p{N}_]|$)/u,fF=/[_.\- ]+/,h7=new RegExp("^"+fF.source),a3=new RegExp(fF.source+o3.source,"gu"),r3=new RegExp("\\d+"+o3.source,"gu"),g7=(D,u,F,C)=>{let B=!1,$=!1,E=!1,Q=!1;for(let X=0;X2?D[X-3]==="-":!0,B&&b7.test(Z))D=D.slice(0,X)+"-"+D.slice(X),B=!1,E=$,$=!0,X++;else if($&&E&&y7.test(Z)&&(!Q||C))D=D.slice(0,X-1)+"-"+D.slice(X-1),E=$,$=!1,B=!0;else B=u(Z)===Z&&F(Z)!==Z,E=$,$=F(Z)===Z&&u(Z)!==Z}return D},m7=(D,u)=>{return n3.lastIndex=0,D.replaceAll(n3,(F)=>u(F))},c7=(D,u)=>{return a3.lastIndex=0,r3.lastIndex=0,D.replaceAll(r3,(F,C,B)=>["_","-"].includes(D.charAt(B+F.length))?F:u(F)).replaceAll(a3,(F,C)=>u(C))};function bF(D,u){if(!(typeof D==="string"||Array.isArray(D)))throw new TypeError("Expected the input to be `string | string[]`");if(u={pascalCase:!1,preserveConsecutiveUppercase:!1,...u},Array.isArray(D))D=D.map(($)=>$.trim()).filter(($)=>$.length).join("-");else D=D.trim();if(D.length===0)return"";let F=u.locale===!1?($)=>$.toLowerCase():($)=>$.toLocaleLowerCase(u.locale),C=u.locale===!1?($)=>$.toUpperCase():($)=>$.toLocaleUpperCase(u.locale);if(D.length===1){if(fF.test(D))return"";return u.pascalCase?C(D):F(D)}if(D!==F(D))D=g7(D,F,C,u.preserveConsecutiveUppercase);if(D=D.replace(h7,""),D=u.preserveConsecutiveUppercase?m7(D,F):F(D),u.pascalCase)D=C(D.charAt(0))+D.slice(1);return c7(D,C)}var cF=bD(X8(),1);var Z8=(D=0)=>(u)=>`\x1B[${u+D}m`,J8=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,Y8=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,b={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},b5=Object.keys(b.modifier),o7=Object.keys(b.color),s7=Object.keys(b.bgColor),y5=[...o7,...s7];function t7(){let D=new Map;for(let[u,F]of Object.entries(b)){for(let[C,B]of Object.entries(F))b[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=b[C],D.set(B[0],B[1]);Object.defineProperty(b,u,{value:F,enumerable:!1})}return Object.defineProperty(b,"codes",{value:D,enumerable:!1}),b.color.close="\x1B[39m",b.bgColor.close="\x1B[49m",b.color.ansi=Z8(),b.color.ansi256=J8(),b.color.ansi16m=Y8(),b.bgColor.ansi=Z8(10),b.bgColor.ansi256=J8(10),b.bgColor.ansi16m=Y8(10),Object.defineProperties(b,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>b.rgbToAnsi256(...b.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>b.ansi256ToAnsi(b.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>b.ansi256ToAnsi(b.hexToAnsi256(u)),enumerable:!1}}),b}var e7=t7(),q8=e7;var A0=new Set(["\x1B","\x9B"]),D9=39,mF="\x07",H8="[",u9="]",A8="m",H0=`${u9}8;;`,K8=(D)=>`${A0.values().next().value}${H8}${D}${A8}`,V8=(D)=>`${A0.values().next().value}${H0}${D}${mF}`,F9=(D)=>D.split(" ").map((u)=>uD(u)),gF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=uD(Nu(D.at(-1)));for(let[Q,X]of C.entries()){let Z=uD(X);if(E+Z<=F)D[D.length-1]+=X;else D.push(X),E=0;if(A0.has(X))B=!0,$=C.slice(Q+1,Q+1+H0.length).join("")===H0;if(B){if($){if(X===mF)B=!1,$=!1}else if(X===A8)B=!1;continue}if(E+=Z,E===F&&Q0&&D.length>1)D[D.length-2]+=D.pop()},C9=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(uD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},B9=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=F9(D),Q=[""];for(let[V,H]of D.split(" ").entries()){if(F.trim!==!1)Q[Q.length-1]=Q.at(-1).trimStart();let z=uD(Q.at(-1));if(V!==0){if(z>=u&&(F.wordWrap===!1||F.trim===!1))Q.push(""),z=0;if(z>0||F.trim===!1)Q[Q.length-1]+=" ",z++}if(F.hard&&E[V]>u){let U=u-z,G=1+Math.floor((E[V]-U-1)/u);if(Math.floor((E[V]-1)/u)u&&z>0&&E[V]>0){if(F.wordWrap===!1&&zu&&F.wordWrap===!1){gF(Q,H,u);continue}Q[Q.length-1]+=H}if(F.trim!==!1)Q=Q.map((V)=>C9(V));let X=Q.join(` +`),Z=[...X],J=0;for(let[V,H]of Z.entries()){if(C+=H,A0.has(H)){let{groups:U}=new RegExp(`(?:\\${H8}(?\\d+)m|\\${H0}(?.*)${mF})`).exec(X.slice(J))||{groups:{}};if(U.code!==void 0){let G=Number.parseFloat(U.code);B=G===D9?void 0:G}else if(U.uri!==void 0)$=U.uri.length===0?void 0:U.uri}let z=q8.codes.get(Number(B));if(Z[V+1]===` `){if($)C+=V8("");if(B&&z)C+=K8(z)}else if(H===` `){if(B&&z)C+=K8(B);if($)C+=V8($)}J+=H.length}return C};function z0(D,u,F){return String(D).normalize().replaceAll(`\r `,` `).split(` -`).map((C)=>F9(C,u,F)).join(` -`)}var Y9=bD(xF(),1),pD=` -`,VD=" ",Ou="none",_8=()=>{let{env:D,stdout:u,stderr:F}=U0;if(u?.columns)return u.columns;if(F?.columns)return F.columns;if(D.COLUMNS)return Number.parseInt(D.COLUMNS,10);return 80},z8=(D)=>typeof D==="number"?{top:D,right:D*3,bottom:D,left:D*3}:{top:0,right:0,bottom:0,left:0,...D},Tu=(D)=>D===Ou?0:2,C9=(D)=>{let u=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],F;if(D===Ou){D={};for(let C of u)D[C]=""}if(typeof D==="string"){if(F=W8.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},B9=(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},E9=(D,{padding:u,width:F,textAlignment:C,height:B})=>{D=cF.default(D,{align:C});let $=D.split(pD),E=V0(D),Q=F-u.left-u.right;if(E>Q){let J=[];for(let V of $){let H=z0(V,Q,{hard:!0}),U=cF.default(H,{align:C}).split(` -`),G=Math.max(...U.map((j)=>uD(j)));for(let j of U){let I;switch(C){case"center":{I=VD.repeat((Q-G)/2)+j;break}case"right":{I=VD.repeat(Q-G)+j;break}default:{I=j;break}}J.push(I)}}$=J}if(C==="center"&&EVD.repeat((Q-E)/2)+J);else if(C==="right"&&EVD.repeat(Q-E)+J);let X=VD.repeat(u.left),Z=VD.repeat(u.right);if($=$.map((J)=>{let V=X+J+Z;return V+VD.repeat(F-uD(V))}),u.top>0)$=[...Array.from({length:u.top}).fill(VD.repeat(F)),...$];if(u.bottom>0)$=[...$,...Array.from({length:u.bottom}).fill(VD.repeat(F))];if(B&&$.length>B)$=$.slice(0,B);else if(B&&$.length{let C=(J)=>{let V=F.borderColor?Z9(F.borderColor)(J):J;return F.dimBorder?N.dim(V):V},B=(J)=>F.backgroundColor?J9(F.backgroundColor)(J):J,$=C9(F.borderStyle),E=_8(),Q=VD.repeat(F.margin.left);if(F.float==="center"){let J=Math.max((E-u-Tu(F.borderStyle))/2,0);Q=VD.repeat(J)}else if(F.float==="right"){let J=Math.max(E-u-F.margin.right-Tu(F.borderStyle),0);Q=VD.repeat(J)}let X="";if(F.margin.top)X+=pD.repeat(F.margin.top);if(F.borderStyle!==Ou||F.title)X+=C(Q+$.topLeft+(F.title?B9(F.title,$.top.repeat(u),F.titleAlignment):$.top.repeat(u))+$.topRight)+pD;let Z=D.split(pD);if(X+=Z.map((J)=>Q+C($.left)+B(J)+C($.right)).join(pD),F.borderStyle!==Ou)X+=pD+C(Q+$.bottomLeft+$.bottom.repeat(u)+$.bottomRight);if(F.margin.bottom)X+=pD.repeat(F.margin.bottom);return X},Q9=(D)=>{if(D.fullscreen&&U0?.stdout){let u=[U0.stdout.columns,U0.stdout.rows];if(typeof D.fullscreen==="function")u=D.fullscreen(...u);D.width||=u[0],D.height||=u[1]}return D.width&&=Math.max(1,D.width-Tu(D.borderStyle)),D.height&&=Math.max(1,D.height-Tu(D.borderStyle)),D},U8=(D,u)=>u===Ou?D:` ${D} `,X9=(D,u)=>{u=Q9(u);let F=u.width!==void 0,C=_8(),B=Tu(u.borderStyle),$=C-u.margin.left-u.margin.right-B,E=V0(z0(D,C-B,{hard:!0,trim:!1}))+u.padding.left+u.padding.right;if(u.title&&F)u.title=u.title.slice(0,Math.max(0,u.width-2)),u.title&&=U8(u.title,u.borderStyle);else if(u.title){if(u.title=u.title.slice(0,Math.max(0,$-2)),u.title){if(u.title=U8(u.title,u.borderStyle),uD(u.title)>E)u.width=uD(u.title)}}if(u.width||=E,!F){if(u.margin.left&&u.margin.right&&u.width>$){let X=(C-u.width-B)/(u.margin.left+u.margin.right);u.margin.left=Math.max(0,Math.floor(u.margin.left*X)),u.margin.right=Math.max(0,Math.floor(u.margin.right*X))}u.width=Math.min(u.width,C-B-u.margin.left-u.margin.right)}if(u.width-(u.padding.left+u.padding.right)<=0)u.padding.left=0,u.padding.right=0;if(u.height&&u.height-(u.padding.top+u.padding.bottom)<=0)u.padding.top=0,u.padding.bottom=0;return u},dF=(D)=>D.match(/^#(?:[0-f]{3}){1,2}$/i),G8=(D)=>typeof D==="string"&&(N[D]??dF(D)),Z9=(D)=>dF(D)?N.hex(D):N[D],J9=(D)=>dF(D)?N.bgHex(D):N[bF(["bg",D])];function G0(D,u){if(u={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...u},u.align)u.textAlignment=u.align;if(u.borderColor&&!G8(u.borderColor))throw new Error(`${u.borderColor} is not a valid borderColor`);if(u.backgroundColor&&!G8(u.backgroundColor))throw new Error(`${u.backgroundColor} is not a valid backgroundColor`);return u.padding=z8(u.padding),u.margin=z8(u.margin),u=X9(D,u),D=E9(D,u),$9(D,u.width,u)}import{platform as q9,homedir as K9}from"os";import{execSync as j8}from"child_process";import{join as wu}from"path";var lF=q9()==="win32",W0={installUv:()=>{if(lF)j8('powershell -Command "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe"});else j8("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/sh"})},getShellConfigPaths:()=>{let D=K9();if(lF)return[wu(D,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),wu(D,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1")];return[wu(D,".bashrc"),wu(D,".zshrc"),wu(D,".bash_profile")]},getAliasDefinition:(D,u)=>{if(lF)return`function ${D} { ${u} $args }`;return`alias ${D}='${u}'`}};$D();function W9(D){let u,F=0,C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];return{start(){u=setInterval(()=>{process.stdout.write(`\r${N.cyan(C[F%C.length])} ${D}`),F++},50)},stop(B,$=!0){clearInterval(u);let E=$?N.green("\u2713"):N.red("\u2717");process.stdout.write(`\r${E} ${B} -`)}}}var Pu=SF(["#ff0000","#ff4500","#ffa500","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"]),aF=SF(["#ff006e","#fb5607","#ffbe0b","#8338ec","#3a86ff"]);function _9(){W0.installUv(),process.env.PATH=`${P8()}/.cargo/bin:${process.env.PATH}`}function j9(){let D=Xu;if(!iD(D))return!1;try{let u=JSON.parse(Su(D,"utf8"));return!!(u.hooks?.SessionStart||u.hooks?.Stop||u.hooks?.PostToolUse)}catch{return!1}}async function M9(D){let u={};if(D){let $=await Cu({message:`\uD83E\uDDE0 Existing claude-mem installation detected. Your memories and data are safe! +`).map((C)=>B9(C,u,F)).join(` +`)}var K9=bD(xF(),1),pD=` +`,VD=" ",Ou="none",_8=()=>{let{env:D,stdout:u,stderr:F}=U0;if(u?.columns)return u.columns;if(F?.columns)return F.columns;if(D.COLUMNS)return Number.parseInt(D.COLUMNS,10);return 80},z8=(D)=>typeof D==="number"?{top:D,right:D*3,bottom:D,left:D*3}:{top:0,right:0,bottom:0,left:0,...D},Tu=(D)=>D===Ou?0:2,E9=(D)=>{let u=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],F;if(D===Ou){D={};for(let C of u)D[C]=""}if(typeof D==="string"){if(F=W8.default[D],!F)throw new TypeError(`Invalid border style: ${D}`)}else{if(typeof D?.vertical==="string")D.left=D.vertical,D.right=D.vertical;if(typeof D?.horizontal==="string")D.top=D.horizontal,D.bottom=D.horizontal;for(let C of u)if(D[C]===null||typeof D[C]!=="string")throw new TypeError(`Invalid border style: ${C}`);F=D}return F},$9=(D,u,F)=>{let C="",B=uD(D);switch(F){case"left":{C=D+u.slice(B);break}case"right":{C=u.slice(B)+D;break}default:{if(u=u.slice(B),u.length%2===1)u=u.slice(Math.floor(u.length/2)),C=u.slice(1)+D+u;else u=u.slice(u.length/2),C=u+D+u;break}}return C},Q9=(D,{padding:u,width:F,textAlignment:C,height:B})=>{D=cF.default(D,{align:C});let $=D.split(pD),E=V0(D),Q=F-u.left-u.right;if(E>Q){let J=[];for(let V of $){let H=z0(V,Q,{hard:!0}),U=cF.default(H,{align:C}).split(` +`),G=Math.max(...U.map((j)=>uD(j)));for(let j of U){let I;switch(C){case"center":{I=VD.repeat((Q-G)/2)+j;break}case"right":{I=VD.repeat(Q-G)+j;break}default:{I=j;break}}J.push(I)}}$=J}if(C==="center"&&EVD.repeat((Q-E)/2)+J);else if(C==="right"&&EVD.repeat(Q-E)+J);let X=VD.repeat(u.left),Z=VD.repeat(u.right);if($=$.map((J)=>{let V=X+J+Z;return V+VD.repeat(F-uD(V))}),u.top>0)$=[...Array.from({length:u.top}).fill(VD.repeat(F)),...$];if(u.bottom>0)$=[...$,...Array.from({length:u.bottom}).fill(VD.repeat(F))];if(B&&$.length>B)$=$.slice(0,B);else if(B&&$.length{let C=(J)=>{let V=F.borderColor?Y9(F.borderColor)(J):J;return F.dimBorder?N.dim(V):V},B=(J)=>F.backgroundColor?q9(F.backgroundColor)(J):J,$=E9(F.borderStyle),E=_8(),Q=VD.repeat(F.margin.left);if(F.float==="center"){let J=Math.max((E-u-Tu(F.borderStyle))/2,0);Q=VD.repeat(J)}else if(F.float==="right"){let J=Math.max(E-u-F.margin.right-Tu(F.borderStyle),0);Q=VD.repeat(J)}let X="";if(F.margin.top)X+=pD.repeat(F.margin.top);if(F.borderStyle!==Ou||F.title)X+=C(Q+$.topLeft+(F.title?$9(F.title,$.top.repeat(u),F.titleAlignment):$.top.repeat(u))+$.topRight)+pD;let Z=D.split(pD);if(X+=Z.map((J)=>Q+C($.left)+B(J)+C($.right)).join(pD),F.borderStyle!==Ou)X+=pD+C(Q+$.bottomLeft+$.bottom.repeat(u)+$.bottomRight);if(F.margin.bottom)X+=pD.repeat(F.margin.bottom);return X},Z9=(D)=>{if(D.fullscreen&&U0?.stdout){let u=[U0.stdout.columns,U0.stdout.rows];if(typeof D.fullscreen==="function")u=D.fullscreen(...u);D.width||=u[0],D.height||=u[1]}return D.width&&=Math.max(1,D.width-Tu(D.borderStyle)),D.height&&=Math.max(1,D.height-Tu(D.borderStyle)),D},U8=(D,u)=>u===Ou?D:` ${D} `,J9=(D,u)=>{u=Z9(u);let F=u.width!==void 0,C=_8(),B=Tu(u.borderStyle),$=C-u.margin.left-u.margin.right-B,E=V0(z0(D,C-B,{hard:!0,trim:!1}))+u.padding.left+u.padding.right;if(u.title&&F)u.title=u.title.slice(0,Math.max(0,u.width-2)),u.title&&=U8(u.title,u.borderStyle);else if(u.title){if(u.title=u.title.slice(0,Math.max(0,$-2)),u.title){if(u.title=U8(u.title,u.borderStyle),uD(u.title)>E)u.width=uD(u.title)}}if(u.width||=E,!F){if(u.margin.left&&u.margin.right&&u.width>$){let X=(C-u.width-B)/(u.margin.left+u.margin.right);u.margin.left=Math.max(0,Math.floor(u.margin.left*X)),u.margin.right=Math.max(0,Math.floor(u.margin.right*X))}u.width=Math.min(u.width,C-B-u.margin.left-u.margin.right)}if(u.width-(u.padding.left+u.padding.right)<=0)u.padding.left=0,u.padding.right=0;if(u.height&&u.height-(u.padding.top+u.padding.bottom)<=0)u.padding.top=0,u.padding.bottom=0;return u},dF=(D)=>D.match(/^#(?:[0-f]{3}){1,2}$/i),G8=(D)=>typeof D==="string"&&(N[D]??dF(D)),Y9=(D)=>dF(D)?N.hex(D):N[D],q9=(D)=>dF(D)?N.bgHex(D):N[bF(["bg",D])];function G0(D,u){if(u={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...u},u.align)u.textAlignment=u.align;if(u.borderColor&&!G8(u.borderColor))throw new Error(`${u.borderColor} is not a valid borderColor`);if(u.backgroundColor&&!G8(u.backgroundColor))throw new Error(`${u.backgroundColor} is not a valid backgroundColor`);return u.padding=z8(u.padding),u.margin=z8(u.margin),u=J9(D,u),D=Q9(D,u),X9(D,u.width,u)}import{platform as V9,homedir as H9}from"os";import{execSync as j8}from"child_process";import{join as wu}from"path";var lF=V9()==="win32",W0={installUv:()=>{if(lF)j8('powershell -Command "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe"});else j8("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/sh"})},getShellConfigPaths:()=>{let D=H9();if(lF)return[wu(D,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),wu(D,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1")];return[wu(D,".bashrc"),wu(D,".zshrc"),wu(D,".bash_profile")]},getAliasDefinition:(D,u)=>{if(lF)return`function ${D} { ${u} $args }`;return`alias ${D}='${u}'`}};$D();function j9(D){let u,F=0,C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];return{start(){u=setInterval(()=>{process.stdout.write(`\r${N.cyan(C[F%C.length])} ${D}`),F++},50)},stop(B,$=!0){clearInterval(u);let E=$?N.green("\u2713"):N.red("\u2717");process.stdout.write(`\r${E} ${B} +`)}}}var Pu=SF(["#ff0000","#ff4500","#ffa500","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"]),aF=SF(["#ff006e","#fb5607","#ffbe0b","#8338ec","#3a86ff"]);function M9(){W0.installUv(),process.env.PATH=`${P8()}/.cargo/bin:${process.env.PATH}`}function R9(){let D=Xu;if(!iD(D))return!1;try{let u=JSON.parse(Su(D,"utf8"));return!!(u.hooks?.SessionStart||u.hooks?.Stop||u.hooks?.PostToolUse)}catch{return!1}}async function L9(D){let u={};if(D){let $=await Cu({message:`\uD83E\uDDE0 Existing claude-mem installation detected. Your memories and data are safe! -Reinstall to update hooks and configuration?`,initialValue:!0});if(zD($)||!$)return Bu("Installation cancelled"),null;u.forceReinstall=!0}else u.forceReinstall=!1;let F=await Z0({message:"Select installation scope",options:[{value:"user",label:"User (Recommended)",hint:"Install for current user (~/.claude)"},{value:"project",label:"Project",hint:"Install for current project only (./.mcp.json)"},{value:"local",label:"Local",hint:"Custom local installation"}],initialValue:"user"});if(zD(F))return Bu("Installation cancelled"),null;if(u.scope=F,F==="local"){let $=await U3({message:"Enter custom installation directory",placeholder:Yu(process.cwd(),".claude-mem"),validate:(E)=>{if(!E)return"Path is required";if(!E.startsWith("/")&&!E.startsWith("~"))return"Please provide an absolute path"}});if(zD($))return Bu("Installation cancelled"),null;u.customPath=$}u.hookTimeout=180000;let C=await Cu({message:'Enable Smart Trash? This creates an alias for "rm" that moves files to ~/.claude-mem/trash instead of permanently deleting them. You can restore files anytime by typing "claude-mem restore".',initialValue:!0});if(zD(C))return Bu("Installation cancelled"),null;u.enableSmartTrash=C;let B=await Cu({message:'Would you like to save memories when you type "/clear" in Claude Code? When running /clear with this on, it takes about a minute to save memories before your new session starts.',initialValue:!1});if(zD(B))return Bu("Installation cancelled"),null;return u.saveMemoriesOnClear=B,u}function R9(){N8(),O8();let D=Yu(g,"package.json");if(!iD(D))Ju(D,JSON.stringify({name:"claude-mem-data",type:"module"},null,2))}function L9(){let D=I8,u=rF(D);R0(u,{recursive:!0});let F=` +Reinstall to update hooks and configuration?`,initialValue:!0});if(zD($)||!$)return Bu("Installation cancelled"),null;u.forceReinstall=!0}else u.forceReinstall=!1;let F=await Z0({message:"Select installation scope",options:[{value:"user",label:"User (Recommended)",hint:"Install for current user (~/.claude)"},{value:"project",label:"Project",hint:"Install for current project only (./.mcp.json)"},{value:"local",label:"Local",hint:"Custom local installation"}],initialValue:"user"});if(zD(F))return Bu("Installation cancelled"),null;if(u.scope=F,F==="local"){let $=await U3({message:"Enter custom installation directory",placeholder:Yu(process.cwd(),".claude-mem"),validate:(E)=>{if(!E)return"Path is required";if(!E.startsWith("/")&&!E.startsWith("~"))return"Please provide an absolute path"}});if(zD($))return Bu("Installation cancelled"),null;u.customPath=$}u.hookTimeout=180000;let C=await Cu({message:'Enable Smart Trash? This creates an alias for "rm" that moves files to ~/.claude-mem/trash instead of permanently deleting them. You can restore files anytime by typing "claude-mem restore".',initialValue:!0});if(zD(C))return Bu("Installation cancelled"),null;u.enableSmartTrash=C;let B=await Cu({message:'Would you like to save memories when you type "/clear" in Claude Code? When running /clear with this on, it takes about a minute to save memories before your new session starts.',initialValue:!1});if(zD(B))return Bu("Installation cancelled"),null;return u.saveMemoriesOnClear=B,u}function I9(){N8(),O8();let D=Yu(g,"package.json");if(!iD(D))Ju(D,JSON.stringify({name:"claude-mem-data",type:"module"},null,2))}function N9(){let D=I8,u=rF(D);R0(u,{recursive:!0});let F=` ## \uD83E\uDDE0 Memory System Quick Reference @@ -297,16 +302,16 @@ Reinstall to update hooks and configuration?`,initialValue:!0});if(zD($)||!$)ret - Collection: "claude_memories" - Archives: ~/.claude-mem/archives/ `,C="";if(iD(D)){C=Su(D,"utf8");let B=C.includes(""),$=C.includes("");if(B||$){let E,Q;if(B)E="",Q="";else E="",Q="";let X=C.indexOf(E),Z=C.indexOf(Q)+Q.length;if(X!==-1&&Z!==-1)C=C.substring(0,X)+F.trim()+C.substring(Z)}else C=C.trim()+` -`+F}else C=F.trim();Ju(D,C)}function I9(D=!1){let u=`${P8()}/.cargo/bin`;if(iD(u)&&!process.env.PATH?.includes(u))process.env.PATH=`${u}:${process.env.PATH}`;if(D)try{w8("claude mcp remove claude-mem",{stdio:"pipe"})}catch(C){}let F=`claude mcp add claude-mem -- uvx chroma-mcp --client-type persistent --data-dir ${Qu}`;w8(F,{stdio:"inherit"})}function M0(D,u,F){let C={hooks:[{type:"command",command:D,timeout:u}]};if(F)C.matcher=F;return C}function N9(D){let u=iD(D)?JSON.parse(Su(D,"utf8")):{hooks:{}};if(R0(rF(D),{recursive:!0}),!u.hooks)u.hooks={};["SessionStart","Stop","UserPromptSubmit","PostToolUse"].forEach((C)=>{if(u.hooks[C])u.hooks[C]=u.hooks[C].filter((B)=>!B.hooks?.some(($)=>$.command?.includes(dD)))}),u.hooks.SessionStart=[M0(`${dD} context`,180)],u.hooks.Stop=[M0(`${dD} summary`,60)],u.hooks.UserPromptSubmit=[M0(`${dD} new`,60)],u.hooks.PostToolUse=[M0(`${dD} save`,180,"*")],Ju(D,JSON.stringify(u,null,2))}function O9(D){if(D.scope==="local"&&D.customPath)return Yu(D.customPath,"settings.local.json");else if(D.scope==="project")return Yu(process.cwd(),".claude","settings.json");else return Xu}function T9(D){let u=L8,F=iD(u)?JSON.parse(Su(u,"utf8")):{};F.backend="chroma",F.installed=!0,F.embedded=!0,F.saveMemoriesOnClear=D.saveMemoriesOnClear||!1,Ju(u,JSON.stringify(F,null,2))}function w9(){let D=W0.getShellConfigPaths(),u=W0.getAliasDefinition("rm","claude-mem trash"),F="# claude-mem smart trash alias";for(let C of D){if(!iD(C)){let E=rF(C);R0(E,{recursive:!0}),Ju(C,"")}let B=Su(C,"utf8");if(B.includes(u))continue;let $=` +`+F}else C=F.trim();Ju(D,C)}function O9(D=!1){let u=`${P8()}/.cargo/bin`;if(iD(u)&&!process.env.PATH?.includes(u))process.env.PATH=`${u}:${process.env.PATH}`;if(D)try{w8("claude mcp remove claude-mem",{stdio:"pipe"})}catch(C){}let F=`claude mcp add claude-mem -- uvx chroma-mcp --client-type persistent --data-dir ${Qu}`;w8(F,{stdio:"inherit"})}function M0(D,u,F){let C={hooks:[{type:"command",command:D,timeout:u}]};if(F)C.matcher=F;return C}function T9(D){let u=iD(D)?JSON.parse(Su(D,"utf8")):{hooks:{}};if(R0(rF(D),{recursive:!0}),!u.hooks)u.hooks={};["SessionStart","Stop","UserPromptSubmit","PostToolUse"].forEach((C)=>{if(u.hooks[C])u.hooks[C]=u.hooks[C].filter((B)=>!B.hooks?.some(($)=>$.command?.includes(dD)))}),u.hooks.SessionStart=[M0(`${dD} context`,180)],u.hooks.Stop=[M0(`${dD} summary`,60)],u.hooks.UserPromptSubmit=[M0(`${dD} new`,60)],u.hooks.PostToolUse=[M0(`${dD} save`,180,"*")],Ju(D,JSON.stringify(u,null,2))}function w9(D){if(D.scope==="local"&&D.customPath)return Yu(D.customPath,"settings.local.json");else if(D.scope==="project")return Yu(process.cwd(),".claude","settings.json");else return Xu}function P9(D){let u=L8,F=iD(u)?JSON.parse(Su(u,"utf8")):{};F.backend="chroma",F.installed=!0,F.embedded=!0,F.saveMemoriesOnClear=D.saveMemoriesOnClear||!1,Ju(u,JSON.stringify(F,null,2))}function S9(){let D=W0.getShellConfigPaths(),u=W0.getAliasDefinition("rm","claude-mem trash"),F="# claude-mem smart trash alias";for(let C of D){if(!iD(C)){let E=rF(C);R0(E,{recursive:!0}),Ju(C,"")}let B=Su(C,"utf8");if(B.includes(u))continue;let $=` # claude-mem smart trash alias ${u} -`;B+=$,Ju(C,B)}}function P9(){let D=nF,u=T8();R0(D,{recursive:!0});let F=["save.md","remember.md","claude-mem.md"];for(let C of F){let B=Yu(u,C),$=Yu(D,C);if(iD(B))G9(B,$)}}async function S8(D={}){console.log(Pu(` +`;B+=$,Ju(C,B)}}function k9(){let D=nF,u=T8();R0(D,{recursive:!0});let F=["save.md","remember.md","claude-mem.md"];for(let C of F){let B=Yu(u,C),$=Yu(D,C);if(iD(B))_9(B,$)}}async function S8(D={}){console.log(Pu(` \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(Pu(" CLAUDE-MEM INSTALLER ")),console.log(Pu("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550")),console.log(G0(aF(`\uD83E\uDDE0 Persistent Memory System for Claude Code \u2728 Transform your Claude experience with seamless context preservation -\uD83D\uDE80 Never lose your conversation history again`),{padding:2,margin:1,borderStyle:"double",borderColor:"magenta",textAlignment:"center"})),_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=j9(),Z=await M9(X);if(!Z)process.exit(0);F=Z}console.log(aF(` +\uD83D\uDE80 Never lose your conversation history again`),{padding:2,margin:1,borderStyle:"double",borderColor:"magenta",textAlignment:"center"})),M9();let u=D.user||D.project||D.local||D.force,F;if(u)F={scope:D.local?"local":D.project?"project":"user",customPath:D.path,hookTimeout:D.timeout?parseInt(D.timeout):180,forceReinstall:!!D.force,enableSmartTrash:!1,saveMemoriesOnClear:!1};else{let X=R9(),Z=await L9(X);if(!Z)process.exit(0);F=Z}console.log(aF(` \uD83D\uDE80 Beginning Installation Process -`));let C=[{name:"Creating directory structure",fn:()=>R9()},{name:"Installing Chroma MCP server",fn:()=>I9(F.forceReinstall)},{name:"Adding CLAUDE.md instructions",fn:()=>L9()},{name:"Installing Claude commands",fn:()=>P9()},{name:"Configuring Claude settings",fn:()=>N9(O9(F))},{name:"Configuring user settings",fn:()=>T9(F)}];if(F.enableSmartTrash)C.push({name:"Configuring Smart Trash alias",fn:()=>w9()});for(let X=0;XI9()},{name:"Installing Chroma MCP server",fn:()=>O9(F.forceReinstall)},{name:"Adding CLAUDE.md instructions",fn:()=>N9()},{name:"Installing Claude commands",fn:()=>k9()},{name:"Configuring Claude settings",fn:()=>T9(w9(F))},{name:"Configuring user settings",fn:()=>P9(F)}];if(F.enableSmartTrash)C.push({name:"Configuring Smart Trash alias",fn:()=>S9()});for(let X=0;X{if(J.trim()==='alias rm="claude-mem trash"')return!1;for(let H of C)if(J.trim()===H&&V+1!V.hooks?.some((H)=>H.command?.includes("claude-mem")));if(J.length!==E.hooks[Z].length)E.hooks[Z]=J.length?J:void 0,Q=!0,console.log(`\u2705 Removed ${Z} hook from ${B.name} settings`)}if(X.forEach((Z)=>{if(E.hooks[Z]===void 0)delete E.hooks[Z]}),!Object.keys(E.hooks).length)delete E.hooks;if(Q){let Z=B.path+".backup."+Date.now();L0(Z,$),console.log(`\uD83D\uDCCB Created backup: ${Z}`),L0(B.path,JSON.stringify(E,null,2)),F++,console.log(`\u2705 Updated ${B.name} settings: ${B.path}`)}else console.log(`\u2139\uFE0F No Claude Memory System hooks found in ${B.name} settings`)}let C=await k9();if(console.log(""),F>0||C){if(console.log("\u2728 Uninstallation complete!"),F>0)console.log("The Claude Memory System hooks have been removed from your settings.");if(C)console.log("The Smart Trash alias has been removed from your shell configuration."),console.log("\u26A0\uFE0F Restart your terminal for the alias removal to take effect.");console.log(""),console.log("Note: Your compressed transcripts and archives are preserved."),console.log("To reinstall: claude-mem install")}else console.log("\u2139\uFE0F No Claude Memory System hooks or aliases were found to remove.")}$D();import{readFileSync as v9,readdirSync as x9,statSync as f9}from"fs";import{join as f8}from"path";async function b9(D,u,F){try{let $=v9(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 b8(D={}){let u=iF,F=parseInt(D.tail)||20;try{let B=x9(u).filter(($)=>$.startsWith("claude-mem-")&&$.endsWith(".log")).map(($)=>({name:$,path:f8(u,$),mtime:f9(f8(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 b9(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 j4,existsSync as S6,mkdirSync as M4,statSync as R4}from"fs";import{join as L4,basename as I4}from"path";var oF=(D,u,F)=>{let C=D instanceof RegExp?y8(D,F):D,B=u instanceof RegExp?y8(u,F):u,$=C!==null&&B!=null&&y9(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)}},y8=(D,u)=>{let F=u.match(D);return F?F[0]:null},y9=(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=0?X:Z}if(C.length&&E!==void 0)Q=[$,E]}return Q};var h8="\x00SLASH"+Math.random()+"\x00",g8="\x00OPEN"+Math.random()+"\x00",tF="\x00CLOSE"+Math.random()+"\x00",m8="\x00COMMA"+Math.random()+"\x00",c8="\x00PERIOD"+Math.random()+"\x00",h9=new RegExp(h8,"g"),g9=new RegExp(g8,"g"),m9=new RegExp(tF,"g"),c9=new RegExp(m8,"g"),d9=new RegExp(c8,"g"),l9=/\\\\/g,p9=/\\{/g,i9=/\\}/g,n9=/\\,/g,a9=/\\./g;function sF(D){return!isNaN(D)?parseInt(D,10):D.charCodeAt(0)}function r9(D){return D.replace(l9,h8).replace(p9,g8).replace(i9,tF).replace(n9,m8).replace(a9,c8)}function o9(D){return D.replace(h9,"\\").replace(g9,"{").replace(m9,"}").replace(c9,",").replace(d9,".")}function d8(D){if(!D)return[""];let u=[],F=oF("{","}",D);if(!F)return D.split(",");let{pre:C,body:B,post:$}=F,E=C.split(",");E[E.length-1]+="{"+B+"}";let Q=d8($);if($.length)E[E.length-1]+=Q.shift(),E.push.apply(E,Q);return u.push.apply(u,E),u}function l8(D){if(!D)return[];if(D.slice(0,2)==="{}")D="\\{\\}"+D.slice(2);return vu(r9(D),!0).map(o9)}function s9(D){return"{"+D+"}"}function t9(D){return/^-?0\d/.test(D)}function e9(D,u){return D<=u}function DB(D,u){return D>=u}function vu(D,u){let F=[],C=oF("{","}",D);if(!C)return[D];let B=C.pre,$=C.post.length?vu(C.post,!1):[""];if(/\$$/.test(C.pre))for(let E=0;E<$.length;E++){let Q=B+"{"+C.body+"}"+$[E];F.push(Q)}else{let E=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(C.body),Q=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(C.body),X=E||Q,Z=C.body.indexOf(",")>=0;if(!X&&!Z){if(C.post.match(/,(?!,).*\}/))return D=C.pre+"{"+C.body+tF+C.post,vu(D);return[D]}let J;if(X)J=C.body.split(/\.\./);else if(J=d8(C.body),J.length===1&&J[0]!==void 0){if(J=vu(J[0],!1).map(s9),J.length===1)return $.map((H)=>C.pre+J[0]+H)}let V;if(X&&J[0]!==void 0&&J[1]!==void 0){let H=sF(J[0]),z=sF(J[1]),U=Math.max(J[0].length,J[1].length),G=J.length===3&&J[2]!==void 0?Math.abs(sF(J[2])):1,j=e9;if(z0){let y=new Array(S+1).join("0");if(R<0)L="-"+y+L.slice(1);else L=y+L}}V.push(L)}}else{V=[];for(let H=0;H{if(typeof D!=="string")throw new TypeError("invalid pattern");if(D.length>65536)throw new TypeError("pattern is too long")};var uB={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},fu=(D)=>D.replace(/[[\]\\-]/g,"\\$&"),FB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),p8=(D)=>D.join(""),i8=(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($V)C.push(fu(V)+"-"+fu(G));else if(G===V)C.push(fu(G));V="",$++;continue}if(D.startsWith("-]",$+1)){C.push(fu(G+"-")),$+=2;continue}if(D.startsWith("-",$+1)){V=G,$+=2;continue}C.push(fu(G)),$++}if(J<$)return["",!1,0,!1];if(!C.length&&!B.length)return["$.",!1,D.length-F,!0];if(B.length===0&&C.length===1&&/^\\?.$/.test(C[0])&&!Z){let G=C[0].length===2?C[0].slice(-1):C[0];return[FB(G),!1,J-F,!1]}let H="["+(Z?"^":"")+p8(C)+"]",z="["+(Z?"":"^")+p8(B)+"]";return[C.length&&B.length?"("+H+"|"+z+")":C.length?H:z,Q,J-F,!0]};var TD=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/\[([^\/\\])\]/g,"$1"):D.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var CB=new Set(["!","?","+","*","@"]),n8=(D)=>CB.has(D),BB="(?!(?:^|/)\\.\\.?(?:$|/))",I0="(?!\\.)",EB=new Set(["[","."]),$B=new Set(["..","."]),QB=new Set("().*{}+?[]^$\\!"),XB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),eF="[^/]",a8=eF+"*?",r8=eF+"+?";class a{type;#D;#u;#E=!1;#B=[];#$;#W;#U;#J=!1;#Q;#q;#Y=!1;constructor(D,u,F={}){if(this.type=D,D)this.#u=!0;if(this.#$=u,this.#D=this.#$?this.#$.#D:this,this.#Q=this.#D===this?F:this.#D.#Q,this.#U=this.#D===this?[]:this.#D.#U,D==="!"&&!this.#D.#J)this.#U.push(this);this.#W=this.#$?this.#$.#B.length:0}get hasMagic(){if(this.#u!==void 0)return this.#u;for(let D of this.#B){if(typeof D==="string")continue;if(D.type||D.hasMagic)return this.#u=!0}return this.#u}toString(){if(this.#q!==void 0)return this.#q;if(!this.type)return this.#q=this.#B.map((D)=>String(D)).join("");else return this.#q=this.type+"("+this.#B.map((D)=>String(D)).join("|")+")"}#X(){if(this!==this.#D)throw new Error("should only call on root");if(this.#J)return this;this.toString(),this.#J=!0;let D;while(D=this.#U.pop()){if(D.type!=="!")continue;let u=D,F=u.#$;while(F){for(let C=u.#W+1;!F.type&&Ctypeof 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{let[z,U,G,j]=typeof H==="string"?a.#_(H,this.#u,Q):H.toRegExpSource(D);return this.#u=this.#u||G,this.#E=this.#E||j,z}).join(""),Z="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&$B.has(this.#B[0]))){let z=EB,U=u&&z.has(X.charAt(0))||X.startsWith("\\.")&&z.has(X.charAt(2))||X.startsWith("\\.\\.")&&z.has(X.charAt(4)),G=!u&&!D&&z.has(X.charAt(0));Z=U?BB:G?I0:""}}}let J="";if(this.isEnd()&&this.#D.#J&&this.#$?.type==="!")J="(?:$|\\/)";return[Z+X+J,TD(X),this.#u=!!this.#u,this.#E]}let F=this.type==="*"||this.type==="+",C=this.type==="!"?"(?:(?!(?:":"(?:",B=this.#V(u);if(this.isStart()&&this.isEnd()&&!B&&this.type!=="!"){let Q=this.toString();return this.#B=[Q],this.type=null,this.#u=void 0,[Q,TD(this.toString()),!1,!1]}let $=!F||D||u||!I0?"":this.#V(!0);if($===B)$="";if($)B=`(?:${B})(?:${$})*?`;let E="";if(this.type==="!"&&this.#Y)E=(this.isStart()&&!u?I0:"")+r8;else{let Q=this.type==="!"?"))"+(this.isStart()&&!u&&!D?I0:"")+a8+")":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{return u?D.replace(/[?*()[\]]/g,"[$&]"):D.replace(/[?*()[\]\\]/g,"\\$&")};var CD=(D,u,F={})=>{if(xu(u),!F.nocomment&&u.charAt(0)==="#")return!1;return new _D(u,F).match(D)},ZB=/^\*+([^+@!?\*\[\(]*)$/,JB=(D)=>(u)=>!u.startsWith(".")&&u.endsWith(D),YB=(D)=>(u)=>u.endsWith(D),qB=(D)=>{return D=D.toLowerCase(),(u)=>!u.startsWith(".")&&u.toLowerCase().endsWith(D)},KB=(D)=>{return D=D.toLowerCase(),(u)=>u.toLowerCase().endsWith(D)},VB=/^\*+\.\*+$/,HB=(D)=>!D.startsWith(".")&&D.includes("."),AB=(D)=>D!=="."&&D!==".."&&D.includes("."),zB=/^\.\*+$/,UB=(D)=>D!=="."&&D!==".."&&D.startsWith("."),GB=/^\*+$/,WB=(D)=>D.length!==0&&!D.startsWith("."),_B=(D)=>D.length!==0&&D!=="."&&D!=="..",jB=/^\?+([^+@!?\*\[\(]*)?$/,MB=([D,u=""])=>{let F=t8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},RB=([D,u=""])=>{let F=e8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},LB=([D,u=""])=>{let F=e8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},IB=([D,u=""])=>{let F=t8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},t8=([D])=>{let u=D.length;return(F)=>F.length===u&&!F.startsWith(".")},e8=([D])=>{let u=D.length;return(F)=>F.length===u&&F!=="."&&F!==".."},D6=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",o8={win32:{sep:"\\"},posix:{sep:"/"}},NB=D6==="win32"?o8.win32.sep:o8.posix.sep;CD.sep=NB;var r=Symbol("globstar **");CD.GLOBSTAR=r;var OB="[^/]",TB=OB+"*?",wB="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",PB="(?:(?!(?:\\/|^)\\.).)*?",SB=(D,u={})=>(F)=>CD(F,D,u);CD.filter=SB;var WD=(D,u={})=>Object.assign({},D,u),kB=(D)=>{if(!D||typeof D!=="object"||!Object.keys(D).length)return CD;let u=CD;return Object.assign((C,B,$={})=>u(C,B,WD(D,$)),{Minimatch:class C extends u.Minimatch{constructor(B,$={}){super(B,WD(D,$))}static defaults(B){return u.defaults(WD(D,B)).Minimatch}},AST:class C extends u.AST{constructor(B,$,E={}){super(B,$,WD(D,E))}static fromGlob(B,$={}){return u.AST.fromGlob(B,WD(D,$))}},unescape:(C,B={})=>u.unescape(C,WD(D,B)),escape:(C,B={})=>u.escape(C,WD(D,B)),filter:(C,B={})=>u.filter(C,WD(D,B)),defaults:(C)=>u.defaults(WD(D,C)),makeRe:(C,B={})=>u.makeRe(C,WD(D,B)),braceExpand:(C,B={})=>u.braceExpand(C,WD(D,B)),match:(C,B,$={})=>u.match(C,B,WD(D,$)),sep:u.sep,GLOBSTAR:r})};CD.defaults=kB;var u6=(D,u={})=>{if(xu(D),u.nobrace||!/\{(?:(?!\{).)*\}/.test(D))return[D];return l8(D)};CD.braceExpand=u6;var vB=(D,u={})=>new _D(D,u).makeRe();CD.makeRe=vB;var xB=(D,u,F={})=>{let C=new _D(u,F);if(D=D.filter((B)=>C.match(B)),C.options.nonull&&!D.length)D.push(u);return D};CD.match=xB;var s8=/[?*]|[+@!]\(.*?\)|\[|\]/,fB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class _D{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(D,u={}){if(xu(D),u=u||{},this.options=u,this.pattern=D,this.platform=u.platform||D6,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]==="?"||!s8.test(B[2]))&&!s8.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=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;CC)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;$u.length)}partsMatch(D,u,F=!1){let C=0,B=0,$=[],E="";while(CO)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;$!V.hooks?.some((H)=>H.command?.includes("claude-mem")));if(J.length!==E.hooks[Z].length)E.hooks[Z]=J.length?J:void 0,Q=!0,console.log(`\u2705 Removed ${Z} hook from ${B.name} settings`)}if(X.forEach((Z)=>{if(E.hooks[Z]===void 0)delete E.hooks[Z]}),!Object.keys(E.hooks).length)delete E.hooks;if(Q){let Z=B.path+".backup."+Date.now();L0(Z,$),console.log(`\uD83D\uDCCB Created backup: ${Z}`),L0(B.path,JSON.stringify(E,null,2)),F++,console.log(`\u2705 Updated ${B.name} settings: ${B.path}`)}else console.log(`\u2139\uFE0F No Claude Memory System hooks found in ${B.name} settings`)}let C=await x9();if(console.log(""),F>0||C){if(console.log("\u2728 Uninstallation complete!"),F>0)console.log("The Claude Memory System hooks have been removed from your settings.");if(C)console.log("The Smart Trash alias has been removed from your shell configuration."),console.log("\u26A0\uFE0F Restart your terminal for the alias removal to take effect.");console.log(""),console.log("Note: Your compressed transcripts and archives are preserved."),console.log("To reinstall: claude-mem install")}else console.log("\u2139\uFE0F No Claude Memory System hooks or aliases were found to remove.")}$D();import{readFileSync as f9,readdirSync as b9,statSync as y9}from"fs";import{join as f8}from"path";async function h9(D,u,F){try{let $=f9(D,"utf8").split(` +`).filter((E)=>E.trim()).slice(-F);if(console.log(`\uD83D\uDCCB ${u} Logs (last ${F} lines):`),console.log(` File: ${D}`),console.log(""),$.length===0)console.log(" No log entries found");else $.forEach((E)=>{console.log(` ${E}`)});console.log("")}catch(C){console.log(`\u274C Could not read ${u.toLowerCase()} log: ${D}`)}}async function b8(D={}){let u=iF,F=parseInt(D.tail)||20;try{let B=b9(u).filter(($)=>$.startsWith("claude-mem-")&&$.endsWith(".log")).map(($)=>({name:$,path:f8(u,$),mtime:y9(f8(u,$)).mtime})).sort(($,E)=>E.mtime.getTime()-$.mtime.getTime());if(B.length===0){console.log("\u274C No log files found in ~/.claude-mem/logs/");return}if(await h9(B[0].path,"Most Recent",F),D.all&&B.length>1)console.log(`\uD83D\uDCDA Found ${B.length} total log files`)}catch(C){console.log("\u274C Could not read logs directory: ~/.claude-mem/logs/"),console.log(" Run a compression first to generate logs")}}import{renameSync as R4,existsSync as S6,mkdirSync as L4,statSync as I4}from"fs";import{join as N4,basename as O4}from"path";var oF=(D,u,F)=>{let C=D instanceof RegExp?y8(D,F):D,B=u instanceof RegExp?y8(u,F):u,$=C!==null&&B!=null&&g9(C,B,F);return $&&{start:$[0],end:$[1],pre:F.slice(0,$[0]),body:F.slice($[0]+C.length,$[1]),post:F.slice($[1]+B.length)}},y8=(D,u)=>{let F=u.match(D);return F?F[0]:null},g9=(D,u,F)=>{let C,B,$,E=void 0,Q,X=F.indexOf(D),Z=F.indexOf(u,X+1),J=X;if(X>=0&&Z>0){if(D===u)return[X,Z];C=[],$=F.length;while(J>=0&&!Q){if(J===X)C.push(J),X=F.indexOf(D,J+1);else if(C.length===1){let V=C.pop();if(V!==void 0)Q=[V,Z]}else{if(B=C.pop(),B!==void 0&&B<$)$=B,E=Z;Z=F.indexOf(u,J+1)}J=X=0?X:Z}if(C.length&&E!==void 0)Q=[$,E]}return Q};var h8="\x00SLASH"+Math.random()+"\x00",g8="\x00OPEN"+Math.random()+"\x00",tF="\x00CLOSE"+Math.random()+"\x00",m8="\x00COMMA"+Math.random()+"\x00",c8="\x00PERIOD"+Math.random()+"\x00",m9=new RegExp(h8,"g"),c9=new RegExp(g8,"g"),d9=new RegExp(tF,"g"),l9=new RegExp(m8,"g"),p9=new RegExp(c8,"g"),i9=/\\\\/g,n9=/\\{/g,a9=/\\}/g,r9=/\\,/g,o9=/\\./g;function sF(D){return!isNaN(D)?parseInt(D,10):D.charCodeAt(0)}function s9(D){return D.replace(i9,h8).replace(n9,g8).replace(a9,tF).replace(r9,m8).replace(o9,c8)}function t9(D){return D.replace(m9,"\\").replace(c9,"{").replace(d9,"}").replace(l9,",").replace(p9,".")}function d8(D){if(!D)return[""];let u=[],F=oF("{","}",D);if(!F)return D.split(",");let{pre:C,body:B,post:$}=F,E=C.split(",");E[E.length-1]+="{"+B+"}";let Q=d8($);if($.length)E[E.length-1]+=Q.shift(),E.push.apply(E,Q);return u.push.apply(u,E),u}function l8(D){if(!D)return[];if(D.slice(0,2)==="{}")D="\\{\\}"+D.slice(2);return vu(s9(D),!0).map(t9)}function e9(D){return"{"+D+"}"}function DB(D){return/^-?0\d/.test(D)}function uB(D,u){return D<=u}function FB(D,u){return D>=u}function vu(D,u){let F=[],C=oF("{","}",D);if(!C)return[D];let B=C.pre,$=C.post.length?vu(C.post,!1):[""];if(/\$$/.test(C.pre))for(let E=0;E<$.length;E++){let Q=B+"{"+C.body+"}"+$[E];F.push(Q)}else{let E=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(C.body),Q=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(C.body),X=E||Q,Z=C.body.indexOf(",")>=0;if(!X&&!Z){if(C.post.match(/,(?!,).*\}/))return D=C.pre+"{"+C.body+tF+C.post,vu(D);return[D]}let J;if(X)J=C.body.split(/\.\./);else if(J=d8(C.body),J.length===1&&J[0]!==void 0){if(J=vu(J[0],!1).map(e9),J.length===1)return $.map((H)=>C.pre+J[0]+H)}let V;if(X&&J[0]!==void 0&&J[1]!==void 0){let H=sF(J[0]),z=sF(J[1]),U=Math.max(J[0].length,J[1].length),G=J.length===3&&J[2]!==void 0?Math.abs(sF(J[2])):1,j=uB;if(z0){let y=new Array(S+1).join("0");if(R<0)L="-"+y+L.slice(1);else L=y+L}}V.push(L)}}else{V=[];for(let H=0;H{if(typeof D!=="string")throw new TypeError("invalid pattern");if(D.length>65536)throw new TypeError("pattern is too long")};var CB={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},fu=(D)=>D.replace(/[[\]\\-]/g,"\\$&"),BB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),p8=(D)=>D.join(""),i8=(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($V)C.push(fu(V)+"-"+fu(G));else if(G===V)C.push(fu(G));V="",$++;continue}if(D.startsWith("-]",$+1)){C.push(fu(G+"-")),$+=2;continue}if(D.startsWith("-",$+1)){V=G,$+=2;continue}C.push(fu(G)),$++}if(J<$)return["",!1,0,!1];if(!C.length&&!B.length)return["$.",!1,D.length-F,!0];if(B.length===0&&C.length===1&&/^\\?.$/.test(C[0])&&!Z){let G=C[0].length===2?C[0].slice(-1):C[0];return[BB(G),!1,J-F,!1]}let H="["+(Z?"^":"")+p8(C)+"]",z="["+(Z?"":"^")+p8(B)+"]";return[C.length&&B.length?"("+H+"|"+z+")":C.length?H:z,Q,J-F,!0]};var TD=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/\[([^\/\\])\]/g,"$1"):D.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var EB=new Set(["!","?","+","*","@"]),n8=(D)=>EB.has(D),$B="(?!(?:^|/)\\.\\.?(?:$|/))",I0="(?!\\.)",QB=new Set(["[","."]),XB=new Set(["..","."]),ZB=new Set("().*{}+?[]^$\\!"),JB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),eF="[^/]",a8=eF+"*?",r8=eF+"+?";class a{type;#D;#u;#E=!1;#B=[];#$;#W;#U;#J=!1;#Q;#q;#Y=!1;constructor(D,u,F={}){if(this.type=D,D)this.#u=!0;if(this.#$=u,this.#D=this.#$?this.#$.#D:this,this.#Q=this.#D===this?F:this.#D.#Q,this.#U=this.#D===this?[]:this.#D.#U,D==="!"&&!this.#D.#J)this.#U.push(this);this.#W=this.#$?this.#$.#B.length:0}get hasMagic(){if(this.#u!==void 0)return this.#u;for(let D of this.#B){if(typeof D==="string")continue;if(D.type||D.hasMagic)return this.#u=!0}return this.#u}toString(){if(this.#q!==void 0)return this.#q;if(!this.type)return this.#q=this.#B.map((D)=>String(D)).join("");else return this.#q=this.type+"("+this.#B.map((D)=>String(D)).join("|")+")"}#X(){if(this!==this.#D)throw new Error("should only call on root");if(this.#J)return this;this.toString(),this.#J=!0;let D;while(D=this.#U.pop()){if(D.type!=="!")continue;let u=D,F=u.#$;while(F){for(let C=u.#W+1;!F.type&&Ctypeof 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{let[z,U,G,j]=typeof H==="string"?a.#_(H,this.#u,Q):H.toRegExpSource(D);return this.#u=this.#u||G,this.#E=this.#E||j,z}).join(""),Z="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&XB.has(this.#B[0]))){let z=QB,U=u&&z.has(X.charAt(0))||X.startsWith("\\.")&&z.has(X.charAt(2))||X.startsWith("\\.\\.")&&z.has(X.charAt(4)),G=!u&&!D&&z.has(X.charAt(0));Z=U?$B:G?I0:""}}}let J="";if(this.isEnd()&&this.#D.#J&&this.#$?.type==="!")J="(?:$|\\/)";return[Z+X+J,TD(X),this.#u=!!this.#u,this.#E]}let F=this.type==="*"||this.type==="+",C=this.type==="!"?"(?:(?!(?:":"(?:",B=this.#V(u);if(this.isStart()&&this.isEnd()&&!B&&this.type!=="!"){let Q=this.toString();return this.#B=[Q],this.type=null,this.#u=void 0,[Q,TD(this.toString()),!1,!1]}let $=!F||D||u||!I0?"":this.#V(!0);if($===B)$="";if($)B=`(?:${B})(?:${$})*?`;let E="";if(this.type==="!"&&this.#Y)E=(this.isStart()&&!u?I0:"")+r8;else{let Q=this.type==="!"?"))"+(this.isStart()&&!u&&!D?I0:"")+a8+")":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{return u?D.replace(/[?*()[\]]/g,"[$&]"):D.replace(/[?*()[\]\\]/g,"\\$&")};var CD=(D,u,F={})=>{if(xu(u),!F.nocomment&&u.charAt(0)==="#")return!1;return new _D(u,F).match(D)},YB=/^\*+([^+@!?\*\[\(]*)$/,qB=(D)=>(u)=>!u.startsWith(".")&&u.endsWith(D),KB=(D)=>(u)=>u.endsWith(D),VB=(D)=>{return D=D.toLowerCase(),(u)=>!u.startsWith(".")&&u.toLowerCase().endsWith(D)},HB=(D)=>{return D=D.toLowerCase(),(u)=>u.toLowerCase().endsWith(D)},AB=/^\*+\.\*+$/,zB=(D)=>!D.startsWith(".")&&D.includes("."),UB=(D)=>D!=="."&&D!==".."&&D.includes("."),GB=/^\.\*+$/,WB=(D)=>D!=="."&&D!==".."&&D.startsWith("."),_B=/^\*+$/,jB=(D)=>D.length!==0&&!D.startsWith("."),MB=(D)=>D.length!==0&&D!=="."&&D!=="..",RB=/^\?+([^+@!?\*\[\(]*)?$/,LB=([D,u=""])=>{let F=t8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},IB=([D,u=""])=>{let F=e8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},NB=([D,u=""])=>{let F=e8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},OB=([D,u=""])=>{let F=t8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},t8=([D])=>{let u=D.length;return(F)=>F.length===u&&!F.startsWith(".")},e8=([D])=>{let u=D.length;return(F)=>F.length===u&&F!=="."&&F!==".."},D6=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",o8={win32:{sep:"\\"},posix:{sep:"/"}},TB=D6==="win32"?o8.win32.sep:o8.posix.sep;CD.sep=TB;var r=Symbol("globstar **");CD.GLOBSTAR=r;var wB="[^/]",PB=wB+"*?",SB="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",kB="(?:(?!(?:\\/|^)\\.).)*?",vB=(D,u={})=>(F)=>CD(F,D,u);CD.filter=vB;var WD=(D,u={})=>Object.assign({},D,u),xB=(D)=>{if(!D||typeof D!=="object"||!Object.keys(D).length)return CD;let u=CD;return Object.assign((C,B,$={})=>u(C,B,WD(D,$)),{Minimatch:class C extends u.Minimatch{constructor(B,$={}){super(B,WD(D,$))}static defaults(B){return u.defaults(WD(D,B)).Minimatch}},AST:class C extends u.AST{constructor(B,$,E={}){super(B,$,WD(D,E))}static fromGlob(B,$={}){return u.AST.fromGlob(B,WD(D,$))}},unescape:(C,B={})=>u.unescape(C,WD(D,B)),escape:(C,B={})=>u.escape(C,WD(D,B)),filter:(C,B={})=>u.filter(C,WD(D,B)),defaults:(C)=>u.defaults(WD(D,C)),makeRe:(C,B={})=>u.makeRe(C,WD(D,B)),braceExpand:(C,B={})=>u.braceExpand(C,WD(D,B)),match:(C,B,$={})=>u.match(C,B,WD(D,$)),sep:u.sep,GLOBSTAR:r})};CD.defaults=xB;var u6=(D,u={})=>{if(xu(D),u.nobrace||!/\{(?:(?!\{).)*\}/.test(D))return[D];return l8(D)};CD.braceExpand=u6;var fB=(D,u={})=>new _D(D,u).makeRe();CD.makeRe=fB;var bB=(D,u,F={})=>{let C=new _D(u,F);if(D=D.filter((B)=>C.match(B)),C.options.nonull&&!D.length)D.push(u);return D};CD.match=bB;var s8=/[?*]|[+@!]\(.*?\)|\[|\]/,yB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class _D{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(D,u={}){if(xu(D),u=u||{},this.options=u,this.pattern=D,this.platform=u.platform||D6,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]==="?"||!s8.test(B[2]))&&!s8.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=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;CC)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;$u.length)}partsMatch(D,u,F=!1){let C=0,B=0,$=[],E="";while(CO)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;$>> no match, partial?`,D,V,u,H),V===Q)return!0}return!1}let U;if(typeof Z==="string")U=J===Z,this.debug("string match",Z,J,U);else U=Z.test(J),this.debug("pattern match",Z,J,U);if(!U)return!1}if($===Q&&E===X)return!0;else if($===Q)return F;else if(E===X)return $===Q-1&&D[$]==="";else throw new Error("wtf?")}braceExpand(){return u6(this.pattern,this.options)}parse(D){xu(D);let u=this.options;if(D==="**")return r;if(D==="")return"";let F,C=null;if(F=D.match(GB))C=u.dot?_B:WB;else if(F=D.match(ZB))C=(u.nocase?u.dot?KB:qB:u.dot?YB:JB)(F[1]);else if(F=D.match(jB))C=(u.nocase?u.dot?RB:MB:u.dot?LB:IB)(F);else if(F=D.match(VB))C=u.dot?AB:HB;else if(F=D.match(zB))C=UB;let B=a.fromGlob(D,this.options).toMMPattern();if(C&&typeof B==="object")Reflect.defineProperty(B,"test",{value:C});return B}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let D=this.set;if(!D.length)return this.regexp=!1,this.regexp;let u=this.options,F=u.noglobstar?TB:u.dot?wB:PB,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"?fB(Z):Z===r?r:Z._src});return X.forEach((Z,J)=>{let V=X[J+1],H=X[J-1];if(Z!==r||H===r)return;if(H===void 0)if(V!==void 0&&V!==r)X[J+1]="(?:\\/|"+F+"\\/)?"+V;else X[J]=F;else if(V===void 0)X[J-1]=H+"(?:\\/|"+F+")?";else if(V!==r)X[J-1]=H+"(?:\\/|\\/"+F+"\\/)"+V,X[J+1]=r}),X.filter((Z)=>Z!==r).join("/")}).join("|"),[$,E]=D.length>1?["(?:",")"]:["",""];if(B="^"+$+B+E+"$",this.negate)B="^(?!"+B+").+$";try{this.regexp=new RegExp(B,[...C].join(""))}catch(Q){this.regexp=!1}return this.regexp}slashSplit(D){if(this.preserveMultipleSlashes)return D.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(D))return["",...D.split(/\/+/)];else return D.split(/\/+/)}match(D,u=this.partial){if(this.debug("match",D,this.pattern),this.comment)return!1;if(this.empty)return D==="";if(D==="/"&&u)return!0;let F=this.options;if(this.isWindows)D=D.split("\\").join("/");let C=this.slashSplit(D);this.debug(this.pattern,"split",C);let B=this.set;this.debug(this.pattern,"set",B);let $=C[C.length-1];if(!$)for(let E=C.length-2;!$&&E>=0;E--)$=C[E];for(let E=0;E{typeof D2.emitWarning==="function"?D2.emitWarning(D,u,F,C):console.error(`[${F}] ${u}: ${D}`)},N0=globalThis.AbortController,F6=globalThis.AbortSignal;if(typeof N0==="undefined"){F6=class F{onabort;_onabort=[];reason;aborted=!1;addEventListener(C,B){this._onabort.push(B)}},N0=class F{constructor(){u()}signal=new F6;abort(C){if(this.signal.aborted)return;this.signal.reason=C,this.signal.aborted=!0;for(let B of this.signal._onabort)B(C);this.signal.onabort?.(C)}};let D=D2.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",u=()=>{if(!D)return;D=!1,B6("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 yB=(D)=>!C6.has(D),n$=Symbol("type"),nD=(D)=>D&&D===Math.floor(D)&&D>0&&isFinite(D),E6=(D)=>!nD(D)?null:D<=Math.pow(2,8)?Uint8Array:D<=Math.pow(2,16)?Uint16Array:D<=Math.pow(2,32)?Uint32Array:D<=Number.MAX_SAFE_INTEGER?bu:null;class bu extends Array{constructor(D){super(D);this.fill(0)}}class Ku{heap;length;static#D=!1;static create(D){let u=E6(D);if(!u)return[];Ku.#D=!0;let F=new Ku(D,u);return Ku.#D=!1,F}constructor(D,u){if(!Ku.#D)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(D),this.length=0}push(D){this.heap[this.length++]=D}pop(){return this.heap[--this.length]}}class yu{#D;#u;#E;#B;#$;#W;#U;#J;get perf(){return this.#J}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#Q;#q;#Y;#X;#F;#V;#_;#G;#H;#O;#A;#M;#I;#z;#j;#N;#K;#C;static unsafeExposeInternals(D){return{starts:D.#I,ttls:D.#z,sizes:D.#M,keyMap:D.#Y,keyList:D.#X,valList:D.#F,next:D.#V,prev:D.#_,get head(){return D.#G},get tail(){return D.#H},free:D.#O,isBackgroundFetch:(u)=>D.#Z(u),backgroundFetch:(u,F,C,B)=>D.#d(u,F,C,B),moveToTail:(u)=>D.#b(u),indexes:(u)=>D.#w(u),rindexes:(u)=>D.#S(u),isStale:(u)=>D.#L(u)}}get max(){return this.#D}get maxSize(){return this.#u}get calculatedSize(){return this.#q}get size(){return this.#Q}get fetchMethod(){return this.#W}get memoMethod(){return this.#U}get dispose(){return this.#E}get onInsert(){return this.#B}get disposeAfter(){return this.#$}constructor(D){let{max:u=0,ttl:F,ttlResolution:C=1,ttlAutopurge:B,updateAgeOnGet:$,updateAgeOnHas:E,allowStale:Q,dispose:X,onInsert:Z,disposeAfter:J,noDisposeOnSet:V,noUpdateTTL:H,maxSize:z=0,maxEntrySize:U=0,sizeCalculation:G,fetchMethod:j,memoMethod:I,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:L,allowStaleOnFetchAbort:S,ignoreFetchAbort:y,perf:ZD}=D;if(ZD!==void 0){if(typeof ZD?.now!=="function")throw new TypeError("perf option must have a now() method if specified")}if(this.#J=ZD??bB,u!==0&&!nD(u))throw new TypeError("max option must be a nonnegative integer");let SD=u?E6(u):Array;if(!SD)throw new Error("invalid max value: "+u);if(this.#D=u,this.#u=z,this.maxEntrySize=U||this.#u,this.sizeCalculation=G,this.sizeCalculation){if(!this.#u&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#U=I,j!==void 0&&typeof j!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=j,this.#N=!!j,this.#Y=new Map,this.#X=new Array(u).fill(void 0),this.#F=new Array(u).fill(void 0),this.#V=new SD(u),this.#_=new SD(u),this.#G=0,this.#H=0,this.#O=Ku.create(u),this.#Q=0,this.#q=0,typeof X==="function")this.#E=X;if(typeof Z==="function")this.#B=Z;if(typeof J==="function")this.#$=J,this.#A=[];else this.#$=void 0,this.#A=void 0;if(this.#j=!!this.#E,this.#C=!!this.#B,this.#K=!!this.#$,this.noDisposeOnSet=!!V,this.noUpdateTTL=!!H,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!L,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!y,this.maxEntrySize!==0){if(this.#u!==0){if(!nD(this.#u))throw new TypeError("maxSize must be a positive integer if specified")}if(!nD(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#y()}if(this.allowStale=!!Q,this.noDeleteOnStaleGet=!!R,this.updateAgeOnGet=!!$,this.updateAgeOnHas=!!E,this.ttlResolution=nD(C)||C===0?C:1,this.ttlAutopurge=!!B,this.ttl=F||0,this.ttl){if(!nD(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#k()}if(this.#D===0&&this.ttl===0&&this.#u===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#D&&!this.#u){if(yB("LRU_CACHE_UNBOUNDED"))C6.add("LRU_CACHE_UNBOUNDED"),B6("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",yu)}}getRemainingTTL(D){return this.#Y.has(D)?1/0:0}#k(){let D=new bu(this.#D),u=new bu(this.#D);this.#z=D,this.#I=u,this.#m=(B,$,E=this.#J.now())=>{if(u[B]=$!==0?E:0,D[B]=$,$!==0&&this.ttlAutopurge){let Q=setTimeout(()=>{if(this.#L(B))this.#P(this.#X[B],"expire")},$+1);if(Q.unref)Q.unref()}},this.#T=(B)=>{u[B]=D[B]!==0?this.#J.now():0},this.#R=(B,$)=>{if(D[$]){let E=D[$],Q=u[$];if(!E||!Q)return;B.ttl=E,B.start=Q,B.now=F||C();let X=B.now-Q;B.remainingTTL=E-X}};let F=0,C=()=>{let B=this.#J.now();if(this.ttlResolution>0){F=B;let $=setTimeout(()=>F=0,this.ttlResolution);if($.unref)$.unref()}return B};this.getRemainingTTL=(B)=>{let $=this.#Y.get(B);if($===void 0)return 0;let E=D[$],Q=u[$];if(!E||!Q)return 1/0;let X=(F||C())-Q;return E-X},this.#L=(B)=>{let $=u[B],E=D[B];return!!E&&!!$&&(F||C())-$>E}}#T=()=>{};#R=()=>{};#m=()=>{};#L=()=>!1;#y(){let D=new bu(this.#D);this.#q=0,this.#M=D,this.#v=(u)=>{this.#q-=D[u],D[u]=0},this.#x=(u,F,C,B)=>{if(this.#Z(F))return 0;if(!nD(C))if(B){if(typeof B!=="function")throw new TypeError("sizeCalculation must be a function");if(C=B(F,u),!nD(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C},this.#h=(u,F,C)=>{if(D[u]=F,this.#u){let B=this.#u-D[u];while(this.#q>B)this.#f(!0)}if(this.#q+=D[u],C)C.entrySize=F,C.totalCalculatedSize=this.#q}}#v=(D)=>{};#h=(D,u,F)=>{};#x=(D,u,F,C)=>{if(F||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#w({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#H;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#G)break;else u=this.#_[u]}}*#S({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#G;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#H)break;else u=this.#V[u]}}#c(D){return D!==void 0&&this.#Y.get(this.#X[D])===D}*entries(){for(let D of this.#w())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*rentries(){for(let D of this.#S())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*keys(){for(let D of this.#w()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*rkeys(){for(let D of this.#S()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*values(){for(let D of this.#w())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}*rvalues(){for(let D of this.#S())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(D,u={}){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;if(D(B,this.#X[F],this))return this.get(this.#X[F],u)}}forEach(D,u=this){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}rforEach(D,u=this){for(let F of this.#S()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}purgeStale(){let D=!1;for(let u of this.#S({allowStale:!0}))if(this.#L(u))this.#P(this.#X[u],"expire"),D=!0;return D}info(D){let u=this.#Y.get(D);if(u===void 0)return;let F=this.#F[u],C=this.#Z(F)?F.__staleWhileFetching:F;if(C===void 0)return;let B={value:C};if(this.#z&&this.#I){let $=this.#z[u],E=this.#I[u];if($&&E){let Q=$-(this.#J.now()-E);B.ttl=Q,B.start=Date.now()}}if(this.#M)B.size=this.#M[u];return B}dump(){let D=[];for(let u of this.#w({allowStale:!0})){let F=this.#X[u],C=this.#F[u],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0||F===void 0)continue;let $={value:B};if(this.#z&&this.#I){$.ttl=this.#z[u];let E=this.#J.now()-this.#I[u];$.start=Math.floor(Date.now()-E)}if(this.#M)$.size=this.#M[u];D.unshift([F,$])}return D}load(D){this.clear();for(let[u,F]of D){if(F.start){let C=Date.now()-F.start;F.start=this.#J.now()-C}this.set(u,F.value,F)}}set(D,u,F={}){if(u===void 0)return this.delete(D),this;let{ttl:C=this.ttl,start:B,noDisposeOnSet:$=this.noDisposeOnSet,sizeCalculation:E=this.sizeCalculation,status:Q}=F,{noUpdateTTL:X=this.noUpdateTTL}=F,Z=this.#x(D,u,F.size||0,E);if(this.maxEntrySize&&Z>this.maxEntrySize){if(Q)Q.set="miss",Q.maxEntrySizeExceeded=!0;return this.#P(D,"set"),this}let J=this.#Q===0?void 0:this.#Y.get(D);if(J===void 0){if(J=this.#Q===0?this.#H:this.#O.length!==0?this.#O.pop():this.#Q===this.#D?this.#f(!1):this.#Q,this.#X[J]=D,this.#F[J]=u,this.#Y.set(D,J),this.#V[this.#H]=J,this.#_[J]=this.#H,this.#H=J,this.#Q++,this.#h(J,Z,Q),Q)Q.set="add";if(X=!1,this.#C)this.#B?.(u,D,"add")}else{this.#b(J);let V=this.#F[J];if(u!==V){if(this.#N&&this.#Z(V)){V.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:H}=V;if(H!==void 0&&!$){if(this.#j)this.#E?.(H,D,"set");if(this.#K)this.#A?.push([H,D,"set"])}}else if(!$){if(this.#j)this.#E?.(V,D,"set");if(this.#K)this.#A?.push([V,D,"set"])}if(this.#v(J),this.#h(J,Z,Q),this.#F[J]=u,Q){Q.set="replace";let H=V&&this.#Z(V)?V.__staleWhileFetching:V;if(H!==void 0)Q.oldValue=H}}else if(Q)Q.set="update";if(this.#C)this.onInsert?.(u,D,u===V?"update":"replace")}if(C!==0&&!this.#z)this.#k();if(this.#z){if(!X)this.#m(J,C,B);if(Q)this.#R(Q,J)}if(!$&&this.#K&&this.#A){let V=this.#A,H;while(H=V?.shift())this.#$?.(...H)}return this}pop(){try{while(this.#Q){let D=this.#F[this.#G];if(this.#f(!0),this.#Z(D)){if(D.__staleWhileFetching)return D.__staleWhileFetching}else if(D!==void 0)return D}}finally{if(this.#K&&this.#A){let D=this.#A,u;while(u=D?.shift())this.#$?.(...u)}}}#f(D){let u=this.#G,F=this.#X[u],C=this.#F[u];if(this.#N&&this.#Z(C))C.__abortController.abort(new Error("evicted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(C,F,"evict");if(this.#K)this.#A?.push([C,F,"evict"])}if(this.#v(u),D)this.#X[u]=void 0,this.#F[u]=void 0,this.#O.push(u);if(this.#Q===1)this.#G=this.#H=0,this.#O.length=0;else this.#G=this.#V[u];return this.#Y.delete(F),this.#Q--,u}has(D,u={}){let{updateAgeOnHas:F=this.updateAgeOnHas,status:C}=u,B=this.#Y.get(D);if(B!==void 0){let $=this.#F[B];if(this.#Z($)&&$.__staleWhileFetching===void 0)return!1;if(!this.#L(B)){if(F)this.#T(B);if(C)C.has="hit",this.#R(C,B);return!0}else if(C)C.has="stale",this.#R(C,B)}else if(C)C.has="miss";return!1}peek(D,u={}){let{allowStale:F=this.allowStale}=u,C=this.#Y.get(D);if(C===void 0||!F&&this.#L(C))return;let B=this.#F[C];return this.#Z(B)?B.__staleWhileFetching:B}#d(D,u,F,C){let B=u===void 0?void 0:this.#F[u];if(this.#Z(B))return B;let $=new N0,{signal:E}=F;E?.addEventListener("abort",()=>$.abort(E.reason),{signal:$.signal});let Q={signal:$.signal,options:F,context:C},X=(U,G=!1)=>{let{aborted:j}=$.signal,I=F.ignoreFetchAbort&&U!==void 0;if(F.status)if(j&&!G){if(F.status.fetchAborted=!0,F.status.fetchError=$.signal.reason,I)F.status.fetchAbortIgnored=!0}else F.status.fetchResolved=!0;if(j&&!I&&!G)return J($.signal.reason);let O=H,R=this.#F[u];if(R===H||I&&G&&R===void 0)if(U===void 0)if(O.__staleWhileFetching!==void 0)this.#F[u]=O.__staleWhileFetching;else this.#P(D,"fetch");else{if(F.status)F.status.fetchUpdated=!0;this.set(D,U,Q.options)}return U},Z=(U)=>{if(F.status)F.status.fetchRejected=!0,F.status.fetchError=U;return J(U)},J=(U)=>{let{aborted:G}=$.signal,j=G&&F.allowStaleOnFetchAbort,I=j||F.allowStaleOnFetchRejection,O=I||F.noDeleteOnFetchRejection,R=H;if(this.#F[u]===H){if(!O||R.__staleWhileFetching===void 0)this.#P(D,"fetch");else if(!j)this.#F[u]=R.__staleWhileFetching}if(I){if(F.status&&R.__staleWhileFetching!==void 0)F.status.returnedStale=!0;return R.__staleWhileFetching}else if(R.__returned===R)throw U},V=(U,G)=>{let j=this.#W?.(D,B,Q);if(j&&j instanceof Promise)j.then((I)=>U(I===void 0?void 0:I),G);$.signal.addEventListener("abort",()=>{if(!F.ignoreFetchAbort||F.allowStaleOnFetchAbort){if(U(void 0),F.allowStaleOnFetchAbort)U=(I)=>X(I,!0)}})};if(F.status)F.status.fetchDispatched=!0;let H=new Promise(V).then(X,Z),z=Object.assign(H,{__abortController:$,__staleWhileFetching:B,__returned:void 0});if(u===void 0)this.set(D,z,{...Q.options,status:void 0}),u=this.#Y.get(D);else this.#F[u]=z;return z}#Z(D){if(!this.#N)return!1;let u=D;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof N0}async fetch(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,ttl:$=this.ttl,noDisposeOnSet:E=this.noDisposeOnSet,size:Q=0,sizeCalculation:X=this.sizeCalculation,noUpdateTTL:Z=this.noUpdateTTL,noDeleteOnFetchRejection:J=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:V=this.allowStaleOnFetchRejection,ignoreFetchAbort:H=this.ignoreFetchAbort,allowStaleOnFetchAbort:z=this.allowStaleOnFetchAbort,context:U,forceRefresh:G=!1,status:j,signal:I}=u;if(!this.#N){if(j)j.fetch="get";return this.get(D,{allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,status:j})}let O={allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,ttl:$,noDisposeOnSet:E,size:Q,sizeCalculation:X,noUpdateTTL:Z,noDeleteOnFetchRejection:J,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:z,ignoreFetchAbort:H,status:j,signal:I},R=this.#Y.get(D);if(R===void 0){if(j)j.fetch="miss";let L=this.#d(D,R,O,U);return L.__returned=L}else{let L=this.#F[R];if(this.#Z(L)){let oD=F&&L.__staleWhileFetching!==void 0;if(j){if(j.fetch="inflight",oD)j.returnedStale=!0}return oD?L.__staleWhileFetching:L.__returned=L}let S=this.#L(R);if(!G&&!S){if(j)j.fetch="hit";if(this.#b(R),C)this.#T(R);if(j)this.#R(j,R);return L}let y=this.#d(D,R,O,U),SD=y.__staleWhileFetching!==void 0&&F;if(j){if(j.fetch=S?"stale":"refresh",SD&&S)j.returnedStale=!0}return SD?y.__staleWhileFetching:y.__returned=y}}async forceFetch(D,u={}){let F=await this.fetch(D,u);if(F===void 0)throw new Error("fetch() returned undefined");return F}memo(D,u={}){let F=this.#U;if(!F)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:B,...$}=u,E=this.get(D,$);if(!B&&E!==void 0)return E;let Q=F(D,E,{options:$,context:C});return this.set(D,Q,$),Q}get(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,status:$}=u,E=this.#Y.get(D);if(E!==void 0){let Q=this.#F[E],X=this.#Z(Q);if($)this.#R($,E);if(this.#L(E)){if($)$.get="stale";if(!X){if(!B)this.#P(D,"expire");if($&&F)$.returnedStale=!0;return F?Q:void 0}else{if($&&F&&Q.__staleWhileFetching!==void 0)$.returnedStale=!0;return F?Q.__staleWhileFetching:void 0}}else{if($)$.get="hit";if(X)return Q.__staleWhileFetching;if(this.#b(E),C)this.#T(E);return Q}}else if($)$.get="miss"}#l(D,u){this.#_[u]=D,this.#V[D]=u}#b(D){if(D!==this.#H){if(D===this.#G)this.#G=this.#V[D];else this.#l(this.#_[D],this.#V[D]);this.#l(this.#H,D),this.#H=D}}delete(D){return this.#P(D,"delete")}#P(D,u){let F=!1;if(this.#Q!==0){let C=this.#Y.get(D);if(C!==void 0)if(F=!0,this.#Q===1)this.#g(u);else{this.#v(C);let B=this.#F[C];if(this.#Z(B))B.__abortController.abort(new Error("deleted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(B,D,u);if(this.#K)this.#A?.push([B,D,u])}if(this.#Y.delete(D),this.#X[C]=void 0,this.#F[C]=void 0,C===this.#H)this.#H=this.#_[C];else if(C===this.#G)this.#G=this.#V[C];else{let $=this.#_[C];this.#V[$]=this.#V[C];let E=this.#V[C];this.#_[E]=this.#_[C]}this.#Q--,this.#O.push(C)}}if(this.#K&&this.#A?.length){let C=this.#A,B;while(B=C?.shift())this.#$?.(...B)}return F}clear(){return this.#g("delete")}#g(D){for(let u of this.#S({allowStale:!0})){let F=this.#F[u];if(this.#Z(F))F.__abortController.abort(new Error("deleted"));else{let C=this.#X[u];if(this.#j)this.#E?.(F,C,D);if(this.#K)this.#A?.push([F,C,D])}}if(this.#Y.clear(),this.#F.fill(void 0),this.#X.fill(void 0),this.#z&&this.#I)this.#z.fill(0),this.#I.fill(0);if(this.#M)this.#M.fill(0);if(this.#G=0,this.#H=0,this.#O.length=0,this.#q=0,this.#Q=0,this.#K&&this.#A){let u=this.#A,F;while(F=u?.shift())this.#$?.(...F)}}}import{posix as rB,win32 as J2}from"path";import{fileURLToPath as oB}from"url";import{lstatSync as sB,readdir as tB,readdirSync as eB,readlinkSync as D4,realpathSync as u4}from"fs";import*as F4 from"fs";import{lstat as B4,readdir as E4,readlink as $4,realpath as Q4}from"fs/promises";import{EventEmitter as $2}from"events";import J6 from"stream";import{StringDecoder as hB}from"string_decoder";var $6=typeof process==="object"&&process?process:{stdout:null,stderr:null},gB=(D)=>!!D&&typeof D==="object"&&(D instanceof Du||D instanceof J6||mB(D)||cB(D)),mB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.pipe==="function"&&D.pipe!==J6.Writable.prototype.pipe,cB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.write==="function"&&typeof D.end==="function",hD=Symbol("EOF"),gD=Symbol("maybeEmitEnd"),aD=Symbol("emittedEnd"),O0=Symbol("emittingEnd"),hu=Symbol("emittedError"),T0=Symbol("closed"),Q6=Symbol("read"),w0=Symbol("flush"),X6=Symbol("flushChunk"),wD=Symbol("encoding"),Vu=Symbol("decoder"),p=Symbol("flowing"),gu=Symbol("paused"),Hu=Symbol("resume"),i=Symbol("buffer"),BD=Symbol("pipes"),n=Symbol("bufferLength"),u2=Symbol("bufferPush"),P0=Symbol("bufferShift"),e=Symbol("objectMode"),d=Symbol("destroyed"),F2=Symbol("error"),C2=Symbol("emitData"),Z6=Symbol("emitEnd"),B2=Symbol("emitEnd2"),kD=Symbol("async"),E2=Symbol("abort"),S0=Symbol("aborted"),mu=Symbol("signal"),eD=Symbol("dataListeners"),HD=Symbol("discarded"),cu=(D)=>Promise.resolve().then(D),dB=(D)=>D(),lB=(D)=>D==="end"||D==="finish"||D==="prefinish",pB=(D)=>D instanceof ArrayBuffer||!!D&&typeof D==="object"&&D.constructor&&D.constructor.name==="ArrayBuffer"&&D.byteLength>=0,iB=(D)=>!Buffer.isBuffer(D)&&ArrayBuffer.isView(D);class Q2{src;dest;opts;ondrain;constructor(D,u,F){this.src=D,this.dest=u,this.opts=F,this.ondrain=()=>D[Hu](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(D){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class Y6 extends Q2{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(D,u,F){super(D,u,F);this.proxyErrors=(C)=>u.emit("error",C),D.on("error",this.proxyErrors)}}var nB=(D)=>!!D.objectMode,aB=(D)=>!D.objectMode&&!!D.encoding&&D.encoding!=="buffer";class Du extends $2{[p]=!1;[gu]=!1;[BD]=[];[i]=[];[e];[wD];[kD];[Vu];[hD]=!1;[aD]=!1;[O0]=!1;[T0]=!1;[hu]=null;[n]=0;[d]=!1;[mu];[S0]=!1;[eD]=0;[HD]=!1;writable=!0;readable=!0;constructor(...D){let u=D[0]||{};super();if(u.objectMode&&typeof u.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(nB(u))this[e]=!0,this[wD]=null;else if(aB(u))this[wD]=u.encoding,this[e]=!1;else this[e]=!1,this[wD]=null;if(this[kD]=!!u.async,this[Vu]=this[wD]?new hB(this[wD]):null,u&&u.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[i]});if(u&&u.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[BD]});let{signal:F}=u;if(F)if(this[mu]=F,F.aborted)this[E2]();else F.addEventListener("abort",()=>this[E2]())}get bufferLength(){return this[n]}get encoding(){return this[wD]}set encoding(D){throw new Error("Encoding must be set at instantiation time")}setEncoding(D){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[e]}set objectMode(D){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[kD]}set["async"](D){this[kD]=this[kD]||!!D}[E2](){this[S0]=!0,this.emit("abort",this[mu]?.reason),this.destroy(this[mu]?.reason)}get aborted(){return this[S0]}set aborted(D){}write(D,u,F){if(this[S0])return!1;if(this[hD])throw new Error("write after end");if(this[d])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof u==="function")F=u,u="utf8";if(!u)u="utf8";let C=this[kD]?cu:dB;if(!this[e]&&!Buffer.isBuffer(D)){if(iB(D))D=Buffer.from(D.buffer,D.byteOffset,D.byteLength);else if(pB(D))D=Buffer.from(D);else if(typeof D!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[e]){if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(!D.length){if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(typeof D==="string"&&!(u===this[wD]&&!this[Vu]?.lastNeed))D=Buffer.from(D,u);if(Buffer.isBuffer(D)&&this[wD])D=this[Vu].write(D);if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}read(D){if(this[d])return null;if(this[HD]=!1,this[n]===0||D===0||D&&D>this[n])return this[gD](),null;if(this[e])D=null;if(this[i].length>1&&!this[e])this[i]=[this[wD]?this[i].join(""):Buffer.concat(this[i],this[n])];let u=this[Q6](D||null,this[i][0]);return this[gD](),u}[Q6](D,u){if(this[e])this[P0]();else{let F=u;if(D===F.length||D===null)this[P0]();else if(typeof F==="string")this[i][0]=F.slice(D),u=F.slice(0,D),this[n]-=D;else this[i][0]=F.subarray(D),u=F.subarray(0,D),this[n]-=D}if(this.emit("data",u),!this[i].length&&!this[hD])this.emit("drain");return u}end(D,u,F){if(typeof D==="function")F=D,D=void 0;if(typeof u==="function")F=u,u="utf8";if(D!==void 0)this.write(D,u);if(F)this.once("end",F);if(this[hD]=!0,this.writable=!1,this[p]||!this[gu])this[gD]();return this}[Hu](){if(this[d])return;if(!this[eD]&&!this[BD].length)this[HD]=!0;if(this[gu]=!1,this[p]=!0,this.emit("resume"),this[i].length)this[w0]();else if(this[hD])this[gD]();else this.emit("drain")}resume(){return this[Hu]()}pause(){this[p]=!1,this[gu]=!0,this[HD]=!1}get destroyed(){return this[d]}get flowing(){return this[p]}get paused(){return this[gu]}[u2](D){if(this[e])this[n]+=1;else this[n]+=D.length;this[i].push(D)}[P0](){if(this[e])this[n]-=1;else this[n]-=this[i][0].length;return this[i].shift()}[w0](D=!1){do;while(this[X6](this[P0]())&&this[i].length);if(!D&&!this[i].length&&!this[hD])this.emit("drain")}[X6](D){return this.emit("data",D),this[p]}pipe(D,u){if(this[d])return D;this[HD]=!1;let F=this[aD];if(u=u||{},D===$6.stdout||D===$6.stderr)u.end=!1;else u.end=u.end!==!1;if(u.proxyErrors=!!u.proxyErrors,F){if(u.end)D.end()}else if(this[BD].push(!u.proxyErrors?new Q2(this,D,u):new Y6(this,D,u)),this[kD])cu(()=>this[Hu]());else this[Hu]();return D}unpipe(D){let u=this[BD].find((F)=>F.dest===D);if(u){if(this[BD].length===1){if(this[p]&&this[eD]===0)this[p]=!1;this[BD]=[]}else this[BD].splice(this[BD].indexOf(u),1);u.unpipe()}}addListener(D,u){return this.on(D,u)}on(D,u){let F=super.on(D,u);if(D==="data"){if(this[HD]=!1,this[eD]++,!this[BD].length&&!this[p])this[Hu]()}else if(D==="readable"&&this[n]!==0)super.emit("readable");else if(lB(D)&&this[aD])super.emit(D),this.removeAllListeners(D);else if(D==="error"&&this[hu]){let C=u;if(this[kD])cu(()=>C.call(this,this[hu]));else C.call(this,this[hu])}return F}removeListener(D,u){return this.off(D,u)}off(D,u){let F=super.off(D,u);if(D==="data"){if(this[eD]=this.listeners("data").length,this[eD]===0&&!this[HD]&&!this[BD].length)this[p]=!1}return F}removeAllListeners(D){let u=super.removeAllListeners(D);if(D==="data"||D===void 0){if(this[eD]=0,!this[HD]&&!this[BD].length)this[p]=!1}return u}get emittedEnd(){return this[aD]}[gD](){if(!this[O0]&&!this[aD]&&!this[d]&&this[i].length===0&&this[hD]){if(this[O0]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[T0])this.emit("close");this[O0]=!1}}emit(D,...u){let F=u[0];if(D!=="error"&&D!=="close"&&D!==d&&this[d])return!1;else if(D==="data")return!this[e]&&!F?!1:this[kD]?(cu(()=>this[C2](F)),!0):this[C2](F);else if(D==="end")return this[Z6]();else if(D==="close"){if(this[T0]=!0,!this[aD]&&!this[d])return!1;let B=super.emit("close");return this.removeAllListeners("close"),B}else if(D==="error"){this[hu]=F,super.emit(F2,F);let B=!this[mu]||this.listeners("error").length?super.emit("error",F):!1;return this[gD](),B}else if(D==="resume"){let B=super.emit("resume");return this[gD](),B}else if(D==="finish"||D==="prefinish"){let B=super.emit(D);return this.removeAllListeners(D),B}let C=super.emit(D,...u);return this[gD](),C}[C2](D){for(let F of this[BD])if(F.dest.write(D)===!1)this.pause();let u=this[HD]?!1:super.emit("data",D);return this[gD](),u}[Z6](){if(this[aD])return!1;return this[aD]=!0,this.readable=!1,this[kD]?(cu(()=>this[B2]()),!0):this[B2]()}[B2](){if(this[Vu]){let u=this[Vu].end();if(u){for(let F of this[BD])F.dest.write(u);if(!this[HD])super.emit("data",u)}}for(let u of this[BD])u.end();let D=super.emit("end");return this.removeAllListeners("end"),D}async collect(){let D=Object.assign([],{dataLength:0});if(!this[e])D.dataLength=0;let u=this.promise();return this.on("data",(F)=>{if(D.push(F),!this[e])D.dataLength+=F.length}),await u,D}async concat(){if(this[e])throw new Error("cannot concat in objectMode");let D=await this.collect();return this[wD]?D.join(""):Buffer.concat(D,D.dataLength)}async promise(){return new Promise((D,u)=>{this.on(d,()=>u(new Error("stream destroyed"))),this.on("error",(F)=>u(F)),this.on("end",()=>D())})}[Symbol.asyncIterator](){this[HD]=!1;let D=!1,u=async()=>{return this.pause(),D=!0,{value:void 0,done:!0}};return{next:()=>{if(D)return u();let C=this.read();if(C!==null)return Promise.resolve({done:!1,value:C});if(this[hD])return u();let B,$,E=(J)=>{this.off("data",Q),this.off("end",X),this.off(d,Z),u(),$(J)},Q=(J)=>{this.off("error",E),this.off("end",X),this.off(d,Z),this.pause(),B({value:J,done:!!this[hD]})},X=()=>{this.off("error",E),this.off("data",Q),this.off(d,Z),u(),B({done:!0,value:void 0})},Z=()=>E(new Error("stream destroyed"));return new Promise((J,V)=>{$=V,B=J,this.once(d,Z),this.once("error",E),this.once("end",X),this.once("data",Q)})},throw:u,return:u,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HD]=!1;let D=!1,u=()=>{return this.pause(),this.off(F2,u),this.off(d,u),this.off("end",u),D=!0,{done:!0,value:void 0}},F=()=>{if(D)return u();let C=this.read();return C===null?u():{done:!1,value:C}};return this.once("end",u),this.once(F2,u),this.once(d,u),{next:F,throw:u,return:u,[Symbol.iterator](){return this}}}destroy(D){if(this[d]){if(D)this.emit("error",D);else this.emit(d);return this}this[d]=!0,this[HD]=!0,this[i].length=0,this[n]=0;let u=this;if(typeof u.close==="function"&&!this[T0])u.close();if(D)this.emit("error",D);else this.emit(d);return this}static get isStream(){return gB}}var C4=u4.native,lu={lstatSync:sB,readdir:tB,readdirSync:eB,readlinkSync:D4,realpathSync:C4,promises:{lstat:B4,readdir:E4,readlink:$4,realpath:Q4}},A6=(D)=>!D||D===lu||D===F4?lu:{...lu,...D,promises:{...lu.promises,...D.promises||{}}},z6=/^\\\\\?\\([a-z]:)\\?$/i,X4=(D)=>D.replace(/\//g,"\\").replace(z6,"$1\\"),Z4=/[\\\/]/,MD=0,U6=1,G6=2,vD=4,W6=6,_6=8,uu=10,j6=12,jD=15,du=~jD,X2=16,q6=32,pu=64,PD=128,k0=256,x0=512,K6=pu|PD|x0,J4=1023,Z2=(D)=>D.isFile()?_6:D.isDirectory()?vD:D.isSymbolicLink()?uu:D.isCharacterDevice()?G6:D.isBlockDevice()?W6:D.isSocket()?j6:D.isFIFO()?U6:MD,V6=new Map,iu=(D)=>{let u=V6.get(D);if(u)return u;let F=D.normalize("NFKD");return V6.set(D,F),F},H6=new Map,v0=(D)=>{let u=H6.get(D);if(u)return u;let F=iu(D.toLowerCase());return H6.set(D,F),F};class Y2 extends yu{constructor(){super({max:256})}}class M6 extends yu{constructor(D=16384){super({maxSize:D,sizeCalculation:(u)=>u.length+1})}}var R6=Symbol("PathScurry setAsCwd");class ED{name;root;roots;parent;nocase;isCWD=!1;#D;#u;get dev(){return this.#u}#E;get mode(){return this.#E}#B;get nlink(){return this.#B}#$;get uid(){return this.#$}#W;get gid(){return this.#W}#U;get rdev(){return this.#U}#J;get blksize(){return this.#J}#Q;get ino(){return this.#Q}#q;get size(){return this.#q}#Y;get blocks(){return this.#Y}#X;get atimeMs(){return this.#X}#F;get mtimeMs(){return this.#F}#V;get ctimeMs(){return this.#V}#_;get birthtimeMs(){return this.#_}#G;get atime(){return this.#G}#H;get mtime(){return this.#H}#O;get ctime(){return this.#O}#A;get birthtime(){return this.#A}#M;#I;#z;#j;#N;#K;#C;#k;#T;#R;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(D,u=MD,F,C,B,$,E){if(this.name=D,this.#M=B?v0(D):iu(D),this.#C=u&J4,this.nocase=B,this.roots=C,this.root=F||this,this.#k=$,this.#z=E.fullpath,this.#N=E.relative,this.#K=E.relativePosix,this.parent=E.parent,this.parent)this.#D=this.parent.#D;else this.#D=A6(E.fs)}depth(){if(this.#I!==void 0)return this.#I;if(!this.parent)return this.#I=0;return this.#I=this.parent.depth()+1}childrenCache(){return this.#k}resolve(D){if(!D)return this;let u=this.getRootString(D),C=D.substring(u.length).split(this.splitSep);return u?this.getRoot(u).#m(C):this.#m(C)}#m(D){let u=this;for(let F of D)u=u.child(F);return u}children(){let D=this.#k.get(this);if(D)return D;let u=Object.assign([],{provisional:0});return this.#k.set(this,u),this.#C&=~X2,u}child(D,u){if(D===""||D===".")return this;if(D==="..")return this.parent||this;let F=this.children(),C=this.nocase?v0(D):iu(D);for(let Q of F)if(Q.#M===C)return Q;let B=this.parent?this.sep:"",$=this.#z?this.#z+B+D:void 0,E=this.newChild(D,MD,{...u,parent:this,fullpath:$});if(!this.canReaddir())E.#C|=PD;return F.push(E),E}relative(){if(this.isCWD)return"";if(this.#N!==void 0)return this.#N;let D=this.name,u=this.parent;if(!u)return this.#N=this.name;let F=u.relative();return F+(!F||!u.parent?"":this.sep)+D}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#K!==void 0)return this.#K;let D=this.name,u=this.parent;if(!u)return this.#K=this.fullpathPosix();let F=u.relativePosix();return F+(!F||!u.parent?"":"/")+D}fullpath(){if(this.#z!==void 0)return this.#z;let D=this.name,u=this.parent;if(!u)return this.#z=this.name;let C=u.fullpath()+(!u.parent?"":this.sep)+D;return this.#z=C}fullpathPosix(){if(this.#j!==void 0)return this.#j;if(this.sep==="/")return this.#j=this.fullpath();if(!this.parent){let C=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(C))return this.#j=`//?/${C}`;else return this.#j=C}let D=this.parent,u=D.fullpathPosix(),F=u+(!u||!D.parent?"":"/")+this.name;return this.#j=F}isUnknown(){return(this.#C&jD)===MD}isType(D){return this[`is${D}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#C&jD)===_6}isDirectory(){return(this.#C&jD)===vD}isCharacterDevice(){return(this.#C&jD)===G6}isBlockDevice(){return(this.#C&jD)===W6}isFIFO(){return(this.#C&jD)===U6}isSocket(){return(this.#C&jD)===j6}isSymbolicLink(){return(this.#C&uu)===uu}lstatCached(){return this.#C&q6?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#R}readdirCached(){let D=this.children();return D.slice(0,D.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let D=this.#C&jD;return!(D!==MD&&D!==uu||this.#C&k0||this.#C&PD)}calledReaddir(){return!!(this.#C&X2)}isENOENT(){return!!(this.#C&PD)}isNamed(D){return!this.nocase?this.#M===iu(D):this.#M===v0(D)}async readlink(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=await this.#D.promises.readlink(this.fullpath()),F=(await this.parent.realpath())?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}readlinkSync(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=this.#D.readlinkSync(this.fullpath()),F=this.parent.realpathSync()?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}#L(D){this.#C|=X2;for(let u=D.provisional;uF(null,D))}readdirCB(D,u=!1){if(!this.canReaddir()){if(u)D(null,[]);else queueMicrotask(()=>D(null,[]));return}let F=this.children();if(this.calledReaddir()){let B=F.slice(0,F.provisional);if(u)D(null,B);else queueMicrotask(()=>D(null,B));return}if(this.#P.push(D),this.#g)return;this.#g=!0;let C=this.fullpath();this.#D.readdir(C,{withFileTypes:!0},(B,$)=>{if(B)this.#w(B.code),F.provisional=0;else{for(let E of $)this.#f(E,F);this.#L(F)}this.#i(F.slice(0,F.provisional));return})}#p;async readdir(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();if(this.#p)await this.#p;else{let F=()=>{};this.#p=new Promise((C)=>F=C);try{for(let C of await this.#D.promises.readdir(u,{withFileTypes:!0}))this.#f(C,D);this.#L(D)}catch(C){this.#w(C.code),D.provisional=0}this.#p=void 0,F()}return D.slice(0,D.provisional)}readdirSync(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();try{for(let F of this.#D.readdirSync(u,{withFileTypes:!0}))this.#f(F,D);this.#L(D)}catch(F){this.#w(F.code),D.provisional=0}return D.slice(0,D.provisional)}canReaddir(){if(this.#C&K6)return!1;let D=jD&this.#C;if(!(D===MD||D===vD||D===uu))return!1;return!0}shouldWalk(D,u){return(this.#C&vD)===vD&&!(this.#C&K6)&&!D.has(this)&&(!u||u(this))}async realpath(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=await this.#D.promises.realpath(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}realpathSync(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=this.#D.realpathSync(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}[R6](D){if(D===this)return;D.isCWD=!1,this.isCWD=!0;let u=new Set([]),F=[],C=this;while(C&&C.parent)u.add(C),C.#N=F.join(this.sep),C.#K=F.join("/"),C=C.parent,F.push("..");C=D;while(C&&C.parent&&!u.has(C))C.#N=void 0,C.#K=void 0,C=C.parent}}class f0 extends ED{sep="\\";splitSep=Z4;constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}newChild(D,u=MD,F={}){return new f0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}getRootString(D){return J2.parse(D).root}getRoot(D){if(D=X4(D.toUpperCase()),D===this.root.name)return this.root;for(let[u,F]of Object.entries(this.roots))if(this.sameRoot(D,u))return this.roots[D]=F;return this.roots[D]=new nu(D,this).root}sameRoot(D,u=this.root.name){return D=D.toUpperCase().replace(/\//g,"\\").replace(z6,"$1\\"),D===u}}class b0 extends ED{splitSep="/";sep="/";constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}getRootString(D){return D.startsWith("/")?"/":""}getRoot(D){return this.root}newChild(D,u=MD,F={}){return new b0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}}class q2{root;rootPath;roots;cwd;#D;#u;#E;nocase;#B;constructor(D=process.cwd(),u,F,{nocase:C,childrenCacheSize:B=16384,fs:$=lu}={}){if(this.#B=A6($),D instanceof URL||D.startsWith("file://"))D=oB(D);let E=u.resolve(D);this.roots=Object.create(null),this.rootPath=this.parseRootPath(E),this.#D=new Y2,this.#u=new Y2,this.#E=new M6(B);let Q=E.substring(this.rootPath.length).split(F);if(Q.length===1&&!Q[0])Q.pop();if(C===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=C,this.root=this.newRoot(this.#B),this.roots[this.rootPath]=this.root;let X=this.root,Z=Q.length-1,J=u.sep,V=this.rootPath,H=!1;for(let z of Q){let U=Z--;X=X.child(z,{relative:new Array(U).fill("..").join(J),relativePosix:new Array(U).fill("..").join("/"),fullpath:V+=(H?"":J)+z}),H=!0}this.cwd=X}depth(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.depth()}childrenCache(){return this.#E}resolve(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#D.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpath();return this.#D.set(u,C),C}resolvePosix(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#u.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpathPosix();return this.#u.set(u,C),C}relative(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relative()}relativePosix(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relativePosix()}basename(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.name}dirname(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return(D.parent||D).fullpath()}async readdir(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F}=u;if(!D.canReaddir())return[];else{let C=await D.readdir();return F?C:C.map((B)=>B.name)}}readdirSync(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0}=u;if(!D.canReaddir())return[];else if(F)return D.readdirSync();else return D.readdirSync().map((C)=>C.name)}async lstat(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstat()}lstatSync(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstatSync()}async readlink(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.readlink();return u?F:F?.fullpath()}readlinkSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.readlinkSync();return u?F:F?.fullpath()}async realpath(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.realpath();return u?F:F?.fullpath()}realpathSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.realpathSync();return u?F:F?.fullpath()}async walk(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set,X=(J,V)=>{Q.add(J),J.readdirCB((H,z)=>{if(H)return V(H);let U=z.length;if(!U)return V();let G=()=>{if(--U===0)V()};for(let j of z){if(!B||B(j))E.push(F?j:j.fullpath());if(C&&j.isSymbolicLink())j.realpath().then((I)=>I?.isUnknown()?I.lstat():I).then((I)=>I?.shouldWalk(Q,$)?X(I,G):G());else if(j.shouldWalk(Q,$))X(j,G);else G()}},!0)},Z=D;return new Promise((J,V)=>{X(Z,(H)=>{if(H)return V(H);J(E)})})}walkSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set([D]);for(let X of Q){let Z=X.readdirSync();for(let J of Z){if(!B||B(J))E.push(F?J:J.fullpath());let V=J;if(J.isSymbolicLink()){if(!(C&&(V=J.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(Q,$))Q.add(V)}}return E}[Symbol.asyncIterator](){return this.iterate()}iterate(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;return this.stream(D,u)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u;if(!B||B(D))yield F?D:D.fullpath();let E=new Set([D]);for(let Q of E){let X=Q.readdirSync();for(let Z of X){if(!B||B(Z))yield F?Z:Z.fullpath();let J=Z;if(Z.isSymbolicLink()){if(!(C&&(J=Z.realpathSync())))continue;if(J.isUnknown())J.lstatSync()}if(J.shouldWalk(E,$))E.add(J)}}}stream(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0});if(!B||B(D))E.write(F?D:D.fullpath());let Q=new Set,X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=(G,j,I=!1)=>{if(G)return E.emit("error",G);if(C&&!I){let O=[];for(let R of j)if(R.isSymbolicLink())O.push(R.realpath().then((L)=>L?.isUnknown()?L.lstat():L));if(O.length){Promise.all(O).then(()=>z(null,j,!0));return}}for(let O of j)if(O&&(!B||B(O))){if(!E.write(F?O:O.fullpath()))V=!0}Z--;for(let O of j){let R=O.realpathCached()||O;if(R.shouldWalk(Q,$))X.push(R)}if(V&&!E.flowing)E.once("drain",J);else if(!U)J()},U=!0;H.readdirCB(z,!0),U=!1}};return J(),E}streamSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0}),Q=new Set;if(!B||B(D))E.write(F?D:D.fullpath());let X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=H.readdirSync();for(let U of z)if(!B||B(U)){if(!E.write(F?U:U.fullpath()))V=!0}Z--;for(let U of z){let G=U;if(U.isSymbolicLink()){if(!(C&&(G=U.realpathSync())))continue;if(G.isUnknown())G.lstatSync()}if(G.shouldWalk(Q,$))X.push(G)}}if(V&&!E.flowing)E.once("drain",J)};return J(),E}chdir(D=this.cwd){let u=this.cwd;this.cwd=typeof D==="string"?this.cwd.resolve(D):D,this.cwd[R6](u)}}class nu extends q2{sep="\\";constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,J2,"\\",{...u,nocase:F});this.nocase=F;for(let C=this.cwd;C;C=C.parent)C.nocase=this.nocase}parseRootPath(D){return J2.parse(D).root.toUpperCase()}newRoot(D){return new f0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")||D.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(D)}}class au extends q2{sep="/";constructor(D=process.cwd(),u={}){let{nocase:F=!1}=u;super(D,rB,"/",{...u,nocase:F});this.nocase=F}parseRootPath(D){return"/"}newRoot(D){return new b0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")}}class y0 extends au{constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,{...u,nocase:F})}}var EQ=process.platform==="win32"?f0:b0,L6=process.platform==="win32"?nu:process.platform==="darwin"?y0:au;var Y4=(D)=>D.length>=1,q4=(D)=>D.length>=1;class Au{#D;#u;#E;length;#B;#$;#W;#U;#J;#Q;#q=!0;constructor(D,u,F,C){if(!Y4(D))throw new TypeError("empty pattern list");if(!q4(u))throw new TypeError("empty glob list");if(u.length!==D.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=D.length,F<0||F>=this.length)throw new TypeError("index out of range");if(this.#D=D,this.#u=u,this.#E=F,this.#B=C,this.#E===0){if(this.isUNC()){let[B,$,E,Q,...X]=this.#D,[Z,J,V,H,...z]=this.#u;if(X[0]==="")X.shift(),z.shift();let U=[B,$,E,Q,""].join("/"),G=[Z,J,V,H,""].join("/");this.#D=[U,...X],this.#u=[G,...z],this.length=this.#D.length}else if(this.isDrive()||this.isAbsolute()){let[B,...$]=this.#D,[E,...Q]=this.#u;if($[0]==="")$.shift(),Q.shift();let X=B+"/",Z=E+"/";this.#D=[X,...$],this.#u=[Z,...Q],this.length=this.#D.length}}}pattern(){return this.#D[this.#E]}isString(){return typeof this.#D[this.#E]==="string"}isGlobstar(){return this.#D[this.#E]===r}isRegExp(){return this.#D[this.#E]instanceof RegExp}globString(){return this.#W=this.#W||(this.#E===0?this.isAbsolute()?this.#u[0]+this.#u.slice(1).join("/"):this.#u.join("/"):this.#u.slice(this.#E).join("/"))}hasMore(){return this.length>this.#E+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new Au(this.#D,this.#u,this.#E+1,this.#B),this.#$.#Q=this.#Q,this.#$.#J=this.#J,this.#$.#U=this.#U,this.#$}isUNC(){let D=this.#D;return this.#J!==void 0?this.#J:this.#J=this.#B==="win32"&&this.#E===0&&D[0]===""&&D[1]===""&&typeof D[2]==="string"&&!!D[2]&&typeof D[3]==="string"&&!!D[3]}isDrive(){let D=this.#D;return this.#U!==void 0?this.#U:this.#U=this.#B==="win32"&&this.#E===0&&this.length>1&&typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0])}isAbsolute(){let D=this.#D;return this.#Q!==void 0?this.#Q:this.#Q=D[0]===""&&D.length>1||this.isDrive()||this.isUNC()}root(){let D=this.#D[0];return typeof D==="string"&&this.isAbsolute()&&this.#E===0?D:""}checkFollowGlobstar(){return!(this.#E===0||!this.isGlobstar()||!this.#q)}markFollowGlobstar(){if(this.#E===0||!this.isGlobstar()||!this.#q)return!1;return this.#q=!1,!0}}var K4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class ru{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(D,{nobrace:u,nocase:F,noext:C,noglobstar:B,platform:$=K4}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=$,this.mmopts={dot:!0,nobrace:u,nocase:F,noext:C,noglobstar:B,optimizationLevel:2,platform:$,nocomment:!0,nonegate:!0};for(let E of D)this.add(E)}add(D){let u=new _D(D,this.mmopts);for(let F=0;F[D,!!(u&2),!!(u&1)])}}class N6{store=new Map;add(D,u){if(!D.canReaddir())return;let F=this.store.get(D);if(F){if(!F.find((C)=>C.globString()===u.globString()))F.push(u)}else this.store.set(D,[u])}get(D){let u=this.store.get(D);if(!u)throw new Error("attempting to walk unknown path");return u}entries(){return this.keys().map((D)=>[D,this.store.get(D)])}keys(){return[...this.store.keys()].filter((D)=>D.canReaddir())}}class ou{hasWalkedCache;matches=new I6;subwalks=new N6;patterns;follow;dot;opts;constructor(D,u){this.opts=D,this.follow=!!D.follow,this.dot=!!D.dot,this.hasWalkedCache=u?u.copy():new K2}processPatterns(D,u){this.patterns=u;let F=u.map((C)=>[D,C]);for(let[C,B]of F){this.hasWalkedCache.storeWalked(C,B);let $=B.root(),E=B.isAbsolute()&&this.opts.absolute!==!1;if($){C=C.resolve($==="/"&&this.opts.root!==void 0?this.opts.root:$);let J=B.rest();if(!J){this.matches.add(C,!0,!1);continue}else B=J}if(C.isENOENT())continue;let Q,X,Z=!1;while(typeof(Q=B.pattern())==="string"&&(X=B.rest()))C=C.resolve(Q),B=X,Z=!0;if(Q=B.pattern(),X=B.rest(),Z){if(this.hasWalkedCache.hasWalked(C,B))continue;this.hasWalkedCache.storeWalked(C,B)}if(typeof Q==="string"){let J=Q===".."||Q===""||Q===".";this.matches.add(C.resolve(Q),E,J);continue}else if(Q===r){if(!C.isSymbolicLink()||this.follow||B.checkFollowGlobstar())this.subwalks.add(C,B);let J=X?.pattern(),V=X?.rest();if(!X||(J===""||J===".")&&!V)this.matches.add(C,E,J===""||J===".");else if(J===".."){let H=C.parent||C;if(!V)this.matches.add(H,E,!0);else if(!this.hasWalkedCache.hasWalked(H,V))this.subwalks.add(H,V)}}else if(Q instanceof RegExp)this.subwalks.add(C,B)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new ou(this.opts,this.hasWalkedCache)}filterEntries(D,u){let F=this.subwalks.get(D),C=this.child();for(let B of u)for(let $ of F){let E=$.isAbsolute(),Q=$.pattern(),X=$.rest();if(Q===r)C.testGlobstar(B,$,X,E);else if(Q instanceof RegExp)C.testRegExp(B,Q,X,E);else C.testString(B,Q,X,E)}return C}testGlobstar(D,u,F,C){if(this.dot||!D.name.startsWith(".")){if(!u.hasMore())this.matches.add(D,C,!1);if(D.canReaddir()){if(this.follow||!D.isSymbolicLink())this.subwalks.add(D,u);else if(D.isSymbolicLink()){if(F&&u.checkFollowGlobstar())this.subwalks.add(D,F);else if(u.markFollowGlobstar())this.subwalks.add(D,u)}}}if(F){let B=F.pattern();if(typeof B==="string"&&B!==".."&&B!==""&&B!==".")this.testString(D,B,F.rest(),C);else if(B===".."){let $=D.parent||D;this.subwalks.add($,F)}else if(B instanceof RegExp)this.testRegExp(D,B,F.rest(),C)}}testRegExp(D,u,F,C){if(!u.test(D.name))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}testString(D,u,F,C){if(!D.isNamed(u))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}}var V4=(D,u)=>typeof D==="string"?new ru([D],u):Array.isArray(D)?new ru(D,u):D;class V2{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#D=[];#u;#E;signal;maxDepth;includeChildMatches;constructor(D,u,F){if(this.patterns=D,this.path=u,this.opts=F,this.#E=!F.posix&&F.platform==="win32"?"\\":"/",this.includeChildMatches=F.includeChildMatches!==!1,F.ignore||!this.includeChildMatches){if(this.#u=V4(F.ignore??[],F),!this.includeChildMatches&&typeof this.#u.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=F.maxDepth||1/0,F.signal)this.signal=F.signal,this.signal.addEventListener("abort",()=>{this.#D.length=0})}#B(D){return this.seen.has(D)||!!this.#u?.ignored?.(D)}#$(D){return!!this.#u?.childrenIgnored?.(D)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let D=void 0;while(!this.paused&&(D=this.#D.shift()))D()}onResume(D){if(this.signal?.aborted)return;if(!this.paused)D();else this.#D.push(D)}async matchCheck(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||await D.realpath(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?await D.lstat():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=await B.realpath();if($&&($.isUnknown()||this.opts.stat))await $.lstat()}return this.matchCheckTest(B,u)}matchCheckTest(D,u){return D&&(this.maxDepth===1/0||D.depth()<=this.maxDepth)&&(!u||D.canReaddir())&&(!this.opts.nodir||!D.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!D.isSymbolicLink()||!D.realpathCached()?.isDirectory())&&!this.#B(D)?D:void 0}matchCheckSync(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||D.realpathSync(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?D.lstatSync():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=B.realpathSync();if($&&($?.isUnknown()||this.opts.stat))$.lstatSync()}return this.matchCheckTest(B,u)}matchFinish(D,u){if(this.#B(D))return;if(!this.includeChildMatches&&this.#u?.add){let B=`${D.relativePosix()}/**`;this.#u.add(B)}let F=this.opts.absolute===void 0?u:this.opts.absolute;this.seen.add(D);let C=this.opts.mark&&D.isDirectory()?this.#E:"";if(this.opts.withFileTypes)this.matchEmit(D);else if(F){let B=this.opts.posix?D.fullpathPosix():D.fullpath();this.matchEmit(B+C)}else{let B=this.opts.posix?D.relativePosix():D.relative(),$=this.opts.dotRelative&&!B.startsWith(".."+this.#E)?"."+this.#E:"";this.matchEmit(!B?"."+C:$+B+C)}}async match(D,u,F){let C=await this.matchCheck(D,F);if(C)this.matchFinish(C,u)}matchSync(D,u,F){let C=this.matchCheckSync(D,F);if(C)this.matchFinish(C,u)}walkCB(D,u,F){if(this.signal?.aborted)F();this.walkCB2(D,u,new ou(this.opts),F)}walkCB2(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirCached();if(E.calledReaddir())this.walkCB3(E,Q,F,$);else E.readdirCB((X,Z)=>this.walkCB3(E,Z,F,$),!0)}$()}walkCB3(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2(E,Q,F.child(),$);$()}walkCBSync(D,u,F){if(this.signal?.aborted)F();this.walkCB2Sync(D,u,new ou(this.opts),F)}walkCB2Sync(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2Sync(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirSync();this.walkCB3Sync(E,Q,F,$)}$()}walkCB3Sync(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2Sync(E,Q,F.child(),$);$()}}class h0 extends V2{matches=new Set;constructor(D,u,F){super(D,u,F)}matchEmit(D){this.matches.add(D)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((D,u)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)u(this.signal.reason);else D(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class g0 extends V2{results;constructor(D,u,F){super(D,u,F);this.results=new Du({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(D){if(this.results.write(D),!this.results.flowing)this.pause()}stream(){let D=this.path;if(D.isUnknown())D.lstat().then(()=>{this.walkCB(D,this.patterns,()=>this.results.end())});else this.walkCB(D,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var A4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class xD{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(D,u){if(!u)throw new TypeError("glob options required");if(this.withFileTypes=!!u.withFileTypes,this.signal=u.signal,this.follow=!!u.follow,this.dot=!!u.dot,this.dotRelative=!!u.dotRelative,this.nodir=!!u.nodir,this.mark=!!u.mark,!u.cwd)this.cwd="";else if(u.cwd instanceof URL||u.cwd.startsWith("file://"))u.cwd=H4(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||A4,this.opts={...u,platform:this.platform},u.scurry){if(this.scurry=u.scurry,u.nocase!==void 0&&u.nocase!==u.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let Q=u.platform==="win32"?nu:u.platform==="darwin"?y0:u.platform?au:L6;this.scurry=new Q(this.cwd,{nocase:u.nocase,fs:u.fs})}this.nocase=this.scurry.nocase;let F=this.platform==="darwin"||this.platform==="win32",C={...u,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:F,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},B=this.pattern.map((Q)=>new _D(Q,C)),[$,E]=B.reduce((Q,X)=>{return Q[0].push(...X.set),Q[1].push(...X.globParts),Q},[[],[]]);this.patterns=$.map((Q,X)=>{let Z=E[X];if(!Z)throw new Error("invalid pattern object");return new Au(Q,Z,0,this.platform)})}async walk(){return[...await new h0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new h0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new g0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new g0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var H2=(D,u={})=>{if(!Array.isArray(D))D=[D];for(let F of D)if(new _D(F,u).hasMagic())return!0;return!1};function c0(D,u={}){return new xD(D,u).streamSync()}function T6(D,u={}){return new xD(D,u).stream()}function w6(D,u={}){return new xD(D,u).walkSync()}async function O6(D,u={}){return new xD(D,u).walk()}function d0(D,u={}){return new xD(D,u).iterateSync()}function P6(D,u={}){return new xD(D,u).iterate()}var z4=c0,U4=Object.assign(T6,{sync:c0}),G4=d0,W4=Object.assign(P6,{sync:d0}),_4=Object.assign(w6,{stream:c0,iterate:d0}),m0=Object.assign(O6,{glob:O6,globSync:w6,sync:_4,globStream:T6,stream:U4,globStreamSync:c0,streamSync:z4,globIterate:P6,iterate:W4,globIterateSync:d0,iterateSync:G4,Glob:xD,hasMagic:H2,escape:qu,unescape:TD});m0.glob=m0;async function k6(D,u={}){let F=C.TRASH_DIR;if(!S6(F))M4(F,{recursive:!0});let C=Array.isArray(D)?D:[D];for(let B of C){let $=await m0(B),E=$.length>0?$:[B];for(let Q of E)try{if(!S6(Q)){if(!u.force){console.error(`trash: ${Q}: No such file or directory`);continue}continue}if(R4(Q).isDirectory()&&!u.recursive){if(!u.force){console.error(`trash: ${Q}: is a directory`);continue}}let Z=I4(Q),J=Date.now(),V=L4(F,`${Z}.${J}`);j4(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 x6,statSync as f6}from"fs";import{join as b6}from"path";$D();function N4(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 v6(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 y6(D){let u=0,F=x6(D);for(let C of F){let B=b6(D,C),$=f6(B);if($.isDirectory())u+=y6(B);else u+=$.size}return u}async function h6(){let D=tD;try{let u=x6(D);if(u.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is empty");return}let F=u.map((E)=>{let Q=b6(D,E),X=f6(Q),{name:Z,timestamp:J}=N4(E),V=X.isDirectory()?y6(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(` +>>> no match, partial?`,D,V,u,H),V===Q)return!0}return!1}let U;if(typeof Z==="string")U=J===Z,this.debug("string match",Z,J,U);else U=Z.test(J),this.debug("pattern match",Z,J,U);if(!U)return!1}if($===Q&&E===X)return!0;else if($===Q)return F;else if(E===X)return $===Q-1&&D[$]==="";else throw new Error("wtf?")}braceExpand(){return u6(this.pattern,this.options)}parse(D){xu(D);let u=this.options;if(D==="**")return r;if(D==="")return"";let F,C=null;if(F=D.match(_B))C=u.dot?MB:jB;else if(F=D.match(YB))C=(u.nocase?u.dot?HB:VB:u.dot?KB:qB)(F[1]);else if(F=D.match(RB))C=(u.nocase?u.dot?IB:LB:u.dot?NB:OB)(F);else if(F=D.match(AB))C=u.dot?UB:zB;else if(F=D.match(GB))C=WB;let B=a.fromGlob(D,this.options).toMMPattern();if(C&&typeof B==="object")Reflect.defineProperty(B,"test",{value:C});return B}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let D=this.set;if(!D.length)return this.regexp=!1,this.regexp;let u=this.options,F=u.noglobstar?PB:u.dot?SB:kB,C=new Set(u.nocase?["i"]:[]),B=D.map((Q)=>{let X=Q.map((Z)=>{if(Z instanceof RegExp)for(let J of Z.flags.split(""))C.add(J);return typeof Z==="string"?yB(Z):Z===r?r:Z._src});return X.forEach((Z,J)=>{let V=X[J+1],H=X[J-1];if(Z!==r||H===r)return;if(H===void 0)if(V!==void 0&&V!==r)X[J+1]="(?:\\/|"+F+"\\/)?"+V;else X[J]=F;else if(V===void 0)X[J-1]=H+"(?:\\/|"+F+")?";else if(V!==r)X[J-1]=H+"(?:\\/|\\/"+F+"\\/)"+V,X[J+1]=r}),X.filter((Z)=>Z!==r).join("/")}).join("|"),[$,E]=D.length>1?["(?:",")"]:["",""];if(B="^"+$+B+E+"$",this.negate)B="^(?!"+B+").+$";try{this.regexp=new RegExp(B,[...C].join(""))}catch(Q){this.regexp=!1}return this.regexp}slashSplit(D){if(this.preserveMultipleSlashes)return D.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(D))return["",...D.split(/\/+/)];else return D.split(/\/+/)}match(D,u=this.partial){if(this.debug("match",D,this.pattern),this.comment)return!1;if(this.empty)return D==="";if(D==="/"&&u)return!0;let F=this.options;if(this.isWindows)D=D.split("\\").join("/");let C=this.slashSplit(D);this.debug(this.pattern,"split",C);let B=this.set;this.debug(this.pattern,"set",B);let $=C[C.length-1];if(!$)for(let E=C.length-2;!$&&E>=0;E--)$=C[E];for(let E=0;E{typeof D2.emitWarning==="function"?D2.emitWarning(D,u,F,C):console.error(`[${F}] ${u}: ${D}`)},N0=globalThis.AbortController,F6=globalThis.AbortSignal;if(typeof N0==="undefined"){F6=class F{onabort;_onabort=[];reason;aborted=!1;addEventListener(C,B){this._onabort.push(B)}},N0=class F{constructor(){u()}signal=new F6;abort(C){if(this.signal.aborted)return;this.signal.reason=C,this.signal.aborted=!0;for(let B of this.signal._onabort)B(C);this.signal.onabort?.(C)}};let D=D2.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",u=()=>{if(!D)return;D=!1,B6("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",u)}}var gB=(D)=>!C6.has(D),n$=Symbol("type"),nD=(D)=>D&&D===Math.floor(D)&&D>0&&isFinite(D),E6=(D)=>!nD(D)?null:D<=Math.pow(2,8)?Uint8Array:D<=Math.pow(2,16)?Uint16Array:D<=Math.pow(2,32)?Uint32Array:D<=Number.MAX_SAFE_INTEGER?bu:null;class bu extends Array{constructor(D){super(D);this.fill(0)}}class Ku{heap;length;static#D=!1;static create(D){let u=E6(D);if(!u)return[];Ku.#D=!0;let F=new Ku(D,u);return Ku.#D=!1,F}constructor(D,u){if(!Ku.#D)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(D),this.length=0}push(D){this.heap[this.length++]=D}pop(){return this.heap[--this.length]}}class yu{#D;#u;#E;#B;#$;#W;#U;#J;get perf(){return this.#J}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#Q;#q;#Y;#X;#F;#V;#_;#G;#H;#O;#A;#M;#I;#z;#j;#N;#K;#C;static unsafeExposeInternals(D){return{starts:D.#I,ttls:D.#z,sizes:D.#M,keyMap:D.#Y,keyList:D.#X,valList:D.#F,next:D.#V,prev:D.#_,get head(){return D.#G},get tail(){return D.#H},free:D.#O,isBackgroundFetch:(u)=>D.#Z(u),backgroundFetch:(u,F,C,B)=>D.#d(u,F,C,B),moveToTail:(u)=>D.#b(u),indexes:(u)=>D.#w(u),rindexes:(u)=>D.#S(u),isStale:(u)=>D.#L(u)}}get max(){return this.#D}get maxSize(){return this.#u}get calculatedSize(){return this.#q}get size(){return this.#Q}get fetchMethod(){return this.#W}get memoMethod(){return this.#U}get dispose(){return this.#E}get onInsert(){return this.#B}get disposeAfter(){return this.#$}constructor(D){let{max:u=0,ttl:F,ttlResolution:C=1,ttlAutopurge:B,updateAgeOnGet:$,updateAgeOnHas:E,allowStale:Q,dispose:X,onInsert:Z,disposeAfter:J,noDisposeOnSet:V,noUpdateTTL:H,maxSize:z=0,maxEntrySize:U=0,sizeCalculation:G,fetchMethod:j,memoMethod:I,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:L,allowStaleOnFetchAbort:S,ignoreFetchAbort:y,perf:ZD}=D;if(ZD!==void 0){if(typeof ZD?.now!=="function")throw new TypeError("perf option must have a now() method if specified")}if(this.#J=ZD??hB,u!==0&&!nD(u))throw new TypeError("max option must be a nonnegative integer");let SD=u?E6(u):Array;if(!SD)throw new Error("invalid max value: "+u);if(this.#D=u,this.#u=z,this.maxEntrySize=U||this.#u,this.sizeCalculation=G,this.sizeCalculation){if(!this.#u&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#U=I,j!==void 0&&typeof j!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=j,this.#N=!!j,this.#Y=new Map,this.#X=new Array(u).fill(void 0),this.#F=new Array(u).fill(void 0),this.#V=new SD(u),this.#_=new SD(u),this.#G=0,this.#H=0,this.#O=Ku.create(u),this.#Q=0,this.#q=0,typeof X==="function")this.#E=X;if(typeof Z==="function")this.#B=Z;if(typeof J==="function")this.#$=J,this.#A=[];else this.#$=void 0,this.#A=void 0;if(this.#j=!!this.#E,this.#C=!!this.#B,this.#K=!!this.#$,this.noDisposeOnSet=!!V,this.noUpdateTTL=!!H,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!L,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!y,this.maxEntrySize!==0){if(this.#u!==0){if(!nD(this.#u))throw new TypeError("maxSize must be a positive integer if specified")}if(!nD(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#y()}if(this.allowStale=!!Q,this.noDeleteOnStaleGet=!!R,this.updateAgeOnGet=!!$,this.updateAgeOnHas=!!E,this.ttlResolution=nD(C)||C===0?C:1,this.ttlAutopurge=!!B,this.ttl=F||0,this.ttl){if(!nD(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#k()}if(this.#D===0&&this.ttl===0&&this.#u===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#D&&!this.#u){if(gB("LRU_CACHE_UNBOUNDED"))C6.add("LRU_CACHE_UNBOUNDED"),B6("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",yu)}}getRemainingTTL(D){return this.#Y.has(D)?1/0:0}#k(){let D=new bu(this.#D),u=new bu(this.#D);this.#z=D,this.#I=u,this.#m=(B,$,E=this.#J.now())=>{if(u[B]=$!==0?E:0,D[B]=$,$!==0&&this.ttlAutopurge){let Q=setTimeout(()=>{if(this.#L(B))this.#P(this.#X[B],"expire")},$+1);if(Q.unref)Q.unref()}},this.#T=(B)=>{u[B]=D[B]!==0?this.#J.now():0},this.#R=(B,$)=>{if(D[$]){let E=D[$],Q=u[$];if(!E||!Q)return;B.ttl=E,B.start=Q,B.now=F||C();let X=B.now-Q;B.remainingTTL=E-X}};let F=0,C=()=>{let B=this.#J.now();if(this.ttlResolution>0){F=B;let $=setTimeout(()=>F=0,this.ttlResolution);if($.unref)$.unref()}return B};this.getRemainingTTL=(B)=>{let $=this.#Y.get(B);if($===void 0)return 0;let E=D[$],Q=u[$];if(!E||!Q)return 1/0;let X=(F||C())-Q;return E-X},this.#L=(B)=>{let $=u[B],E=D[B];return!!E&&!!$&&(F||C())-$>E}}#T=()=>{};#R=()=>{};#m=()=>{};#L=()=>!1;#y(){let D=new bu(this.#D);this.#q=0,this.#M=D,this.#v=(u)=>{this.#q-=D[u],D[u]=0},this.#x=(u,F,C,B)=>{if(this.#Z(F))return 0;if(!nD(C))if(B){if(typeof B!=="function")throw new TypeError("sizeCalculation must be a function");if(C=B(F,u),!nD(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C},this.#h=(u,F,C)=>{if(D[u]=F,this.#u){let B=this.#u-D[u];while(this.#q>B)this.#f(!0)}if(this.#q+=D[u],C)C.entrySize=F,C.totalCalculatedSize=this.#q}}#v=(D)=>{};#h=(D,u,F)=>{};#x=(D,u,F,C)=>{if(F||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#w({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#H;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#G)break;else u=this.#_[u]}}*#S({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#G;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#H)break;else u=this.#V[u]}}#c(D){return D!==void 0&&this.#Y.get(this.#X[D])===D}*entries(){for(let D of this.#w())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*rentries(){for(let D of this.#S())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*keys(){for(let D of this.#w()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*rkeys(){for(let D of this.#S()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*values(){for(let D of this.#w())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}*rvalues(){for(let D of this.#S())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(D,u={}){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;if(D(B,this.#X[F],this))return this.get(this.#X[F],u)}}forEach(D,u=this){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}rforEach(D,u=this){for(let F of this.#S()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}purgeStale(){let D=!1;for(let u of this.#S({allowStale:!0}))if(this.#L(u))this.#P(this.#X[u],"expire"),D=!0;return D}info(D){let u=this.#Y.get(D);if(u===void 0)return;let F=this.#F[u],C=this.#Z(F)?F.__staleWhileFetching:F;if(C===void 0)return;let B={value:C};if(this.#z&&this.#I){let $=this.#z[u],E=this.#I[u];if($&&E){let Q=$-(this.#J.now()-E);B.ttl=Q,B.start=Date.now()}}if(this.#M)B.size=this.#M[u];return B}dump(){let D=[];for(let u of this.#w({allowStale:!0})){let F=this.#X[u],C=this.#F[u],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0||F===void 0)continue;let $={value:B};if(this.#z&&this.#I){$.ttl=this.#z[u];let E=this.#J.now()-this.#I[u];$.start=Math.floor(Date.now()-E)}if(this.#M)$.size=this.#M[u];D.unshift([F,$])}return D}load(D){this.clear();for(let[u,F]of D){if(F.start){let C=Date.now()-F.start;F.start=this.#J.now()-C}this.set(u,F.value,F)}}set(D,u,F={}){if(u===void 0)return this.delete(D),this;let{ttl:C=this.ttl,start:B,noDisposeOnSet:$=this.noDisposeOnSet,sizeCalculation:E=this.sizeCalculation,status:Q}=F,{noUpdateTTL:X=this.noUpdateTTL}=F,Z=this.#x(D,u,F.size||0,E);if(this.maxEntrySize&&Z>this.maxEntrySize){if(Q)Q.set="miss",Q.maxEntrySizeExceeded=!0;return this.#P(D,"set"),this}let J=this.#Q===0?void 0:this.#Y.get(D);if(J===void 0){if(J=this.#Q===0?this.#H:this.#O.length!==0?this.#O.pop():this.#Q===this.#D?this.#f(!1):this.#Q,this.#X[J]=D,this.#F[J]=u,this.#Y.set(D,J),this.#V[this.#H]=J,this.#_[J]=this.#H,this.#H=J,this.#Q++,this.#h(J,Z,Q),Q)Q.set="add";if(X=!1,this.#C)this.#B?.(u,D,"add")}else{this.#b(J);let V=this.#F[J];if(u!==V){if(this.#N&&this.#Z(V)){V.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:H}=V;if(H!==void 0&&!$){if(this.#j)this.#E?.(H,D,"set");if(this.#K)this.#A?.push([H,D,"set"])}}else if(!$){if(this.#j)this.#E?.(V,D,"set");if(this.#K)this.#A?.push([V,D,"set"])}if(this.#v(J),this.#h(J,Z,Q),this.#F[J]=u,Q){Q.set="replace";let H=V&&this.#Z(V)?V.__staleWhileFetching:V;if(H!==void 0)Q.oldValue=H}}else if(Q)Q.set="update";if(this.#C)this.onInsert?.(u,D,u===V?"update":"replace")}if(C!==0&&!this.#z)this.#k();if(this.#z){if(!X)this.#m(J,C,B);if(Q)this.#R(Q,J)}if(!$&&this.#K&&this.#A){let V=this.#A,H;while(H=V?.shift())this.#$?.(...H)}return this}pop(){try{while(this.#Q){let D=this.#F[this.#G];if(this.#f(!0),this.#Z(D)){if(D.__staleWhileFetching)return D.__staleWhileFetching}else if(D!==void 0)return D}}finally{if(this.#K&&this.#A){let D=this.#A,u;while(u=D?.shift())this.#$?.(...u)}}}#f(D){let u=this.#G,F=this.#X[u],C=this.#F[u];if(this.#N&&this.#Z(C))C.__abortController.abort(new Error("evicted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(C,F,"evict");if(this.#K)this.#A?.push([C,F,"evict"])}if(this.#v(u),D)this.#X[u]=void 0,this.#F[u]=void 0,this.#O.push(u);if(this.#Q===1)this.#G=this.#H=0,this.#O.length=0;else this.#G=this.#V[u];return this.#Y.delete(F),this.#Q--,u}has(D,u={}){let{updateAgeOnHas:F=this.updateAgeOnHas,status:C}=u,B=this.#Y.get(D);if(B!==void 0){let $=this.#F[B];if(this.#Z($)&&$.__staleWhileFetching===void 0)return!1;if(!this.#L(B)){if(F)this.#T(B);if(C)C.has="hit",this.#R(C,B);return!0}else if(C)C.has="stale",this.#R(C,B)}else if(C)C.has="miss";return!1}peek(D,u={}){let{allowStale:F=this.allowStale}=u,C=this.#Y.get(D);if(C===void 0||!F&&this.#L(C))return;let B=this.#F[C];return this.#Z(B)?B.__staleWhileFetching:B}#d(D,u,F,C){let B=u===void 0?void 0:this.#F[u];if(this.#Z(B))return B;let $=new N0,{signal:E}=F;E?.addEventListener("abort",()=>$.abort(E.reason),{signal:$.signal});let Q={signal:$.signal,options:F,context:C},X=(U,G=!1)=>{let{aborted:j}=$.signal,I=F.ignoreFetchAbort&&U!==void 0;if(F.status)if(j&&!G){if(F.status.fetchAborted=!0,F.status.fetchError=$.signal.reason,I)F.status.fetchAbortIgnored=!0}else F.status.fetchResolved=!0;if(j&&!I&&!G)return J($.signal.reason);let O=H,R=this.#F[u];if(R===H||I&&G&&R===void 0)if(U===void 0)if(O.__staleWhileFetching!==void 0)this.#F[u]=O.__staleWhileFetching;else this.#P(D,"fetch");else{if(F.status)F.status.fetchUpdated=!0;this.set(D,U,Q.options)}return U},Z=(U)=>{if(F.status)F.status.fetchRejected=!0,F.status.fetchError=U;return J(U)},J=(U)=>{let{aborted:G}=$.signal,j=G&&F.allowStaleOnFetchAbort,I=j||F.allowStaleOnFetchRejection,O=I||F.noDeleteOnFetchRejection,R=H;if(this.#F[u]===H){if(!O||R.__staleWhileFetching===void 0)this.#P(D,"fetch");else if(!j)this.#F[u]=R.__staleWhileFetching}if(I){if(F.status&&R.__staleWhileFetching!==void 0)F.status.returnedStale=!0;return R.__staleWhileFetching}else if(R.__returned===R)throw U},V=(U,G)=>{let j=this.#W?.(D,B,Q);if(j&&j instanceof Promise)j.then((I)=>U(I===void 0?void 0:I),G);$.signal.addEventListener("abort",()=>{if(!F.ignoreFetchAbort||F.allowStaleOnFetchAbort){if(U(void 0),F.allowStaleOnFetchAbort)U=(I)=>X(I,!0)}})};if(F.status)F.status.fetchDispatched=!0;let H=new Promise(V).then(X,Z),z=Object.assign(H,{__abortController:$,__staleWhileFetching:B,__returned:void 0});if(u===void 0)this.set(D,z,{...Q.options,status:void 0}),u=this.#Y.get(D);else this.#F[u]=z;return z}#Z(D){if(!this.#N)return!1;let u=D;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof N0}async fetch(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,ttl:$=this.ttl,noDisposeOnSet:E=this.noDisposeOnSet,size:Q=0,sizeCalculation:X=this.sizeCalculation,noUpdateTTL:Z=this.noUpdateTTL,noDeleteOnFetchRejection:J=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:V=this.allowStaleOnFetchRejection,ignoreFetchAbort:H=this.ignoreFetchAbort,allowStaleOnFetchAbort:z=this.allowStaleOnFetchAbort,context:U,forceRefresh:G=!1,status:j,signal:I}=u;if(!this.#N){if(j)j.fetch="get";return this.get(D,{allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,status:j})}let O={allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,ttl:$,noDisposeOnSet:E,size:Q,sizeCalculation:X,noUpdateTTL:Z,noDeleteOnFetchRejection:J,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:z,ignoreFetchAbort:H,status:j,signal:I},R=this.#Y.get(D);if(R===void 0){if(j)j.fetch="miss";let L=this.#d(D,R,O,U);return L.__returned=L}else{let L=this.#F[R];if(this.#Z(L)){let oD=F&&L.__staleWhileFetching!==void 0;if(j){if(j.fetch="inflight",oD)j.returnedStale=!0}return oD?L.__staleWhileFetching:L.__returned=L}let S=this.#L(R);if(!G&&!S){if(j)j.fetch="hit";if(this.#b(R),C)this.#T(R);if(j)this.#R(j,R);return L}let y=this.#d(D,R,O,U),SD=y.__staleWhileFetching!==void 0&&F;if(j){if(j.fetch=S?"stale":"refresh",SD&&S)j.returnedStale=!0}return SD?y.__staleWhileFetching:y.__returned=y}}async forceFetch(D,u={}){let F=await this.fetch(D,u);if(F===void 0)throw new Error("fetch() returned undefined");return F}memo(D,u={}){let F=this.#U;if(!F)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:B,...$}=u,E=this.get(D,$);if(!B&&E!==void 0)return E;let Q=F(D,E,{options:$,context:C});return this.set(D,Q,$),Q}get(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,status:$}=u,E=this.#Y.get(D);if(E!==void 0){let Q=this.#F[E],X=this.#Z(Q);if($)this.#R($,E);if(this.#L(E)){if($)$.get="stale";if(!X){if(!B)this.#P(D,"expire");if($&&F)$.returnedStale=!0;return F?Q:void 0}else{if($&&F&&Q.__staleWhileFetching!==void 0)$.returnedStale=!0;return F?Q.__staleWhileFetching:void 0}}else{if($)$.get="hit";if(X)return Q.__staleWhileFetching;if(this.#b(E),C)this.#T(E);return Q}}else if($)$.get="miss"}#l(D,u){this.#_[u]=D,this.#V[D]=u}#b(D){if(D!==this.#H){if(D===this.#G)this.#G=this.#V[D];else this.#l(this.#_[D],this.#V[D]);this.#l(this.#H,D),this.#H=D}}delete(D){return this.#P(D,"delete")}#P(D,u){let F=!1;if(this.#Q!==0){let C=this.#Y.get(D);if(C!==void 0)if(F=!0,this.#Q===1)this.#g(u);else{this.#v(C);let B=this.#F[C];if(this.#Z(B))B.__abortController.abort(new Error("deleted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(B,D,u);if(this.#K)this.#A?.push([B,D,u])}if(this.#Y.delete(D),this.#X[C]=void 0,this.#F[C]=void 0,C===this.#H)this.#H=this.#_[C];else if(C===this.#G)this.#G=this.#V[C];else{let $=this.#_[C];this.#V[$]=this.#V[C];let E=this.#V[C];this.#_[E]=this.#_[C]}this.#Q--,this.#O.push(C)}}if(this.#K&&this.#A?.length){let C=this.#A,B;while(B=C?.shift())this.#$?.(...B)}return F}clear(){return this.#g("delete")}#g(D){for(let u of this.#S({allowStale:!0})){let F=this.#F[u];if(this.#Z(F))F.__abortController.abort(new Error("deleted"));else{let C=this.#X[u];if(this.#j)this.#E?.(F,C,D);if(this.#K)this.#A?.push([F,C,D])}}if(this.#Y.clear(),this.#F.fill(void 0),this.#X.fill(void 0),this.#z&&this.#I)this.#z.fill(0),this.#I.fill(0);if(this.#M)this.#M.fill(0);if(this.#G=0,this.#H=0,this.#O.length=0,this.#q=0,this.#Q=0,this.#K&&this.#A){let u=this.#A,F;while(F=u?.shift())this.#$?.(...F)}}}import{posix as sB,win32 as J2}from"path";import{fileURLToPath as tB}from"url";import{lstatSync as eB,readdir as D4,readdirSync as u4,readlinkSync as F4,realpathSync as C4}from"fs";import*as B4 from"fs";import{lstat as $4,readdir as Q4,readlink as X4,realpath as Z4}from"fs/promises";import{EventEmitter as $2}from"events";import J6 from"stream";import{StringDecoder as mB}from"string_decoder";var $6=typeof process==="object"&&process?process:{stdout:null,stderr:null},cB=(D)=>!!D&&typeof D==="object"&&(D instanceof Du||D instanceof J6||dB(D)||lB(D)),dB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.pipe==="function"&&D.pipe!==J6.Writable.prototype.pipe,lB=(D)=>!!D&&typeof D==="object"&&D instanceof $2&&typeof D.write==="function"&&typeof D.end==="function",hD=Symbol("EOF"),gD=Symbol("maybeEmitEnd"),aD=Symbol("emittedEnd"),O0=Symbol("emittingEnd"),hu=Symbol("emittedError"),T0=Symbol("closed"),Q6=Symbol("read"),w0=Symbol("flush"),X6=Symbol("flushChunk"),wD=Symbol("encoding"),Vu=Symbol("decoder"),p=Symbol("flowing"),gu=Symbol("paused"),Hu=Symbol("resume"),i=Symbol("buffer"),BD=Symbol("pipes"),n=Symbol("bufferLength"),u2=Symbol("bufferPush"),P0=Symbol("bufferShift"),e=Symbol("objectMode"),d=Symbol("destroyed"),F2=Symbol("error"),C2=Symbol("emitData"),Z6=Symbol("emitEnd"),B2=Symbol("emitEnd2"),kD=Symbol("async"),E2=Symbol("abort"),S0=Symbol("aborted"),mu=Symbol("signal"),eD=Symbol("dataListeners"),HD=Symbol("discarded"),cu=(D)=>Promise.resolve().then(D),pB=(D)=>D(),iB=(D)=>D==="end"||D==="finish"||D==="prefinish",nB=(D)=>D instanceof ArrayBuffer||!!D&&typeof D==="object"&&D.constructor&&D.constructor.name==="ArrayBuffer"&&D.byteLength>=0,aB=(D)=>!Buffer.isBuffer(D)&&ArrayBuffer.isView(D);class Q2{src;dest;opts;ondrain;constructor(D,u,F){this.src=D,this.dest=u,this.opts=F,this.ondrain=()=>D[Hu](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(D){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class Y6 extends Q2{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(D,u,F){super(D,u,F);this.proxyErrors=(C)=>u.emit("error",C),D.on("error",this.proxyErrors)}}var rB=(D)=>!!D.objectMode,oB=(D)=>!D.objectMode&&!!D.encoding&&D.encoding!=="buffer";class Du extends $2{[p]=!1;[gu]=!1;[BD]=[];[i]=[];[e];[wD];[kD];[Vu];[hD]=!1;[aD]=!1;[O0]=!1;[T0]=!1;[hu]=null;[n]=0;[d]=!1;[mu];[S0]=!1;[eD]=0;[HD]=!1;writable=!0;readable=!0;constructor(...D){let u=D[0]||{};super();if(u.objectMode&&typeof u.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(rB(u))this[e]=!0,this[wD]=null;else if(oB(u))this[wD]=u.encoding,this[e]=!1;else this[e]=!1,this[wD]=null;if(this[kD]=!!u.async,this[Vu]=this[wD]?new mB(this[wD]):null,u&&u.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[i]});if(u&&u.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[BD]});let{signal:F}=u;if(F)if(this[mu]=F,F.aborted)this[E2]();else F.addEventListener("abort",()=>this[E2]())}get bufferLength(){return this[n]}get encoding(){return this[wD]}set encoding(D){throw new Error("Encoding must be set at instantiation time")}setEncoding(D){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[e]}set objectMode(D){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[kD]}set["async"](D){this[kD]=this[kD]||!!D}[E2](){this[S0]=!0,this.emit("abort",this[mu]?.reason),this.destroy(this[mu]?.reason)}get aborted(){return this[S0]}set aborted(D){}write(D,u,F){if(this[S0])return!1;if(this[hD])throw new Error("write after end");if(this[d])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof u==="function")F=u,u="utf8";if(!u)u="utf8";let C=this[kD]?cu:pB;if(!this[e]&&!Buffer.isBuffer(D)){if(aB(D))D=Buffer.from(D.buffer,D.byteOffset,D.byteLength);else if(nB(D))D=Buffer.from(D);else if(typeof D!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[e]){if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(!D.length){if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}if(typeof D==="string"&&!(u===this[wD]&&!this[Vu]?.lastNeed))D=Buffer.from(D,u);if(Buffer.isBuffer(D)&&this[wD])D=this[Vu].write(D);if(this[p]&&this[n]!==0)this[w0](!0);if(this[p])this.emit("data",D);else this[u2](D);if(this[n]!==0)this.emit("readable");if(F)C(F);return this[p]}read(D){if(this[d])return null;if(this[HD]=!1,this[n]===0||D===0||D&&D>this[n])return this[gD](),null;if(this[e])D=null;if(this[i].length>1&&!this[e])this[i]=[this[wD]?this[i].join(""):Buffer.concat(this[i],this[n])];let u=this[Q6](D||null,this[i][0]);return this[gD](),u}[Q6](D,u){if(this[e])this[P0]();else{let F=u;if(D===F.length||D===null)this[P0]();else if(typeof F==="string")this[i][0]=F.slice(D),u=F.slice(0,D),this[n]-=D;else this[i][0]=F.subarray(D),u=F.subarray(0,D),this[n]-=D}if(this.emit("data",u),!this[i].length&&!this[hD])this.emit("drain");return u}end(D,u,F){if(typeof D==="function")F=D,D=void 0;if(typeof u==="function")F=u,u="utf8";if(D!==void 0)this.write(D,u);if(F)this.once("end",F);if(this[hD]=!0,this.writable=!1,this[p]||!this[gu])this[gD]();return this}[Hu](){if(this[d])return;if(!this[eD]&&!this[BD].length)this[HD]=!0;if(this[gu]=!1,this[p]=!0,this.emit("resume"),this[i].length)this[w0]();else if(this[hD])this[gD]();else this.emit("drain")}resume(){return this[Hu]()}pause(){this[p]=!1,this[gu]=!0,this[HD]=!1}get destroyed(){return this[d]}get flowing(){return this[p]}get paused(){return this[gu]}[u2](D){if(this[e])this[n]+=1;else this[n]+=D.length;this[i].push(D)}[P0](){if(this[e])this[n]-=1;else this[n]-=this[i][0].length;return this[i].shift()}[w0](D=!1){do;while(this[X6](this[P0]())&&this[i].length);if(!D&&!this[i].length&&!this[hD])this.emit("drain")}[X6](D){return this.emit("data",D),this[p]}pipe(D,u){if(this[d])return D;this[HD]=!1;let F=this[aD];if(u=u||{},D===$6.stdout||D===$6.stderr)u.end=!1;else u.end=u.end!==!1;if(u.proxyErrors=!!u.proxyErrors,F){if(u.end)D.end()}else if(this[BD].push(!u.proxyErrors?new Q2(this,D,u):new Y6(this,D,u)),this[kD])cu(()=>this[Hu]());else this[Hu]();return D}unpipe(D){let u=this[BD].find((F)=>F.dest===D);if(u){if(this[BD].length===1){if(this[p]&&this[eD]===0)this[p]=!1;this[BD]=[]}else this[BD].splice(this[BD].indexOf(u),1);u.unpipe()}}addListener(D,u){return this.on(D,u)}on(D,u){let F=super.on(D,u);if(D==="data"){if(this[HD]=!1,this[eD]++,!this[BD].length&&!this[p])this[Hu]()}else if(D==="readable"&&this[n]!==0)super.emit("readable");else if(iB(D)&&this[aD])super.emit(D),this.removeAllListeners(D);else if(D==="error"&&this[hu]){let C=u;if(this[kD])cu(()=>C.call(this,this[hu]));else C.call(this,this[hu])}return F}removeListener(D,u){return this.off(D,u)}off(D,u){let F=super.off(D,u);if(D==="data"){if(this[eD]=this.listeners("data").length,this[eD]===0&&!this[HD]&&!this[BD].length)this[p]=!1}return F}removeAllListeners(D){let u=super.removeAllListeners(D);if(D==="data"||D===void 0){if(this[eD]=0,!this[HD]&&!this[BD].length)this[p]=!1}return u}get emittedEnd(){return this[aD]}[gD](){if(!this[O0]&&!this[aD]&&!this[d]&&this[i].length===0&&this[hD]){if(this[O0]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[T0])this.emit("close");this[O0]=!1}}emit(D,...u){let F=u[0];if(D!=="error"&&D!=="close"&&D!==d&&this[d])return!1;else if(D==="data")return!this[e]&&!F?!1:this[kD]?(cu(()=>this[C2](F)),!0):this[C2](F);else if(D==="end")return this[Z6]();else if(D==="close"){if(this[T0]=!0,!this[aD]&&!this[d])return!1;let B=super.emit("close");return this.removeAllListeners("close"),B}else if(D==="error"){this[hu]=F,super.emit(F2,F);let B=!this[mu]||this.listeners("error").length?super.emit("error",F):!1;return this[gD](),B}else if(D==="resume"){let B=super.emit("resume");return this[gD](),B}else if(D==="finish"||D==="prefinish"){let B=super.emit(D);return this.removeAllListeners(D),B}let C=super.emit(D,...u);return this[gD](),C}[C2](D){for(let F of this[BD])if(F.dest.write(D)===!1)this.pause();let u=this[HD]?!1:super.emit("data",D);return this[gD](),u}[Z6](){if(this[aD])return!1;return this[aD]=!0,this.readable=!1,this[kD]?(cu(()=>this[B2]()),!0):this[B2]()}[B2](){if(this[Vu]){let u=this[Vu].end();if(u){for(let F of this[BD])F.dest.write(u);if(!this[HD])super.emit("data",u)}}for(let u of this[BD])u.end();let D=super.emit("end");return this.removeAllListeners("end"),D}async collect(){let D=Object.assign([],{dataLength:0});if(!this[e])D.dataLength=0;let u=this.promise();return this.on("data",(F)=>{if(D.push(F),!this[e])D.dataLength+=F.length}),await u,D}async concat(){if(this[e])throw new Error("cannot concat in objectMode");let D=await this.collect();return this[wD]?D.join(""):Buffer.concat(D,D.dataLength)}async promise(){return new Promise((D,u)=>{this.on(d,()=>u(new Error("stream destroyed"))),this.on("error",(F)=>u(F)),this.on("end",()=>D())})}[Symbol.asyncIterator](){this[HD]=!1;let D=!1,u=async()=>{return this.pause(),D=!0,{value:void 0,done:!0}};return{next:()=>{if(D)return u();let C=this.read();if(C!==null)return Promise.resolve({done:!1,value:C});if(this[hD])return u();let B,$,E=(J)=>{this.off("data",Q),this.off("end",X),this.off(d,Z),u(),$(J)},Q=(J)=>{this.off("error",E),this.off("end",X),this.off(d,Z),this.pause(),B({value:J,done:!!this[hD]})},X=()=>{this.off("error",E),this.off("data",Q),this.off(d,Z),u(),B({done:!0,value:void 0})},Z=()=>E(new Error("stream destroyed"));return new Promise((J,V)=>{$=V,B=J,this.once(d,Z),this.once("error",E),this.once("end",X),this.once("data",Q)})},throw:u,return:u,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HD]=!1;let D=!1,u=()=>{return this.pause(),this.off(F2,u),this.off(d,u),this.off("end",u),D=!0,{done:!0,value:void 0}},F=()=>{if(D)return u();let C=this.read();return C===null?u():{done:!1,value:C}};return this.once("end",u),this.once(F2,u),this.once(d,u),{next:F,throw:u,return:u,[Symbol.iterator](){return this}}}destroy(D){if(this[d]){if(D)this.emit("error",D);else this.emit(d);return this}this[d]=!0,this[HD]=!0,this[i].length=0,this[n]=0;let u=this;if(typeof u.close==="function"&&!this[T0])u.close();if(D)this.emit("error",D);else this.emit(d);return this}static get isStream(){return cB}}var E4=C4.native,lu={lstatSync:eB,readdir:D4,readdirSync:u4,readlinkSync:F4,realpathSync:E4,promises:{lstat:$4,readdir:Q4,readlink:X4,realpath:Z4}},A6=(D)=>!D||D===lu||D===B4?lu:{...lu,...D,promises:{...lu.promises,...D.promises||{}}},z6=/^\\\\\?\\([a-z]:)\\?$/i,J4=(D)=>D.replace(/\//g,"\\").replace(z6,"$1\\"),Y4=/[\\\/]/,MD=0,U6=1,G6=2,vD=4,W6=6,_6=8,uu=10,j6=12,jD=15,du=~jD,X2=16,q6=32,pu=64,PD=128,k0=256,x0=512,K6=pu|PD|x0,q4=1023,Z2=(D)=>D.isFile()?_6:D.isDirectory()?vD:D.isSymbolicLink()?uu:D.isCharacterDevice()?G6:D.isBlockDevice()?W6:D.isSocket()?j6:D.isFIFO()?U6:MD,V6=new Map,iu=(D)=>{let u=V6.get(D);if(u)return u;let F=D.normalize("NFKD");return V6.set(D,F),F},H6=new Map,v0=(D)=>{let u=H6.get(D);if(u)return u;let F=iu(D.toLowerCase());return H6.set(D,F),F};class Y2 extends yu{constructor(){super({max:256})}}class M6 extends yu{constructor(D=16384){super({maxSize:D,sizeCalculation:(u)=>u.length+1})}}var R6=Symbol("PathScurry setAsCwd");class ED{name;root;roots;parent;nocase;isCWD=!1;#D;#u;get dev(){return this.#u}#E;get mode(){return this.#E}#B;get nlink(){return this.#B}#$;get uid(){return this.#$}#W;get gid(){return this.#W}#U;get rdev(){return this.#U}#J;get blksize(){return this.#J}#Q;get ino(){return this.#Q}#q;get size(){return this.#q}#Y;get blocks(){return this.#Y}#X;get atimeMs(){return this.#X}#F;get mtimeMs(){return this.#F}#V;get ctimeMs(){return this.#V}#_;get birthtimeMs(){return this.#_}#G;get atime(){return this.#G}#H;get mtime(){return this.#H}#O;get ctime(){return this.#O}#A;get birthtime(){return this.#A}#M;#I;#z;#j;#N;#K;#C;#k;#T;#R;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(D,u=MD,F,C,B,$,E){if(this.name=D,this.#M=B?v0(D):iu(D),this.#C=u&q4,this.nocase=B,this.roots=C,this.root=F||this,this.#k=$,this.#z=E.fullpath,this.#N=E.relative,this.#K=E.relativePosix,this.parent=E.parent,this.parent)this.#D=this.parent.#D;else this.#D=A6(E.fs)}depth(){if(this.#I!==void 0)return this.#I;if(!this.parent)return this.#I=0;return this.#I=this.parent.depth()+1}childrenCache(){return this.#k}resolve(D){if(!D)return this;let u=this.getRootString(D),C=D.substring(u.length).split(this.splitSep);return u?this.getRoot(u).#m(C):this.#m(C)}#m(D){let u=this;for(let F of D)u=u.child(F);return u}children(){let D=this.#k.get(this);if(D)return D;let u=Object.assign([],{provisional:0});return this.#k.set(this,u),this.#C&=~X2,u}child(D,u){if(D===""||D===".")return this;if(D==="..")return this.parent||this;let F=this.children(),C=this.nocase?v0(D):iu(D);for(let Q of F)if(Q.#M===C)return Q;let B=this.parent?this.sep:"",$=this.#z?this.#z+B+D:void 0,E=this.newChild(D,MD,{...u,parent:this,fullpath:$});if(!this.canReaddir())E.#C|=PD;return F.push(E),E}relative(){if(this.isCWD)return"";if(this.#N!==void 0)return this.#N;let D=this.name,u=this.parent;if(!u)return this.#N=this.name;let F=u.relative();return F+(!F||!u.parent?"":this.sep)+D}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#K!==void 0)return this.#K;let D=this.name,u=this.parent;if(!u)return this.#K=this.fullpathPosix();let F=u.relativePosix();return F+(!F||!u.parent?"":"/")+D}fullpath(){if(this.#z!==void 0)return this.#z;let D=this.name,u=this.parent;if(!u)return this.#z=this.name;let C=u.fullpath()+(!u.parent?"":this.sep)+D;return this.#z=C}fullpathPosix(){if(this.#j!==void 0)return this.#j;if(this.sep==="/")return this.#j=this.fullpath();if(!this.parent){let C=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(C))return this.#j=`//?/${C}`;else return this.#j=C}let D=this.parent,u=D.fullpathPosix(),F=u+(!u||!D.parent?"":"/")+this.name;return this.#j=F}isUnknown(){return(this.#C&jD)===MD}isType(D){return this[`is${D}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#C&jD)===_6}isDirectory(){return(this.#C&jD)===vD}isCharacterDevice(){return(this.#C&jD)===G6}isBlockDevice(){return(this.#C&jD)===W6}isFIFO(){return(this.#C&jD)===U6}isSocket(){return(this.#C&jD)===j6}isSymbolicLink(){return(this.#C&uu)===uu}lstatCached(){return this.#C&q6?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#R}readdirCached(){let D=this.children();return D.slice(0,D.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let D=this.#C&jD;return!(D!==MD&&D!==uu||this.#C&k0||this.#C&PD)}calledReaddir(){return!!(this.#C&X2)}isENOENT(){return!!(this.#C&PD)}isNamed(D){return!this.nocase?this.#M===iu(D):this.#M===v0(D)}async readlink(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=await this.#D.promises.readlink(this.fullpath()),F=(await this.parent.realpath())?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}readlinkSync(){let D=this.#T;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=this.#D.readlinkSync(this.fullpath()),F=this.parent.realpathSync()?.resolve(u);if(F)return this.#T=F}catch(u){this.#c(u.code);return}}#L(D){this.#C|=X2;for(let u=D.provisional;uF(null,D))}readdirCB(D,u=!1){if(!this.canReaddir()){if(u)D(null,[]);else queueMicrotask(()=>D(null,[]));return}let F=this.children();if(this.calledReaddir()){let B=F.slice(0,F.provisional);if(u)D(null,B);else queueMicrotask(()=>D(null,B));return}if(this.#P.push(D),this.#g)return;this.#g=!0;let C=this.fullpath();this.#D.readdir(C,{withFileTypes:!0},(B,$)=>{if(B)this.#w(B.code),F.provisional=0;else{for(let E of $)this.#f(E,F);this.#L(F)}this.#i(F.slice(0,F.provisional));return})}#p;async readdir(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();if(this.#p)await this.#p;else{let F=()=>{};this.#p=new Promise((C)=>F=C);try{for(let C of await this.#D.promises.readdir(u,{withFileTypes:!0}))this.#f(C,D);this.#L(D)}catch(C){this.#w(C.code),D.provisional=0}this.#p=void 0,F()}return D.slice(0,D.provisional)}readdirSync(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();try{for(let F of this.#D.readdirSync(u,{withFileTypes:!0}))this.#f(F,D);this.#L(D)}catch(F){this.#w(F.code),D.provisional=0}return D.slice(0,D.provisional)}canReaddir(){if(this.#C&K6)return!1;let D=jD&this.#C;if(!(D===MD||D===vD||D===uu))return!1;return!0}shouldWalk(D,u){return(this.#C&vD)===vD&&!(this.#C&K6)&&!D.has(this)&&(!u||u(this))}async realpath(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=await this.#D.promises.realpath(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}realpathSync(){if(this.#R)return this.#R;if((x0|k0|PD)&this.#C)return;try{let D=this.#D.realpathSync(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}[R6](D){if(D===this)return;D.isCWD=!1,this.isCWD=!0;let u=new Set([]),F=[],C=this;while(C&&C.parent)u.add(C),C.#N=F.join(this.sep),C.#K=F.join("/"),C=C.parent,F.push("..");C=D;while(C&&C.parent&&!u.has(C))C.#N=void 0,C.#K=void 0,C=C.parent}}class f0 extends ED{sep="\\";splitSep=Y4;constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}newChild(D,u=MD,F={}){return new f0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}getRootString(D){return J2.parse(D).root}getRoot(D){if(D=J4(D.toUpperCase()),D===this.root.name)return this.root;for(let[u,F]of Object.entries(this.roots))if(this.sameRoot(D,u))return this.roots[D]=F;return this.roots[D]=new nu(D,this).root}sameRoot(D,u=this.root.name){return D=D.toUpperCase().replace(/\//g,"\\").replace(z6,"$1\\"),D===u}}class b0 extends ED{splitSep="/";sep="/";constructor(D,u=MD,F,C,B,$,E){super(D,u,F,C,B,$,E)}getRootString(D){return D.startsWith("/")?"/":""}getRoot(D){return this.root}newChild(D,u=MD,F={}){return new b0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}}class q2{root;rootPath;roots;cwd;#D;#u;#E;nocase;#B;constructor(D=process.cwd(),u,F,{nocase:C,childrenCacheSize:B=16384,fs:$=lu}={}){if(this.#B=A6($),D instanceof URL||D.startsWith("file://"))D=tB(D);let E=u.resolve(D);this.roots=Object.create(null),this.rootPath=this.parseRootPath(E),this.#D=new Y2,this.#u=new Y2,this.#E=new M6(B);let Q=E.substring(this.rootPath.length).split(F);if(Q.length===1&&!Q[0])Q.pop();if(C===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=C,this.root=this.newRoot(this.#B),this.roots[this.rootPath]=this.root;let X=this.root,Z=Q.length-1,J=u.sep,V=this.rootPath,H=!1;for(let z of Q){let U=Z--;X=X.child(z,{relative:new Array(U).fill("..").join(J),relativePosix:new Array(U).fill("..").join("/"),fullpath:V+=(H?"":J)+z}),H=!0}this.cwd=X}depth(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.depth()}childrenCache(){return this.#E}resolve(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#D.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpath();return this.#D.set(u,C),C}resolvePosix(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#u.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpathPosix();return this.#u.set(u,C),C}relative(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relative()}relativePosix(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relativePosix()}basename(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.name}dirname(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return(D.parent||D).fullpath()}async readdir(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F}=u;if(!D.canReaddir())return[];else{let C=await D.readdir();return F?C:C.map((B)=>B.name)}}readdirSync(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0}=u;if(!D.canReaddir())return[];else if(F)return D.readdirSync();else return D.readdirSync().map((C)=>C.name)}async lstat(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstat()}lstatSync(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstatSync()}async readlink(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.readlink();return u?F:F?.fullpath()}readlinkSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.readlinkSync();return u?F:F?.fullpath()}async realpath(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.realpath();return u?F:F?.fullpath()}realpathSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.realpathSync();return u?F:F?.fullpath()}async walk(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set,X=(J,V)=>{Q.add(J),J.readdirCB((H,z)=>{if(H)return V(H);let U=z.length;if(!U)return V();let G=()=>{if(--U===0)V()};for(let j of z){if(!B||B(j))E.push(F?j:j.fullpath());if(C&&j.isSymbolicLink())j.realpath().then((I)=>I?.isUnknown()?I.lstat():I).then((I)=>I?.shouldWalk(Q,$)?X(I,G):G());else if(j.shouldWalk(Q,$))X(j,G);else G()}},!0)},Z=D;return new Promise((J,V)=>{X(Z,(H)=>{if(H)return V(H);J(E)})})}walkSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set([D]);for(let X of Q){let Z=X.readdirSync();for(let J of Z){if(!B||B(J))E.push(F?J:J.fullpath());let V=J;if(J.isSymbolicLink()){if(!(C&&(V=J.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(Q,$))Q.add(V)}}return E}[Symbol.asyncIterator](){return this.iterate()}iterate(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;return this.stream(D,u)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u;if(!B||B(D))yield F?D:D.fullpath();let E=new Set([D]);for(let Q of E){let X=Q.readdirSync();for(let Z of X){if(!B||B(Z))yield F?Z:Z.fullpath();let J=Z;if(Z.isSymbolicLink()){if(!(C&&(J=Z.realpathSync())))continue;if(J.isUnknown())J.lstatSync()}if(J.shouldWalk(E,$))E.add(J)}}}stream(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0});if(!B||B(D))E.write(F?D:D.fullpath());let Q=new Set,X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=(G,j,I=!1)=>{if(G)return E.emit("error",G);if(C&&!I){let O=[];for(let R of j)if(R.isSymbolicLink())O.push(R.realpath().then((L)=>L?.isUnknown()?L.lstat():L));if(O.length){Promise.all(O).then(()=>z(null,j,!0));return}}for(let O of j)if(O&&(!B||B(O))){if(!E.write(F?O:O.fullpath()))V=!0}Z--;for(let O of j){let R=O.realpathCached()||O;if(R.shouldWalk(Q,$))X.push(R)}if(V&&!E.flowing)E.once("drain",J);else if(!U)J()},U=!0;H.readdirCB(z,!0),U=!1}};return J(),E}streamSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new Du({objectMode:!0}),Q=new Set;if(!B||B(D))E.write(F?D:D.fullpath());let X=[D],Z=0,J=()=>{let V=!1;while(!V){let H=X.shift();if(!H){if(Z===0)E.end();return}Z++,Q.add(H);let z=H.readdirSync();for(let U of z)if(!B||B(U)){if(!E.write(F?U:U.fullpath()))V=!0}Z--;for(let U of z){let G=U;if(U.isSymbolicLink()){if(!(C&&(G=U.realpathSync())))continue;if(G.isUnknown())G.lstatSync()}if(G.shouldWalk(Q,$))X.push(G)}}if(V&&!E.flowing)E.once("drain",J)};return J(),E}chdir(D=this.cwd){let u=this.cwd;this.cwd=typeof D==="string"?this.cwd.resolve(D):D,this.cwd[R6](u)}}class nu extends q2{sep="\\";constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,J2,"\\",{...u,nocase:F});this.nocase=F;for(let C=this.cwd;C;C=C.parent)C.nocase=this.nocase}parseRootPath(D){return J2.parse(D).root.toUpperCase()}newRoot(D){return new f0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")||D.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(D)}}class au extends q2{sep="/";constructor(D=process.cwd(),u={}){let{nocase:F=!1}=u;super(D,sB,"/",{...u,nocase:F});this.nocase=F}parseRootPath(D){return"/"}newRoot(D){return new b0(this.rootPath,vD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")}}class y0 extends au{constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,{...u,nocase:F})}}var EQ=process.platform==="win32"?f0:b0,L6=process.platform==="win32"?nu:process.platform==="darwin"?y0:au;var K4=(D)=>D.length>=1,V4=(D)=>D.length>=1;class Au{#D;#u;#E;length;#B;#$;#W;#U;#J;#Q;#q=!0;constructor(D,u,F,C){if(!K4(D))throw new TypeError("empty pattern list");if(!V4(u))throw new TypeError("empty glob list");if(u.length!==D.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=D.length,F<0||F>=this.length)throw new TypeError("index out of range");if(this.#D=D,this.#u=u,this.#E=F,this.#B=C,this.#E===0){if(this.isUNC()){let[B,$,E,Q,...X]=this.#D,[Z,J,V,H,...z]=this.#u;if(X[0]==="")X.shift(),z.shift();let U=[B,$,E,Q,""].join("/"),G=[Z,J,V,H,""].join("/");this.#D=[U,...X],this.#u=[G,...z],this.length=this.#D.length}else if(this.isDrive()||this.isAbsolute()){let[B,...$]=this.#D,[E,...Q]=this.#u;if($[0]==="")$.shift(),Q.shift();let X=B+"/",Z=E+"/";this.#D=[X,...$],this.#u=[Z,...Q],this.length=this.#D.length}}}pattern(){return this.#D[this.#E]}isString(){return typeof this.#D[this.#E]==="string"}isGlobstar(){return this.#D[this.#E]===r}isRegExp(){return this.#D[this.#E]instanceof RegExp}globString(){return this.#W=this.#W||(this.#E===0?this.isAbsolute()?this.#u[0]+this.#u.slice(1).join("/"):this.#u.join("/"):this.#u.slice(this.#E).join("/"))}hasMore(){return this.length>this.#E+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new Au(this.#D,this.#u,this.#E+1,this.#B),this.#$.#Q=this.#Q,this.#$.#J=this.#J,this.#$.#U=this.#U,this.#$}isUNC(){let D=this.#D;return this.#J!==void 0?this.#J:this.#J=this.#B==="win32"&&this.#E===0&&D[0]===""&&D[1]===""&&typeof D[2]==="string"&&!!D[2]&&typeof D[3]==="string"&&!!D[3]}isDrive(){let D=this.#D;return this.#U!==void 0?this.#U:this.#U=this.#B==="win32"&&this.#E===0&&this.length>1&&typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0])}isAbsolute(){let D=this.#D;return this.#Q!==void 0?this.#Q:this.#Q=D[0]===""&&D.length>1||this.isDrive()||this.isUNC()}root(){let D=this.#D[0];return typeof D==="string"&&this.isAbsolute()&&this.#E===0?D:""}checkFollowGlobstar(){return!(this.#E===0||!this.isGlobstar()||!this.#q)}markFollowGlobstar(){if(this.#E===0||!this.isGlobstar()||!this.#q)return!1;return this.#q=!1,!0}}var H4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class ru{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(D,{nobrace:u,nocase:F,noext:C,noglobstar:B,platform:$=H4}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=$,this.mmopts={dot:!0,nobrace:u,nocase:F,noext:C,noglobstar:B,optimizationLevel:2,platform:$,nocomment:!0,nonegate:!0};for(let E of D)this.add(E)}add(D){let u=new _D(D,this.mmopts);for(let F=0;F[D,!!(u&2),!!(u&1)])}}class N6{store=new Map;add(D,u){if(!D.canReaddir())return;let F=this.store.get(D);if(F){if(!F.find((C)=>C.globString()===u.globString()))F.push(u)}else this.store.set(D,[u])}get(D){let u=this.store.get(D);if(!u)throw new Error("attempting to walk unknown path");return u}entries(){return this.keys().map((D)=>[D,this.store.get(D)])}keys(){return[...this.store.keys()].filter((D)=>D.canReaddir())}}class ou{hasWalkedCache;matches=new I6;subwalks=new N6;patterns;follow;dot;opts;constructor(D,u){this.opts=D,this.follow=!!D.follow,this.dot=!!D.dot,this.hasWalkedCache=u?u.copy():new K2}processPatterns(D,u){this.patterns=u;let F=u.map((C)=>[D,C]);for(let[C,B]of F){this.hasWalkedCache.storeWalked(C,B);let $=B.root(),E=B.isAbsolute()&&this.opts.absolute!==!1;if($){C=C.resolve($==="/"&&this.opts.root!==void 0?this.opts.root:$);let J=B.rest();if(!J){this.matches.add(C,!0,!1);continue}else B=J}if(C.isENOENT())continue;let Q,X,Z=!1;while(typeof(Q=B.pattern())==="string"&&(X=B.rest()))C=C.resolve(Q),B=X,Z=!0;if(Q=B.pattern(),X=B.rest(),Z){if(this.hasWalkedCache.hasWalked(C,B))continue;this.hasWalkedCache.storeWalked(C,B)}if(typeof Q==="string"){let J=Q===".."||Q===""||Q===".";this.matches.add(C.resolve(Q),E,J);continue}else if(Q===r){if(!C.isSymbolicLink()||this.follow||B.checkFollowGlobstar())this.subwalks.add(C,B);let J=X?.pattern(),V=X?.rest();if(!X||(J===""||J===".")&&!V)this.matches.add(C,E,J===""||J===".");else if(J===".."){let H=C.parent||C;if(!V)this.matches.add(H,E,!0);else if(!this.hasWalkedCache.hasWalked(H,V))this.subwalks.add(H,V)}}else if(Q instanceof RegExp)this.subwalks.add(C,B)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new ou(this.opts,this.hasWalkedCache)}filterEntries(D,u){let F=this.subwalks.get(D),C=this.child();for(let B of u)for(let $ of F){let E=$.isAbsolute(),Q=$.pattern(),X=$.rest();if(Q===r)C.testGlobstar(B,$,X,E);else if(Q instanceof RegExp)C.testRegExp(B,Q,X,E);else C.testString(B,Q,X,E)}return C}testGlobstar(D,u,F,C){if(this.dot||!D.name.startsWith(".")){if(!u.hasMore())this.matches.add(D,C,!1);if(D.canReaddir()){if(this.follow||!D.isSymbolicLink())this.subwalks.add(D,u);else if(D.isSymbolicLink()){if(F&&u.checkFollowGlobstar())this.subwalks.add(D,F);else if(u.markFollowGlobstar())this.subwalks.add(D,u)}}}if(F){let B=F.pattern();if(typeof B==="string"&&B!==".."&&B!==""&&B!==".")this.testString(D,B,F.rest(),C);else if(B===".."){let $=D.parent||D;this.subwalks.add($,F)}else if(B instanceof RegExp)this.testRegExp(D,B,F.rest(),C)}}testRegExp(D,u,F,C){if(!u.test(D.name))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}testString(D,u,F,C){if(!D.isNamed(u))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}}var A4=(D,u)=>typeof D==="string"?new ru([D],u):Array.isArray(D)?new ru(D,u):D;class V2{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#D=[];#u;#E;signal;maxDepth;includeChildMatches;constructor(D,u,F){if(this.patterns=D,this.path=u,this.opts=F,this.#E=!F.posix&&F.platform==="win32"?"\\":"/",this.includeChildMatches=F.includeChildMatches!==!1,F.ignore||!this.includeChildMatches){if(this.#u=A4(F.ignore??[],F),!this.includeChildMatches&&typeof this.#u.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=F.maxDepth||1/0,F.signal)this.signal=F.signal,this.signal.addEventListener("abort",()=>{this.#D.length=0})}#B(D){return this.seen.has(D)||!!this.#u?.ignored?.(D)}#$(D){return!!this.#u?.childrenIgnored?.(D)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let D=void 0;while(!this.paused&&(D=this.#D.shift()))D()}onResume(D){if(this.signal?.aborted)return;if(!this.paused)D();else this.#D.push(D)}async matchCheck(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||await D.realpath(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?await D.lstat():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=await B.realpath();if($&&($.isUnknown()||this.opts.stat))await $.lstat()}return this.matchCheckTest(B,u)}matchCheckTest(D,u){return D&&(this.maxDepth===1/0||D.depth()<=this.maxDepth)&&(!u||D.canReaddir())&&(!this.opts.nodir||!D.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!D.isSymbolicLink()||!D.realpathCached()?.isDirectory())&&!this.#B(D)?D:void 0}matchCheckSync(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||D.realpathSync(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?D.lstatSync():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=B.realpathSync();if($&&($?.isUnknown()||this.opts.stat))$.lstatSync()}return this.matchCheckTest(B,u)}matchFinish(D,u){if(this.#B(D))return;if(!this.includeChildMatches&&this.#u?.add){let B=`${D.relativePosix()}/**`;this.#u.add(B)}let F=this.opts.absolute===void 0?u:this.opts.absolute;this.seen.add(D);let C=this.opts.mark&&D.isDirectory()?this.#E:"";if(this.opts.withFileTypes)this.matchEmit(D);else if(F){let B=this.opts.posix?D.fullpathPosix():D.fullpath();this.matchEmit(B+C)}else{let B=this.opts.posix?D.relativePosix():D.relative(),$=this.opts.dotRelative&&!B.startsWith(".."+this.#E)?"."+this.#E:"";this.matchEmit(!B?"."+C:$+B+C)}}async match(D,u,F){let C=await this.matchCheck(D,F);if(C)this.matchFinish(C,u)}matchSync(D,u,F){let C=this.matchCheckSync(D,F);if(C)this.matchFinish(C,u)}walkCB(D,u,F){if(this.signal?.aborted)F();this.walkCB2(D,u,new ou(this.opts),F)}walkCB2(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirCached();if(E.calledReaddir())this.walkCB3(E,Q,F,$);else E.readdirCB((X,Z)=>this.walkCB3(E,Z,F,$),!0)}$()}walkCB3(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2(E,Q,F.child(),$);$()}walkCBSync(D,u,F){if(this.signal?.aborted)F();this.walkCB2Sync(D,u,new ou(this.opts),F)}walkCB2Sync(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2Sync(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirSync();this.walkCB3Sync(E,Q,F,$)}$()}walkCB3Sync(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2Sync(E,Q,F.child(),$);$()}}class h0 extends V2{matches=new Set;constructor(D,u,F){super(D,u,F)}matchEmit(D){this.matches.add(D)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((D,u)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)u(this.signal.reason);else D(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class g0 extends V2{results;constructor(D,u,F){super(D,u,F);this.results=new Du({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(D){if(this.results.write(D),!this.results.flowing)this.pause()}stream(){let D=this.path;if(D.isUnknown())D.lstat().then(()=>{this.walkCB(D,this.patterns,()=>this.results.end())});else this.walkCB(D,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var U4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class xD{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(D,u){if(!u)throw new TypeError("glob options required");if(this.withFileTypes=!!u.withFileTypes,this.signal=u.signal,this.follow=!!u.follow,this.dot=!!u.dot,this.dotRelative=!!u.dotRelative,this.nodir=!!u.nodir,this.mark=!!u.mark,!u.cwd)this.cwd="";else if(u.cwd instanceof URL||u.cwd.startsWith("file://"))u.cwd=z4(u.cwd);if(this.cwd=u.cwd||"",this.root=u.root,this.magicalBraces=!!u.magicalBraces,this.nobrace=!!u.nobrace,this.noext=!!u.noext,this.realpath=!!u.realpath,this.absolute=u.absolute,this.includeChildMatches=u.includeChildMatches!==!1,this.noglobstar=!!u.noglobstar,this.matchBase=!!u.matchBase,this.maxDepth=typeof u.maxDepth==="number"?u.maxDepth:1/0,this.stat=!!u.stat,this.ignore=u.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof D==="string")D=[D];if(this.windowsPathsNoEscape=!!u.windowsPathsNoEscape||u.allowWindowsEscape===!1,this.windowsPathsNoEscape)D=D.map((Q)=>Q.replace(/\\/g,"/"));if(this.matchBase){if(u.noglobstar)throw new TypeError("base matching requires globstar");D=D.map((Q)=>Q.includes("/")?Q:`./**/${Q}`)}if(this.pattern=D,this.platform=u.platform||U4,this.opts={...u,platform:this.platform},u.scurry){if(this.scurry=u.scurry,u.nocase!==void 0&&u.nocase!==u.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let Q=u.platform==="win32"?nu:u.platform==="darwin"?y0:u.platform?au:L6;this.scurry=new Q(this.cwd,{nocase:u.nocase,fs:u.fs})}this.nocase=this.scurry.nocase;let F=this.platform==="darwin"||this.platform==="win32",C={...u,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:F,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},B=this.pattern.map((Q)=>new _D(Q,C)),[$,E]=B.reduce((Q,X)=>{return Q[0].push(...X.set),Q[1].push(...X.globParts),Q},[[],[]]);this.patterns=$.map((Q,X)=>{let Z=E[X];if(!Z)throw new Error("invalid pattern object");return new Au(Q,Z,0,this.platform)})}async walk(){return[...await new h0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new h0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new g0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new g0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var H2=(D,u={})=>{if(!Array.isArray(D))D=[D];for(let F of D)if(new _D(F,u).hasMagic())return!0;return!1};function c0(D,u={}){return new xD(D,u).streamSync()}function T6(D,u={}){return new xD(D,u).stream()}function w6(D,u={}){return new xD(D,u).walkSync()}async function O6(D,u={}){return new xD(D,u).walk()}function d0(D,u={}){return new xD(D,u).iterateSync()}function P6(D,u={}){return new xD(D,u).iterate()}var G4=c0,W4=Object.assign(T6,{sync:c0}),_4=d0,j4=Object.assign(P6,{sync:d0}),M4=Object.assign(w6,{stream:c0,iterate:d0}),m0=Object.assign(O6,{glob:O6,globSync:w6,sync:M4,globStream:T6,stream:W4,globStreamSync:c0,streamSync:G4,globIterate:P6,iterate:j4,globIterateSync:d0,iterateSync:_4,Glob:xD,hasMagic:H2,escape:qu,unescape:TD});m0.glob=m0;async function k6(D,u={}){let F=C.TRASH_DIR;if(!S6(F))L4(F,{recursive:!0});let C=Array.isArray(D)?D:[D];for(let B of C){let $=await m0(B),E=$.length>0?$:[B];for(let Q of E)try{if(!S6(Q)){if(!u.force){console.error(`trash: ${Q}: No such file or directory`);continue}continue}if(I4(Q).isDirectory()&&!u.recursive){if(!u.force){console.error(`trash: ${Q}: is a directory`);continue}}let Z=O4(Q),J=Date.now(),V=N4(F,`${Z}.${J}`);R4(Q,V),console.log(`Moved ${Z} to trash`)}catch(X){if(!u.force){let Z=X instanceof Error?X.message:String(X);console.error(`trash: ${Q}: ${Z}`)}}}}import{readdirSync as x6,statSync as f6}from"fs";import{join as b6}from"path";$D();function T4(D){let u=D.lastIndexOf(".");if(u===-1)return{name:D,timestamp:0};let F=parseInt(D.substring(u+1));if(isNaN(F))return{name:D,timestamp:0};return{name:D.substring(0,u),timestamp:F}}function v6(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 y6(D){let u=0,F=x6(D);for(let C of F){let B=b6(D,C),$=f6(B);if($.isDirectory())u+=y6(B);else u+=$.size}return u}async function h6(){let D=tD;try{let u=x6(D);if(u.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is empty");return}let F=u.map((E)=>{let Q=b6(D,E),X=f6(Q),{name:Z,timestamp:J}=T4(E),V=X.isDirectory()?y6(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=v6(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 (${v6(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 O4,readdirSync as T4,existsSync as w4,statSync as P4}from"fs";import{join as g6}from"path";$D();async function m6(D={}){let u=tD;if(!w4(u)){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}try{let F=T4(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=g6(u,E);if(P4(Q).isDirectory())C++;else B++}if(!D.force){let E=await Cu({message:`Permanently delete ${C} folders and ${B} files from trash?`,initialValue:!1});if(zD(E)||!E){DD.info("Cancelled - trash not emptied");return}}let $=G3();$.start("Emptying trash...");for(let E of F){let Q=g6(u,E);O4(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 S4,renameSync as k4}from"fs";import{join as c6}from"path";$D();async function d6(){let D=tD,u=S4(D);if(u.length===0){console.log("Trash is empty");return}let F=await Z0({message:"Select file to restore:",options:u.map((C)=>({value:C,label:C}))});if(zD(F))return;k4(c6(D,F),c6(process.cwd(),F)),console.log(`Restored ${F}`)}$D();import zu from"fs";import m4 from"path";$D();import{Database as v4}from"bun:sqlite";var l0=null;class rD{static instance;db=null;migrations=[];static getInstance(){if(!rD.instance)rD.instance=new rD;return rD.instance}registerMigration(D){this.migrations.push(D),this.migrations.sort((u,F)=>u.version-F.version)}async initialize(){if(this.db)return this.db;return GD(g),this.db=new v4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.db.run("PRAGMA temp_store = memory"),this.db.run("PRAGMA mmap_size = 268435456"),this.db.run("PRAGMA cache_size = 10000"),this.initializeSchemaVersions(),await this.runMigrations(),l0=this.db,this.db}getConnection(){if(!this.db)throw new Error("Database not initialized. Call initialize() first.");return this.db}withTransaction(D){let u=this.getConnection();return u.transaction(D)(u)}close(){if(this.db)this.db.close(),this.db=null,l0=null}initializeSchemaVersions(){if(!this.db)return;this.db.run(` +To restore files: claude-mem restore`),console.log("To empty trash: claude-mem trash empty")}catch(u){if(u.code==="ENOENT")DD.info("\uD83D\uDDD1\uFE0F Trash is empty");else DD.error("Failed to read trash directory"),console.error(u)}}import{rmSync as w4,readdirSync as P4,existsSync as S4,statSync as k4}from"fs";import{join as g6}from"path";$D();async function m6(D={}){let u=tD;if(!S4(u)){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}try{let F=P4(u);if(F.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}let C=0,B=0;for(let E of F){let Q=g6(u,E);if(k4(Q).isDirectory())C++;else B++}if(!D.force){let E=await Cu({message:`Permanently delete ${C} folders and ${B} files from trash?`,initialValue:!1});if(zD(E)||!E){DD.info("Cancelled - trash not emptied");return}}let $=G3();$.start("Emptying trash...");for(let E of F){let Q=g6(u,E);w4(Q,{recursive:!0,force:!0})}$.stop(`\uD83D\uDDD1\uFE0F Trash emptied - permanently deleted ${C} folders and ${B} files`)}catch(F){DD.error("Failed to empty trash"),console.error(F),process.exit(1)}}import{readdirSync as v4,renameSync as x4}from"fs";import{join as c6}from"path";$D();async function d6(){let D=tD,u=v4(D);if(u.length===0){console.log("Trash is empty");return}let F=await Z0({message:"Select file to restore:",options:u.map((C)=>({value:C,label:C}))});if(zD(F))return;x4(c6(D,F),c6(process.cwd(),F)),console.log(`Restored ${F}`)}$D();import zu from"fs";import d4 from"path";$D();import{Database as f4}from"bun:sqlite";var l0=null;class rD{static instance;db=null;migrations=[];static getInstance(){if(!rD.instance)rD.instance=new rD;return rD.instance}registerMigration(D){this.migrations.push(D),this.migrations.sort((u,F)=>u.version-F.version)}async initialize(){if(this.db)return this.db;return GD(g),this.db=new f4(j0,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.db.run("PRAGMA temp_store = memory"),this.db.run("PRAGMA mmap_size = 268435456"),this.db.run("PRAGMA cache_size = 10000"),this.initializeSchemaVersions(),await this.runMigrations(),l0=this.db,this.db}getConnection(){if(!this.db)throw new Error("Database not initialized. Call initialize() first.");return this.db}withTransaction(D){let u=this.getConnection();return u.transaction(D)(u)}close(){if(this.db)this.db.close(),this.db=null,l0=null}initializeSchemaVersions(){if(!this.db)return;this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, applied_at TEXT NOT NULL ) - `)}async runMigrations(){if(!this.db)return;let u=this.db.query("SELECT version FROM schema_versions ORDER BY version").all().map((C)=>C.version),F=u.length>0?Math.max(...u):0;for(let C of this.migrations)if(C.version>F)console.log(`Applying migration ${C.version}...`),this.db.transaction(()=>{C.up(this.db),this.db.query("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(C.version,new Date().toISOString())})(),console.log(`Migration ${C.version} applied successfully`)}getCurrentVersion(){if(!this.db)return 0;return this.db.query("SELECT MAX(version) as version FROM schema_versions").get()?.version||0}}function l6(){if(!l0)throw new Error("Database not initialized. Call DatabaseManager.getInstance().initialize() first.");return l0}async function p6(){return await rD.getInstance().initialize()}Fu();var f4={version:1,up:(D)=>{D.run(` + `)}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 l6(){if(!l0)throw new Error("Database not initialized. Call DatabaseManager.getInstance().initialize() first.");return l0}async function p6(){return await rD.getInstance().initialize()}Fu();var y4={version:1,up:(D)=>{D.run(` CREATE TABLE IF NOT EXISTS sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT UNIQUE NOT NULL, @@ -445,7 +450,7 @@ To restore files: claude-mem restore`),console.log("To empty trash: claude-mem DROP TABLE IF EXISTS overviews; DROP TABLE IF EXISTS memories; DROP TABLE IF EXISTS sessions; - `)}},b4={version:2,up:(D)=>{D.run(` + `)}},h4={version:2,up:(D)=>{D.run(` ALTER TABLE memories ADD COLUMN title TEXT; ALTER TABLE memories ADD COLUMN subtitle TEXT; ALTER TABLE memories ADD COLUMN facts TEXT; @@ -454,7 +459,7 @@ To restore files: claude-mem restore`),console.log("To empty trash: claude-mem `),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")}},y4={version:3,up:(D)=>{D.run(` + `),console.log("\u2705 Added hierarchical memory fields to memories table")},down:(D)=>{console.log("\u26A0\uFE0F Warning: SQLite ALTER TABLE DROP COLUMN not fully supported"),console.log("\u26A0\uFE0F To rollback, manually recreate the memories table")}},g4={version:3,up:(D)=>{D.run(` CREATE TABLE IF NOT EXISTS streaming_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, claude_session_id TEXT UNIQUE NOT NULL, @@ -479,7 +484,7 @@ To restore files: claude-mem restore`),console.log("To empty trash: claude-mem 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; - `)}},h4={version:4,up:(D)=>{D.run(` + `)}},m4={version:4,up:(D)=>{D.run(` CREATE TABLE IF NOT EXISTS sdk_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, claude_session_id TEXT UNIQUE NOT NULL, @@ -555,7 +560,7 @@ To restore files: claude-mem restore`),console.log("To empty trash: claude-mem DROP TABLE IF EXISTS observations; DROP TABLE IF EXISTS observation_queue; DROP TABLE IF EXISTS sdk_sessions; - `)}},g4={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(` + `)}},c4={version:5,up:(D)=>{D.run("DROP TABLE IF EXISTS streaming_sessions"),D.run("DROP TABLE IF EXISTS observation_queue"),console.log("\u2705 Dropped orphaned tables: streaming_sessions, observation_queue")},down:(D)=>{D.run(` CREATE TABLE IF NOT EXISTS streaming_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, claude_session_id TEXT UNIQUE NOT NULL, @@ -583,5 +588,5 @@ To restore files: claude-mem restore`),console.log("To empty trash: claude-mem 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)")}},i6=[f4,b4,y4,h4,g4];function c4(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 n6(D={}){let u=[];try{if(!zu.existsSync(g))zu.mkdirSync(g,{recursive:!0}),u.push({name:`Data directory created at ${g}`,status:"warn"});else{let F=zu.statSync(g),C=!1;try{zu.accessSync(g,zu.constants.W_OK),C=!0}catch{}u.push({name:`Data directory ${g}`,status:F.isDirectory()&&C?"pass":"fail",details:F.isDirectory()&&C?"accessible":"not writable"})}}catch(F){u.push({name:"Data directory",status:"fail",details:F?.message||String(F)})}try{let F=new QD;u.push({name:"SQLite database",status:"pass",details:"connected"})}catch(F){u.push({name:"SQLite database",status:"fail",details:F?.message||String(F)})}try{let F=zu.existsSync(Qu);u.push({name:"Chroma vector store",status:F?"pass":"warn",details:F?`data dir ${m4.resolve(Qu)}`:"Not yet initialized"})}catch(F){u.push({name:"Chroma vector store",status:"warn",details:F?.message||"Unable to check Chroma directory"})}if(D.json)console.log(JSON.stringify({checks:u},null,2));else console.log("claude-mem doctor"),console.log("================="),u.forEach(c4)}$D();import{readFileSync as A2,existsSync as p0,readdirSync as d4,statSync as l4}from"fs";import{join as i0,dirname as p4}from"path";import{execSync as i4}from"child_process";import{fileURLToPath as n4}from"url";var AX=p4(n4(import.meta.url));async function a6(){console.log("\uD83D\uDD0D Claude Memory System Status Check"),console.log(`===================================== -`),console.log("\u2699\uFE0F Settings Configuration:");let D=(Q,X)=>{if(!p0(X)){console.log(` \u23ED\uFE0F ${Q}: No settings file`);return}console.log(` \uD83D\uDCCB ${Q}: ${X}`);try{let Z=JSON.parse(A2(X,"utf8")),J=Z.hooks?.SessionStart?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),V=Z.hooks?.Stop?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),H=Z.hooks?.UserPromptSubmit?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),z=Z.hooks?.PostToolUse?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem")));console.log(` SessionStart (claude-mem context): ${J?"\u2705":"\u274C"}`),console.log(` Stop (claude-mem summary): ${V?"\u2705":"\u274C"}`),console.log(` UserPromptSubmit (claude-mem new): ${H?"\u2705":"\u274C"}`),console.log(` PostToolUse (claude-mem save): ${z?"\u2705":"\u274C"}`)}catch(Z){console.log(" \u26A0\uFE0F Could not parse settings")}};D("Global",(void 0)()),D("Project",i0(process.cwd(),".claude","settings.json")),console.log(""),console.log("\uD83D\uDCE6 Compressed Transcripts:");let u=i0((void 0)(),"projects");if(p0(u))try{let Q=0,X=0,Z=(J,V=0)=>{if(V>3)return;let H=d4(J);for(let z of H){let U=i0(J,z);if(l4(U).isDirectory()&&!z.startsWith("."))Z(U,V+1);else if(z.endsWith(".jsonl.compressed"))Q++;else if(z.endsWith(".jsonl.archive"))X++}};Z(u),console.log(` Compressed files: ${Q}`),console.log(` Archive files: ${X}`)}catch(Q){console.log(" \u26A0\uFE0F Could not scan projects directory")}else console.log(" \u2139\uFE0F No Claude projects directory found");console.log(""),console.log("\uD83D\uDD27 Runtime Environment:");let F=(Q,X)=>{try{let Z=i4(`${Q} --version`,{encoding:"utf8"}).trim();console.log(` \u2705 ${X}: ${Z}`)}catch{console.log(` \u274C ${X}: Not found`)}};F("node","Node.js"),F("bun","Bun"),console.log(""),console.log("\uD83E\uDDE0 Chroma Storage Status:"),console.log(" \u2705 Storage backend: Chroma MCP"),console.log(` \uD83D\uDCCD Data location: ${(void 0)()}`),console.log(" \uD83D\uDD0D Features: Vector search, semantic similarity, document storage"),console.log(""),console.log("\uD83D\uDCCA Summary:");let C=(void 0)(),B=i0(process.cwd(),".claude","settings.json"),$=!1,E="Not installed";try{if(p0(C)){let Q=JSON.parse(A2(C,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E="Global"}if(p0(B)){let Q=JSON.parse(A2(B,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E=E==="Global"?"Global + Project":"Project"}}catch{}if($)console.log(` \u2705 Claude Memory System is installed (${E})`),console.log(""),console.log("\uD83D\uDCA1 To test: Use /compact in Claude Code");else console.log(" \u274C Claude Memory System is not installed"),console.log(""),console.log("\uD83D\uDCA1 To install: claude-mem install")}var XD=new m2;XD.name(dD).description(r2).version(a2);XD.command("install").description("Install Claude Code hooks for automatic compression").option("--user","Install for current user (default)").option("--project","Install for current project only").option("--local","Install to custom local directory").option("--path ","Custom installation path (with --local)").option("--timeout ","Hook execution timeout in milliseconds","180000").option("--skip-mcp","Skip Chroma MCP server installation").option("--force","Force installation even if already installed").action(S8);XD.command("uninstall").description("Remove Claude Code hooks").option("--user","Remove from user settings (default)").option("--project","Remove from project settings").option("--all","Remove from both user and project settings").action(x8);XD.command("logs").description("View claude-mem operation logs").option("--debug","Show debug logs only").option("--error","Show error logs only").option("--tail [n]","Show last n lines","50").option("--follow","Follow log output").action(b8);var U2=XD.command("trash").description("Manage trash bin for safe file deletion").argument("[files...]","Files to move to trash").option("-r, --recursive","Remove directories recursively").option("-R","Remove directories recursively (same as -r)").option("-f, --force","Suppress errors for nonexistent files").action(async(D,u)=>{if(!D||D.length===0){U2.outputHelp();return}if(u.R)u.recursive=!0;await k6(D,{force:u.force,recursive:u.recursive})});U2.command("view").description("View contents of trash bin").action(h6);U2.command("empty").description("Permanently delete all files in trash").option("-f, --force","Skip confirmation prompt").action(m6);XD.command("restore").description("Restore files from trash interactively").action(d6);XD.command("doctor").description("Run health checks on claude-mem installation").option("--json","Output results as JSON").action(n6);XD.command("status").description("Show claude-mem system status").action(a6);XD.command("context").description("SessionStart hook - show recent session context").action(async()=>{let{contextHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("new").description("UserPromptSubmit hook - initialize SDK session").action(async()=>{let{newHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("save").description("PostToolUse hook - queue observation").action(async()=>{let{saveHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("summary").description("Stop hook - finalize session").action(async()=>{let{summaryHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("worker ").description("Run SDK worker process (internal use)").action(async(D)=>{try{let{main:u}=await Promise.resolve().then(() => (K1(),q1));process.argv[2]=D,await u()}catch(u){console.error(`[SDK Worker] Fatal error: ${u.message}`),process.exit(1)}});async function n0(){return new Promise((D)=>{let u="";process.stdin.on("data",(F)=>{u+=F}),process.stdin.on("end",()=>{D(u)})})}XD.parse();export{i6 as migrations,p6 as initializeDatabase,l6 as getDatabase,rD as DatabaseManager}; + `),console.log("\u26A0\uFE0F Recreated streaming_sessions and observation_queue (for rollback only)")}},i6=[y4,h4,g4,m4,c4];function l4(D){let u=D.status==="pass"?"\u2705":D.status==="warn"?"\u26A0\uFE0F ":"\u274C",F=D.details?`${D.name}: ${D.details}`:D.name;console.log(`${u} ${F}`)}async function n6(D={}){let u=[];try{if(!zu.existsSync(g))zu.mkdirSync(g,{recursive:!0}),u.push({name:`Data directory created at ${g}`,status:"warn"});else{let F=zu.statSync(g),C=!1;try{zu.accessSync(g,zu.constants.W_OK),C=!0}catch{}u.push({name:`Data directory ${g}`,status:F.isDirectory()&&C?"pass":"fail",details:F.isDirectory()&&C?"accessible":"not writable"})}}catch(F){u.push({name:"Data directory",status:"fail",details:F?.message||String(F)})}try{let F=new QD;u.push({name:"SQLite database",status:"pass",details:"connected"})}catch(F){u.push({name:"SQLite database",status:"fail",details:F?.message||String(F)})}try{let F=zu.existsSync(Qu);u.push({name:"Chroma vector store",status:F?"pass":"warn",details:F?`data dir ${d4.resolve(Qu)}`:"Not yet initialized"})}catch(F){u.push({name:"Chroma vector store",status:"warn",details:F?.message||"Unable to check Chroma directory"})}if(D.json)console.log(JSON.stringify({checks:u},null,2));else console.log("claude-mem doctor"),console.log("================="),u.forEach(l4)}$D();import{readFileSync as A2,existsSync as p0,readdirSync as p4,statSync as i4}from"fs";import{join as i0,dirname as n4}from"path";import{execSync as a4}from"child_process";import{fileURLToPath as r4}from"url";var AX=n4(r4(import.meta.url));async function a6(){console.log("\uD83D\uDD0D Claude Memory System Status Check"),console.log(`===================================== +`),console.log("\u2699\uFE0F Settings Configuration:");let D=(Q,X)=>{if(!p0(X)){console.log(` \u23ED\uFE0F ${Q}: No settings file`);return}console.log(` \uD83D\uDCCB ${Q}: ${X}`);try{let Z=JSON.parse(A2(X,"utf8")),J=Z.hooks?.SessionStart?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),V=Z.hooks?.Stop?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),H=Z.hooks?.UserPromptSubmit?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem"))),z=Z.hooks?.PostToolUse?.some((U)=>U.hooks?.some((G)=>G.command?.includes("claude-mem")));console.log(` SessionStart (claude-mem context): ${J?"\u2705":"\u274C"}`),console.log(` Stop (claude-mem summary): ${V?"\u2705":"\u274C"}`),console.log(` UserPromptSubmit (claude-mem new): ${H?"\u2705":"\u274C"}`),console.log(` PostToolUse (claude-mem save): ${z?"\u2705":"\u274C"}`)}catch(Z){console.log(" \u26A0\uFE0F Could not parse settings")}};D("Global",(void 0)()),D("Project",i0(process.cwd(),".claude","settings.json")),console.log(""),console.log("\uD83D\uDCE6 Compressed Transcripts:");let u=i0((void 0)(),"projects");if(p0(u))try{let Q=0,X=0,Z=(J,V=0)=>{if(V>3)return;let H=p4(J);for(let z of H){let U=i0(J,z);if(i4(U).isDirectory()&&!z.startsWith("."))Z(U,V+1);else if(z.endsWith(".jsonl.compressed"))Q++;else if(z.endsWith(".jsonl.archive"))X++}};Z(u),console.log(` Compressed files: ${Q}`),console.log(` Archive files: ${X}`)}catch(Q){console.log(" \u26A0\uFE0F Could not scan projects directory")}else console.log(" \u2139\uFE0F No Claude projects directory found");console.log(""),console.log("\uD83D\uDD27 Runtime Environment:");let F=(Q,X)=>{try{let Z=a4(`${Q} --version`,{encoding:"utf8"}).trim();console.log(` \u2705 ${X}: ${Z}`)}catch{console.log(` \u274C ${X}: Not found`)}};F("node","Node.js"),F("bun","Bun"),console.log(""),console.log("\uD83E\uDDE0 Chroma Storage Status:"),console.log(" \u2705 Storage backend: Chroma MCP"),console.log(` \uD83D\uDCCD Data location: ${(void 0)()}`),console.log(" \uD83D\uDD0D Features: Vector search, semantic similarity, document storage"),console.log(""),console.log("\uD83D\uDCCA Summary:");let C=(void 0)(),B=i0(process.cwd(),".claude","settings.json"),$=!1,E="Not installed";try{if(p0(C)){let Q=JSON.parse(A2(C,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E="Global"}if(p0(B)){let Q=JSON.parse(A2(B,"utf8"));if(Q.hooks?.SessionStart||Q.hooks?.Stop||Q.hooks?.PostToolUse)$=!0,E=E==="Global"?"Global + Project":"Project"}}catch{}if($)console.log(` \u2705 Claude Memory System is installed (${E})`),console.log(""),console.log("\uD83D\uDCA1 To test: Use /compact in Claude Code");else console.log(" \u274C Claude Memory System is not installed"),console.log(""),console.log("\uD83D\uDCA1 To install: claude-mem install")}var XD=new m2;XD.name(dD).description(r2).version(a2);XD.command("install").description("Install Claude Code hooks for automatic compression").option("--user","Install for current user (default)").option("--project","Install for current project only").option("--local","Install to custom local directory").option("--path ","Custom installation path (with --local)").option("--timeout ","Hook execution timeout in milliseconds","180000").option("--skip-mcp","Skip Chroma MCP server installation").option("--force","Force installation even if already installed").action(S8);XD.command("uninstall").description("Remove Claude Code hooks").option("--user","Remove from user settings (default)").option("--project","Remove from project settings").option("--all","Remove from both user and project settings").action(x8);XD.command("logs").description("View claude-mem operation logs").option("--debug","Show debug logs only").option("--error","Show error logs only").option("--tail [n]","Show last n lines","50").option("--follow","Follow log output").action(b8);var U2=XD.command("trash").description("Manage trash bin for safe file deletion").argument("[files...]","Files to move to trash").option("-r, --recursive","Remove directories recursively").option("-R","Remove directories recursively (same as -r)").option("-f, --force","Suppress errors for nonexistent files").action(async(D,u)=>{if(!D||D.length===0){U2.outputHelp();return}if(u.R)u.recursive=!0;await k6(D,{force:u.force,recursive:u.recursive})});U2.command("view").description("View contents of trash bin").action(h6);U2.command("empty").description("Permanently delete all files in trash").option("-f, --force","Skip confirmation prompt").action(m6);XD.command("restore").description("Restore files from trash interactively").action(d6);XD.command("doctor").description("Run health checks on claude-mem installation").option("--json","Output results as JSON").action(n6);XD.command("status").description("Show claude-mem system status").action(a6);XD.command("context").description("SessionStart hook - show recent session context").action(async()=>{let{contextHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("new").description("UserPromptSubmit hook - initialize SDK session").action(async()=>{let{newHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("save").description("PostToolUse hook - queue observation").action(async()=>{let{saveHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("summary").description("Stop hook - finalize session").action(async()=>{let{summaryHook:D}=await Promise.resolve().then(() => (tu(),su)),u=await n0();D(JSON.parse(u))});XD.command("worker ").description("Run SDK worker process (internal use)").action(async(D)=>{try{let{main:u}=await Promise.resolve().then(() => (H1(),V1));process.argv[2]=D,await u()}catch(u){console.error(`[SDK Worker] Fatal error: ${u.message}`),process.exit(1)}});async function n0(){return new Promise((D)=>{let u="";process.stdin.on("data",(F)=>{u+=F}),process.stdin.on("end",()=>{D(u)})})}XD.parse();export{i6 as migrations,p6 as initializeDatabase,l6 as getDatabase,rD as DatabaseManager}; diff --git a/docs/PLUGIN_DEVELOPMENT.md b/docs/PLUGIN_DEVELOPMENT.md new file mode 100644 index 00000000..1687596e --- /dev/null +++ b/docs/PLUGIN_DEVELOPMENT.md @@ -0,0 +1,308 @@ +# Plugin Development Guide + +This guide helps developers work with the claude-mem plugin structure during development. + +## Quick Start + +### 1. Build the Plugin + +```bash +# Build both CLI and hooks +npm run build + +# Or build separately +npm run build:cli # Just the CLI +npm run build:hooks # Just the hooks +``` + +### 2. Test Hooks Locally + +Test individual hooks by piping JSON input: + +```bash +# Test context hook (SessionStart) +printf '{"session_id":"test-123","cwd":"/Users/you/project","source":"startup"}' | \ + bun scripts/hooks/context-hook.js + +# Test new hook (UserPromptSubmit) +printf '{"session_id":"test-123","cwd":"/Users/you/project","prompt":"help me code"}' | \ + bun scripts/hooks/new-hook.js + +# Test save hook (PostToolUse) +printf '{"session_id":"test-123","cwd":"/Users/you/project","tool_name":"Read","tool_input":{},"tool_output":{}}' | \ + bun scripts/hooks/save-hook.js + +# Test summary hook (Stop) +printf '{"session_id":"test-123","cwd":"/Users/you/project"}' | \ + bun scripts/hooks/summary-hook.js + +# Test worker (requires valid session ID in database) +bun scripts/hooks/worker.js 999 +``` + +### 3. Test Worker with Plugin Root + +Verify the new-hook correctly detects plugin mode: + +```bash +# Without CLAUDE_PLUGIN_ROOT (traditional mode) +printf '{"session_id":"test-new","cwd":"/path","prompt":"test"}' | \ + bun scripts/hooks/new-hook.js + +# With CLAUDE_PLUGIN_ROOT (plugin mode) +CLAUDE_PLUGIN_ROOT=$(pwd) printf '{"session_id":"test-plugin","cwd":"/path","prompt":"test"}' | \ + bun scripts/hooks/new-hook.js +``` + +In plugin mode, the new-hook will attempt to spawn `bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/worker.js`. +In traditional mode, it will attempt to spawn `claude-mem worker`. + +### 4. Test With No Input + +Each hook should handle missing input gracefully: + +```bash +echo '' | bun scripts/hooks/context-hook.js +# Output: No input provided - this script is designed to run as a Claude Code SessionStart hook +``` + +## Local Plugin Testing + +### Option 1: Dev Marketplace (Recommended) + +Create a development marketplace to test your plugin: + +```bash +# Create marketplace structure +mkdir -p ~/dev-marketplace/.claude-plugin + +# Create marketplace manifest +cat > ~/dev-marketplace/.claude-plugin/marketplace.json << 'EOF' +{ + "name": "dev-marketplace", + "owner": { + "name": "Developer" + }, + "plugins": [ + { + "name": "claude-mem", + "source": "./claude-mem-plugin", + "description": "Persistent memory system for Claude Code" + } + ] +} +EOF + +# Symlink your working directory +ln -s /path/to/your/claude-mem ~/dev-marketplace/claude-mem-plugin +``` + +Then in Claude Code: + +``` +/plugin marketplace add /absolute/path/to/dev-marketplace +/plugin install claude-mem@dev-marketplace +``` + +### Option 2: Direct Testing + +Test the CLI commands directly: + +```bash +# Build first +npm run build + +# Test CLI commands +./dist/claude-mem.min.js --version +./dist/claude-mem.min.js status +./dist/claude-mem.min.js --help +``` + +## Development Workflow + +### Making Changes to Hooks + +1. **Edit TypeScript source** in `src/hooks/` or `src/bin/hooks/` +2. **Rebuild hooks**: `npm run build:hooks` +3. **Test locally**: Use echo piping method above +4. **Reinstall plugin** (if testing in Claude Code): + ``` + /plugin uninstall claude-mem@dev-marketplace + /plugin install claude-mem@dev-marketplace + ``` + +### Making Changes to CLI + +1. **Edit TypeScript source** in `src/` +2. **Rebuild CLI**: `npm run build:cli` +3. **Test directly**: `./dist/claude-mem.min.js [command]` + +### Making Changes to Commands + +1. **Edit markdown files** in `commands/` +2. **No rebuild needed** (commands are read directly) +3. **Reinstall plugin** to pick up changes: + ``` + /plugin uninstall claude-mem@dev-marketplace + /plugin install claude-mem@dev-marketplace + ``` + +## Debugging + +### Enable Verbose Logging + +Set environment variables for more detailed output: + +```bash +DEBUG=claude-mem:* bun scripts/hooks/context-hook.js +``` + +### Check Hook Output + +Hooks write to stdout/stderr. Capture output: + +```bash +echo '{"session_id":"test","cwd":"/path"}' | \ + bun scripts/hooks/context-hook.js 2>&1 | tee hook-output.log +``` + +### Verify Plugin Root Variable + +Test that `${CLAUDE_PLUGIN_ROOT}` resolves correctly: + +```bash +# Manually set it for testing +export CLAUDE_PLUGIN_ROOT=/path/to/your/plugin +echo '{"session_id":"test","cwd":"/path"}' | \ + bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/context-hook.js +``` + +## Build System Details + +### Hook Build Process + +The `scripts/build-hooks.js` script: +1. Reads each entry point from `src/bin/hooks/` +2. Bundles with Bun build system +3. Minifies output +4. Adds shebang for direct execution +5. Sets executable permissions +6. Outputs to `scripts/hooks/` + +### CLI Build Process + +The `scripts/build.js` script: +1. Bundles main CLI from `src/bin/cli.ts` +2. Externalizes large dependencies +3. Minifies output +4. Adds shebang +5. Sets executable permissions +6. Outputs to `dist/claude-mem.min.js` + +### Build Configuration + +Both builds use similar Bun configuration: +- **Target**: `bun` runtime +- **Minify**: `true` +- **External**: `bun:sqlite` (native module) +- **Define**: `__DEFAULT_PACKAGE_VERSION__` from package.json + +## Testing + +### Run Tests + +```bash +bun test tests/ +``` + +### Test Database Operations + +```bash +# Test hooks database +bun test tests/hooks-database-integration.test.ts + +# Test session lifecycle +bun test tests/session-lifecycle.test.ts +``` + +## Publishing + +### Pre-publish Checklist + +- [ ] All tests pass: `bun test tests/` +- [ ] Build succeeds: `npm run build` +- [ ] Version updated in `package.json` +- [ ] Changelog updated in `docs/CHANGELOG.md` +- [ ] Plugin.json version matches package.json +- [ ] Hooks tested locally +- [ ] CLI tested locally + +### Publish to npm + +```bash +npm run publish:npm +``` + +This will: +1. Run `prepublishOnly` script (builds everything) +2. Publish to npm registry +3. Include files listed in `package.json` "files" array + +### Files Included in Package + +The npm package includes: +- `dist/` - Compiled CLI +- `scripts/` - Compiled hooks +- `commands/` - Slash command definitions +- `hooks/` - Hook configuration +- `.claude-plugin/` - Plugin metadata +- `src/` - TypeScript source (for reference) +- `docs/` - Documentation +- `.mcp.json` - MCP server configuration + +## Troubleshooting + +### Build Fails + +**Problem**: `bun: command not found` +**Solution**: Install Bun from https://bun.sh + +**Problem**: Build errors with external dependencies +**Solution**: Check that `bun:sqlite` is not bundled (should be external) + +### Hooks Don't Execute + +**Problem**: `Permission denied` when executing hooks +**Solution**: Ensure scripts are executable: `chmod +x scripts/hooks/*.js` + +**Problem**: Hooks exit silently +**Solution**: Check error handling - hooks catch all errors and exit gracefully + +### Plugin Not Found + +**Problem**: `/plugin install` can't find claude-mem +**Solution**: +1. Verify marketplace is added: `/plugin marketplace list` +2. Check marketplace manifest includes claude-mem +3. Refresh marketplace: `/plugin marketplace refresh` + +## Tips + +1. **Use symlinks** in dev marketplace for faster iteration +2. **Test hooks with edge cases** (empty input, malformed JSON) +3. **Check file sizes** after build to catch bloat +4. **Version everything together** (CLI, hooks, plugin.json) +5. **Document breaking changes** in CHANGELOG.md + +## Resources + +- [Plugin Structure Documentation](./PLUGIN_STRUCTURE.md) +- [Plugin Installation Guide](./PLUGIN_INSTALLATION.md) +- [Build Documentation](./BUILD.md) +- [Claude Code Plugins Docs](https://docs.claude.com/en/docs/claude-code/plugins) +- [Bun Documentation](https://bun.sh/docs) + +## Getting Help + +- **Issues**: https://github.com/thedotmack/claude-mem/issues +- **Discussions**: https://github.com/thedotmack/claude-mem/discussions diff --git a/docs/PLUGIN_STRUCTURE.md b/docs/PLUGIN_STRUCTURE.md new file mode 100644 index 00000000..e19619fc --- /dev/null +++ b/docs/PLUGIN_STRUCTURE.md @@ -0,0 +1,242 @@ +# Claude-mem Plugin Structure + +This document describes the complete plugin structure for claude-mem, which enables self-contained installation via Claude Code's plugin system. + +## Directory Structure + +``` +claude-mem/ +├── .claude-plugin/ +│ └── plugin.json # Plugin metadata +├── commands/ +│ ├── claude-mem.md # /claude-mem slash command +│ ├── remember.md # /remember slash command +│ └── save.md # /save slash command +├── hooks/ +│ └── hooks.json # Hook definitions using ${CLAUDE_PLUGIN_ROOT} +├── scripts/ +│ ├── build-hooks.js # Build script for compiling hooks +│ └── hooks/ # Compiled hook executables +│ ├── context-hook.js # SessionStart hook (4KB) +│ ├── new-hook.js # UserPromptSubmit hook (4KB) +│ ├── save-hook.js # PostToolUse hook (4KB) +│ ├── summary-hook.js # Stop hook (4KB) +│ └── worker.js # Background SDK worker (232KB) +├── src/ +│ ├── bin/ +│ │ ├── cli.ts # Main CLI entry point +│ │ └── hooks/ # Hook entry point sources +│ │ ├── context-hook.ts # SessionStart entry point +│ │ ├── new-hook.ts # UserPromptSubmit entry point +│ │ ├── save-hook.ts # PostToolUse entry point +│ │ └── summary-hook.ts # Stop entry point +│ ├── hooks/ # Hook implementation functions +│ │ ├── context.ts +│ │ ├── new.ts +│ │ ├── save.ts +│ │ └── summary.ts +│ └── ... # Other source files +└── dist/ + └── claude-mem.min.js # Bundled CLI executable +``` + +## How It Works + +### 1. Plugin Installation + +When users install the plugin via `/plugin install claude-mem`, Claude Code: +1. Downloads the plugin from the marketplace +2. Installs it to the local plugins directory +3. Registers the hooks from `hooks/hooks.json` +4. Makes slash commands from `commands/` directory available + +### 2. Self-Contained Execution + +The hooks are compiled as standalone executables that: +- **Don't require global CLI installation**: All dependencies are bundled +- **Use plugin-relative paths**: `${CLAUDE_PLUGIN_ROOT}` resolves to plugin directory +- **Work with Bun runtime**: Scripts are compiled for Bun and include shebang + +### 3. Hook Configuration + +The `hooks/hooks.json` file uses `${CLAUDE_PLUGIN_ROOT}` to reference bundled scripts: + +```json +{ + "description": "Claude-mem memory system hooks", + "hooks": { + "SessionStart": [{ + "hooks": [{ + "type": "command", + "command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/context-hook.js", + "timeout": 180000 + }] + }], + ... + } +} +``` + +### 4. Hook Entry Points + +Each hook has a standalone entry point in `src/bin/hooks/` that: +- Reads JSON input from stdin +- Calls the hook implementation function +- Handles errors gracefully +- Exits with appropriate status codes + +Example from `context-hook.ts`: +```typescript +#!/usr/bin/env bun +import { contextHook } from '../../hooks/context.js'; + +const input = await Bun.stdin.text(); +const parsed = input.trim() ? JSON.parse(input) : undefined; +contextHook(parsed); +``` + +### 5. Build Process + +The build system compiles both the CLI and hook scripts: + +```bash +npm run build # Build both CLI and hooks +npm run build:cli # Build only the CLI +npm run build:hooks # Build only the hooks +``` + +The hook build process: +1. Compiles each hook entry point with Bun +2. Bundles all dependencies (except bun:sqlite) +3. Minifies the output +4. Adds shebang (`#!/usr/bin/env bun`) +5. Makes executable (`chmod +x`) +6. Outputs to `scripts/hooks/` + +## Benefits + +### ✅ Self-Contained +- No global CLI installation required +- All dependencies bundled with plugin +- Plugin directory has everything needed + +### ✅ Easy Installation +- Single command: `/plugin install claude-mem` +- Hooks automatically registered +- Slash commands immediately available + +### ✅ Version Control +- Plugin version tied to specific hook versions +- No version mismatch between CLI and hooks +- Easy updates via `/plugin update` + +### ✅ Development Friendly +- Source code in TypeScript +- Compiled to optimized JavaScript +- Fast execution with Bun runtime + +## Usage + +### For Users + +Install the plugin: +``` +/plugin install claude-mem@marketplace-name +``` + +The plugin provides: +- **Hooks**: Automatic memory capture on SessionStart, UserPromptSubmit, PostToolUse, Stop +- **Commands**: `/claude-mem`, `/save`, `/remember` slash commands +- **MCP Integration**: Chroma vector database access via MCP tools + +### For Developers + +Build the plugin: +```bash +npm run build +``` + +Test hooks locally: +```bash +echo '{"session_id":"test","cwd":"/path"}' | bun scripts/hooks/context-hook.js +``` + +Publish to marketplace: +```bash +npm run publish:npm +``` + +## Worker Process Handling + +### Background Worker + +The `worker.js` is a special bundled script that runs as a long-lived background process. It: +- Runs an SDK agent session in the background +- Listens on a Unix socket for messages from hooks +- Processes tool observations and generates summaries +- Stores results in the database + +### Spawning the Worker + +The `new-hook` (UserPromptSubmit) is responsible for spawning the worker. It uses intelligent fallback: + +```typescript +// Plugin mode: Use bundled worker with CLAUDE_PLUGIN_ROOT +if (process.env.CLAUDE_PLUGIN_ROOT) { + const workerPath = path.join(pluginRoot, 'scripts', 'hooks', 'worker.js'); + spawn('bun', [workerPath, sessionId.toString()], { detached: true }); +} +// Traditional mode: Use global CLI +else { + spawn('claude-mem', ['worker', sessionId.toString()], { detached: true }); +} +``` + +### Why This Approach? + +1. **Self-contained plugin**: When installed as a plugin, uses bundled worker +2. **Backwards compatible**: When installed traditionally, uses global CLI +3. **No user intervention**: Automatically detects mode via environment variable + +## File Sizes + +Compiled hook scripts are optimized and small: +- `context-hook.js`: ~4.1 KB +- `new-hook.js`: ~4.0 KB +- `save-hook.js`: ~4.2 KB +- `summary-hook.js`: ~3.9 KB +- `worker.js`: ~232 KB (includes SDK dependencies) + +Total package overhead: ~248 KB for all hook scripts combined. + +## Dependencies + +### Runtime +- **Bun**: Required for executing hook scripts +- **bun:sqlite**: Native SQLite module (not bundled) + +### Build-time +- **Bun**: Used as bundler for compilation +- **Node.js**: Required for build scripts + +## Backwards Compatibility + +The plugin structure maintains backwards compatibility: +- CLI commands still work: `claude-mem context`, etc. +- Traditional installation still supported: `npm install -g claude-mem` +- Users can choose plugin OR CLI installation + +## Future Enhancements + +Potential improvements: +- [ ] Add more hooks (e.g., PreToolUse, Error) +- [ ] Support Node.js runtime in addition to Bun +- [ ] Add hook configuration UI +- [ ] Implement hook hot-reloading during development +- [ ] Create plugin marketplace for distribution + +## See Also + +- [Plugin Installation Guide](./PLUGIN_INSTALLATION.md) - User-facing installation instructions +- [Build Documentation](./BUILD.md) - Build system details +- [Claude Code Plugins Docs](https://docs.claude.com/en/docs/claude-code/plugins) - Official plugin documentation diff --git a/docs/WORKER_ARCHITECTURE.md b/docs/WORKER_ARCHITECTURE.md new file mode 100644 index 00000000..5f4973bb --- /dev/null +++ b/docs/WORKER_ARCHITECTURE.md @@ -0,0 +1,272 @@ +# Worker Process Architecture + +This document explains how the SDK worker process is handled in both plugin and traditional installation modes. + +## Overview + +The worker is a critical background process that: +- Runs the Claude Agent SDK in a long-lived session +- Listens on a Unix socket for messages from hooks +- Processes tool observations in real-time +- Generates session summaries +- Stores observations and summaries in the database + +## Architecture Diagram + +``` +┌─────────────────┐ +│ Claude Code │ +│ (Main UI) │ +└────────┬────────┘ + │ + ├─ SessionStart Hook ──> context-hook.js + │ + ├─ UserPromptSubmit ───> new-hook.js ──┐ + │ │ + │ ├──> Spawns Worker + │ │ (Background Process) + │ │ + ├─ PostToolUse Hook ───> save-hook.js ─┼──> Unix Socket + │ │ + │ │ ┌──────────────┐ + │ └───>│ worker.js │ + │ │ │ + │ │ - SDK Agent │ + └─ Stop Hook ───────────> summary-hook.js ──┼─>- Socket Srv│ + │ - Database │ + └──────────────┘ +``` + +## Worker Lifecycle + +### 1. Session Initialization (UserPromptSubmit) + +When a user submits a prompt, `new-hook.js` is triggered: + +```typescript +// 1. Check if session already exists +const existing = db.findActiveSDKSession(session_id); +if (existing) { /* already running */ } + +// 2. Create new SDK session record +const sessionId = db.createSDKSession(session_id, project, prompt); + +// 3. Spawn worker process +const pluginRoot = process.env.CLAUDE_PLUGIN_ROOT; +if (pluginRoot) { + // Plugin mode: use bundled worker + spawn('bun', [`${pluginRoot}/scripts/hooks/worker.js`, sessionId]); +} else { + // Traditional mode: use global CLI + spawn('claude-mem', ['worker', sessionId]); +} +``` + +### 2. Worker Startup + +The worker process starts and: +1. Loads session info from database +2. Creates Unix socket at `~/.claude-mem/sockets/session-{id}.sock` +3. Starts listening for messages +4. Initializes SDK agent with streaming input + +### 3. Tool Observation Flow (PostToolUse) + +Every time Claude uses a tool, `save-hook.js` is triggered: + +```typescript +// 1. Find active SDK session +const session = db.findActiveSDKSession(session_id); + +// 2. Connect to worker's Unix socket +const socketPath = getWorkerSocketPath(session.id); +const client = net.connect(socketPath); + +// 3. Send observation message +client.write(JSON.stringify({ + type: 'observation', + tool_name: 'Read', + tool_input: '{"file_path": "/path/to/file"}', + tool_output: '{"content": "..."}' +})); +``` + +The worker receives the message and: +1. Queues it in `pendingMessages` +2. Yields it to SDK agent via message generator +3. Receives agent's analysis +4. Parses and stores observations in database + +### 4. Session Finalization (Stop) + +When the session ends, `summary-hook.js` is triggered: + +```typescript +// 1. Find active session +const session = db.findActiveSDKSession(session_id); + +// 2. Send finalize message to worker +const client = net.connect(socketPath); +client.write(JSON.stringify({ + type: 'finalize' +})); +``` + +The worker: +1. Stops accepting new observations +2. Sends finalize prompt to SDK agent +3. Receives and parses session summary +4. Stores summary in database +5. Cleans up socket and exits + +## Plugin vs Traditional Mode + +### Plugin Mode (Self-Contained) + +When installed as a plugin: +- `CLAUDE_PLUGIN_ROOT` environment variable is set by Claude Code +- Hooks use bundled scripts: `${CLAUDE_PLUGIN_ROOT}/scripts/hooks/` +- Worker is spawned as: `bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/worker.js` +- **No global CLI installation required** + +```bash +# Plugin mode execution +/plugin install claude-mem +# Hooks automatically use bundled worker +``` + +### Traditional Mode (Global CLI) + +When installed via npm: +- `CLAUDE_PLUGIN_ROOT` is not set +- Hooks installed via `claude-mem install` +- Worker is spawned as: `claude-mem worker` +- **Requires global CLI installation** + +```bash +# Traditional mode installation +npm install -g claude-mem +claude-mem install +``` + +## Worker Binary Size + +The worker is the largest bundled script because it includes: +- Claude Agent SDK (`@anthropic-ai/claude-agent-sdk`) +- Prompt templates and parsers +- Socket server implementation +- Database operations + +**Size**: ~232 KB (minified) + +This is acceptable because: +- Only spawned once per session (not per tool use) +- Runs in background (doesn't block UI) +- Contains full SDK functionality + +## Worker Communication Protocol + +### Message Types + +#### 1. Observation Message +```json +{ + "type": "observation", + "tool_name": "Read", + "tool_input": "{\"file_path\": \"/path\"}", + "tool_output": "{\"content\": \"...\"}" +} +``` + +#### 2. Finalize Message +```json +{ + "type": "finalize" +} +``` + +### Socket Protocol + +- **Transport**: Unix domain socket +- **Format**: JSON messages separated by newlines (`\n`) +- **Location**: `~/.claude-mem/sockets/session-{id}.sock` +- **Lifecycle**: Created on worker startup, deleted on worker exit + +## Error Handling + +### Worker Startup Failures + +If the worker fails to start: +- New-hook logs error but doesn't block Claude Code +- Session record remains in "pending" state +- No observations are captured (graceful degradation) + +### Socket Communication Failures + +If hooks can't connect to worker socket: +- Hook logs error but doesn't block Claude Code +- Tool use continues normally +- Observations are skipped for that session + +### Worker Crashes + +If the worker crashes mid-session: +- Database marks session as "failed" +- Socket is cleaned up automatically +- Next session will spawn new worker + +## Testing + +### Test Worker Directly + +```bash +# Build the worker +npm run build:hooks + +# Test worker (needs valid session ID in DB) +bun scripts/hooks/worker.js 123 +``` + +### Test Worker Spawning + +```bash +# Plugin mode (with CLAUDE_PLUGIN_ROOT) +CLAUDE_PLUGIN_ROOT=$(pwd) printf '{"session_id":"test","cwd":"/path","prompt":"help"}' | \ + bun scripts/hooks/new-hook.js + +# Traditional mode (without CLAUDE_PLUGIN_ROOT) +printf '{"session_id":"test","cwd":"/path","prompt":"help"}' | \ + bun scripts/hooks/new-hook.js +``` + +### Monitor Worker Logs + +Worker logs to stderr: +```bash +# Watch worker logs in real-time +tail -f ~/.claude-mem/logs/worker-*.log +``` + +## Benefits of This Architecture + +1. **Self-contained**: Plugin bundles everything needed +2. **Backwards compatible**: Works with global CLI too +3. **Automatic detection**: Uses environment variable to choose mode +4. **Isolated execution**: Worker runs in separate process +5. **Async communication**: Hooks don't block on SDK operations +6. **Graceful degradation**: Failures don't break Claude Code + +## Future Improvements + +Potential enhancements: +- [ ] Worker health checks and auto-restart +- [ ] Multiple workers for concurrent sessions +- [ ] Worker pool management +- [ ] WebSocket support for remote workers +- [ ] Worker performance metrics + +## See Also + +- [Plugin Structure Documentation](./PLUGIN_STRUCTURE.md) +- [Plugin Development Guide](./PLUGIN_DEVELOPMENT.md) +- [Build Documentation](./BUILD.md) diff --git a/hooks/hooks.json b/hooks/hooks.json index d2388113..29ef7d3f 100644 --- a/hooks/hooks.json +++ b/hooks/hooks.json @@ -1,11 +1,12 @@ { + "description": "Claude-mem memory system hooks", "hooks": { "SessionStart": [ { "hooks": [ { "type": "command", - "command": "claude-mem context", + "command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/context-hook.js", "timeout": 180000 } ] @@ -16,7 +17,7 @@ "hooks": [ { "type": "command", - "command": "claude-mem new", + "command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/new-hook.js", "timeout": 60000 } ] @@ -28,7 +29,7 @@ "hooks": [ { "type": "command", - "command": "claude-mem save", + "command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/save-hook.js", "timeout": 180000 } ] @@ -39,7 +40,7 @@ "hooks": [ { "type": "command", - "command": "claude-mem summary", + "command": "bun ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/summary-hook.js", "timeout": 60000 } ] diff --git a/package.json b/package.json index 53ea17ee..08b6ff12 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,9 @@ "claude-mem": "./dist/claude-mem.min.js" }, "scripts": { - "build": "node scripts/build.js", + "build": "node scripts/build.js && node scripts/build-hooks.js", + "build:cli": "node scripts/build.js", + "build:hooks": "node scripts/build-hooks.js", "publish:npm": "node scripts/publish.js", "dev": "bun run src/bin/cli.ts", "prepublishOnly": "npm run build", @@ -56,6 +58,7 @@ "dist", "commands", "hooks", + "scripts", ".claude-plugin", "src", "docs", diff --git a/scripts/build-hooks.js b/scripts/build-hooks.js new file mode 100644 index 00000000..e693fa80 --- /dev/null +++ b/scripts/build-hooks.js @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +/** + * Build script for claude-mem hooks + * Bundles TypeScript hooks into individual standalone executables + */ + +import { exec } from 'child_process'; +import { promisify } from 'util'; +import fs from 'fs'; +import path from 'path'; + +const execAsync = promisify(exec); + +const HOOKS = [ + { name: 'context-hook', source: 'src/bin/hooks/context-hook.ts' }, + { name: 'new-hook', source: 'src/bin/hooks/new-hook.ts' }, + { name: 'save-hook', source: 'src/bin/hooks/save-hook.ts' }, + { name: 'summary-hook', source: 'src/bin/hooks/summary-hook.ts' }, + { name: 'worker', source: 'src/bin/hooks/worker.ts' } +]; + +async function buildHooks() { + console.log('🔨 Building claude-mem hooks...\n'); + + try { + // Read version from package.json + const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf-8')); + const version = packageJson.version; + console.log(`📌 Version: ${version}`); + + // Check if bun is installed + try { + await execAsync('bun --version'); + console.log('✓ Bun detected'); + } catch { + console.error('❌ Bun is not installed. Please install it from https://bun.sh'); + process.exit(1); + } + + // Create scripts directory + console.log('\n📦 Preparing scripts directory...'); + const scriptsDir = 'scripts/hooks'; + if (!fs.existsSync(scriptsDir)) { + fs.mkdirSync(scriptsDir, { recursive: true }); + } + console.log('✓ Scripts directory ready'); + + // Build each hook + for (const hook of HOOKS) { + console.log(`\n🔧 Building ${hook.name}...`); + + const outfile = `${scriptsDir}/${hook.name}.js`; + const buildCommand = [ + 'bun build', + hook.source, + '--target=bun', + `--outfile=${outfile}`, + '--minify', + '--external bun:sqlite', + `--define __DEFAULT_PACKAGE_VERSION__='"${version}"'` + ].join(' '); + + const { stdout, stderr } = await execAsync(buildCommand); + if (stdout) console.log(stdout); + if (stderr && !stderr.includes('warn')) console.error(stderr); + + // Add shebang + let content = fs.readFileSync(outfile, 'utf-8'); + content = content.replace(/^#!.*\n/gm, ''); + fs.writeFileSync(outfile, `#!/usr/bin/env bun\n${content}`); + + // Make executable + fs.chmodSync(outfile, 0o755); + + // Check file size + const stats = fs.statSync(outfile); + const sizeInKB = (stats.size / 1024).toFixed(2); + console.log(`✓ ${hook.name} built (${sizeInKB} KB)`); + } + + console.log('\n✅ All hooks built successfully!'); + console.log(` Output: ${scriptsDir}/`); + + } catch (error) { + console.error('\n❌ Hook build failed:', error.message); + if (error.stderr) { + console.error('\nError details:', error.stderr); + } + process.exit(1); + } +} + +buildHooks(); diff --git a/scripts/hooks/context-hook.js b/scripts/hooks/context-hook.js new file mode 100755 index 00000000..c2f776d7 --- /dev/null +++ b/scripts/hooks/context-hook.js @@ -0,0 +1,44 @@ +#!/usr/bin/env bun +// @bun +import{Database as N}from"bun:sqlite";import{join as $,dirname as b,basename as f}from"path";import{homedir as J}from"os";import{existsSync as P,mkdirSync as L}from"fs";var K=process.env.CLAUDE_MEM_DATA_DIR||$(J(),".claude-mem"),V=process.env.CLAUDE_CONFIG_DIR||$(J(),".claude"),w=$(K,"archives"),C=$(K,"logs"),k=$(K,"trash"),l=$(K,"backups"),S=$(K,"chroma"),h=$(K,"settings.json"),M=$(K,"claude-mem.db"),R=$(V,"settings.json"),A=$(V,"commands"),j=$(V,"CLAUDE.md");function q(z){L(z,{recursive:!0})}class v{db;constructor(){q(K),this.db=new N(M,{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(z,W=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(z,W)}findActiveSDKSession(z){return this.db.query(` + SELECT id, sdk_session_id, project + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(z)||null}createSDKSession(z,W,X){let Z=new Date,Q=Z.getTime();return this.db.query(` + INSERT INTO sdk_sessions + (claude_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(z,W,X,Z.toISOString(),Q),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(z,W){this.db.query(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? + `).run(W,z)}storeObservation(z,W,X,Z){let Q=new Date,Y=Q.getTime();this.db.query(` + INSERT INTO observations + (sdk_session_id, project, text, type, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?) + `).run(z,W,Z,X,Q.toISOString(),Y)}storeSummary(z,W,X){let Z=new Date,Q=Z.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(z,W,X.request||null,X.investigated||null,X.learned||null,X.completed||null,X.next_steps||null,X.files_read||null,X.files_edited||null,X.notes||null,Z.toISOString(),Q)}markSessionCompleted(z){let W=new Date,X=W.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(W.toISOString(),X,z)}markSessionFailed(z){let W=new Date,X=W.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(W.toISOString(),X,z)}close(){this.db.close()}}import O from"path";function F(z){try{if(!z)console.log("No input provided - this script is designed to run as a Claude Code SessionStart hook"),process.exit(0);if(z.source&&z.source!=="startup")console.log(""),process.exit(0);let W=O.basename(z.cwd),X=new v,Z=X.getRecentSummaries(W,5);if(X.close(),Z.length===0)console.log(`# Recent Session Context + +No previous sessions found for this project yet.`),process.exit(0);let Q=[];Q.push("# Recent Session Context"),Q.push(""),Q.push(`Here's what happened in recent ${W} sessions:`),Q.push("");for(let Y of Z){if(Q.push("---"),Q.push(""),Y.request)Q.push(`**Request:** ${Y.request}`);if(Y.completed)Q.push(`**Completed:** ${Y.completed}`);if(Y.learned)Q.push(`**Learned:** ${Y.learned}`);if(Y.next_steps)Q.push(`**Next Steps:** ${Y.next_steps}`);if(Y.files_edited)try{let B=JSON.parse(Y.files_edited);if(Array.isArray(B)&&B.length>0)Q.push(`**Files Edited:** ${B.join(", ")}`)}catch{if(Y.files_edited.trim())Q.push(`**Files Edited:** ${Y.files_edited}`)}Q.push(`**Date:** ${Y.created_at.split("T")[0]}`),Q.push("")}console.log(Q.join(` +`)),process.exit(0)}catch(W){console.error(`[claude-mem context error: ${W.message}]`),process.exit(0)}}var G=await Bun.stdin.text();try{let z=G.trim()?JSON.parse(G):void 0;F(z)}catch(z){console.error(`[claude-mem context-hook error: ${z.message}]`),process.exit(0)} diff --git a/scripts/hooks/new-hook.js b/scripts/hooks/new-hook.js new file mode 100755 index 00000000..cdb8dd84 --- /dev/null +++ b/scripts/hooks/new-hook.js @@ -0,0 +1,42 @@ +#!/usr/bin/env bun +// @bun +import{Database as E}from"bun:sqlite";import{join as X,dirname as g,basename as C}from"path";import{homedir as F}from"os";import{existsSync as w,mkdirSync as H}from"fs";var Z=process.env.CLAUDE_MEM_DATA_DIR||X(F(),".claude-mem"),v=process.env.CLAUDE_CONFIG_DIR||X(F(),".claude"),y=X(Z,"archives"),l=X(Z,"logs"),h=X(Z,"trash"),j=X(Z,"backups"),A=X(Z,"chroma"),R=X(Z,"settings.json"),G=X(Z,"claude-mem.db"),_=X(v,"settings.json"),I=X(v,"commands"),c=X(v,"CLAUDE.md");function x(z){H(z,{recursive:!0})}class J{db;constructor(){x(Z),this.db=new E(G,{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(z,Q=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(z,Q)}findActiveSDKSession(z){return this.db.query(` + SELECT id, sdk_session_id, project + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(z)||null}createSDKSession(z,Q,W){let Y=new Date,$=Y.getTime();return this.db.query(` + INSERT INTO sdk_sessions + (claude_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(z,Q,W,Y.toISOString(),$),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(z,Q){this.db.query(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? + `).run(Q,z)}storeObservation(z,Q,W,Y){let $=new Date,K=$.getTime();this.db.query(` + INSERT INTO observations + (sdk_session_id, project, text, type, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?) + `).run(z,Q,Y,W,$.toISOString(),K)}storeSummary(z,Q,W){let Y=new Date,$=Y.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(z,Q,W.request||null,W.investigated||null,W.learned||null,W.completed||null,W.next_steps||null,W.files_read||null,W.files_edited||null,W.notes||null,Y.toISOString(),$)}markSessionCompleted(z){let Q=new Date,W=Q.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(Q.toISOString(),W,z)}markSessionFailed(z){let Q=new Date,W=Q.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(Q.toISOString(),W,z)}close(){this.db.close()}}import L from"path";import{spawn as O}from"child_process";function N(z){try{if(!z)console.log("No input provided - this script is designed to run as a Claude Code UserPromptSubmit hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",prompt:"string"},null,2)),process.exit(0);let{session_id:Q,cwd:W,prompt:Y}=z,$=L.basename(W),K=new J;if(K.findActiveSDKSession(Q))K.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=K.createSDKSession(Q,$,Y);K.close();let q=process.env.CLAUDE_PLUGIN_ROOT,V;if(q){let f=L.join(q,"scripts","hooks","worker.js");V=O("bun",[f,B.toString()],{detached:!0,stdio:"ignore"})}else V=O("claude-mem",["worker",B.toString()],{detached:!0,stdio:"ignore"});V.unref(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}catch(Q){console.error(`[claude-mem new error: ${Q.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var U=await Bun.stdin.text();try{let z=U.trim()?JSON.parse(U):void 0;N(z)}catch(z){console.error(`[claude-mem new-hook error: ${z.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)} diff --git a/scripts/hooks/save-hook.js b/scripts/hooks/save-hook.js new file mode 100755 index 00000000..6e222add --- /dev/null +++ b/scripts/hooks/save-hook.js @@ -0,0 +1,43 @@ +#!/usr/bin/env bun +// @bun +import b from"net";import{Database as O}from"bun:sqlite";import{join as Y,dirname as w,basename as C}from"path";import{homedir as F}from"os";import{existsSync as S,mkdirSync as H}from"fs";var $=process.env.CLAUDE_MEM_DATA_DIR||Y(F(),".claude-mem"),J=process.env.CLAUDE_CONFIG_DIR||Y(F(),".claude"),h=Y($,"archives"),l=Y($,"logs"),R=Y($,"trash"),j=Y($,"backups"),A=Y($,"chroma"),I=Y($,"settings.json"),G=Y($,"claude-mem.db"),_=Y(J,"settings.json"),p=Y(J,"commands"),d=Y(J,"CLAUDE.md");function v(z){return Y($,`worker-${z}.sock`)}function x(z){H(z,{recursive:!0})}class M{db;constructor(){x($),this.db=new O(G,{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(z,X=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(z,X)}findActiveSDKSession(z){return this.db.query(` + SELECT id, sdk_session_id, project + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(z)||null}createSDKSession(z,X,Q){let Z=new Date,W=Z.getTime();return this.db.query(` + INSERT INTO sdk_sessions + (claude_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(z,X,Q,Z.toISOString(),W),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(z,X){this.db.query(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? + `).run(X,z)}storeObservation(z,X,Q,Z){let W=new Date,B=W.getTime();this.db.query(` + INSERT INTO observations + (sdk_session_id, project, text, type, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?) + `).run(z,X,Z,Q,W.toISOString(),B)}storeSummary(z,X,Q){let Z=new Date,W=Z.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(z,X,Q.request||null,Q.investigated||null,Q.learned||null,Q.completed||null,Q.next_steps||null,Q.files_read||null,Q.files_edited||null,Q.notes||null,Z.toISOString(),W)}markSessionCompleted(z){let X=new Date,Q=X.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(X.toISOString(),Q,z)}markSessionFailed(z){let X=new Date,Q=X.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(X.toISOString(),Q,z)}close(){this.db.close()}}var E=new Set(["TodoWrite","ListMcpResourcesTool"]);function N(z){try{if(!z)console.log("No input provided - this script is designed to run as a Claude Code PostToolUse hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string",tool_name:"string",tool_input:{},tool_output:{}},null,2)),process.exit(0);let{session_id:X,tool_name:Q,tool_input:Z,tool_output:W}=z;if(E.has(Q))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=new M,K=B.findActiveSDKSession(X);if(B.close(),!K)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let q=v(K.id),U={type:"observation",tool_name:Q,tool_input:JSON.stringify(Z),tool_output:JSON.stringify(W)},V=b.connect(q,()=>{V.write(JSON.stringify(U)+` +`),V.end()});V.on("error",(f)=>{console.error(`[claude-mem save] Socket error: ${f.message}`)}),V.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(X){console.error(`[claude-mem save error: ${X.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var L=await Bun.stdin.text();try{let z=L.trim()?JSON.parse(L):void 0;N(z)}catch(z){console.error(`[claude-mem save-hook error: ${z.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)} diff --git a/scripts/hooks/summary-hook.js b/scripts/hooks/summary-hook.js new file mode 100755 index 00000000..90e8fcb3 --- /dev/null +++ b/scripts/hooks/summary-hook.js @@ -0,0 +1,43 @@ +#!/usr/bin/env bun +// @bun +import U from"net";import{Database as O}from"bun:sqlite";import{join as Y,dirname as b,basename as E}from"path";import{homedir as M}from"os";import{existsSync as C,mkdirSync as N}from"fs";var $=process.env.CLAUDE_MEM_DATA_DIR||Y(M(),".claude-mem"),V=process.env.CLAUDE_CONFIG_DIR||Y(M(),".claude"),P=Y($,"archives"),k=Y($,"logs"),l=Y($,"trash"),S=Y($,"backups"),y=Y($,"chroma"),h=Y($,"settings.json"),q=Y($,"claude-mem.db"),R=Y(V,"settings.json"),j=Y(V,"commands"),A=Y(V,"CLAUDE.md");function F(z){return Y($,`worker-${z}.sock`)}function G(z){N(z,{recursive:!0})}class v{db;constructor(){G($),this.db=new O(q,{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(z,X=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(z,X)}findActiveSDKSession(z){return this.db.query(` + SELECT id, sdk_session_id, project + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(z)||null}createSDKSession(z,X,Q){let Z=new Date,K=Z.getTime();return this.db.query(` + INSERT INTO sdk_sessions + (claude_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(z,X,Q,Z.toISOString(),K),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(z,X){this.db.query(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? + `).run(X,z)}storeObservation(z,X,Q,Z){let K=new Date,B=K.getTime();this.db.query(` + INSERT INTO observations + (sdk_session_id, project, text, type, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?) + `).run(z,X,Z,Q,K.toISOString(),B)}storeSummary(z,X,Q){let Z=new Date,K=Z.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(z,X,Q.request||null,Q.investigated||null,Q.learned||null,Q.completed||null,Q.next_steps||null,Q.files_read||null,Q.files_edited||null,Q.notes||null,Z.toISOString(),K)}markSessionCompleted(z){let X=new Date,Q=X.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(X.toISOString(),Q,z)}markSessionFailed(z){let X=new Date,Q=X.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(X.toISOString(),Q,z)}close(){this.db.close()}}function x(z){try{if(!z)console.log("No input provided - this script is designed to run as a Claude Code Stop hook"),console.log(` +Expected input format:`),console.log(JSON.stringify({session_id:"string",cwd:"string"},null,2)),process.exit(0);let{session_id:X}=z,Q=new v,Z=Q.findActiveSDKSession(X);if(Q.close(),!Z)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let K=F(Z.id),B={type:"finalize"},W=U.connect(K,()=>{W.write(JSON.stringify(B)+` +`),W.end()});W.on("error",(J)=>{console.error(`[claude-mem summary] Socket error: ${J.message}`)}),W.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(X){console.error(`[claude-mem summary error: ${X.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var L=await Bun.stdin.text();try{let z=L.trim()?JSON.parse(L):void 0;x(z)}catch(z){console.error(`[claude-mem summary-hook error: ${z.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)} diff --git a/scripts/hooks/worker.js b/scripts/hooks/worker.js new file mode 100755 index 00000000..42d82b54 --- /dev/null +++ b/scripts/hooks/worker.js @@ -0,0 +1,193 @@ +#!/usr/bin/env bun +// @bun +import AJ from"net";import{unlinkSync as gW,existsSync as kW}from"fs";import{join as C8}from"path";import{fileURLToPath as p6}from"url";import{setMaxListeners as d6}from"events";import{spawn as n6}from"child_process";import{createInterface as c6}from"readline";import*as W0 from"fs";import{stat as i6,open as kJ}from"fs/promises";import{join as $X}from"path";import{homedir as mX}from"os";import{dirname as n9,join as s8}from"path";import{cwd as v8}from"process";import{randomUUID as pX}from"crypto";var{create:X6,getPrototypeOf:Y6,defineProperty:u9,getOwnPropertyNames:J6}=Object,z6=Object.prototype.hasOwnProperty,G6=(Q,Y,J)=>{J=Q!=null?X6(Y6(Q)):{};let W=Y||!Q||!Q.__esModule?u9(J,"default",{value:Q,enumerable:!0}):J;for(let z of J6(Q))if(!z6.call(W,z))u9(W,z,{get:()=>Q[z],enumerable:!0});return W},Y0=(Q,Y)=>()=>(Y||Q((Y={exports:{}}).exports,Y),Y.exports),B6=(Q,Y)=>{for(var J in Y)u9(Q,J,{get:Y[J],enumerable:!0,configurable:!0,set:(W)=>Y[J]=()=>W})},F6=Y0((Q,Y)=>{(function(J,W){typeof Q==="object"&&typeof Y!=="undefined"?W(Q):typeof define==="function"&&define.amd?define(["exports"],W):W(J.URI=J.URI||{})})(Q,function(J){function W(){for(var N=arguments.length,q=Array(N),A=0;A1){q[0]=q[0].slice(0,-1);var E=q.length-1;for(var v=1;v= 0x80 (not a basic code point)","invalid-input":"Invalid input"},k=U-M,R=Math.floor,T=String.fromCharCode;function f(N){throw new RangeError(b[N])}function $(N,q){var A=[],E=N.length;while(E--)A[E]=q(N[E]);return A}function p(N,q){var A=N.split("@"),E="";if(A.length>1)E=A[0]+"@",N=A[1];N=N.replace(x,".");var v=N.split("."),c=$(v,q).join(".");return E+c}function d(N){var q=[],A=0,E=N.length;while(A=55296&&v<=56319&&A>1,q+=R(q/A);for(;q>k*V>>1;v+=U)q=R(q/k);return R(v+(k+1)*q/(q+L))},z0=function N(q){var A=[],E=q.length,v=0,c=S,H0=y,N0=q.lastIndexOf(I);if(N0<0)N0=0;for(var A0=0;A0=128)f("not-basic");A.push(q.charCodeAt(A0))}for(var b0=N0>0?N0+1:0;b0=E)f("invalid-input");var I0=s(q.charCodeAt(b0++));if(I0>=U||I0>R((Z-v)/P0))f("overflow");v+=I0*P0;var j0=S0<=H0?M:S0>=H0+V?V:S0-H0;if(I0R(Z/_0))f("overflow");P0*=_0}var V0=A.length+1;if(H0=a(v-K0,V0,K0==0),R(v/V0)>Z-c)f("overflow");c+=R(v/V0),v%=V0,A.splice(v++,0,c)}return String.fromCodePoint.apply(String,A)},g0=function N(q){var A=[];q=d(q);var E=q.length,v=S,c=0,H0=y,N0=!0,A0=!1,b0=void 0;try{for(var K0=q[Symbol.iterator](),P0;!(N0=(P0=K0.next()).done);N0=!0){var S0=P0.value;if(S0<128)A.push(T(S0))}}catch(D1){A0=!0,b0=D1}finally{try{if(!N0&&K0.return)K0.return()}finally{if(A0)throw b0}}var I0=A.length,j0=I0;if(I0)A.push(I);while(j0=v&&d0<_0)_0=d0}}catch(D1){w1=!0,p0=D1}finally{try{if(!V0&&i0.return)i0.return()}finally{if(w1)throw p0}}var o0=j0+1;if(_0-v>R((Z-c)/o0))f("overflow");c+=(_0-v)*o0,v=_0;var J1=!0,R1=!1,H1=void 0;try{for(var z9=q[Symbol.iterator](),D9;!(J1=(D9=z9.next()).done);J1=!0){var I9=D9.value;if(I9Z)f("overflow");if(I9==v){var b1=c;for(var S1=U;;S1+=U){var U1=S1<=H0?M:S1>=H0+V?V:S1-H0;if(b1>6|192).toString(16).toUpperCase()+"%"+(q&63|128).toString(16).toUpperCase();else A="%"+(q>>12|224).toString(16).toUpperCase()+"%"+(q>>6&63|128).toString(16).toUpperCase()+"%"+(q&63|128).toString(16).toUpperCase();return A}function h(N){var q="",A=0,E=N.length;while(A=194&&v<224){if(E-A>=6){var c=parseInt(N.substr(A+4,2),16);q+=String.fromCharCode((v&31)<<6|c&63)}else q+=N.substr(A,6);A+=6}else if(v>=224){if(E-A>=9){var H0=parseInt(N.substr(A+4,2),16),N0=parseInt(N.substr(A+7,2),16);q+=String.fromCharCode((v&15)<<12|(H0&63)<<6|N0&63)}else q+=N.substr(A,9);A+=9}else q+=N.substr(A,3),A+=3}return q}function o(N,q){function A(E){var v=h(E);return!v.match(q.UNRESERVED)?E:v}if(N.scheme)N.scheme=String(N.scheme).replace(q.PCT_ENCODED,A).toLowerCase().replace(q.NOT_SCHEME,"");if(N.userinfo!==void 0)N.userinfo=String(N.userinfo).replace(q.PCT_ENCODED,A).replace(q.NOT_USERINFO,C).replace(q.PCT_ENCODED,X);if(N.host!==void 0)N.host=String(N.host).replace(q.PCT_ENCODED,A).toLowerCase().replace(q.NOT_HOST,C).replace(q.PCT_ENCODED,X);if(N.path!==void 0)N.path=String(N.path).replace(q.PCT_ENCODED,A).replace(N.scheme?q.NOT_PATH:q.NOT_PATH_NOSCHEME,C).replace(q.PCT_ENCODED,X);if(N.query!==void 0)N.query=String(N.query).replace(q.PCT_ENCODED,A).replace(q.NOT_QUERY,C).replace(q.PCT_ENCODED,X);if(N.fragment!==void 0)N.fragment=String(N.fragment).replace(q.PCT_ENCODED,A).replace(q.NOT_FRAGMENT,C).replace(q.PCT_ENCODED,X);return N}function G0(N){return N.replace(/^0*(.*)/,"$1")||"0"}function m(N,q){var A=N.match(q.IPV4ADDRESS)||[],E=P(A,2),v=E[1];if(v)return v.split(".").map(G0).join(".");else return N}function u(N,q){var A=N.match(q.IPV6ADDRESS)||[],E=P(A,3),v=E[1],c=E[2];if(v){var H0=v.toLowerCase().split("::").reverse(),N0=P(H0,2),A0=N0[0],b0=N0[1],K0=b0?b0.split(":").map(G0):[],P0=A0.split(":").map(G0),S0=q.IPV4ADDRESS.test(P0[P0.length-1]),I0=S0?7:8,j0=P0.length-I0,_0=Array(I0);for(var V0=0;V01){var O0=_0.slice(0,p0.index),d0=_0.slice(p0.index+p0.length);i0=O0.join(":")+"::"+d0.join(":")}else i0=_0.join(":");if(c)i0+="%"+c;return i0}else return N}var U0=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,q0="".match(/(){0}/)[1]===void 0;function Q0(N){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A={},E=q.iri!==!1?w:O;if(q.reference==="suffix")N=(q.scheme?q.scheme+":":"")+"//"+N;var v=N.match(U0);if(v){if(q0){if(A.scheme=v[1],A.userinfo=v[3],A.host=v[4],A.port=parseInt(v[5],10),A.path=v[6]||"",A.query=v[7],A.fragment=v[8],isNaN(A.port))A.port=v[5]}else if(A.scheme=v[1]||void 0,A.userinfo=N.indexOf("@")!==-1?v[3]:void 0,A.host=N.indexOf("//")!==-1?v[4]:void 0,A.port=parseInt(v[5],10),A.path=v[6]||"",A.query=N.indexOf("?")!==-1?v[7]:void 0,A.fragment=N.indexOf("#")!==-1?v[8]:void 0,isNaN(A.port))A.port=N.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?v[4]:void 0;if(A.host)A.host=u(m(A.host,E),E);if(A.scheme===void 0&&A.userinfo===void 0&&A.host===void 0&&A.port===void 0&&!A.path&&A.query===void 0)A.reference="same-document";else if(A.scheme===void 0)A.reference="relative";else if(A.fragment===void 0)A.reference="absolute";else A.reference="uri";if(q.reference&&q.reference!=="suffix"&&q.reference!==A.reference)A.error=A.error||"URI is not a "+q.reference+" reference.";var c=C0[(q.scheme||A.scheme||"").toLowerCase()];if(!q.unicodeSupport&&(!c||!c.unicodeSupport)){if(A.host&&(q.domainHost||c&&c.domainHost))try{A.host=Z0.toASCII(A.host.replace(E.PCT_ENCODED,h).toLowerCase())}catch(H0){A.error=A.error||"Host's domain name can not be converted to ASCII via punycode: "+H0}o(A,O)}else o(A,E);if(c&&c.parse)c.parse(A,q)}else A.error=A.error||"URI can not be parsed.";return A}function w0(N,q){var A=q.iri!==!1?w:O,E=[];if(N.userinfo!==void 0)E.push(N.userinfo),E.push("@");if(N.host!==void 0)E.push(u(m(String(N.host),A),A).replace(A.IPV6ADDRESS,function(v,c,H0){return"["+c+(H0?"%25"+H0:"")+"]"}));if(typeof N.port==="number"||typeof N.port==="string")E.push(":"),E.push(String(N.port));return E.length?E.join(""):void 0}var R0=/^\.\.?\//,L0=/^\/\.(\/|$)/,x0=/^\/\.\.(\/|$)/,E0=/^\/?(?:.|\n)*?(?=\/|$)/;function h0(N){var q=[];while(N.length)if(N.match(R0))N=N.replace(R0,"");else if(N.match(L0))N=N.replace(L0,"/");else if(N.match(x0))N=N.replace(x0,"/"),q.pop();else if(N==="."||N==="..")N="";else{var A=N.match(E0);if(A){var E=A[0];N=N.slice(E.length),q.push(E)}else throw new Error("Unexpected dot segment condition")}return q.join("")}function D0(N){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},A=q.iri?w:O,E=[],v=C0[(q.scheme||N.scheme||"").toLowerCase()];if(v&&v.serialize)v.serialize(N,q);if(N.host){if(A.IPV6ADDRESS.test(N.host));else if(q.domainHost||v&&v.domainHost)try{N.host=!q.iri?Z0.toASCII(N.host.replace(A.PCT_ENCODED,h).toLowerCase()):Z0.toUnicode(N.host)}catch(N0){N.error=N.error||"Host's domain name can not be converted to "+(!q.iri?"ASCII":"Unicode")+" via punycode: "+N0}}if(o(N,A),q.reference!=="suffix"&&N.scheme)E.push(N.scheme),E.push(":");var c=w0(N,q);if(c!==void 0){if(q.reference!=="suffix")E.push("//");if(E.push(c),N.path&&N.path.charAt(0)!=="/")E.push("/")}if(N.path!==void 0){var H0=N.path;if(!q.absolutePath&&(!v||!v.absolutePath))H0=h0(H0);if(c===void 0)H0=H0.replace(/^\/\//,"/%2F");E.push(H0)}if(N.query!==void 0)E.push("?"),E.push(N.query);if(N.fragment!==void 0)E.push("#"),E.push(N.fragment);return E.join("")}function v0(N,q){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},E=arguments[3],v={};if(!E)N=Q0(D0(N,A),A),q=Q0(D0(q,A),A);if(A=A||{},!A.tolerant&&q.scheme)v.scheme=q.scheme,v.userinfo=q.userinfo,v.host=q.host,v.port=q.port,v.path=h0(q.path||""),v.query=q.query;else{if(q.userinfo!==void 0||q.host!==void 0||q.port!==void 0)v.userinfo=q.userinfo,v.host=q.host,v.port=q.port,v.path=h0(q.path||""),v.query=q.query;else{if(!q.path)if(v.path=N.path,q.query!==void 0)v.query=q.query;else v.query=N.query;else{if(q.path.charAt(0)==="/")v.path=h0(q.path);else{if((N.userinfo!==void 0||N.host!==void 0||N.port!==void 0)&&!N.path)v.path="/"+q.path;else if(!N.path)v.path=q.path;else v.path=N.path.slice(0,N.path.lastIndexOf("/")+1)+q.path;v.path=h0(v.path)}v.query=q.query}v.userinfo=N.userinfo,v.host=N.host,v.port=N.port}v.scheme=N.scheme}return v.fragment=q.fragment,v}function c0(N,q,A){var E=K({scheme:"null"},A);return D0(v0(Q0(N,E),Q0(q,E),E,!0),E)}function l0(N,q){if(typeof N==="string")N=D0(Q0(N,q),q);else if(H(N)==="object")N=Q0(D0(N,q),q);return N}function R9(N,q,A){if(typeof N==="string")N=D0(Q0(N,A),A);else if(H(N)==="object")N=D0(N,A);if(typeof q==="string")q=D0(Q0(q,A),A);else if(H(q)==="object")q=D0(q,A);return N===q}function h9(N,q){return N&&N.toString().replace(!q||!q.iri?O.ESCAPE:w.ESCAPE,C)}function t0(N,q){return N&&N.toString().replace(!q||!q.iri?O.PCT_ENCODED:w.PCT_ENCODED,h)}var Y9={scheme:"http",domainHost:!0,parse:function N(q,A){if(!q.host)q.error=q.error||"HTTP URIs must have a host.";return q},serialize:function N(q,A){var E=String(q.scheme).toLowerCase()==="https";if(q.port===(E?443:80)||q.port==="")q.port=void 0;if(!q.path)q.path="/";return q}},H8={scheme:"https",domainHost:Y9.domainHost,parse:Y9.parse,serialize:Y9.serialize};function U8(N){return typeof N.secure==="boolean"?N.secure:String(N.scheme).toLowerCase()==="wss"}var J9={scheme:"ws",domainHost:!0,parse:function N(q,A){var E=q;return E.secure=U8(E),E.resourceName=(E.path||"/")+(E.query?"?"+E.query:""),E.path=void 0,E.query=void 0,E},serialize:function N(q,A){if(q.port===(U8(q)?443:80)||q.port==="")q.port=void 0;if(typeof q.secure==="boolean")q.scheme=q.secure?"wss":"ws",q.secure=void 0;if(q.resourceName){var E=q.resourceName.split("?"),v=P(E,2),c=v[0],H0=v[1];q.path=c&&c!=="/"?c:void 0,q.query=H0,q.resourceName=void 0}return q.fragment=void 0,q}},q8={scheme:"wss",domainHost:J9.domainHost,parse:J9.parse,serialize:J9.serialize},fW={},hW=!0,K8="[A-Za-z0-9\\-\\.\\_\\~"+(hW?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Y1="[0-9A-Fa-f]",$W=z(z("%[EFef]"+Y1+"%"+Y1+Y1+"%"+Y1+Y1)+"|"+z("%[89A-Fa-f]"+Y1+"%"+Y1+Y1)+"|"+z("%"+Y1+Y1)),mW="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",lW="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",pW=W(lW,"[\\\"\\\\]"),dW="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",uW=new RegExp(K8,"g"),E1=new RegExp($W,"g"),nW=new RegExp(W("[^]",mW,"[\\.]","[\\\"]",pW),"g"),M8=new RegExp(W("[^]",K8,dW),"g"),cW=M8;function $9(N){var q=h(N);return!q.match(uW)?N:q}var N8={scheme:"mailto",parse:function N(q,A){var E=q,v=E.to=E.path?E.path.split(","):[];if(E.path=void 0,E.query){var c=!1,H0={},N0=E.query.split("&");for(var A0=0,b0=N0.length;A0{Y.exports=function J(W,z){if(W===z)return!0;if(W&&z&&typeof W=="object"&&typeof z=="object"){if(W.constructor!==z.constructor)return!1;var H,X,B;if(Array.isArray(W)){if(H=W.length,H!=z.length)return!1;for(X=H;X--!==0;)if(!J(W[X],z[X]))return!1;return!0}if(W.constructor===RegExp)return W.source===z.source&&W.flags===z.flags;if(W.valueOf!==Object.prototype.valueOf)return W.valueOf()===z.valueOf();if(W.toString!==Object.prototype.toString)return W.toString()===z.toString();if(B=Object.keys(W),H=B.length,H!==Object.keys(z).length)return!1;for(X=H;X--!==0;)if(!Object.prototype.hasOwnProperty.call(z,B[X]))return!1;for(X=H;X--!==0;){var K=B[X];if(!J(W[K],z[K]))return!1}return!0}return W!==W&&z!==z}}),H6=Y0((Q,Y)=>{Y.exports=function J(W){var z=0,H=W.length,X=0,B;while(X=55296&&B<=56319&&X{Y.exports={copy:J,checkDataType:W,checkDataTypes:z,coerceToTypes:X,toHash:B,getProperty:O,escapeQuotes:w,equal:t9(),ucs2length:H6(),varOccurences:P,varReplace:j,schemaHasRules:Z,schemaHasRulesExcept:U,schemaUnknownRules:M,toQuotedString:V,getPathExpr:L,getPath:D,getData:I,unescapeFragment:g,unescapeJsonPointer:k,escapeFragment:x,escapeJsonPointer:b};function J(R,T){T=T||{};for(var f in R)T[f]=R[f];return T}function W(R,T,f,$){var p=$?" !== ":" === ",d=$?" || ":" && ",X0=$?"!":"",s=$?"":"!";switch(R){case"null":return T+p+"null";case"array":return X0+"Array.isArray("+T+")";case"object":return"("+X0+T+d+"typeof "+T+p+'"object"'+d+s+"Array.isArray("+T+"))";case"integer":return"(typeof "+T+p+'"number"'+d+s+"("+T+" % 1)"+d+T+p+T+(f?d+X0+"isFinite("+T+")":"")+")";case"number":return"(typeof "+T+p+'"'+R+'"'+(f?d+X0+"isFinite("+T+")":"")+")";default:return"typeof "+T+p+'"'+R+'"'}}function z(R,T,f){switch(R.length){case 1:return W(R[0],T,f,!0);default:var $="",p=B(R);if(p.array&&p.object)$=p.null?"(":"(!"+T+" || ",$+="typeof "+T+' !== "object")',delete p.null,delete p.array,delete p.object;if(p.number)delete p.integer;for(var d in p)$+=($?" && ":"")+W(d,T,f,!0);return $}}var H=B(["string","number","integer","boolean","null"]);function X(R,T){if(Array.isArray(T)){var f=[];for(var $=0;$=T)throw new Error("Cannot access property/index "+$+" levels up, current level is "+T);return f[T-$]}if($>T)throw new Error("Cannot access data "+$+" levels up, current level is "+T);if(d="data"+(T-$||""),!p)return d}var s=d,J0=p.split("/");for(var a=0;a{var J=t1();Y.exports=W;function W(z){J.copy(z,this)}}),U6=Y0((Q,Y)=>{var J=Y.exports=function(H,X,B){if(typeof X=="function")B=X,X={};B=X.cb||B;var K=typeof B=="function"?B:B.pre||function(){},F=B.post||function(){};W(X,K,F,H,"",H)};J.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},J.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},J.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},J.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function W(H,X,B,K,F,O,w,P,j,Z){if(K&&typeof K=="object"&&!Array.isArray(K)){X(K,F,O,w,P,j,Z);for(var U in K){var M=K[U];if(Array.isArray(M)){if(U in J.arrayKeywords)for(var V=0;V{var J=F6(),W=t9(),z=t1(),H=f8(),X=U6();Y.exports=B,B.normalizeId=D,B.fullPath=M,B.url=y,B.ids=S,B.inlineRef=j,B.schema=K;function B(I,_,g){var x=this._refs[g];if(typeof x=="string")if(this._refs[x])x=this._refs[x];else return B.call(this,I,_,x);if(x=x||this._schemas[g],x instanceof H)return j(x.schema,this._opts.inlineRefs)?x.schema:x.validate||this._compile(x);var b=K.call(this,_,g),k,R,T;if(b)k=b.schema,_=b.root,T=b.baseId;if(k instanceof H)R=k.validate||I.call(this,k.schema,_,void 0,T);else if(k!==void 0)R=j(k,this._opts.inlineRefs)?k:I.call(this,k,_,void 0,T);return R}function K(I,_){var g=J.parse(_),x=V(g),b=M(this._getId(I.schema));if(Object.keys(I.schema).length===0||x!==b){var k=D(x),R=this._refs[k];if(typeof R=="string")return F.call(this,I,R,g);else if(R instanceof H){if(!R.validate)this._compile(R);I=R}else if(R=this._schemas[k],R instanceof H){if(!R.validate)this._compile(R);if(k==D(_))return{schema:R,root:I,baseId:b};I=R}else return;if(!I.schema)return;b=M(this._getId(I.schema))}return w.call(this,g,b,I.schema,I)}function F(I,_,g){var x=K.call(this,I,_);if(x){var{schema:b,baseId:k}=x;I=x.root;var R=this._getId(b);if(R)k=y(k,R);return w.call(this,g,k,b,I)}}var O=z.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function w(I,_,g,x){if(I.fragment=I.fragment||"",I.fragment.slice(0,1)!="/")return;var b=I.fragment.split("/");for(var k=1;k{var J=e9();Y.exports={Validation:H(W),MissingRef:H(z)};function W(X){this.message="validation failed",this.errors=X,this.ajv=this.validation=!0}z.message=function(X,B){return"can't resolve reference "+B+" from id "+X};function z(X,B,K){this.message=K||z.message(X,B),this.missingRef=J.url(X,B),this.missingSchema=J.normalizeId(J.fullPath(this.missingRef))}function H(X){return X.prototype=Object.create(Error.prototype),X.prototype.constructor=X,X}}),h8=Y0((Q,Y)=>{Y.exports=function(J,W){if(!W)W={};if(typeof W==="function")W={cmp:W};var z=typeof W.cycles==="boolean"?W.cycles:!1,H=W.cmp&&function(B){return function(K){return function(F,O){var w={key:F,value:K[F]},P={key:O,value:K[O]};return B(w,P)}}}(W.cmp),X=[];return function B(K){if(K&&K.toJSON&&typeof K.toJSON==="function")K=K.toJSON();if(K===void 0)return;if(typeof K=="number")return isFinite(K)?""+K:"null";if(typeof K!=="object")return JSON.stringify(K);var F,O;if(Array.isArray(K)){O="[";for(F=0;F{Y.exports=function J(W,z,H){var X="",B=W.schema.$async===!0,K=W.util.schemaHasRulesExcept(W.schema,W.RULES.all,"$ref"),F=W.self._getId(W.schema);if(W.opts.strictKeywords){var O=W.util.schemaUnknownRules(W.schema,W.RULES.keywords);if(O){var w="unknown keyword: "+O;if(W.opts.strictKeywords==="log")W.logger.warn(w);else throw new Error(w)}}if(W.isTop){if(X+=" var validate = ",B)W.async=!0,X+="async ";if(X+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",F&&(W.opts.sourceCode||W.opts.processCode))X+=" "+("/*# sourceURL="+F+" */")+" "}if(typeof W.schema=="boolean"||!(K||W.schema.$ref)){var z="false schema",P=W.level,j=W.dataLevel,Z=W.schema[z],U=W.schemaPath+W.util.getProperty(z),M=W.errSchemaPath+"/"+z,_=!W.opts.allErrors,b,V="data"+(j||""),I="valid"+P;if(W.schema===!1){if(W.isTop)_=!0;else X+=" var "+I+" = false; ";var L=L||[];if(L.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(b||"false schema")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(M)+" , params: {} ",W.opts.messages!==!1)X+=" , message: 'boolean schema is false' ";if(W.opts.verbose)X+=" , schema: false , parentSchema: validate.schema"+W.schemaPath+" , data: "+V+" ";X+=" } "}else X+=" {} ";var D=X;if(X=L.pop(),!W.compositeRule&&_)if(W.async)X+=" throw new ValidationError(["+D+"]); ";else X+=" validate.errors = ["+D+"]; return false; ";else X+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else if(W.isTop)if(B)X+=" return data; ";else X+=" validate.errors = null; return true; ";else X+=" var "+I+" = true; ";if(W.isTop)X+=" }; return validate; ";return X}if(W.isTop){var y=W.isTop,P=W.level=0,j=W.dataLevel=0,V="data";if(W.rootId=W.resolve.fullPath(W.self._getId(W.root.schema)),W.baseId=W.baseId||W.rootId,delete W.isTop,W.dataPathArr=[""],W.schema.default!==void 0&&W.opts.useDefaults&&W.opts.strictDefaults){var S="default is ignored in the schema root";if(W.opts.strictDefaults==="log")W.logger.warn(S);else throw new Error(S)}X+=" var vErrors = null; ",X+=" var errors = 0; ",X+=" if (rootData === undefined) rootData = data; "}else{var{level:P,dataLevel:j}=W,V="data"+(j||"");if(F)W.baseId=W.resolve.url(W.baseId,F);if(B&&!W.async)throw new Error("async schema in sync schema");X+=" var errs_"+P+" = errors;"}var I="valid"+P,_=!W.opts.allErrors,g="",x="",b,k=W.schema.type,R=Array.isArray(k);if(k&&W.opts.nullable&&W.schema.nullable===!0){if(R){if(k.indexOf("null")==-1)k=k.concat("null")}else if(k!="null")k=[k,"null"],R=!0}if(R&&k.length==1)k=k[0],R=!1;if(W.schema.$ref&&K){if(W.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+W.errSchemaPath+'" (see option extendRefs)');else if(W.opts.extendRefs!==!0)K=!1,W.logger.warn('$ref: keywords ignored in schema at path "'+W.errSchemaPath+'"')}if(W.schema.$comment&&W.opts.$comment)X+=" "+W.RULES.all.$comment.code(W,"$comment");if(k){if(W.opts.coerceTypes)var T=W.util.coerceToTypes(W.opts.coerceTypes,k);var f=W.RULES.types[k];if(T||R||f===!0||f&&!E0(f)){var U=W.schemaPath+".type",M=W.errSchemaPath+"/type",U=W.schemaPath+".type",M=W.errSchemaPath+"/type",$=R?"checkDataTypes":"checkDataType";if(X+=" if ("+W.util[$](k,V,W.opts.strictNumbers,!0)+") { ",T){var p="dataType"+P,d="coerced"+P;if(X+=" var "+p+" = typeof "+V+"; var "+d+" = undefined; ",W.opts.coerceTypes=="array")X+=" if ("+p+" == 'object' && Array.isArray("+V+") && "+V+".length == 1) { "+V+" = "+V+"[0]; "+p+" = typeof "+V+"; if ("+W.util.checkDataType(W.schema.type,V,W.opts.strictNumbers)+") "+d+" = "+V+"; } ";X+=" if ("+d+" !== undefined) ; ";var X0=T;if(X0){var s,J0=-1,a=X0.length-1;while(J0{var J=e9(),W=t1(),z=W8(),H=h8(),X=$8(),B=W.ucs2length,K=t9(),F=z.Validation;Y.exports=O;function O(D,y,S,I){var _=this,g=this._opts,x=[void 0],b={},k=[],R={},T=[],f={},$=[];y=y||{schema:D,refVal:x,refs:b};var p=w.call(this,D,y,I),d=this._compilations[p.index];if(p.compiling)return d.callValidate=z0;var X0=this._formats,s=this.RULES;try{var J0=g0(D,y,S,I);d.validate=J0;var a=d.callValidate;if(a){if(a.schema=J0.schema,a.errors=null,a.refs=J0.refs,a.refVal=J0.refVal,a.root=J0.root,a.$async=J0.$async,g.sourceCode)a.source=J0.source}return J0}finally{P.call(this,D,y,I)}function z0(){var m=d.validate,u=m.apply(this,arguments);return z0.errors=m.errors,u}function g0(m,u,U0,q0){var Q0=!u||u&&u.schema==m;if(u.schema!=y.schema)return O.call(_,m,u,U0,q0);var w0=m.$async===!0,R0=X({isTop:!0,schema:m,isRoot:Q0,baseId:q0,root:u,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:z.MissingRef,RULES:s,validate:X,util:W,resolve:J,resolveRef:y0,usePattern:h,useDefault:o,useCustomRule:G0,opts:g,formats:X0,logger:_.logger,self:_});if(R0=L(x,M)+L(k,Z)+L(T,U)+L($,V)+R0,g.processCode)R0=g.processCode(R0,m);var L0;try{var x0=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",R0);L0=x0(_,s,X0,y,x,T,$,K,B,F),x[0]=L0}catch(E0){throw _.logger.error("Error compiling schema, function code:",R0),E0}if(L0.schema=m,L0.errors=null,L0.refs=b,L0.refVal=x,L0.root=Q0?L0:u,w0)L0.$async=!0;if(g.sourceCode===!0)L0.source={code:R0,patterns:k,defaults:T};return L0}function y0(m,u,U0){u=J.url(m,u);var q0=b[u],Q0,w0;if(q0!==void 0)return Q0=x[q0],w0="refVal["+q0+"]",C(Q0,w0);if(!U0&&y.refs){var R0=y.refs[u];if(R0!==void 0)return Q0=y.refVal[R0],w0=k0(u,Q0),C(Q0,w0)}w0=k0(u);var L0=J.call(_,g0,y,u);if(L0===void 0){var x0=S&&S[u];if(x0)L0=J.inlineRef(x0,g.inlineRefs)?x0:O.call(_,x0,y,S,m)}if(L0===void 0)Z0(u);else return C0(u,L0),C(L0,w0)}function k0(m,u){var U0=x.length;return x[U0]=u,b[m]=U0,"refVal"+U0}function Z0(m){delete b[m]}function C0(m,u){var U0=b[m];x[U0]=u}function C(m,u){return typeof m=="object"||typeof m=="boolean"?{code:u,schema:m,inline:!0}:{code:u,$async:m&&!!m.$async}}function h(m){var u=R[m];if(u===void 0)u=R[m]=k.length,k[u]=m;return"pattern"+u}function o(m){switch(typeof m){case"boolean":case"number":return""+m;case"string":return W.toQuotedString(m);case"object":if(m===null)return"null";var u=H(m),U0=f[u];if(U0===void 0)U0=f[u]=T.length,T[U0]=m;return"default"+U0}}function G0(m,u,U0,q0){if(_._opts.validateSchema!==!1){var Q0=m.definition.dependencies;if(Q0&&!Q0.every(function(c0){return Object.prototype.hasOwnProperty.call(U0,c0)}))throw new Error("parent schema must have all required keywords: "+Q0.join(","));var w0=m.definition.validateSchema;if(w0){var R0=w0(u);if(!R0){var L0="keyword schema is invalid: "+_.errorsText(w0.errors);if(_._opts.validateSchema=="log")_.logger.error(L0);else throw new Error(L0)}}}var x0=m.definition.compile,E0=m.definition.inline,h0=m.definition.macro,D0;if(x0)D0=x0.call(_,u,U0,q0);else if(h0){if(D0=h0.call(_,u,U0,q0),g.validateSchema!==!1)_.validateSchema(D0,!0)}else if(E0)D0=E0.call(_,q0,m.keyword,u,U0);else if(D0=m.definition.validate,!D0)return;if(D0===void 0)throw new Error('custom keyword "'+m.keyword+'"failed to compile');var v0=$.length;return $[v0]=D0,{code:"customRule"+v0,validate:D0}}}function w(D,y,S){var I=j.call(this,D,y,S);if(I>=0)return{index:I,compiling:!0};return I=this._compilations.length,this._compilations[I]={schema:D,root:y,baseId:S},{index:I,compiling:!1}}function P(D,y,S){var I=j.call(this,D,y,S);if(I>=0)this._compilations.splice(I,1)}function j(D,y,S){for(var I=0;I{var J=Y.exports=function W(){this._cache={}};J.prototype.put=function W(z,H){this._cache[z]=H},J.prototype.get=function W(z){return this._cache[z]},J.prototype.del=function W(z){delete this._cache[z]},J.prototype.clear=function W(){this._cache={}}}),M6=Y0((Q,Y)=>{var J=t1(),W=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,z=[0,31,28,31,30,31,30,31,31,30,31,30,31],H=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,X=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,B=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,K=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,F=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,O=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,P=/^(?:\/(?:[^~/]|~0|~1)*)*$/,j=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Z=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;Y.exports=U;function U(x){return x=x=="full"?"full":"fast",J.copy(U[x])}U.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":F,url:O,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:X,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:g,uuid:w,"json-pointer":P,"json-pointer-uri-fragment":j,"relative-json-pointer":Z},U.full={date:V,time:L,"date-time":y,uri:I,"uri-reference":K,"uri-template":F,url:O,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:X,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:g,uuid:w,"json-pointer":P,"json-pointer-uri-fragment":j,"relative-json-pointer":Z};function M(x){return x%4===0&&(x%100!==0||x%400===0)}function V(x){var b=x.match(W);if(!b)return!1;var k=+b[1],R=+b[2],T=+b[3];return R>=1&&R<=12&&T>=1&&T<=(R==2&&M(k)?29:z[R])}function L(x,b){var k=x.match(H);if(!k)return!1;var R=k[1],T=k[2],f=k[3],$=k[5];return(R<=23&&T<=59&&f<=59||R==23&&T==59&&f==60)&&(!b||$)}var D=/t|\s/i;function y(x){var b=x.split(D);return b.length==2&&V(b[0])&&L(b[1],!0)}var S=/\/|:/;function I(x){return S.test(x)&&B.test(x)}var _=/[^\\]\\Z/;function g(x){if(_.test(x))return!1;try{return new RegExp(x),!0}catch(b){return!1}}}),N6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.errSchemaPath+"/"+z,w=!W.opts.allErrors,P="data"+(K||""),j="valid"+B,Z,U;if(F=="#"||F=="#/")if(W.isRoot)Z=W.async,U="validate";else Z=W.root.schema.$async===!0,U="root.refVal[0]";else{var M=W.resolveRef(W.baseId,F,W.isRoot);if(M===void 0){var V=W.MissingRefError.message(W.baseId,F);if(W.opts.missingRefs=="fail"){W.logger.error(V);var L=L||[];if(L.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(O)+" , params: { ref: '"+W.util.escapeQuotes(F)+"' } ",W.opts.messages!==!1)X+=" , message: 'can\\'t resolve reference "+W.util.escapeQuotes(F)+"' ";if(W.opts.verbose)X+=" , schema: "+W.util.toQuotedString(F)+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+P+" ";X+=" } "}else X+=" {} ";var D=X;if(X=L.pop(),!W.compositeRule&&w)if(W.async)X+=" throw new ValidationError(["+D+"]); ";else X+=" validate.errors = ["+D+"]; return false; ";else X+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(w)X+=" if (false) { "}else if(W.opts.missingRefs=="ignore"){if(W.logger.warn(V),w)X+=" if (true) { "}else throw new W.MissingRefError(W.baseId,F,V)}else if(M.inline){var y=W.util.copy(W);y.level++;var S="valid"+y.level;y.schema=M.schema,y.schemaPath="",y.errSchemaPath=F;var I=W.validate(y).replace(/validate\.schema/g,M.code);if(X+=" "+I+" ",w)X+=" if ("+S+") { "}else Z=M.$async===!0||W.async&&M.$async!==!1,U=M.code}if(U){var L=L||[];if(L.push(X),X="",W.opts.passContext)X+=" "+U+".call(this, ";else X+=" "+U+"( ";if(X+=" "+P+", (dataPath || '')",W.errorPath!='""')X+=" + "+W.errorPath;var _=K?"data"+(K-1||""):"parentData",g=K?W.dataPathArr[K]:"parentDataProperty";X+=" , "+_+" , "+g+", rootData) ";var x=X;if(X=L.pop(),Z){if(!W.async)throw new Error("async schema referenced by sync schema");if(w)X+=" var "+j+"; ";if(X+=" try { await "+x+"; ",w)X+=" "+j+" = true; ";if(X+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",w)X+=" "+j+" = false; ";if(X+=" } ",w)X+=" if ("+j+") { "}else if(X+=" if (!"+x+") { if (vErrors === null) vErrors = "+U+".errors; else vErrors = vErrors.concat("+U+".errors); errors = vErrors.length; } ",w)X+=" else { "}return X}}),L6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.schema[z],K=W.schemaPath+W.util.getProperty(z),F=W.errSchemaPath+"/"+z,O=!W.opts.allErrors,w=W.util.copy(W),P="";w.level++;var j="valid"+w.level,Z=w.baseId,U=!0,M=B;if(M){var V,L=-1,D=M.length-1;while(L0||V===!1:W.util.schemaHasRules(V,W.RULES.all)){if(U=!1,w.schema=V,w.schemaPath=K+"["+L+"]",w.errSchemaPath=F+"/"+L,X+=" "+W.validate(w)+" ",w.baseId=Z,O)X+=" if ("+j+") { ",P+="}"}}if(O)if(U)X+=" if (true) { ";else X+=" "+P.slice(0,-1)+" ";return X}}),j6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U="errs__"+B,M=W.util.copy(W),V="";M.level++;var L="valid"+M.level,D=F.every(function(b){return W.opts.strictKeywords?typeof b=="object"&&Object.keys(b).length>0||b===!1:W.util.schemaHasRules(b,W.RULES.all)});if(D){var y=M.baseId;X+=" var "+U+" = errors; var "+Z+" = false; ";var S=W.compositeRule;W.compositeRule=M.compositeRule=!0;var I=F;if(I){var _,g=-1,x=I.length-1;while(g{Y.exports=function J(W,z,H){var X=" ",B=W.schema[z],K=W.errSchemaPath+"/"+z,F=!W.opts.allErrors,O=W.util.toQuotedString(B);if(W.opts.$comment===!0)X+=" console.log("+O+");";else if(typeof W.opts.$comment=="function")X+=" self._opts.$comment("+O+", "+W.util.toQuotedString(K)+", validate.root.schema);";return X}}),V6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U=W.opts.$data&&F&&F.$data,M;if(U)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",M="schema"+B;else M=F;if(!U)X+=" var schema"+B+" = validate.schema"+O+";";X+="var "+Z+" = equal("+j+", schema"+B+"); if (!"+Z+") { ";var V=V||[];if(V.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'const' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { allowedValue: schema"+B+" } ",W.opts.messages!==!1)X+=" , message: 'should be equal to constant' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var L=X;if(X=V.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+L+"]); ";else X+=" validate.errors = ["+L+"]; return false; ";else X+=" var err = "+L+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" }",P)X+=" else { ";return X}}),O6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U="errs__"+B,M=W.util.copy(W),V="";M.level++;var L="valid"+M.level,D="i"+B,y=M.dataLevel=W.dataLevel+1,S="data"+y,I=W.baseId,_=W.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:W.util.schemaHasRules(F,W.RULES.all);if(X+="var "+U+" = errors;var "+Z+";",_){var g=W.compositeRule;W.compositeRule=M.compositeRule=!0,M.schema=F,M.schemaPath=O,M.errSchemaPath=w,X+=" var "+L+" = false; for (var "+D+" = 0; "+D+" < "+j+".length; "+D+"++) { ",M.errorPath=W.util.getPathExpr(W.errorPath,D,W.opts.jsonPointers,!0);var x=j+"["+D+"]";M.dataPathArr[y]=D;var b=W.validate(M);if(M.baseId=I,W.util.varOccurences(b,S)<2)X+=" "+W.util.varReplace(b,S,x)+" ";else X+=" var "+S+" = "+x+"; "+b+" ";X+=" if ("+L+") break; } ",W.compositeRule=M.compositeRule=g,X+=" "+V+" if (!"+L+") {"}else X+=" if ("+j+".length == 0) {";var k=k||[];if(k.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: {} ",W.opts.messages!==!1)X+=" , message: 'should contain a valid item' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var R=X;if(X=k.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+R+"]); ";else X+=" validate.errors = ["+R+"]; return false; ";else X+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } else { ",_)X+=" errors = "+U+"; if (vErrors !== null) { if ("+U+") vErrors.length = "+U+"; else vErrors = null; } ";if(W.opts.allErrors)X+=" } ";return X}}),Z6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="errs__"+B,U=W.util.copy(W),M="";U.level++;var V="valid"+U.level,L={},D={},y=W.opts.ownProperties;for(g in F){if(g=="__proto__")continue;var S=F[g],I=Array.isArray(S)?D:L;I[g]=S}X+="var "+Z+" = errors;";var _=W.errorPath;X+="var missing"+B+";";for(var g in D)if(I=D[g],I.length){if(X+=" if ( "+j+W.util.getProperty(g)+" !== undefined ",y)X+=" && Object.prototype.hasOwnProperty.call("+j+", '"+W.util.escapeQuotes(g)+"') ";if(P){X+=" && ( ";var x=I;if(x){var b,k=-1,R=x.length-1;while(k0||S===!1:W.util.schemaHasRules(S,W.RULES.all)){if(X+=" "+V+" = true; if ( "+j+W.util.getProperty(g)+" !== undefined ",y)X+=" && Object.prototype.hasOwnProperty.call("+j+", '"+W.util.escapeQuotes(g)+"') ";if(X+=") { ",U.schema=S,U.schemaPath=O+W.util.getProperty(g),U.errSchemaPath=w+"/"+W.util.escapeFragment(g),X+=" "+W.validate(U)+" ",U.baseId=z0,X+=" } ",P)X+=" if ("+V+") { ",M+="}"}}if(P)X+=" "+M+" if ("+Z+" == errors) {";return X}}),w6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U=W.opts.$data&&F&&F.$data,M;if(U)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",M="schema"+B;else M=F;var V="i"+B,L="schema"+B;if(!U)X+=" var "+L+" = validate.schema"+O+";";if(X+="var "+Z+";",U)X+=" if (schema"+B+" === undefined) "+Z+" = true; else if (!Array.isArray(schema"+B+")) "+Z+" = false; else {";if(X+=""+Z+" = false;for (var "+V+"=0; "+V+"<"+L+".length; "+V+"++) if (equal("+j+", "+L+"["+V+"])) { "+Z+" = true; break; }",U)X+=" } ";X+=" if (!"+Z+") { ";var D=D||[];if(D.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { allowedValues: schema"+B+" } ",W.opts.messages!==!1)X+=" , message: 'should be equal to one of the allowed values' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var y=X;if(X=D.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+y+"]); ";else X+=" validate.errors = ["+y+"]; return false; ";else X+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" }",P)X+=" else { ";return X}}),R6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||"");if(W.opts.format===!1){if(P)X+=" if (true) { ";return X}var Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;var M=W.opts.unknownFormats,V=Array.isArray(M);if(Z){var L="format"+B,D="isObject"+B,y="formatType"+B;if(X+=" var "+L+" = formats["+U+"]; var "+D+" = typeof "+L+" == 'object' && !("+L+" instanceof RegExp) && "+L+".validate; var "+y+" = "+D+" && "+L+".type || 'string'; if ("+D+") { ",W.async)X+=" var async"+B+" = "+L+".async; ";if(X+=" "+L+" = "+L+".validate; } if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'string') || ";if(X+=" (",M!="ignore"){if(X+=" ("+U+" && !"+L+" ",V)X+=" && self._opts.unknownFormats.indexOf("+U+") == -1 ";X+=") || "}if(X+=" ("+L+" && "+y+" == '"+H+"' && !(typeof "+L+" == 'function' ? ",W.async)X+=" (async"+B+" ? await "+L+"("+j+") : "+L+"("+j+")) ";else X+=" "+L+"("+j+") ";X+=" : "+L+".test("+j+"))))) {"}else{var L=W.formats[F];if(!L)if(M=="ignore"){if(W.logger.warn('unknown format "'+F+'" ignored in schema at path "'+W.errSchemaPath+'"'),P)X+=" if (true) { ";return X}else if(V&&M.indexOf(F)>=0){if(P)X+=" if (true) { ";return X}else throw new Error('unknown format "'+F+'" is used in schema at path "'+W.errSchemaPath+'"');var D=typeof L=="object"&&!(L instanceof RegExp)&&L.validate,y=D&&L.type||"string";if(D){var S=L.async===!0;L=L.validate}if(y!=H){if(P)X+=" if (true) { ";return X}if(S){if(!W.async)throw new Error("async format in sync schema");var I="formats"+W.util.getProperty(F)+".validate";X+=" if (!(await "+I+"("+j+"))) { "}else{X+=" if (! ";var I="formats"+W.util.getProperty(F);if(D)I+=".validate";if(typeof L=="function")X+=" "+I+"("+j+") ";else X+=" "+I+".test("+j+") ";X+=") { "}}var _=_||[];if(_.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'format' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { format: ",Z)X+=""+U;else X+=""+W.util.toQuotedString(F);if(X+=" } ",W.opts.messages!==!1){if(X+=` , message: 'should match format "`,Z)X+="' + "+U+" + '";else X+=""+W.util.escapeQuotes(F);X+=`"' `}if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+W.util.toQuotedString(F);X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var g=X;if(X=_.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+g+"]); ";else X+=" validate.errors = ["+g+"]; return false; ";else X+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } ",P)X+=" else { ";return X}}),D6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U="errs__"+B,M=W.util.copy(W);M.level++;var V="valid"+M.level,L=W.schema.then,D=W.schema.else,y=L!==void 0&&(W.opts.strictKeywords?typeof L=="object"&&Object.keys(L).length>0||L===!1:W.util.schemaHasRules(L,W.RULES.all)),S=D!==void 0&&(W.opts.strictKeywords?typeof D=="object"&&Object.keys(D).length>0||D===!1:W.util.schemaHasRules(D,W.RULES.all)),I=M.baseId;if(y||S){var _;M.createErrors=!1,M.schema=F,M.schemaPath=O,M.errSchemaPath=w,X+=" var "+U+" = errors; var "+Z+" = true; ";var g=W.compositeRule;if(W.compositeRule=M.compositeRule=!0,X+=" "+W.validate(M)+" ",M.baseId=I,M.createErrors=!0,X+=" errors = "+U+"; if (vErrors !== null) { if ("+U+") vErrors.length = "+U+"; else vErrors = null; } ",W.compositeRule=M.compositeRule=g,y){if(X+=" if ("+V+") { ",M.schema=W.schema.then,M.schemaPath=W.schemaPath+".then",M.errSchemaPath=W.errSchemaPath+"/then",X+=" "+W.validate(M)+" ",M.baseId=I,X+=" "+Z+" = "+V+"; ",y&&S)_="ifClause"+B,X+=" var "+_+" = 'then'; ";else _="'then'";if(X+=" } ",S)X+=" else { "}else X+=" if (!"+V+") { ";if(S){if(M.schema=W.schema.else,M.schemaPath=W.schemaPath+".else",M.errSchemaPath=W.errSchemaPath+"/else",X+=" "+W.validate(M)+" ",M.baseId=I,X+=" "+Z+" = "+V+"; ",y&&S)_="ifClause"+B,X+=" var "+_+" = 'else'; ";else _="'else'";X+=" } "}if(X+=" if (!"+Z+") { var err = ",W.createErrors!==!1){if(X+=" { keyword: 'if' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { failingKeyword: "+_+" } ",W.opts.messages!==!1)X+=` , message: 'should match "' + `+_+` + '" schema' `;if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";if(X+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(vErrors); ";else X+=" validate.errors = vErrors; return false; ";if(X+=" } ",P)X+=" else { "}else if(P)X+=" if (true) { ";return X}}),I6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U="errs__"+B,M=W.util.copy(W),V="";M.level++;var L="valid"+M.level,D="i"+B,y=M.dataLevel=W.dataLevel+1,S="data"+y,I=W.baseId;if(X+="var "+U+" = errors;var "+Z+";",Array.isArray(F)){var _=W.schema.additionalItems;if(_===!1){X+=" "+Z+" = "+j+".length <= "+F.length+"; ";var g=w;w=W.errSchemaPath+"/additionalItems",X+=" if (!"+Z+") { ";var x=x||[];if(x.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { limit: "+F.length+" } ",W.opts.messages!==!1)X+=" , message: 'should NOT have more than "+F.length+" items' ";if(W.opts.verbose)X+=" , schema: false , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var b=X;if(X=x.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+b+"]); ";else X+=" validate.errors = ["+b+"]; return false; ";else X+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } ",w=g,P)V+="}",X+=" else { "}var k=F;if(k){var R,T=-1,f=k.length-1;while(T0||R===!1:W.util.schemaHasRules(R,W.RULES.all)){X+=" "+L+" = true; if ("+j+".length > "+T+") { ";var $=j+"["+T+"]";M.schema=R,M.schemaPath=O+"["+T+"]",M.errSchemaPath=w+"/"+T,M.errorPath=W.util.getPathExpr(W.errorPath,T,W.opts.jsonPointers,!0),M.dataPathArr[y]=T;var p=W.validate(M);if(M.baseId=I,W.util.varOccurences(p,S)<2)X+=" "+W.util.varReplace(p,S,$)+" ";else X+=" var "+S+" = "+$+"; "+p+" ";if(X+=" } ",P)X+=" if ("+L+") { ",V+="}"}}if(typeof _=="object"&&(W.opts.strictKeywords?typeof _=="object"&&Object.keys(_).length>0||_===!1:W.util.schemaHasRules(_,W.RULES.all))){M.schema=_,M.schemaPath=W.schemaPath+".additionalItems",M.errSchemaPath=W.errSchemaPath+"/additionalItems",X+=" "+L+" = true; if ("+j+".length > "+F.length+") { for (var "+D+" = "+F.length+"; "+D+" < "+j+".length; "+D+"++) { ",M.errorPath=W.util.getPathExpr(W.errorPath,D,W.opts.jsonPointers,!0);var $=j+"["+D+"]";M.dataPathArr[y]=D;var p=W.validate(M);if(M.baseId=I,W.util.varOccurences(p,S)<2)X+=" "+W.util.varReplace(p,S,$)+" ";else X+=" var "+S+" = "+$+"; "+p+" ";if(P)X+=" if (!"+L+") break; ";if(X+=" } } ",P)X+=" if ("+L+") { ",V+="}"}}else if(W.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:W.util.schemaHasRules(F,W.RULES.all)){M.schema=F,M.schemaPath=O,M.errSchemaPath=w,X+=" for (var "+D+" = 0; "+D+" < "+j+".length; "+D+"++) { ",M.errorPath=W.util.getPathExpr(W.errorPath,D,W.opts.jsonPointers,!0);var $=j+"["+D+"]";M.dataPathArr[y]=D;var p=W.validate(M);if(M.baseId=I,W.util.varOccurences(p,S)<2)X+=" "+W.util.varReplace(p,S,$)+" ";else X+=" var "+S+" = "+$+"; "+p+" ";if(P)X+=" if (!"+L+") break; ";X+=" }"}if(P)X+=" "+V+" if ("+U+" == errors) {";return X}}),w8=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,I,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;var M=z=="maximum",V=M?"exclusiveMaximum":"exclusiveMinimum",L=W.schema[V],D=W.opts.$data&&L&&L.$data,y=M?"<":">",S=M?">":"<",I=void 0;if(!(Z||typeof F=="number"||F===void 0))throw new Error(z+" must be number");if(!(D||L===void 0||typeof L=="number"||typeof L=="boolean"))throw new Error(V+" must be number or boolean");if(D){var _=W.util.getData(L.$data,K,W.dataPathArr),g="exclusive"+B,x="exclType"+B,b="exclIsNumber"+B,k="op"+B,R="' + "+k+" + '";X+=" var schemaExcl"+B+" = "+_+"; ",_="schemaExcl"+B,X+=" var "+g+"; var "+x+" = typeof "+_+"; if ("+x+" != 'boolean' && "+x+" != 'undefined' && "+x+" != 'number') { ";var I=V,T=T||[];if(T.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(I||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: {} ",W.opts.messages!==!1)X+=" , message: '"+V+" should be boolean' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var f=X;if(X=T.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+f+"]); ";else X+=" validate.errors = ["+f+"]; return false; ";else X+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } else if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";if(X+=" "+x+" == 'number' ? ( ("+g+" = "+U+" === undefined || "+_+" "+y+"= "+U+") ? "+j+" "+S+"= "+_+" : "+j+" "+S+" "+U+" ) : ( ("+g+" = "+_+" === true) ? "+j+" "+S+"= "+U+" : "+j+" "+S+" "+U+" ) || "+j+" !== "+j+") { var op"+B+" = "+g+" ? '"+y+"' : '"+y+"='; ",F===void 0)I=V,w=W.errSchemaPath+"/"+V,U=_,Z=D}else{var b=typeof L=="number",R=y;if(b&&Z){var k="'"+R+"'";if(X+=" if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";X+=" ( "+U+" === undefined || "+L+" "+y+"= "+U+" ? "+j+" "+S+"= "+L+" : "+j+" "+S+" "+U+" ) || "+j+" !== "+j+") { "}else{if(b&&F===void 0)g=!0,I=V,w=W.errSchemaPath+"/"+V,U=L,S+="=";else{if(b)U=Math[M?"min":"max"](L,F);if(L===(b?U:!0))g=!0,I=V,w=W.errSchemaPath+"/"+V,S+="=";else g=!1,R+="="}var k="'"+R+"'";if(X+=" if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";X+=" "+j+" "+S+" "+U+" || "+j+" !== "+j+") { "}}I=I||z;var T=T||[];if(T.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(I||"_limit")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { comparison: "+k+", limit: "+U+", exclusive: "+g+" } ",W.opts.messages!==!1)if(X+=" , message: 'should be "+R+" ",Z)X+="' + "+U;else X+=""+U+"'";if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var f=X;if(X=T.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+f+"]); ";else X+=" validate.errors = ["+f+"]; return false; ";else X+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } ",P)X+=" else { ";return X}}),R8=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,V,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;if(!(Z||typeof F=="number"))throw new Error(z+" must be number");var M=z=="maxItems"?">":"<";if(X+="if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";X+=" "+j+".length "+M+" "+U+") { ";var V=z,L=L||[];if(L.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(V||"_limitItems")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { limit: "+U+" } ",W.opts.messages!==!1){if(X+=" , message: 'should NOT have ",z=="maxItems")X+="more";else X+="fewer";if(X+=" than ",Z)X+="' + "+U+" + '";else X+=""+F;X+=" items' "}if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var D=X;if(X=L.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+D+"]); ";else X+=" validate.errors = ["+D+"]; return false; ";else X+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+="} ",P)X+=" else { ";return X}}),D8=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,V,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;if(!(Z||typeof F=="number"))throw new Error(z+" must be number");var M=z=="maxLength"?">":"<";if(X+="if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";if(W.opts.unicode===!1)X+=" "+j+".length ";else X+=" ucs2length("+j+") ";X+=" "+M+" "+U+") { ";var V=z,L=L||[];if(L.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(V||"_limitLength")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { limit: "+U+" } ",W.opts.messages!==!1){if(X+=" , message: 'should NOT be ",z=="maxLength")X+="longer";else X+="shorter";if(X+=" than ",Z)X+="' + "+U+" + '";else X+=""+F;X+=" characters' "}if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var D=X;if(X=L.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+D+"]); ";else X+=" validate.errors = ["+D+"]; return false; ";else X+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+="} ",P)X+=" else { ";return X}}),I8=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,V,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;if(!(Z||typeof F=="number"))throw new Error(z+" must be number");var M=z=="maxProperties"?">":"<";if(X+="if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'number') || ";X+=" Object.keys("+j+").length "+M+" "+U+") { ";var V=z,L=L||[];if(L.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(V||"_limitProperties")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { limit: "+U+" } ",W.opts.messages!==!1){if(X+=" , message: 'should NOT have ",z=="maxProperties")X+="more";else X+="fewer";if(X+=" than ",Z)X+="' + "+U+" + '";else X+=""+F;X+=" properties' "}if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var D=X;if(X=L.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+D+"]); ";else X+=" validate.errors = ["+D+"]; return false; ";else X+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+="} ",P)X+=" else { ";return X}}),C6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;if(!(Z||typeof F=="number"))throw new Error(z+" must be number");if(X+="var division"+B+";if (",Z)X+=" "+U+" !== undefined && ( typeof "+U+" != 'number' || ";if(X+=" (division"+B+" = "+j+" / "+U+", ",W.opts.multipleOfPrecision)X+=" Math.abs(Math.round(division"+B+") - division"+B+") > 1e-"+W.opts.multipleOfPrecision+" ";else X+=" division"+B+" !== parseInt(division"+B+") ";if(X+=" ) ",Z)X+=" ) ";X+=" ) { ";var M=M||[];if(M.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { multipleOf: "+U+" } ",W.opts.messages!==!1)if(X+=" , message: 'should be multiple of ",Z)X+="' + "+U;else X+=""+U+"'";if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var V=X;if(X=M.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+V+"]); ";else X+=" validate.errors = ["+V+"]; return false; ";else X+=" var err = "+V+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+="} ",P)X+=" else { ";return X}}),P6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="errs__"+B,U=W.util.copy(W);U.level++;var M="valid"+U.level;if(W.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:W.util.schemaHasRules(F,W.RULES.all)){U.schema=F,U.schemaPath=O,U.errSchemaPath=w,X+=" var "+Z+" = errors; ";var V=W.compositeRule;W.compositeRule=U.compositeRule=!0,U.createErrors=!1;var L;if(U.opts.allErrors)L=U.opts.allErrors,U.opts.allErrors=!1;if(X+=" "+W.validate(U)+" ",U.createErrors=!0,L)U.opts.allErrors=L;W.compositeRule=U.compositeRule=V,X+=" if ("+M+") { ";var D=D||[];if(D.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'not' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: {} ",W.opts.messages!==!1)X+=" , message: 'should NOT be valid' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var y=X;if(X=D.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+y+"]); ";else X+=" validate.errors = ["+y+"]; return false; ";else X+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } else { errors = "+Z+"; if (vErrors !== null) { if ("+Z+") vErrors.length = "+Z+"; else vErrors = null; } ",W.opts.allErrors)X+=" } "}else{if(X+=" var err = ",W.createErrors!==!1){if(X+=" { keyword: 'not' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: {} ",W.opts.messages!==!1)X+=" , message: 'should NOT be valid' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";if(X+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",P)X+=" if (false) { "}return X}}),_6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U="errs__"+B,M=W.util.copy(W),V="";M.level++;var L="valid"+M.level,D=M.baseId,y="prevValid"+B,S="passingSchemas"+B;X+="var "+U+" = errors , "+y+" = false , "+Z+" = false , "+S+" = null; ";var I=W.compositeRule;W.compositeRule=M.compositeRule=!0;var _=F;if(_){var g,x=-1,b=_.length-1;while(x0||g===!1:W.util.schemaHasRules(g,W.RULES.all))M.schema=g,M.schemaPath=O+"["+x+"]",M.errSchemaPath=w+"/"+x,X+=" "+W.validate(M)+" ",M.baseId=D;else X+=" var "+L+" = true; ";if(x)X+=" if ("+L+" && "+y+") { "+Z+" = false; "+S+" = ["+S+", "+x+"]; } else { ",V+="}";X+=" if ("+L+") { "+Z+" = "+y+" = true; "+S+" = "+x+"; }"}}if(W.compositeRule=M.compositeRule=I,X+=""+V+"if (!"+Z+") { var err = ",W.createErrors!==!1){if(X+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { passingSchemas: "+S+" } ",W.opts.messages!==!1)X+=" , message: 'should match exactly one schema in oneOf' ";if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";if(X+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(vErrors); ";else X+=" validate.errors = vErrors; return false; ";if(X+="} else { errors = "+U+"; if (vErrors !== null) { if ("+U+") vErrors.length = "+U+"; else vErrors = null; }",W.opts.allErrors)X+=" } ";return X}}),T6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z=W.opts.$data&&F&&F.$data,U;if(Z)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",U="schema"+B;else U=F;var M=Z?"(new RegExp("+U+"))":W.usePattern(F);if(X+="if ( ",Z)X+=" ("+U+" !== undefined && typeof "+U+" != 'string') || ";X+=" !"+M+".test("+j+") ) { ";var V=V||[];if(V.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { pattern: ",Z)X+=""+U;else X+=""+W.util.toQuotedString(F);if(X+=" } ",W.opts.messages!==!1){if(X+=` , message: 'should match pattern "`,Z)X+="' + "+U+" + '";else X+=""+W.util.escapeQuotes(F);X+=`"' `}if(W.opts.verbose){if(X+=" , schema: ",Z)X+="validate.schema"+O;else X+=""+W.util.toQuotedString(F);X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var L=X;if(X=V.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+L+"]); ";else X+=" validate.errors = ["+L+"]; return false; ";else X+=" var err = "+L+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+="} ",P)X+=" else { ";return X}}),E6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="errs__"+B,U=W.util.copy(W),M="";U.level++;var V="valid"+U.level,L="key"+B,D="idx"+B,y=U.dataLevel=W.dataLevel+1,S="data"+y,I="dataProperties"+B,_=Object.keys(F||{}).filter(J0),g=W.schema.patternProperties||{},x=Object.keys(g).filter(J0),b=W.schema.additionalProperties,k=_.length||x.length,R=b===!1,T=typeof b=="object"&&Object.keys(b).length,f=W.opts.removeAdditional,$=R||T||f,p=W.opts.ownProperties,d=W.baseId,X0=W.schema.required;if(X0&&!(W.opts.$data&&X0.$data)&&X0.length8)X+=" || validate.schema"+O+".hasOwnProperty("+L+") ";else{var a=_;if(a){var z0,g0=-1,y0=a.length-1;while(g00||E0===!1:W.util.schemaHasRules(E0,W.RULES.all)){var h0=W.util.getProperty(z0),q0=j+h0,D0=w0&&E0.default!==void 0;U.schema=E0,U.schemaPath=O+h0,U.errSchemaPath=w+"/"+W.util.escapeFragment(z0),U.errorPath=W.util.getPath(W.errorPath,z0,W.opts.jsonPointers),U.dataPathArr[y]=W.util.toQuotedString(z0);var Q0=W.validate(U);if(U.baseId=d,W.util.varOccurences(Q0,S)<2){Q0=W.util.varReplace(Q0,S,q0);var v0=q0}else{var v0=S;X+=" var "+S+" = "+q0+"; "}if(D0)X+=" "+Q0+" ";else{if(s&&s[z0]){if(X+=" if ( "+v0+" === undefined ",p)X+=" || ! Object.prototype.hasOwnProperty.call("+j+", '"+W.util.escapeQuotes(z0)+"') ";X+=") { "+V+" = false; ";var h=W.errorPath,G0=w,c0=W.util.escapeQuotes(z0);if(W.opts._errorDataPathProperty)W.errorPath=W.util.getPath(h,z0,W.opts.jsonPointers);w=W.errSchemaPath+"/required";var m=m||[];if(m.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'required' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { missingProperty: '"+c0+"' } ",W.opts.messages!==!1){if(X+=" , message: '",W.opts._errorDataPathProperty)X+="is a required property";else X+="should have required property \\'"+c0+"\\'";X+="' "}if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var u=X;if(X=m.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+u+"]); ";else X+=" validate.errors = ["+u+"]; return false; ";else X+=" var err = "+u+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";w=G0,W.errorPath=h,X+=" } else { "}else if(P){if(X+=" if ( "+v0+" === undefined ",p)X+=" || ! Object.prototype.hasOwnProperty.call("+j+", '"+W.util.escapeQuotes(z0)+"') ";X+=") { "+V+" = true; } else { "}else{if(X+=" if ("+v0+" !== undefined ",p)X+=" && Object.prototype.hasOwnProperty.call("+j+", '"+W.util.escapeQuotes(z0)+"') ";X+=" ) { "}X+=" "+Q0+" } "}}if(P)X+=" if ("+V+") { ",M+="}"}}}if(x.length){var l0=x;if(l0){var Z0,R9=-1,h9=l0.length-1;while(R90||E0===!1:W.util.schemaHasRules(E0,W.RULES.all)){if(U.schema=E0,U.schemaPath=W.schemaPath+".patternProperties"+W.util.getProperty(Z0),U.errSchemaPath=W.errSchemaPath+"/patternProperties/"+W.util.escapeFragment(Z0),p)X+=" "+I+" = "+I+" || Object.keys("+j+"); for (var "+D+"=0; "+D+"<"+I+".length; "+D+"++) { var "+L+" = "+I+"["+D+"]; ";else X+=" for (var "+L+" in "+j+") { ";X+=" if ("+W.usePattern(Z0)+".test("+L+")) { ",U.errorPath=W.util.getPathExpr(W.errorPath,L,W.opts.jsonPointers);var q0=j+"["+L+"]";U.dataPathArr[y]=L;var Q0=W.validate(U);if(U.baseId=d,W.util.varOccurences(Q0,S)<2)X+=" "+W.util.varReplace(Q0,S,q0)+" ";else X+=" var "+S+" = "+q0+"; "+Q0+" ";if(P)X+=" if (!"+V+") break; ";if(X+=" } ",P)X+=" else "+V+" = true; ";if(X+=" } ",P)X+=" if ("+V+") { ",M+="}"}}}}if(P)X+=" "+M+" if ("+Z+" == errors) {";return X}}),b6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="errs__"+B,U=W.util.copy(W),M="";U.level++;var V="valid"+U.level;if(X+="var "+Z+" = errors;",W.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:W.util.schemaHasRules(F,W.RULES.all)){U.schema=F,U.schemaPath=O,U.errSchemaPath=w;var L="key"+B,D="idx"+B,y="i"+B,S="' + "+L+" + '",I=U.dataLevel=W.dataLevel+1,_="data"+I,g="dataProperties"+B,x=W.opts.ownProperties,b=W.baseId;if(x)X+=" var "+g+" = undefined; ";if(x)X+=" "+g+" = "+g+" || Object.keys("+j+"); for (var "+D+"=0; "+D+"<"+g+".length; "+D+"++) { var "+L+" = "+g+"["+D+"]; ";else X+=" for (var "+L+" in "+j+") { ";X+=" var startErrs"+B+" = errors; ";var k=L,R=W.compositeRule;W.compositeRule=U.compositeRule=!0;var T=W.validate(U);if(U.baseId=b,W.util.varOccurences(T,_)<2)X+=" "+W.util.varReplace(T,_,k)+" ";else X+=" var "+_+" = "+k+"; "+T+" ";if(W.compositeRule=U.compositeRule=R,X+=" if (!"+V+") { for (var "+y+"=startErrs"+B+"; "+y+"{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U=W.opts.$data&&F&&F.$data,M;if(U)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",M="schema"+B;else M=F;var V="schema"+B;if(!U)if(F.length0||_===!1:W.util.schemaHasRules(_,W.RULES.all))))L[L.length]=y}}}else var L=F;if(U||L.length){var g=W.errorPath,x=U||L.length>=W.opts.loopRequired,b=W.opts.ownProperties;if(P)if(X+=" var missing"+B+"; ",x){if(!U)X+=" var "+V+" = validate.schema"+O+"; ";var k="i"+B,R="schema"+B+"["+k+"]",T="' + "+R+" + '";if(W.opts._errorDataPathProperty)W.errorPath=W.util.getPathExpr(g,R,W.opts.jsonPointers);if(X+=" var "+Z+" = true; ",U)X+=" if (schema"+B+" === undefined) "+Z+" = true; else if (!Array.isArray(schema"+B+")) "+Z+" = false; else {";if(X+=" for (var "+k+" = 0; "+k+" < "+V+".length; "+k+"++) { "+Z+" = "+j+"["+V+"["+k+"]] !== undefined ",b)X+=" && Object.prototype.hasOwnProperty.call("+j+", "+V+"["+k+"]) ";if(X+="; if (!"+Z+") break; } ",U)X+=" } ";X+=" if (!"+Z+") { ";var f=f||[];if(f.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'required' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { missingProperty: '"+T+"' } ",W.opts.messages!==!1){if(X+=" , message: '",W.opts._errorDataPathProperty)X+="is a required property";else X+="should have required property \\'"+T+"\\'";X+="' "}if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" ";X+=" } "}else X+=" {} ";var $=X;if(X=f.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+$+"]); ";else X+=" validate.errors = ["+$+"]; return false; ";else X+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";X+=" } else { "}else{X+=" if ( ";var p=L;if(p){var d,k=-1,X0=p.length-1;while(k{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j="data"+(K||""),Z="valid"+B,U=W.opts.$data&&F&&F.$data,M;if(U)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",M="schema"+B;else M=F;if((F||U)&&W.opts.uniqueItems!==!1){if(U)X+=" var "+Z+"; if ("+M+" === false || "+M+" === undefined) "+Z+" = true; else if (typeof "+M+" != 'boolean') "+Z+" = false; else { ";X+=" var i = "+j+".length , "+Z+" = true , j; if (i > 1) { ";var V=W.schema.items&&W.schema.items.type,L=Array.isArray(V);if(!V||V=="object"||V=="array"||L&&(V.indexOf("object")>=0||V.indexOf("array")>=0))X+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+j+"[i], "+j+"[j])) { "+Z+" = false; break outer; } } } ";else{X+=" var itemIndices = {}, item; for (;i--;) { var item = "+j+"[i]; ";var D="checkDataType"+(L?"s":"");if(X+=" if ("+W.util[D](V,"item",W.opts.strictNumbers,!0)+") continue; ",L)X+=` if (typeof item == 'string') item = '"' + item; `;X+=" if (typeof itemIndices[item] == 'number') { "+Z+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}if(X+=" } ",U)X+=" } ";X+=" if (!"+Z+") { ";var y=y||[];if(y.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { i: i, j: j } ",W.opts.messages!==!1)X+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' ";if(W.opts.verbose){if(X+=" , schema: ",U)X+="validate.schema"+O;else X+=""+F;X+=" , parentSchema: validate.schema"+W.schemaPath+" , data: "+j+" "}X+=" } "}else X+=" {} ";var S=X;if(X=y.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+S+"]); ";else X+=" validate.errors = ["+S+"]; return false; ";else X+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(X+=" } ",P)X+=" else { "}else if(P)X+=" if (true) { ";return X}}),g6=Y0((Q,Y)=>{Y.exports={$ref:N6(),allOf:L6(),anyOf:j6(),$comment:A6(),const:V6(),contains:O6(),dependencies:Z6(),enum:w6(),format:R6(),if:D6(),items:I6(),maximum:w8(),minimum:w8(),maxItems:R8(),minItems:R8(),maxLength:D8(),minLength:D8(),maxProperties:I8(),minProperties:I8(),multipleOf:C6(),not:P6(),oneOf:_6(),pattern:T6(),properties:E6(),propertyNames:b6(),required:S6(),uniqueItems:v6(),validate:$8()}}),k6=Y0((Q,Y)=>{var J=g6(),W=t1().toHash;Y.exports=function z(){var H=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],X=["type","$comment"],B=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],K=["number","integer","string","array","object","boolean","null"];return H.all=W(X),H.types=W(K),H.forEach(function(F){if(F.rules=F.rules.map(function(O){var w;if(typeof O=="object"){var P=Object.keys(O)[0];w=O[P],O=P,w.forEach(function(Z){X.push(Z),H.all[Z]=!0})}X.push(O);var j=H.all[O]={keyword:O,code:J[O],implements:w};return j}),H.all.$comment={keyword:"$comment",code:J.$comment},F.type)H.types[F.type]=F}),H.keywords=W(X.concat(B)),H.custom={},H}}),x6=Y0((Q,Y)=>{var J=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Y.exports=function(W,z){for(var H=0;H{var J=W8().MissingRef;Y.exports=W;function W(z,H,X){var B=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");if(typeof H=="function")X=H,H=void 0;var K=F(z).then(function(){var w=B._addSchema(z,void 0,H);return w.validate||O(w)});if(X)K.then(function(w){X(null,w)},X);return K;function F(w){var P=w.$schema;return P&&!B.getSchema(P)?W.call(B,{$ref:P},!0):Promise.resolve()}function O(w){try{return B._compile(w)}catch(j){if(j instanceof J)return P(j);throw j}function P(j){var Z=j.missingSchema;if(V(Z))throw new Error("Schema "+Z+" is loaded but "+j.missingRef+" cannot be resolved");var U=B._loadingSchemas[Z];if(!U)U=B._loadingSchemas[Z]=B._opts.loadSchema(Z),U.then(M,M);return U.then(function(L){if(!V(Z))return F(L).then(function(){if(!V(Z))B.addSchema(L,Z,void 0,H)})}).then(function(){return O(w)});function M(){delete B._loadingSchemas[Z]}function V(L){return B._refs[L]||B._schemas[L]}}}}}),f6=Y0((Q,Y)=>{Y.exports=function J(W,z,H){var X=" ",B=W.level,K=W.dataLevel,F=W.schema[z],O=W.schemaPath+W.util.getProperty(z),w=W.errSchemaPath+"/"+z,P=!W.opts.allErrors,j,Z="data"+(K||""),U="valid"+B,M="errs__"+B,V=W.opts.$data&&F&&F.$data,L;if(V)X+=" var schema"+B+" = "+W.util.getData(F.$data,K,W.dataPathArr)+"; ",L="schema"+B;else L=F;var D=this,y="definition"+B,S=D.definition,I="",_,g,x,b,k;if(V&&S.$data){k="keywordValidate"+B;var R=S.validateSchema;X+=" var "+y+" = RULES.custom['"+z+"'].definition; var "+k+" = "+y+".validate;"}else{if(b=W.useCustomRule(D,F,W.schema,W),!b)return;L="validate.schema"+O,k=b.code,_=S.compile,g=S.inline,x=S.macro}var T=k+".errors",f="i"+B,$="ruleErr"+B,p=S.async;if(p&&!W.async)throw new Error("async keyword in sync schema");if(!(g||x))X+=""+T+" = null;";if(X+="var "+M+" = errors;var "+U+";",V&&S.$data){if(I+="}",X+=" if ("+L+" === undefined) { "+U+" = true; } else { ",R)I+="}",X+=" "+U+" = "+y+".validateSchema("+L+"); if ("+U+") { "}if(g)if(S.statements)X+=" "+b.validate+" ";else X+=" "+U+" = "+b.validate+"; ";else if(x){var d=W.util.copy(W),I="";d.level++;var X0="valid"+d.level;d.schema=b.validate,d.schemaPath="";var s=W.compositeRule;W.compositeRule=d.compositeRule=!0;var J0=W.validate(d).replace(/validate\.schema/g,k);W.compositeRule=d.compositeRule=s,X+=" "+J0}else{var a=a||[];if(a.push(X),X="",X+=" "+k+".call( ",W.opts.passContext)X+="this";else X+="self";if(_||S.schema===!1)X+=" , "+Z+" ";else X+=" , "+L+" , "+Z+" , validate.schema"+W.schemaPath+" ";if(X+=" , (dataPath || '')",W.errorPath!='""')X+=" + "+W.errorPath;var z0=K?"data"+(K-1||""):"parentData",g0=K?W.dataPathArr[K]:"parentDataProperty";X+=" , "+z0+" , "+g0+" , rootData ) ";var y0=X;if(X=a.pop(),S.errors===!1){if(X+=" "+U+" = ",p)X+="await ";X+=""+y0+"; "}else if(p)T="customErrors"+B,X+=" var "+T+" = null; try { "+U+" = await "+y0+"; } catch (e) { "+U+" = false; if (e instanceof ValidationError) "+T+" = e.errors; else throw e; } ";else X+=" "+T+" = null; "+U+" = "+y0+"; "}if(S.modifying)X+=" if ("+z0+") "+Z+" = "+z0+"["+g0+"];";if(X+=""+I,S.valid){if(P)X+=" if (true) { "}else{if(X+=" if ( ",S.valid===void 0)if(X+=" !",x)X+=""+X0;else X+=""+U;else X+=" "+!S.valid+" ";X+=") { ",j=D.keyword;var a=a||[];a.push(X),X="";var a=a||[];if(a.push(X),X="",W.createErrors!==!1){if(X+=" { keyword: '"+(j||"custom")+"' , dataPath: (dataPath || '') + "+W.errorPath+" , schemaPath: "+W.util.toQuotedString(w)+" , params: { keyword: '"+D.keyword+"' } ",W.opts.messages!==!1)X+=` , message: 'should pass "`+D.keyword+`" keyword validation' `;if(W.opts.verbose)X+=" , schema: validate.schema"+O+" , parentSchema: validate.schema"+W.schemaPath+" , data: "+Z+" ";X+=" } "}else X+=" {} ";var k0=X;if(X=a.pop(),!W.compositeRule&&P)if(W.async)X+=" throw new ValidationError(["+k0+"]); ";else X+=" validate.errors = ["+k0+"]; return false; ";else X+=" var err = "+k0+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var Z0=X;if(X=a.pop(),g)if(S.errors){if(S.errors!="full"){if(X+=" for (var "+f+"="+M+"; "+f+"{Y.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),h6=Y0((Q,Y)=>{var J=m8();Y.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:J.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:J.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}}),$6=Y0((Q,Y)=>{var J=/^[a-z_$][a-z0-9_$-]*$/i,W=f6(),z=h6();Y.exports={add:H,get:X,remove:B,validate:K};function H(F,O){var w=this.RULES;if(w.keywords[F])throw new Error("Keyword "+F+" is already defined");if(!J.test(F))throw new Error("Keyword "+F+" is not a valid identifier");if(O){this.validateKeyword(O,!0);var P=O.type;if(Array.isArray(P))for(var j=0;j{Y.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),l6=Y0((Q,Y)=>{var J=q6(),W=e9(),z=K6(),H=f8(),X=h8(),B=M6(),K=k6(),F=x6(),O=t1();Y.exports=M,M.prototype.validate=V,M.prototype.compile=L,M.prototype.addSchema=D,M.prototype.addMetaSchema=y,M.prototype.validateSchema=S,M.prototype.getSchema=_,M.prototype.removeSchema=b,M.prototype.addFormat=s,M.prototype.errorsText=X0,M.prototype._addSchema=R,M.prototype._compile=T,M.prototype.compileAsync=y6();var w=$6();M.prototype.addKeyword=w.add,M.prototype.getKeyword=w.get,M.prototype.removeKeyword=w.remove,M.prototype.validateKeyword=w.validate;var P=W8();M.ValidationError=P.Validation,M.MissingRefError=P.MissingRef,M.$dataMetaSchema=F;var j="http://json-schema.org/draft-07/schema",Z=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],U=["/properties"];function M(C){if(!(this instanceof M))return new M(C);if(C=this._opts=O.copy(C)||{},Z0(this),this._schemas={},this._refs={},this._fragments={},this._formats=B(C.format),this._cache=C.cache||new z,this._loadingSchemas={},this._compilations=[],this.RULES=K(),this._getId=f(C),C.loopRequired=C.loopRequired||1/0,C.errorDataPath=="property")C._errorDataPathProperty=!0;if(C.serialize===void 0)C.serialize=X;if(this._metaOpts=k0(this),C.formats)z0(this);if(C.keywords)g0(this);if(J0(this),typeof C.meta=="object")this.addMetaSchema(C.meta);if(C.nullable)this.addKeyword("nullable",{metaSchema:{type:"boolean"}});a(this)}function V(C,h){var o;if(typeof C=="string"){if(o=this.getSchema(C),!o)throw new Error('no schema with key or ref "'+C+'"')}else{var G0=this._addSchema(C);o=G0.validate||this._compile(G0)}var m=o(h);if(o.$async!==!0)this.errors=o.errors;return m}function L(C,h){var o=this._addSchema(C,void 0,h);return o.validate||this._compile(o)}function D(C,h,o,G0){if(Array.isArray(C)){for(var m=0;m0)b.push("--allowedTools",y.join(","));if(S.length>0)b.push("--disallowedTools",S.join(","));if(I&&Object.keys(I).length>0)b.push("--mcp-config",JSON.stringify({mcpServers:I}));if(Y&&Object.keys(Y).length>0)b.push("--agents",JSON.stringify(Y));if(D)b.push("--setting-sources",D.join(","));if(_)b.push("--strict-mcp-config");if(U)b.push("--permission-mode",U);if(Z){if(j&&Z===j)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");b.push("--fallback-model",Z)}if(x)b.push("--include-partial-messages");for(let d of Q)b.push("--add-dir",d);if(this.options.forkSession)b.push("--fork-session");if(this.options.resumeSessionAt)b.push("--resume-session-at",this.options.resumeSessionAt);for(let[d,X0]of Object.entries(H))if(X0===null)b.push(`--${d}`);else b.push(`--${d}`,X0);if(!B.CLAUDE_CODE_ENTRYPOINT)B.CLAUDE_CODE_ENTRYPOINT="sdk-ts";if(!L1().existsSync(X)){let d=P8(X)?`Claude Code native binary not found at ${X}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${X}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(d)}let R=P8(X),T=R?X:W,f=R?b:[...z,X,...b];this.logForDebugging(R?`Spawning Claude Code native binary: ${X} ${b.join(" ")}`:`Spawning Claude Code process: ${W} ${[...z,X,...b].join(" ")}`);let $=B.DEBUG||K?"pipe":"ignore";if(this.child=n6(T,f,{cwd:J,stdio:["pipe","pipe",$],signal:this.abortController.signal,env:B}),this.childStdin=this.child.stdin,this.childStdout=this.child.stdout,B.DEBUG||K)this.child.stderr.on("data",(d)=>{this.logForDebugging(d.toString())});let p=()=>{if(this.child&&!this.child.killed)this.child.kill("SIGTERM")};this.processExitHandler=p,this.abortHandler=p,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.child.on("error",(d)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new f1("Claude Code process aborted by user");else this.exitError=new Error(`Failed to spawn Claude Code process: ${d.message}`),this.logForDebugging(this.exitError.message)}),this.child.on("close",(d,X0)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new f1("Claude Code process aborted by user");else{let s=this.getProcessExitError(d,X0);if(s)this.exitError=s,this.logForDebugging(s.message)}}),this.ready=!0}catch(Q){throw this.ready=!1,Q}}getProcessExitError(Q,Y){if(Q!==0&&Q!==null)return new Error(`Claude Code process exited with code ${Q}`);else if(Y)return new Error(`Claude Code process terminated by signal ${Y}`);return}logForDebugging(Q){if(process.env.DEBUG)process.stderr.write(`${Q} +`);if(this.options.stderr)this.options.stderr(Q)}write(Q){if(this.abortController.signal.aborted)throw new f1("Operation aborted");if(!this.ready||!this.childStdin)throw new Error("ProcessTransport is not ready for writing");if(this.child?.killed||this.child?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);if(process.env.DEBUG_SDK)process.stderr.write(`[ProcessTransport] Writing to stdin: ${Q.substring(0,100)} +`);try{if(!this.childStdin.write(Q)&&process.env.DEBUG_SDK)console.warn("[ProcessTransport] Write buffer full, data queued")}catch(Y){throw this.ready=!1,new Error(`Failed to write to process stdin: ${Y.message}`)}}close(){if(this.childStdin)this.childStdin.end(),this.childStdin=void 0;if(this.processExitHandler)process.off("exit",this.processExitHandler),this.processExitHandler=void 0;if(this.abortHandler)this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0;for(let{handler:Q}of this.exitListeners)this.child?.off("exit",Q);if(this.exitListeners=[],this.child&&!this.child.killed)this.child.kill("SIGTERM"),setTimeout(()=>{if(this.child&&!this.child.killed)this.child.kill("SIGKILL")},5000);this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.childStdout)throw new Error("ProcessTransport output stream not available");let Q=c6({input:this.childStdout});try{for await(let Y of Q)if(Y.trim())yield JSON.parse(Y);await this.waitForExit()}catch(Y){throw Y}finally{Q.close()}}endInput(){if(this.childStdin)this.childStdin.end()}getInputStream(){return this.childStdin}onExit(Q){if(!this.child)return()=>{};let Y=(J,W)=>{let z=this.getProcessExitError(J,W);Q(z)};return this.child.on("exit",Y),this.exitListeners.push({callback:Q,handler:Y}),()=>{if(this.child)this.child.off("exit",Y);let J=this.exitListeners.findIndex((W)=>W.handler===Y);if(J!==-1)this.exitListeners.splice(J,1)}}async waitForExit(){if(!this.child){if(this.exitError)throw this.exitError;return}if(this.child.exitCode!==null||this.child.killed){if(this.exitError)throw this.exitError;return}return new Promise((Q,Y)=>{let J=(z,H)=>{if(this.abortController.signal.aborted){Y(new f1("Operation aborted"));return}let X=this.getProcessExitError(z,H);if(X)Y(X);else Q()};this.child.once("exit",J);let W=(z)=>{this.child.off("exit",J),Y(z)};this.child.once("error",W),this.child.once("exit",()=>{this.child.off("error",W)})})}}function P8(Q){return![".js",".mjs",".tsx",".ts",".jsx"].some((J)=>Q.endsWith(J))}class u8{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(Q){this.returned=Q}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){if(this.queue.length>0)return Promise.resolve({done:!1,value:this.queue.shift()});if(this.isDone)return Promise.resolve({done:!0,value:void 0});if(this.hasError)return Promise.reject(this.hasError);return new Promise((Q,Y)=>{this.readResolve=Q,this.readReject=Y})}enqueue(Q){if(this.readResolve){let Y=this.readResolve;this.readResolve=void 0,this.readReject=void 0,Y({done:!1,value:Q})}else this.queue.push(Q)}done(){if(this.isDone=!0,this.readResolve){let Q=this.readResolve;this.readResolve=void 0,this.readReject=void 0,Q({done:!0,value:void 0})}}error(Q){if(this.hasError=Q,this.readReject){let Y=this.readReject;this.readResolve=void 0,this.readReject=void 0,Y(Q)}}return(){if(this.isDone=!0,this.returned)this.returned();return Promise.resolve({done:!0,value:void 0})}}class n8{sendMcpMessage;isClosed=!1;constructor(Q){this.sendMcpMessage=Q}onclose;onerror;onmessage;async start(){}async send(Q){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(Q)}async close(){if(this.isClosed)return;this.isClosed=!0,this.onclose?.()}}var s6=typeof global=="object"&&global&&global.Object===Object&&global,a6=s6,t6=typeof self=="object"&&self&&self.Object===Object&&self,e6=a6||t6||Function("return this")(),Q8=e6,WQ=Q8.Symbol,_9=WQ,c8=Object.prototype,QQ=c8.hasOwnProperty,XQ=c8.toString,U9=_9?_9.toStringTag:void 0;function YQ(Q){var Y=QQ.call(Q,U9),J=Q[U9];try{Q[U9]=void 0;var W=!0}catch(H){}var z=XQ.call(Q);if(W)if(Y)Q[U9]=J;else delete Q[U9];return z}var JQ=YQ,zQ=Object.prototype,GQ=zQ.toString;function BQ(Q){return GQ.call(Q)}var FQ=BQ,HQ="[object Null]",UQ="[object Undefined]",_8=_9?_9.toStringTag:void 0;function qQ(Q){if(Q==null)return Q===void 0?UQ:HQ;return _8&&_8 in Object(Q)?JQ(Q):FQ(Q)}var KQ=qQ;function MQ(Q){var Y=typeof Q;return Q!=null&&(Y=="object"||Y=="function")}var i8=MQ,NQ="[object AsyncFunction]",LQ="[object Function]",jQ="[object GeneratorFunction]",AQ="[object Proxy]";function VQ(Q){if(!i8(Q))return!1;var Y=KQ(Q);return Y==LQ||Y==jQ||Y==NQ||Y==AQ}var OQ=VQ,ZQ=Q8["__core-js_shared__"],p9=ZQ,T8=function(){var Q=/[^.]+$/.exec(p9&&p9.keys&&p9.keys.IE_PROTO||"");return Q?"Symbol(src)_1."+Q:""}();function wQ(Q){return!!T8&&T8 in Q}var RQ=wQ,DQ=Function.prototype,IQ=DQ.toString;function CQ(Q){if(Q!=null){try{return IQ.call(Q)}catch(Y){}try{return Q+""}catch(Y){}}return""}var PQ=CQ,_Q=/[\\^$.*+?()[\]{}|]/g,TQ=/^\[object .+?Constructor\]$/,EQ=Function.prototype,bQ=Object.prototype,SQ=EQ.toString,vQ=bQ.hasOwnProperty,gQ=RegExp("^"+SQ.call(vQ).replace(_Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function kQ(Q){if(!i8(Q)||RQ(Q))return!1;var Y=OQ(Q)?gQ:TQ;return Y.test(PQ(Q))}var xQ=kQ;function yQ(Q,Y){return Q==null?void 0:Q[Y]}var fQ=yQ;function hQ(Q,Y){var J=fQ(Q,Y);return xQ(J)?J:void 0}var o8=hQ;function $Q(Q,Y){return Q===Y||Q!==Q&&Y!==Y}var mQ=$Q,lQ=o8(Object,"create"),q9=lQ;function pQ(){this.__data__=q9?q9(null):{},this.size=0}var dQ=pQ;function uQ(Q){var Y=this.has(Q)&&delete this.__data__[Q];return this.size-=Y?1:0,Y}var nQ=uQ,cQ="__lodash_hash_undefined__",iQ=Object.prototype,oQ=iQ.hasOwnProperty;function rQ(Q){var Y=this.__data__;if(q9){var J=Y[Q];return J===cQ?void 0:J}return oQ.call(Y,Q)?Y[Q]:void 0}var sQ=rQ,aQ=Object.prototype,tQ=aQ.hasOwnProperty;function eQ(Q){var Y=this.__data__;return q9?Y[Q]!==void 0:tQ.call(Y,Q)}var WX=eQ,QX="__lodash_hash_undefined__";function XX(Q,Y){var J=this.__data__;return this.size+=this.has(Q)?0:1,J[Q]=q9&&Y===void 0?QX:Y,this}var YX=XX;function e1(Q){var Y=-1,J=Q==null?0:Q.length;this.clear();while(++Y-1}var NX=MX;function LX(Q,Y){var J=this.__data__,W=b9(J,Q);if(W<0)++this.size,J.push([Q,Y]);else J[W][1]=Y;return this}var jX=LX;function W9(Q){var Y=-1,J=Q==null?0:Q.length;this.clear();while(++Y{if(!Q||Q.trim()==="")return null;let Y=Q.split(",").map((H)=>H.trim()).filter(Boolean);if(Y.length===0)return null;let J=Y.some((H)=>H.startsWith("!")),W=Y.some((H)=>!H.startsWith("!"));if(J&&W)return null;let z=Y.map((H)=>H.replace(/^!/,"").toLowerCase());return{include:J?[]:z,exclude:J?z:[],isExclusive:J}});function yX(Q){let Y=[],J=Q.match(/^MCP server ["']([^"']+)["']/);if(J&&J[1])Y.push("mcp"),Y.push(J[1].toLowerCase());else{let H=Q.match(/^([^:[]+):/);if(H&&H[1])Y.push(H[1].trim().toLowerCase())}let W=Q.match(/^\[([^\]]+)]/);if(W&&W[1])Y.push(W[1].trim().toLowerCase());if(Q.toLowerCase().includes("statsig event:"))Y.push("statsig");let z=Q.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(z&&z[1]){let H=z[1].trim().toLowerCase();if(H.length<30&&!H.includes(" "))Y.push(H)}return Array.from(new Set(Y))}function fX(Q,Y){if(!Y)return!0;if(Q.length===0)return!1;if(Y.isExclusive)return!Q.some((J)=>Y.exclude.includes(J));else return Q.some((J)=>Y.include.includes(J))}function hX(Q,Y){if(!Y)return!0;let J=yX(Q);return fX(J,Y)}function lX(){return process.env.CLAUDE_CONFIG_DIR??$X(mX(),".claude")}function S8(Q){if(!Q)return!1;if(typeof Q==="boolean")return Q;let Y=Q.toLowerCase().trim();return["1","true","yes","on"].includes(Y)}var dX={name:"BASH_MAX_OUTPUT_LENGTH",default:30000,validate:(Q)=>{if(!Q)return{effective:30000,status:"valid"};let W=parseInt(Q,10);if(isNaN(W)||W<=0)return{effective:30000,status:"invalid",message:`Invalid value "${Q}" (using default: 30000)`};if(W>150000)return{effective:150000,status:"capped",message:`Capped from ${W} to 150000`};return{effective:W,status:"valid"}}},uX={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32000,validate:(Q)=>{if(!Q)return{effective:32000,status:"valid"};let Y=parseInt(Q,10);if(isNaN(Y)||Y<=0)return{effective:32000,status:"invalid",message:`Invalid value "${Q}" (using default: 32000)`};if(Y>32000)return{effective:32000,status:"capped",message:`Capped from ${Y} to 32000`};return{effective:Y,status:"valid"}}};function nX(){return{originalCwd:v8(),totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:v8(),modelUsage:{},mainLoopModelOverride:void 0,maxRateLimitFallbackActive:!1,initialMainLoopModel:null,modelStrings:null,isNonInteractiveSession:!0,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:pX(),loggerProvider:null,eventLogger:null,meterProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[dX,uX],lastAPIRequest:null,inMemoryErrorLog:[]}}var cX=nX();function iX(){return cX.sessionId}var mJ=V9(()=>{return S8(process.env.DEBUG)||S8(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||a8()||process.argv.some((Q)=>Q.startsWith("--debug="))}),oX=V9(()=>{let Q=process.argv.find((J)=>J.startsWith("--debug="));if(!Q)return null;let Y=Q.substring(8);return xX(Y)}),a8=V9(()=>{return process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e")});function rX(Q){let Y=oX();return hX(Q,Y)}var sX=!1;function K1(Q,{level:Y}={level:"debug"}){if(!rX(Q))return;if(sX&&Q.includes(` +`))Q=JSON.stringify(Q);let J=`[${Y.toUpperCase()}] ${Q.trim()} +`;if(a8()){kX(J);return}if(!L1().existsSync(n9(P9())))L1().mkdirSync(n9(P9()));L1().appendFileSync(P9(),J),aX()}function P9(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??s8(lX(),"debug",`${iX()}.txt`)}var aX=V9(()=>{try{let Q=P9(),Y=n9(Q),J=s8(Y,"latest");if(!L1().existsSync(Y))L1().mkdirSync(Y);if(L1().existsSync(J))try{L1().unlinkSync(J)}catch{}L1().symlinkSync(Q,J)}catch{}});class t8{transport;isSingleUserTurn;canUseTool;hooks;abortController;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new u8;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;pendingMcpResponses=new Map;firstResultReceivedPromise;firstResultReceivedResolve;constructor(Q,Y,J,W,z,H=new Map){this.transport=Q,this.isSingleUserTurn=Y,this.canUseTool=J,this.hooks=W,this.abortController=z;for(let[X,B]of H){let K=new n8((F)=>this.sendMcpServerMessageToCli(X,F));this.sdkMcpTransports.set(X,K),B.connect(K)}this.sdkMessages=this.readSdkMessages(),this.firstResultReceivedPromise=new Promise((X)=>{this.firstResultReceivedResolve=X}),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(Q){this.inputStream.error(Q)}cleanup(Q){if(this.cleanupPerformed)return;this.cleanupPerformed=!0;try{if(this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),Q)this.inputStream.error(Q);else this.inputStream.done()}catch(Y){}}next(...[Q]){return this.sdkMessages.next(...[Q])}return(Q){return this.sdkMessages.return(Q)}throw(Q){return this.sdkMessages.throw(Q)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let Q of this.transport.readMessages()){if(Q.type==="control_response"){let Y=this.pendingControlResponses.get(Q.response.request_id);if(Y)Y(Q.response);continue}else if(Q.type==="control_request"){this.handleControlRequest(Q);continue}else if(Q.type==="control_cancel_request"){this.handleControlCancelRequest(Q);continue}else if(Q.type==="keep_alive")continue;if(Q.type==="result"){if(this.firstResultReceivedResolve)this.firstResultReceivedResolve();if(this.isSingleUserTurn)this.transport.endInput()}this.inputStream.enqueue(Q)}this.inputStream.done(),this.cleanup()}catch(Q){this.inputStream.error(Q),this.cleanup(Q)}}async handleControlRequest(Q){let Y=new AbortController;this.cancelControllers.set(Q.request_id,Y);try{let J=await this.processControlRequest(Q,Y.signal),W={type:"control_response",response:{subtype:"success",request_id:Q.request_id,response:J}};await Promise.resolve(this.transport.write(JSON.stringify(W)+` +`))}catch(J){let W={type:"control_response",response:{subtype:"error",request_id:Q.request_id,error:J.message||String(J)}};await Promise.resolve(this.transport.write(JSON.stringify(W)+` +`))}finally{this.cancelControllers.delete(Q.request_id)}}handleControlCancelRequest(Q){let Y=this.cancelControllers.get(Q.request_id);if(Y)Y.abort(),this.cancelControllers.delete(Q.request_id)}async processControlRequest(Q,Y){if(Q.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return this.canUseTool(Q.request.tool_name,Q.request.input,{signal:Y,suggestions:Q.request.permission_suggestions})}else if(Q.request.subtype==="hook_callback")return await this.handleHookCallbacks(Q.request.callback_id,Q.request.input,Q.request.tool_use_id,Y);else if(Q.request.subtype==="mcp_message"){let J=Q.request,W=this.sdkMcpTransports.get(J.server_name);if(!W)throw new Error(`SDK MCP server not found: ${J.server_name}`);if("method"in J.message&&"id"in J.message&&J.message.id!==null)return{mcp_response:await this.handleMcpControlRequest(J.server_name,J,W)};else{if(W.onmessage)W.onmessage(J.message);return{mcp_response:{jsonrpc:"2.0",result:{},id:0}}}}throw new Error("Unsupported control request subtype: "+Q.request.subtype)}async*readSdkMessages(){for await(let Q of this.inputStream)yield Q}async initialize(){let Q;if(this.hooks){Q={};for(let[z,H]of Object.entries(this.hooks))if(H.length>0)Q[z]=H.map((X)=>{let B=[];for(let K of X.hooks){let F=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(F,K),B.push(F)}return{matcher:X.matcher,hookCallbackIds:B}})}let Y=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,J={subtype:"initialize",hooks:Q,sdkMcpServers:Y};return(await this.request(J)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(Q){await this.request({subtype:"set_permission_mode",mode:Q})}async setModel(Q){await this.request({subtype:"set_model",model:Q})}request(Q){let Y=Math.random().toString(36).substring(2,15),J={request_id:Y,type:"control_request",request:Q};return new Promise((W,z)=>{this.pendingControlResponses.set(Y,(H)=>{if(H.subtype==="success")W(H);else z(new Error(H.error))}),Promise.resolve(this.transport.write(JSON.stringify(J)+` +`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async accountInfo(){return(await this.initialization).account}async streamInput(Q){K1("[Query.streamInput] Starting to process input stream"),K1(`[Query.streamInput] this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`);try{let Y=0;for await(let J of Q){if(Y++,K1(`[Query.streamInput] Processing message ${Y}: ${J.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(J)+` +`))}if(K1(`[Query.streamInput] Finished processing ${Y} messages from input stream`),K1(`[Query.streamInput] About to check MCP servers. this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`),this.sdkMcpTransports.size>0&&this.firstResultReceivedPromise){K1("[Query.streamInput] Entering Promise.race to wait for result");let J=1e4,W;if(await Promise.race([this.firstResultReceivedPromise.then(()=>{if(K1("[Query.streamInput] Received first result, closing input stream"),W)clearTimeout(W)}),new Promise((z)=>{W=setTimeout(()=>{K1("[Query.streamInput] Timed out waiting for first result, closing input stream"),z()},J)})]),W)clearTimeout(W)}K1("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(Y){if(!(Y instanceof f1))throw Y}}handleHookCallbacks(Q,Y,J,W){let z=this.hookCallbacks.get(Q);if(!z)throw new Error(`No hook callback found for ID: ${Q}`);return z(Y,J,{signal:W})}sendMcpServerMessageToCli(Q,Y){if("id"in Y&&Y.id!==null&&Y.id!==void 0){let J=`${Q}:${Y.id}`,W=this.pendingMcpResponses.get(J);if(W){W.resolve(Y),this.pendingMcpResponses.delete(J);return}}throw new Error("No pending request found")}handleMcpControlRequest(Q,Y,J){let W="id"in Y.message?Y.message.id:null,z=`${Q}:${W}`;return new Promise((H,X)=>{let B=null,K=()=>{if(B)clearTimeout(B);this.pendingMcpResponses.delete(z)},F=(w)=>{K(),H(w)},O=(w)=>{K(),X(w)};if(this.pendingMcpResponses.set(z,{resolve:F,reject:O}),J.onmessage)J.onmessage(Y.message);else{K(),X(new Error("No message handler registered"));return}B=setTimeout(()=>{if(this.pendingMcpResponses.has(z))K(),X(new Error("Request timeout"))},30000)})}}function tX({prompt:Q,options:{abortController:Y=l8(),additionalDirectories:J=[],agents:W,allowedTools:z=[],appendSystemPrompt:H,canUseTool:X,continue:B,customSystemPrompt:K,cwd:F,disallowedTools:O=[],env:w,executable:P=p8()?"bun":"node",executableArgs:j=[],extraArgs:Z={},fallbackModel:U,forkSession:M,hooks:V,includePartialMessages:L,maxThinkingTokens:D,maxTurns:y,mcpServers:S,model:I,pathToClaudeCodeExecutable:_,permissionMode:g="default",permissionPromptToolName:x,resume:b,resumeSessionAt:k,settingSources:R,stderr:T,strictMcpConfig:f}={}}){if(!w)w={...process.env};if(!w.CLAUDE_CODE_ENTRYPOINT)w.CLAUDE_CODE_ENTRYPOINT="sdk-ts";if(!_)throw new Error("pathToClaudeCodeExecutable is required");let $={},p=new Map;if(S)for(let[J0,a]of Object.entries(S))if(a.type==="sdk"&&"instance"in a)p.set(J0,a.instance),$[J0]={type:"sdk",name:J0};else $[J0]=a;let d=typeof Q==="string",X0=new d8({abortController:Y,additionalDirectories:J,agents:W,cwd:F,executable:P,executableArgs:j,extraArgs:Z,pathToClaudeCodeExecutable:_,env:w,forkSession:M,stderr:T,customSystemPrompt:K,appendSystemPrompt:H,maxThinkingTokens:D,maxTurns:y,model:I,fallbackModel:U,permissionMode:g,permissionPromptToolName:x,continueConversation:B,resume:b,resumeSessionAt:k,settingSources:R,allowedTools:z,disallowedTools:O,mcpServers:$,strictMcpConfig:f,canUseTool:!!X,hooks:!!V,includePartialMessages:L}),s=new t8(X0,d,X,V,Y,p);if(typeof Q==="string")X0.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:Q}]},parent_tool_use_id:null})+` +`);else s.streamInput(Q);return s}var G={};B6(G,{void:()=>y5,util:()=>M0,unknown:()=>k5,union:()=>m5,undefined:()=>S5,tuple:()=>d5,transformer:()=>x8,symbol:()=>b5,string:()=>zW,strictObject:()=>$5,setErrorMap:()=>Q5,set:()=>c5,record:()=>u5,quotelessJson:()=>eX,promise:()=>t5,preprocess:()=>QY,pipeline:()=>XY,ostring:()=>YY,optional:()=>e5,onumber:()=>JY,oboolean:()=>zY,objectUtil:()=>c9,object:()=>h5,number:()=>GW,nullable:()=>WY,null:()=>v5,never:()=>x5,nativeEnum:()=>a5,nan:()=>_5,map:()=>n5,makeIssue:()=>E9,literal:()=>r5,lazy:()=>o5,late:()=>C5,isValid:()=>I1,isDirty:()=>o9,isAsync:()=>K9,isAborted:()=>i9,intersection:()=>p5,instanceof:()=>P5,getParsedType:()=>N1,getErrorMap:()=>T9,function:()=>i5,enum:()=>s5,effect:()=>x8,discriminatedUnion:()=>l5,defaultErrorMap:()=>m1,datetimeRegex:()=>XW,date:()=>E5,custom:()=>JW,coerce:()=>GY,boolean:()=>BW,bigint:()=>T5,array:()=>f5,any:()=>g5,addIssueToContext:()=>n,ZodVoid:()=>N9,ZodUnknown:()=>A1,ZodUnion:()=>u1,ZodUndefined:()=>p1,ZodType:()=>F0,ZodTuple:()=>G1,ZodTransformer:()=>r0,ZodSymbol:()=>M9,ZodString:()=>e0,ZodSet:()=>_1,ZodSchema:()=>F0,ZodRecord:()=>L9,ZodReadonly:()=>a1,ZodPromise:()=>T1,ZodPipeline:()=>O9,ZodParsedType:()=>i,ZodOptional:()=>Q1,ZodObject:()=>T0,ZodNumber:()=>V1,ZodNullable:()=>j1,ZodNull:()=>d1,ZodNever:()=>z1,ZodNativeEnum:()=>o1,ZodNaN:()=>A9,ZodMap:()=>j9,ZodLiteral:()=>i1,ZodLazy:()=>c1,ZodIssueCode:()=>l,ZodIntersection:()=>n1,ZodFunction:()=>$1,ZodFirstPartyTypeKind:()=>e,ZodError:()=>u0,ZodEnum:()=>Z1,ZodEffects:()=>r0,ZodDiscriminatedUnion:()=>v9,ZodDefault:()=>r1,ZodDate:()=>C1,ZodCatch:()=>s1,ZodBranded:()=>g9,ZodBoolean:()=>l1,ZodBigInt:()=>O1,ZodArray:()=>W1,ZodAny:()=>P1,Schema:()=>F0,ParseStatus:()=>f0,OK:()=>$0,NEVER:()=>BY,INVALID:()=>t,EMPTY_PATH:()=>X5,DIRTY:()=>h1,BRAND:()=>I5});var M0;(function(Q){Q.assertEqual=(z)=>{};function Y(z){}Q.assertIs=Y;function J(z){throw new Error}Q.assertNever=J,Q.arrayToEnum=(z)=>{let H={};for(let X of z)H[X]=X;return H},Q.getValidEnumValues=(z)=>{let H=Q.objectKeys(z).filter((B)=>typeof z[z[B]]!=="number"),X={};for(let B of H)X[B]=z[B];return Q.objectValues(X)},Q.objectValues=(z)=>{return Q.objectKeys(z).map(function(H){return z[H]})},Q.objectKeys=typeof Object.keys==="function"?(z)=>Object.keys(z):(z)=>{let H=[];for(let X in z)if(Object.prototype.hasOwnProperty.call(z,X))H.push(X);return H},Q.find=(z,H)=>{for(let X of z)if(H(X))return X;return},Q.isInteger=typeof Number.isInteger==="function"?(z)=>Number.isInteger(z):(z)=>typeof z==="number"&&Number.isFinite(z)&&Math.floor(z)===z;function W(z,H=" | "){return z.map((X)=>typeof X==="string"?`'${X}'`:X).join(H)}Q.joinValues=W,Q.jsonStringifyReplacer=(z,H)=>{if(typeof H==="bigint")return H.toString();return H}})(M0||(M0={}));var c9;(function(Q){Q.mergeShapes=(Y,J)=>{return{...Y,...J}}})(c9||(c9={}));var i=M0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),N1=(Q)=>{switch(typeof Q){case"undefined":return i.undefined;case"string":return i.string;case"number":return Number.isNaN(Q)?i.nan:i.number;case"boolean":return i.boolean;case"function":return i.function;case"bigint":return i.bigint;case"symbol":return i.symbol;case"object":if(Array.isArray(Q))return i.array;if(Q===null)return i.null;if(Q.then&&typeof Q.then==="function"&&Q.catch&&typeof Q.catch==="function")return i.promise;if(typeof Map!=="undefined"&&Q instanceof Map)return i.map;if(typeof Set!=="undefined"&&Q instanceof Set)return i.set;if(typeof Date!=="undefined"&&Q instanceof Date)return i.date;return i.object;default:return i.unknown}},l=M0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),eX=(Q)=>{return JSON.stringify(Q,null,2).replace(/"([^"]+)":/g,"$1:")};class u0 extends Error{get errors(){return this.issues}constructor(Q){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let Y=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,Y);else this.__proto__=Y;this.name="ZodError",this.issues=Q}format(Q){let Y=Q||function(z){return z.message},J={_errors:[]},W=(z)=>{for(let H of z.issues)if(H.code==="invalid_union")H.unionErrors.map(W);else if(H.code==="invalid_return_type")W(H.returnTypeError);else if(H.code==="invalid_arguments")W(H.argumentsError);else if(H.path.length===0)J._errors.push(Y(H));else{let X=J,B=0;while(BY.message){let Y={},J=[];for(let W of this.issues)if(W.path.length>0){let z=W.path[0];Y[z]=Y[z]||[],Y[z].push(Q(W))}else J.push(Q(W));return{formErrors:J,fieldErrors:Y}}get formErrors(){return this.flatten()}}u0.create=(Q)=>{return new u0(Q)};var W5=(Q,Y)=>{let J;switch(Q.code){case l.invalid_type:if(Q.received===i.undefined)J="Required";else J=`Expected ${Q.expected}, received ${Q.received}`;break;case l.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(Q.expected,M0.jsonStringifyReplacer)}`;break;case l.unrecognized_keys:J=`Unrecognized key(s) in object: ${M0.joinValues(Q.keys,", ")}`;break;case l.invalid_union:J="Invalid input";break;case l.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${M0.joinValues(Q.options)}`;break;case l.invalid_enum_value:J=`Invalid enum value. Expected ${M0.joinValues(Q.options)}, received '${Q.received}'`;break;case l.invalid_arguments:J="Invalid function arguments";break;case l.invalid_return_type:J="Invalid function return type";break;case l.invalid_date:J="Invalid date";break;case l.invalid_string:if(typeof Q.validation==="object")if("includes"in Q.validation){if(J=`Invalid input: must include "${Q.validation.includes}"`,typeof Q.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${Q.validation.position}`}else if("startsWith"in Q.validation)J=`Invalid input: must start with "${Q.validation.startsWith}"`;else if("endsWith"in Q.validation)J=`Invalid input: must end with "${Q.validation.endsWith}"`;else M0.assertNever(Q.validation);else if(Q.validation!=="regex")J=`Invalid ${Q.validation}`;else J="Invalid";break;case l.too_small:if(Q.type==="array")J=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at least":"more than"} ${Q.minimum} element(s)`;else if(Q.type==="string")J=`String must contain ${Q.exact?"exactly":Q.inclusive?"at least":"over"} ${Q.minimum} character(s)`;else if(Q.type==="number")J=`Number must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${Q.minimum}`;else if(Q.type==="bigint")J=`Number must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${Q.minimum}`;else if(Q.type==="date")J=`Date must be ${Q.exact?"exactly equal to ":Q.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(Q.minimum))}`;else J="Invalid input";break;case l.too_big:if(Q.type==="array")J=`Array must contain ${Q.exact?"exactly":Q.inclusive?"at most":"less than"} ${Q.maximum} element(s)`;else if(Q.type==="string")J=`String must contain ${Q.exact?"exactly":Q.inclusive?"at most":"under"} ${Q.maximum} character(s)`;else if(Q.type==="number")J=`Number must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="bigint")J=`BigInt must be ${Q.exact?"exactly":Q.inclusive?"less than or equal to":"less than"} ${Q.maximum}`;else if(Q.type==="date")J=`Date must be ${Q.exact?"exactly":Q.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(Q.maximum))}`;else J="Invalid input";break;case l.custom:J="Invalid input";break;case l.invalid_intersection_types:J="Intersection results could not be merged";break;case l.not_multiple_of:J=`Number must be a multiple of ${Q.multipleOf}`;break;case l.not_finite:J="Number must be finite";break;default:J=Y.defaultError,M0.assertNever(Q)}return{message:J}},m1=W5,e8=m1;function Q5(Q){e8=Q}function T9(){return e8}var E9=(Q)=>{let{data:Y,path:J,errorMaps:W,issueData:z}=Q,H=[...J,...z.path||[]],X={...z,path:H};if(z.message!==void 0)return{...z,path:H,message:z.message};let B="",K=W.filter((F)=>!!F).slice().reverse();for(let F of K)B=F(X,{data:Y,defaultError:B}).message;return{...z,path:H,message:B}},X5=[];function n(Q,Y){let J=T9(),W=E9({issueData:Y,data:Q.data,path:Q.path,errorMaps:[Q.common.contextualErrorMap,Q.schemaErrorMap,J,J===m1?void 0:m1].filter((z)=>!!z)});Q.common.issues.push(W)}class f0{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(Q,Y){let J=[];for(let W of Y){if(W.status==="aborted")return t;if(W.status==="dirty")Q.dirty();J.push(W.value)}return{status:Q.value,value:J}}static async mergeObjectAsync(Q,Y){let J=[];for(let W of Y){let z=await W.key,H=await W.value;J.push({key:z,value:H})}return f0.mergeObjectSync(Q,J)}static mergeObjectSync(Q,Y){let J={};for(let W of Y){let{key:z,value:H}=W;if(z.status==="aborted")return t;if(H.status==="aborted")return t;if(z.status==="dirty")Q.dirty();if(H.status==="dirty")Q.dirty();if(z.value!=="__proto__"&&(typeof H.value!=="undefined"||W.alwaysSet))J[z.value]=H.value}return{status:Q.value,value:J}}}var t=Object.freeze({status:"aborted"}),h1=(Q)=>({status:"dirty",value:Q}),$0=(Q)=>({status:"valid",value:Q}),i9=(Q)=>Q.status==="aborted",o9=(Q)=>Q.status==="dirty",I1=(Q)=>Q.status==="valid",K9=(Q)=>typeof Promise!=="undefined"&&Q instanceof Promise,r;(function(Q){Q.errToObj=(Y)=>typeof Y==="string"?{message:Y}:Y||{},Q.toString=(Y)=>typeof Y==="string"?Y:Y?.message})(r||(r={}));class X1{constructor(Q,Y,J,W){this._cachedPath=[],this.parent=Q,this.data=Y,this._path=J,this._key=W}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var g8=(Q,Y)=>{if(I1(Y))return{success:!0,data:Y.value};else{if(!Q.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new u0(Q.common.issues);return this._error=J,this._error}}}};function B0(Q){if(!Q)return{};let{errorMap:Y,invalid_type_error:J,required_error:W,description:z}=Q;if(Y&&(J||W))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(Y)return{errorMap:Y,description:z};return{errorMap:(X,B)=>{let{message:K}=Q;if(X.code==="invalid_enum_value")return{message:K??B.defaultError};if(typeof B.data==="undefined")return{message:K??W??B.defaultError};if(X.code!=="invalid_type")return{message:B.defaultError};return{message:K??J??B.defaultError}},description:z}}class F0{get description(){return this._def.description}_getType(Q){return N1(Q.data)}_getOrReturnCtx(Q,Y){return Y||{common:Q.parent.common,data:Q.data,parsedType:N1(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}_processInputParams(Q){return{status:new f0,ctx:{common:Q.parent.common,data:Q.data,parsedType:N1(Q.data),schemaErrorMap:this._def.errorMap,path:Q.path,parent:Q.parent}}}_parseSync(Q){let Y=this._parse(Q);if(K9(Y))throw new Error("Synchronous parse encountered promise.");return Y}_parseAsync(Q){let Y=this._parse(Q);return Promise.resolve(Y)}parse(Q,Y){let J=this.safeParse(Q,Y);if(J.success)return J.data;throw J.error}safeParse(Q,Y){let J={common:{issues:[],async:Y?.async??!1,contextualErrorMap:Y?.errorMap},path:Y?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:N1(Q)},W=this._parseSync({data:Q,path:J.path,parent:J});return g8(J,W)}"~validate"(Q){let Y={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:N1(Q)};if(!this["~standard"].async)try{let J=this._parseSync({data:Q,path:[],parent:Y});return I1(J)?{value:J.value}:{issues:Y.common.issues}}catch(J){if(J?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;Y.common={issues:[],async:!0}}return this._parseAsync({data:Q,path:[],parent:Y}).then((J)=>I1(J)?{value:J.value}:{issues:Y.common.issues})}async parseAsync(Q,Y){let J=await this.safeParseAsync(Q,Y);if(J.success)return J.data;throw J.error}async safeParseAsync(Q,Y){let J={common:{issues:[],contextualErrorMap:Y?.errorMap,async:!0},path:Y?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Q,parsedType:N1(Q)},W=this._parse({data:Q,path:J.path,parent:J}),z=await(K9(W)?W:Promise.resolve(W));return g8(J,z)}refine(Q,Y){let J=(W)=>{if(typeof Y==="string"||typeof Y==="undefined")return{message:Y};else if(typeof Y==="function")return Y(W);else return Y};return this._refinement((W,z)=>{let H=Q(W),X=()=>z.addIssue({code:l.custom,...J(W)});if(typeof Promise!=="undefined"&&H instanceof Promise)return H.then((B)=>{if(!B)return X(),!1;else return!0});if(!H)return X(),!1;else return!0})}refinement(Q,Y){return this._refinement((J,W)=>{if(!Q(J))return W.addIssue(typeof Y==="function"?Y(J,W):Y),!1;else return!0})}_refinement(Q){return new r0({schema:this,typeName:e.ZodEffects,effect:{type:"refinement",refinement:Q}})}superRefine(Q){return this._refinement(Q)}constructor(Q){this.spa=this.safeParseAsync,this._def=Q,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(Y)=>this["~validate"](Y)}}optional(){return Q1.create(this,this._def)}nullable(){return j1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return W1.create(this)}promise(){return T1.create(this,this._def)}or(Q){return u1.create([this,Q],this._def)}and(Q){return n1.create(this,Q,this._def)}transform(Q){return new r0({...B0(this._def),schema:this,typeName:e.ZodEffects,effect:{type:"transform",transform:Q}})}default(Q){let Y=typeof Q==="function"?Q:()=>Q;return new r1({...B0(this._def),innerType:this,defaultValue:Y,typeName:e.ZodDefault})}brand(){return new g9({typeName:e.ZodBranded,type:this,...B0(this._def)})}catch(Q){let Y=typeof Q==="function"?Q:()=>Q;return new s1({...B0(this._def),innerType:this,catchValue:Y,typeName:e.ZodCatch})}describe(Q){return new this.constructor({...this._def,description:Q})}pipe(Q){return O9.create(this,Q)}readonly(){return a1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Y5=/^c[^\s-]{8,}$/i,J5=/^[0-9a-z]+$/,z5=/^[0-9A-HJKMNP-TV-Z]{26}$/i,G5=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,B5=/^[a-z0-9_-]{21}$/i,F5=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,H5=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,U5=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,q5="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",d9,K5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,M5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,N5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,L5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j5=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,A5=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,WW="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",V5=new RegExp(`^${WW}$`);function QW(Q){let Y="[0-5]\\d";if(Q.precision)Y=`${Y}\\.\\d{${Q.precision}}`;else if(Q.precision==null)Y=`${Y}(\\.\\d+)?`;let J=Q.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${Y})${J}`}function O5(Q){return new RegExp(`^${QW(Q)}$`)}function XW(Q){let Y=`${WW}T${QW(Q)}`,J=[];if(J.push(Q.local?"Z?":"Z"),Q.offset)J.push("([+-]\\d{2}:?\\d{2})");return Y=`${Y}(${J.join("|")})`,new RegExp(`^${Y}$`)}function Z5(Q,Y){if((Y==="v4"||!Y)&&K5.test(Q))return!0;if((Y==="v6"||!Y)&&N5.test(Q))return!0;return!1}function w5(Q,Y){if(!F5.test(Q))return!1;try{let[J]=Q.split(".");if(!J)return!1;let W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),z=JSON.parse(atob(W));if(typeof z!=="object"||z===null)return!1;if("typ"in z&&z?.typ!=="JWT")return!1;if(!z.alg)return!1;if(Y&&z.alg!==Y)return!1;return!0}catch{return!1}}function R5(Q,Y){if((Y==="v4"||!Y)&&M5.test(Q))return!0;if((Y==="v6"||!Y)&&L5.test(Q))return!0;return!1}class e0 extends F0{_parse(Q){if(this._def.coerce)Q.data=String(Q.data);if(this._getType(Q)!==i.string){let z=this._getOrReturnCtx(Q);return n(z,{code:l.invalid_type,expected:i.string,received:z.parsedType}),t}let J=new f0,W=void 0;for(let z of this._def.checks)if(z.kind==="min"){if(Q.data.lengthz.value)W=this._getOrReturnCtx(Q,W),n(W,{code:l.too_big,maximum:z.value,type:"string",inclusive:!0,exact:!1,message:z.message}),J.dirty()}else if(z.kind==="length"){let H=Q.data.length>z.value,X=Q.data.lengthQ.test(W),{validation:Y,code:l.invalid_string,...r.errToObj(J)})}_addCheck(Q){return new e0({...this._def,checks:[...this._def.checks,Q]})}email(Q){return this._addCheck({kind:"email",...r.errToObj(Q)})}url(Q){return this._addCheck({kind:"url",...r.errToObj(Q)})}emoji(Q){return this._addCheck({kind:"emoji",...r.errToObj(Q)})}uuid(Q){return this._addCheck({kind:"uuid",...r.errToObj(Q)})}nanoid(Q){return this._addCheck({kind:"nanoid",...r.errToObj(Q)})}cuid(Q){return this._addCheck({kind:"cuid",...r.errToObj(Q)})}cuid2(Q){return this._addCheck({kind:"cuid2",...r.errToObj(Q)})}ulid(Q){return this._addCheck({kind:"ulid",...r.errToObj(Q)})}base64(Q){return this._addCheck({kind:"base64",...r.errToObj(Q)})}base64url(Q){return this._addCheck({kind:"base64url",...r.errToObj(Q)})}jwt(Q){return this._addCheck({kind:"jwt",...r.errToObj(Q)})}ip(Q){return this._addCheck({kind:"ip",...r.errToObj(Q)})}cidr(Q){return this._addCheck({kind:"cidr",...r.errToObj(Q)})}datetime(Q){if(typeof Q==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:Q});return this._addCheck({kind:"datetime",precision:typeof Q?.precision==="undefined"?null:Q?.precision,offset:Q?.offset??!1,local:Q?.local??!1,...r.errToObj(Q?.message)})}date(Q){return this._addCheck({kind:"date",message:Q})}time(Q){if(typeof Q==="string")return this._addCheck({kind:"time",precision:null,message:Q});return this._addCheck({kind:"time",precision:typeof Q?.precision==="undefined"?null:Q?.precision,...r.errToObj(Q?.message)})}duration(Q){return this._addCheck({kind:"duration",...r.errToObj(Q)})}regex(Q,Y){return this._addCheck({kind:"regex",regex:Q,...r.errToObj(Y)})}includes(Q,Y){return this._addCheck({kind:"includes",value:Q,position:Y?.position,...r.errToObj(Y?.message)})}startsWith(Q,Y){return this._addCheck({kind:"startsWith",value:Q,...r.errToObj(Y)})}endsWith(Q,Y){return this._addCheck({kind:"endsWith",value:Q,...r.errToObj(Y)})}min(Q,Y){return this._addCheck({kind:"min",value:Q,...r.errToObj(Y)})}max(Q,Y){return this._addCheck({kind:"max",value:Q,...r.errToObj(Y)})}length(Q,Y){return this._addCheck({kind:"length",value:Q,...r.errToObj(Y)})}nonempty(Q){return this.min(1,r.errToObj(Q))}trim(){return new e0({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e0({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e0({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((Q)=>Q.kind==="datetime")}get isDate(){return!!this._def.checks.find((Q)=>Q.kind==="date")}get isTime(){return!!this._def.checks.find((Q)=>Q.kind==="time")}get isDuration(){return!!this._def.checks.find((Q)=>Q.kind==="duration")}get isEmail(){return!!this._def.checks.find((Q)=>Q.kind==="email")}get isURL(){return!!this._def.checks.find((Q)=>Q.kind==="url")}get isEmoji(){return!!this._def.checks.find((Q)=>Q.kind==="emoji")}get isUUID(){return!!this._def.checks.find((Q)=>Q.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((Q)=>Q.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((Q)=>Q.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((Q)=>Q.kind==="cuid2")}get isULID(){return!!this._def.checks.find((Q)=>Q.kind==="ulid")}get isIP(){return!!this._def.checks.find((Q)=>Q.kind==="ip")}get isCIDR(){return!!this._def.checks.find((Q)=>Q.kind==="cidr")}get isBase64(){return!!this._def.checks.find((Q)=>Q.kind==="base64")}get isBase64url(){return!!this._def.checks.find((Q)=>Q.kind==="base64url")}get minLength(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q===null||Y.value>Q)Q=Y.value}return Q}get maxLength(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="max"){if(Q===null||Y.value{return new e0({checks:[],typeName:e.ZodString,coerce:Q?.coerce??!1,...B0(Q)})};function D5(Q,Y){let J=(Q.toString().split(".")[1]||"").length,W=(Y.toString().split(".")[1]||"").length,z=J>W?J:W,H=Number.parseInt(Q.toFixed(z).replace(".","")),X=Number.parseInt(Y.toFixed(z).replace(".",""));return H%X/10**z}class V1 extends F0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(Q){if(this._def.coerce)Q.data=Number(Q.data);if(this._getType(Q)!==i.number){let z=this._getOrReturnCtx(Q);return n(z,{code:l.invalid_type,expected:i.number,received:z.parsedType}),t}let J=void 0,W=new f0;for(let z of this._def.checks)if(z.kind==="int"){if(!M0.isInteger(Q.data))J=this._getOrReturnCtx(Q,J),n(J,{code:l.invalid_type,expected:"integer",received:"float",message:z.message}),W.dirty()}else if(z.kind==="min"){if(z.inclusive?Q.dataz.value:Q.data>=z.value)J=this._getOrReturnCtx(Q,J),n(J,{code:l.too_big,maximum:z.value,type:"number",inclusive:z.inclusive,exact:!1,message:z.message}),W.dirty()}else if(z.kind==="multipleOf"){if(D5(Q.data,z.value)!==0)J=this._getOrReturnCtx(Q,J),n(J,{code:l.not_multiple_of,multipleOf:z.value,message:z.message}),W.dirty()}else if(z.kind==="finite"){if(!Number.isFinite(Q.data))J=this._getOrReturnCtx(Q,J),n(J,{code:l.not_finite,message:z.message}),W.dirty()}else M0.assertNever(z);return{status:W.value,value:Q.data}}gte(Q,Y){return this.setLimit("min",Q,!0,r.toString(Y))}gt(Q,Y){return this.setLimit("min",Q,!1,r.toString(Y))}lte(Q,Y){return this.setLimit("max",Q,!0,r.toString(Y))}lt(Q,Y){return this.setLimit("max",Q,!1,r.toString(Y))}setLimit(Q,Y,J,W){return new V1({...this._def,checks:[...this._def.checks,{kind:Q,value:Y,inclusive:J,message:r.toString(W)}]})}_addCheck(Q){return new V1({...this._def,checks:[...this._def.checks,Q]})}int(Q){return this._addCheck({kind:"int",message:r.toString(Q)})}positive(Q){return this._addCheck({kind:"min",value:0,inclusive:!1,message:r.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:0,inclusive:!1,message:r.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:0,inclusive:!0,message:r.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:0,inclusive:!0,message:r.toString(Q)})}multipleOf(Q,Y){return this._addCheck({kind:"multipleOf",value:Q,message:r.toString(Y)})}finite(Q){return this._addCheck({kind:"finite",message:r.toString(Q)})}safe(Q){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:r.toString(Q)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:r.toString(Q)})}get minValue(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q===null||Y.value>Q)Q=Y.value}return Q}get maxValue(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="max"){if(Q===null||Y.valueQ.kind==="int"||Q.kind==="multipleOf"&&M0.isInteger(Q.value))}get isFinite(){let Q=null,Y=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}else if(J.kind==="max"){if(Q===null||J.value{return new V1({checks:[],typeName:e.ZodNumber,coerce:Q?.coerce||!1,...B0(Q)})};class O1 extends F0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(Q){if(this._def.coerce)try{Q.data=BigInt(Q.data)}catch{return this._getInvalidInput(Q)}if(this._getType(Q)!==i.bigint)return this._getInvalidInput(Q);let J=void 0,W=new f0;for(let z of this._def.checks)if(z.kind==="min"){if(z.inclusive?Q.dataz.value:Q.data>=z.value)J=this._getOrReturnCtx(Q,J),n(J,{code:l.too_big,type:"bigint",maximum:z.value,inclusive:z.inclusive,message:z.message}),W.dirty()}else if(z.kind==="multipleOf"){if(Q.data%z.value!==BigInt(0))J=this._getOrReturnCtx(Q,J),n(J,{code:l.not_multiple_of,multipleOf:z.value,message:z.message}),W.dirty()}else M0.assertNever(z);return{status:W.value,value:Q.data}}_getInvalidInput(Q){let Y=this._getOrReturnCtx(Q);return n(Y,{code:l.invalid_type,expected:i.bigint,received:Y.parsedType}),t}gte(Q,Y){return this.setLimit("min",Q,!0,r.toString(Y))}gt(Q,Y){return this.setLimit("min",Q,!1,r.toString(Y))}lte(Q,Y){return this.setLimit("max",Q,!0,r.toString(Y))}lt(Q,Y){return this.setLimit("max",Q,!1,r.toString(Y))}setLimit(Q,Y,J,W){return new O1({...this._def,checks:[...this._def.checks,{kind:Q,value:Y,inclusive:J,message:r.toString(W)}]})}_addCheck(Q){return new O1({...this._def,checks:[...this._def.checks,Q]})}positive(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:r.toString(Q)})}negative(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:r.toString(Q)})}nonpositive(Q){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:r.toString(Q)})}nonnegative(Q){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:r.toString(Q)})}multipleOf(Q,Y){return this._addCheck({kind:"multipleOf",value:Q,message:r.toString(Y)})}get minValue(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q===null||Y.value>Q)Q=Y.value}return Q}get maxValue(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="max"){if(Q===null||Y.value{return new O1({checks:[],typeName:e.ZodBigInt,coerce:Q?.coerce??!1,...B0(Q)})};class l1 extends F0{_parse(Q){if(this._def.coerce)Q.data=Boolean(Q.data);if(this._getType(Q)!==i.boolean){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.boolean,received:J.parsedType}),t}return $0(Q.data)}}l1.create=(Q)=>{return new l1({typeName:e.ZodBoolean,coerce:Q?.coerce||!1,...B0(Q)})};class C1 extends F0{_parse(Q){if(this._def.coerce)Q.data=new Date(Q.data);if(this._getType(Q)!==i.date){let z=this._getOrReturnCtx(Q);return n(z,{code:l.invalid_type,expected:i.date,received:z.parsedType}),t}if(Number.isNaN(Q.data.getTime())){let z=this._getOrReturnCtx(Q);return n(z,{code:l.invalid_date}),t}let J=new f0,W=void 0;for(let z of this._def.checks)if(z.kind==="min"){if(Q.data.getTime()z.value)W=this._getOrReturnCtx(Q,W),n(W,{code:l.too_big,message:z.message,inclusive:!0,exact:!1,maximum:z.value,type:"date"}),J.dirty()}else M0.assertNever(z);return{status:J.value,value:new Date(Q.data.getTime())}}_addCheck(Q){return new C1({...this._def,checks:[...this._def.checks,Q]})}min(Q,Y){return this._addCheck({kind:"min",value:Q.getTime(),message:r.toString(Y)})}max(Q,Y){return this._addCheck({kind:"max",value:Q.getTime(),message:r.toString(Y)})}get minDate(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="min"){if(Q===null||Y.value>Q)Q=Y.value}return Q!=null?new Date(Q):null}get maxDate(){let Q=null;for(let Y of this._def.checks)if(Y.kind==="max"){if(Q===null||Y.value{return new C1({checks:[],coerce:Q?.coerce||!1,typeName:e.ZodDate,...B0(Q)})};class M9 extends F0{_parse(Q){if(this._getType(Q)!==i.symbol){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.symbol,received:J.parsedType}),t}return $0(Q.data)}}M9.create=(Q)=>{return new M9({typeName:e.ZodSymbol,...B0(Q)})};class p1 extends F0{_parse(Q){if(this._getType(Q)!==i.undefined){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.undefined,received:J.parsedType}),t}return $0(Q.data)}}p1.create=(Q)=>{return new p1({typeName:e.ZodUndefined,...B0(Q)})};class d1 extends F0{_parse(Q){if(this._getType(Q)!==i.null){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.null,received:J.parsedType}),t}return $0(Q.data)}}d1.create=(Q)=>{return new d1({typeName:e.ZodNull,...B0(Q)})};class P1 extends F0{constructor(){super(...arguments);this._any=!0}_parse(Q){return $0(Q.data)}}P1.create=(Q)=>{return new P1({typeName:e.ZodAny,...B0(Q)})};class A1 extends F0{constructor(){super(...arguments);this._unknown=!0}_parse(Q){return $0(Q.data)}}A1.create=(Q)=>{return new A1({typeName:e.ZodUnknown,...B0(Q)})};class z1 extends F0{_parse(Q){let Y=this._getOrReturnCtx(Q);return n(Y,{code:l.invalid_type,expected:i.never,received:Y.parsedType}),t}}z1.create=(Q)=>{return new z1({typeName:e.ZodNever,...B0(Q)})};class N9 extends F0{_parse(Q){if(this._getType(Q)!==i.undefined){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.void,received:J.parsedType}),t}return $0(Q.data)}}N9.create=(Q)=>{return new N9({typeName:e.ZodVoid,...B0(Q)})};class W1 extends F0{_parse(Q){let{ctx:Y,status:J}=this._processInputParams(Q),W=this._def;if(Y.parsedType!==i.array)return n(Y,{code:l.invalid_type,expected:i.array,received:Y.parsedType}),t;if(W.exactLength!==null){let H=Y.data.length>W.exactLength.value,X=Y.data.lengthW.maxLength.value)n(Y,{code:l.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if(Y.common.async)return Promise.all([...Y.data].map((H,X)=>{return W.type._parseAsync(new X1(Y,H,Y.path,X))})).then((H)=>{return f0.mergeArray(J,H)});let z=[...Y.data].map((H,X)=>{return W.type._parseSync(new X1(Y,H,Y.path,X))});return f0.mergeArray(J,z)}get element(){return this._def.type}min(Q,Y){return new W1({...this._def,minLength:{value:Q,message:r.toString(Y)}})}max(Q,Y){return new W1({...this._def,maxLength:{value:Q,message:r.toString(Y)}})}length(Q,Y){return new W1({...this._def,exactLength:{value:Q,message:r.toString(Y)}})}nonempty(Q){return this.min(1,Q)}}W1.create=(Q,Y)=>{return new W1({type:Q,minLength:null,maxLength:null,exactLength:null,typeName:e.ZodArray,...B0(Y)})};function y1(Q){if(Q instanceof T0){let Y={};for(let J in Q.shape){let W=Q.shape[J];Y[J]=Q1.create(y1(W))}return new T0({...Q._def,shape:()=>Y})}else if(Q instanceof W1)return new W1({...Q._def,type:y1(Q.element)});else if(Q instanceof Q1)return Q1.create(y1(Q.unwrap()));else if(Q instanceof j1)return j1.create(y1(Q.unwrap()));else if(Q instanceof G1)return G1.create(Q.items.map((Y)=>y1(Y)));else return Q}class T0 extends F0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let Q=this._def.shape(),Y=M0.objectKeys(Q);return this._cached={shape:Q,keys:Y},this._cached}_parse(Q){if(this._getType(Q)!==i.object){let K=this._getOrReturnCtx(Q);return n(K,{code:l.invalid_type,expected:i.object,received:K.parsedType}),t}let{status:J,ctx:W}=this._processInputParams(Q),{shape:z,keys:H}=this._getCached(),X=[];if(!(this._def.catchall instanceof z1&&this._def.unknownKeys==="strip")){for(let K in W.data)if(!H.includes(K))X.push(K)}let B=[];for(let K of H){let F=z[K],O=W.data[K];B.push({key:{status:"valid",value:K},value:F._parse(new X1(W,O,W.path,K)),alwaysSet:K in W.data})}if(this._def.catchall instanceof z1){let K=this._def.unknownKeys;if(K==="passthrough")for(let F of X)B.push({key:{status:"valid",value:F},value:{status:"valid",value:W.data[F]}});else if(K==="strict"){if(X.length>0)n(W,{code:l.unrecognized_keys,keys:X}),J.dirty()}else if(K==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let K=this._def.catchall;for(let F of X){let O=W.data[F];B.push({key:{status:"valid",value:F},value:K._parse(new X1(W,O,W.path,F)),alwaysSet:F in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let K=[];for(let F of B){let O=await F.key,w=await F.value;K.push({key:O,value:w,alwaysSet:F.alwaysSet})}return K}).then((K)=>{return f0.mergeObjectSync(J,K)});else return f0.mergeObjectSync(J,B)}get shape(){return this._def.shape()}strict(Q){return r.errToObj,new T0({...this._def,unknownKeys:"strict",...Q!==void 0?{errorMap:(Y,J)=>{let W=this._def.errorMap?.(Y,J).message??J.defaultError;if(Y.code==="unrecognized_keys")return{message:r.errToObj(Q).message??W};return{message:W}}}:{}})}strip(){return new T0({...this._def,unknownKeys:"strip"})}passthrough(){return new T0({...this._def,unknownKeys:"passthrough"})}extend(Q){return new T0({...this._def,shape:()=>({...this._def.shape(),...Q})})}merge(Q){return new T0({unknownKeys:Q._def.unknownKeys,catchall:Q._def.catchall,shape:()=>({...this._def.shape(),...Q._def.shape()}),typeName:e.ZodObject})}setKey(Q,Y){return this.augment({[Q]:Y})}catchall(Q){return new T0({...this._def,catchall:Q})}pick(Q){let Y={};for(let J of M0.objectKeys(Q))if(Q[J]&&this.shape[J])Y[J]=this.shape[J];return new T0({...this._def,shape:()=>Y})}omit(Q){let Y={};for(let J of M0.objectKeys(this.shape))if(!Q[J])Y[J]=this.shape[J];return new T0({...this._def,shape:()=>Y})}deepPartial(){return y1(this)}partial(Q){let Y={};for(let J of M0.objectKeys(this.shape)){let W=this.shape[J];if(Q&&!Q[J])Y[J]=W;else Y[J]=W.optional()}return new T0({...this._def,shape:()=>Y})}required(Q){let Y={};for(let J of M0.objectKeys(this.shape))if(Q&&!Q[J])Y[J]=this.shape[J];else{let z=this.shape[J];while(z instanceof Q1)z=z._def.innerType;Y[J]=z}return new T0({...this._def,shape:()=>Y})}keyof(){return YW(M0.objectKeys(this.shape))}}T0.create=(Q,Y)=>{return new T0({shape:()=>Q,unknownKeys:"strip",catchall:z1.create(),typeName:e.ZodObject,...B0(Y)})};T0.strictCreate=(Q,Y)=>{return new T0({shape:()=>Q,unknownKeys:"strict",catchall:z1.create(),typeName:e.ZodObject,...B0(Y)})};T0.lazycreate=(Q,Y)=>{return new T0({shape:Q,unknownKeys:"strip",catchall:z1.create(),typeName:e.ZodObject,...B0(Y)})};class u1 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q),J=this._def.options;function W(z){for(let X of z)if(X.result.status==="valid")return X.result;for(let X of z)if(X.result.status==="dirty")return Y.common.issues.push(...X.ctx.common.issues),X.result;let H=z.map((X)=>new u0(X.ctx.common.issues));return n(Y,{code:l.invalid_union,unionErrors:H}),t}if(Y.common.async)return Promise.all(J.map(async(z)=>{let H={...Y,common:{...Y.common,issues:[]},parent:null};return{result:await z._parseAsync({data:Y.data,path:Y.path,parent:H}),ctx:H}})).then(W);else{let z=void 0,H=[];for(let B of J){let K={...Y,common:{...Y.common,issues:[]},parent:null},F=B._parseSync({data:Y.data,path:Y.path,parent:K});if(F.status==="valid")return F;else if(F.status==="dirty"&&!z)z={result:F,ctx:K};if(K.common.issues.length)H.push(K.common.issues)}if(z)return Y.common.issues.push(...z.ctx.common.issues),z.result;let X=H.map((B)=>new u0(B));return n(Y,{code:l.invalid_union,unionErrors:X}),t}}get options(){return this._def.options}}u1.create=(Q,Y)=>{return new u1({options:Q,typeName:e.ZodUnion,...B0(Y)})};var M1=(Q)=>{if(Q instanceof c1)return M1(Q.schema);else if(Q instanceof r0)return M1(Q.innerType());else if(Q instanceof i1)return[Q.value];else if(Q instanceof Z1)return Q.options;else if(Q instanceof o1)return M0.objectValues(Q.enum);else if(Q instanceof r1)return M1(Q._def.innerType);else if(Q instanceof p1)return[void 0];else if(Q instanceof d1)return[null];else if(Q instanceof Q1)return[void 0,...M1(Q.unwrap())];else if(Q instanceof j1)return[null,...M1(Q.unwrap())];else if(Q instanceof g9)return M1(Q.unwrap());else if(Q instanceof a1)return M1(Q.unwrap());else if(Q instanceof s1)return M1(Q._def.innerType);else return[]};class v9 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q);if(Y.parsedType!==i.object)return n(Y,{code:l.invalid_type,expected:i.object,received:Y.parsedType}),t;let J=this.discriminator,W=Y.data[J],z=this.optionsMap.get(W);if(!z)return n(Y,{code:l.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),t;if(Y.common.async)return z._parseAsync({data:Y.data,path:Y.path,parent:Y});else return z._parseSync({data:Y.data,path:Y.path,parent:Y})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(Q,Y,J){let W=new Map;for(let z of Y){let H=M1(z.shape[Q]);if(!H.length)throw new Error(`A discriminator value for key \`${Q}\` could not be extracted from all schema options`);for(let X of H){if(W.has(X))throw new Error(`Discriminator property ${String(Q)} has duplicate value ${String(X)}`);W.set(X,z)}}return new v9({typeName:e.ZodDiscriminatedUnion,discriminator:Q,options:Y,optionsMap:W,...B0(J)})}}function r9(Q,Y){let J=N1(Q),W=N1(Y);if(Q===Y)return{valid:!0,data:Q};else if(J===i.object&&W===i.object){let z=M0.objectKeys(Y),H=M0.objectKeys(Q).filter((B)=>z.indexOf(B)!==-1),X={...Q,...Y};for(let B of H){let K=r9(Q[B],Y[B]);if(!K.valid)return{valid:!1};X[B]=K.data}return{valid:!0,data:X}}else if(J===i.array&&W===i.array){if(Q.length!==Y.length)return{valid:!1};let z=[];for(let H=0;H{if(i9(z)||i9(H))return t;let X=r9(z.value,H.value);if(!X.valid)return n(J,{code:l.invalid_intersection_types}),t;if(o9(z)||o9(H))Y.dirty();return{status:Y.value,value:X.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([z,H])=>W(z,H));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}n1.create=(Q,Y,J)=>{return new n1({left:Q,right:Y,typeName:e.ZodIntersection,...B0(J)})};class G1 extends F0{_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q);if(J.parsedType!==i.array)return n(J,{code:l.invalid_type,expected:i.array,received:J.parsedType}),t;if(J.data.lengththis._def.items.length)n(J,{code:l.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Y.dirty();let z=[...J.data].map((H,X)=>{let B=this._def.items[X]||this._def.rest;if(!B)return null;return B._parse(new X1(J,H,J.path,X))}).filter((H)=>!!H);if(J.common.async)return Promise.all(z).then((H)=>{return f0.mergeArray(Y,H)});else return f0.mergeArray(Y,z)}get items(){return this._def.items}rest(Q){return new G1({...this._def,rest:Q})}}G1.create=(Q,Y)=>{if(!Array.isArray(Q))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new G1({items:Q,typeName:e.ZodTuple,rest:null,...B0(Y)})};class L9 extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q);if(J.parsedType!==i.object)return n(J,{code:l.invalid_type,expected:i.object,received:J.parsedType}),t;let W=[],z=this._def.keyType,H=this._def.valueType;for(let X in J.data)W.push({key:z._parse(new X1(J,X,J.path,X)),value:H._parse(new X1(J,J.data[X],J.path,X)),alwaysSet:X in J.data});if(J.common.async)return f0.mergeObjectAsync(Y,W);else return f0.mergeObjectSync(Y,W)}get element(){return this._def.valueType}static create(Q,Y,J){if(Y instanceof F0)return new L9({keyType:Q,valueType:Y,typeName:e.ZodRecord,...B0(J)});return new L9({keyType:e0.create(),valueType:Q,typeName:e.ZodRecord,...B0(Y)})}}class j9 extends F0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q);if(J.parsedType!==i.map)return n(J,{code:l.invalid_type,expected:i.map,received:J.parsedType}),t;let W=this._def.keyType,z=this._def.valueType,H=[...J.data.entries()].map(([X,B],K)=>{return{key:W._parse(new X1(J,X,J.path,[K,"key"])),value:z._parse(new X1(J,B,J.path,[K,"value"]))}});if(J.common.async){let X=new Map;return Promise.resolve().then(async()=>{for(let B of H){let K=await B.key,F=await B.value;if(K.status==="aborted"||F.status==="aborted")return t;if(K.status==="dirty"||F.status==="dirty")Y.dirty();X.set(K.value,F.value)}return{status:Y.value,value:X}})}else{let X=new Map;for(let B of H){let{key:K,value:F}=B;if(K.status==="aborted"||F.status==="aborted")return t;if(K.status==="dirty"||F.status==="dirty")Y.dirty();X.set(K.value,F.value)}return{status:Y.value,value:X}}}}j9.create=(Q,Y,J)=>{return new j9({valueType:Y,keyType:Q,typeName:e.ZodMap,...B0(J)})};class _1 extends F0{_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q);if(J.parsedType!==i.set)return n(J,{code:l.invalid_type,expected:i.set,received:J.parsedType}),t;let W=this._def;if(W.minSize!==null){if(J.data.sizeW.maxSize.value)n(J,{code:l.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),Y.dirty()}let z=this._def.valueType;function H(B){let K=new Set;for(let F of B){if(F.status==="aborted")return t;if(F.status==="dirty")Y.dirty();K.add(F.value)}return{status:Y.value,value:K}}let X=[...J.data.values()].map((B,K)=>z._parse(new X1(J,B,J.path,K)));if(J.common.async)return Promise.all(X).then((B)=>H(B));else return H(X)}min(Q,Y){return new _1({...this._def,minSize:{value:Q,message:r.toString(Y)}})}max(Q,Y){return new _1({...this._def,maxSize:{value:Q,message:r.toString(Y)}})}size(Q,Y){return this.min(Q,Y).max(Q,Y)}nonempty(Q){return this.min(1,Q)}}_1.create=(Q,Y)=>{return new _1({valueType:Q,minSize:null,maxSize:null,typeName:e.ZodSet,...B0(Y)})};class $1 extends F0{constructor(){super(...arguments);this.validate=this.implement}_parse(Q){let{ctx:Y}=this._processInputParams(Q);if(Y.parsedType!==i.function)return n(Y,{code:l.invalid_type,expected:i.function,received:Y.parsedType}),t;function J(X,B){return E9({data:X,path:Y.path,errorMaps:[Y.common.contextualErrorMap,Y.schemaErrorMap,T9(),m1].filter((K)=>!!K),issueData:{code:l.invalid_arguments,argumentsError:B}})}function W(X,B){return E9({data:X,path:Y.path,errorMaps:[Y.common.contextualErrorMap,Y.schemaErrorMap,T9(),m1].filter((K)=>!!K),issueData:{code:l.invalid_return_type,returnTypeError:B}})}let z={errorMap:Y.common.contextualErrorMap},H=Y.data;if(this._def.returns instanceof T1){let X=this;return $0(async function(...B){let K=new u0([]),F=await X._def.args.parseAsync(B,z).catch((P)=>{throw K.addIssue(J(B,P)),K}),O=await Reflect.apply(H,this,F);return await X._def.returns._def.type.parseAsync(O,z).catch((P)=>{throw K.addIssue(W(O,P)),K})})}else{let X=this;return $0(function(...B){let K=X._def.args.safeParse(B,z);if(!K.success)throw new u0([J(B,K.error)]);let F=Reflect.apply(H,this,K.data),O=X._def.returns.safeParse(F,z);if(!O.success)throw new u0([W(F,O.error)]);return O.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...Q){return new $1({...this._def,args:G1.create(Q).rest(A1.create())})}returns(Q){return new $1({...this._def,returns:Q})}implement(Q){return this.parse(Q)}strictImplement(Q){return this.parse(Q)}static create(Q,Y,J){return new $1({args:Q?Q:G1.create([]).rest(A1.create()),returns:Y||A1.create(),typeName:e.ZodFunction,...B0(J)})}}class c1 extends F0{get schema(){return this._def.getter()}_parse(Q){let{ctx:Y}=this._processInputParams(Q);return this._def.getter()._parse({data:Y.data,path:Y.path,parent:Y})}}c1.create=(Q,Y)=>{return new c1({getter:Q,typeName:e.ZodLazy,...B0(Y)})};class i1 extends F0{_parse(Q){if(Q.data!==this._def.value){let Y=this._getOrReturnCtx(Q);return n(Y,{received:Y.data,code:l.invalid_literal,expected:this._def.value}),t}return{status:"valid",value:Q.data}}get value(){return this._def.value}}i1.create=(Q,Y)=>{return new i1({value:Q,typeName:e.ZodLiteral,...B0(Y)})};function YW(Q,Y){return new Z1({values:Q,typeName:e.ZodEnum,...B0(Y)})}class Z1 extends F0{_parse(Q){if(typeof Q.data!=="string"){let Y=this._getOrReturnCtx(Q),J=this._def.values;return n(Y,{expected:M0.joinValues(J),received:Y.parsedType,code:l.invalid_type}),t}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(Q.data)){let Y=this._getOrReturnCtx(Q),J=this._def.values;return n(Y,{received:Y.data,code:l.invalid_enum_value,options:J}),t}return $0(Q.data)}get options(){return this._def.values}get enum(){let Q={};for(let Y of this._def.values)Q[Y]=Y;return Q}get Values(){let Q={};for(let Y of this._def.values)Q[Y]=Y;return Q}get Enum(){let Q={};for(let Y of this._def.values)Q[Y]=Y;return Q}extract(Q,Y=this._def){return Z1.create(Q,{...this._def,...Y})}exclude(Q,Y=this._def){return Z1.create(this.options.filter((J)=>!Q.includes(J)),{...this._def,...Y})}}Z1.create=YW;class o1 extends F0{_parse(Q){let Y=M0.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(Q);if(J.parsedType!==i.string&&J.parsedType!==i.number){let W=M0.objectValues(Y);return n(J,{expected:M0.joinValues(W),received:J.parsedType,code:l.invalid_type}),t}if(!this._cache)this._cache=new Set(M0.getValidEnumValues(this._def.values));if(!this._cache.has(Q.data)){let W=M0.objectValues(Y);return n(J,{received:J.data,code:l.invalid_enum_value,options:W}),t}return $0(Q.data)}get enum(){return this._def.values}}o1.create=(Q,Y)=>{return new o1({values:Q,typeName:e.ZodNativeEnum,...B0(Y)})};class T1 extends F0{unwrap(){return this._def.type}_parse(Q){let{ctx:Y}=this._processInputParams(Q);if(Y.parsedType!==i.promise&&Y.common.async===!1)return n(Y,{code:l.invalid_type,expected:i.promise,received:Y.parsedType}),t;let J=Y.parsedType===i.promise?Y.data:Promise.resolve(Y.data);return $0(J.then((W)=>{return this._def.type.parseAsync(W,{path:Y.path,errorMap:Y.common.contextualErrorMap})}))}}T1.create=(Q,Y)=>{return new T1({type:Q,typeName:e.ZodPromise,...B0(Y)})};class r0 extends F0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===e.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q),W=this._def.effect||null,z={addIssue:(H)=>{if(n(J,H),H.fatal)Y.abort();else Y.dirty()},get path(){return J.path}};if(z.addIssue=z.addIssue.bind(z),W.type==="preprocess"){let H=W.transform(J.data,z);if(J.common.async)return Promise.resolve(H).then(async(X)=>{if(Y.value==="aborted")return t;let B=await this._def.schema._parseAsync({data:X,path:J.path,parent:J});if(B.status==="aborted")return t;if(B.status==="dirty")return h1(B.value);if(Y.value==="dirty")return h1(B.value);return B});else{if(Y.value==="aborted")return t;let X=this._def.schema._parseSync({data:H,path:J.path,parent:J});if(X.status==="aborted")return t;if(X.status==="dirty")return h1(X.value);if(Y.value==="dirty")return h1(X.value);return X}}if(W.type==="refinement"){let H=(X)=>{let B=W.refinement(X,z);if(J.common.async)return Promise.resolve(B);if(B instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return X};if(J.common.async===!1){let X=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(X.status==="aborted")return t;if(X.status==="dirty")Y.dirty();return H(X.value),{status:Y.value,value:X.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((X)=>{if(X.status==="aborted")return t;if(X.status==="dirty")Y.dirty();return H(X.value).then(()=>{return{status:Y.value,value:X.value}})})}if(W.type==="transform")if(J.common.async===!1){let H=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!I1(H))return t;let X=W.transform(H.value,z);if(X instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:Y.value,value:X}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((H)=>{if(!I1(H))return t;return Promise.resolve(W.transform(H.value,z)).then((X)=>({status:Y.value,value:X}))});M0.assertNever(W)}}r0.create=(Q,Y,J)=>{return new r0({schema:Q,typeName:e.ZodEffects,effect:Y,...B0(J)})};r0.createWithPreprocess=(Q,Y,J)=>{return new r0({schema:Y,effect:{type:"preprocess",transform:Q},typeName:e.ZodEffects,...B0(J)})};class Q1 extends F0{_parse(Q){if(this._getType(Q)===i.undefined)return $0(void 0);return this._def.innerType._parse(Q)}unwrap(){return this._def.innerType}}Q1.create=(Q,Y)=>{return new Q1({innerType:Q,typeName:e.ZodOptional,...B0(Y)})};class j1 extends F0{_parse(Q){if(this._getType(Q)===i.null)return $0(null);return this._def.innerType._parse(Q)}unwrap(){return this._def.innerType}}j1.create=(Q,Y)=>{return new j1({innerType:Q,typeName:e.ZodNullable,...B0(Y)})};class r1 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q),J=Y.data;if(Y.parsedType===i.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:Y.path,parent:Y})}removeDefault(){return this._def.innerType}}r1.create=(Q,Y)=>{return new r1({innerType:Q,typeName:e.ZodDefault,defaultValue:typeof Y.default==="function"?Y.default:()=>Y.default,...B0(Y)})};class s1 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q),J={...Y,common:{...Y.common,issues:[]}},W=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(K9(W))return W.then((z)=>{return{status:"valid",value:z.status==="valid"?z.value:this._def.catchValue({get error(){return new u0(J.common.issues)},input:J.data})}});else return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new u0(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}s1.create=(Q,Y)=>{return new s1({innerType:Q,typeName:e.ZodCatch,catchValue:typeof Y.catch==="function"?Y.catch:()=>Y.catch,...B0(Y)})};class A9 extends F0{_parse(Q){if(this._getType(Q)!==i.nan){let J=this._getOrReturnCtx(Q);return n(J,{code:l.invalid_type,expected:i.nan,received:J.parsedType}),t}return{status:"valid",value:Q.data}}}A9.create=(Q)=>{return new A9({typeName:e.ZodNaN,...B0(Q)})};var I5=Symbol("zod_brand");class g9 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q),J=Y.data;return this._def.type._parse({data:J,path:Y.path,parent:Y})}unwrap(){return this._def.type}}class O9 extends F0{_parse(Q){let{status:Y,ctx:J}=this._processInputParams(Q);if(J.common.async)return(async()=>{let z=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(z.status==="aborted")return t;if(z.status==="dirty")return Y.dirty(),h1(z.value);else return this._def.out._parseAsync({data:z.value,path:J.path,parent:J})})();else{let W=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return t;if(W.status==="dirty")return Y.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:J.path,parent:J})}}static create(Q,Y){return new O9({in:Q,out:Y,typeName:e.ZodPipeline})}}class a1 extends F0{_parse(Q){let Y=this._def.innerType._parse(Q),J=(W)=>{if(I1(W))W.value=Object.freeze(W.value);return W};return K9(Y)?Y.then((W)=>J(W)):J(Y)}unwrap(){return this._def.innerType}}a1.create=(Q,Y)=>{return new a1({innerType:Q,typeName:e.ZodReadonly,...B0(Y)})};function k8(Q,Y){let J=typeof Q==="function"?Q(Y):typeof Q==="string"?{message:Q}:Q;return typeof J==="string"?{message:J}:J}function JW(Q,Y={},J){if(Q)return P1.create().superRefine((W,z)=>{let H=Q(W);if(H instanceof Promise)return H.then((X)=>{if(!X){let B=k8(Y,W),K=B.fatal??J??!0;z.addIssue({code:"custom",...B,fatal:K})}});if(!H){let X=k8(Y,W),B=X.fatal??J??!0;z.addIssue({code:"custom",...X,fatal:B})}return});return P1.create()}var C5={object:T0.lazycreate},e;(function(Q){Q.ZodString="ZodString",Q.ZodNumber="ZodNumber",Q.ZodNaN="ZodNaN",Q.ZodBigInt="ZodBigInt",Q.ZodBoolean="ZodBoolean",Q.ZodDate="ZodDate",Q.ZodSymbol="ZodSymbol",Q.ZodUndefined="ZodUndefined",Q.ZodNull="ZodNull",Q.ZodAny="ZodAny",Q.ZodUnknown="ZodUnknown",Q.ZodNever="ZodNever",Q.ZodVoid="ZodVoid",Q.ZodArray="ZodArray",Q.ZodObject="ZodObject",Q.ZodUnion="ZodUnion",Q.ZodDiscriminatedUnion="ZodDiscriminatedUnion",Q.ZodIntersection="ZodIntersection",Q.ZodTuple="ZodTuple",Q.ZodRecord="ZodRecord",Q.ZodMap="ZodMap",Q.ZodSet="ZodSet",Q.ZodFunction="ZodFunction",Q.ZodLazy="ZodLazy",Q.ZodLiteral="ZodLiteral",Q.ZodEnum="ZodEnum",Q.ZodEffects="ZodEffects",Q.ZodNativeEnum="ZodNativeEnum",Q.ZodOptional="ZodOptional",Q.ZodNullable="ZodNullable",Q.ZodDefault="ZodDefault",Q.ZodCatch="ZodCatch",Q.ZodPromise="ZodPromise",Q.ZodBranded="ZodBranded",Q.ZodPipeline="ZodPipeline",Q.ZodReadonly="ZodReadonly"})(e||(e={}));var P5=(Q,Y={message:`Input not instance of ${Q.name}`})=>JW((J)=>J instanceof Q,Y),zW=e0.create,GW=V1.create,_5=A9.create,T5=O1.create,BW=l1.create,E5=C1.create,b5=M9.create,S5=p1.create,v5=d1.create,g5=P1.create,k5=A1.create,x5=z1.create,y5=N9.create,f5=W1.create,h5=T0.create,$5=T0.strictCreate,m5=u1.create,l5=v9.create,p5=n1.create,d5=G1.create,u5=L9.create,n5=j9.create,c5=_1.create,i5=$1.create,o5=c1.create,r5=i1.create,s5=Z1.create,a5=o1.create,t5=T1.create,x8=r0.create,e5=Q1.create,WY=j1.create,QY=r0.createWithPreprocess,XY=O9.create,YY=()=>zW().optional(),JY=()=>GW().optional(),zY=()=>BW().optional(),GY={string:(Q)=>e0.create({...Q,coerce:!0}),number:(Q)=>V1.create({...Q,coerce:!0}),boolean:(Q)=>l1.create({...Q,coerce:!0}),bigint:(Q)=>O1.create({...Q,coerce:!0}),date:(Q)=>C1.create({...Q,coerce:!0})},BY=t;var k9="2.0",FW=G.union([G.string(),G.number().int()]),HW=G.string(),FY=G.object({progressToken:G.optional(FW)}).passthrough(),s0=G.object({_meta:G.optional(FY)}).passthrough(),m0=G.object({method:G.string(),params:G.optional(s0)}),Z9=G.object({_meta:G.optional(G.object({}).passthrough())}).passthrough(),B1=G.object({method:G.string(),params:G.optional(Z9)}),a0=G.object({_meta:G.optional(G.object({}).passthrough())}).passthrough(),x9=G.union([G.string(),G.number().int()]),HY=G.object({jsonrpc:G.literal(k9),id:x9}).merge(m0).strict();var UY=G.object({jsonrpc:G.literal(k9)}).merge(B1).strict();var qY=G.object({jsonrpc:G.literal(k9),id:x9,result:a0}).strict();var y8;(function(Q){Q[Q.ConnectionClosed=-32000]="ConnectionClosed",Q[Q.RequestTimeout=-32001]="RequestTimeout",Q[Q.ParseError=-32700]="ParseError",Q[Q.InvalidRequest=-32600]="InvalidRequest",Q[Q.MethodNotFound=-32601]="MethodNotFound",Q[Q.InvalidParams=-32602]="InvalidParams",Q[Q.InternalError=-32603]="InternalError"})(y8||(y8={}));var KY=G.object({jsonrpc:G.literal(k9),id:x9,error:G.object({code:G.number().int(),message:G.string(),data:G.optional(G.unknown())})}).strict();var lJ=G.union([HY,UY,qY,KY]),UW=a0.strict(),qW=B1.extend({method:G.literal("notifications/cancelled"),params:Z9.extend({requestId:x9,reason:G.string().optional()})}),w9=G.object({name:G.string(),title:G.optional(G.string())}).passthrough(),KW=w9.extend({version:G.string()}),MY=G.object({experimental:G.optional(G.object({}).passthrough()),sampling:G.optional(G.object({}).passthrough()),elicitation:G.optional(G.object({}).passthrough()),roots:G.optional(G.object({listChanged:G.optional(G.boolean())}).passthrough())}).passthrough(),NY=m0.extend({method:G.literal("initialize"),params:s0.extend({protocolVersion:G.string(),capabilities:MY,clientInfo:KW})}),LY=G.object({experimental:G.optional(G.object({}).passthrough()),logging:G.optional(G.object({}).passthrough()),completions:G.optional(G.object({}).passthrough()),prompts:G.optional(G.object({listChanged:G.optional(G.boolean())}).passthrough()),resources:G.optional(G.object({subscribe:G.optional(G.boolean()),listChanged:G.optional(G.boolean())}).passthrough()),tools:G.optional(G.object({listChanged:G.optional(G.boolean())}).passthrough())}).passthrough(),jY=a0.extend({protocolVersion:G.string(),capabilities:LY,serverInfo:KW,instructions:G.optional(G.string())}),AY=B1.extend({method:G.literal("notifications/initialized")}),MW=m0.extend({method:G.literal("ping")}),VY=G.object({progress:G.number(),total:G.optional(G.number()),message:G.optional(G.string())}).passthrough(),NW=B1.extend({method:G.literal("notifications/progress"),params:Z9.merge(VY).extend({progressToken:FW})}),y9=m0.extend({params:s0.extend({cursor:G.optional(HW)}).optional()}),f9=a0.extend({nextCursor:G.optional(HW)}),LW=G.object({uri:G.string(),mimeType:G.optional(G.string()),_meta:G.optional(G.object({}).passthrough())}).passthrough(),jW=LW.extend({text:G.string()}),Y8=G.string().refine((Q)=>{try{return atob(Q),!0}catch(Y){return!1}},{message:"Invalid Base64 string"}),AW=LW.extend({blob:Y8}),VW=w9.extend({uri:G.string(),description:G.optional(G.string()),mimeType:G.optional(G.string()),_meta:G.optional(G.object({}).passthrough())}),OY=w9.extend({uriTemplate:G.string(),description:G.optional(G.string()),mimeType:G.optional(G.string()),_meta:G.optional(G.object({}).passthrough())}),ZY=y9.extend({method:G.literal("resources/list")}),wY=f9.extend({resources:G.array(VW)}),RY=y9.extend({method:G.literal("resources/templates/list")}),DY=f9.extend({resourceTemplates:G.array(OY)}),IY=m0.extend({method:G.literal("resources/read"),params:s0.extend({uri:G.string()})}),CY=a0.extend({contents:G.array(G.union([jW,AW]))}),PY=B1.extend({method:G.literal("notifications/resources/list_changed")}),_Y=m0.extend({method:G.literal("resources/subscribe"),params:s0.extend({uri:G.string()})}),TY=m0.extend({method:G.literal("resources/unsubscribe"),params:s0.extend({uri:G.string()})}),EY=B1.extend({method:G.literal("notifications/resources/updated"),params:Z9.extend({uri:G.string()})}),bY=G.object({name:G.string(),description:G.optional(G.string()),required:G.optional(G.boolean())}).passthrough(),SY=w9.extend({description:G.optional(G.string()),arguments:G.optional(G.array(bY)),_meta:G.optional(G.object({}).passthrough())}),vY=y9.extend({method:G.literal("prompts/list")}),gY=f9.extend({prompts:G.array(SY)}),kY=m0.extend({method:G.literal("prompts/get"),params:s0.extend({name:G.string(),arguments:G.optional(G.record(G.string()))})}),J8=G.object({type:G.literal("text"),text:G.string(),_meta:G.optional(G.object({}).passthrough())}).passthrough(),z8=G.object({type:G.literal("image"),data:Y8,mimeType:G.string(),_meta:G.optional(G.object({}).passthrough())}).passthrough(),G8=G.object({type:G.literal("audio"),data:Y8,mimeType:G.string(),_meta:G.optional(G.object({}).passthrough())}).passthrough(),xY=G.object({type:G.literal("resource"),resource:G.union([jW,AW]),_meta:G.optional(G.object({}).passthrough())}).passthrough(),yY=VW.extend({type:G.literal("resource_link")}),OW=G.union([J8,z8,G8,yY,xY]),fY=G.object({role:G.enum(["user","assistant"]),content:OW}).passthrough(),hY=a0.extend({description:G.optional(G.string()),messages:G.array(fY)}),$Y=B1.extend({method:G.literal("notifications/prompts/list_changed")}),mY=G.object({title:G.optional(G.string()),readOnlyHint:G.optional(G.boolean()),destructiveHint:G.optional(G.boolean()),idempotentHint:G.optional(G.boolean()),openWorldHint:G.optional(G.boolean())}).passthrough(),lY=w9.extend({description:G.optional(G.string()),inputSchema:G.object({type:G.literal("object"),properties:G.optional(G.object({}).passthrough()),required:G.optional(G.array(G.string()))}).passthrough(),outputSchema:G.optional(G.object({type:G.literal("object"),properties:G.optional(G.object({}).passthrough()),required:G.optional(G.array(G.string()))}).passthrough()),annotations:G.optional(mY),_meta:G.optional(G.object({}).passthrough())}),pY=y9.extend({method:G.literal("tools/list")}),dY=f9.extend({tools:G.array(lY)}),ZW=a0.extend({content:G.array(OW).default([]),structuredContent:G.object({}).passthrough().optional(),isError:G.optional(G.boolean())}),pJ=ZW.or(a0.extend({toolResult:G.unknown()})),uY=m0.extend({method:G.literal("tools/call"),params:s0.extend({name:G.string(),arguments:G.optional(G.record(G.unknown()))})}),nY=B1.extend({method:G.literal("notifications/tools/list_changed")}),wW=G.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),cY=m0.extend({method:G.literal("logging/setLevel"),params:s0.extend({level:wW})}),iY=B1.extend({method:G.literal("notifications/message"),params:Z9.extend({level:wW,logger:G.optional(G.string()),data:G.unknown()})}),oY=G.object({name:G.string().optional()}).passthrough(),rY=G.object({hints:G.optional(G.array(oY)),costPriority:G.optional(G.number().min(0).max(1)),speedPriority:G.optional(G.number().min(0).max(1)),intelligencePriority:G.optional(G.number().min(0).max(1))}).passthrough(),sY=G.object({role:G.enum(["user","assistant"]),content:G.union([J8,z8,G8])}).passthrough(),aY=m0.extend({method:G.literal("sampling/createMessage"),params:s0.extend({messages:G.array(sY),systemPrompt:G.optional(G.string()),includeContext:G.optional(G.enum(["none","thisServer","allServers"])),temperature:G.optional(G.number()),maxTokens:G.number().int(),stopSequences:G.optional(G.array(G.string())),metadata:G.optional(G.object({}).passthrough()),modelPreferences:G.optional(rY)})}),tY=a0.extend({model:G.string(),stopReason:G.optional(G.enum(["endTurn","stopSequence","maxTokens"]).or(G.string())),role:G.enum(["user","assistant"]),content:G.discriminatedUnion("type",[J8,z8,G8])}),eY=G.object({type:G.literal("boolean"),title:G.optional(G.string()),description:G.optional(G.string()),default:G.optional(G.boolean())}).passthrough(),WJ=G.object({type:G.literal("string"),title:G.optional(G.string()),description:G.optional(G.string()),minLength:G.optional(G.number()),maxLength:G.optional(G.number()),format:G.optional(G.enum(["email","uri","date","date-time"]))}).passthrough(),QJ=G.object({type:G.enum(["number","integer"]),title:G.optional(G.string()),description:G.optional(G.string()),minimum:G.optional(G.number()),maximum:G.optional(G.number())}).passthrough(),XJ=G.object({type:G.literal("string"),title:G.optional(G.string()),description:G.optional(G.string()),enum:G.array(G.string()),enumNames:G.optional(G.array(G.string()))}).passthrough(),YJ=G.union([eY,WJ,QJ,XJ]),JJ=m0.extend({method:G.literal("elicitation/create"),params:s0.extend({message:G.string(),requestedSchema:G.object({type:G.literal("object"),properties:G.record(G.string(),YJ),required:G.optional(G.array(G.string()))}).passthrough()})}),zJ=a0.extend({action:G.enum(["accept","decline","cancel"]),content:G.optional(G.record(G.string(),G.unknown()))}),GJ=G.object({type:G.literal("ref/resource"),uri:G.string()}).passthrough(),BJ=G.object({type:G.literal("ref/prompt"),name:G.string()}).passthrough(),FJ=m0.extend({method:G.literal("completion/complete"),params:s0.extend({ref:G.union([BJ,GJ]),argument:G.object({name:G.string(),value:G.string()}).passthrough(),context:G.optional(G.object({arguments:G.optional(G.record(G.string(),G.string()))}))})}),HJ=a0.extend({completion:G.object({values:G.array(G.string()).max(100),total:G.optional(G.number().int()),hasMore:G.optional(G.boolean())}).passthrough()}),UJ=G.object({uri:G.string().startsWith("file://"),name:G.optional(G.string()),_meta:G.optional(G.object({}).passthrough())}).passthrough(),qJ=m0.extend({method:G.literal("roots/list")}),KJ=a0.extend({roots:G.array(UJ)}),MJ=B1.extend({method:G.literal("notifications/roots/list_changed")}),dJ=G.union([MW,NY,FJ,cY,kY,vY,ZY,RY,IY,_Y,TY,uY,pY]),uJ=G.union([qW,NW,AY,MJ]),nJ=G.union([UW,tY,zJ,KJ]),cJ=G.union([MW,aY,JJ,qJ]),iJ=G.union([qW,NW,iY,EY,PY,nY,$Y]),oJ=G.union([UW,jY,HJ,hY,gY,wY,DY,CY,ZW,dY]);var rJ=G6(l6(),1);var sJ=Symbol("Let zodToJsonSchema decide on which parser to use");var aJ=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var s9;(function(Q){Q.Completable="McpCompletable"})(s9||(s9={}));class a9 extends F0{_parse(Q){let{ctx:Y}=this._processInputParams(Q),J=Y.data;return this._def.type._parse({data:J,path:Y.path,parent:Y})}unwrap(){return this._def.type}}a9.create=(Q,Y)=>{return new a9({type:Q,typeName:s9.Completable,complete:Y.complete,...NJ(Y)})};function NJ(Q){if(!Q)return{};let{errorMap:Y,invalid_type_error:J,required_error:W,description:z}=Q;if(Y&&(J||W))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(Y)return{errorMap:Y,description:z};return{errorMap:(X,B)=>{var K,F;let{message:O}=Q;if(X.code==="invalid_enum_value")return{message:O!==null&&O!==void 0?O:B.defaultError};if(typeof B.data==="undefined")return{message:(K=O!==null&&O!==void 0?O:W)!==null&&K!==void 0?K:B.defaultError};if(X.code!=="invalid_type")return{message:B.defaultError};return{message:(F=O!==null&&O!==void 0?O:J)!==null&&F!==void 0?F:B.defaultError}},description:z}}function RW({prompt:Q,options:Y}){let{systemPrompt:J,settingSources:W,...z}=Y??{},H,X;if(J===void 0)H="";else if(typeof J==="string")H=J;else if(J.type==="preset")X=J.append;let B=z.pathToClaudeCodeExecutable;if(!B){let K=p6(import.meta.url),F=C8(K,"..");B=C8(F,"cli.js")}return process.env.CLAUDE_AGENT_SDK_VERSION="0.1.15",tX({prompt:Q,options:{...z,pathToClaudeCodeExecutable:B,customSystemPrompt:H,appendSystemPrompt:X,settingSources:W??[]}})}import{Database as jJ}from"bun:sqlite";import{join as n0,dirname as Q7,basename as X7}from"path";import{homedir as DW}from"os";import{existsSync as G7,mkdirSync as LJ}from"fs";var F1=process.env.CLAUDE_MEM_DATA_DIR||n0(DW(),".claude-mem"),B8=process.env.CLAUDE_CONFIG_DIR||n0(DW(),".claude"),B7=n0(F1,"archives"),F7=n0(F1,"logs"),H7=n0(F1,"trash"),U7=n0(F1,"backups"),q7=n0(F1,"chroma"),K7=n0(F1,"settings.json"),IW=n0(F1,"claude-mem.db"),M7=n0(B8,"settings.json"),N7=n0(B8,"commands"),L7=n0(B8,"CLAUDE.md");function CW(Q){return n0(F1,`worker-${Q}.sock`)}function PW(Q){LJ(Q,{recursive:!0})}class F8{db;constructor(){PW(F1),this.db=new jJ(IW,{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(Q,Y=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(Q,Y)}findActiveSDKSession(Q){return this.db.query(` + SELECT id, sdk_session_id, project + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(Q)||null}createSDKSession(Q,Y,J){let W=new Date,z=W.getTime();return this.db.query(` + INSERT INTO sdk_sessions + (claude_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(Q,Y,J,W.toISOString(),z),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(Q,Y){this.db.query(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? + `).run(Y,Q)}storeObservation(Q,Y,J,W){let z=new Date,H=z.getTime();this.db.query(` + INSERT INTO observations + (sdk_session_id, project, text, type, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?) + `).run(Q,Y,W,J,z.toISOString(),H)}storeSummary(Q,Y,J){let W=new Date,z=W.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(Q,Y,J.request||null,J.investigated||null,J.learned||null,J.completed||null,J.next_steps||null,J.files_read||null,J.files_edited||null,J.notes||null,W.toISOString(),z)}markSessionCompleted(Q){let Y=new Date,J=Y.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(Y.toISOString(),J,Q)}markSessionFailed(Q){let Y=new Date,J=Y.getTime();this.db.query(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(Y.toISOString(),J,Q)}close(){this.db.close()}}function _W(Q,Y,J){return`You are a memory assistant for the "${Q}" project. + +SESSION CONTEXT +--------------- +Session ID: ${Y} +User's Goal: ${J} +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 + + feature + Implemented JWT token refresh flow with 7-day expiry + +\`\`\` + +Valid types: decision, bugfix, feature, refactor, discovery + +Structure requirements: +- is the root element +- must be one of the 5 valid types (single word) +- contains your concise observation (one sentence preferred) +- No additional fields or nesting + +The SDK worker will parse all 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 TW(Q){return`TOOL OBSERVATION +================ +Tool: ${Q.tool_name} +Time: ${new Date(Q.created_at_epoch).toISOString()} + +Input: +${JSON.stringify(JSON.parse(Q.tool_input),null,2)} + +Output: +${JSON.stringify(JSON.parse(Q.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 + + feature + Your concise observation here + + \`\`\` + + Requirements: + - Use one of these types: decision, bugfix, feature, refactor, discovery + - Keep text concise (one sentence preferred) + - No markdown formatting inside + - No additional XML fields + +3. If NO: Just acknowledge and wait for next observation + +Remember: Quality over quantity. Only store meaningful insights.`}function EW(Q){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 + + Implement JWT authentication system + Existing auth middleware, session management, token storage patterns + Current system uses session cookies; no JWT support; race condition in middleware + Implemented JWT token + refresh flow with 7-day expiry; fixed race condition with mutex; added token validation middleware + Add token revocation API endpoint; write integration tests + + src/auth.ts + src/middleware/session.ts + src/types/user.ts + + + src/auth.ts + src/middleware/auth.ts + src/routes/auth.ts + + Token secret stored in .env; refresh tokens use rotation strategy + +\`\`\` + +Structure requirements: +- is the root element +- All 8 child elements are REQUIRED: request, investigated, learned, completed, next_steps, files_read, files_edited, notes +- and must contain child elements (one per file) +- If no files were read/edited, use empty tags: +- 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 block and extract all fields to store in SQLite. + +Generate the summary now in the required XML format.`}function SW(Q){let Y=[],J=/\s*([^<]+)<\/type>\s*([^<]+)<\/text>\s*<\/observation>/g,W;while((W=J.exec(Q))!==null){let z=W[1].trim(),H=W[2].trim();if(!["decision","bugfix","feature","refactor","discovery"].includes(z)){console.warn(`[SDK Parser] Invalid observation type: ${z}, skipping`);continue}Y.push({type:z,text:H})}return Y}function vW(Q){let J=/([\s\S]*?)<\/summary>/.exec(Q);if(!J)return null;let W=J[1],z=X9(W,"request"),H=X9(W,"investigated"),X=X9(W,"learned"),B=X9(W,"completed"),K=X9(W,"next_steps"),F=X9(W,"notes"),O=bW(W,"files_read"),w=bW(W,"files_edited");if(!z||!H||!X||!B||!K||!F)return console.warn("[SDK Parser] Summary missing required fields"),null;return{request:z,investigated:H,learned:X,completed:B,next_steps:K,files_read:O,files_edited:w,notes:F}}function X9(Q,Y){let W=new RegExp(`<${Y}>([^<]*)`).exec(Q);return W?W[1].trim():null}function bW(Q,Y){let J=[],z=new RegExp(`<${Y}>(.*?)`,"s").exec(Q);if(!z)return J;let H=z[1],X=/([^<]+)<\/file>/g,B;while((B=X.exec(H))!==null)J.push(B[1].trim());return J}var VJ="claude-sonnet-4-5",OJ=["Glob","Grep","ListMcpResourcesTool","WebSearch"];async function xW(){let Q=parseInt(process.argv[2],10);if(!Q)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);await new yW(Q).run()}class yW{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(Q){this.sessionDbId=Q,this.db=new F8,this.abortController=new AbortController,this.socketPath=CW(Q)}async run(){try{let Q=await this.loadSession();if(!Q)console.error("[SDK Worker] Session not found"),process.exit(1);this.project=Q.project,this.userPrompt=Q.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(Q){console.error("[SDK Worker] Error:",Q.message),this.db.markSessionFailed(this.sessionDbId),this.db.close(),this.cleanup(),process.exit(1)}}async startSocketServer(){if(kW(this.socketPath))gW(this.socketPath);return new Promise((Q,Y)=>{this.server=AJ.createServer((J)=>{let W="";J.on("data",(z)=>{W+=z.toString();let H=W.split(` +`);W=H.pop()||"";for(let X of H)if(X.trim())try{let B=JSON.parse(X);this.handleMessage(B)}catch(B){console.error("[SDK Worker] Invalid message:",X)}}),J.on("error",(z)=>{console.error("[SDK Worker] Socket connection error:",z.message)})}),this.server.on("error",(J)=>{if(J.code==="EADDRINUSE")console.error(`[SDK Worker] Socket already in use: ${this.socketPath}`);Y(J)}),this.server.listen(this.socketPath,()=>{Q()})})}handleMessage(Q){if(this.pendingMessages.push(Q),Q.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 RW({model:VJ,messages:()=>this.createMessageGenerator(),disallowedTools:OJ,signal:this.abortController.signal,onSystemInitMessage:(Q)=>{if(Q.session_id)this.sdkSessionId=Q.session_id,this.db.updateSDKSessionId(this.sessionDbId,Q.session_id)},onAgentMessage:(Q)=>{this.handleAgentMessage(Q.content)}})}async*createMessageGenerator(){let Q=`session-${this.sessionDbId}`;yield{role:"user",content:_W(this.project,Q,this.userPrompt)};while(!this.isFinalized){if(this.pendingMessages.length===0){await this.sleep(100);continue}while(this.pendingMessages.length>0){let J=this.pendingMessages.shift();if(J.type==="finalize"){this.isFinalized=!0;let W=await this.loadSession();if(W)yield{role:"user",content:EW(W)};break}if(J.type==="observation")yield{role:"user",content:TW({tool_name:J.tool_name,tool_input:J.tool_input,tool_output:J.tool_output})}}}}handleAgentMessage(Q){let Y=SW(Q);for(let W of Y)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,W.type,W.text);let J=vW(Q);if(J&&this.sdkSessionId){let W={request:J.request,investigated:J.investigated,learned:J.learned,completed:J.completed,next_steps:J.next_steps,files_read:JSON.stringify(J.files_read),files_edited:JSON.stringify(J.files_edited),notes:J.notes};this.db.storeSummary(this.sdkSessionId,this.project,W)}}cleanup(){if(this.server)this.server.close();if(kW(this.socketPath))gW(this.socketPath)}sleep(Q){return new Promise((Y)=>setTimeout(Y,Q))}}xW().catch((Q)=>{console.error("[SDK Worker] Fatal error:",Q),process.exit(1)}); diff --git a/src/bin/hooks/context-hook.ts b/src/bin/hooks/context-hook.ts new file mode 100644 index 00000000..a04d8217 --- /dev/null +++ b/src/bin/hooks/context-hook.ts @@ -0,0 +1,19 @@ +#!/usr/bin/env bun + +/** + * Context Hook Entry Point - SessionStart + * Standalone executable for plugin hooks + */ + +import { contextHook } from '../../hooks/context.js'; + +// Read input from stdin +const input = await Bun.stdin.text(); + +try { + const parsed = input.trim() ? JSON.parse(input) : undefined; + contextHook(parsed); +} catch (error: any) { + console.error(`[claude-mem context-hook error: ${error.message}]`); + process.exit(0); +} diff --git a/src/bin/hooks/new-hook.ts b/src/bin/hooks/new-hook.ts new file mode 100644 index 00000000..20b80529 --- /dev/null +++ b/src/bin/hooks/new-hook.ts @@ -0,0 +1,20 @@ +#!/usr/bin/env bun + +/** + * New Hook Entry Point - UserPromptSubmit + * Standalone executable for plugin hooks + */ + +import { newHook } from '../../hooks/new.js'; + +// Read input from stdin +const input = await Bun.stdin.text(); + +try { + const parsed = input.trim() ? JSON.parse(input) : undefined; + newHook(parsed); +} catch (error: any) { + console.error(`[claude-mem new-hook error: ${error.message}]`); + console.log('{"continue": true, "suppressOutput": true}'); + process.exit(0); +} diff --git a/src/bin/hooks/save-hook.ts b/src/bin/hooks/save-hook.ts new file mode 100644 index 00000000..02c7ba91 --- /dev/null +++ b/src/bin/hooks/save-hook.ts @@ -0,0 +1,20 @@ +#!/usr/bin/env bun + +/** + * Save Hook Entry Point - PostToolUse + * Standalone executable for plugin hooks + */ + +import { saveHook } from '../../hooks/save.js'; + +// Read input from stdin +const input = await Bun.stdin.text(); + +try { + const parsed = input.trim() ? JSON.parse(input) : undefined; + saveHook(parsed); +} catch (error: any) { + console.error(`[claude-mem save-hook error: ${error.message}]`); + console.log('{"continue": true, "suppressOutput": true}'); + process.exit(0); +} diff --git a/src/bin/hooks/summary-hook.ts b/src/bin/hooks/summary-hook.ts new file mode 100644 index 00000000..3132eccf --- /dev/null +++ b/src/bin/hooks/summary-hook.ts @@ -0,0 +1,20 @@ +#!/usr/bin/env bun + +/** + * Summary Hook Entry Point - Stop + * Standalone executable for plugin hooks + */ + +import { summaryHook } from '../../hooks/summary.js'; + +// Read input from stdin +const input = await Bun.stdin.text(); + +try { + const parsed = input.trim() ? JSON.parse(input) : undefined; + summaryHook(parsed); +} catch (error: any) { + console.error(`[claude-mem summary-hook error: ${error.message}]`); + console.log('{"continue": true, "suppressOutput": true}'); + process.exit(0); +} diff --git a/src/bin/hooks/worker.ts b/src/bin/hooks/worker.ts new file mode 100644 index 00000000..8118a30f --- /dev/null +++ b/src/bin/hooks/worker.ts @@ -0,0 +1,14 @@ +#!/usr/bin/env bun + +/** + * Worker Entry Point + * Standalone background process for SDK agent + */ + +import { main } from '../../sdk/worker.js'; + +// Entry point - just call the worker main function +main().catch((error) => { + console.error('[SDK Worker] Fatal error:', error); + process.exit(1); +}); diff --git a/src/hooks/new.ts b/src/hooks/new.ts index f2c30f10..9e4060ca 100644 --- a/src/hooks/new.ts +++ b/src/hooks/new.ts @@ -48,11 +48,25 @@ export function newHook(input?: UserPromptSubmitInput): void { db.close(); // Start SDK worker in background as detached process - // Use 'claude-mem worker' CLI command which is always available - const child = spawn('claude-mem', ['worker', sessionId.toString()], { - detached: true, - stdio: 'ignore' - }); + // In plugin mode, use bundled worker; otherwise use global CLI + const pluginRoot = process.env.CLAUDE_PLUGIN_ROOT; + let child; + + if (pluginRoot) { + // Plugin mode: use bundled worker + const workerPath = path.join(pluginRoot, 'scripts', 'hooks', 'worker.js'); + child = spawn('bun', [workerPath, sessionId.toString()], { + detached: true, + stdio: 'ignore' + }); + } else { + // Traditional mode: use global CLI + child = spawn('claude-mem', ['worker', sessionId.toString()], { + detached: true, + stdio: 'ignore' + }); + } + child.unref(); // Output hook response