create-nexo 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/bin/nexo.js +29 -29
  2. package/package.json +1 -1
package/dist/bin/nexo.js CHANGED
@@ -5,19 +5,19 @@ import { dirname } from 'node:path';
5
5
  const require = createRequire(import.meta.url);
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
- var Cu=Object.create;var qt=Object.defineProperty;var yu=Object.getOwnPropertyDescriptor;var vu=Object.getOwnPropertyNames;var bu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var V=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var D=(t,e)=>()=>(t&&(e=t(t=0)),e);var A=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),S=(t,e)=>{for(var r in e)qt(t,r,{get:e[r],enumerable:!0})},Fu=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of vu(e))!wu.call(t,s)&&s!==r&&qt(t,s,{get:()=>e[s],enumerable:!(n=yu(e,s))||n.enumerable});return t};var M=(t,e,r)=>(r=t!=null?Cu(bu(t)):{},Fu(e||!t||!t.__esModule?qt(r,"default",{value:t,enumerable:!0}):r,t));var Be=A(Kt=>{var Ke=class extends Error{constructor(e,r,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=e,this.nestedError=void 0}},Jt=class extends Ke{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Kt.CommanderError=Ke;Kt.InvalidArgumentError=Jt});var Xe=A(Yt=>{var{InvalidArgumentError:Eu}=Be(),Xt=class{constructor(e,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,r){return r===this.defaultValue||!Array.isArray(r)?[e]:r.concat(e)}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new Eu(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,n):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function xu(t){let e=t.name()+(t.variadic===!0?"...":"");return t.required?"<"+e+">":"["+e+"]"}Yt.Argument=Xt;Yt.humanReadableArgName=xu});var Qt=A(Ln=>{var{humanReadableArgName:Su}=Xe(),Zt=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let r=e.commands.filter(s=>!s._hidden),n=e._getHelpCommand();return n&&!n._hidden&&r.push(n),this.sortSubcommands&&r.sort((s,o)=>s.name().localeCompare(o.name())),r}compareOptions(e,r){let n=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return n(e).localeCompare(n(r))}visibleOptions(e){let r=e.options.filter(s=>!s.hidden),n=e._getHelpOption();if(n&&!n.hidden){let s=n.short&&e._findOption(n.short),o=n.long&&e._findOption(n.long);!s&&!o?r.push(n):n.long&&!o?r.push(e.createOption(n.long,n.description)):n.short&&!s&&r.push(e.createOption(n.short,n.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let r=[];for(let n=e.parent;n;n=n.parent){let s=n.options.filter(o=>!o.hidden);r.push(...s)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(r=>{r.description=r.description||e._argsDescription[r.name()]||""}),e.registeredArguments.find(r=>r.description)?e.registeredArguments:[]}subcommandTerm(e){let r=e.registeredArguments.map(n=>Su(n)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,r){return r.visibleCommands(e).reduce((n,s)=>Math.max(n,r.subcommandTerm(s).length),0)}longestOptionTermLength(e,r){return r.visibleOptions(e).reduce((n,s)=>Math.max(n,r.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,r){return r.visibleGlobalOptions(e).reduce((n,s)=>Math.max(n,r.optionTerm(s).length),0)}longestArgumentTermLength(e,r){return r.visibleArguments(e).reduce((n,s)=>Math.max(n,r.argumentTerm(s).length),0)}commandUsage(e){let r=e._name;e._aliases[0]&&(r=r+"|"+e._aliases[0]);let n="";for(let s=e.parent;s;s=s.parent)n=s.name()+" "+n;return n+r+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let r=[];return e.argChoices&&r.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&r.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&r.push(`env: ${e.envVar}`),r.length>0?`${e.description} (${r.join(", ")})`:e.description}argumentDescription(e){let r=[];if(e.argChoices&&r.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),r.length>0){let n=`(${r.join(", ")})`;return e.description?`${e.description} ${n}`:n}return e.description}formatHelp(e,r){let n=r.padWidth(e,r),s=r.helpWidth||80,o=2,i=2;function a(C,w){if(w){let $=`${C.padEnd(n+i)}${w}`;return r.wrap($,s-o,n+i)}return C}function c(C){return C.join(`
8
+ var Cu=Object.create;var qt=Object.defineProperty;var yu=Object.getOwnPropertyDescriptor;var vu=Object.getOwnPropertyNames;var bu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var G=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var D=(t,e)=>()=>(t&&(e=t(t=0)),e);var A=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),S=(t,e)=>{for(var r in e)qt(t,r,{get:e[r],enumerable:!0})},Fu=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of vu(e))!wu.call(t,s)&&s!==r&&qt(t,s,{get:()=>e[s],enumerable:!(n=yu(e,s))||n.enumerable});return t};var M=(t,e,r)=>(r=t!=null?Cu(bu(t)):{},Fu(e||!t||!t.__esModule?qt(r,"default",{value:t,enumerable:!0}):r,t));var Be=A(Kt=>{var Ke=class extends Error{constructor(e,r,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=e,this.nestedError=void 0}},Jt=class extends Ke{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Kt.CommanderError=Ke;Kt.InvalidArgumentError=Jt});var Xe=A(Yt=>{var{InvalidArgumentError:Eu}=Be(),Xt=class{constructor(e,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,r){return r===this.defaultValue||!Array.isArray(r)?[e]:r.concat(e)}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new Eu(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,n):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function xu(t){let e=t.name()+(t.variadic===!0?"...":"");return t.required?"<"+e+">":"["+e+"]"}Yt.Argument=Xt;Yt.humanReadableArgName=xu});var Qt=A(Ln=>{var{humanReadableArgName:Su}=Xe(),Zt=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let r=e.commands.filter(s=>!s._hidden),n=e._getHelpCommand();return n&&!n._hidden&&r.push(n),this.sortSubcommands&&r.sort((s,o)=>s.name().localeCompare(o.name())),r}compareOptions(e,r){let n=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return n(e).localeCompare(n(r))}visibleOptions(e){let r=e.options.filter(s=>!s.hidden),n=e._getHelpOption();if(n&&!n.hidden){let s=n.short&&e._findOption(n.short),o=n.long&&e._findOption(n.long);!s&&!o?r.push(n):n.long&&!o?r.push(e.createOption(n.long,n.description)):n.short&&!s&&r.push(e.createOption(n.short,n.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let r=[];for(let n=e.parent;n;n=n.parent){let s=n.options.filter(o=>!o.hidden);r.push(...s)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(r=>{r.description=r.description||e._argsDescription[r.name()]||""}),e.registeredArguments.find(r=>r.description)?e.registeredArguments:[]}subcommandTerm(e){let r=e.registeredArguments.map(n=>Su(n)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,r){return r.visibleCommands(e).reduce((n,s)=>Math.max(n,r.subcommandTerm(s).length),0)}longestOptionTermLength(e,r){return r.visibleOptions(e).reduce((n,s)=>Math.max(n,r.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,r){return r.visibleGlobalOptions(e).reduce((n,s)=>Math.max(n,r.optionTerm(s).length),0)}longestArgumentTermLength(e,r){return r.visibleArguments(e).reduce((n,s)=>Math.max(n,r.argumentTerm(s).length),0)}commandUsage(e){let r=e._name;e._aliases[0]&&(r=r+"|"+e._aliases[0]);let n="";for(let s=e.parent;s;s=s.parent)n=s.name()+" "+n;return n+r+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let r=[];return e.argChoices&&r.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&r.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&r.push(`env: ${e.envVar}`),r.length>0?`${e.description} (${r.join(", ")})`:e.description}argumentDescription(e){let r=[];if(e.argChoices&&r.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&r.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),r.length>0){let n=`(${r.join(", ")})`;return e.description?`${e.description} ${n}`:n}return e.description}formatHelp(e,r){let n=r.padWidth(e,r),s=r.helpWidth||80,o=2,i=2;function a(C,w){if(w){let $=`${C.padEnd(n+i)}${w}`;return r.wrap($,s-o,n+i)}return C}function c(C){return C.join(`
9
9
  `).replace(/^/gm," ".repeat(o))}let l=[`Usage: ${r.commandUsage(e)}`,""],p=r.commandDescription(e);p.length>0&&(l=l.concat([r.wrap(p,s,0),""]));let d=r.visibleArguments(e).map(C=>a(r.argumentTerm(C),r.argumentDescription(C)));d.length>0&&(l=l.concat(["Arguments:",c(d),""]));let m=r.visibleOptions(e).map(C=>a(r.optionTerm(C),r.optionDescription(C)));if(m.length>0&&(l=l.concat(["Options:",c(m),""])),this.showGlobalOptions){let C=r.visibleGlobalOptions(e).map(w=>a(r.optionTerm(w),r.optionDescription(w)));C.length>0&&(l=l.concat(["Global Options:",c(C),""]))}let y=r.visibleCommands(e).map(C=>a(r.subcommandTerm(C),r.subcommandDescription(C)));return y.length>0&&(l=l.concat(["Commands:",c(y),""])),l.join(`
10
10
  `)}padWidth(e,r){return Math.max(r.longestOptionTermLength(e,r),r.longestGlobalOptionTermLength(e,r),r.longestSubcommandTermLength(e,r),r.longestArgumentTermLength(e,r))}wrap(e,r,n,s=40){let o=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",i=new RegExp(`[\\n][${o}]+`);if(e.match(i))return e;let a=r-n;if(a<s)return e;let c=e.slice(0,n),l=e.slice(n).replace(`\r
11
11
  `,`
12
12
  `),p=" ".repeat(n),m="\\s\u200B",y=new RegExp(`
13
13
  |.{1,${a-1}}([${m}]|$)|[^${m}]+?([${m}]|$)`,"g"),C=l.match(y)||[];return c+C.map((w,$)=>w===`
14
14
  `?"":($>0?p:"")+w.trimEnd()).join(`
15
- `)}};Ln.Help=Zt});var nr=A(rr=>{var{InvalidArgumentError:$u}=Be(),er=class{constructor(e,r){this.flags=e,this.description=r||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=Au(e);this.short=n.shortFlag,this.long=n.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}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let r=e;return typeof e=="string"&&(r={[e]:!0}),this.implied=Object.assign(this.implied||{},r),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,r){return r===this.defaultValue||!Array.isArray(r)?[e]:r.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new $u(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,n):r},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return ku(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},tr=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(r=>{r.negate?this.negativeOptions.set(r.attributeName(),r):this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,n)=>{this.positiveOptions.has(n)&&this.dualOptions.add(n)})}valueFromOption(e,r){let n=r.attributeName();if(!this.dualOptions.has(n))return!0;let s=this.negativeOptions.get(n).presetArg,o=s!==void 0?s:!1;return r.negate===(o===e)}};function ku(t){return t.split("-").reduce((e,r)=>e+r[0].toUpperCase()+r.slice(1))}function Au(t){let e,r,n=t.split(/[ |,]+/);return n.length>1&&!/^[[<]/.test(n[1])&&(e=n.shift()),r=n.shift(),!e&&/^-[^-]$/.test(r)&&(e=r,r=void 0),{shortFlag:e,longFlag:r}}rr.Option=er;rr.DualOptions=tr});var Gn=A(Un=>{function Pu(t,e){if(Math.abs(t.length-e.length)>3)return Math.max(t.length,e.length);let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=e.length;n++)for(let s=1;s<=t.length;s++){let o=1;t[s-1]===e[n-1]?o=0:o=1,r[s][n]=Math.min(r[s-1][n]+1,r[s][n-1]+1,r[s-1][n-1]+o),s>1&&n>1&&t[s-1]===e[n-2]&&t[s-2]===e[n-1]&&(r[s][n]=Math.min(r[s][n],r[s-2][n-2]+1))}return r[t.length][e.length]}function Tu(t,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let r=t.startsWith("--");r&&(t=t.slice(2),e=e.map(i=>i.slice(2)));let n=[],s=3,o=.4;return e.forEach(i=>{if(i.length<=1)return;let a=Pu(t,i),c=Math.max(t.length,i.length);(c-a)/c>o&&(a<s?(s=a,n=[i]):a===s&&n.push(i))}),n.sort((i,a)=>i.localeCompare(a)),r&&(n=n.map(i=>`--${i}`)),n.length>1?`
15
+ `)}};Ln.Help=Zt});var nr=A(rr=>{var{InvalidArgumentError:$u}=Be(),er=class{constructor(e,r){this.flags=e,this.description=r||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=Au(e);this.short=n.shortFlag,this.long=n.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}default(e,r){return this.defaultValue=e,this.defaultValueDescription=r,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let r=e;return typeof e=="string"&&(r={[e]:!0}),this.implied=Object.assign(this.implied||{},r),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,r){return r===this.defaultValue||!Array.isArray(r)?[e]:r.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(r,n)=>{if(!this.argChoices.includes(r))throw new $u(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,n):r},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return ku(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},tr=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(r=>{r.negate?this.negativeOptions.set(r.attributeName(),r):this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,n)=>{this.positiveOptions.has(n)&&this.dualOptions.add(n)})}valueFromOption(e,r){let n=r.attributeName();if(!this.dualOptions.has(n))return!0;let s=this.negativeOptions.get(n).presetArg,o=s!==void 0?s:!1;return r.negate===(o===e)}};function ku(t){return t.split("-").reduce((e,r)=>e+r[0].toUpperCase()+r.slice(1))}function Au(t){let e,r,n=t.split(/[ |,]+/);return n.length>1&&!/^[[<]/.test(n[1])&&(e=n.shift()),r=n.shift(),!e&&/^-[^-]$/.test(r)&&(e=r,r=void 0),{shortFlag:e,longFlag:r}}rr.Option=er;rr.DualOptions=tr});var Vn=A(Un=>{function Pu(t,e){if(Math.abs(t.length-e.length)>3)return Math.max(t.length,e.length);let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=e.length;n++)for(let s=1;s<=t.length;s++){let o=1;t[s-1]===e[n-1]?o=0:o=1,r[s][n]=Math.min(r[s-1][n]+1,r[s][n-1]+1,r[s-1][n-1]+o),s>1&&n>1&&t[s-1]===e[n-2]&&t[s-2]===e[n-1]&&(r[s][n]=Math.min(r[s][n],r[s-2][n-2]+1))}return r[t.length][e.length]}function Tu(t,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let r=t.startsWith("--");r&&(t=t.slice(2),e=e.map(i=>i.slice(2)));let n=[],s=3,o=.4;return e.forEach(i=>{if(i.length<=1)return;let a=Pu(t,i),c=Math.max(t.length,i.length);(c-a)/c>o&&(a<s?(s=a,n=[i]):a===s&&n.push(i))}),n.sort((i,a)=>i.localeCompare(a)),r&&(n=n.map(i=>`--${i}`)),n.length>1?`
16
16
  (Did you mean one of ${n.join(", ")}?)`:n.length===1?`
17
- (Did you mean ${n[0]}?)`:""}Un.suggestSimilar=Tu});var qn=A(Hn=>{var _u=V("node:events").EventEmitter,ir=V("node:child_process"),se=V("node:path"),sr=V("node:fs"),T=V("node:process"),{Argument:ju,humanReadableArgName:Bu}=Xe(),{CommanderError:or}=Be(),{Help:Ou}=Qt(),{Option:Vn,DualOptions:Iu}=nr(),{suggestSimilar:zn}=Gn(),ar=class t extends _u{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",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._outputConfiguration={writeOut:r=>T.stdout.write(r),writeErr:r=>T.stderr.write(r),getOutHelpWidth:()=>T.stdout.isTTY?T.stdout.columns:void 0,getErrHelpWidth:()=>T.stderr.isTTY?T.stderr.columns:void 0,outputError:(r,n)=>n(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let r=this;r;r=r.parent)e.push(r);return e}command(e,r,n){let s=r,o=n;typeof s=="object"&&s!==null&&(o=s,s=null),o=o||{};let[,i,a]=e.match(/([^ ]+) *(.*)/),c=this.createCommand(i);return s&&(c.description(s),c._executableHandler=!0),o.isDefault&&(this._defaultCommandName=c._name),c._hidden=!!(o.noHelp||o.hidden),c._executableFile=o.executableFile||null,a&&c.arguments(a),this._registerCommand(c),c.parent=this,c.copyInheritedSettings(this),s?this:c}createCommand(e){return new t(e)}createHelp(){return Object.assign(new Ou,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,r){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
17
+ (Did you mean ${n[0]}?)`:""}Un.suggestSimilar=Tu});var qn=A(Hn=>{var _u=G("node:events").EventEmitter,ir=G("node:child_process"),se=G("node:path"),sr=G("node:fs"),T=G("node:process"),{Argument:ju,humanReadableArgName:Bu}=Xe(),{CommanderError:or}=Be(),{Help:Ou}=Qt(),{Option:Gn,DualOptions:Iu}=nr(),{suggestSimilar:zn}=Vn(),ar=class t extends _u{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",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._outputConfiguration={writeOut:r=>T.stdout.write(r),writeErr:r=>T.stderr.write(r),getOutHelpWidth:()=>T.stdout.isTTY?T.stdout.columns:void 0,getErrHelpWidth:()=>T.stderr.isTTY?T.stderr.columns:void 0,outputError:(r,n)=>n(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let r=this;r;r=r.parent)e.push(r);return e}command(e,r,n){let s=r,o=n;typeof s=="object"&&s!==null&&(o=s,s=null),o=o||{};let[,i,a]=e.match(/([^ ]+) *(.*)/),c=this.createCommand(i);return s&&(c.description(s),c._executableHandler=!0),o.isDefault&&(this._defaultCommandName=c._name),c._hidden=!!(o.noHelp||o.hidden),c._executableFile=o.executableFile||null,a&&c.arguments(a),this._registerCommand(c),c.parent=this,c.copyInheritedSettings(this),s?this:c}createCommand(e){return new t(e)}createHelp(){return Object.assign(new Ou,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,r){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
18
18
  - specify the name in Command constructor or using .name()`);return r=r||{},r.isDefault&&(this._defaultCommandName=e._name),(r.noHelp||r.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,r){return new ju(e,r)}argument(e,r,n,s){let o=this.createArgument(e,r);return typeof n=="function"?o.default(s).argParser(n):o.default(n),this.addArgument(o),this}arguments(e){return e.trim().split(/ +/).forEach(r=>{this.argument(r)}),this}addArgument(e){let r=this.registeredArguments.slice(-1)[0];if(r&&r.variadic)throw new Error(`only the last argument can be variadic '${r.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,r){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,n,s]=e.match(/([^ ]+) *(.*)/),o=r??"display help for command",i=this.createCommand(n);return i.helpOption(!1),s&&i.arguments(s),o&&i.description(o),this._addImplicitHelpCommand=!0,this._helpCommand=i,this}addHelpCommand(e,r){return typeof e!="object"?(this.helpCommand(e,r),this):(this._addImplicitHelpCommand=!0,this._helpCommand=e,this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(e,r){let n=["preSubcommand","preAction","postAction"];if(!n.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
19
- Expecting one of '${n.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(r):this._lifeCycleHooks[e]=[r],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=r=>{if(r.code!=="commander.executeSubCommandAsync")throw r},this}_exit(e,r,n){this._exitCallback&&this._exitCallback(new or(e,r,n)),T.exit(e)}action(e){let r=n=>{let s=this.registeredArguments.length,o=n.slice(0,s);return this._storeOptionsAsProperties?o[s]=this:o[s]=this.opts(),o.push(this),e.apply(this,o)};return this._actionHandler=r,this}createOption(e,r){return new Vn(e,r)}_callParseArg(e,r,n,s){try{return e.parseArg(r,n)}catch(o){if(o.code==="commander.invalidArgument"){let i=`${s} ${o.message}`;this.error(i,{exitCode:o.exitCode,code:o.code})}throw o}}_registerOption(e){let r=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(r){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw new Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}'
20
- - already used by option '${r.flags}'`)}this.options.push(e)}_registerCommand(e){let r=s=>[s.name()].concat(s.aliases()),n=r(e).find(s=>this._findCommand(s));if(n){let s=r(this._findCommand(n)).join("|"),o=r(e).join("|");throw new Error(`cannot add command '${o}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let r=e.name(),n=e.attributeName();if(e.negate){let o=e.long.replace(/^--no-/,"--");this._findOption(o)||this.setOptionValueWithSource(n,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(n,e.defaultValue,"default");let s=(o,i,a)=>{o==null&&e.presetArg!==void 0&&(o=e.presetArg);let c=this.getOptionValue(n);o!==null&&e.parseArg?o=this._callParseArg(e,o,c,i):o!==null&&e.variadic&&(o=e._concatValue(o,c)),o==null&&(e.negate?o=!1:e.isBoolean()||e.optional?o=!0:o=""),this.setOptionValueWithSource(n,o,a)};return this.on("option:"+r,o=>{let i=`error: option '${e.flags}' argument '${o}' is invalid.`;s(o,i,"cli")}),e.envVar&&this.on("optionEnv:"+r,o=>{let i=`error: option '${e.flags}' value '${o}' from env '${e.envVar}' is invalid.`;s(o,i,"env")}),this}_optionEx(e,r,n,s,o){if(typeof r=="object"&&r instanceof Vn)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let i=this.createOption(r,n);if(i.makeOptionMandatory(!!e.mandatory),typeof s=="function")i.default(o).argParser(s);else if(s instanceof RegExp){let a=s;s=(c,l)=>{let p=a.exec(c);return p?p[0]:l},i.default(o).argParser(s)}else i.default(s);return this.addOption(i)}option(e,r,n,s){return this._optionEx({},e,r,n,s)}requiredOption(e,r,n,s){return this._optionEx({mandatory:!0},e,r,n,s)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,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(e=!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=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,r){return this.setOptionValueWithSource(e,r,void 0)}setOptionValueWithSource(e,r,n){return this._storeOptionsAsProperties?this[e]=r:this._optionValues[e]=r,this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let r;return this._getCommandAndAncestors().forEach(n=>{n.getOptionValueSource(e)!==void 0&&(r=n.getOptionValueSource(e))}),r}_prepareUserArgs(e,r){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(r=r||{},e===void 0&&r.from===void 0){T.versions?.electron&&(r.from="electron");let s=T.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(r.from="eval")}e===void 0&&(e=T.argv),this.rawArgs=e.slice();let n;switch(r.from){case void 0:case"node":this._scriptPath=e[1],n=e.slice(2);break;case"electron":T.defaultApp?(this._scriptPath=e[1],n=e.slice(2)):n=e.slice(1);break;case"user":n=e.slice(0);break;case"eval":n=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${r.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",n}parse(e,r){let n=this._prepareUserArgs(e,r);return this._parseCommand([],n),this}async parseAsync(e,r){let n=this._prepareUserArgs(e,r);return await this._parseCommand([],n),this}_executeSubCommand(e,r){r=r.slice();let n=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function o(p,d){let m=se.resolve(p,d);if(sr.existsSync(m))return m;if(s.includes(se.extname(d)))return;let y=s.find(C=>sr.existsSync(`${m}${C}`));if(y)return`${m}${y}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||"";if(this._scriptPath){let p;try{p=sr.realpathSync(this._scriptPath)}catch{p=this._scriptPath}a=se.resolve(se.dirname(p),a)}if(a){let p=o(a,i);if(!p&&!e._executableFile&&this._scriptPath){let d=se.basename(this._scriptPath,se.extname(this._scriptPath));d!==this._name&&(p=o(a,`${d}-${e._name}`))}i=p||i}n=s.includes(se.extname(i));let c;T.platform!=="win32"?n?(r.unshift(i),r=Wn(T.execArgv).concat(r),c=ir.spawn(T.argv[0],r,{stdio:"inherit"})):c=ir.spawn(i,r,{stdio:"inherit"}):(r.unshift(i),r=Wn(T.execArgv).concat(r),c=ir.spawn(T.execPath,r,{stdio:"inherit"})),c.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(d=>{T.on(d,()=>{c.killed===!1&&c.exitCode===null&&c.kill(d)})});let l=this._exitCallback;c.on("close",p=>{p=p??1,l?l(new or(p,"commander.executeSubCommandAsync","(close)")):T.exit(p)}),c.on("error",p=>{if(p.code==="ENOENT"){let d=a?`searched for local subcommand relative to directory '${a}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",m=`'${i}' does not exist
19
+ Expecting one of '${n.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(r):this._lifeCycleHooks[e]=[r],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=r=>{if(r.code!=="commander.executeSubCommandAsync")throw r},this}_exit(e,r,n){this._exitCallback&&this._exitCallback(new or(e,r,n)),T.exit(e)}action(e){let r=n=>{let s=this.registeredArguments.length,o=n.slice(0,s);return this._storeOptionsAsProperties?o[s]=this:o[s]=this.opts(),o.push(this),e.apply(this,o)};return this._actionHandler=r,this}createOption(e,r){return new Gn(e,r)}_callParseArg(e,r,n,s){try{return e.parseArg(r,n)}catch(o){if(o.code==="commander.invalidArgument"){let i=`${s} ${o.message}`;this.error(i,{exitCode:o.exitCode,code:o.code})}throw o}}_registerOption(e){let r=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(r){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw new Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}'
20
+ - already used by option '${r.flags}'`)}this.options.push(e)}_registerCommand(e){let r=s=>[s.name()].concat(s.aliases()),n=r(e).find(s=>this._findCommand(s));if(n){let s=r(this._findCommand(n)).join("|"),o=r(e).join("|");throw new Error(`cannot add command '${o}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let r=e.name(),n=e.attributeName();if(e.negate){let o=e.long.replace(/^--no-/,"--");this._findOption(o)||this.setOptionValueWithSource(n,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(n,e.defaultValue,"default");let s=(o,i,a)=>{o==null&&e.presetArg!==void 0&&(o=e.presetArg);let c=this.getOptionValue(n);o!==null&&e.parseArg?o=this._callParseArg(e,o,c,i):o!==null&&e.variadic&&(o=e._concatValue(o,c)),o==null&&(e.negate?o=!1:e.isBoolean()||e.optional?o=!0:o=""),this.setOptionValueWithSource(n,o,a)};return this.on("option:"+r,o=>{let i=`error: option '${e.flags}' argument '${o}' is invalid.`;s(o,i,"cli")}),e.envVar&&this.on("optionEnv:"+r,o=>{let i=`error: option '${e.flags}' value '${o}' from env '${e.envVar}' is invalid.`;s(o,i,"env")}),this}_optionEx(e,r,n,s,o){if(typeof r=="object"&&r instanceof Gn)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let i=this.createOption(r,n);if(i.makeOptionMandatory(!!e.mandatory),typeof s=="function")i.default(o).argParser(s);else if(s instanceof RegExp){let a=s;s=(c,l)=>{let p=a.exec(c);return p?p[0]:l},i.default(o).argParser(s)}else i.default(s);return this.addOption(i)}option(e,r,n,s){return this._optionEx({},e,r,n,s)}requiredOption(e,r,n,s){return this._optionEx({mandatory:!0},e,r,n,s)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,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(e=!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=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,r){return this.setOptionValueWithSource(e,r,void 0)}setOptionValueWithSource(e,r,n){return this._storeOptionsAsProperties?this[e]=r:this._optionValues[e]=r,this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let r;return this._getCommandAndAncestors().forEach(n=>{n.getOptionValueSource(e)!==void 0&&(r=n.getOptionValueSource(e))}),r}_prepareUserArgs(e,r){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(r=r||{},e===void 0&&r.from===void 0){T.versions?.electron&&(r.from="electron");let s=T.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(r.from="eval")}e===void 0&&(e=T.argv),this.rawArgs=e.slice();let n;switch(r.from){case void 0:case"node":this._scriptPath=e[1],n=e.slice(2);break;case"electron":T.defaultApp?(this._scriptPath=e[1],n=e.slice(2)):n=e.slice(1);break;case"user":n=e.slice(0);break;case"eval":n=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${r.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",n}parse(e,r){let n=this._prepareUserArgs(e,r);return this._parseCommand([],n),this}async parseAsync(e,r){let n=this._prepareUserArgs(e,r);return await this._parseCommand([],n),this}_executeSubCommand(e,r){r=r.slice();let n=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function o(p,d){let m=se.resolve(p,d);if(sr.existsSync(m))return m;if(s.includes(se.extname(d)))return;let y=s.find(C=>sr.existsSync(`${m}${C}`));if(y)return`${m}${y}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||"";if(this._scriptPath){let p;try{p=sr.realpathSync(this._scriptPath)}catch{p=this._scriptPath}a=se.resolve(se.dirname(p),a)}if(a){let p=o(a,i);if(!p&&!e._executableFile&&this._scriptPath){let d=se.basename(this._scriptPath,se.extname(this._scriptPath));d!==this._name&&(p=o(a,`${d}-${e._name}`))}i=p||i}n=s.includes(se.extname(i));let c;T.platform!=="win32"?n?(r.unshift(i),r=Wn(T.execArgv).concat(r),c=ir.spawn(T.argv[0],r,{stdio:"inherit"})):c=ir.spawn(i,r,{stdio:"inherit"}):(r.unshift(i),r=Wn(T.execArgv).concat(r),c=ir.spawn(T.execPath,r,{stdio:"inherit"})),c.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(d=>{T.on(d,()=>{c.killed===!1&&c.exitCode===null&&c.kill(d)})});let l=this._exitCallback;c.on("close",p=>{p=p??1,l?l(new or(p,"commander.executeSubCommandAsync","(close)")):T.exit(p)}),c.on("error",p=>{if(p.code==="ENOENT"){let d=a?`searched for local subcommand relative to directory '${a}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",m=`'${i}' does not exist
21
21
  - if '${e._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
22
22
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
23
23
  - ${d}`;throw new Error(m)}else if(p.code==="EACCES")throw new Error(`'${i}' not executable`);if(!l)T.exit(1);else{let d=new or(1,"commander.executeSubCommandAsync","(error)");d.nestedError=p,l(d)}}),this.runningCommand=c}_dispatchSubcommand(e,r,n){let s=this._findCommand(e);s||this.help({error:!0});let o;return o=this._chainOrCallSubCommandHook(o,s,"preSubcommand"),o=this._chainOrCall(o,()=>{if(s._executableHandler)this._executeSubCommand(s,r.concat(n));else return s._parseCommand(r,n)}),o}_dispatchHelpCommand(e){e||this.help();let r=this._findCommand(e);return r&&!r._executableHandler&&r.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,r)=>{e.required&&this.args[r]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(n,s,o)=>{let i=s;if(s!==null&&n.parseArg){let a=`error: command-argument value '${s}' is invalid for argument '${n.name()}'.`;i=this._callParseArg(n,s,o,a)}return i};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((n,s)=>{let o=n.defaultValue;n.variadic?s<this.args.length?(o=this.args.slice(s),n.parseArg&&(o=o.reduce((i,a)=>e(n,a,i),n.defaultValue))):o===void 0&&(o=[]):s<this.args.length&&(o=this.args[s],n.parseArg&&(o=e(n,o,n.defaultValue))),r[s]=o}),this.processedArgs=r}_chainOrCall(e,r){return e&&e.then&&typeof e.then=="function"?e.then(()=>r()):r()}_chainOrCallHooks(e,r){let n=e,s=[];return this._getCommandAndAncestors().reverse().filter(o=>o._lifeCycleHooks[r]!==void 0).forEach(o=>{o._lifeCycleHooks[r].forEach(i=>{s.push({hookedCommand:o,callback:i})})}),r==="postAction"&&s.reverse(),s.forEach(o=>{n=this._chainOrCall(n,()=>o.callback(o.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,r,n){let s=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(o=>{s=this._chainOrCall(s,()=>o(this,r))}),s}_parseCommand(e,r){let n=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),r=n.unknown,this.args=e.concat(r),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),r);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,e,r);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let s=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},o=`command:${this.name()}`;if(this._actionHandler){s(),this._processArguments();let i;return i=this._chainOrCallHooks(i,"preAction"),i=this._chainOrCall(i,()=>this._actionHandler(this.processedArgs)),this.parent&&(i=this._chainOrCall(i,()=>{this.parent.emit(o,e,r)})),i=this._chainOrCallHooks(i,"postAction"),i}if(this.parent&&this.parent.listenerCount(o))s(),this._processArguments(),this.parent.emit(o,e,r);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,r);this.listenerCount("command:*")?this.emit("command:*",e,r):this.commands.length?this.unknownCommand():(s(),this._processArguments())}else this.commands.length?(s(),this.help({error:!0})):(s(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(r=>r._name===e||r._aliases.includes(e))}_findOption(e){return this.options.find(r=>r.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(r=>{r.mandatory&&e.getOptionValue(r.attributeName())===void 0&&e.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(n=>{let s=n.attributeName();return this.getOptionValue(s)===void 0?!1:this.getOptionValueSource(s)!=="default"});e.filter(n=>n.conflictsWith.length>0).forEach(n=>{let s=e.find(o=>n.conflictsWith.includes(o.attributeName()));s&&this._conflictingOption(n,s)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let r=[],n=[],s=r,o=e.slice();function i(c){return c.length>1&&c[0]==="-"}let a=null;for(;o.length;){let c=o.shift();if(c==="--"){s===n&&s.push(c),s.push(...o);break}if(a&&!i(c)){this.emit(`option:${a.name()}`,c);continue}if(a=null,i(c)){let l=this._findOption(c);if(l){if(l.required){let p=o.shift();p===void 0&&this.optionMissingArgument(l),this.emit(`option:${l.name()}`,p)}else if(l.optional){let p=null;o.length>0&&!i(o[0])&&(p=o.shift()),this.emit(`option:${l.name()}`,p)}else this.emit(`option:${l.name()}`);a=l.variadic?l:null;continue}}if(c.length>2&&c[0]==="-"&&c[1]!=="-"){let l=this._findOption(`-${c[1]}`);if(l){l.required||l.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${l.name()}`,c.slice(2)):(this.emit(`option:${l.name()}`),o.unshift(`-${c.slice(2)}`));continue}}if(/^--[^=]+=/.test(c)){let l=c.indexOf("="),p=this._findOption(c.slice(0,l));if(p&&(p.required||p.optional)){this.emit(`option:${p.name()}`,c.slice(l+1));continue}}if(i(c)&&(s=n),(this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&n.length===0){if(this._findCommand(c)){r.push(c),o.length>0&&n.push(...o);break}else if(this._getHelpCommand()&&c===this._getHelpCommand().name()){r.push(c),o.length>0&&r.push(...o);break}else if(this._defaultCommandName){n.push(c),o.length>0&&n.push(...o);break}}if(this._passThroughOptions){s.push(c),o.length>0&&s.push(...o);break}s.push(c)}return{operands:r,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},r=this.options.length;for(let n=0;n<r;n++){let s=this.options[n].attributeName();e[s]=s===this._versionOptionName?this._version:this[s]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,r)=>Object.assign(e,r.opts()),{})}error(e,r){this._outputConfiguration.outputError(`${e}
@@ -26,7 +26,7 @@ Expecting one of '${n.join("', '")}'`);return this._lifeCycleHooks[e]?this._life
26
26
  `),this.outputHelp({error:!0}));let n=r||{},s=n.exitCode||1,o=n.code||"commander.error";this._exit(s,o,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in T.env){let r=e.attributeName();(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,T.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new Iu(this.options),r=n=>this.getOptionValue(n)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(n));this.options.filter(n=>n.implied!==void 0&&r(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(n=>{Object.keys(n.implied).filter(s=>!r(s)).forEach(s=>{this.setOptionValueWithSource(s,n.implied[s],"implied")})})}missingArgument(e){let r=`error: missing required argument '${e}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(e){let r=`error: option '${e.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let r=`error: required option '${e.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,r){let n=i=>{let a=i.attributeName(),c=this.getOptionValue(a),l=this.options.find(d=>d.negate&&a===d.attributeName()),p=this.options.find(d=>!d.negate&&a===d.attributeName());return l&&(l.presetArg===void 0&&c===!1||l.presetArg!==void 0&&c===l.presetArg)?l:p||i},s=i=>{let a=n(i),c=a.attributeName();return this.getOptionValueSource(c)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},o=`error: ${s(e)} cannot be used with ${s(r)}`;this.error(o,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let r="";if(e.startsWith("--")&&this._showSuggestionAfterError){let s=[],o=this;do{let i=o.createHelp().visibleOptions(o).filter(a=>a.long).map(a=>a.long);s=s.concat(i),o=o.parent}while(o&&!o._enablePositionalOptions);r=zn(e,s)}let n=`error: unknown option '${e}'${r}`;this.error(n,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,n=r===1?"":"s",o=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${n} but got ${e.length}.`;this.error(o,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],r="";if(this._showSuggestionAfterError){let s=[];this.createHelp().visibleCommands(this).forEach(o=>{s.push(o.name()),o.alias()&&s.push(o.alias())}),r=zn(e,s)}let n=`error: unknown command '${e}'${r}`;this.error(n,{code:"commander.unknownCommand"})}version(e,r,n){if(e===void 0)return this._version;this._version=e,r=r||"-V, --version",n=n||"output the version number";let s=this.createOption(r,n);return this._versionOptionName=s.attributeName(),this._registerOption(s),this.on("option:"+s.name(),()=>{this._outputConfiguration.writeOut(`${e}
27
27
  `),this._exit(0,"commander.version",e)}),this}description(e,r){return e===void 0&&r===void 0?this._description:(this._description=e,r&&(this._argsDescription=r),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(r=this.commands[this.commands.length-1]),e===r._name)throw new Error("Command alias can't be the same as its name");let n=this.parent?._findCommand(e);if(n){let s=[n.name()].concat(n.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${s}'`)}return r._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(r=>this.alias(r)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map(n=>Bu(n));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=se.basename(e,se.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let r=this.createHelp();return r.helpWidth===void 0&&(r.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),r.formatHelp(this,r)}_getHelpContext(e){e=e||{};let r={error:!!e.error},n;return r.error?n=s=>this._outputConfiguration.writeErr(s):n=s=>this._outputConfiguration.writeOut(s),r.write=e.write||n,r.command=this,r}outputHelp(e){let r;typeof e=="function"&&(r=e,e=void 0);let n=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(o=>o.emit("beforeAllHelp",n)),this.emit("beforeHelp",n);let s=this.helpInformation(n);if(r&&(s=r(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");n.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",n),this._getCommandAndAncestors().forEach(o=>o.emit("afterAllHelp",n))}helpOption(e,r){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",r=r??"display help for command",this._helpOption=this.createOption(e,r),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let r=T.exitCode||0;r===0&&e&&typeof e!="function"&&e.error&&(r=1),this._exit(r,"commander.help","(outputHelp)")}addHelpText(e,r){let n=["beforeAll","before","after","afterAll"];if(!n.includes(e))throw new Error(`Unexpected value for position to addHelpText.
28
28
  Expecting one of '${n.join("', '")}'`);let s=`${e}Help`;return this.on(s,o=>{let i;typeof r=="function"?i=r({error:o.error,command:o.command}):i=r,i&&o.write(`${i}
29
- `)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();r&&e.find(s=>r.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function Wn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let r,n="127.0.0.1",s="9229",o;return(o=e.match(/^(--inspect(-brk)?)$/))!==null?r=o[1]:(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=o[1],/^\d+$/.test(o[3])?s=o[3]:n=o[3]):(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=o[1],n=o[3],s=o[4]),r&&s!=="0"?`${r}=${n}:${parseInt(s)+1}`:e})}Hn.Command=ar});var Yn=A(q=>{var{Argument:Jn}=Xe(),{Command:ur}=qn(),{CommanderError:Ru,InvalidArgumentError:Kn}=Be(),{Help:Nu}=Qt(),{Option:Xn}=nr();q.program=new ur;q.createCommand=t=>new ur(t);q.createOption=(t,e)=>new Xn(t,e);q.createArgument=(t,e)=>new Jn(t,e);q.Command=ur;q.Option=Xn;q.Argument=Jn;q.Help=Nu;q.CommanderError=Ru;q.InvalidArgumentError=Kn;q.InvalidOptionArgumentError=Kn});var pr=A((qm,ei)=>{"use strict";var cr="\x1B",P=`${cr}[`,Mu="\x07",lr={to(t,e){return e?`${P}${e+1};${t+1}H`:`${P}${t+1}G`},move(t,e){let r="";return t<0?r+=`${P}${-t}D`:t>0&&(r+=`${P}${t}C`),e<0?r+=`${P}${-e}A`:e>0&&(r+=`${P}${e}B`),r},up:(t=1)=>`${P}${t}A`,down:(t=1)=>`${P}${t}B`,forward:(t=1)=>`${P}${t}C`,backward:(t=1)=>`${P}${t}D`,nextLine:(t=1)=>`${P}E`.repeat(t),prevLine:(t=1)=>`${P}F`.repeat(t),left:`${P}G`,hide:`${P}?25l`,show:`${P}?25h`,save:`${cr}7`,restore:`${cr}8`},Lu={up:(t=1)=>`${P}S`.repeat(t),down:(t=1)=>`${P}T`.repeat(t)},Uu={screen:`${P}2J`,up:(t=1)=>`${P}1J`.repeat(t),down:(t=1)=>`${P}J`.repeat(t),line:`${P}2K`,lineEnd:`${P}K`,lineStart:`${P}1K`,lines(t){let e="";for(let r=0;r<t;r++)e+=this.line+(r<t-1?lr.up():"");return t&&(e+=lr.left),e}};ei.exports={cursor:lr,scroll:Lu,erase:Uu,beep:Mu}});var Y=A((Jm,dr)=>{var Ze=process||{},ti=Ze.argv||[],Ye=Ze.env||{},Gu=!(Ye.NO_COLOR||ti.includes("--no-color"))&&(!!Ye.FORCE_COLOR||ti.includes("--color")||Ze.platform==="win32"||(Ze.stdout||{}).isTTY&&Ye.TERM!=="dumb"||!!Ye.CI),Vu=(t,e,r=t)=>n=>{let s=""+n,o=s.indexOf(e,t.length);return~o?t+zu(s,e,r,o)+e:t+s+e},zu=(t,e,r,n)=>{let s="",o=0;do s+=t.substring(o,n)+r,o=n+e.length,n=t.indexOf(e,o);while(~n);return s+t.substring(o)},ri=(t=Gu)=>{let e=t?Vu:()=>String;return{isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};dr.exports=ri();dr.exports.createColors=ri});import{stdin as gi,stdout as Di}from"node:process";import*as pe from"node:readline";import ni from"node:readline";import{WriteStream as Wu}from"node:tty";function Hu({onlyFirst:t=!1}={}){let e=["[\\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(e,t?void 0:"g")}function Ci(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(qu,"")}function yi(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Oe(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=Ci(t),t.length===0))return 0;t=t.replace(Yu()," ");let r=e.ambiguousIsNarrow?1:2,n=0;for(let s of t){let o=s.codePointAt(0);if(!(o<=31||o>=127&&o<=159||o>=768&&o<=879))switch(Ku.eastAsianWidth(s)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function ec(){let t=new Map;for(let[e,r]of Object.entries(k)){for(let[n,s]of Object.entries(r))k[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},r[n]=k[n],t.set(s[0],s[1]);Object.defineProperty(k,e,{value:r,enumerable:!1})}return Object.defineProperty(k,"codes",{value:t,enumerable:!1}),k.color.close="\x1B[39m",k.bgColor.close="\x1B[49m",k.color.ansi=ii(),k.color.ansi256=si(),k.color.ansi16m=oi(),k.bgColor.ansi=ii(mr),k.bgColor.ansi256=si(mr),k.bgColor.ansi16m=oi(mr),Object.defineProperties(k,{rgbToAnsi256:{value:(e,r,n)=>e===r&&r===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let s=Number.parseInt(n,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>k.rgbToAnsi256(...k.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let r,n,s;if(e>=232)r=((e-232)*10+8)/255,n=r,s=r;else{e-=16;let a=e%36;r=Math.floor(e/36)/5,n=Math.floor(a/6)/5,s=a%6/5}let o=Math.max(r,n,s)*2;if(o===0)return 30;let i=30+(Math.round(s)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,r,n)=>k.ansi256ToAnsi(k.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>k.ansi256ToAnsi(k.hexToAnsi256(e)),enumerable:!1}}),k}function ci(t,e,r){return String(t).normalize().replace(/\r\n/g,`
29
+ `)}),this}_outputHelpIfRequested(e){let r=this._getHelpOption();r&&e.find(s=>r.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function Wn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let r,n="127.0.0.1",s="9229",o;return(o=e.match(/^(--inspect(-brk)?)$/))!==null?r=o[1]:(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=o[1],/^\d+$/.test(o[3])?s=o[3]:n=o[3]):(o=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=o[1],n=o[3],s=o[4]),r&&s!=="0"?`${r}=${n}:${parseInt(s)+1}`:e})}Hn.Command=ar});var Yn=A(q=>{var{Argument:Jn}=Xe(),{Command:ur}=qn(),{CommanderError:Ru,InvalidArgumentError:Kn}=Be(),{Help:Nu}=Qt(),{Option:Xn}=nr();q.program=new ur;q.createCommand=t=>new ur(t);q.createOption=(t,e)=>new Xn(t,e);q.createArgument=(t,e)=>new Jn(t,e);q.Command=ur;q.Option=Xn;q.Argument=Jn;q.Help=Nu;q.CommanderError=Ru;q.InvalidArgumentError=Kn;q.InvalidOptionArgumentError=Kn});var pr=A((qm,ei)=>{"use strict";var cr="\x1B",P=`${cr}[`,Mu="\x07",lr={to(t,e){return e?`${P}${e+1};${t+1}H`:`${P}${t+1}G`},move(t,e){let r="";return t<0?r+=`${P}${-t}D`:t>0&&(r+=`${P}${t}C`),e<0?r+=`${P}${-e}A`:e>0&&(r+=`${P}${e}B`),r},up:(t=1)=>`${P}${t}A`,down:(t=1)=>`${P}${t}B`,forward:(t=1)=>`${P}${t}C`,backward:(t=1)=>`${P}${t}D`,nextLine:(t=1)=>`${P}E`.repeat(t),prevLine:(t=1)=>`${P}F`.repeat(t),left:`${P}G`,hide:`${P}?25l`,show:`${P}?25h`,save:`${cr}7`,restore:`${cr}8`},Lu={up:(t=1)=>`${P}S`.repeat(t),down:(t=1)=>`${P}T`.repeat(t)},Uu={screen:`${P}2J`,up:(t=1)=>`${P}1J`.repeat(t),down:(t=1)=>`${P}J`.repeat(t),line:`${P}2K`,lineEnd:`${P}K`,lineStart:`${P}1K`,lines(t){let e="";for(let r=0;r<t;r++)e+=this.line+(r<t-1?lr.up():"");return t&&(e+=lr.left),e}};ei.exports={cursor:lr,scroll:Lu,erase:Uu,beep:Mu}});var Y=A((Jm,dr)=>{var Ze=process||{},ti=Ze.argv||[],Ye=Ze.env||{},Vu=!(Ye.NO_COLOR||ti.includes("--no-color"))&&(!!Ye.FORCE_COLOR||ti.includes("--color")||Ze.platform==="win32"||(Ze.stdout||{}).isTTY&&Ye.TERM!=="dumb"||!!Ye.CI),Gu=(t,e,r=t)=>n=>{let s=""+n,o=s.indexOf(e,t.length);return~o?t+zu(s,e,r,o)+e:t+s+e},zu=(t,e,r,n)=>{let s="",o=0;do s+=t.substring(o,n)+r,o=n+e.length,n=t.indexOf(e,o);while(~n);return s+t.substring(o)},ri=(t=Vu)=>{let e=t?Gu:()=>String;return{isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};dr.exports=ri();dr.exports.createColors=ri});import{stdin as gi,stdout as Di}from"node:process";import*as pe from"node:readline";import ni from"node:readline";import{WriteStream as Wu}from"node:tty";function Hu({onlyFirst:t=!1}={}){let e=["[\\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(e,t?void 0:"g")}function Ci(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(qu,"")}function yi(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Oe(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=Ci(t),t.length===0))return 0;t=t.replace(Yu()," ");let r=e.ambiguousIsNarrow?1:2,n=0;for(let s of t){let o=s.codePointAt(0);if(!(o<=31||o>=127&&o<=159||o>=768&&o<=879))switch(Ku.eastAsianWidth(s)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function ec(){let t=new Map;for(let[e,r]of Object.entries(k)){for(let[n,s]of Object.entries(r))k[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},r[n]=k[n],t.set(s[0],s[1]);Object.defineProperty(k,e,{value:r,enumerable:!1})}return Object.defineProperty(k,"codes",{value:t,enumerable:!1}),k.color.close="\x1B[39m",k.bgColor.close="\x1B[49m",k.color.ansi=ii(),k.color.ansi256=si(),k.color.ansi16m=oi(),k.bgColor.ansi=ii(mr),k.bgColor.ansi256=si(mr),k.bgColor.ansi16m=oi(mr),Object.defineProperties(k,{rgbToAnsi256:{value:(e,r,n)=>e===r&&r===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let s=Number.parseInt(n,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>k.rgbToAnsi256(...k.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let r,n,s;if(e>=232)r=((e-232)*10+8)/255,n=r,s=r;else{e-=16;let a=e%36;r=Math.floor(e/36)/5,n=Math.floor(a/6)/5,s=a%6/5}let o=Math.max(r,n,s)*2;if(o===0)return 30;let i=30+(Math.round(s)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,r,n)=>k.ansi256ToAnsi(k.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>k.ansi256ToAnsi(k.hexToAnsi256(e)),enumerable:!1}}),k}function ci(t,e,r){return String(t).normalize().replace(/\r\n/g,`
30
30
  `).split(`
31
31
  `).map(n=>oc(n,e,r)).join(`
32
32
  `)}function cc(t,e){if(t===e)return;let r=t.split(`
@@ -39,7 +39,7 @@ Expecting one of '${n.join("', '")}'`);let s=`${e}Help`;return this.on(s,o=>{let
39
39
  `).length-1;this.output.write(R.cursor.move(-999,e*-1))}render(){let e=ci(this._render(this)??"",process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state==="initial")this.output.write(R.cursor.hide);else{let r=cc(this._prevFrame,e);if(this.restoreCursor(),r&&r?.length===1){let n=r[0];this.output.write(R.cursor.move(0,n)),this.output.write(R.erase.lines(1));let s=e.split(`
40
40
  `);this.output.write(s[n]),this._prevFrame=e,this.output.write(R.cursor.move(0,s.length-n-1));return}else if(r&&r?.length>1){let n=r[0];this.output.write(R.cursor.move(0,n)),this.output.write(R.erase.down());let s=e.split(`
41
41
  `).slice(n);this.output.write(s.join(`
42
- `)),this._prevFrame=e;return}this.output.write(R.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},et=class extends oe{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(R.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},pc=Object.defineProperty,dc=(t,e,r)=>e in t?pc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pi=(t,e,r)=>(dc(t,typeof e!="symbol"?e+"":e,r),r),tt=class extends oe{constructor(e){super(e,!1),pi(this,"options"),pi(this,"cursor",0);let{options:r}=e;this.options=Object.entries(r).flatMap(([n,s])=>[{value:n,group:!0,label:n},...s.map(o=>({...o,group:n}))]),this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:n})=>n===e.cursorAt),0),this.on("cursor",n=>{switch(n){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;case"space":this.toggleValue();break}})}getGroupItems(e){return this.options.filter(r=>r.group===e)}isGroupSelected(e){return this.getGroupItems(e).every(r=>this.value.includes(r.value))}toggleValue(){let e=this.options[this.cursor];if(e.group===!0){let r=e.value,n=this.getGroupItems(r);this.isGroupSelected(r)?this.value=this.value.filter(s=>n.findIndex(o=>o.value===s)===-1):this.value=[...this.value,...n.map(s=>s.value)],this.value=Array.from(new Set(this.value))}else{let r=this.value.includes(e.value);this.value=r?this.value.filter(n=>n!==e.value):[...this.value,e.value]}}},mc=Object.defineProperty,fc=(t,e,r)=>e in t?mc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,di=(t,e,r)=>(fc(t,typeof e!="symbol"?e+"":e,r),r),Ei=class extends oe{constructor(t){super(t,!1),di(this,"options"),di(this,"cursor",0),this.options=t.options,this.value=[...t.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===t.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll()}),this.on("cursor",e=>{switch(e){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;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let t=this.value.length===this.options.length;this.value=t?[]:this.options.map(e=>e.value)}toggleValue(){let t=this.value.includes(this._value);this.value=t?this.value.filter(e=>e!==this._value):[...this.value,this._value]}},hc=Object.defineProperty,gc=(t,e,r)=>e in t?hc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mi=(t,e,r)=>(gc(t,typeof e!="symbol"?e+"":e,r),r),rt=class extends oe{constructor({mask:e,...r}){super(r),mi(this,"valueWithCursor",""),mi(this,"_mask","\u2022"),this._mask=e??"\u2022",this.on("finalize",()=>{this.valueWithCursor=this.masked}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.masked}${he.default.inverse(he.default.hidden("_"))}`;else{let n=this.masked.slice(0,this.cursor),s=this.masked.slice(this.cursor);this.valueWithCursor=`${n}${he.default.inverse(s[0])}${s.slice(1)}`}})}get cursor(){return this._cursor}get masked(){return this.value.replaceAll(/./g,this._mask)}},Dc=Object.defineProperty,Cc=(t,e,r)=>e in t?Dc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fi=(t,e,r)=>(Cc(t,typeof e!="symbol"?e+"":e,r),r),xi=class extends oe{constructor(t){super(t,!1),fi(this,"options"),fi(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:e})=>e===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",e=>{switch(e){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}},yc=Object.defineProperty,vc=(t,e,r)=>e in t?yc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,hi=(t,e,r)=>(vc(t,typeof e!="symbol"?e+"":e,r),r),nt=class extends oe{constructor(e){super(e,!1),hi(this,"options"),hi(this,"cursor",0),this.options=e.options;let r=this.options.map(({value:[n]})=>n?.toLowerCase());this.cursor=Math.max(r.indexOf(e.initialValue),0),this.on("key",n=>{if(!r.includes(n))return;let s=this.options.find(({value:[o]})=>o?.toLowerCase()===n);s&&(this.value=s.value,this.state="submit",this.emit("submit"))})}},bc=Object.defineProperty,wc=(t,e,r)=>e in t?bc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fc=(t,e,r)=>(wc(t,typeof e!="symbol"?e+"":e,r),r),it=class extends oe{constructor(e){super(e),Fc(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=e.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${he.default.inverse(he.default.hidden("_"))}`;else{let r=this.value.slice(0,this.cursor),n=this.value.slice(this.cursor);this.valueWithCursor=`${r}${he.default.inverse(n[0])}${n.slice(1)}`}})}get cursor(){return this._cursor}},Ec=globalThis.process.platform.startsWith("win")});var at={};S(at,{cancel:()=>Ce,confirm:()=>Re,group:()=>Vc,groupMultiselect:()=>Mc,intro:()=>Lc,isCancel:()=>Q,log:()=>ge,multiselect:()=>Nc,note:()=>$e,outro:()=>xr,password:()=>Ic,select:()=>Er,selectKey:()=>Rc,spinner:()=>Uc,text:()=>Fr});import Z from"node:process";function xc(){return Z.platform!=="win32"?Z.env.TERM!=="linux":!!Z.env.CI||!!Z.env.WT_SESSION||!!Z.env.TERMINUS_SUBLIME||Z.env.ConEmuTask==="{cmd::Cmder}"||Z.env.TERM_PROGRAM==="Terminus-Sublime"||Z.env.TERM_PROGRAM==="vscode"||Z.env.TERM==="xterm-256color"||Z.env.TERM==="alacritty"||Z.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function Gc(){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(t,"g")}var u,Se,yr,_,Sc,ki,Ai,ot,$c,h,z,vr,br,wr,Ie,Pi,kc,$i,Ac,Pc,Tc,_c,jc,Bc,Oc,De,Fr,Ic,Re,Er,Rc,Nc,Mc,Cr,$e,Ce,Lc,xr,ge,Uc,Vc,ut=D(()=>{Dr();Dr();u=M(Y(),1),Se=M(pr(),1);yr=xc(),_=(t,e)=>yr?t:e,Sc=_("\u25C6","*"),ki=_("\u25A0","x"),Ai=_("\u25B2","x"),ot=_("\u25C7","o"),$c=_("\u250C","T"),h=_("\u2502","|"),z=_("\u2514","\u2014"),vr=_("\u25CF",">"),br=_("\u25CB"," "),wr=_("\u25FB","[\u2022]"),Ie=_("\u25FC","[+]"),Pi=_("\u25FB","[ ]"),kc=_("\u25AA","\u2022"),$i=_("\u2500","-"),Ac=_("\u256E","+"),Pc=_("\u251C","+"),Tc=_("\u256F","+"),_c=_("\u25CF","\u2022"),jc=_("\u25C6","*"),Bc=_("\u25B2","!"),Oc=_("\u25A0","x"),De=t=>{switch(t){case"initial":case"active":return u.default.cyan(Sc);case"cancel":return u.default.red(ki);case"error":return u.default.yellow(Ai);case"submit":return u.default.green(ot)}},Fr=t=>new it({validate:t.validate,placeholder:t.placeholder,defaultValue:t.defaultValue,initialValue:t.initialValue,render(){let e=`${u.default.gray(h)}
42
+ `)),this._prevFrame=e;return}this.output.write(R.erase.down())}this.output.write(e),this.state==="initial"&&(this.state="active"),this._prevFrame=e}}},et=class extends oe{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(R.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},pc=Object.defineProperty,dc=(t,e,r)=>e in t?pc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pi=(t,e,r)=>(dc(t,typeof e!="symbol"?e+"":e,r),r),tt=class extends oe{constructor(e){super(e,!1),pi(this,"options"),pi(this,"cursor",0);let{options:r}=e;this.options=Object.entries(r).flatMap(([n,s])=>[{value:n,group:!0,label:n},...s.map(o=>({...o,group:n}))]),this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:n})=>n===e.cursorAt),0),this.on("cursor",n=>{switch(n){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;case"space":this.toggleValue();break}})}getGroupItems(e){return this.options.filter(r=>r.group===e)}isGroupSelected(e){return this.getGroupItems(e).every(r=>this.value.includes(r.value))}toggleValue(){let e=this.options[this.cursor];if(e.group===!0){let r=e.value,n=this.getGroupItems(r);this.isGroupSelected(r)?this.value=this.value.filter(s=>n.findIndex(o=>o.value===s)===-1):this.value=[...this.value,...n.map(s=>s.value)],this.value=Array.from(new Set(this.value))}else{let r=this.value.includes(e.value);this.value=r?this.value.filter(n=>n!==e.value):[...this.value,e.value]}}},mc=Object.defineProperty,fc=(t,e,r)=>e in t?mc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,di=(t,e,r)=>(fc(t,typeof e!="symbol"?e+"":e,r),r),Ei=class extends oe{constructor(t){super(t,!1),di(this,"options"),di(this,"cursor",0),this.options=t.options,this.value=[...t.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===t.cursorAt),0),this.on("key",e=>{e==="a"&&this.toggleAll()}),this.on("cursor",e=>{switch(e){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;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let t=this.value.length===this.options.length;this.value=t?[]:this.options.map(e=>e.value)}toggleValue(){let t=this.value.includes(this._value);this.value=t?this.value.filter(e=>e!==this._value):[...this.value,this._value]}},hc=Object.defineProperty,gc=(t,e,r)=>e in t?hc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mi=(t,e,r)=>(gc(t,typeof e!="symbol"?e+"":e,r),r),rt=class extends oe{constructor({mask:e,...r}){super(r),mi(this,"valueWithCursor",""),mi(this,"_mask","\u2022"),this._mask=e??"\u2022",this.on("finalize",()=>{this.valueWithCursor=this.masked}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.masked}${he.default.inverse(he.default.hidden("_"))}`;else{let n=this.masked.slice(0,this.cursor),s=this.masked.slice(this.cursor);this.valueWithCursor=`${n}${he.default.inverse(s[0])}${s.slice(1)}`}})}get cursor(){return this._cursor}get masked(){return this.value.replaceAll(/./g,this._mask)}},Dc=Object.defineProperty,Cc=(t,e,r)=>e in t?Dc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fi=(t,e,r)=>(Cc(t,typeof e!="symbol"?e+"":e,r),r),xi=class extends oe{constructor(t){super(t,!1),fi(this,"options"),fi(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:e})=>e===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",e=>{switch(e){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}},yc=Object.defineProperty,vc=(t,e,r)=>e in t?yc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,hi=(t,e,r)=>(vc(t,typeof e!="symbol"?e+"":e,r),r),nt=class extends oe{constructor(e){super(e,!1),hi(this,"options"),hi(this,"cursor",0),this.options=e.options;let r=this.options.map(({value:[n]})=>n?.toLowerCase());this.cursor=Math.max(r.indexOf(e.initialValue),0),this.on("key",n=>{if(!r.includes(n))return;let s=this.options.find(({value:[o]})=>o?.toLowerCase()===n);s&&(this.value=s.value,this.state="submit",this.emit("submit"))})}},bc=Object.defineProperty,wc=(t,e,r)=>e in t?bc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fc=(t,e,r)=>(wc(t,typeof e!="symbol"?e+"":e,r),r),it=class extends oe{constructor(e){super(e),Fc(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=e.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${he.default.inverse(he.default.hidden("_"))}`;else{let r=this.value.slice(0,this.cursor),n=this.value.slice(this.cursor);this.valueWithCursor=`${r}${he.default.inverse(n[0])}${n.slice(1)}`}})}get cursor(){return this._cursor}},Ec=globalThis.process.platform.startsWith("win")});var at={};S(at,{cancel:()=>Ce,confirm:()=>Re,group:()=>Gc,groupMultiselect:()=>Mc,intro:()=>Lc,isCancel:()=>Q,log:()=>ge,multiselect:()=>Nc,note:()=>$e,outro:()=>xr,password:()=>Ic,select:()=>Er,selectKey:()=>Rc,spinner:()=>Uc,text:()=>Fr});import Z from"node:process";function xc(){return Z.platform!=="win32"?Z.env.TERM!=="linux":!!Z.env.CI||!!Z.env.WT_SESSION||!!Z.env.TERMINUS_SUBLIME||Z.env.ConEmuTask==="{cmd::Cmder}"||Z.env.TERM_PROGRAM==="Terminus-Sublime"||Z.env.TERM_PROGRAM==="vscode"||Z.env.TERM==="xterm-256color"||Z.env.TERM==="alacritty"||Z.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function Vc(){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(t,"g")}var u,Se,yr,_,Sc,ki,Ai,ot,$c,h,z,vr,br,wr,Ie,Pi,kc,$i,Ac,Pc,Tc,_c,jc,Bc,Oc,De,Fr,Ic,Re,Er,Rc,Nc,Mc,Cr,$e,Ce,Lc,xr,ge,Uc,Gc,ut=D(()=>{Dr();Dr();u=M(Y(),1),Se=M(pr(),1);yr=xc(),_=(t,e)=>yr?t:e,Sc=_("\u25C6","*"),ki=_("\u25A0","x"),Ai=_("\u25B2","x"),ot=_("\u25C7","o"),$c=_("\u250C","T"),h=_("\u2502","|"),z=_("\u2514","\u2014"),vr=_("\u25CF",">"),br=_("\u25CB"," "),wr=_("\u25FB","[\u2022]"),Ie=_("\u25FC","[+]"),Pi=_("\u25FB","[ ]"),kc=_("\u25AA","\u2022"),$i=_("\u2500","-"),Ac=_("\u256E","+"),Pc=_("\u251C","+"),Tc=_("\u256F","+"),_c=_("\u25CF","\u2022"),jc=_("\u25C6","*"),Bc=_("\u25B2","!"),Oc=_("\u25A0","x"),De=t=>{switch(t){case"initial":case"active":return u.default.cyan(Sc);case"cancel":return u.default.red(ki);case"error":return u.default.yellow(Ai);case"submit":return u.default.green(ot)}},Fr=t=>new it({validate:t.validate,placeholder:t.placeholder,defaultValue:t.defaultValue,initialValue:t.initialValue,render(){let e=`${u.default.gray(h)}
43
43
  ${De(this.state)} ${t.message}
44
44
  `,r=t.placeholder?u.default.inverse(t.placeholder[0])+u.default.dim(t.placeholder.slice(1)):u.default.inverse(u.default.hidden("_")),n=this.value?this.valueWithCursor:r;switch(this.state){case"error":return`${e.trim()}
45
45
  ${u.default.yellow(h)} ${n}
@@ -96,7 +96,7 @@ ${n}
96
96
  `}default:return`${r}${u.default.cyan(h)} ${this.options.map((n,s,o)=>{let i=this.value.includes(n.value)||n.group===!0&&this.isGroupSelected(`${n.value}`),a=s===this.cursor;return!a&&typeof n.group=="string"&&this.options[this.cursor].value===n.group?e(n,i?"group-active-selected":"group-active",o):a&&i?e(n,"active-selected",o):i?e(n,"selected",o):e(n,a?"active":"inactive",o)}).join(`
97
97
  ${u.default.cyan(h)} `)}
98
98
  ${u.default.cyan(z)}
99
- `}}}).prompt()},Cr=t=>t.replace(Gc(),""),$e=(t="",e="")=>{let r=`
99
+ `}}}).prompt()},Cr=t=>t.replace(Vc(),""),$e=(t="",e="")=>{let r=`
100
100
  ${t}
101
101
  `.split(`
102
102
  `),n=Cr(e).length,s=Math.max(r.reduce((i,a)=>(a=Cr(a),a.length>i?a.length:i),0),n)+2,o=r.map(i=>`${u.default.gray(h)} ${u.default.dim(i)}${" ".repeat(s-Cr(i).length)}${u.default.gray(h)}`).join(`
@@ -115,20 +115,20 @@ ${u.default.gray(z)} ${t}
115
115
  `)}
