veloce-ts 1.0.1 → 1.2.0

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 (57) hide show
  1. package/CHANGELOG.md +85 -19
  2. package/README.md +7 -7
  3. package/dist/cjs/src/cli/index.js +257 -95
  4. package/dist/cjs/src/cli/index.js.map +4 -4
  5. package/dist/cjs/src/docs/index.js +3 -3
  6. package/dist/cjs/src/docs/index.js.map +4 -4
  7. package/dist/cjs/src/errors/index.js +24 -24
  8. package/dist/cjs/src/errors/index.js.map +6 -5
  9. package/dist/cjs/src/index.js +64 -62
  10. package/dist/cjs/src/index.js.map +15 -9
  11. package/dist/cjs/src/plugins/index.js +14 -14
  12. package/dist/cjs/src/plugins/index.js.map +4 -4
  13. package/dist/cjs/src/testing/index.js +34 -32
  14. package/dist/cjs/src/testing/index.js.map +10 -6
  15. package/dist/esm/src/cli/index.js +257 -95
  16. package/dist/esm/src/cli/index.js.map +4 -4
  17. package/dist/esm/src/docs/index.js +3 -3
  18. package/dist/esm/src/docs/index.js.map +4 -4
  19. package/dist/esm/src/errors/index.js +24 -24
  20. package/dist/esm/src/errors/index.js.map +6 -5
  21. package/dist/esm/src/index.js +64 -62
  22. package/dist/esm/src/index.js.map +15 -9
  23. package/dist/esm/src/plugins/index.js +14 -14
  24. package/dist/esm/src/plugins/index.js.map +4 -4
  25. package/dist/esm/src/testing/index.js +34 -32
  26. package/dist/esm/src/testing/index.js.map +10 -6
  27. package/dist/types/cli/commands/generate.d.ts.map +1 -1
  28. package/dist/types/core/application.d.ts +15 -0
  29. package/dist/types/core/application.d.ts.map +1 -1
  30. package/dist/types/core/interceptor-manager.d.ts +16 -0
  31. package/dist/types/core/interceptor-manager.d.ts.map +1 -0
  32. package/dist/types/core/router-compiler.d.ts +5 -1
  33. package/dist/types/core/router-compiler.d.ts.map +1 -1
  34. package/dist/types/decorators/extras.d.ts +20 -0
  35. package/dist/types/decorators/extras.d.ts.map +1 -0
  36. package/dist/types/decorators/stream.d.ts +5 -0
  37. package/dist/types/decorators/stream.d.ts.map +1 -0
  38. package/dist/types/docs/openapi-generator.d.ts +2 -2
  39. package/dist/types/docs/openapi-generator.d.ts.map +1 -1
  40. package/dist/types/docs/zod-to-json-schema.d.ts.map +1 -1
  41. package/dist/types/errors/exception-filter.d.ts +12 -0
  42. package/dist/types/errors/exception-filter.d.ts.map +1 -0
  43. package/dist/types/errors/index.d.ts +2 -0
  44. package/dist/types/errors/index.d.ts.map +1 -1
  45. package/dist/types/events/event-bus.d.ts +14 -0
  46. package/dist/types/events/event-bus.d.ts.map +1 -0
  47. package/dist/types/events/index.d.ts +2 -0
  48. package/dist/types/events/index.d.ts.map +1 -0
  49. package/dist/types/index.d.ts +7 -0
  50. package/dist/types/index.d.ts.map +1 -1
  51. package/dist/types/testing/index.d.ts +1 -0
  52. package/dist/types/testing/index.d.ts.map +1 -1
  53. package/dist/types/testing/isolate.d.ts +12 -0
  54. package/dist/types/testing/isolate.d.ts.map +1 -0
  55. package/dist/types/types/index.d.ts +2 -0
  56. package/dist/types/types/index.d.ts.map +1 -1
  57. package/package.json +3 -2
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env bun
2
- var f$=Object.create;var{getPrototypeOf:O$,defineProperty:D,getOwnPropertyNames:t,getOwnPropertyDescriptor:C$}=Object,a=Object.prototype.hasOwnProperty;function o($){return this[$]}var b$,x$,v$=($,z,q)=>{var B=$!=null&&typeof $==="object";if(B){var X=z?b$??=new WeakMap:x$??=new WeakMap,Y=X.get($);if(Y)return Y}q=$!=null?f$(O$($)):{};let Z=z||!$||!$.__esModule?D(q,"default",{value:$,enumerable:!0}):q;for(let Q of t($))if(!a.call(Z,Q))D(Z,Q,{get:o.bind($,Q),enumerable:!0});if(B)X.set($,Z);return Z},wz=($)=>{var z=(r??=new WeakMap).get($),q;if(z)return z;if(z=D({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var B of t($))if(!a.call(z,B))D(z,B,{get:o.bind($,B),enumerable:!(q=C$($,B))||q.enumerable})}return r.set($,z),z},r,E=($,z)=>()=>(z||$((z={exports:{}}).exports,z),z.exports);var u$=($)=>$;function h$($,z){this[$]=u$.bind(null,z)}var j=($,z)=>{for(var q in z)D($,q,{get:z[q],enumerable:!0,configurable:!0,set:h$.bind(z,q)})};var N=($,z)=>()=>($&&(z=$($=0)),z);var y=E((f)=>{class k extends Error{constructor($,z,q){super(q);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=z,this.exitCode=$,this.nestedError=void 0}}class e extends k{constructor($){super(1,"commander.invalidArgument",$);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}f.CommanderError=k;f.InvalidArgumentError=e});var P=E((O)=>{var{InvalidArgumentError:g$}=y();class $${constructor($,z){switch(this.description=z||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,$[0]){case"<":this.required=!0,this._name=$.slice(1,-1);break;case"[":this.required=!1,this._name=$.slice(1,-1);break;default:this.required=!0,this._name=$;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue($,z){if(z===this.defaultValue||!Array.isArray(z))return[$];return z.push($),z}default($,z){return this.defaultValue=$,this.defaultValueDescription=z,this}argParser($){return this.parseArg=$,this}choices($){return this.argChoices=$.slice(),this.parseArg=(z,q)=>{if(!this.argChoices.includes(z))throw new g$(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(z,q);return z},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function l$($){let z=$.name()+($.variadic===!0?"...":"");return $.required?"<"+z+">":"["+z+"]"}O.Argument=$$;O.humanReadableArgName=l$});var b=E((C)=>{var{humanReadableArgName:c$}=P();class z${constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext($){this.helpWidth=this.helpWidth??$.helpWidth??80}visibleCommands($){let z=$.commands.filter((B)=>!B._hidden),q=$._getHelpCommand();if(q&&!q._hidden)z.push(q);if(this.sortSubcommands)z.sort((B,X)=>{return B.name().localeCompare(X.name())});return z}compareOptions($,z){let q=(B)=>{return B.short?B.short.replace(/^-/,""):B.long.replace(/^--/,"")};return q($).localeCompare(q(z))}visibleOptions($){let z=$.options.filter((B)=>!B.hidden),q=$._getHelpOption();if(q&&!q.hidden){let B=q.short&&$._findOption(q.short),X=q.long&&$._findOption(q.long);if(!B&&!X)z.push(q);else if(q.long&&!X)z.push($.createOption(q.long,q.description));else if(q.short&&!B)z.push($.createOption(q.short,q.description))}if(this.sortOptions)z.sort(this.compareOptions);return z}visibleGlobalOptions($){if(!this.showGlobalOptions)return[];let z=[];for(let q=$.parent;q;q=q.parent){let B=q.options.filter((X)=>!X.hidden);z.push(...B)}if(this.sortOptions)z.sort(this.compareOptions);return z}visibleArguments($){if($._argsDescription)$.registeredArguments.forEach((z)=>{z.description=z.description||$._argsDescription[z.name()]||""});if($.registeredArguments.find((z)=>z.description))return $.registeredArguments;return[]}subcommandTerm($){let z=$.registeredArguments.map((q)=>c$(q)).join(" ");return $._name+($._aliases[0]?"|"+$._aliases[0]:"")+($.options.length?" [options]":"")+(z?" "+z:"")}optionTerm($){return $.flags}argumentTerm($){return $.name()}longestSubcommandTermLength($,z){return z.visibleCommands($).reduce((q,B)=>{return Math.max(q,this.displayWidth(z.styleSubcommandTerm(z.subcommandTerm(B))))},0)}longestOptionTermLength($,z){return z.visibleOptions($).reduce((q,B)=>{return Math.max(q,this.displayWidth(z.styleOptionTerm(z.optionTerm(B))))},0)}longestGlobalOptionTermLength($,z){return z.visibleGlobalOptions($).reduce((q,B)=>{return Math.max(q,this.displayWidth(z.styleOptionTerm(z.optionTerm(B))))},0)}longestArgumentTermLength($,z){return z.visibleArguments($).reduce((q,B)=>{return Math.max(q,this.displayWidth(z.styleArgumentTerm(z.argumentTerm(B))))},0)}commandUsage($){let z=$._name;if($._aliases[0])z=z+"|"+$._aliases[0];let q="";for(let B=$.parent;B;B=B.parent)q=B.name()+" "+q;return q+z+" "+$.usage()}commandDescription($){return $.description()}subcommandDescription($){return $.summary()||$.description()}optionDescription($){let z=[];if($.argChoices)z.push(`choices: ${$.argChoices.map((q)=>JSON.stringify(q)).join(", ")}`);if($.defaultValue!==void 0){if($.required||$.optional||$.isBoolean()&&typeof $.defaultValue==="boolean")z.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`)}if($.presetArg!==void 0&&$.optional)z.push(`preset: ${JSON.stringify($.presetArg)}`);if($.envVar!==void 0)z.push(`env: ${$.envVar}`);if(z.length>0){let q=`(${z.join(", ")})`;if($.description)return`${$.description} ${q}`;return q}return $.description}argumentDescription($){let z=[];if($.argChoices)z.push(`choices: ${$.argChoices.map((q)=>JSON.stringify(q)).join(", ")}`);if($.defaultValue!==void 0)z.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`);if(z.length>0){let q=`(${z.join(", ")})`;if($.description)return`${$.description} ${q}`;return q}return $.description}formatItemList($,z,q){if(z.length===0)return[];return[q.styleTitle($),...z,""]}groupItems($,z,q){let B=new Map;return $.forEach((X)=>{let Y=q(X);if(!B.has(Y))B.set(Y,[])}),z.forEach((X)=>{let Y=q(X);if(!B.has(Y))B.set(Y,[]);B.get(Y).push(X)}),B}formatHelp($,z){let q=z.padWidth($,z),B=z.helpWidth??80;function X(J,U){return z.formatItem(J,q,U,z)}let Y=[`${z.styleTitle("Usage:")} ${z.styleUsage(z.commandUsage($))}`,""],Z=z.commandDescription($);if(Z.length>0)Y=Y.concat([z.boxWrap(z.styleCommandDescription(Z),B),""]);let Q=z.visibleArguments($).map((J)=>{return X(z.styleArgumentTerm(z.argumentTerm(J)),z.styleArgumentDescription(z.argumentDescription(J)))});if(Y=Y.concat(this.formatItemList("Arguments:",Q,z)),this.groupItems($.options,z.visibleOptions($),(J)=>J.helpGroupHeading??"Options:").forEach((J,U)=>{let L=J.map((W)=>{return X(z.styleOptionTerm(z.optionTerm(W)),z.styleOptionDescription(z.optionDescription(W)))});Y=Y.concat(this.formatItemList(U,L,z))}),z.showGlobalOptions){let J=z.visibleGlobalOptions($).map((U)=>{return X(z.styleOptionTerm(z.optionTerm(U)),z.styleOptionDescription(z.optionDescription(U)))});Y=Y.concat(this.formatItemList("Global Options:",J,z))}return this.groupItems($.commands,z.visibleCommands($),(J)=>J.helpGroup()||"Commands:").forEach((J,U)=>{let L=J.map((W)=>{return X(z.styleSubcommandTerm(z.subcommandTerm(W)),z.styleSubcommandDescription(z.subcommandDescription(W)))});Y=Y.concat(this.formatItemList(U,L,z))}),Y.join(`
3
- `)}displayWidth($){return q$($).length}styleTitle($){return $}styleUsage($){return $.split(" ").map((z)=>{if(z==="[options]")return this.styleOptionText(z);if(z==="[command]")return this.styleSubcommandText(z);if(z[0]==="["||z[0]==="<")return this.styleArgumentText(z);return this.styleCommandText(z)}).join(" ")}styleCommandDescription($){return this.styleDescriptionText($)}styleOptionDescription($){return this.styleDescriptionText($)}styleSubcommandDescription($){return this.styleDescriptionText($)}styleArgumentDescription($){return this.styleDescriptionText($)}styleDescriptionText($){return $}styleOptionTerm($){return this.styleOptionText($)}styleSubcommandTerm($){return $.split(" ").map((z)=>{if(z==="[options]")return this.styleOptionText(z);if(z[0]==="["||z[0]==="<")return this.styleArgumentText(z);return this.styleSubcommandText(z)}).join(" ")}styleArgumentTerm($){return this.styleArgumentText($)}styleOptionText($){return $}styleArgumentText($){return $}styleSubcommandText($){return $}styleCommandText($){return $}padWidth($,z){return Math.max(z.longestOptionTermLength($,z),z.longestGlobalOptionTermLength($,z),z.longestSubcommandTermLength($,z),z.longestArgumentTermLength($,z))}preformatted($){return/\n[^\S\r\n]/.test($)}formatItem($,z,q,B){let Y=" ".repeat(2);if(!q)return Y+$;let Z=$.padEnd(z+$.length-B.displayWidth($)),Q=2,_=(this.helpWidth??80)-z-Q-2,J;if(_<this.minWidthToWrap||B.preformatted(q))J=q;else J=B.boxWrap(q,_).replace(/\n/g,`
4
- `+" ".repeat(z+Q));return Y+Z+" ".repeat(Q)+J.replace(/\n/g,`
5
- ${Y}`)}boxWrap($,z){if(z<this.minWidthToWrap)return $;let q=$.split(/\r\n|\n/),B=/[\s]*[^\s]+/g,X=[];return q.forEach((Y)=>{let Z=Y.match(B);if(Z===null){X.push("");return}let Q=[Z.shift()],R=this.displayWidth(Q[0]);Z.forEach((_)=>{let J=this.displayWidth(_);if(R+J<=z){Q.push(_),R+=J;return}X.push(Q.join(""));let U=_.trimStart();Q=[U],R=this.displayWidth(U)}),X.push(Q.join(""))}),X.join(`
6
- `)}}function q$($){let z=/\x1b\[\d*(;\d*)*m/g;return $.replace(z,"")}C.Help=z$;C.stripColor=q$});var v=E((x)=>{var{InvalidArgumentError:d$}=y();class X${constructor($,z){this.flags=$,this.description=z||"",this.required=$.includes("<"),this.optional=$.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test($),this.mandatory=!1;let q=m$($);if(this.short=q.shortFlag,this.long=q.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default($,z){return this.defaultValue=$,this.defaultValueDescription=z,this}preset($){return this.presetArg=$,this}conflicts($){return this.conflictsWith=this.conflictsWith.concat($),this}implies($){let z=$;if(typeof $==="string")z={[$]:!0};return this.implied=Object.assign(this.implied||{},z),this}env($){return this.envVar=$,this}argParser($){return this.parseArg=$,this}makeOptionMandatory($=!0){return this.mandatory=!!$,this}hideHelp($=!0){return this.hidden=!!$,this}_collectValue($,z){if(z===this.defaultValue||!Array.isArray(z))return[$];return z.push($),z}choices($){return this.argChoices=$.slice(),this.parseArg=(z,q)=>{if(!this.argChoices.includes(z))throw new d$(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(z,q);return z},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return B$(this.name().replace(/^no-/,""));return B$(this.name())}helpGroup($){return this.helpGroupHeading=$,this}is($){return this.short===$||this.long===$}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class Y${constructor($){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,$.forEach((z)=>{if(z.negate)this.negativeOptions.set(z.attributeName(),z);else this.positiveOptions.set(z.attributeName(),z)}),this.negativeOptions.forEach((z,q)=>{if(this.positiveOptions.has(q))this.dualOptions.add(q)})}valueFromOption($,z){let q=z.attributeName();if(!this.dualOptions.has(q))return!0;let B=this.negativeOptions.get(q).presetArg,X=B!==void 0?B:!1;return z.negate===(X===$)}}function B$($){return $.split("-").reduce((z,q)=>{return z+q[0].toUpperCase()+q.slice(1)})}function m$($){let z,q,B=/^-[^-]$/,X=/^--[^-]/,Y=$.split(/[ |,]+/).concat("guard");if(B.test(Y[0]))z=Y.shift();if(X.test(Y[0]))q=Y.shift();if(!z&&B.test(Y[0]))z=Y.shift();if(!z&&X.test(Y[0]))z=q,q=Y.shift();if(Y[0].startsWith("-")){let Z=Y[0],Q=`option creation failed due to '${Z}' in option flags '${$}'`;if(/^-[^-][^-]/.test(Z))throw Error(`${Q}
2
+ var x$=Object.create;var{getPrototypeOf:b$,defineProperty:F,getOwnPropertyNames:e,getOwnPropertyDescriptor:v$}=Object,$$=Object.prototype.hasOwnProperty;function q$($){return this[$]}var u$,h$,g$=($,q,B)=>{var X=$!=null&&typeof $==="object";if(X){var Y=q?u$??=new WeakMap:h$??=new WeakMap,Z=Y.get($);if(Z)return Z}B=$!=null?x$(b$($)):{};let z=q||!$||!$.__esModule?F(B,"default",{value:$,enumerable:!0}):B;for(let Q of e($))if(!$$.call(z,Q))F(z,Q,{get:q$.bind($,Q),enumerable:!0});if(X)Y.set($,z);return z},xq=($)=>{var q=(a??=new WeakMap).get($),B;if(q)return q;if(q=F({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var X of e($))if(!$$.call(q,X))F(q,X,{get:q$.bind($,X),enumerable:!(B=v$($,X))||B.enumerable})}return a.set($,q),q},a,V=($,q)=>()=>(q||$((q={exports:{}}).exports,q),q.exports);var l$=($)=>$;function c$($,q){this[$]=l$.bind(null,q)}var f=($,q)=>{for(var B in q)F($,B,{get:q[B],enumerable:!0,configurable:!0,set:c$.bind(q,B)})};var A=($,q)=>()=>($&&(q=$($=0)),q);var j=V((b)=>{class x extends Error{constructor($,q,B){super(B);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=q,this.exitCode=$,this.nestedError=void 0}}class B$ extends x{constructor($){super(1,"commander.invalidArgument",$);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}b.CommanderError=x;b.InvalidArgumentError=B$});var k=V((v)=>{var{InvalidArgumentError:d$}=j();class X${constructor($,q){switch(this.description=q||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,$[0]){case"<":this.required=!0,this._name=$.slice(1,-1);break;case"[":this.required=!1,this._name=$.slice(1,-1);break;default:this.required=!0,this._name=$;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue($,q){if(q===this.defaultValue||!Array.isArray(q))return[$];return q.push($),q}default($,q){return this.defaultValue=$,this.defaultValueDescription=q,this}argParser($){return this.parseArg=$,this}choices($){return this.argChoices=$.slice(),this.parseArg=(q,B)=>{if(!this.argChoices.includes(q))throw new d$(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(q,B);return q},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function m$($){let q=$.name()+($.variadic===!0?"...":"");return $.required?"<"+q+">":"["+q+"]"}v.Argument=X$;v.humanReadableArgName=m$});var h=V((u)=>{var{humanReadableArgName:i$}=k();class Y${constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext($){this.helpWidth=this.helpWidth??$.helpWidth??80}visibleCommands($){let q=$.commands.filter((X)=>!X._hidden),B=$._getHelpCommand();if(B&&!B._hidden)q.push(B);if(this.sortSubcommands)q.sort((X,Y)=>{return X.name().localeCompare(Y.name())});return q}compareOptions($,q){let B=(X)=>{return X.short?X.short.replace(/^-/,""):X.long.replace(/^--/,"")};return B($).localeCompare(B(q))}visibleOptions($){let q=$.options.filter((X)=>!X.hidden),B=$._getHelpOption();if(B&&!B.hidden){let X=B.short&&$._findOption(B.short),Y=B.long&&$._findOption(B.long);if(!X&&!Y)q.push(B);else if(B.long&&!Y)q.push($.createOption(B.long,B.description));else if(B.short&&!X)q.push($.createOption(B.short,B.description))}if(this.sortOptions)q.sort(this.compareOptions);return q}visibleGlobalOptions($){if(!this.showGlobalOptions)return[];let q=[];for(let B=$.parent;B;B=B.parent){let X=B.options.filter((Y)=>!Y.hidden);q.push(...X)}if(this.sortOptions)q.sort(this.compareOptions);return q}visibleArguments($){if($._argsDescription)$.registeredArguments.forEach((q)=>{q.description=q.description||$._argsDescription[q.name()]||""});if($.registeredArguments.find((q)=>q.description))return $.registeredArguments;return[]}subcommandTerm($){let q=$.registeredArguments.map((B)=>i$(B)).join(" ");return $._name+($._aliases[0]?"|"+$._aliases[0]:"")+($.options.length?" [options]":"")+(q?" "+q:"")}optionTerm($){return $.flags}argumentTerm($){return $.name()}longestSubcommandTermLength($,q){return q.visibleCommands($).reduce((B,X)=>{return Math.max(B,this.displayWidth(q.styleSubcommandTerm(q.subcommandTerm(X))))},0)}longestOptionTermLength($,q){return q.visibleOptions($).reduce((B,X)=>{return Math.max(B,this.displayWidth(q.styleOptionTerm(q.optionTerm(X))))},0)}longestGlobalOptionTermLength($,q){return q.visibleGlobalOptions($).reduce((B,X)=>{return Math.max(B,this.displayWidth(q.styleOptionTerm(q.optionTerm(X))))},0)}longestArgumentTermLength($,q){return q.visibleArguments($).reduce((B,X)=>{return Math.max(B,this.displayWidth(q.styleArgumentTerm(q.argumentTerm(X))))},0)}commandUsage($){let q=$._name;if($._aliases[0])q=q+"|"+$._aliases[0];let B="";for(let X=$.parent;X;X=X.parent)B=X.name()+" "+B;return B+q+" "+$.usage()}commandDescription($){return $.description()}subcommandDescription($){return $.summary()||$.description()}optionDescription($){let q=[];if($.argChoices)q.push(`choices: ${$.argChoices.map((B)=>JSON.stringify(B)).join(", ")}`);if($.defaultValue!==void 0){if($.required||$.optional||$.isBoolean()&&typeof $.defaultValue==="boolean")q.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`)}if($.presetArg!==void 0&&$.optional)q.push(`preset: ${JSON.stringify($.presetArg)}`);if($.envVar!==void 0)q.push(`env: ${$.envVar}`);if(q.length>0){let B=`(${q.join(", ")})`;if($.description)return`${$.description} ${B}`;return B}return $.description}argumentDescription($){let q=[];if($.argChoices)q.push(`choices: ${$.argChoices.map((B)=>JSON.stringify(B)).join(", ")}`);if($.defaultValue!==void 0)q.push(`default: ${$.defaultValueDescription||JSON.stringify($.defaultValue)}`);if(q.length>0){let B=`(${q.join(", ")})`;if($.description)return`${$.description} ${B}`;return B}return $.description}formatItemList($,q,B){if(q.length===0)return[];return[B.styleTitle($),...q,""]}groupItems($,q,B){let X=new Map;return $.forEach((Y)=>{let Z=B(Y);if(!X.has(Z))X.set(Z,[])}),q.forEach((Y)=>{let Z=B(Y);if(!X.has(Z))X.set(Z,[]);X.get(Z).push(Y)}),X}formatHelp($,q){let B=q.padWidth($,q),X=q.helpWidth??80;function Y(J,U){return q.formatItem(J,B,U,q)}let Z=[`${q.styleTitle("Usage:")} ${q.styleUsage(q.commandUsage($))}`,""],z=q.commandDescription($);if(z.length>0)Z=Z.concat([q.boxWrap(q.styleCommandDescription(z),X),""]);let Q=q.visibleArguments($).map((J)=>{return Y(q.styleArgumentTerm(q.argumentTerm(J)),q.styleArgumentDescription(q.argumentDescription(J)))});if(Z=Z.concat(this.formatItemList("Arguments:",Q,q)),this.groupItems($.options,q.visibleOptions($),(J)=>J.helpGroupHeading??"Options:").forEach((J,U)=>{let K=J.map((S)=>{return Y(q.styleOptionTerm(q.optionTerm(S)),q.styleOptionDescription(q.optionDescription(S)))});Z=Z.concat(this.formatItemList(U,K,q))}),q.showGlobalOptions){let J=q.visibleGlobalOptions($).map((U)=>{return Y(q.styleOptionTerm(q.optionTerm(U)),q.styleOptionDescription(q.optionDescription(U)))});Z=Z.concat(this.formatItemList("Global Options:",J,q))}return this.groupItems($.commands,q.visibleCommands($),(J)=>J.helpGroup()||"Commands:").forEach((J,U)=>{let K=J.map((S)=>{return Y(q.styleSubcommandTerm(q.subcommandTerm(S)),q.styleSubcommandDescription(q.subcommandDescription(S)))});Z=Z.concat(this.formatItemList(U,K,q))}),Z.join(`
3
+ `)}displayWidth($){return Z$($).length}styleTitle($){return $}styleUsage($){return $.split(" ").map((q)=>{if(q==="[options]")return this.styleOptionText(q);if(q==="[command]")return this.styleSubcommandText(q);if(q[0]==="["||q[0]==="<")return this.styleArgumentText(q);return this.styleCommandText(q)}).join(" ")}styleCommandDescription($){return this.styleDescriptionText($)}styleOptionDescription($){return this.styleDescriptionText($)}styleSubcommandDescription($){return this.styleDescriptionText($)}styleArgumentDescription($){return this.styleDescriptionText($)}styleDescriptionText($){return $}styleOptionTerm($){return this.styleOptionText($)}styleSubcommandTerm($){return $.split(" ").map((q)=>{if(q==="[options]")return this.styleOptionText(q);if(q[0]==="["||q[0]==="<")return this.styleArgumentText(q);return this.styleSubcommandText(q)}).join(" ")}styleArgumentTerm($){return this.styleArgumentText($)}styleOptionText($){return $}styleArgumentText($){return $}styleSubcommandText($){return $}styleCommandText($){return $}padWidth($,q){return Math.max(q.longestOptionTermLength($,q),q.longestGlobalOptionTermLength($,q),q.longestSubcommandTermLength($,q),q.longestArgumentTermLength($,q))}preformatted($){return/\n[^\S\r\n]/.test($)}formatItem($,q,B,X){let Z=" ".repeat(2);if(!B)return Z+$;let z=$.padEnd(q+$.length-X.displayWidth($)),Q=2,_=(this.helpWidth??80)-q-Q-2,J;if(_<this.minWidthToWrap||X.preformatted(B))J=B;else J=X.boxWrap(B,_).replace(/\n/g,`
4
+ `+" ".repeat(q+Q));return Z+z+" ".repeat(Q)+J.replace(/\n/g,`
5
+ ${Z}`)}boxWrap($,q){if(q<this.minWidthToWrap)return $;let B=$.split(/\r\n|\n/),X=/[\s]*[^\s]+/g,Y=[];return B.forEach((Z)=>{let z=Z.match(X);if(z===null){Y.push("");return}let Q=[z.shift()],R=this.displayWidth(Q[0]);z.forEach((_)=>{let J=this.displayWidth(_);if(R+J<=q){Q.push(_),R+=J;return}Y.push(Q.join(""));let U=_.trimStart();Q=[U],R=this.displayWidth(U)}),Y.push(Q.join(""))}),Y.join(`
6
+ `)}}function Z$($){let q=/\x1b\[\d*(;\d*)*m/g;return $.replace(q,"")}u.Help=Y$;u.stripColor=Z$});var l=V((g)=>{var{InvalidArgumentError:p$}=j();class Q${constructor($,q){this.flags=$,this.description=q||"",this.required=$.includes("<"),this.optional=$.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test($),this.mandatory=!1;let B=s$($);if(this.short=B.shortFlag,this.long=B.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default($,q){return this.defaultValue=$,this.defaultValueDescription=q,this}preset($){return this.presetArg=$,this}conflicts($){return this.conflictsWith=this.conflictsWith.concat($),this}implies($){let q=$;if(typeof $==="string")q={[$]:!0};return this.implied=Object.assign(this.implied||{},q),this}env($){return this.envVar=$,this}argParser($){return this.parseArg=$,this}makeOptionMandatory($=!0){return this.mandatory=!!$,this}hideHelp($=!0){return this.hidden=!!$,this}_collectValue($,q){if(q===this.defaultValue||!Array.isArray(q))return[$];return q.push($),q}choices($){return this.argChoices=$.slice(),this.parseArg=(q,B)=>{if(!this.argChoices.includes(q))throw new p$(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(q,B);return q},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return z$(this.name().replace(/^no-/,""));return z$(this.name())}helpGroup($){return this.helpGroupHeading=$,this}is($){return this.short===$||this.long===$}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class _${constructor($){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,$.forEach((q)=>{if(q.negate)this.negativeOptions.set(q.attributeName(),q);else this.positiveOptions.set(q.attributeName(),q)}),this.negativeOptions.forEach((q,B)=>{if(this.positiveOptions.has(B))this.dualOptions.add(B)})}valueFromOption($,q){let B=q.attributeName();if(!this.dualOptions.has(B))return!0;let X=this.negativeOptions.get(B).presetArg,Y=X!==void 0?X:!1;return q.negate===(Y===$)}}function z$($){return $.split("-").reduce((q,B)=>{return q+B[0].toUpperCase()+B.slice(1)})}function s$($){let q,B,X=/^-[^-]$/,Y=/^--[^-]/,Z=$.split(/[ |,]+/).concat("guard");if(X.test(Z[0]))q=Z.shift();if(Y.test(Z[0]))B=Z.shift();if(!q&&X.test(Z[0]))q=Z.shift();if(!q&&Y.test(Z[0]))q=B,B=Z.shift();if(Z[0].startsWith("-")){let z=Z[0],Q=`option creation failed due to '${z}' in option flags '${$}'`;if(/^-[^-][^-]/.test(z))throw Error(`${Q}
7
7
  - a short flag is a single dash and a single character
8
8
  - either use a single dash and a single character (for a short flag)
9
- - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(B.test(Z))throw Error(`${Q}
10
- - too many short flags`);if(X.test(Z))throw Error(`${Q}
9
+ - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(X.test(z))throw Error(`${Q}
10
+ - too many short flags`);if(Y.test(z))throw Error(`${Q}
11
11
  - too many long flags`);throw Error(`${Q}
12
- - unrecognised flag format`)}if(z===void 0&&q===void 0)throw Error(`option creation failed due to no flags found in '${$}'.`);return{shortFlag:z,longFlag:q}}x.Option=X$;x.DualOptions=Y$});var Q$=E((Z$)=>{function i$($,z){if(Math.abs($.length-z.length)>3)return Math.max($.length,z.length);let q=[];for(let B=0;B<=$.length;B++)q[B]=[B];for(let B=0;B<=z.length;B++)q[0][B]=B;for(let B=1;B<=z.length;B++)for(let X=1;X<=$.length;X++){let Y=1;if($[X-1]===z[B-1])Y=0;else Y=1;if(q[X][B]=Math.min(q[X-1][B]+1,q[X][B-1]+1,q[X-1][B-1]+Y),X>1&&B>1&&$[X-1]===z[B-2]&&$[X-2]===z[B-1])q[X][B]=Math.min(q[X][B],q[X-2][B-2]+1)}return q[$.length][z.length]}function s$($,z){if(!z||z.length===0)return"";z=Array.from(new Set(z));let q=$.startsWith("--");if(q)$=$.slice(2),z=z.map((Z)=>Z.slice(2));let B=[],X=3,Y=0.4;if(z.forEach((Z)=>{if(Z.length<=1)return;let Q=i$($,Z),R=Math.max($.length,Z.length);if((R-Q)/R>Y){if(Q<X)X=Q,B=[Z];else if(Q===X)B.push(Z)}}),B.sort((Z,Q)=>Z.localeCompare(Q)),q)B=B.map((Z)=>`--${Z}`);if(B.length>1)return`
13
- (Did you mean one of ${B.join(", ")}?)`;if(B.length===1)return`
14
- (Did you mean ${B[0]}?)`;return""}Z$.suggestSimilar=s$});var U$=E((c)=>{var p$=require("node:events").EventEmitter,u=require("node:child_process"),K=require("node:path"),w=require("node:fs"),T=require("node:process"),{Argument:n$,humanReadableArgName:r$}=P(),{CommanderError:h}=y(),{Help:t$,stripColor:a$}=b(),{Option:_$,DualOptions:o$}=v(),{suggestSimilar:J$}=Q$();class l extends p${constructor($){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=$||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(z)=>T.stdout.write(z),writeErr:(z)=>T.stderr.write(z),outputError:(z,q)=>q(z),getOutHelpWidth:()=>T.stdout.isTTY?T.stdout.columns:void 0,getErrHelpWidth:()=>T.stderr.isTTY?T.stderr.columns:void 0,getOutHasColors:()=>g()??(T.stdout.isTTY&&T.stdout.hasColors?.()),getErrHasColors:()=>g()??(T.stderr.isTTY&&T.stderr.hasColors?.()),stripColor:(z)=>a$(z)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings($){return this._outputConfiguration=$._outputConfiguration,this._helpOption=$._helpOption,this._helpCommand=$._helpCommand,this._helpConfiguration=$._helpConfiguration,this._exitCallback=$._exitCallback,this._storeOptionsAsProperties=$._storeOptionsAsProperties,this._combineFlagAndOptionalValue=$._combineFlagAndOptionalValue,this._allowExcessArguments=$._allowExcessArguments,this._enablePositionalOptions=$._enablePositionalOptions,this._showHelpAfterError=$._showHelpAfterError,this._showSuggestionAfterError=$._showSuggestionAfterError,this}_getCommandAndAncestors(){let $=[];for(let z=this;z;z=z.parent)$.push(z);return $}command($,z,q){let B=z,X=q;if(typeof B==="object"&&B!==null)X=B,B=null;X=X||{};let[,Y,Z]=$.match(/([^ ]+) *(.*)/),Q=this.createCommand(Y);if(B)Q.description(B),Q._executableHandler=!0;if(X.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(X.noHelp||X.hidden),Q._executableFile=X.executableFile||null,Z)Q.arguments(Z);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),B)return this;return Q}createCommand($){return new l($)}createHelp(){return Object.assign(new t$,this.configureHelp())}configureHelp($){if($===void 0)return this._helpConfiguration;return this._helpConfiguration=$,this}configureOutput($){if($===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...$},this}showHelpAfterError($=!0){if(typeof $!=="string")$=!!$;return this._showHelpAfterError=$,this}showSuggestionAfterError($=!0){return this._showSuggestionAfterError=!!$,this}addCommand($,z){if(!$._name)throw Error(`Command passed to .addCommand() must have a name
15
- - specify the name in Command constructor or using .name()`);if(z=z||{},z.isDefault)this._defaultCommandName=$._name;if(z.noHelp||z.hidden)$._hidden=!0;return this._registerCommand($),$.parent=this,$._checkForBrokenPassThrough(),this}createArgument($,z){return new n$($,z)}argument($,z,q,B){let X=this.createArgument($,z);if(typeof q==="function")X.default(B).argParser(q);else X.default(q);return this.addArgument(X),this}arguments($){return $.trim().split(/ +/).forEach((z)=>{this.argument(z)}),this}addArgument($){let z=this.registeredArguments.slice(-1)[0];if(z?.variadic)throw Error(`only the last argument can be variadic '${z.name()}'`);if($.required&&$.defaultValue!==void 0&&$.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${$.name()}'`);return this.registeredArguments.push($),this}helpCommand($,z){if(typeof $==="boolean"){if(this._addImplicitHelpCommand=$,$&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let q=$??"help [command]",[,B,X]=q.match(/([^ ]+) *(.*)/),Y=z??"display help for command",Z=this.createCommand(B);if(Z.helpOption(!1),X)Z.arguments(X);if(Y)Z.description(Y);if(this._addImplicitHelpCommand=!0,this._helpCommand=Z,$||z)this._initCommandGroup(Z);return this}addHelpCommand($,z){if(typeof $!=="object")return this.helpCommand($,z),this;return this._addImplicitHelpCommand=!0,this._helpCommand=$,this._initCommandGroup($),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook($,z){let q=["preSubcommand","preAction","postAction"];if(!q.includes($))throw Error(`Unexpected value for event passed to hook : '${$}'.
16
- Expecting one of '${q.join("', '")}'`);if(this._lifeCycleHooks[$])this._lifeCycleHooks[$].push(z);else this._lifeCycleHooks[$]=[z];return this}exitOverride($){if($)this._exitCallback=$;else this._exitCallback=(z)=>{if(z.code!=="commander.executeSubCommandAsync")throw z};return this}_exit($,z,q){if(this._exitCallback)this._exitCallback(new h($,z,q));T.exit($)}action($){let z=(q)=>{let B=this.registeredArguments.length,X=q.slice(0,B);if(this._storeOptionsAsProperties)X[B]=this;else X[B]=this.opts();return X.push(this),$.apply(this,X)};return this._actionHandler=z,this}createOption($,z){return new _$($,z)}_callParseArg($,z,q,B){try{return $.parseArg(z,q)}catch(X){if(X.code==="commander.invalidArgument"){let Y=`${B} ${X.message}`;this.error(Y,{exitCode:X.exitCode,code:X.code})}throw X}}_registerOption($){let z=$.short&&this._findOption($.short)||$.long&&this._findOption($.long);if(z){let q=$.long&&this._findOption($.long)?$.long:$.short;throw Error(`Cannot add option '${$.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${q}'
17
- - already used by option '${z.flags}'`)}this._initOptionGroup($),this.options.push($)}_registerCommand($){let z=(B)=>{return[B.name()].concat(B.aliases())},q=z($).find((B)=>this._findCommand(B));if(q){let B=z(this._findCommand(q)).join("|"),X=z($).join("|");throw Error(`cannot add command '${X}' as already have command '${B}'`)}this._initCommandGroup($),this.commands.push($)}addOption($){this._registerOption($);let z=$.name(),q=$.attributeName();if($.negate){let X=$.long.replace(/^--no-/,"--");if(!this._findOption(X))this.setOptionValueWithSource(q,$.defaultValue===void 0?!0:$.defaultValue,"default")}else if($.defaultValue!==void 0)this.setOptionValueWithSource(q,$.defaultValue,"default");let B=(X,Y,Z)=>{if(X==null&&$.presetArg!==void 0)X=$.presetArg;let Q=this.getOptionValue(q);if(X!==null&&$.parseArg)X=this._callParseArg($,X,Q,Y);else if(X!==null&&$.variadic)X=$._collectValue(X,Q);if(X==null)if($.negate)X=!1;else if($.isBoolean()||$.optional)X=!0;else X="";this.setOptionValueWithSource(q,X,Z)};if(this.on("option:"+z,(X)=>{let Y=`error: option '${$.flags}' argument '${X}' is invalid.`;B(X,Y,"cli")}),$.envVar)this.on("optionEnv:"+z,(X)=>{let Y=`error: option '${$.flags}' value '${X}' from env '${$.envVar}' is invalid.`;B(X,Y,"env")});return this}_optionEx($,z,q,B,X){if(typeof z==="object"&&z instanceof _$)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let Y=this.createOption(z,q);if(Y.makeOptionMandatory(!!$.mandatory),typeof B==="function")Y.default(X).argParser(B);else if(B instanceof RegExp){let Z=B;B=(Q,R)=>{let _=Z.exec(Q);return _?_[0]:R},Y.default(X).argParser(B)}else Y.default(B);return this.addOption(Y)}option($,z,q,B){return this._optionEx({},$,z,q,B)}requiredOption($,z,q,B){return this._optionEx({mandatory:!0},$,z,q,B)}combineFlagAndOptionalValue($=!0){return this._combineFlagAndOptionalValue=!!$,this}allowUnknownOption($=!0){return this._allowUnknownOption=!!$,this}allowExcessArguments($=!0){return this._allowExcessArguments=!!$,this}enablePositionalOptions($=!0){return this._enablePositionalOptions=!!$,this}passThroughOptions($=!0){return this._passThroughOptions=!!$,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties($=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!$,this}getOptionValue($){if(this._storeOptionsAsProperties)return this[$];return this._optionValues[$]}setOptionValue($,z){return this.setOptionValueWithSource($,z,void 0)}setOptionValueWithSource($,z,q){if(this._storeOptionsAsProperties)this[$]=z;else this._optionValues[$]=z;return this._optionValueSources[$]=q,this}getOptionValueSource($){return this._optionValueSources[$]}getOptionValueSourceWithGlobals($){let z;return this._getCommandAndAncestors().forEach((q)=>{if(q.getOptionValueSource($)!==void 0)z=q.getOptionValueSource($)}),z}_prepareUserArgs($,z){if($!==void 0&&!Array.isArray($))throw Error("first parameter to parse must be array or undefined");if(z=z||{},$===void 0&&z.from===void 0){if(T.versions?.electron)z.from="electron";let B=T.execArgv??[];if(B.includes("-e")||B.includes("--eval")||B.includes("-p")||B.includes("--print"))z.from="eval"}if($===void 0)$=T.argv;this.rawArgs=$.slice();let q;switch(z.from){case void 0:case"node":this._scriptPath=$[1],q=$.slice(2);break;case"electron":if(T.defaultApp)this._scriptPath=$[1],q=$.slice(2);else q=$.slice(1);break;case"user":q=$.slice(0);break;case"eval":q=$.slice(1);break;default:throw Error(`unexpected parse option { from: '${z.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",q}parse($,z){this._prepareForParse();let q=this._prepareUserArgs($,z);return this._parseCommand([],q),this}async parseAsync($,z){this._prepareForParse();let q=this._prepareUserArgs($,z);return await this._parseCommand([],q),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
18
- - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable($,z,q){if(w.existsSync($))return;let B=z?`searched for local subcommand relative to directory '${z}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",X=`'${$}' does not exist
19
- - if '${q}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
12
+ - unrecognised flag format`)}if(q===void 0&&B===void 0)throw Error(`option creation failed due to no flags found in '${$}'.`);return{shortFlag:q,longFlag:B}}g.Option=Q$;g.DualOptions=_$});var R$=V((J$)=>{function n$($,q){if(Math.abs($.length-q.length)>3)return Math.max($.length,q.length);let B=[];for(let X=0;X<=$.length;X++)B[X]=[X];for(let X=0;X<=q.length;X++)B[0][X]=X;for(let X=1;X<=q.length;X++)for(let Y=1;Y<=$.length;Y++){let Z=1;if($[Y-1]===q[X-1])Z=0;else Z=1;if(B[Y][X]=Math.min(B[Y-1][X]+1,B[Y][X-1]+1,B[Y-1][X-1]+Z),Y>1&&X>1&&$[Y-1]===q[X-2]&&$[Y-2]===q[X-1])B[Y][X]=Math.min(B[Y][X],B[Y-2][X-2]+1)}return B[$.length][q.length]}function r$($,q){if(!q||q.length===0)return"";q=Array.from(new Set(q));let B=$.startsWith("--");if(B)$=$.slice(2),q=q.map((z)=>z.slice(2));let X=[],Y=3,Z=0.4;if(q.forEach((z)=>{if(z.length<=1)return;let Q=n$($,z),R=Math.max($.length,z.length);if((R-Q)/R>Z){if(Q<Y)Y=Q,X=[z];else if(Q===Y)X.push(z)}}),X.sort((z,Q)=>z.localeCompare(Q)),B)X=X.map((z)=>`--${z}`);if(X.length>1)return`
13
+ (Did you mean one of ${X.join(", ")}?)`;if(X.length===1)return`
14
+ (Did you mean ${X[0]}?)`;return""}J$.suggestSimilar=r$});var M$=V((p)=>{var t$=require("node:events").EventEmitter,c=require("node:child_process"),E=require("node:path"),C=require("node:fs"),T=require("node:process"),{Argument:o$,humanReadableArgName:a$}=k(),{CommanderError:d}=j(),{Help:e$,stripColor:$q}=h(),{Option:U$,DualOptions:qq}=l(),{suggestSimilar:T$}=R$();class i extends t${constructor($){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=$||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(q)=>T.stdout.write(q),writeErr:(q)=>T.stderr.write(q),outputError:(q,B)=>B(q),getOutHelpWidth:()=>T.stdout.isTTY?T.stdout.columns:void 0,getErrHelpWidth:()=>T.stderr.isTTY?T.stderr.columns:void 0,getOutHasColors:()=>m()??(T.stdout.isTTY&&T.stdout.hasColors?.()),getErrHasColors:()=>m()??(T.stderr.isTTY&&T.stderr.hasColors?.()),stripColor:(q)=>$q(q)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings($){return this._outputConfiguration=$._outputConfiguration,this._helpOption=$._helpOption,this._helpCommand=$._helpCommand,this._helpConfiguration=$._helpConfiguration,this._exitCallback=$._exitCallback,this._storeOptionsAsProperties=$._storeOptionsAsProperties,this._combineFlagAndOptionalValue=$._combineFlagAndOptionalValue,this._allowExcessArguments=$._allowExcessArguments,this._enablePositionalOptions=$._enablePositionalOptions,this._showHelpAfterError=$._showHelpAfterError,this._showSuggestionAfterError=$._showSuggestionAfterError,this}_getCommandAndAncestors(){let $=[];for(let q=this;q;q=q.parent)$.push(q);return $}command($,q,B){let X=q,Y=B;if(typeof X==="object"&&X!==null)Y=X,X=null;Y=Y||{};let[,Z,z]=$.match(/([^ ]+) *(.*)/),Q=this.createCommand(Z);if(X)Q.description(X),Q._executableHandler=!0;if(Y.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(Y.noHelp||Y.hidden),Q._executableFile=Y.executableFile||null,z)Q.arguments(z);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),X)return this;return Q}createCommand($){return new i($)}createHelp(){return Object.assign(new e$,this.configureHelp())}configureHelp($){if($===void 0)return this._helpConfiguration;return this._helpConfiguration=$,this}configureOutput($){if($===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...$},this}showHelpAfterError($=!0){if(typeof $!=="string")$=!!$;return this._showHelpAfterError=$,this}showSuggestionAfterError($=!0){return this._showSuggestionAfterError=!!$,this}addCommand($,q){if(!$._name)throw Error(`Command passed to .addCommand() must have a name
15
+ - specify the name in Command constructor or using .name()`);if(q=q||{},q.isDefault)this._defaultCommandName=$._name;if(q.noHelp||q.hidden)$._hidden=!0;return this._registerCommand($),$.parent=this,$._checkForBrokenPassThrough(),this}createArgument($,q){return new o$($,q)}argument($,q,B,X){let Y=this.createArgument($,q);if(typeof B==="function")Y.default(X).argParser(B);else Y.default(B);return this.addArgument(Y),this}arguments($){return $.trim().split(/ +/).forEach((q)=>{this.argument(q)}),this}addArgument($){let q=this.registeredArguments.slice(-1)[0];if(q?.variadic)throw Error(`only the last argument can be variadic '${q.name()}'`);if($.required&&$.defaultValue!==void 0&&$.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${$.name()}'`);return this.registeredArguments.push($),this}helpCommand($,q){if(typeof $==="boolean"){if(this._addImplicitHelpCommand=$,$&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let B=$??"help [command]",[,X,Y]=B.match(/([^ ]+) *(.*)/),Z=q??"display help for command",z=this.createCommand(X);if(z.helpOption(!1),Y)z.arguments(Y);if(Z)z.description(Z);if(this._addImplicitHelpCommand=!0,this._helpCommand=z,$||q)this._initCommandGroup(z);return this}addHelpCommand($,q){if(typeof $!=="object")return this.helpCommand($,q),this;return this._addImplicitHelpCommand=!0,this._helpCommand=$,this._initCommandGroup($),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook($,q){let B=["preSubcommand","preAction","postAction"];if(!B.includes($))throw Error(`Unexpected value for event passed to hook : '${$}'.
16
+ Expecting one of '${B.join("', '")}'`);if(this._lifeCycleHooks[$])this._lifeCycleHooks[$].push(q);else this._lifeCycleHooks[$]=[q];return this}exitOverride($){if($)this._exitCallback=$;else this._exitCallback=(q)=>{if(q.code!=="commander.executeSubCommandAsync")throw q};return this}_exit($,q,B){if(this._exitCallback)this._exitCallback(new d($,q,B));T.exit($)}action($){let q=(B)=>{let X=this.registeredArguments.length,Y=B.slice(0,X);if(this._storeOptionsAsProperties)Y[X]=this;else Y[X]=this.opts();return Y.push(this),$.apply(this,Y)};return this._actionHandler=q,this}createOption($,q){return new U$($,q)}_callParseArg($,q,B,X){try{return $.parseArg(q,B)}catch(Y){if(Y.code==="commander.invalidArgument"){let Z=`${X} ${Y.message}`;this.error(Z,{exitCode:Y.exitCode,code:Y.code})}throw Y}}_registerOption($){let q=$.short&&this._findOption($.short)||$.long&&this._findOption($.long);if(q){let B=$.long&&this._findOption($.long)?$.long:$.short;throw Error(`Cannot add option '${$.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${B}'
17
+ - already used by option '${q.flags}'`)}this._initOptionGroup($),this.options.push($)}_registerCommand($){let q=(X)=>{return[X.name()].concat(X.aliases())},B=q($).find((X)=>this._findCommand(X));if(B){let X=q(this._findCommand(B)).join("|"),Y=q($).join("|");throw Error(`cannot add command '${Y}' as already have command '${X}'`)}this._initCommandGroup($),this.commands.push($)}addOption($){this._registerOption($);let q=$.name(),B=$.attributeName();if($.negate){let Y=$.long.replace(/^--no-/,"--");if(!this._findOption(Y))this.setOptionValueWithSource(B,$.defaultValue===void 0?!0:$.defaultValue,"default")}else if($.defaultValue!==void 0)this.setOptionValueWithSource(B,$.defaultValue,"default");let X=(Y,Z,z)=>{if(Y==null&&$.presetArg!==void 0)Y=$.presetArg;let Q=this.getOptionValue(B);if(Y!==null&&$.parseArg)Y=this._callParseArg($,Y,Q,Z);else if(Y!==null&&$.variadic)Y=$._collectValue(Y,Q);if(Y==null)if($.negate)Y=!1;else if($.isBoolean()||$.optional)Y=!0;else Y="";this.setOptionValueWithSource(B,Y,z)};if(this.on("option:"+q,(Y)=>{let Z=`error: option '${$.flags}' argument '${Y}' is invalid.`;X(Y,Z,"cli")}),$.envVar)this.on("optionEnv:"+q,(Y)=>{let Z=`error: option '${$.flags}' value '${Y}' from env '${$.envVar}' is invalid.`;X(Y,Z,"env")});return this}_optionEx($,q,B,X,Y){if(typeof q==="object"&&q instanceof U$)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let Z=this.createOption(q,B);if(Z.makeOptionMandatory(!!$.mandatory),typeof X==="function")Z.default(Y).argParser(X);else if(X instanceof RegExp){let z=X;X=(Q,R)=>{let _=z.exec(Q);return _?_[0]:R},Z.default(Y).argParser(X)}else Z.default(X);return this.addOption(Z)}option($,q,B,X){return this._optionEx({},$,q,B,X)}requiredOption($,q,B,X){return this._optionEx({mandatory:!0},$,q,B,X)}combineFlagAndOptionalValue($=!0){return this._combineFlagAndOptionalValue=!!$,this}allowUnknownOption($=!0){return this._allowUnknownOption=!!$,this}allowExcessArguments($=!0){return this._allowExcessArguments=!!$,this}enablePositionalOptions($=!0){return this._enablePositionalOptions=!!$,this}passThroughOptions($=!0){return this._passThroughOptions=!!$,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties($=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!$,this}getOptionValue($){if(this._storeOptionsAsProperties)return this[$];return this._optionValues[$]}setOptionValue($,q){return this.setOptionValueWithSource($,q,void 0)}setOptionValueWithSource($,q,B){if(this._storeOptionsAsProperties)this[$]=q;else this._optionValues[$]=q;return this._optionValueSources[$]=B,this}getOptionValueSource($){return this._optionValueSources[$]}getOptionValueSourceWithGlobals($){let q;return this._getCommandAndAncestors().forEach((B)=>{if(B.getOptionValueSource($)!==void 0)q=B.getOptionValueSource($)}),q}_prepareUserArgs($,q){if($!==void 0&&!Array.isArray($))throw Error("first parameter to parse must be array or undefined");if(q=q||{},$===void 0&&q.from===void 0){if(T.versions?.electron)q.from="electron";let X=T.execArgv??[];if(X.includes("-e")||X.includes("--eval")||X.includes("-p")||X.includes("--print"))q.from="eval"}if($===void 0)$=T.argv;this.rawArgs=$.slice();let B;switch(q.from){case void 0:case"node":this._scriptPath=$[1],B=$.slice(2);break;case"electron":if(T.defaultApp)this._scriptPath=$[1],B=$.slice(2);else B=$.slice(1);break;case"user":B=$.slice(0);break;case"eval":B=$.slice(1);break;default:throw Error(`unexpected parse option { from: '${q.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",B}parse($,q){this._prepareForParse();let B=this._prepareUserArgs($,q);return this._parseCommand([],B),this}async parseAsync($,q){this._prepareForParse();let B=this._prepareUserArgs($,q);return await this._parseCommand([],B),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
18
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable($,q,B){if(C.existsSync($))return;let X=q?`searched for local subcommand relative to directory '${q}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",Y=`'${$}' does not exist
19
+ - if '${B}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
20
20
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
21
- - ${B}`;throw Error(X)}_executeSubCommand($,z){z=z.slice();let q=!1,B=[".js",".ts",".tsx",".mjs",".cjs"];function X(_,J){let U=K.resolve(_,J);if(w.existsSync(U))return U;if(B.includes(K.extname(J)))return;let L=B.find((W)=>w.existsSync(`${U}${W}`));if(L)return`${U}${L}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let Y=$._executableFile||`${this._name}-${$._name}`,Z=this._executableDir||"";if(this._scriptPath){let _;try{_=w.realpathSync(this._scriptPath)}catch{_=this._scriptPath}Z=K.resolve(K.dirname(_),Z)}if(Z){let _=X(Z,Y);if(!_&&!$._executableFile&&this._scriptPath){let J=K.basename(this._scriptPath,K.extname(this._scriptPath));if(J!==this._name)_=X(Z,`${J}-${$._name}`)}Y=_||Y}q=B.includes(K.extname(Y));let Q;if(T.platform!=="win32")if(q)z.unshift(Y),z=R$(T.execArgv).concat(z),Q=u.spawn(T.argv[0],z,{stdio:"inherit"});else Q=u.spawn(Y,z,{stdio:"inherit"});else this._checkForMissingExecutable(Y,Z,$._name),z.unshift(Y),z=R$(T.execArgv).concat(z),Q=u.spawn(T.execPath,z,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{T.on(J,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(J)})});let R=this._exitCallback;Q.on("close",(_)=>{if(_=_??1,!R)T.exit(_);else R(new h(_,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(_)=>{if(_.code==="ENOENT")this._checkForMissingExecutable(Y,Z,$._name);else if(_.code==="EACCES")throw Error(`'${Y}' not executable`);if(!R)T.exit(1);else{let J=new h(1,"commander.executeSubCommandAsync","(error)");J.nestedError=_,R(J)}}),this.runningCommand=Q}_dispatchSubcommand($,z,q){let B=this._findCommand($);if(!B)this.help({error:!0});B._prepareForParse();let X;return X=this._chainOrCallSubCommandHook(X,B,"preSubcommand"),X=this._chainOrCall(X,()=>{if(B._executableHandler)this._executeSubCommand(B,z.concat(q));else return B._parseCommand(z,q)}),X}_dispatchHelpCommand($){if(!$)this.help();let z=this._findCommand($);if(z&&!z._executableHandler)z.help();return this._dispatchSubcommand($,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach(($,z)=>{if($.required&&this.args[z]==null)this.missingArgument($.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let $=(q,B,X)=>{let Y=B;if(B!==null&&q.parseArg){let Z=`error: command-argument value '${B}' is invalid for argument '${q.name()}'.`;Y=this._callParseArg(q,B,X,Z)}return Y};this._checkNumberOfArguments();let z=[];this.registeredArguments.forEach((q,B)=>{let X=q.defaultValue;if(q.variadic){if(B<this.args.length){if(X=this.args.slice(B),q.parseArg)X=X.reduce((Y,Z)=>{return $(q,Z,Y)},q.defaultValue)}else if(X===void 0)X=[]}else if(B<this.args.length){if(X=this.args[B],q.parseArg)X=$(q,X,q.defaultValue)}z[B]=X}),this.processedArgs=z}_chainOrCall($,z){if($?.then&&typeof $.then==="function")return $.then(()=>z());return z()}_chainOrCallHooks($,z){let q=$,B=[];if(this._getCommandAndAncestors().reverse().filter((X)=>X._lifeCycleHooks[z]!==void 0).forEach((X)=>{X._lifeCycleHooks[z].forEach((Y)=>{B.push({hookedCommand:X,callback:Y})})}),z==="postAction")B.reverse();return B.forEach((X)=>{q=this._chainOrCall(q,()=>{return X.callback(X.hookedCommand,this)})}),q}_chainOrCallSubCommandHook($,z,q){let B=$;if(this._lifeCycleHooks[q]!==void 0)this._lifeCycleHooks[q].forEach((X)=>{B=this._chainOrCall(B,()=>{return X(this,z)})});return B}_parseCommand($,z){let q=this.parseOptions(z);if(this._parseOptionsEnv(),this._parseOptionsImplied(),$=$.concat(q.operands),z=q.unknown,this.args=$.concat(z),$&&this._findCommand($[0]))return this._dispatchSubcommand($[0],$.slice(1),z);if(this._getHelpCommand()&&$[0]===this._getHelpCommand().name())return this._dispatchHelpCommand($[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(z),this._dispatchSubcommand(this._defaultCommandName,$,z);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(q.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let B=()=>{if(q.unknown.length>0)this.unknownOption(q.unknown[0])},X=`command:${this.name()}`;if(this._actionHandler){B(),this._processArguments();let Y;if(Y=this._chainOrCallHooks(Y,"preAction"),Y=this._chainOrCall(Y,()=>this._actionHandler(this.processedArgs)),this.parent)Y=this._chainOrCall(Y,()=>{this.parent.emit(X,$,z)});return Y=this._chainOrCallHooks(Y,"postAction"),Y}if(this.parent?.listenerCount(X))B(),this._processArguments(),this.parent.emit(X,$,z);else if($.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",$,z);if(this.listenerCount("command:*"))this.emit("command:*",$,z);else if(this.commands.length)this.unknownCommand();else B(),this._processArguments()}else if(this.commands.length)B(),this.help({error:!0});else B(),this._processArguments()}_findCommand($){if(!$)return;return this.commands.find((z)=>z._name===$||z._aliases.includes($))}_findOption($){return this.options.find((z)=>z.is($))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(($)=>{$.options.forEach((z)=>{if(z.mandatory&&$.getOptionValue(z.attributeName())===void 0)$.missingMandatoryOptionValue(z)})})}_checkForConflictingLocalOptions(){let $=this.options.filter((q)=>{let B=q.attributeName();if(this.getOptionValue(B)===void 0)return!1;return this.getOptionValueSource(B)!=="default"});$.filter((q)=>q.conflictsWith.length>0).forEach((q)=>{let B=$.find((X)=>q.conflictsWith.includes(X.attributeName()));if(B)this._conflictingOption(q,B)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(($)=>{$._checkForConflictingLocalOptions()})}parseOptions($){let z=[],q=[],B=z;function X(_){return _.length>1&&_[0]==="-"}let Y=(_)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(_))return!1;return!this._getCommandAndAncestors().some((J)=>J.options.map((U)=>U.short).some((U)=>/^-\d$/.test(U)))},Z=null,Q=null,R=0;while(R<$.length||Q){let _=Q??$[R++];if(Q=null,_==="--"){if(B===q)B.push(_);B.push(...$.slice(R));break}if(Z&&(!X(_)||Y(_))){this.emit(`option:${Z.name()}`,_);continue}if(Z=null,X(_)){let J=this._findOption(_);if(J){if(J.required){let U=$[R++];if(U===void 0)this.optionMissingArgument(J);this.emit(`option:${J.name()}`,U)}else if(J.optional){let U=null;if(R<$.length&&(!X($[R])||Y($[R])))U=$[R++];this.emit(`option:${J.name()}`,U)}else this.emit(`option:${J.name()}`);Z=J.variadic?J:null;continue}}if(_.length>2&&_[0]==="-"&&_[1]!=="-"){let J=this._findOption(`-${_[1]}`);if(J){if(J.required||J.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${J.name()}`,_.slice(2));else this.emit(`option:${J.name()}`),Q=`-${_.slice(2)}`;continue}}if(/^--[^=]+=/.test(_)){let J=_.indexOf("="),U=this._findOption(_.slice(0,J));if(U&&(U.required||U.optional)){this.emit(`option:${U.name()}`,_.slice(J+1));continue}}if(B===z&&X(_)&&!(this.commands.length===0&&Y(_)))B=q;if((this._enablePositionalOptions||this._passThroughOptions)&&z.length===0&&q.length===0){if(this._findCommand(_)){z.push(_),q.push(...$.slice(R));break}else if(this._getHelpCommand()&&_===this._getHelpCommand().name()){z.push(_,...$.slice(R));break}else if(this._defaultCommandName){q.push(_,...$.slice(R));break}}if(this._passThroughOptions){B.push(_,...$.slice(R));break}B.push(_)}return{operands:z,unknown:q}}opts(){if(this._storeOptionsAsProperties){let $={},z=this.options.length;for(let q=0;q<z;q++){let B=this.options[q].attributeName();$[B]=B===this._versionOptionName?this._version:this[B]}return $}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce(($,z)=>Object.assign($,z.opts()),{})}error($,z){if(this._outputConfiguration.outputError(`${$}
21
+ - ${X}`;throw Error(Y)}_executeSubCommand($,q){q=q.slice();let B=!1,X=[".js",".ts",".tsx",".mjs",".cjs"];function Y(_,J){let U=E.resolve(_,J);if(C.existsSync(U))return U;if(X.includes(E.extname(J)))return;let K=X.find((S)=>C.existsSync(`${U}${S}`));if(K)return`${U}${K}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let Z=$._executableFile||`${this._name}-${$._name}`,z=this._executableDir||"";if(this._scriptPath){let _;try{_=C.realpathSync(this._scriptPath)}catch{_=this._scriptPath}z=E.resolve(E.dirname(_),z)}if(z){let _=Y(z,Z);if(!_&&!$._executableFile&&this._scriptPath){let J=E.basename(this._scriptPath,E.extname(this._scriptPath));if(J!==this._name)_=Y(z,`${J}-${$._name}`)}Z=_||Z}B=X.includes(E.extname(Z));let Q;if(T.platform!=="win32")if(B)q.unshift(Z),q=H$(T.execArgv).concat(q),Q=c.spawn(T.argv[0],q,{stdio:"inherit"});else Q=c.spawn(Z,q,{stdio:"inherit"});else this._checkForMissingExecutable(Z,z,$._name),q.unshift(Z),q=H$(T.execArgv).concat(q),Q=c.spawn(T.execPath,q,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{T.on(J,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(J)})});let R=this._exitCallback;Q.on("close",(_)=>{if(_=_??1,!R)T.exit(_);else R(new d(_,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(_)=>{if(_.code==="ENOENT")this._checkForMissingExecutable(Z,z,$._name);else if(_.code==="EACCES")throw Error(`'${Z}' not executable`);if(!R)T.exit(1);else{let J=new d(1,"commander.executeSubCommandAsync","(error)");J.nestedError=_,R(J)}}),this.runningCommand=Q}_dispatchSubcommand($,q,B){let X=this._findCommand($);if(!X)this.help({error:!0});X._prepareForParse();let Y;return Y=this._chainOrCallSubCommandHook(Y,X,"preSubcommand"),Y=this._chainOrCall(Y,()=>{if(X._executableHandler)this._executeSubCommand(X,q.concat(B));else return X._parseCommand(q,B)}),Y}_dispatchHelpCommand($){if(!$)this.help();let q=this._findCommand($);if(q&&!q._executableHandler)q.help();return this._dispatchSubcommand($,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach(($,q)=>{if($.required&&this.args[q]==null)this.missingArgument($.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let $=(B,X,Y)=>{let Z=X;if(X!==null&&B.parseArg){let z=`error: command-argument value '${X}' is invalid for argument '${B.name()}'.`;Z=this._callParseArg(B,X,Y,z)}return Z};this._checkNumberOfArguments();let q=[];this.registeredArguments.forEach((B,X)=>{let Y=B.defaultValue;if(B.variadic){if(X<this.args.length){if(Y=this.args.slice(X),B.parseArg)Y=Y.reduce((Z,z)=>{return $(B,z,Z)},B.defaultValue)}else if(Y===void 0)Y=[]}else if(X<this.args.length){if(Y=this.args[X],B.parseArg)Y=$(B,Y,B.defaultValue)}q[X]=Y}),this.processedArgs=q}_chainOrCall($,q){if($?.then&&typeof $.then==="function")return $.then(()=>q());return q()}_chainOrCallHooks($,q){let B=$,X=[];if(this._getCommandAndAncestors().reverse().filter((Y)=>Y._lifeCycleHooks[q]!==void 0).forEach((Y)=>{Y._lifeCycleHooks[q].forEach((Z)=>{X.push({hookedCommand:Y,callback:Z})})}),q==="postAction")X.reverse();return X.forEach((Y)=>{B=this._chainOrCall(B,()=>{return Y.callback(Y.hookedCommand,this)})}),B}_chainOrCallSubCommandHook($,q,B){let X=$;if(this._lifeCycleHooks[B]!==void 0)this._lifeCycleHooks[B].forEach((Y)=>{X=this._chainOrCall(X,()=>{return Y(this,q)})});return X}_parseCommand($,q){let B=this.parseOptions(q);if(this._parseOptionsEnv(),this._parseOptionsImplied(),$=$.concat(B.operands),q=B.unknown,this.args=$.concat(q),$&&this._findCommand($[0]))return this._dispatchSubcommand($[0],$.slice(1),q);if(this._getHelpCommand()&&$[0]===this._getHelpCommand().name())return this._dispatchHelpCommand($[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(q),this._dispatchSubcommand(this._defaultCommandName,$,q);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(B.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let X=()=>{if(B.unknown.length>0)this.unknownOption(B.unknown[0])},Y=`command:${this.name()}`;if(this._actionHandler){X(),this._processArguments();let Z;if(Z=this._chainOrCallHooks(Z,"preAction"),Z=this._chainOrCall(Z,()=>this._actionHandler(this.processedArgs)),this.parent)Z=this._chainOrCall(Z,()=>{this.parent.emit(Y,$,q)});return Z=this._chainOrCallHooks(Z,"postAction"),Z}if(this.parent?.listenerCount(Y))X(),this._processArguments(),this.parent.emit(Y,$,q);else if($.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",$,q);if(this.listenerCount("command:*"))this.emit("command:*",$,q);else if(this.commands.length)this.unknownCommand();else X(),this._processArguments()}else if(this.commands.length)X(),this.help({error:!0});else X(),this._processArguments()}_findCommand($){if(!$)return;return this.commands.find((q)=>q._name===$||q._aliases.includes($))}_findOption($){return this.options.find((q)=>q.is($))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(($)=>{$.options.forEach((q)=>{if(q.mandatory&&$.getOptionValue(q.attributeName())===void 0)$.missingMandatoryOptionValue(q)})})}_checkForConflictingLocalOptions(){let $=this.options.filter((B)=>{let X=B.attributeName();if(this.getOptionValue(X)===void 0)return!1;return this.getOptionValueSource(X)!=="default"});$.filter((B)=>B.conflictsWith.length>0).forEach((B)=>{let X=$.find((Y)=>B.conflictsWith.includes(Y.attributeName()));if(X)this._conflictingOption(B,X)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(($)=>{$._checkForConflictingLocalOptions()})}parseOptions($){let q=[],B=[],X=q;function Y(_){return _.length>1&&_[0]==="-"}let Z=(_)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(_))return!1;return!this._getCommandAndAncestors().some((J)=>J.options.map((U)=>U.short).some((U)=>/^-\d$/.test(U)))},z=null,Q=null,R=0;while(R<$.length||Q){let _=Q??$[R++];if(Q=null,_==="--"){if(X===B)X.push(_);X.push(...$.slice(R));break}if(z&&(!Y(_)||Z(_))){this.emit(`option:${z.name()}`,_);continue}if(z=null,Y(_)){let J=this._findOption(_);if(J){if(J.required){let U=$[R++];if(U===void 0)this.optionMissingArgument(J);this.emit(`option:${J.name()}`,U)}else if(J.optional){let U=null;if(R<$.length&&(!Y($[R])||Z($[R])))U=$[R++];this.emit(`option:${J.name()}`,U)}else this.emit(`option:${J.name()}`);z=J.variadic?J:null;continue}}if(_.length>2&&_[0]==="-"&&_[1]!=="-"){let J=this._findOption(`-${_[1]}`);if(J){if(J.required||J.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${J.name()}`,_.slice(2));else this.emit(`option:${J.name()}`),Q=`-${_.slice(2)}`;continue}}if(/^--[^=]+=/.test(_)){let J=_.indexOf("="),U=this._findOption(_.slice(0,J));if(U&&(U.required||U.optional)){this.emit(`option:${U.name()}`,_.slice(J+1));continue}}if(X===q&&Y(_)&&!(this.commands.length===0&&Z(_)))X=B;if((this._enablePositionalOptions||this._passThroughOptions)&&q.length===0&&B.length===0){if(this._findCommand(_)){q.push(_),B.push(...$.slice(R));break}else if(this._getHelpCommand()&&_===this._getHelpCommand().name()){q.push(_,...$.slice(R));break}else if(this._defaultCommandName){B.push(_,...$.slice(R));break}}if(this._passThroughOptions){X.push(_,...$.slice(R));break}X.push(_)}return{operands:q,unknown:B}}opts(){if(this._storeOptionsAsProperties){let $={},q=this.options.length;for(let B=0;B<q;B++){let X=this.options[B].attributeName();$[X]=X===this._versionOptionName?this._version:this[X]}return $}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce(($,q)=>Object.assign($,q.opts()),{})}error($,q){if(this._outputConfiguration.outputError(`${$}
22
22
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
23
23
  `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
24
- `),this.outputHelp({error:!0});let q=z||{},B=q.exitCode||1,X=q.code||"commander.error";this._exit(B,X,$)}_parseOptionsEnv(){this.options.forEach(($)=>{if($.envVar&&$.envVar in T.env){let z=$.attributeName();if(this.getOptionValue(z)===void 0||["default","config","env"].includes(this.getOptionValueSource(z)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,T.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new o$(this.options),z=(q)=>{return this.getOptionValue(q)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(q))};this.options.filter((q)=>q.implied!==void 0&&z(q.attributeName())&&$.valueFromOption(this.getOptionValue(q.attributeName()),q)).forEach((q)=>{Object.keys(q.implied).filter((B)=>!z(B)).forEach((B)=>{this.setOptionValueWithSource(B,q.implied[B],"implied")})})}missingArgument($){let z=`error: missing required argument '${$}'`;this.error(z,{code:"commander.missingArgument"})}optionMissingArgument($){let z=`error: option '${$.flags}' argument missing`;this.error(z,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue($){let z=`error: required option '${$.flags}' not specified`;this.error(z,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption($,z){let q=(Y)=>{let Z=Y.attributeName(),Q=this.getOptionValue(Z),R=this.options.find((J)=>J.negate&&Z===J.attributeName()),_=this.options.find((J)=>!J.negate&&Z===J.attributeName());if(R&&(R.presetArg===void 0&&Q===!1||R.presetArg!==void 0&&Q===R.presetArg))return R;return _||Y},B=(Y)=>{let Z=q(Y),Q=Z.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${Z.envVar}'`;return`option '${Z.flags}'`},X=`error: ${B($)} cannot be used with ${B(z)}`;this.error(X,{code:"commander.conflictingOption"})}unknownOption($){if(this._allowUnknownOption)return;let z="";if($.startsWith("--")&&this._showSuggestionAfterError){let B=[],X=this;do{let Y=X.createHelp().visibleOptions(X).filter((Z)=>Z.long).map((Z)=>Z.long);B=B.concat(Y),X=X.parent}while(X&&!X._enablePositionalOptions);z=J$($,B)}let q=`error: unknown option '${$}'${z}`;this.error(q,{code:"commander.unknownOption"})}_excessArguments($){if(this._allowExcessArguments)return;let z=this.registeredArguments.length,q=z===1?"":"s",X=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${z} argument${q} but got ${$.length}.`;this.error(X,{code:"commander.excessArguments"})}unknownCommand(){let $=this.args[0],z="";if(this._showSuggestionAfterError){let B=[];this.createHelp().visibleCommands(this).forEach((X)=>{if(B.push(X.name()),X.alias())B.push(X.alias())}),z=J$($,B)}let q=`error: unknown command '${$}'${z}`;this.error(q,{code:"commander.unknownCommand"})}version($,z,q){if($===void 0)return this._version;this._version=$,z=z||"-V, --version",q=q||"output the version number";let B=this.createOption(z,q);return this._versionOptionName=B.attributeName(),this._registerOption(B),this.on("option:"+B.name(),()=>{this._outputConfiguration.writeOut(`${$}
25
- `),this._exit(0,"commander.version",$)}),this}description($,z){if($===void 0&&z===void 0)return this._description;if(this._description=$,z)this._argsDescription=z;return this}summary($){if($===void 0)return this._summary;return this._summary=$,this}alias($){if($===void 0)return this._aliases[0];let z=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)z=this.commands[this.commands.length-1];if($===z._name)throw Error("Command alias can't be the same as its name");let q=this.parent?._findCommand($);if(q){let B=[q.name()].concat(q.aliases()).join("|");throw Error(`cannot add alias '${$}' to command '${this.name()}' as already have command '${B}'`)}return z._aliases.push($),this}aliases($){if($===void 0)return this._aliases;return $.forEach((z)=>this.alias(z)),this}usage($){if($===void 0){if(this._usage)return this._usage;let z=this.registeredArguments.map((q)=>{return r$(q)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?z:[]).join(" ")}return this._usage=$,this}name($){if($===void 0)return this._name;return this._name=$,this}helpGroup($){if($===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=$,this}commandsGroup($){if($===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=$,this}optionsGroup($){if($===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=$,this}_initOptionGroup($){if(this._defaultOptionGroup&&!$.helpGroupHeading)$.helpGroup(this._defaultOptionGroup)}_initCommandGroup($){if(this._defaultCommandGroup&&!$.helpGroup())$.helpGroup(this._defaultCommandGroup)}nameFromFilename($){return this._name=K.basename($,K.extname($)),this}executableDir($){if($===void 0)return this._executableDir;return this._executableDir=$,this}helpInformation($){let z=this.createHelp(),q=this._getOutputContext($);z.prepareContext({error:q.error,helpWidth:q.helpWidth,outputHasColors:q.hasColors});let B=z.formatHelp(this,z);if(q.hasColors)return B;return this._outputConfiguration.stripColor(B)}_getOutputContext($){$=$||{};let z=!!$.error,q,B,X;if(z)q=(Z)=>this._outputConfiguration.writeErr(Z),B=this._outputConfiguration.getErrHasColors(),X=this._outputConfiguration.getErrHelpWidth();else q=(Z)=>this._outputConfiguration.writeOut(Z),B=this._outputConfiguration.getOutHasColors(),X=this._outputConfiguration.getOutHelpWidth();return{error:z,write:(Z)=>{if(!B)Z=this._outputConfiguration.stripColor(Z);return q(Z)},hasColors:B,helpWidth:X}}outputHelp($){let z;if(typeof $==="function")z=$,$=void 0;let q=this._getOutputContext($),B={error:q.error,write:q.write,command:this};this._getCommandAndAncestors().reverse().forEach((Y)=>Y.emit("beforeAllHelp",B)),this.emit("beforeHelp",B);let X=this.helpInformation({error:q.error});if(z){if(X=z(X),typeof X!=="string"&&!Buffer.isBuffer(X))throw Error("outputHelp callback must return a string or a Buffer")}if(q.write(X),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",B),this._getCommandAndAncestors().forEach((Y)=>Y.emit("afterAllHelp",B))}helpOption($,z){if(typeof $==="boolean"){if($){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption($??"-h, --help",z??"display help for command"),$||z)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption($){return this._helpOption=$,this._initOptionGroup($),this}help($){this.outputHelp($);let z=Number(T.exitCode??0);if(z===0&&$&&typeof $!=="function"&&$.error)z=1;this._exit(z,"commander.help","(outputHelp)")}addHelpText($,z){let q=["beforeAll","before","after","afterAll"];if(!q.includes($))throw Error(`Unexpected value for position to addHelpText.
26
- Expecting one of '${q.join("', '")}'`);let B=`${$}Help`;return this.on(B,(X)=>{let Y;if(typeof z==="function")Y=z({error:X.error,command:X.command});else Y=z;if(Y)X.write(`${Y}
27
- `)}),this}_outputHelpIfRequested($){let z=this._getHelpOption();if(z&&$.find((B)=>z.is(B)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function R$($){return $.map((z)=>{if(!z.startsWith("--inspect"))return z;let q,B="127.0.0.1",X="9229",Y;if((Y=z.match(/^(--inspect(-brk)?)$/))!==null)q=Y[1];else if((Y=z.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(q=Y[1],/^\d+$/.test(Y[3]))X=Y[3];else B=Y[3];else if((Y=z.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)q=Y[1],B=Y[3],X=Y[4];if(q&&X!=="0")return`${q}=${B}:${parseInt(X)+1}`;return z})}function g(){if(T.env.NO_COLOR||T.env.FORCE_COLOR==="0"||T.env.FORCE_COLOR==="false")return!1;if(T.env.FORCE_COLOR||T.env.CLICOLOR_FORCE!==void 0)return!0;return}c.Command=l;c.useColor=g});var L$=E((G)=>{var{Argument:T$}=P(),{Command:d}=U$(),{CommanderError:e$,InvalidArgumentError:H$}=y(),{Help:$z}=b(),{Option:M$}=v();G.program=new d;G.createCommand=($)=>new d($);G.createOption=($,z)=>new M$($,z);G.createArgument=($,z)=>new T$($,z);G.Command=d;G.Option=M$;G.Argument=T$;G.Help=$z;G.CommanderError=e$;G.InvalidArgumentError=H$;G.InvalidOptionArgumentError=H$});var G$,hz,gz,lz,cz,dz,mz,iz,K$,sz,pz,nz;var W$=N(()=>{G$=v$(L$(),1),{program:hz,createCommand:gz,createArgument:lz,createOption:cz,CommanderError:dz,InvalidArgumentError:mz,InvalidOptionArgumentError:iz,Command:K$,Argument:sz,Option:pz,Help:nz}=G$.default});var E$={};j(E$,{registerNewCommand:()=>Bz});async function qz($){await M.writeFile(H.join($,"public","docs.html"),`<!DOCTYPE html>
24
+ `),this.outputHelp({error:!0});let B=q||{},X=B.exitCode||1,Y=B.code||"commander.error";this._exit(X,Y,$)}_parseOptionsEnv(){this.options.forEach(($)=>{if($.envVar&&$.envVar in T.env){let q=$.attributeName();if(this.getOptionValue(q)===void 0||["default","config","env"].includes(this.getOptionValueSource(q)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,T.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new qq(this.options),q=(B)=>{return this.getOptionValue(B)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(B))};this.options.filter((B)=>B.implied!==void 0&&q(B.attributeName())&&$.valueFromOption(this.getOptionValue(B.attributeName()),B)).forEach((B)=>{Object.keys(B.implied).filter((X)=>!q(X)).forEach((X)=>{this.setOptionValueWithSource(X,B.implied[X],"implied")})})}missingArgument($){let q=`error: missing required argument '${$}'`;this.error(q,{code:"commander.missingArgument"})}optionMissingArgument($){let q=`error: option '${$.flags}' argument missing`;this.error(q,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue($){let q=`error: required option '${$.flags}' not specified`;this.error(q,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption($,q){let B=(Z)=>{let z=Z.attributeName(),Q=this.getOptionValue(z),R=this.options.find((J)=>J.negate&&z===J.attributeName()),_=this.options.find((J)=>!J.negate&&z===J.attributeName());if(R&&(R.presetArg===void 0&&Q===!1||R.presetArg!==void 0&&Q===R.presetArg))return R;return _||Z},X=(Z)=>{let z=B(Z),Q=z.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${z.envVar}'`;return`option '${z.flags}'`},Y=`error: ${X($)} cannot be used with ${X(q)}`;this.error(Y,{code:"commander.conflictingOption"})}unknownOption($){if(this._allowUnknownOption)return;let q="";if($.startsWith("--")&&this._showSuggestionAfterError){let X=[],Y=this;do{let Z=Y.createHelp().visibleOptions(Y).filter((z)=>z.long).map((z)=>z.long);X=X.concat(Z),Y=Y.parent}while(Y&&!Y._enablePositionalOptions);q=T$($,X)}let B=`error: unknown option '${$}'${q}`;this.error(B,{code:"commander.unknownOption"})}_excessArguments($){if(this._allowExcessArguments)return;let q=this.registeredArguments.length,B=q===1?"":"s",Y=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${q} argument${B} but got ${$.length}.`;this.error(Y,{code:"commander.excessArguments"})}unknownCommand(){let $=this.args[0],q="";if(this._showSuggestionAfterError){let X=[];this.createHelp().visibleCommands(this).forEach((Y)=>{if(X.push(Y.name()),Y.alias())X.push(Y.alias())}),q=T$($,X)}let B=`error: unknown command '${$}'${q}`;this.error(B,{code:"commander.unknownCommand"})}version($,q,B){if($===void 0)return this._version;this._version=$,q=q||"-V, --version",B=B||"output the version number";let X=this.createOption(q,B);return this._versionOptionName=X.attributeName(),this._registerOption(X),this.on("option:"+X.name(),()=>{this._outputConfiguration.writeOut(`${$}
25
+ `),this._exit(0,"commander.version",$)}),this}description($,q){if($===void 0&&q===void 0)return this._description;if(this._description=$,q)this._argsDescription=q;return this}summary($){if($===void 0)return this._summary;return this._summary=$,this}alias($){if($===void 0)return this._aliases[0];let q=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)q=this.commands[this.commands.length-1];if($===q._name)throw Error("Command alias can't be the same as its name");let B=this.parent?._findCommand($);if(B){let X=[B.name()].concat(B.aliases()).join("|");throw Error(`cannot add alias '${$}' to command '${this.name()}' as already have command '${X}'`)}return q._aliases.push($),this}aliases($){if($===void 0)return this._aliases;return $.forEach((q)=>this.alias(q)),this}usage($){if($===void 0){if(this._usage)return this._usage;let q=this.registeredArguments.map((B)=>{return a$(B)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?q:[]).join(" ")}return this._usage=$,this}name($){if($===void 0)return this._name;return this._name=$,this}helpGroup($){if($===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=$,this}commandsGroup($){if($===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=$,this}optionsGroup($){if($===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=$,this}_initOptionGroup($){if(this._defaultOptionGroup&&!$.helpGroupHeading)$.helpGroup(this._defaultOptionGroup)}_initCommandGroup($){if(this._defaultCommandGroup&&!$.helpGroup())$.helpGroup(this._defaultCommandGroup)}nameFromFilename($){return this._name=E.basename($,E.extname($)),this}executableDir($){if($===void 0)return this._executableDir;return this._executableDir=$,this}helpInformation($){let q=this.createHelp(),B=this._getOutputContext($);q.prepareContext({error:B.error,helpWidth:B.helpWidth,outputHasColors:B.hasColors});let X=q.formatHelp(this,q);if(B.hasColors)return X;return this._outputConfiguration.stripColor(X)}_getOutputContext($){$=$||{};let q=!!$.error,B,X,Y;if(q)B=(z)=>this._outputConfiguration.writeErr(z),X=this._outputConfiguration.getErrHasColors(),Y=this._outputConfiguration.getErrHelpWidth();else B=(z)=>this._outputConfiguration.writeOut(z),X=this._outputConfiguration.getOutHasColors(),Y=this._outputConfiguration.getOutHelpWidth();return{error:q,write:(z)=>{if(!X)z=this._outputConfiguration.stripColor(z);return B(z)},hasColors:X,helpWidth:Y}}outputHelp($){let q;if(typeof $==="function")q=$,$=void 0;let B=this._getOutputContext($),X={error:B.error,write:B.write,command:this};this._getCommandAndAncestors().reverse().forEach((Z)=>Z.emit("beforeAllHelp",X)),this.emit("beforeHelp",X);let Y=this.helpInformation({error:B.error});if(q){if(Y=q(Y),typeof Y!=="string"&&!Buffer.isBuffer(Y))throw Error("outputHelp callback must return a string or a Buffer")}if(B.write(Y),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",X),this._getCommandAndAncestors().forEach((Z)=>Z.emit("afterAllHelp",X))}helpOption($,q){if(typeof $==="boolean"){if($){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption($??"-h, --help",q??"display help for command"),$||q)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption($){return this._helpOption=$,this._initOptionGroup($),this}help($){this.outputHelp($);let q=Number(T.exitCode??0);if(q===0&&$&&typeof $!=="function"&&$.error)q=1;this._exit(q,"commander.help","(outputHelp)")}addHelpText($,q){let B=["beforeAll","before","after","afterAll"];if(!B.includes($))throw Error(`Unexpected value for position to addHelpText.
26
+ Expecting one of '${B.join("', '")}'`);let X=`${$}Help`;return this.on(X,(Y)=>{let Z;if(typeof q==="function")Z=q({error:Y.error,command:Y.command});else Z=q;if(Z)Y.write(`${Z}
27
+ `)}),this}_outputHelpIfRequested($){let q=this._getHelpOption();if(q&&$.find((X)=>q.is(X)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function H$($){return $.map((q)=>{if(!q.startsWith("--inspect"))return q;let B,X="127.0.0.1",Y="9229",Z;if((Z=q.match(/^(--inspect(-brk)?)$/))!==null)B=Z[1];else if((Z=q.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(B=Z[1],/^\d+$/.test(Z[3]))Y=Z[3];else X=Z[3];else if((Z=q.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)B=Z[1],X=Z[3],Y=Z[4];if(B&&Y!=="0")return`${B}=${X}:${parseInt(Y)+1}`;return q})}function m(){if(T.env.NO_COLOR||T.env.FORCE_COLOR==="0"||T.env.FORCE_COLOR==="false")return!1;if(T.env.FORCE_COLOR||T.env.CLICOLOR_FORCE!==void 0)return!0;return}p.Command=i;p.useColor=m});var W$=V((G)=>{var{Argument:L$}=k(),{Command:s}=M$(),{CommanderError:Bq,InvalidArgumentError:K$}=j(),{Help:Xq}=h(),{Option:G$}=l();G.program=new s;G.createCommand=($)=>new s($);G.createOption=($,q)=>new G$($,q);G.createArgument=($,q)=>new L$($,q);G.Command=s;G.Option=G$;G.Argument=L$;G.Help=Xq;G.CommanderError=Bq;G.InvalidArgumentError=K$;G.InvalidOptionArgumentError=K$});var E$,mq,iq,pq,sq,nq,rq,tq,I$,oq,aq,eq;var S$=A(()=>{E$=g$(W$(),1),{program:mq,createCommand:iq,createArgument:pq,createOption:sq,CommanderError:nq,InvalidArgumentError:rq,InvalidOptionArgumentError:tq,Command:I$,Argument:oq,Option:aq,Help:eq}=E$.default});var V$={};f(V$,{registerNewCommand:()=>zq});async function Zq($){await L.writeFile(M.join($,"public","docs.html"),`<!DOCTYPE html>
28
28
  <html lang="en">
29
29
  <head>
30
30
  <meta charset="utf-8" />
@@ -55,17 +55,17 @@ Expecting one of '${q.join("', '")}'`);let B=`${$}Help`;return this.on(B,(X)=>{l
55
55
  };
56
56
  </script>
57
57
  </body>
58
- </html>`)}function Bz($){$.command("new").description("Create a new VeloceTS project").argument("<name>","Project name").option("-t, --template <template>","Project template (rest, graphql, websocket, fullstack)","rest").action(async(z,q)=>{await Xz(z,q)})}async function Xz($,z){let q=H.join(process.cwd(),$);if(!$||$.trim()==="")console.error("❌ Error: Project name cannot be empty"),process.exit(1);if(F.existsSync(q))console.error(`❌ Error: Directory "${$}" already exists`),process.exit(1);console.log(`\uD83D\uDE80 Creating new VeloceTS project: ${$}`),console.log(`\uD83D\uDCCB Template: ${z.template}`);try{switch(console.log("\uD83D\uDCC1 Creating project directories..."),await M.mkdir(q,{recursive:!0}),await M.mkdir(H.join(q,"src"),{recursive:!0}),await M.mkdir(H.join(q,"src","controllers"),{recursive:!0}),console.log("\uD83D\uDCC4 Generating configuration files..."),await Yz(q,$),await Zz(q),await Qz(q),await _z(q,$,z.template),console.log("\uD83D\uDD27 Generating template files..."),z.template){case"rest":await Jz(q);break;case"graphql":await Rz(q);break;case"websocket":await Uz(q);break;case"fullstack":await Tz(q);break;default:throw Error(`Unknown template: ${z.template}`)}console.log("\uD83D\uDCDA Setting up documentation..."),await M.mkdir(H.join(q,"public"),{recursive:!0}),await qz(q),console.log(`
58
+ </html>`)}function zq($){$.command("new").description("Create a new VeloceTS project").argument("<name>","Project name").option("-t, --template <template>","Project template (rest, graphql, websocket, fullstack)","rest").action(async(q,B)=>{await Qq(q,B)})}async function Qq($,q){let B=M.join(process.cwd(),$);if(!$||$.trim()==="")console.error("❌ Error: Project name cannot be empty"),process.exit(1);if(P.existsSync(B))console.error(`❌ Error: Directory "${$}" already exists`),process.exit(1);console.log(`\uD83D\uDE80 Creating new VeloceTS project: ${$}`),console.log(`\uD83D\uDCCB Template: ${q.template}`);try{switch(console.log("\uD83D\uDCC1 Creating project directories..."),await L.mkdir(B,{recursive:!0}),await L.mkdir(M.join(B,"src"),{recursive:!0}),await L.mkdir(M.join(B,"src","controllers"),{recursive:!0}),console.log("\uD83D\uDCC4 Generating configuration files..."),await _q(B,$),await Jq(B),await Rq(B),await Uq(B,$,q.template),console.log("\uD83D\uDD27 Generating template files..."),q.template){case"rest":await Tq(B);break;case"graphql":await Hq(B);break;case"websocket":await Mq(B);break;case"fullstack":await Lq(B);break;default:throw Error(`Unknown template: ${q.template}`)}console.log("\uD83D\uDCDA Setting up documentation..."),await L.mkdir(M.join(B,"public"),{recursive:!0}),await Zq(B),console.log(`
59
59
  ✅ Project created successfully!`),console.log(`
60
60
  \uD83D\uDCCB Next steps:`),console.log(` cd ${$}`),console.log(" bun install"),console.log(" bun run dev"),console.log(`
61
- \uD83C\uDF10 Your API will be available at:`),console.log(" http://localhost:3000"),console.log(" http://localhost:3000/docs (API Documentation)")}catch(B){console.error("❌ Error creating project:",B);try{if(F.existsSync(q))console.log("\uD83E\uDDF9 Cleaning up partial project..."),console.warn(`⚠️ Please manually remove the directory: ${q}`)}catch(X){console.warn("⚠️ Could not clean up partial project:",X)}process.exit(1)}}async function Yz($,z){console.log("\uD83D\uDCE6 Fetching latest VeloceTS version from npm...");let q=await zz();console.log(`✅ Using VeloceTS version: ${q}`);let B={name:z,version:"0.1.0",description:"A Veloce-TS application",type:"module",main:"./dist/index.js",scripts:{dev:"bun --watch src/index.ts",build:"bun build src/index.ts --outdir dist --target bun",start:"bun run dist/index.js","generate:openapi":"bun run node_modules/veloce-ts/bin/veloce.ts generate openapi","generate:client":"bun run node_modules/veloce-ts/bin/veloce.ts generate client"},dependencies:{"veloce-ts":`^${q}`,hono:"^4.0.0","reflect-metadata":"^0.2.0",zod:"^3.22.0"},devDependencies:{"@types/bun":"latest",typescript:"^5.3.0"},engines:{node:">=18.0.0",bun:">=1.0.0"}};await M.writeFile(H.join($,"package.json"),JSON.stringify(B,null,2))}async function Zz($){let z={compilerOptions:{target:"ES2022",module:"ESNext",lib:["ES2022"],moduleResolution:"bundler",experimentalDecorators:!0,emitDecoratorMetadata:!0,strict:!0,esModuleInterop:!0,skipLibCheck:!0,forceConsistentCasingInFileNames:!0,resolveJsonModule:!0,outDir:"./dist",rootDir:"./src"},include:["src/**/*"],exclude:["node_modules","dist"]};await M.writeFile(H.join($,"tsconfig.json"),JSON.stringify(z,null,2))}async function Qz($){await M.writeFile(H.join($,".gitignore"),`node_modules/
61
+ \uD83C\uDF10 Your API will be available at:`),console.log(" http://localhost:3000"),console.log(" http://localhost:3000/docs (API Documentation)")}catch(X){console.error("❌ Error creating project:",X);try{if(P.existsSync(B))console.log("\uD83E\uDDF9 Cleaning up partial project..."),console.warn(`⚠️ Please manually remove the directory: ${B}`)}catch(Y){console.warn("⚠️ Could not clean up partial project:",Y)}process.exit(1)}}async function _q($,q){console.log("\uD83D\uDCE6 Fetching latest VeloceTS version from npm...");let B=await Yq();console.log(`✅ Using VeloceTS version: ${B}`);let X={name:q,version:"0.1.0",description:"A Veloce-TS application",type:"module",main:"./dist/index.js",scripts:{dev:"bun --watch src/index.ts",build:"bun build src/index.ts --outdir dist --target bun",start:"bun run dist/index.js","generate:openapi":"bun run node_modules/veloce-ts/bin/veloce.ts generate openapi","generate:client":"bun run node_modules/veloce-ts/bin/veloce.ts generate client"},dependencies:{"veloce-ts":`^${B}`,hono:"^4.0.0","reflect-metadata":"^0.2.0",zod:"^3.22.0"},devDependencies:{"@types/bun":"latest",typescript:"^5.3.0"},engines:{node:">=18.0.0",bun:">=1.0.0"}};await L.writeFile(M.join($,"package.json"),JSON.stringify(X,null,2))}async function Jq($){let q={compilerOptions:{target:"ES2022",module:"ESNext",lib:["ES2022"],moduleResolution:"bundler",experimentalDecorators:!0,emitDecoratorMetadata:!0,strict:!0,esModuleInterop:!0,skipLibCheck:!0,forceConsistentCasingInFileNames:!0,resolveJsonModule:!0,outDir:"./dist",rootDir:"./src"},include:["src/**/*"],exclude:["node_modules","dist"]};await L.writeFile(M.join($,"tsconfig.json"),JSON.stringify(q,null,2))}async function Rq($){await L.writeFile(M.join($,".gitignore"),`node_modules/
62
62
  dist/
63
63
  *.log
64
64
  .env
65
65
  .DS_Store
66
- `)}async function _z($,z,q){let B=`# ${z}
66
+ `)}async function Uq($,q,B){let X=`# ${q}
67
67
 
68
- A modern TypeScript API built with [Veloce-TS](https://github.com/AlfredoMejia3001/veloce-ts) using the **${q}** template.
68
+ A modern TypeScript API built with [Veloce-TS](https://github.com/ExcessHawk/veloce-ts) using the **${B}** template.
69
69
 
70
70
  ## Getting Started
71
71
 
@@ -102,7 +102,7 @@ bun run start
102
102
  ## Project Structure
103
103
 
104
104
  \`\`\`
105
- ${z}/
105
+ ${q}/
106
106
  ├── src/
107
107
  │ └── index.ts # Application entry point
108
108
  ├── package.json
@@ -112,14 +112,14 @@ ${z}/
112
112
 
113
113
  ## Learn More
114
114
 
115
- - [Veloce-TS GitHub](https://github.com/AlfredoMejia3001/veloce-ts)
115
+ - [Veloce-TS GitHub](https://github.com/ExcessHawk/veloce-ts)
116
116
  - [TypeScript Documentation](https://www.typescriptlang.org/docs/)
117
117
  - [Bun Documentation](https://bun.sh/docs)
118
118
 
119
119
  ---
120
120
 
121
121
  Built with Veloce-TS
122
- `;await M.writeFile(H.join($,"README.md"),B)}async function Jz($){await M.writeFile(H.join($,"src","index.ts"),`import 'reflect-metadata';
122
+ `;await L.writeFile(M.join($,"README.md"),X)}async function Tq($){await L.writeFile(M.join($,"src","index.ts"),`import 'reflect-metadata';
123
123
  import { Veloce, OpenAPIPlugin } from 'veloce-ts';
124
124
  import { UserController } from './controllers/user.controller';
125
125
 
@@ -162,7 +162,7 @@ async function startServer() {
162
162
  }
163
163
 
164
164
  startServer();
165
- `);let q=`import { Controller, Get, Post, Body, Param } from 'veloce-ts';
165
+ `);let B=`import { Controller, Get, Post, Body, Param } from 'veloce-ts';
166
166
  import { z } from 'zod';
167
167
 
168
168
  const UserSchema = z.object({
@@ -197,64 +197,51 @@ export class UserController {
197
197
  return { message: 'User created', user };
198
198
  }
199
199
  }
200
- `;await M.writeFile(H.join($,"src","controllers","user.controller.ts"),q)}async function Rz($){await M.mkdir(H.join($,"src","resolvers"),{recursive:!0});let z=`import 'reflect-metadata';
201
- import { Veloce } from 'veloce-ts';
202
- import { GraphQLPlugin } from 'veloce-ts/plugins';
200
+ `;await L.writeFile(M.join($,"src","controllers","user.controller.ts"),B)}async function Hq($){await L.mkdir(M.join($,"src","resolvers"),{recursive:!0});let q=`import 'reflect-metadata';
201
+ import { Veloce, GraphQLPlugin } from 'veloce-ts';
203
202
  import { UserResolver } from './resolvers/user.resolver';
204
203
 
205
- const app = new Veloce({
206
- title: 'My GraphQL API',
207
- version: '1.0.0',
208
- });
204
+ const app = new Veloce({ title: 'My GraphQL API', version: '1.0.0' });
209
205
 
210
- // Enable GraphQL
211
206
  app.usePlugin(new GraphQLPlugin({
212
207
  resolvers: [UserResolver],
208
+ playground: true,
213
209
  }));
214
210
 
215
- // Compile routes
216
211
  await app.compile();
217
212
 
218
213
  app.listen(3000, () => {
219
214
  console.log('Server running on http://localhost:3000');
220
215
  console.log('GraphQL Playground at http://localhost:3000/graphql');
221
216
  });
222
- `;await M.writeFile(H.join($,"src","index.ts"),z);let q=`import { Resolver, Query, Mutation, Arg } from 'veloce-ts/graphql';
217
+ `;await L.writeFile(M.join($,"src","index.ts"),q);let B=`import { Resolver, GQLQuery, GQLMutation, Arg } from 'veloce-ts/graphql';
223
218
  import { z } from 'zod';
224
219
 
225
- const UserSchema = z.object({
226
- id: z.string(),
227
- name: z.string(),
228
- email: z.string().email(),
229
- });
230
-
231
- type User = z.infer<typeof UserSchema>;
232
-
233
- @Resolver()
220
+ @Resolver('user')
234
221
  export class UserResolver {
235
- private users: User[] = [];
222
+ private users: Array<{ id: string; name: string; email: string }> = [];
236
223
 
237
- @Query()
238
- async users(): Promise<User[]> {
224
+ @GQLQuery('getUsers')
225
+ async getUsers() {
239
226
  return this.users;
240
227
  }
241
228
 
242
- @Query()
243
- async user(@Arg('id', z.string()) id: string): Promise<User | null> {
244
- return this.users.find(u => u.id === id) || null;
229
+ @GQLQuery('getUser')
230
+ async getUser(@Arg('id', z.string()) id: string) {
231
+ return this.users.find(u => u.id === id) ?? null;
245
232
  }
246
233
 
247
- @Mutation()
234
+ @GQLMutation('createUser')
248
235
  async createUser(
249
236
  @Arg('name', z.string()) name: string,
250
237
  @Arg('email', z.string().email()) email: string
251
- ): Promise<User> {
238
+ ) {
252
239
  const user = { id: Date.now().toString(), name, email };
253
240
  this.users.push(user);
254
241
  return user;
255
242
  }
256
243
  }
257
- `;await M.writeFile(H.join($,"src","resolvers","user.resolver.ts"),q)}async function Uz($){await M.mkdir(H.join($,"src","websockets"),{recursive:!0});let z=`import 'reflect-metadata';
244
+ `;await L.writeFile(M.join($,"src","resolvers","user.resolver.ts"),B)}async function Mq($){await L.mkdir(M.join($,"src","websockets"),{recursive:!0});let q=`import 'reflect-metadata';
258
245
  import { Veloce } from 'veloce-ts';
259
246
  import { WebSocketPlugin } from 'veloce-ts/plugins';
260
247
  import { ChatWebSocket } from './websockets/chat.websocket';
@@ -276,7 +263,7 @@ app.listen(3000, () => {
276
263
  console.log('Server running on http://localhost:3000');
277
264
  console.log('WebSocket endpoint at ws://localhost:3000/ws/chat');
278
265
  });
279
- `;await M.writeFile(H.join($,"src","index.ts"),z);let q=`import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';
266
+ `;await L.writeFile(M.join($,"src","index.ts"),q);let B=`import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';
280
267
  import { z } from 'zod';
281
268
  import type { WebSocketConnection } from 'veloce-ts/websocket';
282
269
 
@@ -312,7 +299,7 @@ export class ChatWebSocket {
312
299
  console.log('Client disconnected:', connection.id);
313
300
  }
314
301
  }
315
- `;await M.writeFile(H.join($,"src","websockets","chat.websocket.ts"),q)}async function Tz($){await M.mkdir(H.join($,"src","controllers"),{recursive:!0}),await M.mkdir(H.join($,"src","resolvers"),{recursive:!0}),await M.mkdir(H.join($,"src","websockets"),{recursive:!0});let z=`import 'reflect-metadata';
302
+ `;await L.writeFile(M.join($,"src","websockets","chat.websocket.ts"),B)}async function Lq($){await L.mkdir(M.join($,"src","controllers"),{recursive:!0}),await L.mkdir(M.join($,"src","resolvers"),{recursive:!0}),await L.mkdir(M.join($,"src","websockets"),{recursive:!0});let q=`import 'reflect-metadata';
316
303
  import { Veloce, OpenAPIPlugin } from 'veloce-ts';
317
304
  import { GraphQLPlugin, WebSocketPlugin } from 'veloce-ts/plugins';
318
305
  import { UserController } from './controllers/user.controller';
@@ -372,7 +359,7 @@ async function startServer() {
372
359
  }
373
360
 
374
361
  startServer();
375
- `;await M.writeFile(H.join($,"src","index.ts"),z);let q=`import { Controller, Get, Post, Body, Param } from 'veloce-ts';
362
+ `;await L.writeFile(M.join($,"src","index.ts"),q);let B=`import { Controller, Get, Post, Body, Param } from 'veloce-ts';
376
363
  import { z } from 'zod';
377
364
 
378
365
  const UserSchema = z.object({
@@ -407,42 +394,34 @@ export class UserController {
407
394
  return { message: 'User created', user };
408
395
  }
409
396
  }
410
- `;await M.writeFile(H.join($,"src","controllers","user.controller.ts"),q);let B=`import { Resolver, Query, Mutation, Arg } from 'veloce-ts/graphql';
397
+ `;await L.writeFile(M.join($,"src","controllers","user.controller.ts"),B);let X=`import { Resolver, GQLQuery, GQLMutation, Arg } from 'veloce-ts/graphql';
411
398
  import { z } from 'zod';
412
399
 
413
- const UserSchema = z.object({
414
- id: z.string(),
415
- name: z.string(),
416
- email: z.string().email(),
417
- });
418
-
419
- type User = z.infer<typeof UserSchema>;
420
-
421
- @Resolver()
400
+ @Resolver('user')
422
401
  export class UserResolver {
423
- private users: User[] = [];
402
+ private users: Array<{ id: string; name: string; email: string }> = [];
424
403
 
425
- @Query()
426
- async users(): Promise<User[]> {
404
+ @GQLQuery('getUsers')
405
+ async getUsers() {
427
406
  return this.users;
428
407
  }
429
408
 
430
- @Query()
431
- async user(@Arg('id', z.string()) id: string): Promise<User | null> {
432
- return this.users.find(u => u.id === id) || null;
409
+ @GQLQuery('getUser')
410
+ async getUser(@Arg('id', z.string()) id: string) {
411
+ return this.users.find(u => u.id === id) ?? null;
433
412
  }
434
413
 
435
- @Mutation()
414
+ @GQLMutation('createUser')
436
415
  async createUser(
437
416
  @Arg('name', z.string()) name: string,
438
417
  @Arg('email', z.string().email()) email: string
439
- ): Promise<User> {
418
+ ) {
440
419
  const user = { id: Date.now().toString(), name, email };
441
420
  this.users.push(user);
442
421
  return user;
443
422
  }
444
423
  }
445
- `;await M.writeFile(H.join($,"src","resolvers","user.resolver.ts"),B);let X=`import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';
424
+ `;await L.writeFile(M.join($,"src","resolvers","user.resolver.ts"),X);let Y=`import { WebSocket, OnConnect, OnMessage, OnDisconnect } from 'veloce-ts/websocket';
446
425
  import { z } from 'zod';
447
426
  import type { WebSocketConnection } from 'veloce-ts/websocket';
448
427
 
@@ -478,19 +457,202 @@ export class ChatWebSocket {
478
457
  console.log('Client disconnected:', connection.id);
479
458
  }
480
459
  }
481
- `;await M.writeFile(H.join($,"src","websockets","chat.websocket.ts"),X)}var M,F,H,zz=async()=>{try{let $=await fetch("https://registry.npmjs.org/veloce-ts");if($.ok){let q=(await $.json())["dist-tags"]?.latest;if(q&&typeof q==="string")return q}}catch($){console.warn("Could not fetch latest version from npm, using fallback")}try{let $=H.join(process.cwd(),"package.json");return JSON.parse(F.readFileSync($,"utf-8")).version||"0.3.0"}catch{return"0.3.0"}};var I$=N(()=>{M=require("fs/promises"),F=require("fs"),H=require("path")});var N$={};j(N$,{registerDevCommand:()=>Hz});function Hz($){$.command("dev").description("Start development server with hot reload").option("-p, --port <port>","Port to run the server on","3000").option("-w, --watch <path>","Additional paths to watch","src").action(async(z)=>{await Mz(z)})}async function Mz($){let z=D$.join(process.cwd(),"src","index.ts");if(!V$.existsSync(z))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);console.log("Starting development server..."),console.log(`Watching: ${$.watch||"src"}`),console.log(`Port: ${$.port||3000}`),console.log(`
460
+ `;await L.writeFile(M.join($,"src","websockets","chat.websocket.ts"),Y)}var L,P,M,Yq=async()=>{try{let $=await fetch("https://registry.npmjs.org/veloce-ts");if($.ok){let B=(await $.json())["dist-tags"]?.latest;if(B&&typeof B==="string")return B}}catch($){console.warn("Could not fetch latest version from npm, using fallback")}try{let $=M.join(process.cwd(),"package.json");return JSON.parse(P.readFileSync($,"utf-8")).version||"0.3.0"}catch{return"0.3.0"}};var D$=A(()=>{L=require("fs/promises"),P=require("fs"),M=require("path")});var A$={};f(A$,{registerDevCommand:()=>Kq});function Kq($){$.command("dev").description("Start development server with hot reload").option("-p, --port <port>","Port to run the server on","3000").option("-w, --watch <path>","Additional paths to watch","src").action(async(q)=>{await Gq(q)})}async function Gq($){let q=F$.join(process.cwd(),"src","index.ts");if(!y$.existsSync(q))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);console.log("Starting development server..."),console.log(`Watching: ${$.watch||"src"}`),console.log(`Port: ${$.port||3000}`),console.log(`
482
461
  Press Ctrl+C to stop
483
- `);let q=["--watch","--hot",z],B={...process.env,NODE_ENV:"development",PORT:$.port?.toString()||"3000"},X=S$.spawn("bun",q,{stdio:"inherit",env:B,shell:!0}),Y=()=>{console.log(`
484
- Shutting down development server...`),X.kill("SIGTERM"),process.exit(0)};process.on("SIGINT",Y),process.on("SIGTERM",Y),X.on("error",(Z)=>{console.error("Failed to start development server:",Z),process.exit(1)}),X.on("exit",(Z)=>{if(Z!==0&&Z!==null)console.error(`Development server exited with code ${Z}`),process.exit(Z)})}var S$,V$,D$;var y$=N(()=>{S$=require("child_process"),V$=require("fs"),D$=require("path")});var F$={};j(F$,{registerBuildCommand:()=>Lz});function Lz($){$.command("build").description("Build project for production").option("-m, --minify","Minify output",!1).option("-s, --sourcemap","Generate sourcemaps",!0).option("-o, --outdir <dir>","Output directory","dist").option("-f, --format <format>","Output format (esm, cjs, both)","both").action(async(z)=>{await Gz(z)})}async function Gz($){let z=i.join(process.cwd(),"src","index.ts");if(!m.existsSync(z))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);console.log("Building project for production..."),console.log(`Format: ${$.format||"both"}`),console.log(`Minify: ${$.minify?"yes":"no"}`),console.log(`Sourcemap: ${$.sourcemap?"yes":"no"}`);let q=$.outdir||"dist";try{if(m.existsSync(q))await A.rm(q,{recursive:!0,force:!0});await A.mkdir(q,{recursive:!0});let B=$.format||"both",X=B==="both"?["esm","cjs"]:[B];for(let Y of X)console.log(`
485
- Building ${Y.toUpperCase()}...`),await Kz(z,q,Y,$);console.log(`
462
+ `);let B=["--watch","--hot",q],X={...process.env,NODE_ENV:"development",PORT:$.port?.toString()||"3000"},Y=N$.spawn("bun",B,{stdio:"inherit",env:X,shell:!0}),Z=()=>{console.log(`
463
+ Shutting down development server...`),Y.kill("SIGTERM"),process.exit(0)};process.on("SIGINT",Z),process.on("SIGTERM",Z),Y.on("error",(z)=>{console.error("Failed to start development server:",z),process.exit(1)}),Y.on("exit",(z)=>{if(z!==0&&z!==null)console.error(`Development server exited with code ${z}`),process.exit(z)})}var N$,y$,F$;var j$=A(()=>{N$=require("child_process"),y$=require("fs"),F$=require("path")});var P$={};f(P$,{registerBuildCommand:()=>Wq});function Wq($){$.command("build").description("Build project for production").option("-m, --minify","Minify output",!1).option("-s, --sourcemap","Generate sourcemaps",!0).option("-o, --outdir <dir>","Output directory","dist").option("-f, --format <format>","Output format (esm, cjs, both)","both").action(async(q)=>{await Eq(q)})}async function Eq($){let q=r.join(process.cwd(),"src","index.ts");if(!n.existsSync(q))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);console.log("Building project for production..."),console.log(`Format: ${$.format||"both"}`),console.log(`Minify: ${$.minify?"yes":"no"}`),console.log(`Sourcemap: ${$.sourcemap?"yes":"no"}`);let B=$.outdir||"dist";try{if(n.existsSync(B))await w.rm(B,{recursive:!0,force:!0});await w.mkdir(B,{recursive:!0});let X=$.format||"both",Y=X==="both"?["esm","cjs"]:[X];for(let Z of Y)console.log(`
464
+ Building ${Z.toUpperCase()}...`),await Iq(q,B,Z,$);console.log(`
486
465
  ✓ Build completed successfully!`),console.log(`
487
- Output directory: ${q}`)}catch(B){console.error("Build failed:",B),process.exit(1)}}async function Kz($,z,q,B){let X=i.join(z,q);await A.mkdir(X,{recursive:!0});let Y=await Bun.build({entrypoints:[$],outdir:X,target:"bun",format:q==="esm"?"esm":"cjs",minify:B.minify||!1,sourcemap:B.sourcemap!==!1?"external":"none",splitting:q==="esm",external:["hono","zod","reflect-metadata","commander","zod-to-json-schema"]});if(!Y.success){console.error(`Failed to build ${q}:`);for(let Q of Y.logs)console.error(Q);throw Error(`Build failed for ${q}`)}console.log(` ✓ ${q.toUpperCase()} build complete`),console.log(` Files: ${Y.outputs.length}`);let Z=Y.outputs.reduce((Q,R)=>Q+R.size,0);console.log(` Size: ${(Z/1024).toFixed(2)} KB`)}var m,i,A;var A$=N(()=>{m=require("fs"),i=require("path"),A=require("fs/promises")});var w$={};j(w$,{registerGenerateCommand:()=>Wz});function Wz($){let z=$.command("generate").description("Generate code and documentation").alias("g");z.command("openapi").description("Generate OpenAPI specification").option("-o, --output <file>","Output file path","openapi.json").action(async(q)=>{await Ez(q)}),z.command("client").description("Generate TypeScript client from OpenAPI spec").option("-i, --input <file>","OpenAPI spec file","openapi.json").option("-o, --output <dir>","Output directory","src/client").action(async(q)=>{await Dz(q)})}async function Ez($){console.log("Generating OpenAPI specification...");try{let z=I.join(process.cwd(),"src","index.ts");if(!s.existsSync(z))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);let q=await import(z),B=q.default||q.app;if(!B||typeof B.getMetadata!=="function")console.error("Error: Could not find VeloceTS app instance"),console.error("Make sure your src/index.ts exports the app or sets it as default"),process.exit(1);let X=B.getMetadata(),Y=Iz(X,B),Z=I.join(process.cwd(),$.output);await S.writeFile(Z,JSON.stringify(Y,null,2)),console.log(`✓ OpenAPI spec generated: ${$.output}`)}catch(z){console.error("Failed to generate OpenAPI spec:",z),process.exit(1)}}function Iz($,z){let q=$.getRoutes(),B={openapi:"3.0.0",info:{title:z.config?.title||"Veloce API",version:z.config?.version||"1.0.0",description:z.config?.description||"API built with Veloce"},paths:{},components:{schemas:{}}};for(let X of q){let Y=X.path,Z=X.method.toLowerCase();if(!B.paths[Y])B.paths[Y]={};B.paths[Y][Z]={summary:X.docs?.summary||`${Z.toUpperCase()} ${Y}`,description:X.docs?.description,tags:X.docs?.tags||[],parameters:Sz(X),requestBody:Vz(X),responses:{"200":{description:"Successful response",content:{"application/json":{schema:{type:"object"}}}}}}}return B}function Sz($){let z=[];for(let q of $.parameters||[])if(q.type==="query"||q.type==="param"||q.type==="header")z.push({name:q.name||"unknown",in:q.type==="param"?"path":q.type,required:q.required||!1,schema:{type:"string"}});return z}function Vz($){if(!$.parameters?.find((q)=>q.type==="body"))return;return{required:!0,content:{"application/json":{schema:{type:"object"}}}}}async function Dz($){console.log("Generating TypeScript client...");try{let z=I.join(process.cwd(),$.input);if(!s.existsSync(z))console.error(`Error: OpenAPI spec not found at ${$.input}`),console.error('Run "veloce generate openapi" first'),process.exit(1);let q=await Bun.file(z).text(),B=JSON.parse(q),X=I.join(process.cwd(),$.output);await S.mkdir(X,{recursive:!0});let Y=Nz(B),Z=I.join(X,"client.ts");await S.writeFile(Z,Y);let Q=Fz(B),R=I.join(X,"types.ts");await S.writeFile(R,Q),console.log(`✓ TypeScript client generated in ${$.output}`),console.log(` - ${$.output}/client.ts`),console.log(` - ${$.output}/types.ts`)}catch(z){console.error("Failed to generate client:",z),process.exit(1)}}function Nz($){let z=$.servers?.[0]?.url||"http://localhost:3000",q=`// Generated TypeScript client for ${$.info.title}
466
+ Output directory: ${B}`)}catch(X){console.error("Build failed:",X),process.exit(1)}}async function Iq($,q,B,X){let Y=r.join(q,B);await w.mkdir(Y,{recursive:!0});let Z=await Bun.build({entrypoints:[$],outdir:Y,target:"bun",format:B==="esm"?"esm":"cjs",minify:X.minify||!1,sourcemap:X.sourcemap!==!1?"external":"none",splitting:B==="esm",external:["hono","zod","reflect-metadata","commander","zod-to-json-schema"]});if(!Z.success){console.error(`Failed to build ${B}:`);for(let Q of Z.logs)console.error(Q);throw Error(`Build failed for ${B}`)}console.log(` ✓ ${B.toUpperCase()} build complete`),console.log(` Files: ${Z.outputs.length}`);let z=Z.outputs.reduce((Q,R)=>Q+R.size,0);console.log(` Size: ${(z/1024).toFixed(2)} KB`)}var n,r,w;var w$=A(()=>{n=require("fs"),r=require("path"),w=require("fs/promises")});var k$={};f(k$,{registerGenerateCommand:()=>Dq});function Sq($){return $.replace(/[-_\s](.)/g,(q,B)=>B.toUpperCase()).replace(/^(.)/,(q,B)=>B.toUpperCase())}function Vq($){return $.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase().replace(/[_\s]+/g,"-")}function D($){let q=Vq($),B=Sq(q),X=B.charAt(0).toLowerCase()+B.slice(1);return{pascal:B,kebab:q,camel:X}}function N(){let $=H.join(process.cwd(),"src");return O.existsSync($)?$:process.cwd()}async function W($,q,B){if(B){console.log(`[dry-run] Would write: ${$}`),console.log(q);return}if(await I.mkdir(H.dirname($),{recursive:!0}),O.existsSync($))console.error(`File already exists: ${$}`),process.exit(1);await I.writeFile($,q),console.log(`Created: ${$}`)}function Dq($){let q=$.command("generate").description("Generate code and documentation").alias("g");q.command("openapi").description("Generate OpenAPI specification").option("-o, --output <file>","Output file path","openapi.json").action(async(B)=>{await Nq(B)}),q.command("client").description("Generate TypeScript client from OpenAPI spec").option("-i, --input <file>","OpenAPI spec file","openapi.json").option("-o, --output <dir>","Output directory","src/client").action(async(B)=>{await jq(B)}),q.command("controller <name>").description("Generate a REST controller").option("--flat","Place file in src/ instead of src/controllers/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z}=D(B),z=N(),Q=X.flat?z:H.join(z,"controllers"),R=H.join(Q,`${Z}.controller.ts`),_=`import { Controller, Get, Post, Put, Delete, Body, Param } from 'veloce-ts';
467
+ import { z } from 'zod';
468
+
469
+ const Create${Y}Dto = z.object({
470
+ // TODO: define your fields
471
+ name: z.string(),
472
+ });
473
+
474
+ type Create${Y}Input = z.infer<typeof Create${Y}Dto>;
475
+
476
+ @Controller('/${Z}s')
477
+ export class ${Y}Controller {
478
+ @Get('/')
479
+ async findAll() {
480
+ return [];
481
+ }
482
+
483
+ @Get('/:id')
484
+ async findOne(@Param('id') id: string) {
485
+ return { id };
486
+ }
487
+
488
+ @Post('/')
489
+ async create(@Body(Create${Y}Dto) body: Create${Y}Input) {
490
+ return body;
491
+ }
492
+
493
+ @Put('/:id')
494
+ async update(@Param('id') id: string, @Body(Create${Y}Dto.partial()) body: Partial<Create${Y}Input>) {
495
+ return { id, ...body };
496
+ }
497
+
498
+ @Delete('/:id')
499
+ async remove(@Param('id') id: string) {
500
+ return { id };
501
+ }
502
+ }
503
+ `;await W(R,_,X.dryRun??!1)}),q.command("service <name>").description("Generate a service class").option("--flat","Place file in src/ instead of src/services/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z}=D(B),z=N(),Q=X.flat?z:H.join(z,"services"),R=H.join(Q,`${Z}.service.ts`),_=`export class ${Y}Service {
504
+ async findAll() {
505
+ return [];
506
+ }
507
+
508
+ async findOne(id: string) {
509
+ return { id };
510
+ }
511
+
512
+ async create(data: Record<string, unknown>) {
513
+ return data;
514
+ }
515
+
516
+ async update(id: string, data: Record<string, unknown>) {
517
+ return { id, ...data };
518
+ }
519
+
520
+ async remove(id: string) {
521
+ return { id };
522
+ }
523
+ }
524
+ `;await W(R,_,X.dryRun??!1)}),q.command("module <name>").description("Generate a module (controller + service + dto + barrel)").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z}=D(B),z=N(),Q=H.join(z,"modules",Z),R=`import { Controller, Get, Post, Put, Delete, Body, Param } from 'veloce-ts';
525
+ import { Create${Y}Dto, type Create${Y}Input } from './${Z}.dto';
526
+ import { ${Y}Service } from './${Z}.service';
527
+
528
+ @Controller('/${Z}s')
529
+ export class ${Y}Controller {
530
+ private service = new ${Y}Service();
531
+
532
+ @Get('/')
533
+ async findAll() {
534
+ return this.service.findAll();
535
+ }
536
+
537
+ @Get('/:id')
538
+ async findOne(@Param('id') id: string) {
539
+ return this.service.findOne(id);
540
+ }
541
+
542
+ @Post('/')
543
+ async create(@Body(Create${Y}Dto) body: Create${Y}Input) {
544
+ return this.service.create(body as Record<string, unknown>);
545
+ }
546
+
547
+ @Put('/:id')
548
+ async update(@Param('id') id: string, @Body(Create${Y}Dto.partial()) body: Partial<Create${Y}Input>) {
549
+ return this.service.update(id, body as Record<string, unknown>);
550
+ }
551
+
552
+ @Delete('/:id')
553
+ async remove(@Param('id') id: string) {
554
+ return this.service.remove(id);
555
+ }
556
+ }
557
+ `,_=`export class ${Y}Service {
558
+ async findAll() {
559
+ return [];
560
+ }
561
+
562
+ async findOne(id: string) {
563
+ return { id };
564
+ }
565
+
566
+ async create(data: Record<string, unknown>) {
567
+ return data;
568
+ }
569
+
570
+ async update(id: string, data: Record<string, unknown>) {
571
+ return { id, ...data };
572
+ }
573
+
574
+ async remove(id: string) {
575
+ return { id };
576
+ }
577
+ }
578
+ `,J=`import { z } from 'zod';
579
+
580
+ export const Create${Y}Dto = z.object({
581
+ // TODO: define your fields
582
+ name: z.string(),
583
+ });
584
+
585
+ export const Update${Y}Dto = Create${Y}Dto.partial();
586
+
587
+ export type Create${Y}Input = z.infer<typeof Create${Y}Dto>;
588
+ export type Update${Y}Input = z.infer<typeof Update${Y}Dto>;
589
+ `,U=`export { ${Y}Controller } from './${Z}.controller';
590
+ export { ${Y}Service } from './${Z}.service';
591
+ export * from './${Z}.dto';
592
+ `;if(await W(H.join(Q,`${Z}.controller.ts`),R,X.dryRun??!1),await W(H.join(Q,`${Z}.service.ts`),_,X.dryRun??!1),await W(H.join(Q,`${Z}.dto.ts`),J,X.dryRun??!1),await W(H.join(Q,`${Z}.module.ts`),U,X.dryRun??!1),!X.dryRun)console.log(`
593
+ Module created at src/modules/${Z}/`),console.log(`Register in your app:
594
+ import { ${Y}Controller } from './modules/${Z}/${Z}.module';
595
+ app.include(${Y}Controller);`)}),q.command("resolver <name>").description("Generate a GraphQL resolver").option("--flat","Place file in src/ instead of src/resolvers/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z,camel:z}=D(B),Q=N(),R=X.flat?Q:H.join(Q,"resolvers"),_=H.join(R,`${Z}.resolver.ts`),J=`import { Resolver, GQLQuery, GQLMutation, Arg } from 'veloce-ts/graphql';
596
+ import { z } from 'zod';
597
+
598
+ @Resolver('${z}')
599
+ export class ${Y}Resolver {
600
+ private items: Array<{ id: string; name: string }> = [];
601
+
602
+ @GQLQuery('get${Y}s')
603
+ async getAll() {
604
+ return this.items;
605
+ }
606
+
607
+ @GQLQuery('get${Y}')
608
+ async getOne(@Arg('id', z.string()) id: string) {
609
+ return this.items.find(i => i.id === id) ?? null;
610
+ }
611
+
612
+ @GQLMutation('create${Y}')
613
+ async create(@Arg('name', z.string()) name: string) {
614
+ const item = { id: Date.now().toString(), name };
615
+ this.items.push(item);
616
+ return item;
617
+ }
618
+ }
619
+ `;await W(_,J,X.dryRun??!1)}),q.command("dto <name>").description("Generate a Zod DTO schema").option("--flat","Place file in src/ instead of src/dto/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z}=D(B),z=N(),Q=X.flat?z:H.join(z,"dto"),R=H.join(Q,`${Z}.dto.ts`),_=`import { z } from 'zod';
620
+
621
+ export const Create${Y}Dto = z.object({
622
+ // TODO: define your fields
623
+ name: z.string(),
624
+ });
625
+
626
+ export const Update${Y}Dto = Create${Y}Dto.partial();
627
+
628
+ export type Create${Y}Input = z.infer<typeof Create${Y}Dto>;
629
+ export type Update${Y}Input = z.infer<typeof Update${Y}Dto>;
630
+ `;await W(R,_,X.dryRun??!1)}),q.command("middleware <name>").description("Generate a Hono middleware function").option("--flat","Place file in src/ instead of src/middleware/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z,camel:z}=D(B),Q=N(),R=X.flat?Q:H.join(Q,"middleware"),_=H.join(R,`${Z}.middleware.ts`),J=`import type { Context, Next } from 'hono';
631
+
632
+ export async function ${z}Middleware(c: Context, next: Next): Promise<void> {
633
+ // TODO: implement middleware logic
634
+ await next();
635
+ }
636
+ `;await W(_,J,X.dryRun??!1)}),q.command("plugin <name>").description("Generate a veloce-ts plugin class").option("--flat","Place file in src/ instead of src/plugins/").option("--dry-run","Preview without writing files").action(async(B,X)=>{let{pascal:Y,kebab:Z,camel:z}=D(B),Q=N(),R=X.flat?Q:H.join(Q,"plugins"),_=H.join(R,`${Z}.plugin.ts`),J=`import type { Plugin } from 'veloce-ts';
637
+ import type { VeloceTS } from 'veloce-ts';
638
+
639
+ export class ${Y}Plugin implements Plugin {
640
+ name = '${z}';
641
+ version = '1.0.0';
642
+
643
+ async install(app: VeloceTS): Promise<void> {
644
+ // TODO: implement plugin logic
645
+ // app.getContainer().register(...)
646
+ // app.getHono().use(...)
647
+ }
648
+ }
649
+ `;await W(_,J,X.dryRun??!1)})}async function Nq($){console.log("Generating OpenAPI specification...");try{let q=H.join(process.cwd(),"src","index.ts");if(!O.existsSync(q))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);let B=await import(q),X=B.default||B.app;if(!X||typeof X.getMetadata!=="function")console.error("Error: Could not find VeloceTS app instance"),console.error("Make sure your src/index.ts exports the app or sets it as default"),process.exit(1);let Y=X.getMetadata(),Z=yq(Y,X),z=H.join(process.cwd(),$.output);await I.writeFile(z,JSON.stringify(Z,null,2)),console.log(`✓ OpenAPI spec generated: ${$.output}`)}catch(q){console.error("Failed to generate OpenAPI spec:",q),process.exit(1)}}function yq($,q){let B=$.getRoutes(),X={openapi:"3.0.0",info:{title:q.config?.title||"Veloce API",version:q.config?.version||"1.0.0",description:q.config?.description||"API built with Veloce"},paths:{},components:{schemas:{}}};for(let Y of B){let Z=Y.path,z=Y.method.toLowerCase();if(!X.paths[Z])X.paths[Z]={};X.paths[Z][z]={summary:Y.docs?.summary||`${z.toUpperCase()} ${Z}`,description:Y.docs?.description,tags:Y.docs?.tags||[],parameters:Fq(Y),requestBody:Aq(Y),responses:{"200":{description:"Successful response",content:{"application/json":{schema:{type:"object"}}}}}}}return X}function Fq($){let q=[];for(let B of $.parameters||[])if(B.type==="query"||B.type==="param"||B.type==="header")q.push({name:B.name||"unknown",in:B.type==="param"?"path":B.type,required:B.required||!1,schema:{type:"string"}});return q}function Aq($){if(!$.parameters?.find((B)=>B.type==="body"))return;return{required:!0,content:{"application/json":{schema:{type:"object"}}}}}async function jq($){console.log("Generating TypeScript client...");try{let q=H.join(process.cwd(),$.input);if(!O.existsSync(q))console.error(`Error: OpenAPI spec not found at ${$.input}`),console.error('Run "veloce generate openapi" first'),process.exit(1);let B=await Bun.file(q).text(),X=JSON.parse(B),Y=H.join(process.cwd(),$.output);await I.mkdir(Y,{recursive:!0});let Z=Pq(X),z=H.join(Y,"client.ts");await I.writeFile(z,Z);let Q=Oq(X),R=H.join(Y,"types.ts");await I.writeFile(R,Q),console.log(`✓ TypeScript client generated in ${$.output}`),console.log(` - ${$.output}/client.ts`),console.log(` - ${$.output}/types.ts`)}catch(q){console.error("Failed to generate client:",q),process.exit(1)}}function Pq($){let q=$.servers?.[0]?.url||"http://localhost:3000",B=`// Generated TypeScript client for ${$.info.title}
488
650
  // Version: ${$.info.version}
489
651
 
490
652
  import type * as Types from './types';
491
653
 
492
654
  export class APIClient {
493
- constructor(private baseUrl: string = '${z}') {}
655
+ constructor(private baseUrl: string = '${q}') {}
494
656
 
495
657
  private async request<T>(
496
658
  method: string,
@@ -525,21 +687,21 @@ export class APIClient {
525
687
  return response.json();
526
688
  }
527
689
 
528
- `;for(let[B,X]of Object.entries($.paths||{}))for(let[Y,Z]of Object.entries(X)){let Q=j$(Y,B,Z),R=yz(Y,B,Z);q+=R+`
529
- `}return q+=`}
530
- `,q}function j$($,z,q){if(q.operationId)return q.operationId;let B=z.replace(/\{|\}/g,"").replace(/\//g,"_").replace(/^_/,"").replace(/_([a-z])/g,(X,Y)=>Y.toUpperCase());return`${$}${B.charAt(0).toUpperCase()+B.slice(1)}`}function yz($,z,q){let B=j$($,z,q),X=$==="post"||$==="put"||$==="patch",Y=q.parameters?.some((U)=>U.in==="query"),Z=q.parameters?.some((U)=>U.in==="path"),Q=[],R=[];if(Z){let U=q.parameters.filter((L)=>L.in==="path");R=U.map((L)=>L.name),Q.push(...U.map((L)=>`${L.name}: string`))}if(X)Q.push("body: any");if(Y)Q.push("params?: Record<string, any>");let _=Q.length>0?Q.join(", "):"",J=z;for(let U of R)J=J.replace(`{${U}}`,`\${${U}}`);return` async ${B}(${_}): Promise<any> {
690
+ `;for(let[X,Y]of Object.entries($.paths||{}))for(let[Z,z]of Object.entries(Y)){let Q=O$(Z,X,z),R=wq(Z,X,z);B+=R+`
691
+ `}return B+=`}
692
+ `,B}function O$($,q,B){if(B.operationId)return B.operationId;let X=q.replace(/\{|\}/g,"").replace(/\//g,"_").replace(/^_/,"").replace(/_([a-z])/g,(Y,Z)=>Z.toUpperCase());return`${$}${X.charAt(0).toUpperCase()+X.slice(1)}`}function wq($,q,B){let X=O$($,q,B),Y=$==="post"||$==="put"||$==="patch",Z=B.parameters?.some((U)=>U.in==="query"),z=B.parameters?.some((U)=>U.in==="path"),Q=[],R=[];if(z){let U=B.parameters.filter((K)=>K.in==="path");R=U.map((K)=>K.name),Q.push(...U.map((K)=>`${K.name}: string`))}if(Y)Q.push("body: any");if(Z)Q.push("params?: Record<string, any>");let _=Q.length>0?Q.join(", "):"",J=q;for(let U of R)J=J.replace(`{${U}}`,`\${${U}}`);return` async ${X}(${_}): Promise<any> {
531
693
  return this.request('${$.toUpperCase()}', \`${J}\`, {
532
- ${X?"body,":""}
533
- ${Y?"params,":""}
694
+ ${Y?"body,":""}
695
+ ${Z?"params,":""}
534
696
  });
535
697
  }
536
- `}function Fz($){let z=`// Generated types for ${$.info.title}
698
+ `}function Oq($){let q=`// Generated types for ${$.info.title}
537
699
  // Version: ${$.info.version}
538
700
 
539
- `;if($.components?.schemas)for(let[q,B]of Object.entries($.components.schemas))z+=`export interface ${q} {
540
- `,z+=Az(B),z+=`}
701
+ `;if($.components?.schemas)for(let[B,X]of Object.entries($.components.schemas))q+=`export interface ${B} {
702
+ `,q+=fq(X),q+=`}
541
703
 
542
- `;return z}function Az($,z=" "){let q="";if($.properties)for(let[B,X]of Object.entries($.properties)){let Y=X,Z=!$.required?.includes(B),Q=P$(Y);q+=`${z}${B}${Z?"?":""}: ${Q};
543
- `}return q}function P$($){if($.type==="string")return"string";if($.type==="number"||$.type==="integer")return"number";if($.type==="boolean")return"boolean";if($.type==="array")return`${$.items?P$($.items):"any"}[]`;if($.type==="object")return"Record<string, any>";return"any"}var S,I,s;var k$=N(()=>{S=require("fs/promises"),I=require("path"),s=require("fs")});W$();var p=require("fs"),n=require("path"),__dirname="C:\\Users\\alfredo\\Desktop\\veloce-ts-proyecto\\Veloce-TS\\src\\cli",jz=()=>{try{let $=n.join(__dirname,"..","..","package.json");return JSON.parse(p.readFileSync($,"utf-8")).version||"0.3.0"}catch{try{let $=n.join(process.cwd(),"package.json");return JSON.parse(p.readFileSync($,"utf-8")).version||"0.3.0"}catch{return"0.3.0"}}},V=new K$;V.name("veloce").description("A modern, fast web framework for TypeScript inspired by FastAPI").version(jz(),"-v, --version","Display version number").helpOption("-h, --help","Display help for command");async function Pz(){let{registerNewCommand:$}=await Promise.resolve().then(() => (I$(),E$)),{registerDevCommand:z}=await Promise.resolve().then(() => (y$(),N$)),{registerBuildCommand:q}=await Promise.resolve().then(() => (A$(),F$)),{registerGenerateCommand:B}=await Promise.resolve().then(() => (k$(),w$));$(V),z(V),q(V),B(V),V.parse(process.argv)}Pz().catch(($)=>{console.error("CLI error:",$),process.exit(1)});
704
+ `;return q}function fq($,q=" "){let B="";if($.properties)for(let[X,Y]of Object.entries($.properties)){let Z=Y,z=!$.required?.includes(X),Q=f$(Z);B+=`${q}${X}${z?"?":""}: ${Q};
705
+ `}return B}function f$($){if($.type==="string")return"string";if($.type==="number"||$.type==="integer")return"number";if($.type==="boolean")return"boolean";if($.type==="array")return`${$.items?f$($.items):"any"}[]`;if($.type==="object")return"Record<string, any>";return"any"}var I,H,O;var C$=A(()=>{I=require("fs/promises"),H=require("path"),O=require("fs")});S$();var t=require("fs"),o=require("path"),__dirname="C:\\Users\\alfredo\\Desktop\\veloce-ts-proyecto\\Veloce-TS\\src\\cli",kq=()=>{try{let $=o.join(__dirname,"..","..","package.json");return JSON.parse(t.readFileSync($,"utf-8")).version||"0.3.0"}catch{try{let $=o.join(process.cwd(),"package.json");return JSON.parse(t.readFileSync($,"utf-8")).version||"0.3.0"}catch{return"0.3.0"}}},y=new I$;y.name("veloce").description("A modern, fast web framework for TypeScript inspired by FastAPI").version(kq(),"-v, --version","Display version number").helpOption("-h, --help","Display help for command");async function Cq(){let{registerNewCommand:$}=await Promise.resolve().then(() => (D$(),V$)),{registerDevCommand:q}=await Promise.resolve().then(() => (j$(),A$)),{registerBuildCommand:B}=await Promise.resolve().then(() => (w$(),P$)),{registerGenerateCommand:X}=await Promise.resolve().then(() => (C$(),k$));$(y),q(y),B(y),X(y),y.parse(process.argv)}Cq().catch(($)=>{console.error("CLI error:",$),process.exit(1)});
544
706
 
545
- //# debugId=00D5A0085B2BBA2C64756E2164756E21
707
+ //# debugId=77DFFA1BF26F48E564756E2164756E21