116
116
  `)},info:t=>{ge.message(t,{symbol:u.default.blue(_c)})},success:t=>{ge.message(t,{symbol:u.default.green(jc)})},step:t=>{ge.message(t,{symbol:u.default.green(ot)})},warn:t=>{ge.message(t,{symbol:u.default.yellow(Bc)})},warning:t=>{ge.warn(t)},error:t=>{ge.message(t,{symbol:u.default.red(Oc)})}},Uc=()=>{let t=yr?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],e=yr?80:120,r,n,s=!1,o="",i=(p="")=>{s=!0,r=Si(),o=p.replace(/\.+$/,""),process.stdout.write(`${u.default.gray(h)}
117
117
  `);let d=0,m=0;n=setInterval(()=>{let y=u.default.magenta(t[d]),C=".".repeat(Math.floor(m)).slice(0,3);process.stdout.write(Se.cursor.move(-999,0)),process.stdout.write(Se.erase.down(1)),process.stdout.write(`${y} ${o}${C}`),d=d+1<t.length?d+1:0,m=m<t.length?m+.125:0},e)},a=(p="",d=0)=>{o=p??o,s=!1,clearInterval(n);let m=d===0?u.default.green(ot):d===1?u.default.red(ki):u.default.red(Ai);process.stdout.write(Se.cursor.move(-999,0)),process.stdout.write(Se.erase.down(1)),process.stdout.write(`${m} ${o}
118
- `),r()},c=(p="")=>{o=p??o},l=p=>{let d=p>1?"Something went wrong":"Canceled";s&&a(d,p)};return process.on("uncaughtExceptionMonitor",()=>l(2)),process.on("unhandledRejection",()=>l(2)),process.on("SIGINT",()=>l(1)),process.on("SIGTERM",()=>l(1)),process.on("exit",l),{start:i,stop:a,message:c}};Vc=async(t,e)=>{let r={},n=Object.keys(t);for(let s of n){let o=t[s],i=await o({results:r})?.catch(a=>{throw a});if(typeof e?.onCancel=="function"&&Q(i)){r[s]="canceled",e.onCancel({results:r});continue}r[s]=i}return r}});var Ti={};S(Ti,{BANNER:()=>qc});import{createRequire as zc}from"node:module";var ye,Wc,Hc,qc,_i=D(()=>{"use strict";ye=M(Y(),1),Wc=zc(import.meta.url),Hc=Wc("../../package.json"),qc=`
118
+ `),r()},c=(p="")=>{o=p??o},l=p=>{let d=p>1?"Something went wrong":"Canceled";s&&a(d,p)};return process.on("uncaughtExceptionMonitor",()=>l(2)),process.on("unhandledRejection",()=>l(2)),process.on("SIGINT",()=>l(1)),process.on("SIGTERM",()=>l(1)),process.on("exit",l),{start:i,stop:a,message:c}};Gc=async(t,e)=>{let r={},n=Object.keys(t);for(let s of n){let o=t[s],i=await o({results:r})?.catch(a=>{throw a});if(typeof e?.onCancel=="function"&&Q(i)){r[s]="canceled",e.onCancel({results:r});continue}r[s]=i}return r}});var Ti={};S(Ti,{BANNER:()=>qc});import{createRequire as zc}from"node:module";var ye,Wc,Hc,qc,_i=D(()=>{"use strict";ye=M(Y(),1),Wc=zc(import.meta.url),Hc=Wc("../../package.json"),qc=`
119
119
  ${ye.default.cyan(" _ _ _____ __ __ ___ ")}
120
120
  ${ye.default.cyan(" | \\ | || ____|\\ \\/ / / _ \\ ")}
121
121
  ${ye.default.cyan(" | \\| || _| \\ / | | | |")}
122
122
  ${ye.default.cyan(" | |\\ || |___ / \\ | |_| |")}
123
123
  ${ye.default.cyan(" |_| \\_||_____|/_/\\_\\ \\___/ ")}
124
124
  ${ye.default.dim(" v"+Hc.version)}
125
- `});var ji={};S(ji,{estimateBundleSize:()=>Jc,formatSize:()=>Kc});var B,Jc,Kc,Bi=D(()=>{"use strict";B={react:2.5,"react-dom":42,remix:50,"class-variance-authority":1,clsx:.4,"tailwind-merge":1,"@chakra-ui/react":100,zustand:1.1,"@reduxjs/toolkit":12,"react-redux":4.5,jotai:2.5,"react-router-dom":16,"@tanstack/react-router":13,"@tanstack/react-query":13,axios:12,"react-hook-form":9,zod:13,"@hookform/resolvers":2,"lucide-react":5},Jc=t=>{let e=0;return e+=B.react||0,e+=B["react-dom"]||0,t.ui==="shadcn"&&(e+=(B["class-variance-authority"]||0)+(B.clsx||0)+(B["tailwind-merge"]||0)),t.state==="zustand"?e+=B.zustand||0:t.state==="redux"?e+=(B["@reduxjs/toolkit"]||0)+(B["react-redux"]||0):t.state==="jotai"&&(e+=B.jotai||0),t.routing==="react-router"?e+=B["react-router-dom"]||0:t.routing==="tanstack-router"&&(e+=B["@tanstack/react-router"]||0),t.dataFetching==="tanstack-query"?e+=B["@tanstack/react-query"]||0:t.dataFetching==="axios"&&(e+=B.axios||0),t.forms?.includes("rhf")&&(e+=B["react-hook-form"]||0,t.forms.includes("zod")&&(e+=(B.zod||0)+(B["@hookform/resolvers"]||0))),t.icons==="lucide"&&(e+=B["lucide-react"]||0),Number(e.toFixed(1))},Kc=t=>t>=1024?`${(t/1024).toFixed(2)} MB`:`${t} kB`});var Oi={};S(Oi,{PRESETS:()=>Xc});var Xc,Ii=D(()=>{"use strict";Xc={minimal:{framework:"react",variant:"ts",language:"typescript",styling:"css-modules",ui:"none",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"none",structure:"simple",optionalFeatures:[]},saas:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"rhf-zod",state:"zustand",routing:"react-router",dataFetching:"tanstack-query",icons:"lucide",structure:"feature-based"},dashboard:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"rhf-zod",state:"zustand",routing:"react-router",dataFetching:"tanstack-query",icons:"lucide",structure:"feature-based",aiInstructions:["universal"]},landing:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"lucide",structure:"simple",optionalFeatures:["animation","aiInstructions"],animation:"framer-motion",aiInstructions:["universal"]}}});var Sr,$r,kr,Ar,Pr,Tr,_r,jr,Br,ct,Or=D(()=>{"use strict";Sr={name:"variant",message:"Select a variant:",type:"list",options:[{value:"ts",name:"TypeScript",comment:"Type-safe JavaScript",hover_note:"Standard TypeScript setup with full type checking"},{value:"ts-compiler",name:"TypeScript + React Compiler",comment:"Auto-optimization with React 19",hover_note:"Uses React Compiler for automatic memoization - best for React 19+"},{value:"ts-swc",name:"TypeScript + SWC",comment:"Faster builds with SWC",hover_note:"Rust-based compiler for 20x faster builds than Babel"},{value:"js",name:"JavaScript",comment:"Standard JavaScript",hover_note:"No type system, simpler setup"},{value:"js-compiler",name:"JavaScript + React Compiler",comment:"Auto-optimization without types",hover_note:"React Compiler benefits without TypeScript overhead"},{value:"js-swc",name:"JavaScript + SWC",comment:"Faster builds without types",hover_note:"Fast SWC compilation for JavaScript projects"}]},$r={name:"styling",message:"Select a styling solution:",type:"list",options:[{value:"tailwind",name:"Tailwind CSS",comment:"Utility-first CSS framework",hover_note:"Rapidly build modern websites without leaving your HTML - includes dark mode"},{value:"css-modules",name:"CSS Modules",comment:"Scoped CSS by default",hover_note:"CSS files where class names are scoped locally to avoid conflicts"},{value:"sass",name:"Sass/SCSS",comment:"CSS with superpowers",hover_note:"Variables, nesting, mixins, and more - industry standard preprocessor"},{value:"styled-components",name:"Styled Components",comment:"CSS-in-JS solution",hover_note:"Write actual CSS code inside your React components"}]},kr={name:"ui",message:"Select a UI library:",type:"list",options:[{value:"shadcn",name:"shadcn/ui",comment:"Beautifully designed components (~0KB base)",hover_note:"Copy-paste components built with Radix and Tailwind - only import what you use"},{value:"radix",name:"Radix UI",comment:"Unstyled, accessible (~5KB per component)",hover_note:"Low-level primitives for building custom design systems"},{value:"heroui",name:"HeroUI",comment:"Beautiful, fast UI (~30KB gzipped)",hover_note:"Modern components built on Tailwind CSS and Radix primitives"},{value:"mui",name:"Material UI (MUI)",comment:"Google Material Design",hover_note:"Comprehensive component library following Material Design guidelines"},{value:"antd",name:"Ant Design",comment:"Enterprise-class UI (~120KB gzipped)",hover_note:"Feature-rich for enterprise apps with design system"},{value:"chakra",name:"Chakra UI",comment:"Simple, modular (~80KB gzipped)",hover_note:"Good developer experience with accessible components"},{value:"none",name:"None",comment:"No UI library (0KB)",hover_note:"Build your own components from scratch"}]},Ar={name:"forms",message:"Select a forms solution:",type:"list",options:[{value:"rhf-zod",name:"React Hook Form + Zod",comment:"Best performance + type safety",hover_note:"Minimal re-renders with TypeScript-first validation schema"},{value:"rhf-yup",name:"React Hook Form + Yup",comment:"Performant with Yup validation",hover_note:"Well-established validation library with good ecosystem"},{value:"formik-zod",name:"Formik + Zod",comment:"Popular form library + Zod",hover_note:"Formik's simplicity with Zod's type inference"},{value:"formik-yup",name:"Formik + Yup",comment:"Traditional Formik setup",hover_note:"Classic combination for form handling"},{value:"tanstack-form",name:"TanStack Form",comment:"Type-safe forms by TanStack",hover_note:"Framework-agnostic with first-class TypeScript support"},{value:"none",name:"None",comment:"No forms library",hover_note:"Use native form handling or add later"}]},Pr={name:"state",message:"Select a state management solution:",type:"list",options:[{value:"zustand",name:"Zustand",comment:"Small, fast, scalable",hover_note:"Minimal API with excellent TypeScript support - no boilerplate"},{value:"redux",name:"Redux Toolkit",comment:"Industry standard",hover_note:"Best for complex state with devtools, middleware, and persistence"},{value:"jotai",name:"Jotai",comment:"Primitive atoms approach",hover_note:"Atomic state management - great for derived state"},{value:"none",name:"None",comment:"React built-in state",hover_note:"Use useState, useReducer, and Context API"}]},Tr={name:"routing",message:"Select a routing solution:",type:"list",options:[{value:"react-router",name:"React Router",comment:"Most popular routing",hover_note:"Declarative routing with data loading and actions support"},{value:"tanstack-router",name:"TanStack Router",comment:"Fully type-safe routing",hover_note:"Type-safe from route definition to component - great DX"},{value:"none",name:"None",comment:"No routing",hover_note:"Single page app without navigation"}]},_r={name:"dataFetching",message:"Select a data fetching solution:",type:"list",options:[{value:"tanstack-query",name:"TanStack Query",comment:"Powerful async state",hover_note:"Caching, background updates, optimistic UI, infinite scroll built-in"},{value:"axios",name:"Axios",comment:"Promise-based HTTP client",hover_note:"Simple API with interceptors, transforms, and automatic JSON parsing"},{value:"fetch",name:"Native Fetch",comment:"Built-in browser API",hover_note:"No dependencies - use browser's native fetch API"},{value:"none",name:"None",comment:"No data fetching setup",hover_note:"Add data fetching solution later"}]},jr={name:"icons",message:"Select an icon library:",type:"list",options:[{value:"lucide",name:"Lucide",comment:"Beautiful & consistent",hover_note:"Community-driven fork of Feather Icons - tree-shakeable"},{value:"react-icons",name:"React Icons",comment:"Largest collection (Fa, Md, Ai...)",hover_note:"Includes Font Awesome, Material, Ant Design, Bootstrap icons and more"},{value:"iconify",name:"Iconify",comment:"Universal icon framework",hover_note:"Access to 100,000+ icons from 100+ icon sets in one library"},{value:"heroicons",name:"Heroicons",comment:"By Tailwind Labs",hover_note:"Hand-crafted SVG icons designed to pair with Tailwind CSS"},{value:"fontawesome",name:"Font Awesome",comment:"Extensive icon library",hover_note:"Thousands of icons in multiple styles (solid, regular, brands)"},{value:"none",name:"None",comment:"No icon library",hover_note:"Use your own SVGs or add icons later"}]},Br={name:"structure",message:"Select a project structure:",type:"list",options:[{value:"feature-based",name:"Feature-based",comment:"Organize by features",hover_note:"Group files by feature/domain - scales well for large apps",folder_info:["src/features/*","src/shared/*","src/app/*"]},{value:"fsd",name:"FSD (Feature-Sliced Design)",comment:"Architectural methodology",hover_note:"Layers \u2192 Slices \u2192 Segments - highly scalable architecture",folder_info:["src/app","src/pages","src/widgets","src/features","src/entities","src/shared"]},{value:"atomic",name:"Atomic Design",comment:"Atoms \u2192 Molecules \u2192 Organisms",hover_note:"Design system methodology by Brad Frost - great for component libraries",folder_info:["src/components/atoms","src/components/molecules","src/components/organisms"]},{value:"clean",name:"Clean Architecture",comment:"Domain-driven layers",hover_note:"Separation of concerns with domain, application, and infrastructure layers",folder_info:["src/domain","src/application","src/infrastructure","src/presentation"]},{value:"mvc",name:"MVC Pattern",comment:"Model-View-Controller",hover_note:"Classic pattern separating data, UI, and business logic",folder_info:["src/models","src/views","src/controllers"]},{value:"simple",name:"Simple",comment:"Minimal structure",hover_note:"Basic folders for small projects - easy to reorganize later",folder_info:["src/components","src/hooks","src/utils","src/assets"]}]},ct=[Sr,$r,kr,Ar,Pr,Tr,_r,jr,Br]});var lt,Ir,Yc,Rr,Zc,Ri,Nr=D(()=>{"use strict";lt={name:"optionalFeatures",message:"Select optional features (Space to select, Enter to continue):",type:"checkbox",options:[{value:"testing",name:"Testing",comment:"Unit & integration tests",hover_note:"Vitest or Jest configuration with React Testing Library"},{value:"linting",name:"Linting & Formatting",comment:"Code quality tools",hover_note:"ESLint + Prettier or Biome for consistent code style"},{value:"animation",name:"Animation Library",comment:"Motion & transitions",hover_note:"Framer Motion, GSAP, or React Spring for smooth animations"},{value:"ai-instructions",name:"AI Instructions",comment:"AI IDE/CLI guidance files",hover_note:"Generate instruction files for AI tools (Cursor, Windsurf, Claude, etc.)"}]},Ir={name:"testing",message:"Select testing framework:",type:"list",options:[{value:"vitest",name:"Vitest",comment:"Vite-native testing",hover_note:"Blazing fast with Vite - compatible with Jest API"},{value:"jest",name:"Jest",comment:"Industry standard",hover_note:"Mature ecosystem with extensive documentation"}]},Yc={name:"linting",message:"Select linting setup:",type:"list",options:[{value:"eslint-prettier",name:"ESLint + Prettier",comment:"Standard combo",hover_note:"ESLint for linting, Prettier for formatting - widely adopted"},{value:"biome",name:"Biome",comment:"All-in-one tool",hover_note:"Fast Rust-based linter and formatter in one - simpler config"}]},Rr={name:"animation",message:"Select animation library:",type:"list",options:[{value:"framer-motion",name:"Framer Motion",comment:"Production-ready",hover_note:"Declarative animations with gestures, layout animations, and SVG support"},{value:"gsap",name:"GSAP",comment:"Professional-grade",hover_note:"Industry-standard animation library with timeline control and ScrollTrigger"},{value:"react-spring",name:"React Spring",comment:"Physics-based",hover_note:"Spring-physics animations for natural motion feel"}]},Zc={name:"aiInstructions",message:"Select AI tools to generate instructions for:",type:"checkbox",options:[{value:"cursor",name:"Cursor",comment:"AI-first code editor",hover_note:"Generate .cursorrules for Cursor IDE"},{value:"windsurf",name:"Windsurf",comment:"AI-powered IDE",hover_note:"Generate .windsurfrules for Windsurf"},{value:"cline",name:"Cline",comment:"VS Code AI extension",hover_note:"Generate .clinerules for Cline (formerly Claude Dev)"},{value:"roo-cline",name:"Roo Cline",comment:"Enhanced Cline fork",hover_note:"Generate .roo-clinerules for Roo Cline"},{value:"aider",name:"Aider",comment:"AI pair programming in terminal",hover_note:"Generate .aider.conf.yml for Aider CLI"},{value:"claude",name:"Claude",comment:"Anthropic Claude AI",hover_note:"Generate CLAUDE_INSTRUCTIONS.md for Claude CLI/API"},{value:"gemini",name:"Google Gemini",comment:"Google Gemini AI",hover_note:"Generate GEMINI_INSTRUCTIONS.md for Gemini"},{value:"codex",name:"OpenAI Codex",comment:"OpenAI Codex/ChatGPT",hover_note:"Generate CODEX_INSTRUCTIONS.md for Codex/ChatGPT"},{value:"universal",name:"Universal (All AI Tools)",comment:"Generic AI instructions",hover_note:"Generate AI_INSTRUCTIONS.md for any AI assistant"}]},Ri={"ai-instructions":Zc,testing:Ir,linting:Yc,animation:Rr}});var Ni,Mi,Li,Ui=D(()=>{"use strict";Ni=t=>t.options.map(e=>({name:e.name,value:e.value,short:e.name})),Mi=t=>t.name,Li=(t,e)=>t.find(r=>r.value===e)});var Qc,Gi=D(()=>{"use strict";Or();Nr();Ui();Or();Nr();Qc=[...ct,lt]});var Vi={};S(Vi,{allPrompts:()=>Qc,animationPrompt:()=>Rr,corePrompts:()=>ct,dataFetchingPrompt:()=>_r,formsPrompt:()=>Ar,getChoiceName:()=>Mi,getInquirerChoices:()=>Ni,getOptionByValue:()=>Li,iconsPrompt:()=>jr,optionalFeaturesPrompt:()=>lt,optionalSubPrompts:()=>Ri,routingPrompt:()=>Tr,statePrompt:()=>Pr,structurePrompt:()=>Br,stylingPrompt:()=>$r,testingPrompt:()=>Ir,uiPrompt:()=>kr,variantPrompt:()=>Sr});var zi=D(()=>{"use strict";Gi()});var Ki={};S(Ki,{addDependency:()=>Ne,addScript:()=>Ji,copy:()=>qi,createProjectDir:()=>pt,ensureDir:()=>x,getPackageJson:()=>ee,pathExists:()=>ue,readJson:()=>Lr,remove:()=>Hi,removeFile:()=>Wi,savePackageJson:()=>dt,writeFile:()=>b,writeJson:()=>ce});import ae from"node:fs/promises";import Mr from"node:path";var ue,x,Lr,ce,b,Wi,Hi,qi,pt,ee,dt,Ne,Ji,de=D(()=>{"use strict";ue=async t=>{try{return await ae.access(t),!0}catch{return!1}},x=async t=>{await ae.mkdir(t,{recursive:!0})},Lr=async t=>{let e=await ae.readFile(t,"utf-8");return JSON.parse(e)},ce=async(t,e,r=2)=>{await ae.writeFile(t,JSON.stringify(e,null,r)+`
126
- `)},b=async(t,e)=>{if(await ue(t))try{if(await ae.readFile(t,"utf-8")===e)return}catch{}await ae.writeFile(t,e)},Wi=async t=>{await ae.unlink(t)},Hi=async t=>{await ae.rm(t,{recursive:!0,force:!0})},qi=async(t,e)=>{await ae.cp(t,e,{recursive:!0})},pt=async t=>{await x(t.projectPath),await x(Mr.join(t.projectPath,"src"))},ee=async t=>{let e=Mr.join(t.projectPath,"package.json");return await ue(e)?await Lr(e):{name:t.selections?.projectName||"my-nexo-app",version:"0.1.0",private:!0,type:"module",dependencies:{},devDependencies:{},scripts:{}}},dt=async(t,e)=>{await ce(Mr.join(t.projectPath,"package.json"),e)},Ne=(t,e,r,n=!1)=>{n?(t.devDependencies=t.devDependencies||{},t.devDependencies[e]=r):(t.dependencies=t.dependencies||{},t.dependencies[e]=r)},Ji=(t,e,r)=>{t.scripts=t.scripts||{},t.scripts[e]=r}});var rs={};S(rs,{cache:()=>me,clearCache:()=>Qi,getCached:()=>ke,getCachedSync:()=>Yi,invalidateCache:()=>Zi,memoize:()=>es,memoizeSync:()=>ts});import Ur from"node:fs/promises";import el from"node:os";import Xi from"node:path";var Gr,me,ke,Yi,Zi,Qi,es,ts,Me=D(()=>{"use strict";de();Gr=class{cache=new Map;defaultTTL=24*60*60*1e3;cacheDir=Xi.join(el.homedir(),".nexo");cacheFile=Xi.join(this.cacheDir,"cache.json");version="1.0.0";async load(){try{if(!await Ur.access(this.cacheFile).then(()=>!0).catch(()=>!1))return;let r=await Ur.readFile(this.cacheFile,"utf-8"),n=JSON.parse(r);if(n.version!==this.version)return;this.cache=new Map(Object.entries(n.entries))}catch{}}async save(){try{await x(this.cacheDir);let e=Date.now();for(let[n,s]of this.cache.entries())e-s.timestamp>this.defaultTTL&&this.cache.delete(n);let r={version:this.version,entries:Object.fromEntries(this.cache)};await Ur.writeFile(this.cacheFile,JSON.stringify(r,null,2))}catch{}}async get(e,r,n){let s=this.cache.get(e),o=Date.now();if(s&&o-s.timestamp<(n??this.defaultTTL))return s.value;let i=await r();return this.cache.set(e,{value:i,timestamp:o}),i}getSync(e,r,n){let s=this.cache.get(e),o=Date.now();if(s&&o-s.timestamp<(n??this.defaultTTL))return s.value;let i=r();return this.cache.set(e,{value:i,timestamp:o}),i}has(e,r){let n=this.cache.get(e);return n?Date.now()-n.timestamp<(r??this.defaultTTL):!1}set(e,r){this.cache.set(e,{value:r,timestamp:Date.now()})}invalidate(e){this.cache.delete(e)}invalidatePattern(e){let r=new RegExp(e);for(let n of this.cache.keys())r.test(n)&&this.cache.delete(n)}clear(){this.cache.clear()}stats(){return{size:this.cache.size,keys:[...this.cache.keys()]}}},me=new Gr,ke=(t,e,r)=>me.get(t,e,r),Yi=(t,e,r)=>me.getSync(t,e,r),Zi=t=>{me.invalidate(t)},Qi=()=>{me.clear()},es=(t,e)=>{let r=e??((...n)=>JSON.stringify(n));return async(...n)=>{let s=`memoize:${t.name}:${r(...n)}`;return me.get(s,()=>t(...n))}},ts=(t,e)=>{let r=e??((...n)=>JSON.stringify(n));return(...n)=>{let s=`memoize:${t.name}:${r(...n)}`;return me.getSync(s,()=>t(...n))}}});import is from"node:fs/promises";import ns from"node:path";var tl,rl,ss=D(()=>{"use strict";tl=async t=>{try{return(await is.readdir(t)).filter(n=>n!==".git"&&n!==".DS_Store"&&n!=="Thumbs.db").length===0}catch{return!0}},rl=async t=>{try{let e=ns.join(t,"package.json"),r=await is.readFile(e,"utf-8"),n=JSON.parse(r),s={...n.dependencies,...n.devDependencies},o={projectName:n.name||ns.basename(t)};return s.react&&(o.framework="react"),s.typescript?o.variant="ts":o.variant="js",s.tailwindcss?o.styling="tailwind":s.sass&&(o.styling="sass"),o}catch{return null}}});var mt,os,as=D(()=>{"use strict";mt=t=>{let e=[],r=t.variant.includes("ts"),n=r?"tsx":"jsx",s=r?"ts":"js";e.push({name:"package.json"}),e.push({name:"vite.config."+s}),e.push({name:"index.html"}),r&&e.push({name:"tsconfig.json"}),t.styling==="tailwind"&&e.push({name:"tailwind.config.js"}),e.push({name:"README.md"}),t.ui==="shadcn"&&e.push({name:"components.json"});let o;return o=[{name:`main.${n}`},{name:`App.${n}`},{name:"index.css"}],t.state==="redux"&&o.push({name:"store/",children:[{name:"store."+s},{name:"hooks."+s},{name:"counterSlice."+s}]}),t.ui==="shadcn"&&o.push({name:"lib/",children:[{name:"utils."+s}]}),t.structure==="fsd"?o.push({name:"app/",children:[]},{name:"pages/",children:[]},{name:"widgets/",children:[]},{name:"features/",children:[]},{name:"entities/",children:[]},{name:"shared/",children:[]}):t.structure==="clean"?o.push({name:"domain/",children:[]},{name:"application/",children:[]},{name:"infrastructure/",children:[]},{name:"presentation/",children:[]}):o.push({name:"components/",children:[]},{name:"hooks/",children:[]},{name:"utils/",children:[]},{name:"assets/",children:[]}),e.push({name:"src/",children:o}),os(e)},os=(t,e="")=>{let r="";return t.forEach((n,s)=>{let o=s===t.length-1,i=o?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",a=o?" ":"\u2502 ";r+=`${e}${i}${n.name}
127
- `,n.children&&(r+=os(n.children,e+a))}),r}});import Le from"node:path";var Vr,nl,us,cs,il,ls,sl,ol,al,ul,cl,ll,pl,dl,ml,ps=D(()=>{"use strict";de();Vr=async(t,e)=>{let r=await ee(t);if(e.dependencies)for(let[n,s]of Object.entries(e.dependencies))Ne(r,n,s,!1);if(e.devDependencies)for(let[n,s]of Object.entries(e.devDependencies))Ne(r,n,s,!0);return await dt(t,r),r},nl=async(t,e,r)=>e?Vr(t,r):null,us=async(t,e)=>{await Promise.all(e.map(async r=>{let n=Le.join(t.projectPath,r.path);await x(Le.dirname(n)),await b(n,r.content)}))},cs=async(t,e)=>{let r=Object.entries(e).map(([n,s])=>({path:n,content:s}));await us(t,r)},il=async(t,e,r)=>{let n=Le.join(t.projectPath,e),{pathExists:s}=await Promise.resolve().then(()=>(de(),Ki));return await s(n)?!1:(await x(Le.dirname(n)),await b(n,r),!0)},ls=async(t,e)=>{await Promise.all(e.map(r=>x(Le.join(t.projectPath,r))))},sl=(t,e)=>{let r=t;for(let[n,s]of Object.entries(e))r=r.replace(new RegExp(`\\{\\{${n}\\}\\}`,"g"),s);return r},ol=t=>t.map(({from:e,imports:r,default:n})=>{let s=[];return n&&s.push(n),Array.isArray(r)&&r.length>0?s.push(`{ ${r.join(", ")} }`):typeof r=="string"&&r&&s.push(`{ ${r} }`),`import ${s.join(", ")} from '${e}'`}).join(`
128
- `),al=(t,e)=>t.selections[e]==="none",ul=t=>{let e=t.selections.variant.startsWith("ts");return{ts:e,ext:e?"tsx":"jsx",configExt:e?"ts":"js"}},cl=t=>async e=>{let r=e.selections[t.selectionKey];if(r==="none")return;let n=t.configs[r];if(n){if((n.dependencies||n.devDependencies)&&await Vr(e,{dependencies:n.dependencies,devDependencies:n.devDependencies}),n.directories&&await ls(e,n.directories),n.files){let s=n.files(e);await cs(e,s)}n.setup&&await n.setup(e)}},ll=async(t,e)=>t?e():null,pl=(t,e,r)=>t?e:r,dl=(...t)=>t.filter(e=>e!==!1&&e!==null&&e!==void 0),ml=(...t)=>{let e={};for(let r of t)if(r&&Array.isArray(r)){let[n,s]=r;s!=null&&(e[n]=s)}return e}});var ds={};S(ds,{PackageManager:()=>ft});import{exec as fl}from"node:child_process";import hl from"node:path";import{promisify as gl}from"node:util";var If,ft,zr=D(()=>{"use strict";Me();de();If=gl(fl),ft=class{projectPath;pkg=null;dependencies=new Map;devDependencies=new Map;scripts=new Map;constructor(e){this.projectPath=e}async load(e){this.pkg=await ee(e),this.pkg.dependencies&&Object.entries(this.pkg.dependencies).forEach(([r,n])=>this.dependencies.set(r,n)),this.pkg.devDependencies&&Object.entries(this.pkg.devDependencies).forEach(([r,n])=>this.devDependencies.set(r,n)),this.pkg.scripts&&Object.entries(this.pkg.scripts).forEach(([r,n])=>this.scripts.set(r,n))}add(e,r,n=!1){n?this.devDependencies.set(e,r):this.dependencies.set(e,r)}addScript(e,r){this.scripts.set(e,r)}set(e,r){this.pkg&&(this.pkg[e]=r)}async resolveLatestVersions(){if(process.env.NODE_ENV==="test")return;let e=[...this.dependencies.keys()],r=[...this.devDependencies.keys()],n=[...new Set([...e,...r])];if(n.length!==0)try{(await Promise.all(n.map(async o=>{try{let i=await ke(`npm:version:${o}`,async()=>{let a=new AbortController,c=setTimeout(()=>a.abort(),5e3);try{let l=await fetch(`https://registry.npmjs.org/${o}/latest`,{signal:a.signal,headers:{Accept:"application/json"}});if(!l.ok)throw new Error("Registry error");return(await l.json()).version}finally{clearTimeout(c)}},432e5);return{name:o,version:i}}catch{return null}}))).forEach(o=>{o&&(this.dependencies.has(o.name)&&this.dependencies.set(o.name,`^${o.version}`),this.devDependencies.has(o.name)&&this.devDependencies.set(o.name,`^${o.version}`))})}catch{}}async save(){if(!this.pkg)throw new Error("Package.json not loaded. Call load() first.");let e=r=>Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])));this.pkg.dependencies=e(this.dependencies),this.pkg.devDependencies=e(this.devDependencies),this.pkg.scripts=e(this.scripts),await ce(hl.join(this.projectPath,"package.json"),this.pkg)}}});var Dl,Wr,ms=D(()=>{"use strict";Me();Dl=["react","react-dom","vite","typescript","@vitejs/plugin-react","tailwindcss","postcss","autoprefixer","sass","styled-components","shadcn","lucide-react","@heroui/react","@mui/material","antd","@chakra-ui/react","react-hook-form","zod","yup","formik","@tanstack/react-form","zustand","redux","@reduxjs/toolkit","jotai","react-router-dom","@tanstack/react-router","@tanstack/react-query","axios","react-icons","@iconify/react","heroicons","@fortawesome/fontawesome-svg-core","clsx","tailwind-merge","framer-motion"],Wr=()=>{Dl.forEach(async t=>{try{await ke(`npm:version:${t}`,async()=>{let e=new AbortController,r=setTimeout(()=>e.abort(),3e3);try{let n=await fetch(`https://registry.npmjs.org/${t}/latest`,{signal:e.signal,headers:{Accept:"application/json"}});return n.ok?(await n.json()).version:""}catch{return""}finally{clearTimeout(r)}},12*60*60*1e3)}catch{}})}});var N,Cl,yl,vl,bl,fs=D(()=>{"use strict";N=M(Y(),1),Cl=t=>{let{total:e,width:r=30,showPercentage:n=!0,showStepCount:s=!0,completeChar:o="\u2588",incompleteChar:i="\u2591",filledColor:a=N.default.cyan,emptyColor:c=N.default.dim}=t,l=0,p="",d=()=>{let m=Math.round(l/e*100),y=Math.round(l/e*r),C=r-y,$=`\r${a(o.repeat(y))+c(i.repeat(C))}`;n&&($+=` ${m.toString().padStart(3)}%`),s&&($+=` (${l}/${e})`),p&&($+=` ${N.default.dim(p)}`),$+="\x1B[K",process.stdout.write($)};return{increment:m=>{l=Math.min(l+1,e),p=m||"",d()},update:(m,y)=>{l=Math.min(Math.max(0,m),e),p=y||"",d()},complete:m=>{l=e,p="",d(),console.log(),m&&console.log(N.default.green(`\u2713 ${m}`))},fail:m=>{p="",console.log(),m&&console.log(N.default.red(`\u2717 ${m}`))},getPercentage:()=>Math.round(l/e*100)}},yl=t=>{let{total:e,showStepNumbers:r=!0}=t,n=0,s="",o=()=>r?`[${n}/${e}]`:"";return{start:i=>{n++,s=i,process.stdout.write(`${N.default.cyan("\u25CF")} ${o()} ${i}...`)},succeed:i=>{process.stdout.write(`\r${N.default.green("\u2713")} ${o()} ${i||s}\x1B[K
125
+ `});var ji={};S(ji,{estimateBundleSize:()=>Jc,formatSize:()=>Kc});var B,Jc,Kc,Bi=D(()=>{"use strict";B={react:2.5,"react-dom":42,remix:50,"class-variance-authority":1,clsx:.4,"tailwind-merge":1,"@chakra-ui/react":100,zustand:1.1,"@reduxjs/toolkit":12,"react-redux":4.5,jotai:2.5,"react-router-dom":16,"@tanstack/react-router":13,"@tanstack/react-query":13,axios:12,"react-hook-form":9,zod:13,"@hookform/resolvers":2,"lucide-react":5},Jc=t=>{let e=0;return e+=B.react||0,e+=B["react-dom"]||0,t.ui==="shadcn"&&(e+=(B["class-variance-authority"]||0)+(B.clsx||0)+(B["tailwind-merge"]||0)),t.state==="zustand"?e+=B.zustand||0:t.state==="redux"?e+=(B["@reduxjs/toolkit"]||0)+(B["react-redux"]||0):t.state==="jotai"&&(e+=B.jotai||0),t.routing==="react-router"?e+=B["react-router-dom"]||0:t.routing==="tanstack-router"&&(e+=B["@tanstack/react-router"]||0),t.dataFetching==="tanstack-query"?e+=B["@tanstack/react-query"]||0:t.dataFetching==="axios"&&(e+=B.axios||0),t.forms?.includes("rhf")&&(e+=B["react-hook-form"]||0,t.forms.includes("zod")&&(e+=(B.zod||0)+(B["@hookform/resolvers"]||0))),t.icons==="lucide"&&(e+=B["lucide-react"]||0),Number(e.toFixed(1))},Kc=t=>t>=1024?`${(t/1024).toFixed(2)} MB`:`${t} kB`});var Oi={};S(Oi,{PRESETS:()=>Xc});var Xc,Ii=D(()=>{"use strict";Xc={minimal:{framework:"react",variant:"ts",language:"typescript",styling:"css-modules",ui:"none",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"none",structure:"simple",optionalFeatures:[]},saas:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"rhf-zod",state:"zustand",routing:"react-router",dataFetching:"tanstack-query",icons:"lucide",structure:"feature-based"},dashboard:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"rhf-zod",state:"zustand",routing:"react-router",dataFetching:"tanstack-query",icons:"lucide",structure:"feature-based",aiInstructions:["universal"]},landing:{framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"shadcn",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"lucide",structure:"simple",optionalFeatures:["animation","aiInstructions"],animation:"framer-motion",aiInstructions:["universal"]}}});var Sr,$r,kr,Ar,Pr,Tr,_r,jr,Br,ct,Or=D(()=>{"use strict";Sr={name:"variant",message:"Select a variant:",type:"list",options:[{value:"ts",name:"TypeScript",comment:"Type-safe JavaScript",hover_note:"Standard TypeScript setup with full type checking"},{value:"ts-compiler",name:"TypeScript + React Compiler",comment:"Auto-optimization with React 19",hover_note:"Uses React Compiler for automatic memoization - best for React 19+"},{value:"ts-swc",name:"TypeScript + SWC",comment:"Faster builds with SWC",hover_note:"Rust-based compiler for 20x faster builds than Babel"},{value:"js",name:"JavaScript",comment:"Standard JavaScript",hover_note:"No type system, simpler setup"},{value:"js-compiler",name:"JavaScript + React Compiler",comment:"Auto-optimization without types",hover_note:"React Compiler benefits without TypeScript overhead"},{value:"js-swc",name:"JavaScript + SWC",comment:"Faster builds without types",hover_note:"Fast SWC compilation for JavaScript projects"}]},$r={name:"styling",message:"Select a styling solution:",type:"list",options:[{value:"tailwind",name:"Tailwind CSS",comment:"Utility-first CSS framework",hover_note:"Rapidly build modern websites without leaving your HTML - includes dark mode"},{value:"css-modules",name:"CSS Modules",comment:"Scoped CSS by default",hover_note:"CSS files where class names are scoped locally to avoid conflicts"},{value:"sass",name:"Sass/SCSS",comment:"CSS with superpowers",hover_note:"Variables, nesting, mixins, and more - industry standard preprocessor"},{value:"styled-components",name:"Styled Components",comment:"CSS-in-JS solution",hover_note:"Write actual CSS code inside your React components"}]},kr={name:"ui",message:"Select a UI library:",type:"list",options:[{value:"shadcn",name:"shadcn/ui",comment:"Beautifully designed components (~0KB base)",hover_note:"Copy-paste components built with Radix and Tailwind - only import what you use"},{value:"radix",name:"Radix UI",comment:"Unstyled, accessible (~5KB per component)",hover_note:"Low-level primitives for building custom design systems"},{value:"heroui",name:"HeroUI",comment:"Beautiful, fast UI (~30KB gzipped)",hover_note:"Modern components built on Tailwind CSS and Radix primitives"},{value:"mui",name:"Material UI (MUI)",comment:"Google Material Design",hover_note:"Comprehensive component library following Material Design guidelines"},{value:"antd",name:"Ant Design",comment:"Enterprise-class UI (~120KB gzipped)",hover_note:"Feature-rich for enterprise apps with design system"},{value:"chakra",name:"Chakra UI",comment:"Simple, modular (~80KB gzipped)",hover_note:"Good developer experience with accessible components"},{value:"none",name:"None",comment:"No UI library (0KB)",hover_note:"Build your own components from scratch"}]},Ar={name:"forms",message:"Select a forms solution:",type:"list",options:[{value:"rhf-zod",name:"React Hook Form + Zod",comment:"Best performance + type safety",hover_note:"Minimal re-renders with TypeScript-first validation schema"},{value:"rhf-yup",name:"React Hook Form + Yup",comment:"Performant with Yup validation",hover_note:"Well-established validation library with good ecosystem"},{value:"formik-zod",name:"Formik + Zod",comment:"Popular form library + Zod",hover_note:"Formik's simplicity with Zod's type inference"},{value:"formik-yup",name:"Formik + Yup",comment:"Traditional Formik setup",hover_note:"Classic combination for form handling"},{value:"tanstack-form",name:"TanStack Form",comment:"Type-safe forms by TanStack",hover_note:"Framework-agnostic with first-class TypeScript support"},{value:"none",name:"None",comment:"No forms library",hover_note:"Use native form handling or add later"}]},Pr={name:"state",message:"Select a state management solution:",type:"list",options:[{value:"zustand",name:"Zustand",comment:"Small, fast, scalable",hover_note:"Minimal API with excellent TypeScript support - no boilerplate"},{value:"redux",name:"Redux Toolkit",comment:"Industry standard",hover_note:"Best for complex state with devtools, middleware, and persistence"},{value:"jotai",name:"Jotai",comment:"Primitive atoms approach",hover_note:"Atomic state management - great for derived state"},{value:"none",name:"None",comment:"React built-in state",hover_note:"Use useState, useReducer, and Context API"}]},Tr={name:"routing",message:"Select a routing solution:",type:"list",options:[{value:"react-router",name:"React Router",comment:"Most popular routing",hover_note:"Declarative routing with data loading and actions support"},{value:"tanstack-router",name:"TanStack Router",comment:"Fully type-safe routing",hover_note:"Type-safe from route definition to component - great DX"},{value:"none",name:"None",comment:"No routing",hover_note:"Single page app without navigation"}]},_r={name:"dataFetching",message:"Select a data fetching solution:",type:"list",options:[{value:"tanstack-query",name:"TanStack Query",comment:"Powerful async state",hover_note:"Caching, background updates, optimistic UI, infinite scroll built-in"},{value:"axios",name:"Axios",comment:"Promise-based HTTP client",hover_note:"Simple API with interceptors, transforms, and automatic JSON parsing"},{value:"fetch",name:"Native Fetch",comment:"Built-in browser API",hover_note:"No dependencies - use browser's native fetch API"},{value:"none",name:"None",comment:"No data fetching setup",hover_note:"Add data fetching solution later"}]},jr={name:"icons",message:"Select an icon library:",type:"list",options:[{value:"lucide",name:"Lucide",comment:"Beautiful & consistent",hover_note:"Community-driven fork of Feather Icons - tree-shakeable"},{value:"react-icons",name:"React Icons",comment:"Largest collection (Fa, Md, Ai...)",hover_note:"Includes Font Awesome, Material, Ant Design, Bootstrap icons and more"},{value:"iconify",name:"Iconify",comment:"Universal icon framework",hover_note:"Access to 100,000+ icons from 100+ icon sets in one library"},{value:"heroicons",name:"Heroicons",comment:"By Tailwind Labs",hover_note:"Hand-crafted SVG icons designed to pair with Tailwind CSS"},{value:"fontawesome",name:"Font Awesome",comment:"Extensive icon library",hover_note:"Thousands of icons in multiple styles (solid, regular, brands)"},{value:"none",name:"None",comment:"No icon library",hover_note:"Use your own SVGs or add icons later"}]},Br={name:"structure",message:"Select a project structure:",type:"list",options:[{value:"feature-based",name:"Feature-based",comment:"Organize by features",hover_note:"Group files by feature/domain - scales well for large apps",folder_info:["src/features/*","src/shared/*","src/app/*"]},{value:"fsd",name:"FSD (Feature-Sliced Design)",comment:"Architectural methodology",hover_note:"Layers \u2192 Slices \u2192 Segments - highly scalable architecture",folder_info:["src/app","src/pages","src/widgets","src/features","src/entities","src/shared"]},{value:"atomic",name:"Atomic Design",comment:"Atoms \u2192 Molecules \u2192 Organisms",hover_note:"Design system methodology by Brad Frost - great for component libraries",folder_info:["src/components/atoms","src/components/molecules","src/components/organisms"]},{value:"clean",name:"Clean Architecture",comment:"Domain-driven layers",hover_note:"Separation of concerns with domain, application, and infrastructure layers",folder_info:["src/domain","src/application","src/infrastructure","src/presentation"]},{value:"mvc",name:"MVC Pattern",comment:"Model-View-Controller",hover_note:"Classic pattern separating data, UI, and business logic",folder_info:["src/models","src/views","src/controllers"]},{value:"simple",name:"Simple",comment:"Minimal structure",hover_note:"Basic folders for small projects - easy to reorganize later",folder_info:["src/components","src/hooks","src/utils","src/assets"]}]},ct=[Sr,$r,kr,Ar,Pr,Tr,_r,jr,Br]});var lt,Ir,Yc,Rr,Zc,Ri,Nr=D(()=>{"use strict";lt={name:"optionalFeatures",message:"Select optional features (Space to select, Enter to continue):",type:"checkbox",options:[{value:"testing",name:"Testing",comment:"Unit & integration tests",hover_note:"Vitest or Jest configuration with React Testing Library"},{value:"linting",name:"Linting & Formatting",comment:"Code quality tools",hover_note:"ESLint + Prettier or Biome for consistent code style"},{value:"animation",name:"Animation Library",comment:"Motion & transitions",hover_note:"Framer Motion, GSAP, or React Spring for smooth animations"},{value:"ai-instructions",name:"AI Instructions",comment:"AI IDE/CLI guidance files",hover_note:"Generate instruction files for AI tools (Cursor, Windsurf, Claude, etc.)"}]},Ir={name:"testing",message:"Select testing framework:",type:"list",options:[{value:"vitest",name:"Vitest",comment:"Vite-native testing",hover_note:"Blazing fast with Vite - compatible with Jest API"},{value:"jest",name:"Jest",comment:"Industry standard",hover_note:"Mature ecosystem with extensive documentation"}]},Yc={name:"linting",message:"Select linting setup:",type:"list",options:[{value:"eslint-prettier",name:"ESLint + Prettier",comment:"Standard combo",hover_note:"ESLint for linting, Prettier for formatting - widely adopted"},{value:"biome",name:"Biome",comment:"All-in-one tool",hover_note:"Fast Rust-based linter and formatter in one - simpler config"}]},Rr={name:"animation",message:"Select animation library:",type:"list",options:[{value:"framer-motion",name:"Framer Motion",comment:"Production-ready",hover_note:"Declarative animations with gestures, layout animations, and SVG support"},{value:"gsap",name:"GSAP",comment:"Professional-grade",hover_note:"Industry-standard animation library with timeline control and ScrollTrigger"},{value:"react-spring",name:"React Spring",comment:"Physics-based",hover_note:"Spring-physics animations for natural motion feel"}]},Zc={name:"aiInstructions",message:"Select AI tools to generate instructions for:",type:"checkbox",options:[{value:"cursor",name:"Cursor",comment:"AI-first code editor",hover_note:"Generate .cursorrules for Cursor IDE"},{value:"windsurf",name:"Windsurf",comment:"AI-powered IDE",hover_note:"Generate .windsurfrules for Windsurf"},{value:"cline",name:"Cline",comment:"VS Code AI extension",hover_note:"Generate .clinerules for Cline (formerly Claude Dev)"},{value:"roo-cline",name:"Roo Cline",comment:"Enhanced Cline fork",hover_note:"Generate .roo-clinerules for Roo Cline"},{value:"aider",name:"Aider",comment:"AI pair programming in terminal",hover_note:"Generate .aider.conf.yml for Aider CLI"},{value:"claude",name:"Claude",comment:"Anthropic Claude AI",hover_note:"Generate CLAUDE_INSTRUCTIONS.md for Claude CLI/API"},{value:"gemini",name:"Google Gemini",comment:"Google Gemini AI",hover_note:"Generate GEMINI_INSTRUCTIONS.md for Gemini"},{value:"codex",name:"OpenAI Codex",comment:"OpenAI Codex/ChatGPT",hover_note:"Generate CODEX_INSTRUCTIONS.md for Codex/ChatGPT"},{value:"universal",name:"Universal (All AI Tools)",comment:"Generic AI instructions",hover_note:"Generate AI_INSTRUCTIONS.md for any AI assistant"}]},Ri={"ai-instructions":Zc,testing:Ir,linting:Yc,animation:Rr}});var Ni,Mi,Li,Ui=D(()=>{"use strict";Ni=t=>t.options.map(e=>({name:e.name,value:e.value,short:e.name})),Mi=t=>t.name,Li=(t,e)=>t.find(r=>r.value===e)});var Qc,Vi=D(()=>{"use strict";Or();Nr();Ui();Or();Nr();Qc=[...ct,lt]});var Gi={};S(Gi,{allPrompts:()=>Qc,animationPrompt:()=>Rr,corePrompts:()=>ct,dataFetchingPrompt:()=>_r,formsPrompt:()=>Ar,getChoiceName:()=>Mi,getInquirerChoices:()=>Ni,getOptionByValue:()=>Li,iconsPrompt:()=>jr,optionalFeaturesPrompt:()=>lt,optionalSubPrompts:()=>Ri,routingPrompt:()=>Tr,statePrompt:()=>Pr,structurePrompt:()=>Br,stylingPrompt:()=>$r,testingPrompt:()=>Ir,uiPrompt:()=>kr,variantPrompt:()=>Sr});var zi=D(()=>{"use strict";Vi()});var Ki={};S(Ki,{addDependency:()=>Ne,addScript:()=>Ji,copy:()=>qi,createProjectDir:()=>pt,ensureDir:()=>x,getPackageJson:()=>ee,pathExists:()=>ue,readJson:()=>Lr,remove:()=>Hi,removeFile:()=>Wi,savePackageJson:()=>dt,writeFile:()=>b,writeJson:()=>ce});import ae from"node:fs/promises";import Mr from"node:path";var ue,x,Lr,ce,b,Wi,Hi,qi,pt,ee,dt,Ne,Ji,de=D(()=>{"use strict";ue=async t=>{try{return await ae.access(t),!0}catch{return!1}},x=async t=>{await ae.mkdir(t,{recursive:!0})},Lr=async t=>{let e=await ae.readFile(t,"utf-8");return JSON.parse(e)},ce=async(t,e,r=2)=>{await ae.writeFile(t,JSON.stringify(e,null,r)+`
126
+ `)},b=async(t,e)=>{if(await ue(t))try{if(await ae.readFile(t,"utf-8")===e)return}catch{}await ae.writeFile(t,e)},Wi=async t=>{await ae.unlink(t)},Hi=async t=>{await ae.rm(t,{recursive:!0,force:!0})},qi=async(t,e)=>{await ae.cp(t,e,{recursive:!0})},pt=async t=>{await x(t.projectPath),await x(Mr.join(t.projectPath,"src"))},ee=async t=>{let e=Mr.join(t.projectPath,"package.json");return await ue(e)?await Lr(e):{name:t.selections?.projectName||"my-nexo-app",version:"0.1.0",private:!0,type:"module",dependencies:{},devDependencies:{},scripts:{}}},dt=async(t,e)=>{await ce(Mr.join(t.projectPath,"package.json"),e)},Ne=(t,e,r,n=!1)=>{n?(t.devDependencies=t.devDependencies||{},t.devDependencies[e]=r):(t.dependencies=t.dependencies||{},t.dependencies[e]=r)},Ji=(t,e,r)=>{t.scripts=t.scripts||{},t.scripts[e]=r}});var rs={};S(rs,{cache:()=>me,clearCache:()=>Qi,getCached:()=>ke,getCachedSync:()=>Yi,invalidateCache:()=>Zi,memoize:()=>es,memoizeSync:()=>ts});import Ur from"node:fs/promises";import el from"node:os";import Xi from"node:path";var Vr,me,ke,Yi,Zi,Qi,es,ts,Me=D(()=>{"use strict";de();Vr=class{cache=new Map;defaultTTL=24*60*60*1e3;cacheDir=Xi.join(el.homedir(),".nexo");cacheFile=Xi.join(this.cacheDir,"cache.json");version="1.0.0";async load(){try{if(!await Ur.access(this.cacheFile).then(()=>!0).catch(()=>!1))return;let r=await Ur.readFile(this.cacheFile,"utf-8"),n=JSON.parse(r);if(n.version!==this.version)return;this.cache=new Map(Object.entries(n.entries))}catch{}}async save(){try{await x(this.cacheDir);let e=Date.now();for(let[n,s]of this.cache.entries())e-s.timestamp>this.defaultTTL&&this.cache.delete(n);let r={version:this.version,entries:Object.fromEntries(this.cache)};await Ur.writeFile(this.cacheFile,JSON.stringify(r,null,2))}catch{}}async get(e,r,n){let s=this.cache.get(e),o=Date.now();if(s&&o-s.timestamp<(n??this.defaultTTL))return s.value;let i=await r();return this.cache.set(e,{value:i,timestamp:o}),i}getSync(e,r,n){let s=this.cache.get(e),o=Date.now();if(s&&o-s.timestamp<(n??this.defaultTTL))return s.value;let i=r();return this.cache.set(e,{value:i,timestamp:o}),i}has(e,r){let n=this.cache.get(e);return n?Date.now()-n.timestamp<(r??this.defaultTTL):!1}set(e,r){this.cache.set(e,{value:r,timestamp:Date.now()})}invalidate(e){this.cache.delete(e)}invalidatePattern(e){let r=new RegExp(e);for(let n of this.cache.keys())r.test(n)&&this.cache.delete(n)}clear(){this.cache.clear()}stats(){return{size:this.cache.size,keys:[...this.cache.keys()]}}},me=new Vr,ke=(t,e,r)=>me.get(t,e,r),Yi=(t,e,r)=>me.getSync(t,e,r),Zi=t=>{me.invalidate(t)},Qi=()=>{me.clear()},es=(t,e)=>{let r=e??((...n)=>JSON.stringify(n));return async(...n)=>{let s=`memoize:${t.name}:${r(...n)}`;return me.get(s,()=>t(...n))}},ts=(t,e)=>{let r=e??((...n)=>JSON.stringify(n));return(...n)=>{let s=`memoize:${t.name}:${r(...n)}`;return me.getSync(s,()=>t(...n))}}});import is from"node:fs/promises";import ns from"node:path";var tl,rl,ss=D(()=>{"use strict";tl=async t=>{try{return(await is.readdir(t)).filter(n=>n!==".git"&&n!==".DS_Store"&&n!=="Thumbs.db").length===0}catch{return!0}},rl=async t=>{try{let e=ns.join(t,"package.json"),r=await is.readFile(e,"utf-8"),n=JSON.parse(r),s={...n.dependencies,...n.devDependencies},o={projectName:n.name||ns.basename(t)};return s.react&&(o.framework="react"),s.typescript?o.variant="ts":o.variant="js",s.tailwindcss?o.styling="tailwind":s.sass&&(o.styling="sass"),o}catch{return null}}});var mt,os,as=D(()=>{"use strict";mt=t=>{let e=[],r=t.variant.includes("ts"),n=r?"tsx":"jsx",s=r?"ts":"js";e.push({name:"package.json"}),e.push({name:"vite.config."+s}),e.push({name:"index.html"}),r&&e.push({name:"tsconfig.json"}),t.styling==="tailwind"&&e.push({name:"tailwind.config.js"}),e.push({name:"README.md"}),t.ui==="shadcn"&&e.push({name:"components.json"});let o;return o=[{name:`main.${n}`},{name:`App.${n}`},{name:"index.css"}],t.state==="redux"&&o.push({name:"store/",children:[{name:"store."+s},{name:"hooks."+s},{name:"counterSlice."+s}]}),t.ui==="shadcn"&&o.push({name:"lib/",children:[{name:"utils."+s}]}),t.structure==="fsd"?o.push({name:"app/",children:[]},{name:"pages/",children:[]},{name:"widgets/",children:[]},{name:"features/",children:[]},{name:"entities/",children:[]},{name:"shared/",children:[]}):t.structure==="clean"?o.push({name:"domain/",children:[]},{name:"application/",children:[]},{name:"infrastructure/",children:[]},{name:"presentation/",children:[]}):o.push({name:"components/",children:[]},{name:"hooks/",children:[]},{name:"utils/",children:[]},{name:"assets/",children:[]}),e.push({name:"src/",children:o}),os(e)},os=(t,e="")=>{let r="";return t.forEach((n,s)=>{let o=s===t.length-1,i=o?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",a=o?" ":"\u2502 ";r+=`${e}${i}${n.name}
127
+ `,n.children&&(r+=os(n.children,e+a))}),r}});import Le from"node:path";var Gr,nl,us,cs,il,ls,sl,ol,al,ul,cl,ll,pl,dl,ml,ps=D(()=>{"use strict";de();Gr=async(t,e)=>{let r=await ee(t);if(e.dependencies)for(let[n,s]of Object.entries(e.dependencies))Ne(r,n,s,!1);if(e.devDependencies)for(let[n,s]of Object.entries(e.devDependencies))Ne(r,n,s,!0);return await dt(t,r),r},nl=async(t,e,r)=>e?Gr(t,r):null,us=async(t,e)=>{await Promise.all(e.map(async r=>{let n=Le.join(t.projectPath,r.path);await x(Le.dirname(n)),await b(n,r.content)}))},cs=async(t,e)=>{let r=Object.entries(e).map(([n,s])=>({path:n,content:s}));await us(t,r)},il=async(t,e,r)=>{let n=Le.join(t.projectPath,e),{pathExists:s}=await Promise.resolve().then(()=>(de(),Ki));return await s(n)?!1:(await x(Le.dirname(n)),await b(n,r),!0)},ls=async(t,e)=>{await Promise.all(e.map(r=>x(Le.join(t.projectPath,r))))},sl=(t,e)=>{let r=t;for(let[n,s]of Object.entries(e))r=r.replace(new RegExp(`\\{\\{${n}\\}\\}`,"g"),s);return r},ol=t=>t.map(({from:e,imports:r,default:n})=>{let s=[];return n&&s.push(n),Array.isArray(r)&&r.length>0?s.push(`{ ${r.join(", ")} }`):typeof r=="string"&&r&&s.push(`{ ${r} }`),`import ${s.join(", ")} from '${e}'`}).join(`
128
+ `),al=(t,e)=>t.selections[e]==="none",ul=t=>{let e=t.selections.variant.startsWith("ts");return{ts:e,ext:e?"tsx":"jsx",configExt:e?"ts":"js"}},cl=t=>async e=>{let r=e.selections[t.selectionKey];if(r==="none")return;let n=t.configs[r];if(n){if((n.dependencies||n.devDependencies)&&await Gr(e,{dependencies:n.dependencies,devDependencies:n.devDependencies}),n.directories&&await ls(e,n.directories),n.files){let s=n.files(e);await cs(e,s)}n.setup&&await n.setup(e)}},ll=async(t,e)=>t?e():null,pl=(t,e,r)=>t?e:r,dl=(...t)=>t.filter(e=>e!==!1&&e!==null&&e!==void 0),ml=(...t)=>{let e={};for(let r of t)if(r&&Array.isArray(r)){let[n,s]=r;s!=null&&(e[n]=s)}return e}});var ds={};S(ds,{PackageManager:()=>ft});import{exec as fl}from"node:child_process";import hl from"node:path";import{promisify as gl}from"node:util";var If,ft,zr=D(()=>{"use strict";Me();de();If=gl(fl),ft=class{projectPath;pkg=null;dependencies=new Map;devDependencies=new Map;scripts=new Map;constructor(e){this.projectPath=e}async load(e){this.pkg=await ee(e),this.pkg.dependencies&&Object.entries(this.pkg.dependencies).forEach(([r,n])=>this.dependencies.set(r,n)),this.pkg.devDependencies&&Object.entries(this.pkg.devDependencies).forEach(([r,n])=>this.devDependencies.set(r,n)),this.pkg.scripts&&Object.entries(this.pkg.scripts).forEach(([r,n])=>this.scripts.set(r,n))}add(e,r,n=!1){n?this.devDependencies.set(e,r):this.dependencies.set(e,r)}addScript(e,r){this.scripts.set(e,r)}set(e,r){this.pkg&&(this.pkg[e]=r)}async resolveLatestVersions(){if(process.env.NODE_ENV==="test")return;let e=[...this.dependencies.keys()],r=[...this.devDependencies.keys()],n=[...new Set([...e,...r])];if(n.length===0)return;let s=await Promise.allSettled(n.map(async o=>{try{let i=await ke(`npm:version:${o}`,async()=>{let a=new AbortController,c=setTimeout(()=>a.abort(),3e3);try{let l=await fetch(`https://registry.npmjs.org/${o}/latest`,{signal:a.signal,headers:{Accept:"application/json"}});if(!l.ok)return null;let p=await l.json();return p.version&&/^\d+\.\d+\.\d+/.test(p.version)?p.version:null}finally{clearTimeout(c)}},432e5);return{name:o,version:i}}catch{return{name:o,version:null}}}));for(let o of s)if(o.status==="fulfilled"&&o.value.version){let{name:i,version:a}=o.value,c=`^${a}`;this.dependencies.has(i)&&this.dependencies.set(i,c),this.devDependencies.has(i)&&this.devDependencies.set(i,c)}}async save(){if(!this.pkg)throw new Error("Package.json not loaded. Call load() first.");let e=r=>Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])));this.pkg.dependencies=e(this.dependencies),this.pkg.devDependencies=e(this.devDependencies),this.pkg.scripts=e(this.scripts),await ce(hl.join(this.projectPath,"package.json"),this.pkg)}}});var Dl,Wr,ms=D(()=>{"use strict";Me();Dl=["react","react-dom","vite","typescript","@vitejs/plugin-react","tailwindcss","postcss","autoprefixer","sass","styled-components","shadcn","lucide-react","@heroui/react","@mui/material","antd","@chakra-ui/react","react-hook-form","zod","yup","formik","@tanstack/react-form","zustand","redux","@reduxjs/toolkit","jotai","react-router-dom","@tanstack/react-router","@tanstack/react-query","axios","react-icons","@iconify/react","heroicons","@fortawesome/fontawesome-svg-core","clsx","tailwind-merge","framer-motion"],Wr=()=>{Dl.forEach(async t=>{try{await ke(`npm:version:${t}`,async()=>{let e=new AbortController,r=setTimeout(()=>e.abort(),3e3);try{let n=await fetch(`https://registry.npmjs.org/${t}/latest`,{signal:e.signal,headers:{Accept:"application/json"}});return n.ok?(await n.json()).version:""}catch{return""}finally{clearTimeout(r)}},12*60*60*1e3)}catch{}})}});var N,Cl,yl,vl,bl,fs=D(()=>{"use strict";N=M(Y(),1),Cl=t=>{let{total:e,width:r=30,showPercentage:n=!0,showStepCount:s=!0,completeChar:o="\u2588",incompleteChar:i="\u2591",filledColor:a=N.default.cyan,emptyColor:c=N.default.dim}=t,l=0,p="",d=()=>{let m=Math.round(l/e*100),y=Math.round(l/e*r),C=r-y,$=`\r${a(o.repeat(y))+c(i.repeat(C))}`;n&&($+=` ${m.toString().padStart(3)}%`),s&&($+=` (${l}/${e})`),p&&($+=` ${N.default.dim(p)}`),$+="\x1B[K",process.stdout.write($)};return{increment:m=>{l=Math.min(l+1,e),p=m||"",d()},update:(m,y)=>{l=Math.min(Math.max(0,m),e),p=y||"",d()},complete:m=>{l=e,p="",d(),console.log(),m&&console.log(N.default.green(`\u2713 ${m}`))},fail:m=>{p="",console.log(),m&&console.log(N.default.red(`\u2717 ${m}`))},getPercentage:()=>Math.round(l/e*100)}},yl=t=>{let{total:e,showStepNumbers:r=!0}=t,n=0,s="",o=()=>r?`[${n}/${e}]`:"";return{start:i=>{n++,s=i,process.stdout.write(`${N.default.cyan("\u25CF")} ${o()} ${i}...`)},succeed:i=>{process.stdout.write(`\r${N.default.green("\u2713")} ${o()} ${i||s}\x1B[K
129
129
  `)},fail:i=>{process.stdout.write(`\r${N.default.red("\u2717")} ${o()} ${i||s}\x1B[K
130
130
  `)},skip:i=>{let a=i?` (${i})`:"";process.stdout.write(`\r${N.default.yellow("\u25CB")} ${o()} ${s}${N.default.dim(a)}\x1B[K
131
- `)},complete:()=>{console.log(),console.log(N.default.green(`\u2713 All ${e} steps completed successfully!`))}}},vl=()=>({log:t=>{console.log(` ${t}`)},success:t=>{console.log(`${N.default.green("\u2713")} ${t}`)},error:t=>{console.log(`${N.default.red("\u2717")} ${t}`)},warn:t=>{console.log(`${N.default.yellow("\u26A0")} ${t}`)},info:t=>{console.log(`${N.default.blue("\u2139")} ${t}`)}}),bl=()=>{let t=Date.now(),e=null;return{elapsed:()=>(e||Date.now())-t,format:()=>{let r=(e||Date.now())-t;return r<1e3?`${r}ms`:`${(r/1e3).toFixed(2)}s`},stop:()=>{e=Date.now();let r=e-t;return r<1e3?`${r}ms`:`${(r/1e3).toFixed(2)}s`}}}});var ht,hs,wl,Fl,Hr,ve,gs=D(()=>{"use strict";ht=M(Y(),1),hs=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],wl=ht.default.green("\u2714"),Fl=ht.default.red("\u2716"),Hr=()=>{let t=null,e=0,r="",n=()=>{process.stdout.write("\r\x1B[K")},s=()=>{n(),process.stdout.write(`${ht.default.cyan(hs[e])} ${r}`),e=(e+1)%hs.length};return{start:o=>{r=o,e=0,t&&clearInterval(t),t=setInterval(s,80),s()},succeed:o=>{t&&(clearInterval(t),t=null),n(),console.log(`${wl} ${o||r}`)},fail:o=>{t&&(clearInterval(t),t=null),n(),console.log(`${Fl} ${o||r}`)},stop:()=>{t&&(clearInterval(t),t=null),n()}}},ve=t=>{let e=Hr();return e.start(t),e}});var Ds=D(()=>{"use strict"});var gt,Dt,Ct,Cs=D(()=>{"use strict";Ds();gt=class extends Error{constructor(r,n,s){super(r);this.code=n;this.context=s;this.name="NexoError",Error.captureStackTrace?.(this,this.constructor)}},Dt=class extends gt{constructor(e,r){super(e,"VALIDATION_ERROR",r),this.name="ValidationError"}},Ct=class extends gt{constructor(e,r){super(e,"COMPATIBILITY_ERROR",{selections:r}),this.name="CompatibilityError"}}});var qr,yt,ys,vs,bs,El,xl,Sl,$l,ws=D(()=>{"use strict";Cs();qr={framework:["react"],variant:["ts","ts-compiler","ts-swc","js","js-compiler","js-swc"],language:["typescript","javascript"],styling:["tailwind","css-modules","sass"],ui:["shadcn","radix","heroui","antd","chakra","none"],forms:["rhf-zod","rhf-yup","formik-zod","formik-yup","none"],state:["zustand","redux","jotai","none"],routing:["react-router","tanstack-router","none"],dataFetching:["tanstack-query","axios","fetch","none"],icons:["lucide","heroicons","fontawesome","none"],structure:["feature-based","fsd","atomic","clean","mvc","simple"],testing:["vitest","jest"],linting:["eslint-prettier","biome"],api:["openapi","graphql","trpc"],animation:["framer-motion","react-spring"]},yt=[{name:"shadcn-requires-tailwind",check:t=>t.ui==="shadcn"&&t.styling!=="tailwind",message:"shadcn/ui requires Tailwind CSS as the styling solution",suggestion:'Change styling to "tailwind" or choose a different UI library',severity:"error"},{name:"heroui-requires-tailwind",check:t=>t.ui==="heroui"&&t.styling!=="tailwind",message:"HeroUI requires Tailwind CSS as the styling solution",suggestion:'Change styling to "tailwind" or choose a different UI library',severity:"error"},{name:"react-compiler-react-only",check:t=>t.variant?.includes("compiler")&&t.framework!=="react",message:"React Compiler is only available for React framework",suggestion:'Change framework to "react" or choose a different variant',severity:"error"},{name:"swc-react-only",check:t=>t.variant?.includes("swc")&&t.framework!=="react",message:"SWC plugin is currently only configured for React",suggestion:"Use default variant for non-React frameworks",severity:"warning"},{name:"tanstack-router-typescript",check:t=>t.routing==="tanstack-router"&&!t.variant?.startsWith("ts"),message:"TanStack Router works best with TypeScript for full type safety",suggestion:"Consider using TypeScript variant for better DX",severity:"warning"},{name:"formik-yup-legacy-warning",check:t=>t.forms==="formik-yup",message:"Formik + Yup is considered legacy - React Hook Form offers better performance",suggestion:'Consider using "rhf-zod" for better performance and type safety',severity:"warning"},{name:"antd-bundle-warning",check:t=>t.ui==="antd",message:"Ant Design has a large bundle size (~120KB gzipped)",suggestion:"Consider shadcn/ui for smaller bundle size",severity:"warning"},{name:"chakra-bundle-warning",check:t=>t.ui==="chakra",message:"Chakra UI has a moderate bundle size (~80KB gzipped)",suggestion:"Consider shadcn/ui for smaller bundle with similar features",severity:"warning"},{name:"fsd-typescript-recommended",check:t=>t.structure==="fsd"&&!t.variant?.startsWith("ts"),message:"Feature-Sliced Design benefits greatly from TypeScript",suggestion:"Consider using TypeScript for better FSD experience",severity:"warning"}],ys=t=>{let e=[],r=[],n=[];return!t||t.trim().length===0?e.push("Project name is required"):(t.length>214&&e.push("Project name must be less than 214 characters"),/^[a-z0-9]/.test(t)||e.push("Project name must start with a lowercase letter or number"),/^[a-z0-9._-]+$/.test(t)||(e.push("Project name can only contain lowercase letters, numbers, hyphens, underscores, and dots"),n.push("Use kebab-case: my-project-name")),["node_modules","favicon.ico","package","test"].includes(t.toLowerCase())&&e.push(`"${t}" is a reserved name`),t.startsWith(".")&&r.push('Project names starting with "." are hidden on Unix systems'),t.includes("..")&&e.push('Project name cannot contain ".."')),{valid:e.length===0,errors:e,warnings:r,suggestions:n}},vs=(t,e,r)=>{let n=[],s=[],o=[];if(!e||e==="")return{valid:!0,errors:n,warnings:s,suggestions:o};let i=r||qr[t];return i&&!i.includes(e)&&(n.push(`Invalid ${t}: "${e}". Valid options: ${i.join(", ")}`),o.push(`Choose one of: ${i.join(", ")}`)),{valid:n.length===0,errors:n,warnings:s,suggestions:o}},bs=t=>{let e=[],r=[],n=[];if(t.projectName){let i=ys(t.projectName);e.push(...i.errors),r.push(...i.warnings),n.push(...i.suggestions)}let s=Object.keys(qr);for(let i of s){let a=t[i];if(a!=null){let c=vs(i,a);e.push(...c.errors),r.push(...c.warnings),n.push(...c.suggestions)}}let o=Object.fromEntries(Object.entries(t).map(([i,a])=>[i,String(a)]));for(let i of yt)i.check(o)&&(i.severity==="error"?e.push(i.message):r.push(i.message),i.suggestion&&n.push(i.suggestion));return{valid:e.length===0,errors:[...new Set(e)],warnings:[...new Set(r)],suggestions:[...new Set(n)]}},El=t=>{let e=bs(t);if(!e.valid)throw new Dt(e.errors.join("; "),{errors:e.errors,selections:t})},xl=t=>{let e=yt.filter(r=>r.severity==="error"&&r.check(t));if(e.length>0)throw new Ct(e.map(r=>r.message).join("; "),t)},Sl=t=>yt.filter(e=>e.severity==="warning"&&e.check(t)).map(e=>e.message),$l=t=>t.toLowerCase().replace(/[^a-z0-9._-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,214)});var vt={};S(vt,{PackageManager:()=>ft,VALID_OPTIONS:()=>qr,addDependencies:()=>Vr,addDependenciesIf:()=>nl,addDependency:()=>Ne,addScript:()=>Ji,buildArray:()=>dl,buildObject:()=>ml,cache:()=>me,checkCompatibilityOrThrow:()=>xl,clearCache:()=>Qi,compatibilityRules:()=>yt,copy:()=>qi,createDirectories:()=>ls,createFileIfNotExists:()=>il,createFiles:()=>us,createFilesFromRecord:()=>cs,createProgressBar:()=>Cl,createProjectDir:()=>pt,createSimpleProgress:()=>vl,createSpinner:()=>Hr,createStandardConfigurator:()=>cl,createStepProgress:()=>yl,createTimer:()=>bl,detectProjectConfig:()=>rl,doIf:()=>ll,ensureDir:()=>x,generateFileTree:()=>mt,generateImports:()=>ol,getCached:()=>ke,getCachedSync:()=>Yi,getCompatibilityWarnings:()=>Sl,getExtension:()=>ul,getPackageJson:()=>ee,invalidateCache:()=>Zi,isDirEmpty:()=>tl,memoize:()=>es,memoizeSync:()=>ts,pathExists:()=>ue,prefetchCommonPackages:()=>Wr,readJson:()=>Lr,remove:()=>Hi,removeFile:()=>Wi,sanitizeProjectName:()=>$l,savePackageJson:()=>dt,selectIf:()=>pl,skipIfNone:()=>al,spinner:()=>ve,template:()=>sl,validateOption:()=>vs,validateOrThrow:()=>El,validateProjectName:()=>ys,validateSelections:()=>bs,writeFile:()=>b,writeJson:()=>ce});var O=D(()=>{"use strict";Me();ss();as();de();ps();zr();ms();fs();gs();ws()});var Es={};S(Es,{Logger:()=>bt,log:()=>f,logger:()=>W});var I,Fs,bt,W,f,be=D(()=>{"use strict";I=M(Y(),1),Fs={debug:0,info:1,warn:2,error:3,silent:4},bt=class{level;prefix;colors;constructor(e={}){this.level=e.level||(process.env.DEBUG?"debug":"info"),this.prefix=e.prefix||"",this.colors=e.colors!==!1}shouldLog(e){return Fs[e]>=Fs[this.level]}format(e){return this.prefix?`${this.prefix} ${e}`:e}newline(){this.shouldLog("info")&&process.stdout.write(`
131
+ `)},complete:()=>{console.log(),console.log(N.default.green(`\u2713 All ${e} steps completed successfully!`))}}},vl=()=>({log:t=>{console.log(` ${t}`)},success:t=>{console.log(`${N.default.green("\u2713")} ${t}`)},error:t=>{console.log(`${N.default.red("\u2717")} ${t}`)},warn:t=>{console.log(`${N.default.yellow("\u26A0")} ${t}`)},info:t=>{console.log(`${N.default.blue("\u2139")} ${t}`)}}),bl=()=>{let t=Date.now(),e=null;return{elapsed:()=>(e||Date.now())-t,format:()=>{let r=(e||Date.now())-t;return r<1e3?`${r}ms`:`${(r/1e3).toFixed(2)}s`},stop:()=>{e=Date.now();let r=e-t;return r<1e3?`${r}ms`:`${(r/1e3).toFixed(2)}s`}}}});var ht,hs,wl,Fl,Hr,ve,gs=D(()=>{"use strict";ht=M(Y(),1),hs=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],wl=ht.default.green("\u2714"),Fl=ht.default.red("\u2716"),Hr=()=>{let t=null,e=0,r="",n=()=>{process.stdout.write("\r\x1B[K")},s=()=>{n(),process.stdout.write(`${ht.default.cyan(hs[e])} ${r}`),e=(e+1)%hs.length};return{start:o=>{r=o,e=0,t&&clearInterval(t),t=setInterval(s,80),s()},succeed:o=>{t&&(clearInterval(t),t=null),n(),console.log(`${wl} ${o||r}`)},fail:o=>{t&&(clearInterval(t),t=null),n(),console.log(`${Fl} ${o||r}`)},stop:()=>{t&&(clearInterval(t),t=null),n()}}},ve=t=>{let e=Hr();return e.start(t),e}});var Ds=D(()=>{"use strict"});var gt,Dt,Ct,Cs=D(()=>{"use strict";Ds();gt=class extends Error{constructor(r,n,s){super(r);this.code=n;this.context=s;this.name="NexoError",Error.captureStackTrace?.(this,this.constructor)}},Dt=class extends gt{constructor(e,r){super(e,"VALIDATION_ERROR",r),this.name="ValidationError"}},Ct=class extends gt{constructor(e,r){super(e,"COMPATIBILITY_ERROR",{selections:r}),this.name="CompatibilityError"}}});var qr,yt,ys,vs,bs,El,xl,Sl,$l,ws=D(()=>{"use strict";Cs();qr={framework:["react"],variant:["ts","ts-compiler","ts-swc","js","js-compiler","js-swc"],language:["typescript","javascript"],styling:["tailwind","css-modules","sass"],ui:["shadcn","radix","heroui","antd","chakra","none"],forms:["rhf-zod","rhf-yup","formik-zod","formik-yup","none"],state:["zustand","redux","jotai","none"],routing:["react-router","tanstack-router","none"],dataFetching:["tanstack-query","axios","fetch","none"],icons:["lucide","heroicons","fontawesome","none"],structure:["feature-based","fsd","atomic","clean","mvc","simple"],testing:["vitest","jest"],linting:["eslint-prettier","biome"],api:["openapi","graphql","trpc"],animation:["framer-motion","react-spring"]},yt=[{name:"shadcn-requires-tailwind",check:t=>t.ui==="shadcn"&&t.styling!=="tailwind",message:"shadcn/ui requires Tailwind CSS as the styling solution",suggestion:'Change styling to "tailwind" or choose a different UI library',severity:"error"},{name:"heroui-requires-tailwind",check:t=>t.ui==="heroui"&&t.styling!=="tailwind",message:"HeroUI requires Tailwind CSS as the styling solution",suggestion:'Change styling to "tailwind" or choose a different UI library',severity:"error"},{name:"react-compiler-react-only",check:t=>t.variant?.includes("compiler")&&t.framework!=="react",message:"React Compiler is only available for React framework",suggestion:'Change framework to "react" or choose a different variant',severity:"error"},{name:"swc-react-only",check:t=>t.variant?.includes("swc")&&t.framework!=="react",message:"SWC plugin is currently only configured for React",suggestion:"Use default variant for non-React frameworks",severity:"warning"},{name:"tanstack-router-typescript",check:t=>t.routing==="tanstack-router"&&!t.variant?.startsWith("ts"),message:"TanStack Router works best with TypeScript for full type safety",suggestion:"Consider using TypeScript variant for better DX",severity:"warning"},{name:"formik-yup-legacy-warning",check:t=>t.forms==="formik-yup",message:"Formik + Yup is considered legacy - React Hook Form offers better performance",suggestion:'Consider using "rhf-zod" for better performance and type safety',severity:"warning"},{name:"antd-bundle-warning",check:t=>t.ui==="antd",message:"Ant Design has a large bundle size (~120KB gzipped)",suggestion:"Consider shadcn/ui for smaller bundle size",severity:"warning"},{name:"chakra-bundle-warning",check:t=>t.ui==="chakra",message:"Chakra UI has a moderate bundle size (~80KB gzipped)",suggestion:"Consider shadcn/ui for smaller bundle with similar features",severity:"warning"},{name:"fsd-typescript-recommended",check:t=>t.structure==="fsd"&&!t.variant?.startsWith("ts"),message:"Feature-Sliced Design benefits greatly from TypeScript",suggestion:"Consider using TypeScript for better FSD experience",severity:"warning"}],ys=t=>{let e=[],r=[],n=[];return!t||t.trim().length===0?e.push("Project name is required"):(t.length>214&&e.push("Project name must be less than 214 characters"),/^[a-z0-9]/.test(t)||e.push("Project name must start with a lowercase letter or number"),/^[a-z0-9._-]+$/.test(t)||(e.push("Project name can only contain lowercase letters, numbers, hyphens, underscores, and dots"),n.push("Use kebab-case: my-project-name")),["node_modules","favicon.ico","package","test"].includes(t.toLowerCase())&&e.push(`"${t}" is a reserved name`),t.startsWith(".")&&r.push('Project names starting with "." are hidden on Unix systems'),t.includes("..")&&e.push('Project name cannot contain ".."')),{valid:e.length===0,errors:e,warnings:r,suggestions:n}},vs=(t,e,r)=>{let n=[],s=[],o=[];if(!e||e==="")return{valid:!0,errors:n,warnings:s,suggestions:o};let i=r||qr[t];return i&&!i.includes(e)&&(n.push(`Invalid ${t}: "${e}". Valid options: ${i.join(", ")}`),o.push(`Choose one of: ${i.join(", ")}`)),{valid:n.length===0,errors:n,warnings:s,suggestions:o}},bs=t=>{let e=[],r=[],n=[];if(t.projectName){let i=ys(t.projectName);e.push(...i.errors),r.push(...i.warnings),n.push(...i.suggestions)}let s=Object.keys(qr);for(let i of s){let a=t[i];if(a!=null){let c=vs(i,a);e.push(...c.errors),r.push(...c.warnings),n.push(...c.suggestions)}}let o=Object.fromEntries(Object.entries(t).map(([i,a])=>[i,String(a)]));for(let i of yt)i.check(o)&&(i.severity==="error"?e.push(i.message):r.push(i.message),i.suggestion&&n.push(i.suggestion));return{valid:e.length===0,errors:[...new Set(e)],warnings:[...new Set(r)],suggestions:[...new Set(n)]}},El=t=>{let e=bs(t);if(!e.valid)throw new Dt(e.errors.join("; "),{errors:e.errors,selections:t})},xl=t=>{let e=yt.filter(r=>r.severity==="error"&&r.check(t));if(e.length>0)throw new Ct(e.map(r=>r.message).join("; "),t)},Sl=t=>yt.filter(e=>e.severity==="warning"&&e.check(t)).map(e=>e.message),$l=t=>t.toLowerCase().replace(/[^a-z0-9._-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,214)});var vt={};S(vt,{PackageManager:()=>ft,VALID_OPTIONS:()=>qr,addDependencies:()=>Gr,addDependenciesIf:()=>nl,addDependency:()=>Ne,addScript:()=>Ji,buildArray:()=>dl,buildObject:()=>ml,cache:()=>me,checkCompatibilityOrThrow:()=>xl,clearCache:()=>Qi,compatibilityRules:()=>yt,copy:()=>qi,createDirectories:()=>ls,createFileIfNotExists:()=>il,createFiles:()=>us,createFilesFromRecord:()=>cs,createProgressBar:()=>Cl,createProjectDir:()=>pt,createSimpleProgress:()=>vl,createSpinner:()=>Hr,createStandardConfigurator:()=>cl,createStepProgress:()=>yl,createTimer:()=>bl,detectProjectConfig:()=>rl,doIf:()=>ll,ensureDir:()=>x,generateFileTree:()=>mt,generateImports:()=>ol,getCached:()=>ke,getCachedSync:()=>Yi,getCompatibilityWarnings:()=>Sl,getExtension:()=>ul,getPackageJson:()=>ee,invalidateCache:()=>Zi,isDirEmpty:()=>tl,memoize:()=>es,memoizeSync:()=>ts,pathExists:()=>ue,prefetchCommonPackages:()=>Wr,readJson:()=>Lr,remove:()=>Hi,removeFile:()=>Wi,sanitizeProjectName:()=>$l,savePackageJson:()=>dt,selectIf:()=>pl,skipIfNone:()=>al,spinner:()=>ve,template:()=>sl,validateOption:()=>vs,validateOrThrow:()=>El,validateProjectName:()=>ys,validateSelections:()=>bs,writeFile:()=>b,writeJson:()=>ce});var O=D(()=>{"use strict";Me();ss();as();de();ps();zr();ms();fs();gs();ws()});var Es={};S(Es,{Logger:()=>bt,log:()=>f,logger:()=>W});var I,Fs,bt,W,f,be=D(()=>{"use strict";I=M(Y(),1),Fs={debug:0,info:1,warn:2,error:3,silent:4},bt=class{level;prefix;colors;constructor(e={}){this.level=e.level||(process.env.DEBUG?"debug":"info"),this.prefix=e.prefix||"",this.colors=e.colors!==!1}shouldLog(e){return Fs[e]>=Fs[this.level]}format(e){return this.prefix?`${this.prefix} ${e}`:e}newline(){this.shouldLog("info")&&process.stdout.write(`
132
132
  `)}print(e){this.shouldLog("info")&&process.stdout.write(e+`
133
133
  `)}debug(e){this.shouldLog("debug")&&process.stdout.write(this.colors?I.default.dim(`[debug] ${e}`)+`
134
134
  `:`[debug] ${e}
@@ -150,7 +150,7 @@ ${ye.default.dim(" v"+Hc.version)}
150
150
  `)}header(e,r="info"){if(!this.shouldLog("info"))return;let n=this.colors?r==="error"?I.default.bgRed(I.default.white(I.default.bold(` ${e} `))):r==="warning"?I.default.bgYellow(I.default.black(` ${e} `)):I.default.bgCyan(I.default.white(` ${e} `)):`[ ${e} ]`;process.stdout.write(n+`
151
151
  `)}list(e,r=2){if(!this.shouldLog("info"))return;let n=" ".repeat(r);for(let s of e)process.stdout.write(this.colors?I.default.dim(`${n}${s}`)+`
152
152
  `:`${n}${s}
153
- `)}},W=new bt,f={newline:()=>W.newline(),print:t=>W.print(t),debug:t=>W.debug(t),verbose:t=>W.verbose(t),info:t=>W.info(t),success:t=>W.success(t),warn:t=>W.warn(t),error:t=>W.error(t),dim:t=>W.dim(t),cyan:t=>W.cyan(t),bold:t=>W.bold(t),header:(t,e)=>W.header(t,e),list:(t,e)=>W.list(t,e)}});var xs={};S(xs,{frameworkConfigurator:()=>kl});import wt from"node:path";var kl,Al,Ss=D(()=>{"use strict";O();kl=async t=>{let{variant:e}=t.selections,r=e.startsWith("ts");await Al(t,r,r?"ts":"js")},Al=async(t,e,r)=>{let{variant:n}=t.selections,s=n.includes("swc");t.pkg&&(t.pkg.add("react","^19.0.0"),t.pkg.add("react-dom","^19.0.0"),t.pkg.add("vite","^6.0.0",!0),s?t.pkg.add("@vitejs/plugin-react-swc","^3.7.0",!0):t.pkg.add("@vitejs/plugin-react","^4.3.0",!0),t.pkg.addScript("dev","vite"),t.pkg.addScript("build","vite build"),t.pkg.addScript("preview","vite preview"),t.pkg.set("type","module"));let i=`${s?"import react from '@vitejs/plugin-react-swc'":"import react from '@vitejs/plugin-react'"}
153
+ `)}},W=new bt,f={newline:()=>W.newline(),print:t=>W.print(t),debug:t=>W.debug(t),verbose:t=>W.verbose(t),info:t=>W.info(t),success:t=>W.success(t),warn:t=>W.warn(t),error:t=>W.error(t),dim:t=>W.dim(t),cyan:t=>W.cyan(t),bold:t=>W.bold(t),header:(t,e)=>W.header(t,e),list:(t,e)=>W.list(t,e)}});var xs={};S(xs,{frameworkConfigurator:()=>kl});import wt from"node:path";var kl,Al,Ss=D(()=>{"use strict";O();kl=async t=>{let{variant:e}=t.selections,r=e.startsWith("ts");await Al(t,r,r?"ts":"js")},Al=async(t,e,r)=>{let{variant:n}=t.selections,s=n.includes("swc");t.pkg&&(t.pkg.add("react","^19.0.0"),t.pkg.add("react-dom","^19.0.0"),t.pkg.add("vite","^6.0.0",!0),s?t.pkg.add("@vitejs/plugin-react-swc","^3.7.0",!0):(t.pkg.add("@vitejs/plugin-react","^4.3.0",!0),t.pkg.add("@babel/core","^7.26.0",!0)),t.pkg.addScript("dev","vite"),t.pkg.addScript("build","vite build"),t.pkg.addScript("preview","vite preview"),t.pkg.set("type","module"));let i=`${s?"import react from '@vitejs/plugin-react-swc'":"import react from '@vitejs/plugin-react'"}
154
154
  import { defineConfig } from 'vite'
155
155
 
156
156
  export default defineConfig({
@@ -261,7 +261,7 @@ $spacing-unit: 8px;
261
261
  align-items: center;
262
262
  justify-content: center;
263
263
  }
264
- `);break;default:break}}});var js={};S(js,{uiConfigurator:()=>Ol});import{appendFile as jl}from"node:fs/promises";import Ae from"node:path";var Bl,Ol,Bs=D(()=>{"use strict";O();Bl={shadcn:{"@radix-ui/react-slot":"^1.1.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","tailwind-merge":"^2.6.0"},radix:{"@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-dropdown-menu":"^2.1.0","@radix-ui/react-slot":"^1.1.0"},heroui:{"@heroui/react":"^2.7.0","framer-motion":"^12.0.0"},mui:{"@mui/material":"^7.3.7","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0"},antd:{antd:"^5.23.0"},chakra:{"@chakra-ui/react":"^3.3.0","@emotion/react":"^11.14.0"},"styled-components":{"styled-components":"^6.1.14"}},Ol=async t=>{if(t.selections.ui==="none")return;let e=Bl[t.selections.ui];if(e){if(t.pkg)for(let[r,n]of Object.entries(e))t.pkg.add(r,n);if(t.selections.ui==="heroui"){let n=t.selections.variant.startsWith("ts")?"ts":"js";await b(Ae.join(t.projectPath,`src/hero.${n}`),`import { heroui } from "@heroui/react";
264
+ `);break;default:break}}});var js={};S(js,{uiConfigurator:()=>Ol});import{appendFile as jl}from"node:fs/promises";import Ae from"node:path";var Bl,Ol,Bs=D(()=>{"use strict";O();Bl={shadcn:{"@radix-ui/react-slot":"^1.1.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","tailwind-merge":"^2.6.0"},radix:{"@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-dropdown-menu":"^2.1.0","@radix-ui/react-slot":"^1.1.0"},heroui:{"@heroui/react":"^2.7.0","framer-motion":"^11.11.11"},mui:{"@mui/material":"^7.3.7","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0"},antd:{antd:"^5.23.0"},chakra:{"@chakra-ui/react":"^3.3.0","@emotion/react":"^11.14.0"},"styled-components":{"styled-components":"^6.1.14"}},Ol=async t=>{if(t.selections.ui==="none")return;let e=Bl[t.selections.ui];if(e){if(t.pkg)for(let[r,n]of Object.entries(e))t.pkg.add(r,n);if(t.selections.ui==="heroui"){let n=t.selections.variant.startsWith("ts")?"ts":"js";await b(Ae.join(t.projectPath,`src/hero.${n}`),`import { heroui } from "@heroui/react";
265
265
 
266
266
  export default heroui();`)}if(t.selections.ui==="shadcn"){let r=t.selections.variant.startsWith("ts"),n=r?"ts":"js";await x(Ae.join(t.projectPath,"src/lib")),await b(Ae.join(t.projectPath,"src/lib",`utils.${n}`),`import { clsx, type ClassValue } from "clsx"
267
267
  import { twMerge } from "tailwind-merge"
@@ -392,7 +392,7 @@ export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
392
392
 
393
393
  export const useAppDispatch = useDispatch
394
394
  export const useAppSelector = useSelector
395
- `;await s(i.join(t.projectPath,"src/store",`hooks.${n}`),l),await s(i.join(t.projectPath,"src/store",`hooks.${n}`),l)}}}});var Us={};S(Us,{routingConfigurator:()=>Gl});var Gl,Gs=D(()=>{"use strict";Gl=async t=>{let{framework:e,routing:r}=t.selections;r==="react-router"?t.pkg&&t.pkg.add("react-router-dom","^7.1.0"):r==="tanstack-router"&&t.pkg&&(t.pkg.add("@tanstack/react-router","^1.95.0"),t.pkg.add("@tanstack/react-router-devtools","^1.95.0"))}});var Vs={};S(Vs,{dataFetchingConfigurator:()=>Vl});var Vl,zs=D(()=>{"use strict";Vl=async t=>{let{dataFetching:e,framework:r}=t.selections;!e||e==="none"||e==="fetch"||t.pkg&&(e==="tanstack-query"&&r==="react"?(t.pkg.add("@tanstack/react-query","^5.60.0"),t.pkg.add("@tanstack/react-query-devtools","^5.60.0")):e==="axios"&&t.pkg.add("axios","^1.7.0"))}});var Ws={};S(Ws,{animationConfigurator:()=>Wl});var zl,Wl,Hs=D(()=>{"use strict";Ft();zl={"framer-motion":{"framer-motion":"^12.0.0"},gsap:{gsap:"^3.14.2","@gsap/react":"^2.1.2"},"react-spring":{"@react-spring/web":"^9.7.0"},"auto-animate":{"@formkit/auto-animate":"^0.8.2"}},Wl=Pe("animation",zl)});var qs={};S(qs,{structureConfigurator:()=>ql});import Hl from"node:path";var ql,Js=D(()=>{"use strict";O();ql=async t=>{let e=[];switch(t.selections.structure){case"feature-based":e.push("src/app","src/features","src/shared/components","src/shared/hooks","src/shared/utils","src/shared/types");break;case"fsd":e.push("src/app","src/pages","src/widgets","src/features","src/entities","src/shared/api","src/shared/config","src/shared/lib","src/shared/ui");break;case"atomic":e.push("src/components/atoms","src/components/molecules","src/components/organisms","src/components/templates","src/hooks","src/utils");break;case"clean":e.push("src/domain/entities","src/domain/usecases","src/application/services","src/infrastructure/api","src/infrastructure/storage","src/presentation/components","src/presentation/pages","src/presentation/hooks");break;case"mvc":e.push("src/models","src/views/components","src/views/pages","src/controllers","src/services","src/utils");break;case"simple":default:e.push("src/components","src/hooks","src/utils","src/assets");break}for(let r of e){let n=Hl.join(t.projectPath,r);await x(n)}}});var Ks={};S(Ks,{mandatoryConfigurator:()=>Yl});import{exec as Jl}from"node:child_process";import Et from"node:path";import{promisify as Kl}from"node:util";var Xl,Yl,Xs=D(()=>{"use strict";O();Xl=Kl(Jl),Yl=async t=>{let e=await ee(t),{projectName:r}=t.selections;t.pkg&&(t.pkg.add("@vite-pwa/assets-generator","^0.2.0",!0),t.pkg.add("workbox-window","^7.1.0"));let n={name:r,short_name:r,theme_color:"#ffffff",background_color:"#ffffff",display:"standalone",start_url:"/",icons:[{src:"/icon-192.png",sizes:"192x192",type:"image/png"},{src:"/icon-512.png",sizes:"512x512",type:"image/png"}]};await x(Et.join(t.projectPath,"public")),await b(Et.join(t.projectPath,"public","manifest.json"),JSON.stringify(n,null,2)),await b(Et.join(t.projectPath,".gitignore"),`# Dependencies
395
+ `;await s(i.join(t.projectPath,"src/store",`hooks.${n}`),l),await s(i.join(t.projectPath,"src/store",`hooks.${n}`),l)}}}});var Us={};S(Us,{routingConfigurator:()=>Vl});var Vl,Vs=D(()=>{"use strict";Vl=async t=>{let{framework:e,routing:r}=t.selections;r==="react-router"?t.pkg&&t.pkg.add("react-router-dom","^7.1.0"):r==="tanstack-router"&&t.pkg&&(t.pkg.add("@tanstack/react-router","^1.95.0"),t.pkg.add("@tanstack/react-router-devtools","^1.95.0"))}});var Gs={};S(Gs,{dataFetchingConfigurator:()=>Gl});var Gl,zs=D(()=>{"use strict";Gl=async t=>{let{dataFetching:e,framework:r}=t.selections;!e||e==="none"||e==="fetch"||t.pkg&&(e==="tanstack-query"&&r==="react"?(t.pkg.add("@tanstack/react-query","^5.60.0"),t.pkg.add("@tanstack/react-query-devtools","^5.60.0")):e==="axios"&&t.pkg.add("axios","^1.7.0"))}});var Ws={};S(Ws,{animationConfigurator:()=>Wl});var zl,Wl,Hs=D(()=>{"use strict";Ft();zl={"framer-motion":{"framer-motion":"^12.0.0"},gsap:{gsap:"^3.14.2","@gsap/react":"^2.1.2"},"react-spring":{"@react-spring/web":"^9.7.0"},"auto-animate":{"@formkit/auto-animate":"^0.8.2"}},Wl=Pe("animation",zl)});var qs={};S(qs,{structureConfigurator:()=>ql});import Hl from"node:path";var ql,Js=D(()=>{"use strict";O();ql=async t=>{let e=[];switch(t.selections.structure){case"feature-based":e.push("src/app","src/features","src/shared/components","src/shared/hooks","src/shared/utils","src/shared/types");break;case"fsd":e.push("src/app","src/pages","src/widgets","src/features","src/entities","src/shared/api","src/shared/config","src/shared/lib","src/shared/ui");break;case"atomic":e.push("src/components/atoms","src/components/molecules","src/components/organisms","src/components/templates","src/hooks","src/utils");break;case"clean":e.push("src/domain/entities","src/domain/usecases","src/application/services","src/infrastructure/api","src/infrastructure/storage","src/presentation/components","src/presentation/pages","src/presentation/hooks");break;case"mvc":e.push("src/models","src/views/components","src/views/pages","src/controllers","src/services","src/utils");break;case"simple":default:e.push("src/components","src/hooks","src/utils","src/assets");break}for(let r of e){let n=Hl.join(t.projectPath,r);await x(n)}}});var Ks={};S(Ks,{mandatoryConfigurator:()=>Yl});import{exec as Jl}from"node:child_process";import Et from"node:path";import{promisify as Kl}from"node:util";var Xl,Yl,Xs=D(()=>{"use strict";O();Xl=Kl(Jl),Yl=async t=>{let e=await ee(t),{projectName:r}=t.selections,n={name:r,short_name:r,theme_color:"#ffffff",background_color:"#ffffff",display:"standalone",start_url:"/",icons:[{src:"/icon-192.png",sizes:"192x192",type:"image/png"},{src:"/icon-512.png",sizes:"512x512",type:"image/png"}]};await x(Et.join(t.projectPath,"public")),await b(Et.join(t.projectPath,"public","manifest.json"),JSON.stringify(n,null,2)),await b(Et.join(t.projectPath,".gitignore"),`# Dependencies
396
396
  node_modules
397
397
  .pnp
398
398
  .pnp.js
@@ -489,7 +489,7 @@ npm run dev
489
489
  ## License
490
490
 
491
491
  MIT
492
- `;await b(Et.join(t.projectPath,"README.md"),o);try{await Xl('git init && git add -A && git commit -m "Initial commit from NEXO"',{cwd:t.projectPath})}catch{}}});var Ys={};S(Ys,{aiInstructionsConfigurator:()=>lp});import we from"path";var Ge,Zl,Ql,ep,tp,rp,np,ip,sp,op,ap,up,cp,lp,Zs=D(()=>{"use strict";de();Ge=(t,e)=>`# ${e} - ${t.projectName}
492
+ `;await b(Et.join(t.projectPath,"README.md"),o);try{await Xl('git init && git add -A && git commit -m "Initial commit from NEXO"',{cwd:t.projectPath})}catch{}}});var Ys={};S(Ys,{aiInstructionsConfigurator:()=>lp});import we from"path";var Ve,Zl,Ql,ep,tp,rp,np,ip,sp,op,ap,up,cp,lp,Zs=D(()=>{"use strict";de();Ve=(t,e)=>`# ${e} - ${t.projectName}
493
493
 
494
494
  ## Project Overview
495
495
  This is a **${t.framework}** application built with modern best practices and tools.
@@ -986,7 +986,7 @@ ${t.structure}
986
986
  dev: "npm run dev"
987
987
  build: "npm run build"
988
988
  ${t.hasTesting?'test: "npm test"':""}
989
- `,np=t=>Ge(t,"Claude Development Instructions"),ip=t=>Ge(t,"Gemini Development Instructions"),sp=t=>Ge(t,"OpenAI Codex Instructions"),op=t=>Ge(t,"AI Development Instructions"),ap=t=>`---
989
+ `,np=t=>Ve(t,"Claude Development Instructions"),ip=t=>Ve(t,"Gemini Development Instructions"),sp=t=>Ve(t,"OpenAI Codex Instructions"),op=t=>Ve(t,"AI Development Instructions"),ap=t=>`---
990
990
  description: React & UI Best Practices
991
991
  globs: ["**/*.tsx", "**/*.jsx"]
992
992
  ---
@@ -1023,7 +1023,7 @@ globs: ["*"]
1023
1023
  ${t.structure==="feature-based"?"Feature-based: src/features/[feature]":""}
1024
1024
  ${t.structure==="fsd"?"FSD Layers: app/pages/widgets/features/entities/shared":""}
1025
1025
  ${t.structure==="simple"?"Simple: components/hooks/utils":""}
1026
- `,lp=async({projectPath:t,selections:e})=>{let r=e.aiInstructions||[],n={projectName:e.projectName||we.basename(t),framework:e.framework,variant:e.variant,styling:e.styling,ui:e.ui||"none",forms:e.forms||"none",state:e.state||"none",routing:e.routing||"none",dataFetching:e.dataFetching||"none",structure:e.structure||"feature-based",icons:e.icons||"none",hasTesting:e.testing!==void 0&&e.testing!=="none",language:"en"},s=we.join(t,".nexo");if(await x(s),await b(we.join(s,"ai-context.md"),Ge(n,"Project Context")),r.length===0)return;let o={cursor:{file:".cursorrules",generate:Zl},"cursor-modular":{isModular:!0,generators:{".cursor/rules/react.mdc":ap,".cursor/rules/typescript.mdc":up,".cursor/rules/general.mdc":cp}},windsurf:{file:".windsurfrules",generate:Ql},cline:{file:".clinerules",generate:ep},"roo-cline":{file:".roo-clinerules",generate:tp},aider:{file:".aider.conf.yml",generate:rp},claude:{file:"CLAUDE_INSTRUCTIONS.md",generate:np},gemini:{file:"GEMINI_INSTRUCTIONS.md",generate:ip},codex:{file:"CODEX_INSTRUCTIONS.md",generate:sp},universal:{file:"AI_INSTRUCTIONS.md",generate:op}};for(let i of r){let a=o[i];if(a)if(a.isModular&&a.generators)for(let[c,l]of Object.entries(a.generators))await x(we.dirname(we.join(t,c))),await b(we.join(t,c),l(n));else a.file&&a.generate&&await b(we.join(t,a.file),a.generate(n))}}});var Qs={};S(Qs,{testingConfigurator:()=>pp});var pp,eo=D(()=>{"use strict";pp=async t=>{let{testing:e}=t.selections;!e||e==="none"||t.pkg&&(e==="vitest"?(t.pkg.add("vitest","^3.0.0",!0),t.pkg.add("@testing-library/react","^16.0.0",!0),t.pkg.add("@testing-library/dom","^10.0.0",!0),t.pkg.add("jsdom","^26.0.0",!0),t.pkg.addScript("test","vitest"),t.pkg.addScript("test:ui","vitest --ui"),t.pkg.addScript("test:run","vitest run")):e==="jest"&&(t.pkg.add("jest","^29.7.0",!0),t.pkg.add("jest-environment-jsdom","^29.7.0",!0),t.pkg.add("@testing-library/react","^16.0.0",!0),t.pkg.add("@testing-library/dom","^10.0.0",!0),t.pkg.add("@types/jest","^29.5.0",!0),t.pkg.add("ts-jest","^29.1.0",!0),t.pkg.addScript("test","jest"),t.pkg.addScript("test:watch","jest --watch")))}});var to={};S(to,{lintingConfigurator:()=>dp});var dp,ro=D(()=>{"use strict";dp=async t=>{let{linting:e}=t.selections;!e||e==="none"||t.pkg&&(e==="eslint-prettier"?(t.pkg.add("eslint","^9.0.0",!0),t.pkg.add("prettier","^3.4.0",!0),t.pkg.add("eslint-plugin-react-hooks","^5.0.0",!0),t.pkg.add("eslint-plugin-react-refresh","^0.4.0",!0),t.pkg.addScript("lint","eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"),t.pkg.addScript("format",'prettier --write "src/**/*.{ts,tsx,css,json}"')):e==="biome"&&(t.pkg.add("@biomejs/biome","^1.9.0",!0),t.pkg.addScript("lint","biome lint ."),t.pkg.addScript("format","biome format . --write"),t.pkg.addScript("check","biome check --apply .")))}});var Kr,Jr,io,no,so,oo,ao=D(()=>{"use strict";Kr={framework:{loader:()=>Promise.resolve().then(()=>(Ss(),xs)),exportName:"frameworkConfigurator"},variant:{loader:()=>Promise.resolve().then(()=>(ks(),$s)),exportName:"variantConfigurator",dependencies:["framework"]},language:{loader:()=>Promise.resolve().then(()=>(Ps(),As)),exportName:"languageConfigurator",dependencies:["variant"]},styling:{loader:()=>Promise.resolve().then(()=>(_s(),Ts)),exportName:"stylingConfigurator",dependencies:["language"]},ui:{loader:()=>Promise.resolve().then(()=>(Bs(),js)),exportName:"uiConfigurator",dependencies:["styling"],condition:t=>t.selections.ui!=="none"},icons:{loader:()=>Promise.resolve().then(()=>(Is(),Os)),exportName:"iconsConfigurator",dependencies:["language"],condition:t=>t.selections.icons!=="none"},forms:{loader:()=>Promise.resolve().then(()=>(Ns(),Rs)),exportName:"formsConfigurator",dependencies:["language"],condition:t=>t.selections.forms!=="none"},state:{loader:()=>Promise.resolve().then(()=>(Ls(),Ms)),exportName:"stateConfigurator",dependencies:["language"],condition:t=>t.selections.state!=="none"},routing:{loader:()=>Promise.resolve().then(()=>(Gs(),Us)),exportName:"routingConfigurator",dependencies:["language"],condition:t=>t.selections.routing!=="none"},dataFetching:{loader:()=>Promise.resolve().then(()=>(zs(),Vs)),exportName:"dataFetchingConfigurator",dependencies:["language"],condition:t=>t.selections.dataFetching!=="none"},animation:{loader:()=>Promise.resolve().then(()=>(Hs(),Ws)),exportName:"animationConfigurator",dependencies:["language"],condition:t=>t.selections.animation!==void 0&&t.selections.animation!=="none"},structure:{loader:()=>Promise.resolve().then(()=>(Js(),qs)),exportName:"structureConfigurator",dependencies:["language"]},mandatory:{loader:()=>Promise.resolve().then(()=>(Xs(),Ks)),exportName:"mandatoryConfigurator",dependencies:["styling","structure"]},"ai-instructions":{loader:()=>Promise.resolve().then(()=>(Zs(),Ys)),exportName:"aiInstructionsConfigurator",dependencies:["language"],condition:t=>{let e=t.selections.aiInstructions;return e!==void 0&&e.length>0}},testing:{loader:()=>Promise.resolve().then(()=>(eo(),Qs)),exportName:"testingConfigurator",dependencies:["mandatory"],condition:t=>t.selections.testing!==void 0&&t.selections.testing!=="none"},linting:{loader:()=>Promise.resolve().then(()=>(ro(),to)),exportName:"lintingConfigurator",dependencies:["mandatory"],condition:t=>t.selections.linting!==void 0&&t.selections.linting!=="none"}},Jr=new Map,io=async(t,e={})=>{let r=Kr[t];if(!r)return console.warn(`Unknown configurator: ${t}`),null;let{cache:n=!0}=e,s=t;if(n&&Jr.has(s)){let o=Jr.get(s);return no(o,r.exportName||t)}try{let o=await r.loader();return n&&Jr.set(s,o),no(o,r.exportName||t)}catch(o){return console.error(`Failed to load configurator "${t}":`,o),null}},no=(t,e)=>{if(t[e])return t[e];if(t.default)return t.default;let r=`${e}Configurator`;return t[r]?t[r]:null},so=t=>{let e=[];for(let[r,n]of Object.entries(Kr))n.condition&&!n.condition(t)||e.push(r);return e},oo=t=>{let e=[],r=new Set,n=new Set,s=o=>{if(r.has(o))return;if(n.has(o))throw new Error(`Circular dependency detected: ${o}`);n.add(o);let i=Kr[o];if(i?.dependencies)for(let a of i.dependencies)t.includes(a)&&s(a);n.delete(o),r.add(o),e.push(o)};for(let o of t)s(o);return e}});import Xr from"node:path";var Ve,Yr=D(()=>{"use strict";O();Ve=async(t,e)=>{let r=Xr.join(t.projectPath,"src"),{variant:n,styling:s,ui:o,state:i,routing:a,dataFetching:c}=t.selections,l=n.startsWith("ts"),d=["import { StrictMode } from 'react'","import { createRoot } from 'react-dom/client'",`import './index.${s==="sass"?"scss":"css"}'`,`import App from './App.${e}'`],m=[];i==="redux"&&(d.push("import { Provider } from 'react-redux'"),d.push("import { store } from './store/store'"),m.push({start:"<Provider store={store}>",end:"</Provider>"})),c==="tanstack-query"&&(d.push("import { QueryClient, QueryClientProvider } from '@tanstack/react-query'"),m.push({start:"<QueryClientProvider client={queryClient}>",end:"</QueryClientProvider>"})),o==="heroui"?(d.push("import { HeroUIProvider } from '@heroui/react'"),m.push({start:"<HeroUIProvider>",end:"</HeroUIProvider>"})):o==="chakra"?(d.push("import { ChakraProvider, defaultSystem } from '@chakra-ui/react'"),m.push({start:"<ChakraProvider value={defaultSystem}>",end:"</ChakraProvider>"})):o==="antd"?(d.push("import { ConfigProvider } from 'antd'"),m.push({start:"<ConfigProvider>",end:"</ConfigProvider>"})):o==="styled-components"&&(d.push("import { ThemeProvider } from 'styled-components'"),d.push("const theme = {}"),m.push({start:"<ThemeProvider theme={theme}>",end:"</ThemeProvider>"}));let y="",C="<App />";a==="react-router"?(d.push("import { createBrowserRouter, RouterProvider } from 'react-router-dom'"),y=`
1026
+ `,lp=async({projectPath:t,selections:e})=>{let r=e.aiInstructions||[],n={projectName:e.projectName||we.basename(t),framework:e.framework,variant:e.variant,styling:e.styling,ui:e.ui||"none",forms:e.forms||"none",state:e.state||"none",routing:e.routing||"none",dataFetching:e.dataFetching||"none",structure:e.structure||"feature-based",icons:e.icons||"none",hasTesting:e.testing!==void 0&&e.testing!=="none",language:"en"},s=we.join(t,".nexo");if(await x(s),await b(we.join(s,"ai-context.md"),Ve(n,"Project Context")),r.length===0)return;let o={cursor:{file:".cursorrules",generate:Zl},"cursor-modular":{isModular:!0,generators:{".cursor/rules/react.mdc":ap,".cursor/rules/typescript.mdc":up,".cursor/rules/general.mdc":cp}},windsurf:{file:".windsurfrules",generate:Ql},cline:{file:".clinerules",generate:ep},"roo-cline":{file:".roo-clinerules",generate:tp},aider:{file:".aider.conf.yml",generate:rp},claude:{file:"CLAUDE_INSTRUCTIONS.md",generate:np},gemini:{file:"GEMINI_INSTRUCTIONS.md",generate:ip},codex:{file:"CODEX_INSTRUCTIONS.md",generate:sp},universal:{file:"AI_INSTRUCTIONS.md",generate:op}};for(let i of r){let a=o[i];if(a)if(a.isModular&&a.generators)for(let[c,l]of Object.entries(a.generators))await x(we.dirname(we.join(t,c))),await b(we.join(t,c),l(n));else a.file&&a.generate&&await b(we.join(t,a.file),a.generate(n))}}});var Qs={};S(Qs,{testingConfigurator:()=>pp});var pp,eo=D(()=>{"use strict";pp=async t=>{let{testing:e}=t.selections;!e||e==="none"||t.pkg&&(e==="vitest"?(t.pkg.add("vitest","^3.0.0",!0),t.pkg.add("@testing-library/react","^16.0.0",!0),t.pkg.add("@testing-library/dom","^10.0.0",!0),t.pkg.add("jsdom","^26.0.0",!0),t.pkg.addScript("test","vitest"),t.pkg.addScript("test:ui","vitest --ui"),t.pkg.addScript("test:run","vitest run")):e==="jest"&&(t.pkg.add("jest","^29.7.0",!0),t.pkg.add("jest-environment-jsdom","^29.7.0",!0),t.pkg.add("@testing-library/react","^16.0.0",!0),t.pkg.add("@testing-library/dom","^10.0.0",!0),t.pkg.add("@types/jest","^29.5.0",!0),t.pkg.add("ts-jest","^29.1.0",!0),t.pkg.addScript("test","jest"),t.pkg.addScript("test:watch","jest --watch")))}});var to={};S(to,{lintingConfigurator:()=>dp});var dp,ro=D(()=>{"use strict";dp=async t=>{let{linting:e}=t.selections;!e||e==="none"||t.pkg&&(e==="eslint-prettier"?(t.pkg.add("eslint","^9.0.0",!0),t.pkg.add("prettier","^3.4.0",!0),t.pkg.add("eslint-plugin-react-hooks","^5.0.0",!0),t.pkg.add("eslint-plugin-react-refresh","^0.4.0",!0),t.pkg.addScript("lint","eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"),t.pkg.addScript("format",'prettier --write "src/**/*.{ts,tsx,css,json}"')):e==="biome"&&(t.pkg.add("@biomejs/biome","^1.9.0",!0),t.pkg.addScript("lint","biome lint ."),t.pkg.addScript("format","biome format . --write"),t.pkg.addScript("check","biome check --apply .")))}});var Kr,Jr,io,no,so,oo,ao=D(()=>{"use strict";Kr={framework:{loader:()=>Promise.resolve().then(()=>(Ss(),xs)),exportName:"frameworkConfigurator"},variant:{loader:()=>Promise.resolve().then(()=>(ks(),$s)),exportName:"variantConfigurator",dependencies:["framework"]},language:{loader:()=>Promise.resolve().then(()=>(Ps(),As)),exportName:"languageConfigurator",dependencies:["variant"]},styling:{loader:()=>Promise.resolve().then(()=>(_s(),Ts)),exportName:"stylingConfigurator",dependencies:["language"]},ui:{loader:()=>Promise.resolve().then(()=>(Bs(),js)),exportName:"uiConfigurator",dependencies:["styling"],condition:t=>t.selections.ui!=="none"},icons:{loader:()=>Promise.resolve().then(()=>(Is(),Os)),exportName:"iconsConfigurator",dependencies:["language"],condition:t=>t.selections.icons!=="none"},forms:{loader:()=>Promise.resolve().then(()=>(Ns(),Rs)),exportName:"formsConfigurator",dependencies:["language"],condition:t=>t.selections.forms!=="none"},state:{loader:()=>Promise.resolve().then(()=>(Ls(),Ms)),exportName:"stateConfigurator",dependencies:["language"],condition:t=>t.selections.state!=="none"},routing:{loader:()=>Promise.resolve().then(()=>(Vs(),Us)),exportName:"routingConfigurator",dependencies:["language"],condition:t=>t.selections.routing!=="none"},dataFetching:{loader:()=>Promise.resolve().then(()=>(zs(),Gs)),exportName:"dataFetchingConfigurator",dependencies:["language"],condition:t=>t.selections.dataFetching!=="none"},animation:{loader:()=>Promise.resolve().then(()=>(Hs(),Ws)),exportName:"animationConfigurator",dependencies:["language"],condition:t=>t.selections.animation!==void 0&&t.selections.animation!=="none"},structure:{loader:()=>Promise.resolve().then(()=>(Js(),qs)),exportName:"structureConfigurator",dependencies:["language"]},mandatory:{loader:()=>Promise.resolve().then(()=>(Xs(),Ks)),exportName:"mandatoryConfigurator",dependencies:["styling","structure"]},"ai-instructions":{loader:()=>Promise.resolve().then(()=>(Zs(),Ys)),exportName:"aiInstructionsConfigurator",dependencies:["language"],condition:t=>{let e=t.selections.aiInstructions;return e!==void 0&&e.length>0}},testing:{loader:()=>Promise.resolve().then(()=>(eo(),Qs)),exportName:"testingConfigurator",dependencies:["mandatory"],condition:t=>t.selections.testing!==void 0&&t.selections.testing!=="none"},linting:{loader:()=>Promise.resolve().then(()=>(ro(),to)),exportName:"lintingConfigurator",dependencies:["mandatory"],condition:t=>t.selections.linting!==void 0&&t.selections.linting!=="none"}},Jr=new Map,io=async(t,e={})=>{let r=Kr[t];if(!r)return console.warn(`Unknown configurator: ${t}`),null;let{cache:n=!0}=e,s=t;if(n&&Jr.has(s)){let o=Jr.get(s);return no(o,r.exportName||t)}try{let o=await r.loader();return n&&Jr.set(s,o),no(o,r.exportName||t)}catch(o){return console.error(`Failed to load configurator "${t}":`,o),null}},no=(t,e)=>{if(t[e])return t[e];if(t.default)return t.default;let r=`${e}Configurator`;return t[r]?t[r]:null},so=t=>{let e=[];for(let[r,n]of Object.entries(Kr))n.condition&&!n.condition(t)||e.push(r);return e},oo=t=>{let e=[],r=new Set,n=new Set,s=o=>{if(r.has(o))return;if(n.has(o))throw new Error(`Circular dependency detected: ${o}`);n.add(o);let i=Kr[o];if(i?.dependencies)for(let a of i.dependencies)t.includes(a)&&s(a);n.delete(o),r.add(o),e.push(o)};for(let o of t)s(o);return e}});import Xr from"node:path";var Ge,Yr=D(()=>{"use strict";O();Ge=async(t,e)=>{let r=Xr.join(t.projectPath,"src"),{variant:n,styling:s,ui:o,state:i,routing:a,dataFetching:c}=t.selections,l=n.startsWith("ts"),d=["import { StrictMode } from 'react'","import { createRoot } from 'react-dom/client'",`import './index.${s==="sass"?"scss":"css"}'`,`import App from './App.${e}'`],m=[];i==="redux"&&(d.push("import { Provider } from 'react-redux'"),d.push("import { store } from './store/store'"),m.push({start:"<Provider store={store}>",end:"</Provider>"})),c==="tanstack-query"&&(d.push("import { QueryClient, QueryClientProvider } from '@tanstack/react-query'"),m.push({start:"<QueryClientProvider client={queryClient}>",end:"</QueryClientProvider>"})),o==="heroui"?(d.push("import { HeroUIProvider } from '@heroui/react'"),m.push({start:"<HeroUIProvider>",end:"</HeroUIProvider>"})):o==="chakra"?(d.push("import { ChakraProvider, defaultSystem } from '@chakra-ui/react'"),m.push({start:"<ChakraProvider value={defaultSystem}>",end:"</ChakraProvider>"})):o==="antd"?(d.push("import { ConfigProvider } from 'antd'"),m.push({start:"<ConfigProvider>",end:"</ConfigProvider>"})):o==="styled-components"&&(d.push("import { ThemeProvider } from 'styled-components'"),d.push("const theme = {}"),m.push({start:"<ThemeProvider theme={theme}>",end:"</ThemeProvider>"}));let y="",C="<App />";a==="react-router"?(d.push("import { createBrowserRouter, RouterProvider } from 'react-router-dom'"),y=`
1027
1027
  const router = createBrowserRouter([
1028
1028
  {
1029
1029
  path: "*",
@@ -1398,7 +1398,7 @@ code {
1398
1398
  color: #525252;
1399
1399
  font-size: 0.875rem;
1400
1400
  }
1401
- `,St=async t=>{let{styling:e}=t.selections;if(e!=="tailwind"){let r=co.join(t.projectPath,"src");await b(co.join(r,"App.css"),gp())}}});import Dp from"node:path";var lo,po=D(()=>{"use strict";O();Yr();Qr();Yr();en();Qr();lo=async t=>{let{variant:e}=t.selections,n=e.startsWith("ts")?"tsx":"jsx",s=Dp.join(t.projectPath,"src");await x(s),await Ve(t,n),await Zr(t,n)}});import Cp from"node:path";function yp(t){return{tailwind:"Tailwind CSS",sass:"Sass/SCSS","css-modules":"CSS Modules"}[t]||t}function vp(t){return{shadcn:"shadcn/ui",heroui:"HeroUI",chakra:"Chakra UI",antd:"Ant Design"}[t]||t}function bp(t){return{redux:"Redux Toolkit",zustand:"Zustand",jotai:"Jotai"}[t]||t}function wp(t){return{"react-router":"React Router","tanstack-router":"TanStack Router"}[t]||t}function Fp(t){return{"tanstack-query":"TanStack Query",axios:"Axios"}[t]||t}var mo,fo=D(()=>{"use strict";O();mo=async t=>{let{projectName:e,variant:r,styling:n,ui:s,state:o,routing:i,dataFetching:a,structure:c,testing:l}=t.selections,p="npm run",m=`# ${e}
1401
+ `,St=async t=>{let{styling:e}=t.selections;if(e!=="tailwind"){let r=co.join(t.projectPath,"src");await b(co.join(r,"App.css"),gp())}}});import Dp from"node:path";var lo,po=D(()=>{"use strict";O();Yr();Qr();Yr();en();Qr();lo=async t=>{let{variant:e}=t.selections,n=e.startsWith("ts")?"tsx":"jsx",s=Dp.join(t.projectPath,"src");await x(s),await Ge(t,n),await Zr(t,n)}});import Cp from"node:path";function yp(t){return{tailwind:"Tailwind CSS",sass:"Sass/SCSS","css-modules":"CSS Modules"}[t]||t}function vp(t){return{shadcn:"shadcn/ui",heroui:"HeroUI",chakra:"Chakra UI",antd:"Ant Design"}[t]||t}function bp(t){return{redux:"Redux Toolkit",zustand:"Zustand",jotai:"Jotai"}[t]||t}function wp(t){return{"react-router":"React Router","tanstack-router":"TanStack Router"}[t]||t}function Fp(t){return{"tanstack-query":"TanStack Query",axios:"Axios"}[t]||t}var mo,fo=D(()=>{"use strict";O();mo=async t=>{let{projectName:e,variant:r,styling:n,ui:s,state:o,routing:i,dataFetching:a,structure:c,testing:l}=t.selections,p="npm run",m=`# ${e}
1402
1402
 
1403
1403
  Built with **NEXO CLI** \u{1F680}
1404
1404
 
@@ -1444,24 +1444,24 @@ ${p} test:run
1444
1444
  `),m+=`## \u{1F4C4} License
1445
1445
 
1446
1446
  This project is licensed under the MIT License.
1447
- `,await b(Cp.join(t.projectPath,"README.md"),m)}});var ho={};S(ho,{createAppCss:()=>St,createEntryFiles:()=>lo,createMainFile:()=>Ve,createReadme:()=>mo,createStyles:()=>St,createWelcomePage:()=>xt});var go=D(()=>{"use strict";po();en();fo()});var Co={};S(Co,{executeSequential:()=>Do,runConfigurator:()=>$t,setup:()=>tn});import Ep from"node:path";var $t,Do,xp,Sp,tn,rn=D(()=>{"use strict";O();be();ao();$t=async(t,e)=>{let r=await io(t);r&&await r(e)},Do=async(t,e)=>{let r={framework:"Setting up framework",variant:"Configuring build variant",language:"Setting up language",styling:"Configuring styling",ui:"Adding UI library",forms:"Setting up forms",state:"Configuring state management",routing:"Setting up routing",dataFetching:"Configuring data fetching",icons:"Adding icon library",structure:"Creating project structure",animation:"Adding animation library",mandatory:"Adding mandatory features","ai-instructions":"Generating AI instructions"};for(let n of t){let s=r[n]||`Configuring ${n}`,o=ve(s);try{await $t(n,e),o.succeed()}catch(i){throw o.fail(),i}}},xp=async(t,e)=>{let r=["framework","variant","language"],n=["styling","forms","state","routing","dataFetching","icons","structure","animation","ai-instructions"],s=["ui"],o=["mandatory"],i=async(a,c=!1)=>{let l=a.filter(p=>t.includes(p));if(l.length!==0)if(c)await Promise.all(l.map(p=>$t(p,e)));else for(let p of l)await $t(p,e)};f.info(" Setting up project..."),await i(r,!1),await i(n,!0),await i(s,!1),await i(o,!1)},Sp=async t=>{let{createEntryFiles:e,createReadme:r,createStyles:n}=await Promise.resolve().then(()=>(go(),ho));await e(t),await n(t),await r(t)},tn=async({selections:t,targetDir:e,parallel:r=!0})=>{let n=ve("Initializing..."),s=Ep.resolve(e,t.projectName),{PackageManager:o}=await Promise.resolve().then(()=>(zr(),ds)),i=new o(s);n.stop();let a={projectPath:s,selections:t,pkg:i};await i.load(a),await pt(a);let c=so(a),l=oo(c);r?await xp(l,a):await Do(l,a);let p=ve("Creating project files");await Sp(a),p.succeed();let d=ve("Resolving latest dependencies...");await i.resolveLatestVersions(),d.succeed(),await i.save()}});var yo={};S(yo,{UserConfig:()=>kt,config:()=>$p});var kt,$p,vo=D(()=>{"use strict";kt=class t{static instance;isLearningMode=!1;isDebugMode=!1;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}},$p=kt.getInstance()});var So=A((Zh,xo)=>{xo.exports=Eo;Eo.sync=Ap;var wo=V("fs");function kp(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&t.substr(-s.length).toLowerCase()===s)return!0}return!1}function Fo(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:kp(e,r)}function Eo(t,e,r){wo.stat(t,function(n,s){r(n,n?!1:Fo(s,t,e))})}function Ap(t,e){return Fo(wo.statSync(t),t,e)}});var To=A((Qh,Po)=>{Po.exports=ko;ko.sync=Pp;var $o=V("fs");function ko(t,e,r){$o.stat(t,function(n,s){r(n,n?!1:Ao(s,e))})}function Pp(t,e){return Ao($o.statSync(t),e)}function Ao(t,e){return t.isFile()&&Tp(t,e)}function Tp(t,e){var r=t.mode,n=t.uid,s=t.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),p=a|c,d=r&l||r&c&&s===i||r&a&&n===o||r&p&&o===0;return d}});var jo=A((tg,_o)=>{var eg=V("fs"),At;process.platform==="win32"||global.TESTING_WINDOWS?At=So():At=To();_o.exports=sn;sn.sync=_p;function sn(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){sn(t,e||{},function(o,i){o?s(o):n(i)})})}At(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function _p(t,e){try{return At.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Lo=A((rg,Mo)=>{var Te=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Bo=V("path"),jp=Te?";":":",Oo=jo(),Io=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),Ro=(t,e)=>{let r=e.colon||jp,n=t.match(/\//)||Te&&t.match(/\\/)?[""]:[...Te?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Te?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Te?s.split(r):[""];return Te&&t.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:s}},No=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:o}=Ro(t,e),i=[],a=l=>new Promise((p,d)=>{if(l===n.length)return e.all&&i.length?p(i):d(Io(t));let m=n[l],y=/^".*"$/.test(m)?m.slice(1,-1):m,C=Bo.join(y,t),w=!y&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;p(c(w,l,0))}),c=(l,p,d)=>new Promise((m,y)=>{if(d===s.length)return m(a(p+1));let C=s[d];Oo(l+C,{pathExt:o},(w,$)=>{if(!w&&$)if(e.all)i.push(l+C);else return m(l+C);return m(c(l,p,d+1))})});return r?a(0).then(l=>r(null,l),r):a(0)},Bp=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=Ro(t,e),o=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=Bo.join(c,t),p=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+l:l;for(let d=0;d<n.length;d++){let m=p+n[d];try{if(Oo.sync(m,{pathExt:s}))if(e.all)o.push(m);else return m}catch{}}}if(e.all&&o.length)return o;if(e.nothrow)return null;throw Io(t)};Mo.exports=No;No.sync=Bp});var Go=A((ng,on)=>{"use strict";var Uo=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};on.exports=Uo;on.exports.default=Uo});var Ho=A((ig,Wo)=>{"use strict";var Vo=V("path"),Op=Lo(),Ip=Go();function zo(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(t.options.cwd)}catch{}let i;try{i=Op.sync(t.command,{path:r[Ip({env:r})],pathExt:e?Vo.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return i&&(i=Vo.resolve(s?t.options.cwd:"",i)),i}function Rp(t){return zo(t)||zo(t,!0)}Wo.exports=Rp});var qo=A((sg,un)=>{"use strict";var an=/([()\][%!^"`<>&|;, *?])/g;function Np(t){return t=t.replace(an,"^$1"),t}function Mp(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(an,"^$1"),e&&(t=t.replace(an,"^$1")),t}un.exports.command=Np;un.exports.argument=Mp});var Ko=A((og,Jo)=>{"use strict";Jo.exports=/^#!(.*)/});var Yo=A((ag,Xo)=>{"use strict";var Lp=Ko();Xo.exports=(t="")=>{let e=t.match(Lp);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var Qo=A((ug,Zo)=>{"use strict";var cn=V("fs"),Up=Yo();function Gp(t){let r=Buffer.alloc(150),n;try{n=cn.openSync(t,"r"),cn.readSync(n,r,0,150,0),cn.closeSync(n)}catch{}return Up(r.toString())}Zo.exports=Gp});var na=A((cg,ra)=>{"use strict";var Vp=V("path"),ea=Ho(),ta=qo(),zp=Qo(),Wp=process.platform==="win32",Hp=/\.(?:com|exe)$/i,qp=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Jp(t){t.file=ea(t);let e=t.file&&zp(t.file);return e?(t.args.unshift(t.file),t.command=e,ea(t)):t.file}function Kp(t){if(!Wp)return t;let e=Jp(t),r=!Hp.test(e);if(t.options.forceShell||r){let n=qp.test(e);t.command=Vp.normalize(t.command),t.command=ta.command(t.command),t.args=t.args.map(o=>ta.argument(o,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Xp(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:Kp(n)}ra.exports=Xp});var oa=A((lg,sa)=>{"use strict";var ln=process.platform==="win32";function pn(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Yp(t,e){if(!ln)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let o=ia(s,e);if(o)return r.call(t,"error",o)}return r.apply(t,arguments)}}function ia(t,e){return ln&&t===1&&!e.file?pn(e.original,"spawn"):null}function Zp(t,e){return ln&&t===1&&!e.file?pn(e.original,"spawnSync"):null}sa.exports={hookChildProcess:Yp,verifyENOENT:ia,verifyENOENTSync:Zp,notFoundError:pn}});var ca=A((pg,_e)=>{"use strict";var aa=V("child_process"),dn=na(),mn=oa();function ua(t,e,r){let n=dn(t,e,r),s=aa.spawn(n.command,n.args,n.options);return mn.hookChildProcess(s,n),s}function Qp(t,e,r){let n=dn(t,e,r),s=aa.spawnSync(n.command,n.args,n.options);return s.error=s.error||mn.verifyENOENTSync(s.status,n),s}_e.exports=ua;_e.exports.spawn=ua;_e.exports.sync=Qp;_e.exports._parse=dn;_e.exports._enoent=mn});var Ra=A((hD,Ia)=>{"use strict";var{PassThrough:Yd}=V("stream");Ia.exports=function(){var t=[],e=new Yd({objectMode:!0});return e.setMaxListeners(0),e.add=r,e.isEmpty=n,e.on("unpipe",s),Array.prototype.slice.call(arguments).forEach(r),e;function r(o){return Array.isArray(o)?(o.forEach(r),this):(t.push(o),o.once("end",s.bind(null,o)),o.once("error",e.emit.bind(e,"error")),o.pipe(e,{end:!1}),this)}function n(){return t.length==0}function s(o){t=t.filter(function(i){return i!==o}),!t.length&&e.readable&&e.end()}}});var Zn=M(Yn(),1),{program:Im,createCommand:Rm,createArgument:Nm,createOption:Mm,CommanderError:Lm,InvalidArgumentError:Um,InvalidOptionArgumentError:Gm,Command:Qn,Argument:Vm,Option:zm,Help:Wm}=Zn.default;import{createRequire as Em}from"node:module";var nn="my-nexo-app",bo={name:"create",description:"Create a new project",isDefault:!0,args:[{name:"[name]",description:"Project name"}],options:[{flags:"-d, --dir <directory>",description:"Target directory",defaultValue:"."},{flags:"--dry-run",description:"Preview changes without creating files"},{flags:"--preset <preset>",description:"Use a preset configuration (saas, dashboard, landing)"},{flags:"--parallel",description:"Use parallel execution for faster setup"},{flags:"--learn",description:"Enable educational mode with explanations"}],action:async(t,e)=>{let[r,n,s,o,{BANNER:i},{estimateBundleSize:a,formatSize:c},{PRESETS:l},{corePrompts:p,optionalFeaturesPrompt:d,optionalSubPrompts:m},{setup:y},{config:C},{cache:w},{detectProjectConfig:$,generateFileTree:ne,isDirEmpty:E,prefetchCommonPackages:Ee},{log:j}]=await Promise.all([Promise.resolve().then(()=>(ut(),at)),import("node:fs/promises"),import("node:path"),Promise.resolve().then(()=>M(Y(),1)),Promise.resolve().then(()=>(_i(),Ti)),Promise.resolve().then(()=>(Bi(),ji)),Promise.resolve().then(()=>(Ii(),Oi)),Promise.resolve().then(()=>(zi(),Vi)),Promise.resolve().then(()=>(rn(),Co)),Promise.resolve().then(()=>(vo(),yo)),Promise.resolve().then(()=>(Me(),rs)),Promise.resolve().then(()=>(O(),vt)),Promise.resolve().then(()=>(be(),Es))]);Ee();let fe=(L,U="\u{1F4A1} Educational Context")=>{C.isLearningMode&&r.note(L,U)};e.learn&&(C.isLearningMode=!0),e.silent&&(console.log=()=>{},console.error=()=>{},console.warn=()=>{}),j.dim(` NEXO is a next-generation, extensible CLI for scaffolding and orchestrating modern frontend projects
1448
- `),console.log(i),r.intro(o.bgCyan(o.black(" NEXO "))),await w.load();try{let L=t||await r.text({message:"Project name:",placeholder:nn,defaultValue:nn,validate:v=>{let ie=v||nn;if(!/^[a-z0-9-_]+$/i.test(ie))return"Project name can only contain letters, numbers, hyphens, and underscores"}});r.isCancel(L)&&(r.cancel("Operation cancelled."),process.exit(0));let U;if(e.preset){let v=e.preset.toLowerCase();Object.keys(l).includes(v)||(j.error(`Invalid preset: "${e.preset}". Available items: ${Object.keys(l).join(", ")}`),process.exit(1)),j.info(`Using preset: ${o.cyan(v)}`);let ie=l[v];U={projectName:L,framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"none",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"none",structure:"simple",hasCompiler:!1,hasSWC:!1,packageManager:"npm",optionalFeatures:[],...ie};let le=U.variant;U.hasCompiler=le.includes("compiler"),U.hasSWC=le.includes("swc"),U.language=le.startsWith("ts")?"typescript":"javascript"}else{let v={projectName:L},ie=s.resolve(e.dir,L);if(!await E(ie)){let F=await $(ie),G="";F&&(G=`
1447
+ `,await b(Cp.join(t.projectPath,"README.md"),m)}});var ho={};S(ho,{createAppCss:()=>St,createEntryFiles:()=>lo,createMainFile:()=>Ge,createReadme:()=>mo,createStyles:()=>St,createWelcomePage:()=>xt});var go=D(()=>{"use strict";po();en();fo()});var Co={};S(Co,{executeSequential:()=>Do,runConfigurator:()=>$t,setup:()=>tn});import Ep from"node:path";var $t,Do,xp,Sp,tn,rn=D(()=>{"use strict";O();be();ao();$t=async(t,e)=>{let r=await io(t);r&&await r(e)},Do=async(t,e)=>{let r={framework:"Setting up framework",variant:"Configuring build variant",language:"Setting up language",styling:"Configuring styling",ui:"Adding UI library",forms:"Setting up forms",state:"Configuring state management",routing:"Setting up routing",dataFetching:"Configuring data fetching",icons:"Adding icon library",structure:"Creating project structure",animation:"Adding animation library",mandatory:"Adding mandatory features","ai-instructions":"Generating AI instructions"};for(let n of t){let s=r[n]||`Configuring ${n}`,o=ve(s);try{await $t(n,e),o.succeed()}catch(i){throw o.fail(),i}}},xp=async(t,e)=>{let r=["framework","variant","language"],n=["styling","forms","state","routing","dataFetching","icons","structure","animation","ai-instructions"],s=["ui"],o=["mandatory"],i=async(a,c=!1)=>{let l=a.filter(p=>t.includes(p));if(l.length!==0)if(c)await Promise.all(l.map(p=>$t(p,e)));else for(let p of l)await $t(p,e)};f.info(" Setting up project..."),await i(r,!1),await i(n,!0),await i(s,!1),await i(o,!1)},Sp=async t=>{let{createEntryFiles:e,createReadme:r,createStyles:n}=await Promise.resolve().then(()=>(go(),ho));await e(t),await n(t),await r(t)},tn=async({selections:t,targetDir:e,parallel:r=!0})=>{let n=ve("Initializing..."),s=Ep.resolve(e,t.projectName),{PackageManager:o}=await Promise.resolve().then(()=>(zr(),ds)),i=new o(s);n.stop();let a={projectPath:s,selections:t,pkg:i};await i.load(a),await pt(a);let c=so(a),l=oo(c);r?await xp(l,a):await Do(l,a);let p=ve("Creating project files");await Sp(a),p.succeed();let d=ve("Resolving latest dependencies...");await i.resolveLatestVersions(),d.succeed(),await i.save()}});var yo={};S(yo,{UserConfig:()=>kt,config:()=>$p});var kt,$p,vo=D(()=>{"use strict";kt=class t{static instance;isLearningMode=!1;isDebugMode=!1;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}},$p=kt.getInstance()});var So=A((Zh,xo)=>{xo.exports=Eo;Eo.sync=Ap;var wo=G("fs");function kp(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&t.substr(-s.length).toLowerCase()===s)return!0}return!1}function Fo(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:kp(e,r)}function Eo(t,e,r){wo.stat(t,function(n,s){r(n,n?!1:Fo(s,t,e))})}function Ap(t,e){return Fo(wo.statSync(t),t,e)}});var To=A((Qh,Po)=>{Po.exports=ko;ko.sync=Pp;var $o=G("fs");function ko(t,e,r){$o.stat(t,function(n,s){r(n,n?!1:Ao(s,e))})}function Pp(t,e){return Ao($o.statSync(t),e)}function Ao(t,e){return t.isFile()&&Tp(t,e)}function Tp(t,e){var r=t.mode,n=t.uid,s=t.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),p=a|c,d=r&l||r&c&&s===i||r&a&&n===o||r&p&&o===0;return d}});var jo=A((tg,_o)=>{var eg=G("fs"),At;process.platform==="win32"||global.TESTING_WINDOWS?At=So():At=To();_o.exports=sn;sn.sync=_p;function sn(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){sn(t,e||{},function(o,i){o?s(o):n(i)})})}At(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function _p(t,e){try{return At.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Lo=A((rg,Mo)=>{var Te=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Bo=G("path"),jp=Te?";":":",Oo=jo(),Io=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),Ro=(t,e)=>{let r=e.colon||jp,n=t.match(/\//)||Te&&t.match(/\\/)?[""]:[...Te?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Te?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Te?s.split(r):[""];return Te&&t.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:s}},No=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:o}=Ro(t,e),i=[],a=l=>new Promise((p,d)=>{if(l===n.length)return e.all&&i.length?p(i):d(Io(t));let m=n[l],y=/^".*"$/.test(m)?m.slice(1,-1):m,C=Bo.join(y,t),w=!y&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;p(c(w,l,0))}),c=(l,p,d)=>new Promise((m,y)=>{if(d===s.length)return m(a(p+1));let C=s[d];Oo(l+C,{pathExt:o},(w,$)=>{if(!w&&$)if(e.all)i.push(l+C);else return m(l+C);return m(c(l,p,d+1))})});return r?a(0).then(l=>r(null,l),r):a(0)},Bp=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=Ro(t,e),o=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=Bo.join(c,t),p=!c&&/^\.[\\\/]/.test(t)?t.slice(0,2)+l:l;for(let d=0;d<n.length;d++){let m=p+n[d];try{if(Oo.sync(m,{pathExt:s}))if(e.all)o.push(m);else return m}catch{}}}if(e.all&&o.length)return o;if(e.nothrow)return null;throw Io(t)};Mo.exports=No;No.sync=Bp});var Vo=A((ng,on)=>{"use strict";var Uo=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};on.exports=Uo;on.exports.default=Uo});var Ho=A((ig,Wo)=>{"use strict";var Go=G("path"),Op=Lo(),Ip=Vo();function zo(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(t.options.cwd)}catch{}let i;try{i=Op.sync(t.command,{path:r[Ip({env:r})],pathExt:e?Go.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return i&&(i=Go.resolve(s?t.options.cwd:"",i)),i}function Rp(t){return zo(t)||zo(t,!0)}Wo.exports=Rp});var qo=A((sg,un)=>{"use strict";var an=/([()\][%!^"`<>&|;, *?])/g;function Np(t){return t=t.replace(an,"^$1"),t}function Mp(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(an,"^$1"),e&&(t=t.replace(an,"^$1")),t}un.exports.command=Np;un.exports.argument=Mp});var Ko=A((og,Jo)=>{"use strict";Jo.exports=/^#!(.*)/});var Yo=A((ag,Xo)=>{"use strict";var Lp=Ko();Xo.exports=(t="")=>{let e=t.match(Lp);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var Qo=A((ug,Zo)=>{"use strict";var cn=G("fs"),Up=Yo();function Vp(t){let r=Buffer.alloc(150),n;try{n=cn.openSync(t,"r"),cn.readSync(n,r,0,150,0),cn.closeSync(n)}catch{}return Up(r.toString())}Zo.exports=Vp});var na=A((cg,ra)=>{"use strict";var Gp=G("path"),ea=Ho(),ta=qo(),zp=Qo(),Wp=process.platform==="win32",Hp=/\.(?:com|exe)$/i,qp=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Jp(t){t.file=ea(t);let e=t.file&&zp(t.file);return e?(t.args.unshift(t.file),t.command=e,ea(t)):t.file}function Kp(t){if(!Wp)return t;let e=Jp(t),r=!Hp.test(e);if(t.options.forceShell||r){let n=qp.test(e);t.command=Gp.normalize(t.command),t.command=ta.command(t.command),t.args=t.args.map(o=>ta.argument(o,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Xp(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:Kp(n)}ra.exports=Xp});var oa=A((lg,sa)=>{"use strict";var ln=process.platform==="win32";function pn(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Yp(t,e){if(!ln)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let o=ia(s,e);if(o)return r.call(t,"error",o)}return r.apply(t,arguments)}}function ia(t,e){return ln&&t===1&&!e.file?pn(e.original,"spawn"):null}function Zp(t,e){return ln&&t===1&&!e.file?pn(e.original,"spawnSync"):null}sa.exports={hookChildProcess:Yp,verifyENOENT:ia,verifyENOENTSync:Zp,notFoundError:pn}});var ca=A((pg,_e)=>{"use strict";var aa=G("child_process"),dn=na(),mn=oa();function ua(t,e,r){let n=dn(t,e,r),s=aa.spawn(n.command,n.args,n.options);return mn.hookChildProcess(s,n),s}function Qp(t,e,r){let n=dn(t,e,r),s=aa.spawnSync(n.command,n.args,n.options);return s.error=s.error||mn.verifyENOENTSync(s.status,n),s}_e.exports=ua;_e.exports.spawn=ua;_e.exports.sync=Qp;_e.exports._parse=dn;_e.exports._enoent=mn});var Ra=A((hD,Ia)=>{"use strict";var{PassThrough:Yd}=G("stream");Ia.exports=function(){var t=[],e=new Yd({objectMode:!0});return e.setMaxListeners(0),e.add=r,e.isEmpty=n,e.on("unpipe",s),Array.prototype.slice.call(arguments).forEach(r),e;function r(o){return Array.isArray(o)?(o.forEach(r),this):(t.push(o),o.once("end",s.bind(null,o)),o.once("error",e.emit.bind(e,"error")),o.pipe(e,{end:!1}),this)}function n(){return t.length==0}function s(o){t=t.filter(function(i){return i!==o}),!t.length&&e.readable&&e.end()}}});var Zn=M(Yn(),1),{program:Im,createCommand:Rm,createArgument:Nm,createOption:Mm,CommanderError:Lm,InvalidArgumentError:Um,InvalidOptionArgumentError:Vm,Command:Qn,Argument:Gm,Option:zm,Help:Wm}=Zn.default;import{createRequire as Em}from"node:module";var nn="my-nexo-app",bo={name:"create",description:"Create a new project",isDefault:!0,args:[{name:"[name]",description:"Project name"}],options:[{flags:"-d, --dir <directory>",description:"Target directory",defaultValue:"."},{flags:"--dry-run",description:"Preview changes without creating files"},{flags:"--preset <preset>",description:"Use a preset configuration (saas, dashboard, landing)"},{flags:"--parallel",description:"Use parallel execution for faster setup"},{flags:"--learn",description:"Enable educational mode with explanations"}],action:async(t,e)=>{let[r,n,s,o,{BANNER:i},{estimateBundleSize:a,formatSize:c},{PRESETS:l},{corePrompts:p,optionalFeaturesPrompt:d,optionalSubPrompts:m},{setup:y},{config:C},{cache:w},{detectProjectConfig:$,generateFileTree:ne,isDirEmpty:E,prefetchCommonPackages:Ee},{log:j}]=await Promise.all([Promise.resolve().then(()=>(ut(),at)),import("node:fs/promises"),import("node:path"),Promise.resolve().then(()=>M(Y(),1)),Promise.resolve().then(()=>(_i(),Ti)),Promise.resolve().then(()=>(Bi(),ji)),Promise.resolve().then(()=>(Ii(),Oi)),Promise.resolve().then(()=>(zi(),Gi)),Promise.resolve().then(()=>(rn(),Co)),Promise.resolve().then(()=>(vo(),yo)),Promise.resolve().then(()=>(Me(),rs)),Promise.resolve().then(()=>(O(),vt)),Promise.resolve().then(()=>(be(),Es))]);Ee();let fe=(L,U="\u{1F4A1} Educational Context")=>{C.isLearningMode&&r.note(L,U)};e.learn&&(C.isLearningMode=!0),e.silent&&(console.log=()=>{},console.error=()=>{},console.warn=()=>{}),j.dim(` NEXO is a next-generation, extensible CLI for scaffolding and orchestrating modern frontend projects
1448
+ `),console.log(i),r.intro(o.bgCyan(o.black(" NEXO "))),await w.load();try{let L=t||await r.text({message:"Project name:",placeholder:nn,defaultValue:nn,validate:v=>{let ie=v||nn;if(!/^[a-z0-9-_]+$/i.test(ie))return"Project name can only contain letters, numbers, hyphens, and underscores"}});r.isCancel(L)&&(r.cancel("Operation cancelled."),process.exit(0));let U;if(e.preset){let v=e.preset.toLowerCase();Object.keys(l).includes(v)||(j.error(`Invalid preset: "${e.preset}". Available items: ${Object.keys(l).join(", ")}`),process.exit(1)),j.info(`Using preset: ${o.cyan(v)}`);let ie=l[v];U={projectName:L,framework:"react",variant:"ts",language:"typescript",styling:"tailwind",ui:"none",forms:"none",state:"none",routing:"none",dataFetching:"none",icons:"none",structure:"simple",hasCompiler:!1,hasSWC:!1,packageManager:"npm",optionalFeatures:[],...ie};let le=U.variant;U.hasCompiler=le.includes("compiler"),U.hasSWC=le.includes("swc"),U.language=le.startsWith("ts")?"typescript":"javascript"}else{let v={projectName:L},ie=s.resolve(e.dir,L);if(!await E(ie)){let F=await $(ie),V="";F&&(V=`
1449
1449
  ${o.bold("Previous Configuration Found:")}
1450
1450
  ${o.dim("\u2022 Framework:")} ${F.framework||"Unknown"}
1451
1451
  ${o.dim("\u2022 Language:")} ${F.variant==="ts"?"TypeScript":"JavaScript"}
1452
1452
  ${o.dim("\u2022 Styling:")} ${F.styling||"Unknown"}
1453
- `);let K=await r.select({message:`Folder "${L}" already exists and is not empty.${G}`,options:[...F?[{value:"continue",label:"Continue with previous setup",hint:"Uses detected configuration"}]:[],{value:"overwrite",label:"Start fresh",hint:"\u26A0\uFE0F Clears directory and starts new setup"},{value:"cancel",label:"Cancel",hint:"Exit operation"}]});if((r.isCancel(K)||K==="cancel")&&(r.cancel("Operation cancelled."),process.exit(0)),K==="overwrite"){let X=await r.confirm({message:`Are you sure you want to clear "${L}"? This action cannot be undone.`});(r.isCancel(X)||!X)&&(r.cancel("Operation cancelled."),process.exit(0)),await n.rm(ie,{recursive:!0,force:!0}),await n.mkdir(ie,{recursive:!0})}else if(K==="continue"&&F){let X={projectName:L,framework:F.framework||"react",variant:F.variant||"ts",language:F.variant==="js"?"javascript":"typescript",styling:F.styling||"tailwind",ui:F.ui||"none",forms:F.forms||"none",state:F.state||"none",routing:F.routing||"none",dataFetching:F.dataFetching||"none",structure:F.structure||"feature",icons:F.icons||"lucide",optionalFeatures:[],...F};await y({selections:X,targetDir:ie});return}}let le="react";v.framework=le;for(let F of p){let G=F;if(G.options.length===0){v[F.name]="none";continue}if(G.options.length===1&&G.options[0].value==="none"){v[F.name]="none";continue}F.name==="variant"?fe(`We recommend TypeScript for better type safety and developer experience.
1453
+ `);let K=await r.select({message:`Folder "${L}" already exists and is not empty.${V}`,options:[...F?[{value:"continue",label:"Continue with previous setup",hint:"Uses detected configuration"}]:[],{value:"overwrite",label:"Start fresh",hint:"\u26A0\uFE0F Clears directory and starts new setup"},{value:"cancel",label:"Cancel",hint:"Exit operation"}]});if((r.isCancel(K)||K==="cancel")&&(r.cancel("Operation cancelled."),process.exit(0)),K==="overwrite"){let X=await r.confirm({message:`Are you sure you want to clear "${L}"? This action cannot be undone.`});(r.isCancel(X)||!X)&&(r.cancel("Operation cancelled."),process.exit(0)),await n.rm(ie,{recursive:!0,force:!0}),await n.mkdir(ie,{recursive:!0})}else if(K==="continue"&&F){let X={projectName:L,framework:F.framework||"react",variant:F.variant||"ts",language:F.variant==="js"?"javascript":"typescript",styling:F.styling||"tailwind",ui:F.ui||"none",forms:F.forms||"none",state:F.state||"none",routing:F.routing||"none",dataFetching:F.dataFetching||"none",structure:F.structure||"feature",icons:F.icons||"lucide",optionalFeatures:[],...F};await y({selections:X,targetDir:ie});return}}let le="react";v.framework=le;for(let F of p){let V=F;if(V.options.length===0){v[F.name]="none";continue}if(V.options.length===1&&V.options[0].value==="none"){v[F.name]="none";continue}F.name==="variant"?fe(`We recommend TypeScript for better type safety and developer experience.
1454
1454
  The "React Compiler" variant uses the new experimental compiler for auto-memoization.`):F.name==="styling"?fe(`Tailwind CSS offers a utility-first approach for rapid UI development.
1455
1455
  CSS Modules provide scoped CSS to avoid global conflicts.`):F.name==="state"?fe(`Local state (useState) is sufficient for simple apps.
1456
1456
  Zustand is a lightweight, scalable global state manager.
1457
- Redux is powerful but has more boilerplate.`):F.name==="dataFetching"&&fe("TanStack Query (React Query) handles caching, deduplication, and background updates automatically.");let K=G.options.map(je=>({value:je.value,label:je.name,hint:je.hover_note})),X=await r.select({message:F.message,options:K});r.isCancel(X)&&(r.cancel("Operation cancelled."),process.exit(0)),v[F.name]=X;let xe=G.options.find(je=>je.value===X);xe?.folder_info&&r.note(xe.folder_info.join(`
1458
- `),"\u{1F4C1} Folders")}let Ht=await r.multiselect({message:"Select optional features (Space to select):",options:d.options.map(F=>({value:F.value,label:F.name,hint:F.hover_note})),required:!1});r.isCancel(Ht)&&(r.cancel("Operation cancelled."),process.exit(0)),v.optionalFeatures=Ht;for(let F of Ht){let G=m[F];if(G){let K,X=G.options.map(xe=>({value:xe.value,label:xe.name,hint:xe.hover_note}));G.type==="checkbox"?K=await r.multiselect({message:G.message,options:X,required:!1}):K=await r.select({message:G.message,options:X}),r.isCancel(K)&&(r.cancel("Operation cancelled."),process.exit(0)),v[F]=K}}let pu={framework:le,variant:v.variant,styling:v.styling,ui:v.ui,forms:v.forms,state:v.state,routing:v.routing,dataFetching:v.dataFetching,icons:v.icons},du=a(pu),mu=c(du),fu=[`Project: ${o.cyan(v.projectName)}`,`Framework: ${o.cyan(le)}`,`Variant: ${o.cyan(v.variant)}`,`Styling: ${o.cyan(v.styling)}`,`UI Library: ${o.cyan(v.ui)}`,`Forms: ${o.cyan(v.forms)}`,`State: ${o.cyan(v.state)}`,`Routing: ${o.cyan(v.routing)}`,`Bundle Est.: ${o.green(mu)} ${o.dim("(Initial JS)")}`];r.note(fu.join(`
1459
- `),"\u{1F4CB} Summary");let Mn=await r.confirm({message:"Create project with these settings?"});(r.isCancel(Mn)||!Mn)&&(r.cancel("Operation cancelled."),process.exit(0));let Je=v.variant,hu=Je.startsWith("ts"),gu=Je.includes("compiler"),Du=Je.includes("swc");U={projectName:v.projectName,framework:le,variant:Je,language:hu?"typescript":"javascript",styling:v.styling,ui:v.ui,forms:v.forms,state:v.state,routing:v.routing,dataFetching:v.dataFetching,icons:v.icons,structure:v.structure,aiInstructions:v.optionalFeatures.includes("ai-instructions")?v["ai-instructions"]:void 0,packageManager:"npm",hasCompiler:gu,hasSWC:Du}}if(e.dryRun){j.newline(),j.header("DRY RUN MODE","warning"),j.warn("No files will be created."),j.newline();let v=ne(U);r.note(v,"\u{1F4C2} Files that would be created"),r.outro(o.cyan("Dry run complete. Run without --dry-run to create the project."));return}let au=Date.now();await y({selections:U,targetDir:e.dir,parallel:e.parallel});let uu=((Date.now()-au)/1e3).toFixed(2);r.outro(o.green(`\u2728 Project created successfully in ${uu}s!`));let cu="npm install",lu="npm run dev";j.newline(),j.dim("Next steps:"),j.dim(` cd ${U.projectName}`),j.dim(` ${cu}`),j.dim(` ${lu}`),j.newline(),j.cyan("Happy coding! \u{1F680}"),j.newline()}catch(L){r.cancel("Error creating project"),j.error(String(L)),process.exit(1)}finally{await w.save()}}};var Xa=M(ca(),1);import{Buffer as hm}from"node:buffer";import gm from"node:path";import Rn from"node:child_process";import Vt from"node:process";function fn(t){let e=typeof t=="string"?`
1457
+ Redux is powerful but has more boilerplate.`):F.name==="dataFetching"&&fe("TanStack Query (React Query) handles caching, deduplication, and background updates automatically.");let K=V.options.map(je=>({value:je.value,label:je.name,hint:je.hover_note})),X=await r.select({message:F.message,options:K});r.isCancel(X)&&(r.cancel("Operation cancelled."),process.exit(0)),v[F.name]=X;let xe=V.options.find(je=>je.value===X);xe?.folder_info&&r.note(xe.folder_info.join(`
1458
+ `),"\u{1F4C1} Folders")}let Ht=await r.multiselect({message:"Select optional features (Space to select):",options:d.options.map(F=>({value:F.value,label:F.name,hint:F.hover_note})),required:!1});r.isCancel(Ht)&&(r.cancel("Operation cancelled."),process.exit(0)),v.optionalFeatures=Ht;for(let F of Ht){let V=m[F];if(V){let K,X=V.options.map(xe=>({value:xe.value,label:xe.name,hint:xe.hover_note}));V.type==="checkbox"?K=await r.multiselect({message:V.message,options:X,required:!1}):K=await r.select({message:V.message,options:X}),r.isCancel(K)&&(r.cancel("Operation cancelled."),process.exit(0)),v[F]=K}}let pu={framework:le,variant:v.variant,styling:v.styling,ui:v.ui,forms:v.forms,state:v.state,routing:v.routing,dataFetching:v.dataFetching,icons:v.icons},du=a(pu),mu=c(du),fu=[`Project: ${o.cyan(v.projectName)}`,`Framework: ${o.cyan(le)}`,`Variant: ${o.cyan(v.variant)}`,`Styling: ${o.cyan(v.styling)}`,`UI Library: ${o.cyan(v.ui)}`,`Forms: ${o.cyan(v.forms)}`,`State: ${o.cyan(v.state)}`,`Routing: ${o.cyan(v.routing)}`,`Bundle Est.: ${o.green(mu)} ${o.dim("(Initial JS)")}`];r.note(fu.join(`
1459
+ `),"\u{1F4CB} Summary");let Mn=await r.confirm({message:"Create project with these settings?"});(r.isCancel(Mn)||!Mn)&&(r.cancel("Operation cancelled."),process.exit(0));let Je=v.variant,hu=Je.startsWith("ts"),gu=Je.includes("compiler"),Du=Je.includes("swc");U={projectName:v.projectName,framework:le,variant:Je,language:hu?"typescript":"javascript",styling:v.styling,ui:v.ui,forms:v.forms,state:v.state,routing:v.routing,dataFetching:v.dataFetching,icons:v.icons,structure:v.structure,aiInstructions:v.optionalFeatures.includes("ai-instructions")?v["ai-instructions"]:void 0,packageManager:"npm",hasCompiler:gu,hasSWC:Du}}if(e.dryRun){j.newline(),j.header("DRY RUN MODE","warning"),j.warn("No files will be created."),j.newline();let v=ne(U);r.note(v,"\u{1F4C2} Files that would be created"),r.outro(o.cyan("Dry run complete. Run without --dry-run to create the project."));return}let au=Date.now();await y({selections:U,targetDir:e.dir,parallel:e.parallel});let uu=((Date.now()-au)/1e3).toFixed(2);r.outro(o.green(`\u2728 Project created successfully in ${uu}s!`));let cu="npm install",lu="npm run dev";j.newline(),j.dim("Next steps:"),j.dim(` cd ${U.projectName}`),j.dim(` ${cu}`),j.dim(` ${lu}`),j.newline(),j.cyan("Happy coding! \u{1F680}"),j.newline()}catch(L){r.cancel("Error creating project"),j.error(String(L)),process.exit(1)}finally{await w.save()}}};var Xa=M(ca(),1);import{Buffer as hm}from"node:buffer";import gm from"node:path";import Rn from"node:child_process";import Gt from"node:process";function fn(t){let e=typeof t=="string"?`
1460
1460
  `:10,r=typeof t=="string"?"\r":13;return t[t.length-1]===e&&(t=t.slice(0,-1)),t[t.length-1]===r&&(t=t.slice(0,-1)),t}import Tt from"node:process";import ze from"node:path";import{fileURLToPath as la}from"node:url";function Pt(t={}){let{env:e=process.env,platform:r=process.platform}=t;return r!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"}var ed=({cwd:t=Tt.cwd(),path:e=Tt.env[Pt()],preferLocal:r=!0,execPath:n=Tt.execPath,addExecPath:s=!0}={})=>{let o=t instanceof URL?la(t):t,i=ze.resolve(o),a=[];return r&&td(a,i),s&&rd(a,n,i),[...a,e].join(ze.delimiter)},td=(t,e)=>{let r;for(;r!==e;)t.push(ze.join(e,"node_modules/.bin")),r=e,e=ze.resolve(e,"..")},rd=(t,e,r)=>{let n=e instanceof URL?la(e):e;t.push(ze.resolve(r,n,".."))},pa=({env:t=Tt.env,...e}={})=>{t={...t};let r=Pt({env:t});return e.path=t[r],t[r]=ed(e),t};var nd=(t,e,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let s=Object.getOwnPropertyDescriptor(t,r),o=Object.getOwnPropertyDescriptor(e,r);!id(s,o)&&n||Object.defineProperty(t,r,o)},id=function(t,e){return t===void 0||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},sd=(t,e)=>{let r=Object.getPrototypeOf(e);r!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,r)},od=(t,e)=>`/* Wrapped ${t}*/
1461
1461
  ${e}`,ad=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),ud=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),cd=(t,e,r)=>{let n=r===""?"":`with ${r.trim()}() `,s=od.bind(null,n,e.toString());Object.defineProperty(s,"name",ud),Object.defineProperty(t,"toString",{...ad,value:s})};function hn(t,e,{ignoreNonConfigurable:r=!1}={}){let{name:n}=t;for(let s of Reflect.ownKeys(e))nd(t,e,s,r);return sd(t,e),cd(t,e,n),t}var _t=new WeakMap,da=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,n=0,s=t.displayName||t.name||"<anonymous>",o=function(...i){if(_t.set(o,++n),n===1)r=t.apply(this,i),t=null;else if(e.throw===!0)throw new Error(`Function \`${s}\` can only be called once`);return r};return hn(o,t),_t.set(o,n),o};da.callCount=t=>{if(!_t.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return _t.get(t)};var ma=da;import yd from"node:process";import{constants as md}from"node:os";var fa=()=>{let t=ga-ha+1;return Array.from({length:t},ld)},ld=(t,e)=>({name:`SIGRT${e+1}`,number:ha+e,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),ha=34,ga=64;import{constants as pd}from"node:os";var Da=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var gn=()=>{let t=fa();return[...Da,...t].map(dd)},dd=({name:t,number:e,description:r,action:n,forced:s=!1,standard:o})=>{let{signals:{[t]:i}}=pd,a=i!==void 0;return{name:t,number:a?i:e,description:r,supported:a,action:n,forced:s,standard:o}};var fd=()=>{let t=gn();return Object.fromEntries(t.map(hd))},hd=({name:t,number:e,description:r,supported:n,action:s,forced:o,standard:i})=>[t,{name:t,number:e,description:r,supported:n,action:s,forced:o,standard:i}],Ca=fd(),gd=()=>{let t=gn(),e=65,r=Array.from({length:e},(n,s)=>Dd(s,t));return Object.assign({},...r)},Dd=(t,e)=>{let r=Cd(t,e);if(r===void 0)return{};let{name:n,description:s,supported:o,action:i,forced:a,standard:c}=r;return{[t]:{name:n,number:t,description:s,supported:o,action:i,forced:a,standard:c}}},Cd=(t,e)=>{let r=e.find(({name:n})=>md.signals[n]===t);return r!==void 0?r:e.find(n=>n.number===t)},Pg=gd();var vd=({timedOut:t,timeout:e,errorCode:r,signal:n,signalDescription:s,exitCode:o,isCanceled:i})=>t?`timed out after ${e} milliseconds`:i?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${s})`:o!==void 0?`failed with exit code ${o}`:"failed",We=({stdout:t,stderr:e,all:r,error:n,signal:s,exitCode:o,command:i,escapedCommand:a,timedOut:c,isCanceled:l,killed:p,parsed:{options:{timeout:d,cwd:m=yd.cwd()}}})=>{o=o===null?void 0:o,s=s===null?void 0:s;let y=s===void 0?void 0:Ca[s].description,C=n&&n.code,$=`Command ${vd({timedOut:c,timeout:d,errorCode:C,signal:s,signalDescription:y,exitCode:o,isCanceled:l})}: ${i}`,ne=Object.prototype.toString.call(n)==="[object Error]",E=ne?`${$}
1462
1462
  ${n.message}`:$,Ee=[E,e,t].filter(Boolean).join(`
1463
- `);return ne?(n.originalMessage=n.message,n.message=Ee):n=new Error(Ee),n.shortMessage=E,n.command=i,n.escapedCommand=a,n.exitCode=o,n.signal=s,n.signalDescription=y,n.stdout=t,n.stderr=e,n.cwd=m,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!c,n.isCanceled=l,n.killed=p&&!c,n};var jt=["stdin","stdout","stderr"],bd=t=>jt.some(e=>t[e]!==void 0),ya=t=>{if(!t)return;let{stdio:e}=t;if(e===void 0)return jt.map(n=>t[n]);if(bd(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${jt.map(n=>`\`${n}\``).join(", ")}`);if(typeof e=="string")return e;if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let r=Math.max(e.length,jt.length);return Array.from({length:r},(n,s)=>e[s])};import Ed from"node:os";var Fe=[];Fe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Fe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Bt=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",Dn=Symbol.for("signal-exit emitter"),Cn=globalThis,wd=Object.defineProperty.bind(Object),yn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Cn[Dn])return Cn[Dn];wd(Cn,Dn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],s=n.indexOf(r);s!==-1&&(s===0&&n.length===1?n.length=0:n.splice(s,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let o of this.listeners[e])s=o(r,n)===!0||s;return e==="exit"&&(s=this.emit("afterExit",r,n)||s),s}},Ot=class{},Fd=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),vn=class extends Ot{onExit(){return()=>{}}load(){}unload(){}},bn=class extends Ot{#o=wn.platform==="win32"?"SIGINT":"SIGHUP";#t=new yn;#e;#i;#s;#n={};#r=!1;constructor(e){super(),this.#e=e,this.#n={};for(let r of Fe)this.#n[r]=()=>{let n=this.#e.listeners(r),{count:s}=this.#t,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(s+=o.__signal_exit_emitter__.count),n.length===s){this.unload();let i=this.#t.emit("exit",null,r),a=r==="SIGHUP"?this.#o:r;i||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#i=e.emit}onExit(e,r){if(!Bt(this.#e))return()=>{};this.#r===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,e),()=>{this.#t.removeListener(n,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#r){this.#r=!0,this.#t.count+=1;for(let e of Fe)try{let r=this.#n[e];r&&this.#e.on(e,r)}catch{}this.#e.emit=(e,...r)=>this.#u(e,...r),this.#e.reallyExit=e=>this.#a(e)}}unload(){this.#r&&(this.#r=!1,Fe.forEach(e=>{let r=this.#n[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,r)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#t.count-=1)}#a(e){return Bt(this.#e)?(this.#e.exitCode=e||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#u(e,...r){let n=this.#i;if(e==="exit"&&Bt(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let s=n.call(this.#e,e,...r);return this.#t.emit("exit",this.#e.exitCode,null),s}else return n.call(this.#e,e,...r)}},wn=globalThis.process,{onExit:va,load:Ng,unload:Mg}=Fd(Bt(wn)?new bn(wn):new vn);var xd=1e3*5,ba=(t,e="SIGTERM",r={})=>{let n=t(e);return Sd(t,e,r,n),n},Sd=(t,e,r,n)=>{if(!$d(e,r,n))return;let s=Ad(r),o=setTimeout(()=>{t("SIGKILL")},s);o.unref&&o.unref()},$d=(t,{forceKillAfterTimeout:e},r)=>kd(t)&&e!==!1&&r,kd=t=>t===Ed.constants.signals.SIGTERM||typeof t=="string"&&t.toUpperCase()==="SIGTERM",Ad=({forceKillAfterTimeout:t=!0})=>{if(t===!0)return xd;if(!Number.isFinite(t)||t<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`);return t},wa=(t,e)=>{t.kill()&&(e.isCanceled=!0)},Pd=(t,e,r)=>{t.kill(e),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:e}))},Fa=(t,{timeout:e,killSignal:r="SIGTERM"},n)=>{if(e===0||e===void 0)return n;let s,o=new Promise((a,c)=>{s=setTimeout(()=>{Pd(t,r,c)},e)}),i=n.finally(()=>{clearTimeout(s)});return Promise.race([o,i])},Ea=({timeout:t})=>{if(t!==void 0&&(!Number.isFinite(t)||t<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`)},xa=async(t,{cleanup:e,detached:r},n)=>{if(!e||r)return n;let s=va(()=>{t.kill()});return n.finally(()=>{s()})};import{createWriteStream as Td}from"node:fs";import{ChildProcess as _d}from"node:child_process";function It(t){return t!==null&&typeof t=="object"&&typeof t.pipe=="function"}function Fn(t){return It(t)&&t.writable!==!1&&typeof t._write=="function"&&typeof t._writableState=="object"}var jd=t=>t instanceof _d&&typeof t.then=="function",En=(t,e,r)=>{if(typeof r=="string")return t[e].pipe(Td(r)),t;if(Fn(r))return t[e].pipe(r),t;if(!jd(r))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!Fn(r.stdin))throw new TypeError("The target child process's stdin must be available.");return t[e].pipe(r.stdin),r},Sa=t=>{t.stdout!==null&&(t.pipeStdout=En.bind(void 0,t,"stdout")),t.stderr!==null&&(t.pipeStderr=En.bind(void 0,t,"stderr")),t.all!==void 0&&(t.pipeAll=En.bind(void 0,t,"all"))};import{createReadStream as Zd,readFileSync as Qd}from"node:fs";import{setTimeout as em}from"node:timers/promises";var He=async(t,{init:e,convertChunk:r,getSize:n,truncateChunk:s,addChunk:o,getFinalChunk:i,finalize:a},{maxBuffer:c=Number.POSITIVE_INFINITY}={})=>{if(!Od(t))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let l=e();l.length=0;try{for await(let p of t){let d=Id(p),m=r[d](p,l);Aa({convertedChunk:m,state:l,getSize:n,truncateChunk:s,addChunk:o,maxBuffer:c})}return Bd({state:l,convertChunk:r,getSize:n,truncateChunk:s,addChunk:o,getFinalChunk:i,maxBuffer:c}),a(l)}catch(p){throw p.bufferedData=a(l),p}},Bd=({state:t,getSize:e,truncateChunk:r,addChunk:n,getFinalChunk:s,maxBuffer:o})=>{let i=s(t);i!==void 0&&Aa({convertedChunk:i,state:t,getSize:e,truncateChunk:r,addChunk:n,maxBuffer:o})},Aa=({convertedChunk:t,state:e,getSize:r,truncateChunk:n,addChunk:s,maxBuffer:o})=>{let i=r(t),a=e.length+i;if(a<=o){$a(t,e,s,a);return}let c=n(t,o-e.length);throw c!==void 0&&$a(c,e,s,o),new Rt},$a=(t,e,r,n)=>{e.contents=r(t,e,n),e.length=n},Od=t=>typeof t=="object"&&t!==null&&typeof t[Symbol.asyncIterator]=="function",Id=t=>{let e=typeof t;if(e==="string")return"string";if(e!=="object"||t===null)return"others";if(globalThis.Buffer?.isBuffer(t))return"buffer";let r=ka.call(t);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(t.byteLength)&&Number.isInteger(t.byteOffset)&&ka.call(t.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:ka}=Object.prototype,Rt=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var xn=t=>t,Sn=()=>{},$n=({contents:t})=>t,Nt=t=>{throw new Error(`Streams in object mode are not supported: ${String(t)}`)},Mt=t=>t.length;async function kn(t,e){return He(t,Wd,e)}var Rd=()=>({contents:new ArrayBuffer(0)}),Nd=t=>Md.encode(t),Md=new TextEncoder,Pa=t=>new Uint8Array(t),Ta=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Ld=(t,e)=>t.slice(0,e),Ud=(t,{contents:e,length:r},n)=>{let s=Ba()?Vd(e,n):Gd(e,n);return new Uint8Array(s).set(t,r),s},Gd=(t,e)=>{if(e<=t.byteLength)return t;let r=new ArrayBuffer(ja(e));return new Uint8Array(r).set(new Uint8Array(t),0),r},Vd=(t,e)=>{if(e<=t.maxByteLength)return t.resize(e),t;let r=new ArrayBuffer(e,{maxByteLength:ja(e)});return new Uint8Array(r).set(new Uint8Array(t),0),r},ja=t=>_a**Math.ceil(Math.log(t)/Math.log(_a)),_a=2,zd=({contents:t,length:e})=>Ba()?t:t.slice(0,e),Ba=()=>"resize"in ArrayBuffer.prototype,Wd={init:Rd,convertChunk:{string:Nd,buffer:Pa,arrayBuffer:Pa,dataView:Ta,typedArray:Ta,others:Nt},getSize:Mt,truncateChunk:Ld,addChunk:Ud,getFinalChunk:Sn,finalize:zd};async function Lt(t,e){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return Oa(await kn(t,e))}catch(r){throw r.bufferedData!==void 0&&(r.bufferedData=Oa(r.bufferedData)),r}}var Oa=t=>globalThis.Buffer.from(t);async function An(t,e){return He(t,Xd,e)}var Hd=()=>({contents:"",textDecoder:new TextDecoder}),Ut=(t,{textDecoder:e})=>e.decode(t,{stream:!0}),qd=(t,{contents:e})=>e+t,Jd=(t,e)=>t.slice(0,e),Kd=({textDecoder:t})=>{let e=t.decode();return e===""?void 0:e},Xd={init:Hd,convertChunk:{string:xn,buffer:Ut,arrayBuffer:Ut,dataView:Ut,typedArray:Ut,others:Nt},getSize:Mt,truncateChunk:Jd,addChunk:qd,getFinalChunk:Kd,finalize:$n};var Na=M(Ra(),1),Ma=t=>{if(t!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},tm=({input:t,inputFile:e})=>typeof e!="string"?t:(Ma(t),Qd(e)),La=t=>{let e=tm(t);if(It(e))throw new TypeError("The `input` option cannot be a stream in sync mode");return e},rm=({input:t,inputFile:e})=>typeof e!="string"?t:(Ma(t),Zd(e)),Ua=(t,e)=>{let r=rm(e);r!==void 0&&(It(r)?r.pipe(t.stdin):t.stdin.end(r))},Ga=(t,{all:e})=>{if(!e||!t.stdout&&!t.stderr)return;let r=(0,Na.default)();return t.stdout&&r.add(t.stdout),t.stderr&&r.add(t.stderr),r},Pn=async(t,e)=>{if(!(!t||e===void 0)){await em(0),t.destroy();try{return await e}catch(r){return r.bufferedData}}},Tn=(t,{encoding:e,buffer:r,maxBuffer:n})=>{if(!(!t||!r))return e==="utf8"||e==="utf-8"?An(t,{maxBuffer:n}):e===null||e==="buffer"?Lt(t,{maxBuffer:n}):nm(t,n,e)},nm=async(t,e,r)=>(await Lt(t,{maxBuffer:e})).toString(r),Va=async({stdout:t,stderr:e,all:r},{encoding:n,buffer:s,maxBuffer:o},i)=>{let a=Tn(t,{encoding:n,buffer:s,maxBuffer:o}),c=Tn(e,{encoding:n,buffer:s,maxBuffer:o}),l=Tn(r,{encoding:n,buffer:s,maxBuffer:o*2});try{return await Promise.all([i,a,c,l])}catch(p){return Promise.all([{error:p,signal:p.signal,timedOut:p.timedOut},Pn(t,a),Pn(e,c),Pn(r,l)])}};var im=(async()=>{})().constructor.prototype,sm=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(im,t)]),_n=(t,e)=>{for(let[r,n]of sm){let s=typeof e=="function"?(...o)=>Reflect.apply(n.value,e(),o):n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:s})}},za=t=>new Promise((e,r)=>{t.on("exit",(n,s)=>{e({exitCode:n,signal:s})}),t.on("error",n=>{r(n)}),t.stdin&&t.stdin.on("error",n=>{r(n)})});import{Buffer as om}from"node:buffer";import{ChildProcess as am}from"node:child_process";var qa=(t,e=[])=>Array.isArray(e)?[t,...e]:[t],um=/^[\w.-]+$/,cm=t=>typeof t!="string"||um.test(t)?t:`"${t.replaceAll('"','\\"')}"`,jn=(t,e)=>qa(t,e).join(" "),Bn=(t,e)=>qa(t,e).map(r=>cm(r)).join(" "),lm=/ +/g;var Wa=t=>{let e=typeof t;if(e==="string")return t;if(e==="number")return String(t);if(e==="object"&&t!==null&&!(t instanceof am)&&"stdout"in t){let r=typeof t.stdout;if(r==="string")return t.stdout;if(om.isBuffer(t.stdout))return t.stdout.toString();throw new TypeError(`Unexpected "${r}" stdout in template expression`)}throw new TypeError(`Unexpected "${e}" in template expression`)},Ha=(t,e,r)=>r||t.length===0||e.length===0?[...t,...e]:[...t.slice(0,-1),`${t.at(-1)}${e[0]}`,...e.slice(1)],pm=({templates:t,expressions:e,tokens:r,index:n,template:s})=>{let o=s??t.raw[n],i=o.split(lm).filter(Boolean),a=Ha(r,i,o.startsWith(" "));if(n===e.length)return a;let c=e[n],l=Array.isArray(c)?c.map(p=>Wa(p)):[Wa(c)];return Ha(a,l,o.endsWith(" "))},On=(t,e)=>{let r=[];for(let[n,s]of t.entries())r=pm({templates:t,expressions:e,tokens:r,index:n,template:s});return r};import{debuglog as dm}from"node:util";import mm from"node:process";var Ja=dm("execa").enabled,Gt=(t,e)=>String(t).padStart(e,"0"),fm=()=>{let t=new Date;return`${Gt(t.getHours(),2)}:${Gt(t.getMinutes(),2)}:${Gt(t.getSeconds(),2)}.${Gt(t.getMilliseconds(),3)}`},In=(t,{verbose:e})=>{e&&mm.stderr.write(`[${fm()}] ${t}
1464
- `)};var Dm=1e3*1e3*100,Cm=({env:t,extendEnv:e,preferLocal:r,localDir:n,execPath:s})=>{let o=e?{...Vt.env,...t}:t;return r?pa({env:o,cwd:n,execPath:s}):o},Ya=(t,e,r={})=>{let n=Xa.default._parse(t,e,r);return t=n.command,e=n.args,r=n.options,r={maxBuffer:Dm,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||Vt.cwd(),execPath:Vt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Ja,...r},r.env=Cm(r),r.stdio=ya(r),Vt.platform==="win32"&&gm.basename(t,".exe")==="cmd"&&e.unshift("/q"),{file:t,args:e,options:r,parsed:n}},qe=(t,e,r)=>typeof e!="string"&&!hm.isBuffer(e)?r===void 0?void 0:"":t.stripFinalNewline?fn(e):e;function re(t,e,r){let n=Ya(t,e,r),s=jn(t,e),o=Bn(t,e);In(o,n.options),Ea(n.options);let i;try{i=Rn.spawn(n.file,n.args,n.options)}catch(y){let C=new Rn.ChildProcess,w=Promise.reject(We({error:y,stdout:"",stderr:"",all:"",command:s,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return _n(C,w),C}let a=za(i),c=Fa(i,n.options,a),l=xa(i,n.options,c),p={isCanceled:!1};i.kill=ba.bind(null,i.kill.bind(i)),i.cancel=wa.bind(null,i,p);let m=ma(async()=>{let[{error:y,exitCode:C,signal:w,timedOut:$},ne,E,Ee]=await Va(i,n.options,l),j=qe(n.options,ne),fe=qe(n.options,E),L=qe(n.options,Ee);if(y||C!==0||w!==null){let U=We({error:y,exitCode:C,signal:w,stdout:j,stderr:fe,all:L,command:s,escapedCommand:o,parsed:n,timedOut:$,isCanceled:p.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:i.killed});if(!n.options.reject)return U;throw U}return{command:s,escapedCommand:o,exitCode:0,stdout:j,stderr:fe,all:L,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Ua(i,n.options),i.all=Ga(i,n.options),Sa(i),_n(i,m),i}function ym(t,e,r){let n=Ya(t,e,r),s=jn(t,e),o=Bn(t,e);In(o,n.options);let i=La(n.options),a;try{a=Rn.spawnSync(n.file,n.args,{...n.options,input:i})}catch(p){throw We({error:p,stdout:"",stderr:"",all:"",command:s,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let c=qe(n.options,a.stdout,a.error),l=qe(n.options,a.stderr,a.error);if(a.error||a.status!==0||a.signal!==null){let p=We({stdout:c,stderr:l,error:a.error,signal:a.signal,exitCode:a.status,command:s,escapedCommand:o,parsed:n,timedOut:a.error&&a.error.code==="ETIMEDOUT",isCanceled:!1,killed:a.signal!==null});if(!n.options.reject)return p;throw p}return{command:s,escapedCommand:o,exitCode:0,stdout:c,stderr:l,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var vm=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Ka=(t={})=>({preferLocal:!0,...vm(t),...t});function Za(t){function e(r,...n){if(!Array.isArray(r))return Za({...t,...r});let[s,...o]=On(r,n);return re(s,o,Ka(t))}return e.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[s,...o]=On(r,n);return ym(s,o,Ka(t))},e}var WD=Za();var Qa=M(Y(),1);de();be();import zt from"node:path";async function bm(){f.cyan(`
1463
+ `);return ne?(n.originalMessage=n.message,n.message=Ee):n=new Error(Ee),n.shortMessage=E,n.command=i,n.escapedCommand=a,n.exitCode=o,n.signal=s,n.signalDescription=y,n.stdout=t,n.stderr=e,n.cwd=m,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!c,n.isCanceled=l,n.killed=p&&!c,n};var jt=["stdin","stdout","stderr"],bd=t=>jt.some(e=>t[e]!==void 0),ya=t=>{if(!t)return;let{stdio:e}=t;if(e===void 0)return jt.map(n=>t[n]);if(bd(t))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${jt.map(n=>`\`${n}\``).join(", ")}`);if(typeof e=="string")return e;if(!Array.isArray(e))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof e}\``);let r=Math.max(e.length,jt.length);return Array.from({length:r},(n,s)=>e[s])};import Ed from"node:os";var Fe=[];Fe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Fe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Bt=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",Dn=Symbol.for("signal-exit emitter"),Cn=globalThis,wd=Object.defineProperty.bind(Object),yn=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Cn[Dn])return Cn[Dn];wd(Cn,Dn,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],s=n.indexOf(r);s!==-1&&(s===0&&n.length===1?n.length=0:n.splice(s,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let o of this.listeners[e])s=o(r,n)===!0||s;return e==="exit"&&(s=this.emit("afterExit",r,n)||s),s}},Ot=class{},Fd=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),vn=class extends Ot{onExit(){return()=>{}}load(){}unload(){}},bn=class extends Ot{#o=wn.platform==="win32"?"SIGINT":"SIGHUP";#t=new yn;#e;#i;#s;#n={};#r=!1;constructor(e){super(),this.#e=e,this.#n={};for(let r of Fe)this.#n[r]=()=>{let n=this.#e.listeners(r),{count:s}=this.#t,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(s+=o.__signal_exit_emitter__.count),n.length===s){this.unload();let i=this.#t.emit("exit",null,r),a=r==="SIGHUP"?this.#o:r;i||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#i=e.emit}onExit(e,r){if(!Bt(this.#e))return()=>{};this.#r===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,e),()=>{this.#t.removeListener(n,e),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#r){this.#r=!0,this.#t.count+=1;for(let e of Fe)try{let r=this.#n[e];r&&this.#e.on(e,r)}catch{}this.#e.emit=(e,...r)=>this.#u(e,...r),this.#e.reallyExit=e=>this.#a(e)}}unload(){this.#r&&(this.#r=!1,Fe.forEach(e=>{let r=this.#n[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,r)}catch{}}),this.#e.emit=this.#i,this.#e.reallyExit=this.#s,this.#t.count-=1)}#a(e){return Bt(this.#e)?(this.#e.exitCode=e||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#u(e,...r){let n=this.#i;if(e==="exit"&&Bt(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let s=n.call(this.#e,e,...r);return this.#t.emit("exit",this.#e.exitCode,null),s}else return n.call(this.#e,e,...r)}},wn=globalThis.process,{onExit:va,load:Ng,unload:Mg}=Fd(Bt(wn)?new bn(wn):new vn);var xd=1e3*5,ba=(t,e="SIGTERM",r={})=>{let n=t(e);return Sd(t,e,r,n),n},Sd=(t,e,r,n)=>{if(!$d(e,r,n))return;let s=Ad(r),o=setTimeout(()=>{t("SIGKILL")},s);o.unref&&o.unref()},$d=(t,{forceKillAfterTimeout:e},r)=>kd(t)&&e!==!1&&r,kd=t=>t===Ed.constants.signals.SIGTERM||typeof t=="string"&&t.toUpperCase()==="SIGTERM",Ad=({forceKillAfterTimeout:t=!0})=>{if(t===!0)return xd;if(!Number.isFinite(t)||t<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`);return t},wa=(t,e)=>{t.kill()&&(e.isCanceled=!0)},Pd=(t,e,r)=>{t.kill(e),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:e}))},Fa=(t,{timeout:e,killSignal:r="SIGTERM"},n)=>{if(e===0||e===void 0)return n;let s,o=new Promise((a,c)=>{s=setTimeout(()=>{Pd(t,r,c)},e)}),i=n.finally(()=>{clearTimeout(s)});return Promise.race([o,i])},Ea=({timeout:t})=>{if(t!==void 0&&(!Number.isFinite(t)||t<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${t}\` (${typeof t})`)},xa=async(t,{cleanup:e,detached:r},n)=>{if(!e||r)return n;let s=va(()=>{t.kill()});return n.finally(()=>{s()})};import{createWriteStream as Td}from"node:fs";import{ChildProcess as _d}from"node:child_process";function It(t){return t!==null&&typeof t=="object"&&typeof t.pipe=="function"}function Fn(t){return It(t)&&t.writable!==!1&&typeof t._write=="function"&&typeof t._writableState=="object"}var jd=t=>t instanceof _d&&typeof t.then=="function",En=(t,e,r)=>{if(typeof r=="string")return t[e].pipe(Td(r)),t;if(Fn(r))return t[e].pipe(r),t;if(!jd(r))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!Fn(r.stdin))throw new TypeError("The target child process's stdin must be available.");return t[e].pipe(r.stdin),r},Sa=t=>{t.stdout!==null&&(t.pipeStdout=En.bind(void 0,t,"stdout")),t.stderr!==null&&(t.pipeStderr=En.bind(void 0,t,"stderr")),t.all!==void 0&&(t.pipeAll=En.bind(void 0,t,"all"))};import{createReadStream as Zd,readFileSync as Qd}from"node:fs";import{setTimeout as em}from"node:timers/promises";var He=async(t,{init:e,convertChunk:r,getSize:n,truncateChunk:s,addChunk:o,getFinalChunk:i,finalize:a},{maxBuffer:c=Number.POSITIVE_INFINITY}={})=>{if(!Od(t))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let l=e();l.length=0;try{for await(let p of t){let d=Id(p),m=r[d](p,l);Aa({convertedChunk:m,state:l,getSize:n,truncateChunk:s,addChunk:o,maxBuffer:c})}return Bd({state:l,convertChunk:r,getSize:n,truncateChunk:s,addChunk:o,getFinalChunk:i,maxBuffer:c}),a(l)}catch(p){throw p.bufferedData=a(l),p}},Bd=({state:t,getSize:e,truncateChunk:r,addChunk:n,getFinalChunk:s,maxBuffer:o})=>{let i=s(t);i!==void 0&&Aa({convertedChunk:i,state:t,getSize:e,truncateChunk:r,addChunk:n,maxBuffer:o})},Aa=({convertedChunk:t,state:e,getSize:r,truncateChunk:n,addChunk:s,maxBuffer:o})=>{let i=r(t),a=e.length+i;if(a<=o){$a(t,e,s,a);return}let c=n(t,o-e.length);throw c!==void 0&&$a(c,e,s,o),new Rt},$a=(t,e,r,n)=>{e.contents=r(t,e,n),e.length=n},Od=t=>typeof t=="object"&&t!==null&&typeof t[Symbol.asyncIterator]=="function",Id=t=>{let e=typeof t;if(e==="string")return"string";if(e!=="object"||t===null)return"others";if(globalThis.Buffer?.isBuffer(t))return"buffer";let r=ka.call(t);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(t.byteLength)&&Number.isInteger(t.byteOffset)&&ka.call(t.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:ka}=Object.prototype,Rt=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var xn=t=>t,Sn=()=>{},$n=({contents:t})=>t,Nt=t=>{throw new Error(`Streams in object mode are not supported: ${String(t)}`)},Mt=t=>t.length;async function kn(t,e){return He(t,Wd,e)}var Rd=()=>({contents:new ArrayBuffer(0)}),Nd=t=>Md.encode(t),Md=new TextEncoder,Pa=t=>new Uint8Array(t),Ta=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Ld=(t,e)=>t.slice(0,e),Ud=(t,{contents:e,length:r},n)=>{let s=Ba()?Gd(e,n):Vd(e,n);return new Uint8Array(s).set(t,r),s},Vd=(t,e)=>{if(e<=t.byteLength)return t;let r=new ArrayBuffer(ja(e));return new Uint8Array(r).set(new Uint8Array(t),0),r},Gd=(t,e)=>{if(e<=t.maxByteLength)return t.resize(e),t;let r=new ArrayBuffer(e,{maxByteLength:ja(e)});return new Uint8Array(r).set(new Uint8Array(t),0),r},ja=t=>_a**Math.ceil(Math.log(t)/Math.log(_a)),_a=2,zd=({contents:t,length:e})=>Ba()?t:t.slice(0,e),Ba=()=>"resize"in ArrayBuffer.prototype,Wd={init:Rd,convertChunk:{string:Nd,buffer:Pa,arrayBuffer:Pa,dataView:Ta,typedArray:Ta,others:Nt},getSize:Mt,truncateChunk:Ld,addChunk:Ud,getFinalChunk:Sn,finalize:zd};async function Lt(t,e){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return Oa(await kn(t,e))}catch(r){throw r.bufferedData!==void 0&&(r.bufferedData=Oa(r.bufferedData)),r}}var Oa=t=>globalThis.Buffer.from(t);async function An(t,e){return He(t,Xd,e)}var Hd=()=>({contents:"",textDecoder:new TextDecoder}),Ut=(t,{textDecoder:e})=>e.decode(t,{stream:!0}),qd=(t,{contents:e})=>e+t,Jd=(t,e)=>t.slice(0,e),Kd=({textDecoder:t})=>{let e=t.decode();return e===""?void 0:e},Xd={init:Hd,convertChunk:{string:xn,buffer:Ut,arrayBuffer:Ut,dataView:Ut,typedArray:Ut,others:Nt},getSize:Mt,truncateChunk:Jd,addChunk:qd,getFinalChunk:Kd,finalize:$n};var Na=M(Ra(),1),Ma=t=>{if(t!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},tm=({input:t,inputFile:e})=>typeof e!="string"?t:(Ma(t),Qd(e)),La=t=>{let e=tm(t);if(It(e))throw new TypeError("The `input` option cannot be a stream in sync mode");return e},rm=({input:t,inputFile:e})=>typeof e!="string"?t:(Ma(t),Zd(e)),Ua=(t,e)=>{let r=rm(e);r!==void 0&&(It(r)?r.pipe(t.stdin):t.stdin.end(r))},Va=(t,{all:e})=>{if(!e||!t.stdout&&!t.stderr)return;let r=(0,Na.default)();return t.stdout&&r.add(t.stdout),t.stderr&&r.add(t.stderr),r},Pn=async(t,e)=>{if(!(!t||e===void 0)){await em(0),t.destroy();try{return await e}catch(r){return r.bufferedData}}},Tn=(t,{encoding:e,buffer:r,maxBuffer:n})=>{if(!(!t||!r))return e==="utf8"||e==="utf-8"?An(t,{maxBuffer:n}):e===null||e==="buffer"?Lt(t,{maxBuffer:n}):nm(t,n,e)},nm=async(t,e,r)=>(await Lt(t,{maxBuffer:e})).toString(r),Ga=async({stdout:t,stderr:e,all:r},{encoding:n,buffer:s,maxBuffer:o},i)=>{let a=Tn(t,{encoding:n,buffer:s,maxBuffer:o}),c=Tn(e,{encoding:n,buffer:s,maxBuffer:o}),l=Tn(r,{encoding:n,buffer:s,maxBuffer:o*2});try{return await Promise.all([i,a,c,l])}catch(p){return Promise.all([{error:p,signal:p.signal,timedOut:p.timedOut},Pn(t,a),Pn(e,c),Pn(r,l)])}};var im=(async()=>{})().constructor.prototype,sm=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(im,t)]),_n=(t,e)=>{for(let[r,n]of sm){let s=typeof e=="function"?(...o)=>Reflect.apply(n.value,e(),o):n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:s})}},za=t=>new Promise((e,r)=>{t.on("exit",(n,s)=>{e({exitCode:n,signal:s})}),t.on("error",n=>{r(n)}),t.stdin&&t.stdin.on("error",n=>{r(n)})});import{Buffer as om}from"node:buffer";import{ChildProcess as am}from"node:child_process";var qa=(t,e=[])=>Array.isArray(e)?[t,...e]:[t],um=/^[\w.-]+$/,cm=t=>typeof t!="string"||um.test(t)?t:`"${t.replaceAll('"','\\"')}"`,jn=(t,e)=>qa(t,e).join(" "),Bn=(t,e)=>qa(t,e).map(r=>cm(r)).join(" "),lm=/ +/g;var Wa=t=>{let e=typeof t;if(e==="string")return t;if(e==="number")return String(t);if(e==="object"&&t!==null&&!(t instanceof am)&&"stdout"in t){let r=typeof t.stdout;if(r==="string")return t.stdout;if(om.isBuffer(t.stdout))return t.stdout.toString();throw new TypeError(`Unexpected "${r}" stdout in template expression`)}throw new TypeError(`Unexpected "${e}" in template expression`)},Ha=(t,e,r)=>r||t.length===0||e.length===0?[...t,...e]:[...t.slice(0,-1),`${t.at(-1)}${e[0]}`,...e.slice(1)],pm=({templates:t,expressions:e,tokens:r,index:n,template:s})=>{let o=s??t.raw[n],i=o.split(lm).filter(Boolean),a=Ha(r,i,o.startsWith(" "));if(n===e.length)return a;let c=e[n],l=Array.isArray(c)?c.map(p=>Wa(p)):[Wa(c)];return Ha(a,l,o.endsWith(" "))},On=(t,e)=>{let r=[];for(let[n,s]of t.entries())r=pm({templates:t,expressions:e,tokens:r,index:n,template:s});return r};import{debuglog as dm}from"node:util";import mm from"node:process";var Ja=dm("execa").enabled,Vt=(t,e)=>String(t).padStart(e,"0"),fm=()=>{let t=new Date;return`${Vt(t.getHours(),2)}:${Vt(t.getMinutes(),2)}:${Vt(t.getSeconds(),2)}.${Vt(t.getMilliseconds(),3)}`},In=(t,{verbose:e})=>{e&&mm.stderr.write(`[${fm()}] ${t}
1464
+ `)};var Dm=1e3*1e3*100,Cm=({env:t,extendEnv:e,preferLocal:r,localDir:n,execPath:s})=>{let o=e?{...Gt.env,...t}:t;return r?pa({env:o,cwd:n,execPath:s}):o},Ya=(t,e,r={})=>{let n=Xa.default._parse(t,e,r);return t=n.command,e=n.args,r=n.options,r={maxBuffer:Dm,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||Gt.cwd(),execPath:Gt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Ja,...r},r.env=Cm(r),r.stdio=ya(r),Gt.platform==="win32"&&gm.basename(t,".exe")==="cmd"&&e.unshift("/q"),{file:t,args:e,options:r,parsed:n}},qe=(t,e,r)=>typeof e!="string"&&!hm.isBuffer(e)?r===void 0?void 0:"":t.stripFinalNewline?fn(e):e;function re(t,e,r){let n=Ya(t,e,r),s=jn(t,e),o=Bn(t,e);In(o,n.options),Ea(n.options);let i;try{i=Rn.spawn(n.file,n.args,n.options)}catch(y){let C=new Rn.ChildProcess,w=Promise.reject(We({error:y,stdout:"",stderr:"",all:"",command:s,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return _n(C,w),C}let a=za(i),c=Fa(i,n.options,a),l=xa(i,n.options,c),p={isCanceled:!1};i.kill=ba.bind(null,i.kill.bind(i)),i.cancel=wa.bind(null,i,p);let m=ma(async()=>{let[{error:y,exitCode:C,signal:w,timedOut:$},ne,E,Ee]=await Ga(i,n.options,l),j=qe(n.options,ne),fe=qe(n.options,E),L=qe(n.options,Ee);if(y||C!==0||w!==null){let U=We({error:y,exitCode:C,signal:w,stdout:j,stderr:fe,all:L,command:s,escapedCommand:o,parsed:n,timedOut:$,isCanceled:p.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:i.killed});if(!n.options.reject)return U;throw U}return{command:s,escapedCommand:o,exitCode:0,stdout:j,stderr:fe,all:L,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Ua(i,n.options),i.all=Va(i,n.options),Sa(i),_n(i,m),i}function ym(t,e,r){let n=Ya(t,e,r),s=jn(t,e),o=Bn(t,e);In(o,n.options);let i=La(n.options),a;try{a=Rn.spawnSync(n.file,n.args,{...n.options,input:i})}catch(p){throw We({error:p,stdout:"",stderr:"",all:"",command:s,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let c=qe(n.options,a.stdout,a.error),l=qe(n.options,a.stderr,a.error);if(a.error||a.status!==0||a.signal!==null){let p=We({stdout:c,stderr:l,error:a.error,signal:a.signal,exitCode:a.status,command:s,escapedCommand:o,parsed:n,timedOut:a.error&&a.error.code==="ETIMEDOUT",isCanceled:!1,killed:a.signal!==null});if(!n.options.reject)return p;throw p}return{command:s,escapedCommand:o,exitCode:0,stdout:c,stderr:l,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var vm=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Ka=(t={})=>({preferLocal:!0,...vm(t),...t});function Za(t){function e(r,...n){if(!Array.isArray(r))return Za({...t,...r});let[s,...o]=On(r,n);return re(s,o,Ka(t))}return e.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[s,...o]=On(r,n);return ym(s,o,Ka(t))},e}var WD=Za();var Qa=M(Y(),1);de();be();import zt from"node:path";async function bm(){f.cyan(`
1465
1465
  \u{1F5A5}\uFE0F System Environment
1466
1466
  `);let t=[{name:"Node.js",check:async()=>process.version},{name:"npm",check:async()=>{let{stdout:r}=await re("npm",["--version"]);return r.trim()}},{name:"Git",check:async()=>{let{stdout:r}=await re("git",["--version"]);return r.trim().replace("git version ","")}},{name:"Git User",check:async()=>{try{let r=(await re("git",["config","user.name"])).stdout.trim(),n=(await re("git",["config","user.email"])).stdout.trim();return`${r} <${n}>`}catch{throw new Error("Git user not configured")}}}],e=!0;for(let{name:r,check:n}of t)try{let s=await n();f.success(` \u2713 ${r}: ${s}`)}catch{e=!1,f.error(` \u2717 ${r}: Not found or error`)}return e}async function wm(){f.cyan(`
1467
1467
  \u{1F4E6} Project Health
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-nexo",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "NEXO is a next-generation, extensible CLI for scaffolding and orchestrating modern frontend projects",
5
5
  "type": "module",
6
6