swagger-typescript-api 13.0.16 → 13.0.18

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.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/constants.js","../cli/execute.js","../cli/parse-args.js","../cli/operations/display-help.js","../cli/operations/display-version.js","../cli/process-option.js","../cli/index.js","../index.js"],"names":["root_command","skip_command","reservedOptions","parseArgs","args","type","argsCopy","didYouMean","execute","params","commands","instance","resolve","reject","command","usageOptions","error","processArgs","option","operationOptions","processUserOptionData","userOption","data","acc","d","parsedOptionsObject","o","flagValue","internal","walkingOption","allFlagKeys","_","arg","i","tip","existedOption","generateOptionsOutput","options","flags","description","generateOptionsTextOutput","maxLength","spaces","leftStr","leftStrFiller","descriptionLines","line","displayAllHelp","maxOptionLength","commandLabels","maxCommandLength","name","optionsOutput","commandsOutput","commandLabel","optionsTextOutput","outputTest","displayHelp","displayVersion","optionFormatters","str","processFlags","keys","value","isNoFlag","rawValue","variadic","longestKey","a","b","processOption","processedFlags","cli","input","addCommand","addVersion","addHelp","processed","codeGenBaseConfig","CodeGenConfig","templateGenBaseConfig","TemplatesGenConfig","program","package_default","moduleNameIndex","HTTP_CLIENT","v","main","customConfig","customConfigPath","e","generateApi","generateTemplates"],"mappings":";;;;;;AAAA,IAAMA,EAAe,MAAO,CAAA,MAAM,EAC5BC,CAAe,CAAA,MAAA,CAAO,MAAM,CAE5BC,CAAAA,CAAAA,CAAkB,CAAC,SAAW,CAAA,MAAM,CCH1C,CCAA,IAAMC,CAAY,CAAA,CAACC,EAAMC,CAAS,GAAA,CAChC,GAAID,CAAAA,EAAQ,IAAQ,EAAA,CAAC,MAAM,OAAQA,CAAAA,CAAI,EACrC,MAAM,sBAAA,CAER,IAAME,CAAWF,CAAAA,CAAAA,CAAK,KAAM,EAAA,CAE5B,OAAQC,CAAAA,EACN,IAAK,UAAA,CACH,OAAI,OAAQ,CAAA,UAAA,CACHC,EAAS,KAAM,CAAA,CAAC,EAGlBA,CAAS,CAAA,KAAA,CAAM,CAAC,CAEzB,CAAA,IAAK,OACH,OAAOA,CAAAA,CAET,QACE,OAAOA,CAAAA,CAAS,KAAM,CAAA,CAAC,CAE3B,CACF,EDhBAC,CAAW,CAAA,SAAA,CAAY,GAGvB,IAAMC,CAAAA,CAAU,CAACC,CAAQC,CAAAA,CAAAA,CAAUC,CAAa,GAAA,CAC9C,IAAMP,CAAAA,CAAOD,EAAUM,CAAO,CAAA,IAAA,CAAMA,EAAO,IAAI,CAAA,CAE/C,OAAO,IAAI,OAAA,CAAQ,CAACG,CAAAA,CAASC,CAAW,GAAA,CACtC,GAAM,CAAE,OAAA,CAAAC,EAAS,YAAAC,CAAAA,CAAAA,CAAc,MAAAC,CAAM,CAAA,CAAIC,EAAYP,CAAUN,CAAAA,CAAI,EAEnE,GAAIY,CAAAA,CAAO,CACTH,CAAO,CAAA,IAAI,MAAMG,CAAK,CAAC,CACvB,CAAA,MACF,CAEI,CAACD,EAAa,MAAUD,EAAAA,CAAAA,CAAQ,OAASd,CAC3Ce,EAAAA,CAAAA,CAAa,KACXD,CAAQ,CAAA,OAAA,CAAQ,IAAMI,CAAAA,CAAAA,EAAWA,CAAO,CAAA,KAAA,CAAM,OAAS,MAAM,CAC/D,EAGF,IAAMC,CAAAA,CAAmBJ,EAAa,MAAQG,CAAAA,CAAAA,EAAWA,CAAO,CAAA,SAAS,CACzE,CAAA,GAAIC,EAAiB,MAAQ,CAAA,CAC3BA,EAAiB,CAAC,CAAA,CAAE,WACpBP,CAAAA,CAAAA,CAAQ,CACN,OAASX,CAAAA,CAAAA,CACT,QAAS,EACX,CAAC,CACD,CAAA,MACF,MAAO,CACL,IAAIe,CAAQ,CAAA,EAAA,CAENI,CAAwB,CAAA,CAACC,EAAYH,CAAW,GAAA,CACpD,GAAIG,CAAY,CAAA,CACd,IAAMC,CAAOD,CAAAA,CAAAA,CAAW,KACxB,CAAA,GAAI,CAACC,CAAAA,CAAK,QAAU,CAACJ,CAAAA,CAAO,MAAM,KAChC,CAAA,OAAO,CAACA,CAAO,CAAA,KAAA,CAAM,QAEvB,CAAA,GAAIA,CAAO,CAAA,KAAA,CAAM,MACf,OAAIA,CAAAA,CAAO,MAAM,KAAM,CAAA,QAAA,CACdI,EAAK,MAAO,CAAA,CAACC,EAAKC,CACvBD,IAAAA,CAAAA,CAAI,KAAK,GAAGC,CAAAA,CAAE,MAAM,GAAG,CAAA,CAAE,IAAIN,CAAO,CAAA,KAAA,CAAM,KAAM,CAAA,SAAS,CAAC,CAAA,CACnDK,GACN,EAAE,EAEEL,CAAO,CAAA,KAAA,CAAM,MAAM,SAAUI,CAAAA,CAAAA,CAAK,CAAC,CAAA,EAAKJ,CAAO,CAAA,OAAO,CAGnE,CAEA,OAAOA,EAAO,OAChB,CAAA,CAEMO,EAAsBX,CAAQ,CAAA,OAAA,CAAQ,MAAO,CAAA,CAACS,CAAKL,CAAAA,CAAAA,GAAW,CAClE,GAAIF,CAAAA,CAAO,OAAOO,CAElB,CAAA,IAAMF,EAAaN,CAAa,CAAA,IAAA,CAC7BW,GAAMA,CAAE,CAAA,KAAA,CAAM,OAASR,CAAO,CAAA,KAAA,CAAM,IACvC,CAEA,CAAA,GAAI,CAACG,CAAcH,EAAAA,CAAAA,CAAO,QACxB,CAAA,OAAAF,CAAQ,CAAA,CAAA,iBAAA,EAAoBE,EAAO,KAAM,CAAA,GAAG,kBACrCK,CAGT,CAAA,IAAMI,EAAYP,CAAsBC,CAAAA,CAAAA,CAAYH,CAAM,CAAA,CAC1D,GAAI,CAACA,EAAO,SAAW,CAAA,CACrB,IAAMU,CAAWV,CAAAA,CAAAA,CAAO,UAAY,EAAC,CACrCK,CAAIK,CAAAA,CAAAA,CAAS,IAAQV,EAAAA,CAAAA,CAAO,MAAM,IAAI,CAAA,CAAIU,EAAS,SAC/CA,CAAAA,CAAAA,CAAS,UAAUD,CAAS,CAAA,CAC5BA,EACN,CAEA,OAAOJ,CACT,CAAG,CAAA,EAAE,CAEDP,CAAAA,CAAAA,CACFH,EAAO,IAAI,KAAA,CAAMG,CAAK,CAAC,CAEvBJ,CAAAA,CAAAA,CAAQ,CACN,OAASE,CAAAA,CAAAA,CAAQ,OAASd,CAAe,CAAA,IAAA,CAAOc,EAAQ,IACxD,CAAA,OAAA,CAASW,CACX,CAAC,EAEL,CACF,CAAC,CACH,CAAA,CAEMR,EAAc,CAACP,CAAAA,CAAUN,IAAS,CACtC,IAAIU,CAAU,CAAA,IAAA,CACVC,CAAe,CAAA,GACfc,CAAgB,CAAA,IAAA,CAChBb,EAAQ,EAERc,CAAAA,CAAAA,CAAc,EAkElB,CAAA,OAhEAC,EAAE,OAAQ3B,CAAAA,CAAAA,CAAM,CAAC4B,CAAKC,CAAAA,CAAAA,GAAM,CAC1B,GAAI,CAAAjB,EAEJ,CAAIiB,GAAAA,CAAAA,GAAM,CAAG,CAAA,CAGX,GAFAnB,CAAAA,CAAUJ,EAASsB,CAAG,CAAA,CAElB,CAAClB,CAAW,EAAA,CAACkB,EAAI,UAAW,CAAA,GAAG,CAAG,CAAA,CACpC,IAAME,CAAAA,CAAM3B,EAAWyB,CAAKD,CAAAA,CAAAA,CAAE,KAAKrB,CAAQ,CAAC,EAC5CM,CAAQ,CAAA,CAAA,gBAAA,EAAmBgB,CAAG,CAAA,EAC5BE,CAAM,CAAA,CAAA;AAAA,cAAA,EAAmBA,CAAG,CAAA,GAAA,CAAA,CAAQ,EACtC,CAAA,EACF,CAAYpB,KAAAA,CAAAA,GACVA,CAAUJ,CAAAA,CAAAA,CAASV,CAAY,CAAA,CAAA,CAG7Bc,CACFgB,GAAAA,CAAAA,CAAchB,EAAQ,OAAQ,CAAA,MAAA,CAC5B,CAACS,CAAAA,CAAKL,CAAW,GAAA,CAAC,GAAGK,CAAAA,CAAK,GAAGL,CAAO,CAAA,KAAA,CAAM,IAAI,CAAA,CAC9C,EACF,CAEJ,EAAA,CAEA,GAAI,CAAAF,CAAAA,CAEJ,CAAIgB,GAAAA,CAAAA,CAAI,UAAW,CAAA,GAAG,CAAG,CAAA,CACvB,IAAMd,CAAAA,CAASJ,CAAQ,CAAA,OAAA,CAAQ,IAAMI,CAAAA,CAAAA,EACnCA,CAAO,CAAA,KAAA,CAAM,KAAK,QAASc,CAAAA,CAAG,CAChC,CAAA,CAEA,GAAI,CAACd,CAAQ,CAAA,CACX,IAAMgB,CAAM3B,CAAAA,CAAAA,CAAWyB,CAAKF,CAAAA,CAAW,CACvCd,CAAAA,CAAAA,CAAQ,CAAkBgB,eAAAA,EAAAA,CAAG,GAC3BE,CAAM,CAAA,CAAA;AAAA,cAAmBA,EAAAA,CAAG,MAAQ,EACtC,CAAA,EACF,CAEA,GAAIhB,CAAAA,CAAQ,CACV,GAAIW,CAAiBA,EAAAA,CAAAA,CAAc,MAAM,IAASX,GAAAA,CAAAA,CAAO,KAAM,CAAA,IAAA,CAC7D,OAEF,IAAMiB,EAAgBpB,CAAa,CAAA,IAAA,CAChCW,CAAMA,EAAAA,CAAAA,CAAE,KAAM,CAAA,IAAA,GAASR,EAAO,KAAM,CAAA,IACvC,EACIiB,CACFN,CAAAA,CAAAA,CAAgBM,GAEhBN,CAAgB,CAAA,CACd,GAAGX,CAAAA,CACH,KAAO,CAAA,EACT,CACAH,CAAAA,CAAAA,CAAa,IAAKc,CAAAA,CAAa,CAEnC,EAAA,CAEA,MACF,CAEIA,CAAAA,EACFA,CAAc,CAAA,KAAA,CAAM,IAAKG,CAAAA,CAAG,IAEhC,CAAC,CAAA,CACDlB,EAAUA,CAAWJ,EAAAA,CAAAA,CAASV,CAAY,CAEtCgB,CAAAA,CAAAA,CACK,CACL,OAAA,CAAS,IACT,CAAA,YAAA,CAAc,EACd,CAAA,KAAA,CAAAA,CACF,CAAA,CAGK,CACL,OAAA,CAAAF,EACA,YAAAC,CAAAA,CAAAA,CACA,KAAAC,CAAAA,CACF,CACF,CAAA,CE9KA,IAAMoB,CAAAA,CAAyBC,CAC7BA,EAAAA,CAAAA,CAAQ,OACN,CAACd,CAAAA,CAAKL,CAAW,GAAA,CACf,IAAMoB,CAAAA,CAAQ,GAAGpB,CAAO,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,IAAI,CAAC,GAC3CA,CAAO,CAAA,KAAA,CAAM,KAAO,EAAA,GAAA,CAAM,CAAIA,CAAAA,EAAAA,CAAAA,CAAO,MAAM,KAAO,EAAA,GAAG,GAAK,EAC5D,CAAA,CAAA,CACMqB,EAAc,CAAGrB,EAAAA,CAAAA,CAAO,WAAe,EAAA,EAAE,CAC7CA,EAAAA,CAAAA,CAAO,UAAY,KAClBA,CAAAA,EAAAA,CAAAA,CAAO,KAAM,CAAA,QAAA,EAAYA,CAAO,CAAA,OAAA,GAAY,GACzC,EACA,CAAA,CAAA,WAAA,EACE,OAAOA,CAAAA,CAAO,OAAY,EAAA,QAAA,CACtB,IAAIA,CAAO,CAAA,OAAO,IAClBA,CAAO,CAAA,OACb,GACN,CAEA,CAAA,CAAA,OAAIoB,CAAM,CAAA,MAAA,CAASf,CAAI,CAAA,SAAA,GACrBA,EAAI,SAAYe,CAAAA,CAAAA,CAAM,MAGxBf,CAAAA,CAAAA,CAAAA,CAAI,OAAQ,CAAA,IAAA,CAAK,CACf,KAAAe,CAAAA,CAAAA,CACA,WAAAC,CAAAA,CACF,CAAC,CAAA,CACMhB,CACT,CACA,CAAA,CACE,QAAS,EAAC,CACV,UAAW,CACb,CACF,CAEIiB,CAAAA,CAAAA,CAA4B,CAACH,CAAAA,CAASI,EAAWC,CACrDL,GAAAA,CAAAA,CACG,GAAKnB,CAAAA,CAAAA,EAAW,CAEf,IAAMyB,EAAU,CADG,EAAA,KAAA,CAAMD,CAAM,CAAA,CAAE,IAAK,CAAA,GAAG,EAAE,IAAK,CAAA,EAAE,CACrB,CAAA,EAAGxB,CAAO,CAAA,KAAA,CAAM,OAAOuB,CAAW,CAAA,GAAG,CAAC,CAAA,EAAA,CAAA,CAC7DG,CAAgB,CAAA,KAAA,CAAMD,EAAQ,MAAM,CAAA,CAAE,IAAK,CAAA,GAAG,CAAE,CAAA,IAAA,CAAK,EAAE,CACvDE,CAAAA,CAAAA,CAAmB3B,CAAO,CAAA,WAAA,CAAY,KAAM,CAAA,CAAA;AAAA,CAAI,CAAA,CAEtD,OACEyB,CAAAA,CACAE,CACG,CAAA,GAAA,CAAI,CAACC,CAAMb,CAAAA,CAAAA,GACNA,CAAM,GAAA,CAAA,CACDa,CAGF,CAAA,CAAA;AAAA,EAAKF,CAAa,CAAGE,EAAAA,CAAI,CACjC,CAAA,CAAA,CACA,KAAK,EAAE,CAEd,CAAC,CAAA,CACA,IAAK,CAAA,CAAA;AAAA,CAAI,CAERC,CAAAA,CAAAA,CAAiB,CAACrC,CAAAA,CAAUC,CAAa,GAAA,CAC7C,GAAM,CAAE,OAAA0B,CAAAA,CAAAA,CAAS,SAAWW,CAAAA,CAAgB,CAAIZ,CAAAA,CAAAA,CAC9C1B,CAASV,CAAAA,CAAY,CAAE,CAAA,OACzB,CAEM,CAAA,CAAE,QAAUiD,CAAAA,CAAAA,CAAe,SAAWC,CAAAA,CAAiB,CAAInB,CAAAA,CAAAA,CAAE,MACjErB,CAAAA,CAAAA,CACCI,GAAYA,CAAQ,CAAA,IAAA,GAASd,CAChC,CAAA,CAAE,MACA,CAAA,CAACuB,CAAKT,CAAAA,CAAAA,GAAY,CAChB,IAAMuB,CAAUD,CAAAA,CAAAA,CAAsBtB,CAAQ,CAAA,OAAO,CAC/CqC,CAAAA,CAAAA,CAAO,CAAGrC,EAAAA,CAAAA,CAAQ,IAAI,CAAA,EAAGuB,CAAQ,CAAA,MAAA,CAAS,YAAe,CAAA,EAAE,CAC3DE,CAAAA,CAAAA,CAAAA,CAAczB,CAAQ,CAAA,WAAA,CAEtB2B,CAAY,CAAA,IAAA,CAAK,GAAIU,CAAAA,CAAAA,CAAK,OAAQd,CAAQ,CAAA,SAAS,CACzD,CAAA,OAAII,CAAYlB,CAAAA,CAAAA,CAAI,SAClBA,GAAAA,CAAAA,CAAI,SAAYkB,CAAAA,CAAAA,CAAAA,CAGlBlB,CAAI,CAAA,QAAA,CAAS,IAAK,CAAA,CAChB,WAAAgB,CAAAA,CAAAA,CACA,IAAAY,CAAAA,CAAAA,CACA,OAAAd,CAAAA,CACF,CAAC,CAAA,CACMd,CACT,CAAA,CACA,CACE,QAAA,CAAU,EAAC,CACX,SAAWyB,CAAAA,CACb,CACF,CAAA,CAEMI,EAAgBZ,CAA0BH,CAAAA,CAAAA,CAASW,CAAiB,CAAA,CAAC,CAErEK,CAAAA,CAAAA,CAAiBJ,CACpB,CAAA,GAAA,CAAKK,CAAiB,EAAA,CACrB,IAAMX,CAAAA,CAAU,CAAKW,EAAAA,EAAAA,CAAAA,CAAa,IAAK,CAAA,MAAA,CACrCJ,EACA,GACF,CAAC,CACKN,IAAAA,CAAAA,CAAAA,CAAAA,CAAgB,KAAMD,CAAAA,CAAAA,CAAQ,MAAM,CAAA,CAAE,IAAK,CAAA,GAAG,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA,CACvDE,CAAmBS,CAAAA,CAAAA,CAAa,YAAY,KAAM,CAAA,CAAA;AAAA,CAAI,EACtDC,CAAoBf,CAAAA,CAAAA,CACxBc,EAAa,OAAQ,CAAA,OAAA,CACrBJ,EACA,CACF,CAAA,CAEA,OACEP,CAAAA,CACAE,EACG,GAAI,CAAA,CAACC,EAAMb,CACNA,GAAAA,CAAAA,GAAM,EACDa,CAGF,CAAA,CAAA;AAAA,EAAKF,CAAa,GAAGE,CAAI,CAAA,CACjC,EACA,IAAK,CAAA,EAAE,CACTS,EAAAA,CAAAA,CAAkB,MAAS,CAAA,CAAA;AAAA,EAAKA,CAAiB,CAAA,CAAA,CAAK,EAE3D,CAAA,CAAC,EACA,IAAK,CAAA,CAAA;AAAA,CAAI,CAAA,CAENC,CAAa,CAAA,CACjBJ,CACE,EAAA,CAAA;AAAA,EACJA,CAAa,GACXC,CACE,EAAA,CAAA;AAAA,EACJA,CAAc,CACd,CAAA,CAAA,CACG,MAAO,CAAA,OAAO,EACd,IAAK,CAAA,CAAA;AAAA;AAAA,CAAM,CAAA,CAEd,OAAQ,CAAA,GAAA,CAAI,CAAU,OAAA,EAAA,CAAC1C,EAAS,KAAM,CAAA,IAAA,CAAMA,CAAS,CAAA,KAAA,CAAM,KAAK,CAAA,CAC7D,OAAO,OAAO,CAAA,CACd,IAAK,CAAA,GAAG,CAAC,CAAA,EAAGyC,CAAgB,CAAA,YAAA,CAAe,EAAE,CAAA,EAC9CC,CAAiB,CAAA,YAAA,CAAe,EAClC,CAAA;AAAA,EAEA1C,CAAAA,CAAS,MAAM,WACf,EAAA,CAAA;AAAA,EACAA,CAAAA,CAAS,KAAM,CAAA,WAAW,CAC5B,CAAA,CAAA;AAAA;AAAA,EAEE6C,CAAU,CAAE,CAAA,EACd,CAEMC,CAAAA,CAAAA,CAAc,CAAC/C,CAAUC,CAAAA,CAAAA,CAAUG,CAAY,GAAA,CACnD,GAAIA,CAAQ,CAAA,IAAA,GAASd,EAAc,OAAO+C,CAAAA,CAAerC,EAAUC,CAAQ,CAAA,CAE3E,GAAM,CAAE,QAAA0B,CAAS,CAAA,SAAA,CAAWW,CAAgB,CAAA,CAAIZ,EAC9CtB,CAAQ,CAAA,OACV,CACMsC,CAAAA,CAAAA,CAAgBZ,EAA0BH,CAASW,CAAAA,CAAAA,CAAiB,CAAC,CAErEQ,CAAAA,CAAAA,CAAa,CACjBJ,CACE,EAAA,CAAA;AAAA,EACJA,CAAa,CACb,CAAA,CAAA,CACG,MAAO,CAAA,OAAO,EACd,IAAK,CAAA,CAAA;AAAA;AAAA,CAAM,CAEd,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,OAAA,EAAUzC,CAAS,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA,EAAIG,CAAQ,CAAA,IAAI,CACvDsC,EAAAA,CAAAA,CAAgB,aAAe,EACjC,CAAA;AAAA,EAEAtC,EAAQ,WACR,EAAA,CAAA;AAAA,EACAA,CAAAA,CAAQ,WAAW,CACrB,CAAA,CAAA;AAAA;AAAA,EAEE0C,CAAU,CAAE,CAAA,EACd,CC9KA,CAAA,IAAME,EAAkB/C,CAAa,EAAA,CACnC,OAAQ,CAAA,GAAA,CAAIA,CAAS,CAAA,KAAA,CAAM,OAAO,EACpC,CAAA,CCAA,IAAMgD,CAAmB,CAAA,CACvB,MAASC,CAAAA,CAAAA,EAAQ,CAACA,CAAAA,CAClB,OAAUA,CAAAA,CAAAA,EAAQ,CAACA,CACnB,CAAA,GAAA,CAAMA,CAAQ,EAAA,CAAA,EAAGA,CAAG,CAAA,CAAA,CACpB,MAASA,CAAAA,CAAAA,EAAQ,CAAGA,EAAAA,CAAG,CACvB,CAAA,CAAA,IAAA,CAAOA,CAAQ,EAAA,CAAC,CAACA,CACjB,CAAA,OAAA,CAAUA,CAAQ,EAAA,CAAC,CAACA,CACtB,CAEMC,CAAAA,CAAAA,CAAgBvB,CAAU,EAAA,CAC9B,IAAIa,CAAAA,CAAO,IACLW,CAAAA,CAAAA,CAAO,EACTC,CAAAA,CAAAA,CAAQ,IACNC,CAAAA,CAAAA,CAAW1B,CAAM,CAAA,QAAA,CAAS,OAAO,CAEvCP,CAAAA,CAAAA,CAAE,OAAQA,CAAAA,CAAAA,CAAE,KAAMO,CAAAA,CAAAA,CAAO,GAAG,CAAE,CAAA,GAAA,CAAKsB,CAAQA,EAAAA,CAAAA,CAAI,OAAQ,CAAA,IAAA,CAAM,EAAE,CAAC,CAAC,CAAA,CAAE,OAChEA,CAAAA,CAAAA,EAAQ,CACP,GAAIA,EAAI,UAAW,CAAA,GAAG,CACpBE,CAAAA,CAAAA,CAAK,IAAKF,CAAAA,CAAG,CACJG,CAAAA,KAAAA,GAAAA,CAAAA,GAAU,IACfH,GAAAA,CAAAA,CAAI,UAAW,CAAA,GAAG,CAAKA,EAAAA,CAAAA,CAAI,WAAW,GAAG,CAAA,EAAKA,CAAI,CAAA,UAAA,CAAW,GAAG,CAAA,CAAA,CAAG,CACrE,IAAMK,CAAWL,CAAAA,CAAAA,CAAI,OAAQ,CAAA,aAAA,CAAe,EAAE,CAAA,CACxCM,EAAWN,CAAI,CAAA,QAAA,CAAS,KAAK,CAAA,CACnCG,CAAQ,CAAA,CACN,IAAKH,CACL,CAAA,QAAA,CAAAM,CACA,CAAA,IAAA,CAAMD,CACN,CAAA,SAAA,CAAWN,EAAiBM,CAAQ,CAAA,EAAKN,CAAiB,CAAA,MAC5D,EACF,CAEJ,CACF,CAAA,CAEA,IAAMQ,CAAAA,CAAaL,CAAK,CAAA,KAAA,EAAQ,CAAA,IAAA,CAAK,CAACM,CAAGC,CAAAA,CAAAA,GAAMA,CAAE,CAAA,MAAA,CAASD,CAAE,CAAA,MAAM,CAAE,CAAA,CAAC,CAErE,CAAA,OAAKrC,CAAE,CAAA,OAAA,CAAQoC,CAAU,CAAA,GACvBhB,EAAOpB,CAAE,CAAA,SAAA,CAAA,CACNiC,CAAWG,CAAAA,CAAAA,CAAW,OAAQ,CAAA,OAAA,CAAS,EAAE,CAAA,CAAIA,CAAY,EAAA,OAAA,CACxD,OACA,CAAA,EACF,CACF,CAAA,CAAA,CAGK,CACL,QAAAH,CAAAA,CAAAA,CACA,GAAK1B,CAAAA,CAAAA,CACL,IAAAa,CAAAA,CAAAA,CACA,KAAAW,CACA,CAAA,KAAA,CAAAC,CACF,CACF,CAEMO,CAAAA,CAAAA,CAAiBpD,GAAW,CAChC,IAAMqD,CAAiBV,CAAAA,CAAAA,CAAa3C,CAAO,CAAA,KAAK,CAEhD,CAAA,OAAKqD,CAAe,CAAA,IAAA,CAKb,CACL,QAAA,CAAU,CAAC,CAACrD,EAAO,QACnB,CAAA,WAAA,CAAa,CAAGA,EAAAA,CAAAA,CAAO,WAAe,EAAA,EAAE,CACxC,CAAA,CAAA,OAAA,CAASA,CAAO,CAAA,OAAA,CAChB,KAAOqD,CAAAA,CAAAA,CACP,SAAWrD,CAAAA,CAAAA,CAAO,UAClB,QAAUA,CAAAA,CAAAA,CAAO,QACnB,CAAA,EAXE,OAAQ,CAAA,IAAA,CAAK,gBAAkBA,CAAAA,CAAM,CAC9B,CAAA,IAAA,CAWX,CCjEA,CAAA,IAAMsD,CAAOC,CAAAA,CAAAA,EAAU,CACrB,IAAM/D,CAAAA,CAAW,EAAC,CAEZgE,CAAa,CAAA,CAAC5D,EAAS,CAAE,UAAA,CAAA6D,CAAa,CAAA,CAAA,CAAA,CAAO,OAAAC,CAAAA,CAAAA,CAAU,EAAK,CAAI,CAAA,EACpElE,IAAAA,CAAAA,CAASI,CAAQ,CAAA,IAAI,CAAI,CAAA,CACvB,IAAMA,CAAAA,CAAAA,CAAQ,IACd,CAAA,WAAA,CAAa,CAAGA,EAAAA,CAAAA,CAAQ,aAAe,EAAE,CAAA,CAAA,CACzC,OAASiB,CAAAA,CAAAA,CAAE,OAAQA,CAAAA,CAAAA,CAAE,GAAIjB,CAAAA,CAAAA,CAAQ,OAASwD,CAAAA,CAAa,CAAC,CAC1D,CAEIK,CAAAA,CAAAA,EACFjE,EAASI,CAAQ,CAAA,IAAI,CAAE,CAAA,OAAA,CAAQ,OAC7BwD,CAAAA,CAAAA,CAAc,CACZ,KAAA,CAAO,eACP,CAAA,WAAA,CAAa,4BACb,CAAA,SAAA,CAAW,IAAMZ,CAAAA,CAAe/C,CAAQ,CAC1C,CAAC,CACH,CAAA,CAGEiE,CACFlE,EAAAA,CAAAA,CAASI,EAAQ,IAAI,CAAA,CAAE,OAAQ,CAAA,IAAA,CAC7BwD,CAAc,CAAA,CACZ,MAAO,YACP,CAAA,WAAA,CAAa,0BACb,CAAA,SAAA,CAAW,IACTb,CAAAA,CAAY/C,CAAUC,CAAAA,CAAAA,CAAUD,CAASI,CAAAA,CAAAA,CAAQ,IAAI,CAAC,CAC1D,CAAC,CACH,CAGKH,CAAAA,CAAAA,CAAAA,CAGHA,CAAW,CAAA,CACf,QAAAD,CAAAA,CAAAA,CACA,KAAA+D,CAAAA,CAAAA,CACA,UAAAC,CAAAA,CAAAA,CACA,OAAUjE,CAAAA,CAAAA,EAAWD,CAAQC,CAAAA,CAAAA,CAAQC,CAAkB,CACzD,CAEA,CAAA,OAAAgE,CACE,CAAA,CACE,IAAM1E,CAAAA,CAAAA,CACN,OAAS,CAAA,EACX,CAAA,CACA,CACE,UAAA,CAAY,GACZ,OAAS,CAAA,CAAA,CACX,CACF,CAAA,CAEA+B,CAAE,CAAA,OAAA,CAAQ0C,EAAM,OAAUvD,CAAAA,CAAAA,EAAW,CACnC,IAAM2D,CAAYP,CAAAA,CAAAA,CAAcpD,CAAM,CAEtC,CAAA,GAAK2D,CAEL,CAAA,CAAA,GAAI3E,CAAgB,CAAA,QAAA,CAAS2E,CAAU,CAAA,IAAI,CAAG,CAAA,CAC5C,OAAQ,CAAA,IAAA,CAAK,iBAAmBA,CAAAA,CAAAA,CAAU,IAAI,CAC9C,CAAA,MACF,CAEAnE,CAAAA,CAASV,CAAY,CAAA,CAAE,OAAQ,CAAA,IAAA,CAAK6E,CAAS,EAAA,CAC/C,CAAC,CAAA,CAEDnE,CAASV,CAAAA,CAAY,EAAE,OAAQ,CAAA,OAAA,CAC7BsE,CAAc,CAAA,CACZ,KAAO,CAAA,eAAA,CACP,WAAa,CAAA,4BAAA,CACb,SAAW,CAAA,IAAMZ,CAAe/C,CAAAA,CAAQ,CAC1C,CAAC,CACH,CAEAD,CAAAA,CAAAA,CAASV,CAAY,CAAA,CAAE,OAAQ,CAAA,IAAA,CAC7BsE,EAAc,CACZ,KAAA,CAAO,YACP,CAAA,WAAA,CAAa,0BACb,CAAA,SAAA,CAAW,IAAMb,CAAY/C,CAAAA,CAAAA,CAAUC,CAAUD,CAAAA,CAAAA,CAASV,CAAY,CAAC,CACzE,CAAC,CACH,CAAA,CAEA+B,CAAE,CAAA,OAAA,CAAQ0C,CAAM,CAAA,QAAA,CAAUC,CAAU,CAE7B/D,CAAAA,CACT,CCjFA,CAAA,IAAMmE,CAAoB,CAAA,IAAIC,CAAc,CAAA,EAAE,CAAA,CACxCC,CAAwB,CAAA,IAAIC,CAAmB,CAAA,EAAE,CAEjDC,CAAAA,CAAAA,CAAUV,CAAI,CAAA,CAClB,IAAMW,CAAAA,CAAAA,CAAY,IAClB,CAAA,KAAA,CAAO,KACP,CAAA,OAAA,CAASA,CAAY,CAAA,OAAA,CACrB,WACE,CAAA,CAAA;AAAA,iCAAA,CAAA,CACF,QAAS,CACP,CACE,KAAO,CAAA,qBAAA,CACP,YAAa,4BACb,CAAA,QAAA,CAAU,CACZ,CAAA,CAAA,CACA,CACE,KAAO,CAAA,uBAAA,CACP,WAAa,CAAA,oCAAA,CACb,QAAS,IACX,CAAA,CACA,CACE,KAAA,CAAO,sBACP,WAAa,CAAA,oCAAA,CACb,OAASL,CAAAA,CAAAA,CAAkB,QAC7B,CACA,CAAA,CACE,KAAO,CAAA,0BAAA,CACP,YAAa,qCACf,CAAA,CACA,CACE,KAAA,CAAO,2BACP,WACE,CAAA,CAAA;AAAA,4FAAA,CAAA,CAEF,OAASA,CAAAA,CAAAA,CAAkB,wBAC3B,CAAA,QAAA,CAAU,CAAE,IAAA,CAAM,0BAA2B,CAC/C,CACA,CAAA,CACE,KAAO,CAAA,iBAAA,CACP,WACE,CAAA,CAAA;AAAA,kCAAA,CAAA,CAEF,QAASA,CAAkB,CAAA,iBAAA,CAC3B,QAAU,CAAA,CAAE,KAAM,mBAAoB,CACxC,CACA,CAAA,CACE,MAAO,eACP,CAAA,WAAA,CAAa,yDACb,CAAA,OAAA,CAASA,EAAkB,kBAC3B,CAAA,QAAA,CAAU,CAAE,IAAA,CAAM,oBAAqB,CACzC,CAAA,CACA,CACE,KAAA,CAAO,iBACP,WAAa,CAAA,8BAAA,CACb,OAASA,CAAAA,CAAAA,CAAkB,WAC7B,CACA,CAAA,CACE,MAAO,eACP,CAAA,WAAA,CAAa,2CACb,OAASA,CAAAA,CAAAA,CAAkB,kBAC3B,CAAA,QAAA,CAAU,CAAE,IAAM,CAAA,oBAAqB,CACzC,CAAA,CACA,CACE,KAAO,CAAA,aAAA,CACP,WAAa,CAAA,8BAAA,CACb,QAASA,CAAkB,CAAA,cAC7B,CACA,CAAA,CACE,MAAO,wBACP,CAAA,WAAA,CACE,+DACF,CAAA,OAAA,CAASA,EAAkB,iBAC7B,CAAA,CACA,CACE,KAAA,CAAO,2BACP,WACE,CAAA,qGAAA,CACF,OAASA,CAAAA,CAAAA,CAAkB,qBAC3B,QAAU,CAAA,CAAE,UAAW,OAAQ,CACjC,EACA,CACE,KAAA,CAAO,wBACP,CAAA,WAAA,CAAa,6CACb,OAASA,CAAAA,CAAAA,CAAkB,kBAC3B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CAAA,CACA,CACE,KAAO,CAAA,yBAAA,CACP,WAAa,CAAA,6CAAA,CACb,QAASA,CAAkB,CAAA,mBAAA,CAC3B,QAAU,CAAA,CAAE,UAAW,OAAQ,CACjC,CACA,CAAA,CACE,MAAO,0BACP,CAAA,WAAA,CAAa,8CACb,CAAA,OAAA,CAASA,EAAkB,oBAC3B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CACA,CAAA,CACE,KAAO,CAAA,qBAAA,CACP,YAAa,0DACb,CAAA,OAAA,CAASA,CAAkB,CAAA,gBAAA,CAC3B,SAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,EACA,CACE,KAAA,CAAO,WACP,CAAA,WAAA,CACE,uEACF,OAASA,CAAAA,CAAAA,CAAkB,OAC3B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CAAA,CACA,CACE,KAAO,CAAA,MAAA,CACP,WAAa,CAAA,8CAAA,CACb,QAASA,CAAkB,CAAA,IAAA,CAC3B,SAAU,CAAE,SAAA,CAAW,QAAS,IAAM,CAAA,MAAO,CAC/C,CAAA,CACA,CACE,KAAO,CAAA,8BAAA,CACP,WACE,CAAA,qIAAA,CACF,QAASA,CAAkB,CAAA,eAAA,CAC3B,QAAU,CAAA,CAAE,UAAYM,CAAoB,EAAA,CAACA,CAAmB,EAAA,CAAE,CACpE,CACA,CAAA,CACE,KAAO,CAAA,yBAAA,CACP,YAAa,sCACb,CAAA,OAAA,CAASN,CAAkB,CAAA,kBAC7B,EACA,CACE,KAAA,CAAO,oBACP,CAAA,WAAA,CAAa,sBACb,OAASA,CAAAA,CAAAA,CAAkB,iBAC3B,QAAU,CAAA,CAAE,UAAW,OAAQ,CACjC,CACA,CAAA,CACE,MAAO,gBACP,CAAA,WAAA,CAAa,gBACb,CAAA,OAAA,CAASA,EAAkB,YAC3B,CAAA,QAAA,CAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,CAAA,CACA,CACE,KAAA,CAAO,UACP,WAAa,CAAA,4BAAA,CACb,OAASA,CAAAA,CAAAA,CAAkB,iBAAmBO,CAAY,CAAA,KAC5D,CACA,CAAA,CACE,MAAO,wBACP,CAAA,WAAA,CAAa,wCACb,CAAA,OAAA,CAASP,EAAkB,kBAC7B,CAAA,CACA,CACE,KAAO,CAAA,0BAAA,CACP,YAAa,oDACb,CAAA,OAAA,CAASA,CAAkB,CAAA,mBAC7B,EACA,CACE,KAAA,CAAO,sBACP,CAAA,WAAA,CAAa,yDACb,OAASA,CAAAA,CAAAA,CAAkB,gBAC3B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CAAA,CACA,CACE,KAAO,CAAA,UAAA,CACP,WAAa,CAAA,+BAAA,CACb,QAASA,CAAkB,CAAA,MAAA,CAC3B,QAAU,CAAA,CAAE,UAAW,OAAQ,CACjC,CACA,CAAA,CACE,MAAO,2BACP,CAAA,WAAA,CAAa,yCACb,OAASA,CAAAA,CAAAA,CAAkB,oBAC3B,QAAU,CAAA,CAAE,IAAM,CAAA,qBAAsB,CAC1C,CACA,CAAA,CACE,KAAO,CAAA,wBAAA,CACP,YAAa,2BACb,CAAA,OAAA,CAASA,CAAkB,CAAA,UAC7B,EACA,CACE,KAAA,CAAO,yBACP,WAAa,CAAA,2BAAA,CACb,QAASA,CAAkB,CAAA,UAC7B,CACA,CAAA,CACE,MAAO,gBACP,CAAA,WAAA,CACE,uEACF,CAAA,OAAA,CAASA,EAAkB,WAC3B,CAAA,QAAA,CAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,CAAA,CACA,CACE,KAAO,CAAA,2BAAA,CACP,YAAa,uBACb,CAAA,OAAA,CAASA,CAAkB,CAAA,YAC7B,EACA,CACE,KAAA,CAAO,SACP,CAAA,WAAA,CAAa,uDACb,OAASA,CAAAA,CAAAA,CAAkB,KAC3B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CAAA,CACA,CACE,KAAO,CAAA,SAAA,CACP,WAAa,CAAA,yDAAA,CACb,QAASA,CAAkB,CAAA,KAC7B,CACA,CAAA,CACE,MAAO,sBACP,CAAA,WAAA,CAAa,yDACb,CAAA,OAAA,CAASA,EAAkB,gBAC7B,CAAA,CACA,CACE,KAAO,CAAA,cAAA,CACP,YAAa,uBACb,CAAA,OAAA,CAASA,CAAkB,CAAA,SAC7B,EACA,CACE,KAAA,CAAO,iBACP,CAAA,WAAA,CACE,wFACF,OAASA,CAAAA,CAAAA,CAAkB,YAC7B,CAAA,CACA,CACE,KAAO,CAAA,eAAA,CACP,WAAa,CAAA,mCAAA,CACb,QAASA,CAAkB,CAAA,UAC7B,CACA,CAAA,CACE,MAAO,0BACP,CAAA,WAAA,CAAa,qDACb,CAAA,OAAA,CAAS,EACX,CACF,CACF,CAAC,CAAA,CAEDI,EAAQ,UAAW,CAAA,CACjB,KAAM,oBACN,CAAA,WAAA,CAAa,oDACb,OAAS,CAAA,CACP,CACE,KAAA,CAAO,wBACP,WAAa,CAAA,oCAAA,CACb,OAASF,CAAAA,CAAAA,CAAsB,MACjC,CACA,CAAA,CACE,KAAO,CAAA,eAAA,CACP,YACE,yFACF,CAAA,OAAA,CAASA,CAAsB,CAAA,OAAA,CAC/B,SAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,EACA,CACE,KAAA,CAAO,wBACP,CAAA,WAAA,CAAa,sCAAsC,MAAO,CAAA,MAAA,CACxDK,CACF,CAAA,CACG,IAAKC,CAAM,EAAA,CAAA,CAAA,EAAIA,CAAC,CAAG,CAAA,CAAA,CAAA,CACnB,KAAK,IAAI,CAAC,CACb,CAAA,CAAA,CAAA,OAAA,CAASN,EAAsB,cAC/B,CAAA,QAAA,CAAU,CAAE,IAAA,CAAM,gBAAiB,CACrC,CAAA,CACA,CACE,KAAA,CAAO,qBACP,WACE,CAAA,4EAAA,CACF,QAASA,CAAsB,CAAA,WAAA,CAC/B,SAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,EACA,CACE,KAAA,CAAO,eACP,CAAA,WAAA,CAAa,wCACb,OAASA,CAAAA,CAAAA,CAAsB,OAC/B,CAAA,QAAA,CAAU,CAAE,SAAW,CAAA,OAAQ,CACjC,CACA,CAAA,CACE,MAAO,UACP,CAAA,WAAA,CAAa,+BACb,CAAA,OAAA,CAASA,EAAsB,MAC/B,CAAA,QAAA,CAAU,CAAE,SAAA,CAAW,OAAQ,CACjC,CACF,CACF,CAAC,EAED,IAAMO,CAAAA,CAAO,SAAY,CACvB,GAAM,CAAE,OAAA,CAAAzE,CAAS,CAAA,OAAA,CAAAuB,CAAQ,CAAI,CAAA,MAAM6C,CAAQ,CAAA,OAAA,CAAQ,CAAE,IAAM,CAAA,OAAA,CAAQ,IAAK,CAAC,EAErEM,CAAe,CAAA,IAAA,CACfC,EAEJ,GAAIpD,CAAAA,CAAQ,aAAc,CACxB,GAAI,CACFoD,CAAAA,CAAmB7E,QAAQ,OAAQ,CAAA,GAAA,EAAOyB,CAAAA,CAAAA,CAAQ,YAAY,CAC9DmD,CAAAA,CAAAA,CAAe,MAAM,OAAOC,GAC5BD,CAAeA,CAAAA,CAAAA,CAAa,OAAWA,EAAAA,EACzC,OAASE,CAAG,CAAA,CACV,OAAQ,CAAA,KAAA,CAAM,8BAA+BA,CAAC,EAChD,CACIF,CAAAA,EACF,QAAQ,GAAI,CAAA,CAAA,+BAAA,EAA6BC,CAAgB,CAAA,CAAE,EAE/D,CAEA,GAAI,CACF,OAAQ3E,CAAAA,EACN,KAAK,IAAA,CAAM,CACT,MAAM6E,EAAY,CAChB,GAAGtD,CACH,CAAA,IAAA,CAAMA,EAAQ,IACd,CAAA,GAAA,CAAKA,CAAQ,CAAA,IAAA,CACb,mBAAoBA,CAAQ,CAAA,kBAAA,CAC5B,cAAgB,CAAA,CAAC,EAAEA,CAAQ,CAAA,KAAA,EAASA,CAAQ,CAAA,MAAA,CAAA,CAC5C,eAAgBA,CAAQ,CAAA,KAAA,CAAQgD,CAAY,CAAA,KAAA,CAAQA,EAAY,KAChE,CAAA,KAAA,CAAOzE,OAAQ,CAAA,OAAA,CAAQ,KAAOyB,CAAAA,CAAAA,CAAQ,IAAI,CAC1C,CAAA,MAAA,CAAQzB,QAAQ,OAAQ,CAAA,GAAA,EAAOyB,CAAAA,CAAAA,CAAQ,QAAU,GAAG,CAAA,CACpD,GAAGmD,CACL,CAAC,CACD,CAAA,KACF,CACA,IAAK,qBAAsB,CACzB,MAAMI,EAAkBvD,CAAO,CAAA,CAC/B,KACF,CACA,QACE,KAEJ,CACF,OAASqD,CAAG,CAAA,CACV,OAAQ,CAAA,KAAA,CAAMA,CAAC,CACf,CAAA,OAAA,CAAQ,IAAK,CAAA,CAAC,EAChB,CACA,OAAA,CAAQ,KAAK,CAAC,EAChB,EAEAH,CAAK,EAAA","file":"cli.js","sourcesContent":["const root_command = Symbol(\"root\");\nconst skip_command = Symbol(\"skip\");\n\nconst reservedOptions = [\"version\", \"help\"];\n\nexport { root_command, skip_command, reservedOptions };\n","import didYouMean from \"didyoumean\";\nimport _ from \"lodash\";\nimport { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\n// eslint-disable-next-line no-unused-vars\nconst execute = (params, commands, instance) => {\n const args = parseArgs(params.args, params.from);\n\n return new Promise((resolve, reject) => {\n const { command, usageOptions, error } = processArgs(commands, args);\n\n if (error) {\n reject(new Error(error));\n return;\n }\n\n if (!usageOptions.length && command.name === root_command) {\n usageOptions.push(\n command.options.find((option) => option.flags.name === \"help\"),\n );\n }\n\n const operationOptions = usageOptions.filter((option) => option.operation);\n if (operationOptions.length) {\n operationOptions[0].operation();\n resolve({\n command: skip_command,\n options: {},\n });\n return;\n } else {\n let error = \"\";\n\n const processUserOptionData = (userOption, option) => {\n if (userOption) {\n const data = userOption.$data;\n if (!data.length && !option.flags.value) {\n return !option.flags.isNoFlag;\n }\n if (option.flags.value) {\n if (option.flags.value.variadic) {\n return data.reduce((acc, d) => {\n acc.push(...d.split(\",\").map(option.flags.value.formatter));\n return acc;\n }, []);\n } else {\n return option.flags.value.formatter(data[0] || option.default);\n }\n }\n }\n\n return option.default;\n };\n\n const parsedOptionsObject = command.options.reduce((acc, option) => {\n if (error) return acc;\n\n const userOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n\n if (!userOption && option.required) {\n error = `required option '${option.flags.raw}' not specified`;\n return acc;\n }\n\n const flagValue = processUserOptionData(userOption, option);\n if (!option.operation) {\n const internal = option.internal || {};\n acc[internal.name || option.flags.name] = internal.formatter\n ? internal.formatter(flagValue)\n : flagValue;\n }\n\n return acc;\n }, {});\n\n if (error) {\n reject(new Error(error));\n } else {\n resolve({\n command: command.name === root_command ? null : command.name,\n options: parsedOptionsObject,\n });\n }\n }\n });\n};\n\nconst processArgs = (commands, args) => {\n let command = null;\n let usageOptions = [];\n let walkingOption = null;\n let error = \"\";\n\n let allFlagKeys = [];\n\n _.forEach(args, (arg, i) => {\n if (error) return;\n\n if (i === 0) {\n command = commands[arg];\n\n if (!command && !arg.startsWith(\"-\")) {\n const tip = didYouMean(arg, _.keys(commands));\n error = `unknown command ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n } else if (!command) {\n command = commands[root_command];\n }\n\n if (command) {\n allFlagKeys = command.options.reduce(\n (acc, option) => [...acc, ...option.flags.keys],\n [],\n );\n }\n }\n\n if (error) return;\n\n if (arg.startsWith(\"-\")) {\n const option = command.options.find((option) =>\n option.flags.keys.includes(arg),\n );\n\n if (!option) {\n const tip = didYouMean(arg, allFlagKeys);\n error = `unknown option ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n }\n\n if (option) {\n if (walkingOption && walkingOption.flags.name === option.flags.name) {\n return;\n }\n const existedOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n if (existedOption) {\n walkingOption = existedOption;\n } else {\n walkingOption = {\n ...option,\n $data: [],\n };\n usageOptions.push(walkingOption);\n }\n }\n\n return;\n }\n\n if (walkingOption) {\n walkingOption.$data.push(arg);\n }\n });\n command = command || commands[root_command];\n\n if (error) {\n return {\n command: null,\n usageOptions: [],\n error,\n };\n }\n\n return {\n command,\n usageOptions,\n error,\n };\n};\n\nexport { execute };\n","const parseArgs = (args, type) => {\n if (args == null || !Array.isArray(args)) {\n throw \"args should be array\";\n }\n const argsCopy = args.slice();\n\n switch (type) {\n case \"electron\": {\n if (process.defaultApp) {\n return argsCopy.slice(2);\n }\n\n return argsCopy.slice(1);\n }\n case \"user\": {\n return argsCopy;\n }\n default: {\n return argsCopy.slice(2);\n }\n }\n};\n\nexport { parseArgs };\n","import _ from \"lodash\";\nimport { root_command } from \"../constants.js\";\n\nconst generateOptionsOutput = (options) =>\n options.reduce(\n (acc, option) => {\n const flags = `${option.flags.keys.join(\", \")}${\n option.flags.value?.raw ? ` ${option.flags.value?.raw}` : \"\"\n }`;\n const description = `${option.description || \"\"}${\n option.default === undefined ||\n (option.flags.isNoFlag && option.default === true)\n ? \"\"\n : ` (default: ${\n typeof option.default === \"string\"\n ? `\"${option.default}\"`\n : option.default\n })`\n }`;\n\n if (flags.length > acc.maxLength) {\n acc.maxLength = flags.length;\n }\n\n acc.options.push({\n flags,\n description,\n });\n return acc;\n },\n {\n options: [],\n maxLength: 0,\n },\n );\n\nconst generateOptionsTextOutput = (options, maxLength, spaces) =>\n options\n .map((option) => {\n const spacesText = Array(spaces).fill(\" \").join(\"\");\n const leftStr = `${spacesText}${option.flags.padEnd(maxLength, \" \")} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = option.description.split(\"\\n\");\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\")\n );\n })\n .join(\"\\n\");\n\nconst displayAllHelp = (commands, instance) => {\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n commands[root_command].options,\n );\n\n const { commands: commandLabels, maxLength: maxCommandLength } = _.filter(\n commands,\n (command) => command.name !== root_command,\n ).reduce(\n (acc, command) => {\n const options = generateOptionsOutput(command.options);\n const name = `${command.name}${options.length ? \" [options]\" : \"\"}`;\n const description = command.description;\n\n const maxLength = Math.max(name.length, options.maxLength);\n if (maxLength > acc.maxLength) {\n acc.maxLength = maxLength;\n }\n\n acc.commands.push({\n description,\n name,\n options,\n });\n return acc;\n },\n {\n commands: [],\n maxLength: maxOptionLength,\n },\n );\n\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const commandsOutput = commandLabels\n .map((commandLabel) => {\n const leftStr = ` ${commandLabel.name.padEnd(\n maxCommandLength,\n \" \",\n )} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = commandLabel.description.split(\"\\n\");\n const optionsTextOutput = generateOptionsTextOutput(\n commandLabel.options.options,\n maxCommandLength,\n 4,\n );\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\") +\n (optionsTextOutput.length ? `\\n${optionsTextOutput}` : \"\")\n );\n })\n .join(\"\\n\");\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n commandsOutput &&\n `Commands:\n${commandsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${[instance.input.name, instance.input.alias]\n .filter(Boolean)\n .join(\"|\")}${optionsOutput ? \" [options]\" : \"\"}${\n commandsOutput ? \" [command]\" : \"\"\n }\n${\n instance.input.description &&\n `\n${instance.input.description}`\n}\n\n${outputTest}`);\n};\n\nconst displayHelp = (commands, instance, command) => {\n if (command.name === root_command) return displayAllHelp(commands, instance);\n\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n command.options,\n );\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${instance.input.name} ${command.name}${\n optionsOutput ? \" [options]\" : \"\"\n }\n${\n command.description &&\n `\n${command.description}`\n}\n\n${outputTest}`);\n};\n\nexport { displayHelp };\n","const displayVersion = (instance) => {\n console.log(instance.input.version);\n};\n\nexport { displayVersion };\n","import _ from \"lodash\";\n\nconst optionFormatters = {\n number: (str) => +str,\n numeric: (str) => +str,\n str: (str) => `${str}`,\n string: (str) => `${str}`,\n bool: (str) => !!str,\n boolean: (str) => !!str,\n};\n\nconst processFlags = (flags) => {\n let name = null;\n const keys = [];\n let value = null;\n const isNoFlag = flags.includes(\"--no-\");\n\n _.compact(_.split(flags, \" \").map((str) => str.replace(/,/g, \"\"))).forEach(\n (str) => {\n if (str.startsWith(\"-\")) {\n keys.push(str);\n } else if (value === null) {\n if (str.startsWith(\"{\") || str.startsWith(\"[\") || str.startsWith(\"<\")) {\n const rawValue = str.replace(/[{[<>}\\].]/g, \"\");\n const variadic = str.includes(\"...\");\n value = {\n raw: str,\n variadic,\n name: rawValue,\n formatter: optionFormatters[rawValue] || optionFormatters.string,\n };\n }\n }\n },\n );\n\n const longestKey = keys.slice().sort((a, b) => b.length - a.length)[0];\n\n if (!_.isEmpty(longestKey)) {\n name = _.camelCase(\n (isNoFlag ? longestKey.replace(\"--no-\", \"\") : longestKey).replace(\n /(--?)/,\n \"\",\n ),\n );\n }\n\n return {\n isNoFlag,\n raw: flags,\n name,\n keys,\n value,\n };\n};\n\nconst processOption = (option) => {\n const processedFlags = processFlags(option.flags);\n\n if (!processedFlags.name) {\n console.warn(\"invalid option\", option);\n return null;\n }\n\n return {\n required: !!option.required,\n description: `${option.description || \"\"}`,\n default: option.default,\n flags: processedFlags,\n operation: option.operation,\n internal: option.internal,\n };\n};\n\nexport { processOption };\n","import _ from \"lodash\";\nimport { reservedOptions, root_command } from \"./constants.js\";\nimport { execute } from \"./execute.js\";\nimport { displayHelp } from \"./operations/display-help.js\";\nimport { displayVersion } from \"./operations/display-version.js\";\nimport { processOption } from \"./process-option.js\";\n\nconst cli = (input) => {\n const commands = {};\n\n const addCommand = (command, { addVersion = false, addHelp = true } = {}) => {\n commands[command.name] = {\n name: command.name,\n description: `${command.description || \"\"}`,\n options: _.compact(_.map(command.options, processOption)),\n };\n\n if (addVersion) {\n commands[command.name].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n }\n\n if (addHelp) {\n commands[command.name].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () =>\n displayHelp(commands, instance, commands[command.name]),\n }),\n );\n }\n\n return instance;\n };\n\n const instance = {\n commands,\n input,\n addCommand,\n execute: (params) => execute(params, commands, instance),\n };\n\n addCommand(\n {\n name: root_command,\n options: [],\n },\n {\n addVersion: false,\n addHelp: false,\n },\n );\n\n _.forEach(input.options, (option) => {\n const processed = processOption(option);\n\n if (!processed) return;\n\n if (reservedOptions.includes(processed.name)) {\n console.warn(\"reserved option\", processed.name);\n return;\n }\n\n commands[root_command].options.push(processed);\n });\n\n commands[root_command].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n\n commands[root_command].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () => displayHelp(commands, instance, commands[root_command]),\n }),\n );\n\n _.forEach(input.commands, addCommand);\n\n return instance;\n};\n\nexport { cli };\n","#!/usr/bin/env node\n\nimport { resolve } from \"node:path\";\nimport { cli } from \"./cli/index.js\";\nimport packageJson from \"./package.json\";\nimport { TemplatesGenConfig } from \"./src/commands/generate-templates/configuration.js\";\nimport { CodeGenConfig } from \"./src/configuration.js\";\nimport { HTTP_CLIENT } from \"./src/constants.js\";\nimport { generateApi, generateTemplates } from \"./src/index.js\";\n\nconst codeGenBaseConfig = new CodeGenConfig({});\nconst templateGenBaseConfig = new TemplatesGenConfig({});\n\nconst program = cli({\n name: packageJson.name,\n alias: \"sta\",\n version: packageJson.version,\n description:\n \"Generate api via swagger scheme.\\nSupports OA 3.0, 2.0, JSON, yaml.\",\n options: [\n {\n flags: \"-p, --path <string>\",\n description: \"path/url to swagger scheme\",\n required: true,\n },\n {\n flags: \"-o, --output <string>\",\n description: \"output path of typescript api file\",\n default: \"./\",\n },\n {\n flags: \"-n, --name <string>\",\n description: \"name of output typescript api file\",\n default: codeGenBaseConfig.fileName,\n },\n {\n flags: \"-t, --templates <string>\",\n description: \"path to folder containing templates\",\n },\n {\n flags: \"-d, --default-as-success\",\n description:\n 'use \"default\" response status code as success response too.\\n' +\n 'some swagger schemas use \"default\" response status code as success response type by default.',\n default: codeGenBaseConfig.defaultResponseAsSuccess,\n internal: { name: \"defaultResponseAsSuccess\" },\n },\n {\n flags: \"-r, --responses\",\n description:\n \"generate additional information about request responses\\n\" +\n \"also add typings for bad responses\",\n default: codeGenBaseConfig.generateResponses,\n internal: { name: \"generateResponses\" },\n },\n {\n flags: \"--union-enums\",\n description: 'generate all \"enum\" types as union types (T1 | T2 | TN)',\n default: codeGenBaseConfig.generateUnionEnums,\n internal: { name: \"generateUnionEnums\" },\n },\n {\n flags: \"--add-readonly\",\n description: \"generate readonly properties\",\n default: codeGenBaseConfig.addReadonly,\n },\n {\n flags: \"--route-types\",\n description: \"generate type definitions for API routes\",\n default: codeGenBaseConfig.generateRouteTypes,\n internal: { name: \"generateRouteTypes\" },\n },\n {\n flags: \"--no-client\",\n description: \"do not generate an API class\",\n default: codeGenBaseConfig.generateClient,\n },\n {\n flags: \"--enum-names-as-values\",\n description:\n \"use values in 'x-enumNames' as enum values (not only as keys)\",\n default: codeGenBaseConfig.enumNamesAsValues,\n },\n {\n flags: \"--extract-request-params\",\n description:\n \"extract request params to data contract (Also combine path params and query params into one object)\",\n default: codeGenBaseConfig.extractRequestParams,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-request-body\",\n description: \"extract request body type to data contract\",\n default: codeGenBaseConfig.extractRequestBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-body\",\n description: \"extract response body type to data contract\",\n default: codeGenBaseConfig.extractResponseBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-error\",\n description: \"extract response error type to data contract\",\n default: codeGenBaseConfig.extractResponseError,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-responses\",\n description: \"extract all responses described in /components/responses\",\n default: codeGenBaseConfig.extractResponses,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--modular\",\n description:\n \"generate separated files for http client, data contracts, and routes\",\n default: codeGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--js\",\n description: \"generate js api module with declaration file\",\n default: codeGenBaseConfig.toJS,\n internal: { formatter: Boolean, name: \"toJS\" },\n },\n {\n flags: \"--module-name-index <number>\",\n description:\n \"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)\",\n default: codeGenBaseConfig.moduleNameIndex,\n internal: { formatter: (moduleNameIndex) => +moduleNameIndex || 0 },\n },\n {\n flags: \"--module-name-first-tag\",\n description: \"splits routes based on the first tag\",\n default: codeGenBaseConfig.moduleNameFirstTag,\n },\n {\n flags: \"--disableStrictSSL\",\n description: \"disabled strict SSL\",\n default: codeGenBaseConfig.disableStrictSSL,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--disableProxy\",\n description: \"disabled proxy\",\n default: codeGenBaseConfig.disableProxy,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--axios\",\n description: \"generate axios http client\",\n default: codeGenBaseConfig.httpClientType === HTTP_CLIENT.AXIOS,\n },\n {\n flags: \"--unwrap-response-data\",\n description: \"unwrap the data item from the response\",\n default: codeGenBaseConfig.unwrapResponseData,\n },\n {\n flags: \"--disable-throw-on-error\",\n description: \"Do not throw an error when response.ok is not true\",\n default: codeGenBaseConfig.disableThrowOnError,\n },\n {\n flags: \"--single-http-client\",\n description: \"Ability to send HttpClient instance to Api constructor\",\n default: codeGenBaseConfig.singleHttpClient,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: codeGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--default-response <type>\",\n description: \"default type for empty response schema\",\n default: codeGenBaseConfig.defaultResponseType,\n internal: { name: \"defaultResponseType\" },\n },\n {\n flags: \"--type-prefix <string>\",\n description: \"data contract name prefix\",\n default: codeGenBaseConfig.typePrefix,\n },\n {\n flags: \"--type-suffix <string>\",\n description: \"data contract name suffix\",\n default: codeGenBaseConfig.typeSuffix,\n },\n {\n flags: \"--clean-output\",\n description:\n \"clean output folder before generate api. WARNING: May cause data loss\",\n default: codeGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--api-class-name <string>\",\n description: \"name of the api class\",\n default: codeGenBaseConfig.apiClassName,\n },\n {\n flags: \"--patch\",\n description: \"fix up small errors in the swagger source definition\",\n default: codeGenBaseConfig.patch,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--debug\",\n description: \"additional information about processes inside this tool\",\n default: codeGenBaseConfig.debug,\n },\n {\n flags: \"--another-array-type\",\n description: \"generate array types as Array<Type> (by default Type[])\",\n default: codeGenBaseConfig.anotherArrayType,\n },\n {\n flags: \"--sort-types\",\n description: \"sort fields and types\",\n default: codeGenBaseConfig.sortTypes,\n },\n {\n flags: \"--extract-enums\",\n description:\n \"extract all enums from inline interface\\\\type content to typescript enum construction\",\n default: codeGenBaseConfig.extractEnums,\n },\n {\n flags: \"--sort-routes\",\n description: \"sort routes in alphabetical order\",\n default: codeGenBaseConfig.sortRoutes,\n },\n {\n flags: \"--custom-config <string>\",\n description: \"custom config: primitiveTypeConstructs, hooks, ... \",\n default: \"\",\n },\n ],\n});\n\nprogram.addCommand({\n name: \"generate-templates\",\n description: `Generate \".ejs\" templates needed for generate api`,\n options: [\n {\n flags: \"-o, --output <string>\",\n description: \"output path of generated templates\",\n default: templateGenBaseConfig.output,\n },\n {\n flags: \"-m, --modular\",\n description:\n \"generate templates needed to separate files for http client, data contracts, and routes\",\n default: templateGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--http-client <string>\",\n description: `http client type (possible values: ${Object.values(\n HTTP_CLIENT,\n )\n .map((v) => `\"${v}\"`)\n .join(\", \")})`,\n default: templateGenBaseConfig.httpClientType,\n internal: { name: \"httpClientType\" },\n },\n {\n flags: \"-c, --clean-output\",\n description:\n \"clean output folder before generate template. WARNING: May cause data loss\",\n default: templateGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"-r, --rewrite\",\n description: \"rewrite content in existing templates\",\n default: templateGenBaseConfig.rewrite,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: templateGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n ],\n});\n\nconst main = async () => {\n const { command, options } = await program.execute({ args: process.argv });\n\n let customConfig = null;\n let customConfigPath;\n\n if (options.customConfig) {\n try {\n customConfigPath = resolve(process.cwd(), options.customConfig);\n customConfig = await import(customConfigPath);\n customConfig = customConfig.default || customConfig;\n } catch (e) {\n console.error(\"Error loading custom config\", e);\n }\n if (customConfig) {\n console.log(`✨ found custom config at: ${customConfigPath}`);\n }\n }\n\n try {\n switch (command) {\n case null: {\n await generateApi({\n ...options,\n name: options.name,\n url: options.path,\n generateRouteTypes: options.generateRouteTypes,\n generateClient: !!(options.axios || options.client),\n httpClientType: options.axios ? HTTP_CLIENT.AXIOS : HTTP_CLIENT.FETCH,\n input: resolve(process.cwd(), options.path),\n output: resolve(process.cwd(), options.output || \".\"),\n ...customConfig,\n });\n break;\n }\n case \"generate-templates\": {\n await generateTemplates(options);\n break;\n }\n default: {\n break;\n }\n }\n } catch (e) {\n console.error(e);\n process.exit(1);\n }\n process.exit(0);\n};\n\nmain();\n"]}
1
+ {"version":3,"sources":["../cli/constants.js","../cli/execute.js","../cli/parse-args.js","../cli/operations/display-help.js","../cli/operations/display-version.js","../cli/process-option.js","../cli/index.js","../index.js"],"names":["root_command","skip_command","reservedOptions","parseArgs","args","type","argsCopy","didYouMean","execute","params","commands","instance","resolve","reject","command","usageOptions","error","processArgs","option","operationOptions","processUserOptionData","userOption","data","acc","d","parsedOptionsObject","o","flagValue","internal","walkingOption","allFlagKeys","arg","i","tip","existedOption","generateOptionsOutput","options","flags","description","generateOptionsTextOutput","maxLength","spaces","leftStr","leftStrFiller","descriptionLines","line","displayAllHelp","maxOptionLength","commandLabels","maxCommandLength","H","name","optionsOutput","commandsOutput","commandLabel","optionsTextOutput","outputTest","displayHelp","displayVersion","optionFormatters","str","processFlags","keys","value","isNoFlag","strArr","rawValue","variadic","longestKey","a","b","processOption","processedFlags","cli","input","addCommand","addVersion","addHelp","W","processed","codeGenBaseConfig","CodeGenConfig","templateGenBaseConfig","TemplatesGenConfig","program","package_default","moduleNameIndex","HTTP_CLIENT","v","main","customConfig","customConfigPath","e","generateApi","generateTemplates"],"mappings":"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","file":"cli.js","sourcesContent":["const root_command = Symbol(\"root\");\nconst skip_command = Symbol(\"skip\");\n\nconst reservedOptions = [\"version\", \"help\"];\n\nexport { root_command, skip_command, reservedOptions };\n","import didYouMean from \"didyoumean\";\nimport * as lodash from \"lodash\";\nimport { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\n// eslint-disable-next-line no-unused-vars\nconst execute = (params, commands, instance) => {\n const args = parseArgs(params.args, params.from);\n\n return new Promise((resolve, reject) => {\n const { command, usageOptions, error } = processArgs(commands, args);\n\n if (error) {\n reject(new Error(error));\n return;\n }\n\n if (!usageOptions.length && command.name === root_command) {\n usageOptions.push(\n command.options.find((option) => option.flags.name === \"help\"),\n );\n }\n\n const operationOptions = usageOptions.filter((option) => option.operation);\n if (operationOptions.length) {\n operationOptions[0].operation();\n resolve({\n command: skip_command,\n options: {},\n });\n return;\n } else {\n let error = \"\";\n\n const processUserOptionData = (userOption, option) => {\n if (userOption) {\n const data = userOption.$data;\n if (!data.length && !option.flags.value) {\n return !option.flags.isNoFlag;\n }\n if (option.flags.value) {\n if (option.flags.value.variadic) {\n return data.reduce((acc, d) => {\n acc.push(...d.split(\",\").map(option.flags.value.formatter));\n return acc;\n }, []);\n } else {\n return option.flags.value.formatter(data[0] || option.default);\n }\n }\n }\n\n return option.default;\n };\n\n const parsedOptionsObject = command.options.reduce((acc, option) => {\n if (error) return acc;\n\n const userOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n\n if (!userOption && option.required) {\n error = `required option '${option.flags.raw}' not specified`;\n return acc;\n }\n\n const flagValue = processUserOptionData(userOption, option);\n if (!option.operation) {\n const internal = option.internal || {};\n acc[internal.name || option.flags.name] = internal.formatter\n ? internal.formatter(flagValue)\n : flagValue;\n }\n\n return acc;\n }, {});\n\n if (error) {\n reject(new Error(error));\n } else {\n resolve({\n command: command.name === root_command ? null : command.name,\n options: parsedOptionsObject,\n });\n }\n }\n });\n};\n\nconst processArgs = (commands, args) => {\n let command = null;\n let usageOptions = [];\n let walkingOption = null;\n let error = \"\";\n\n let allFlagKeys = [];\n\n args.forEach((arg, i) => {\n if (error) return;\n\n if (i === 0) {\n command = commands[arg];\n\n if (!command && !arg.startsWith(\"-\")) {\n const tip = didYouMean(arg, commands.keys());\n error = `unknown command ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n } else if (!command) {\n command = commands[root_command];\n }\n\n if (command) {\n allFlagKeys = command.options.reduce(\n (acc, option) => [...acc, ...option.flags.keys],\n [],\n );\n }\n }\n\n if (error) return;\n\n if (arg.startsWith(\"-\")) {\n const option = command.options.find((option) =>\n option.flags.keys.includes(arg),\n );\n\n if (!option) {\n const tip = didYouMean(arg, allFlagKeys);\n error = `unknown option ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n }\n\n if (option) {\n if (walkingOption && walkingOption.flags.name === option.flags.name) {\n return;\n }\n const existedOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n if (existedOption) {\n walkingOption = existedOption;\n } else {\n walkingOption = {\n ...option,\n $data: [],\n };\n usageOptions.push(walkingOption);\n }\n }\n\n return;\n }\n\n if (walkingOption) {\n walkingOption.$data.push(arg);\n }\n });\n command = command || commands[root_command];\n\n if (error) {\n return {\n command: null,\n usageOptions: [],\n error,\n };\n }\n\n return {\n command,\n usageOptions,\n error,\n };\n};\n\nexport { execute };\n","const parseArgs = (args, type) => {\n if (args == null || !Array.isArray(args)) {\n throw \"args should be array\";\n }\n const argsCopy = args.slice();\n\n switch (type) {\n case \"electron\": {\n if (process.defaultApp) {\n return argsCopy.slice(2);\n }\n\n return argsCopy.slice(1);\n }\n case \"user\": {\n return argsCopy;\n }\n default: {\n return argsCopy.slice(2);\n }\n }\n};\n\nexport { parseArgs };\n","import * as lodash from \"lodash\";\nimport { root_command } from \"../constants.js\";\n\nconst generateOptionsOutput = (options) =>\n options.reduce(\n (acc, option) => {\n const flags = `${option.flags.keys.join(\", \")}${\n option.flags.value?.raw ? ` ${option.flags.value?.raw}` : \"\"\n }`;\n const description = `${option.description || \"\"}${\n option.default === undefined ||\n (option.flags.isNoFlag && option.default === true)\n ? \"\"\n : ` (default: ${\n typeof option.default === \"string\"\n ? `\"${option.default}\"`\n : option.default\n })`\n }`;\n\n if (flags.length > acc.maxLength) {\n acc.maxLength = flags.length;\n }\n\n acc.options.push({\n flags,\n description,\n });\n return acc;\n },\n {\n options: [],\n maxLength: 0,\n },\n );\n\nconst generateOptionsTextOutput = (options, maxLength, spaces) =>\n options\n .map((option) => {\n const spacesText = Array(spaces).fill(\" \").join(\"\");\n const leftStr = `${spacesText}${option.flags.padEnd(maxLength, \" \")} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = option.description.split(\"\\n\");\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\")\n );\n })\n .join(\"\\n\");\n\nconst displayAllHelp = (commands, instance) => {\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n commands[root_command].options,\n );\n\n const { commands: commandLabels, maxLength: maxCommandLength } = lodash\n .filter(commands, (command) => command.name !== root_command)\n .reduce(\n (acc, command) => {\n const options = generateOptionsOutput(command.options);\n const name = `${command.name}${options.length ? \" [options]\" : \"\"}`;\n const description = command.description;\n\n const maxLength = Math.max(name.length, options.maxLength);\n if (maxLength > acc.maxLength) {\n acc.maxLength = maxLength;\n }\n\n acc.commands.push({\n description,\n name,\n options,\n });\n return acc;\n },\n {\n commands: [],\n maxLength: maxOptionLength,\n },\n );\n\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const commandsOutput = commandLabels\n .map((commandLabel) => {\n const leftStr = ` ${commandLabel.name.padEnd(\n maxCommandLength,\n \" \",\n )} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = commandLabel.description.split(\"\\n\");\n const optionsTextOutput = generateOptionsTextOutput(\n commandLabel.options.options,\n maxCommandLength,\n 4,\n );\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\") +\n (optionsTextOutput.length ? `\\n${optionsTextOutput}` : \"\")\n );\n })\n .join(\"\\n\");\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n commandsOutput &&\n `Commands:\n${commandsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${[instance.input.name, instance.input.alias]\n .filter(Boolean)\n .join(\"|\")}${optionsOutput ? \" [options]\" : \"\"}${\n commandsOutput ? \" [command]\" : \"\"\n }\n${\n instance.input.description &&\n `\n${instance.input.description}`\n}\n\n${outputTest}`);\n};\n\nconst displayHelp = (commands, instance, command) => {\n if (command.name === root_command) return displayAllHelp(commands, instance);\n\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n command.options,\n );\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${instance.input.name} ${command.name}${\n optionsOutput ? \" [options]\" : \"\"\n }\n${\n command.description &&\n `\n${command.description}`\n}\n\n${outputTest}`);\n};\n\nexport { displayHelp };\n","const displayVersion = (instance) => {\n console.log(instance.input.version);\n};\n\nexport { displayVersion };\n","import * as lodash from \"lodash\";\n\nconst optionFormatters = {\n number: (str) => +str,\n numeric: (str) => +str,\n str: (str) => `${str}`,\n string: (str) => `${str}`,\n bool: (str) => !!str,\n boolean: (str) => !!str,\n};\n\nconst processFlags = (flags) => {\n let name = null;\n const keys = [];\n let value = null;\n const isNoFlag = flags.includes(\"--no-\");\n\n const strArr = lodash.compact(\n flags.split(\" \").map((str) => str.replace(/,/g, \"\")),\n );\n\n for (const str of strArr) {\n if (str.startsWith(\"-\")) {\n keys.push(str);\n } else if (value === null) {\n if (str.startsWith(\"{\") || str.startsWith(\"[\") || str.startsWith(\"<\")) {\n const rawValue = str.replace(/[{[<>}\\].]/g, \"\");\n const variadic = str.includes(\"...\");\n value = {\n raw: str,\n variadic,\n name: rawValue,\n formatter: optionFormatters[rawValue] || optionFormatters.string,\n };\n }\n }\n }\n\n const longestKey = keys.slice().sort((a, b) => b.length - a.length)[0];\n\n if (longestKey !== \"\") {\n name = lodash.camelCase(\n (isNoFlag ? longestKey.replace(\"--no-\", \"\") : longestKey).replace(\n /(--?)/,\n \"\",\n ),\n );\n }\n\n return {\n isNoFlag,\n raw: flags,\n name,\n keys,\n value,\n };\n};\n\nconst processOption = (option) => {\n const processedFlags = processFlags(option.flags);\n\n if (!processedFlags.name) {\n console.warn(\"invalid option\", option);\n return null;\n }\n\n return {\n required: !!option.required,\n description: `${option.description || \"\"}`,\n default: option.default,\n flags: processedFlags,\n operation: option.operation,\n internal: option.internal,\n };\n};\n\nexport { processOption };\n","import * as lodash from \"lodash\";\nimport { reservedOptions, root_command } from \"./constants.js\";\nimport { execute } from \"./execute.js\";\nimport { displayHelp } from \"./operations/display-help.js\";\nimport { displayVersion } from \"./operations/display-version.js\";\nimport { processOption } from \"./process-option.js\";\n\nconst cli = (input) => {\n const commands = {};\n\n const addCommand = (command, { addVersion = false, addHelp = true } = {}) => {\n commands[command.name] = {\n name: command.name,\n description: `${command.description || \"\"}`,\n options: lodash.compact(command.options.map(processOption)),\n };\n\n if (addVersion) {\n commands[command.name].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n }\n\n if (addHelp) {\n commands[command.name].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () =>\n displayHelp(commands, instance, commands[command.name]),\n }),\n );\n }\n\n return instance;\n };\n\n const instance = {\n commands,\n input,\n addCommand,\n execute: (params) => execute(params, commands, instance),\n };\n\n addCommand(\n {\n name: root_command,\n options: [],\n },\n {\n addVersion: false,\n addHelp: false,\n },\n );\n\n for (const option of input.options) {\n const processed = processOption(option);\n\n if (!processed) return;\n\n if (reservedOptions.includes(processed.name)) {\n console.warn(\"reserved option\", processed.name);\n return;\n }\n\n commands[root_command].options.push(processed);\n }\n\n commands[root_command].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n\n commands[root_command].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () => displayHelp(commands, instance, commands[root_command]),\n }),\n );\n\n for (const command of input.commands) {\n addCommand(command);\n }\n\n return instance;\n};\n\nexport { cli };\n","#!/usr/bin/env node\n\nimport { resolve } from \"node:path\";\nimport { cli } from \"./cli/index.js\";\nimport packageJson from \"./package.json\";\nimport { TemplatesGenConfig } from \"./src/commands/generate-templates/configuration.js\";\nimport { CodeGenConfig } from \"./src/configuration.js\";\nimport { HTTP_CLIENT } from \"./src/constants.js\";\nimport { generateApi, generateTemplates } from \"./src/index.js\";\n\nconst codeGenBaseConfig = new CodeGenConfig({});\nconst templateGenBaseConfig = new TemplatesGenConfig({});\n\nconst program = cli({\n name: packageJson.name,\n alias: \"sta\",\n version: packageJson.version,\n description:\n \"Generate api via swagger scheme.\\nSupports OA 3.0, 2.0, JSON, yaml.\",\n options: [\n {\n flags: \"-p, --path <string>\",\n description: \"path/url to swagger scheme\",\n required: true,\n },\n {\n flags: \"-o, --output <string>\",\n description: \"output path of typescript api file\",\n default: \"./\",\n },\n {\n flags: \"-n, --name <string>\",\n description: \"name of output typescript api file\",\n default: codeGenBaseConfig.fileName,\n },\n {\n flags: \"-t, --templates <string>\",\n description: \"path to folder containing templates\",\n },\n {\n flags: \"-d, --default-as-success\",\n description:\n 'use \"default\" response status code as success response too.\\n' +\n 'some swagger schemas use \"default\" response status code as success response type by default.',\n default: codeGenBaseConfig.defaultResponseAsSuccess,\n internal: { name: \"defaultResponseAsSuccess\" },\n },\n {\n flags: \"-r, --responses\",\n description:\n \"generate additional information about request responses\\n\" +\n \"also add typings for bad responses\",\n default: codeGenBaseConfig.generateResponses,\n internal: { name: \"generateResponses\" },\n },\n {\n flags: \"--union-enums\",\n description: 'generate all \"enum\" types as union types (T1 | T2 | TN)',\n default: codeGenBaseConfig.generateUnionEnums,\n internal: { name: \"generateUnionEnums\" },\n },\n {\n flags: \"--add-readonly\",\n description: \"generate readonly properties\",\n default: codeGenBaseConfig.addReadonly,\n },\n {\n flags: \"--route-types\",\n description: \"generate type definitions for API routes\",\n default: codeGenBaseConfig.generateRouteTypes,\n internal: { name: \"generateRouteTypes\" },\n },\n {\n flags: \"--no-client\",\n description: \"do not generate an API class\",\n default: codeGenBaseConfig.generateClient,\n },\n {\n flags: \"--enum-names-as-values\",\n description:\n \"use values in 'x-enumNames' as enum values (not only as keys)\",\n default: codeGenBaseConfig.enumNamesAsValues,\n },\n {\n flags: \"--extract-request-params\",\n description:\n \"extract request params to data contract (Also combine path params and query params into one object)\",\n default: codeGenBaseConfig.extractRequestParams,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-request-body\",\n description: \"extract request body type to data contract\",\n default: codeGenBaseConfig.extractRequestBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-body\",\n description: \"extract response body type to data contract\",\n default: codeGenBaseConfig.extractResponseBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-error\",\n description: \"extract response error type to data contract\",\n default: codeGenBaseConfig.extractResponseError,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-responses\",\n description: \"extract all responses described in /components/responses\",\n default: codeGenBaseConfig.extractResponses,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--modular\",\n description:\n \"generate separated files for http client, data contracts, and routes\",\n default: codeGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--js\",\n description: \"generate js api module with declaration file\",\n default: codeGenBaseConfig.toJS,\n internal: { formatter: Boolean, name: \"toJS\" },\n },\n {\n flags: \"--module-name-index <number>\",\n description:\n \"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)\",\n default: codeGenBaseConfig.moduleNameIndex,\n internal: { formatter: (moduleNameIndex) => +moduleNameIndex || 0 },\n },\n {\n flags: \"--module-name-first-tag\",\n description: \"splits routes based on the first tag\",\n default: codeGenBaseConfig.moduleNameFirstTag,\n },\n {\n flags: \"--disableStrictSSL\",\n description: \"disabled strict SSL\",\n default: codeGenBaseConfig.disableStrictSSL,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--disableProxy\",\n description: \"disabled proxy\",\n default: codeGenBaseConfig.disableProxy,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--axios\",\n description: \"generate axios http client\",\n default: codeGenBaseConfig.httpClientType === HTTP_CLIENT.AXIOS,\n },\n {\n flags: \"--unwrap-response-data\",\n description: \"unwrap the data item from the response\",\n default: codeGenBaseConfig.unwrapResponseData,\n },\n {\n flags: \"--disable-throw-on-error\",\n description: \"Do not throw an error when response.ok is not true\",\n default: codeGenBaseConfig.disableThrowOnError,\n },\n {\n flags: \"--single-http-client\",\n description: \"Ability to send HttpClient instance to Api constructor\",\n default: codeGenBaseConfig.singleHttpClient,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: codeGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--default-response <type>\",\n description: \"default type for empty response schema\",\n default: codeGenBaseConfig.defaultResponseType,\n internal: { name: \"defaultResponseType\" },\n },\n {\n flags: \"--type-prefix <string>\",\n description: \"data contract name prefix\",\n default: codeGenBaseConfig.typePrefix,\n },\n {\n flags: \"--type-suffix <string>\",\n description: \"data contract name suffix\",\n default: codeGenBaseConfig.typeSuffix,\n },\n {\n flags: \"--clean-output\",\n description:\n \"clean output folder before generate api. WARNING: May cause data loss\",\n default: codeGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--api-class-name <string>\",\n description: \"name of the api class\",\n default: codeGenBaseConfig.apiClassName,\n },\n {\n flags: \"--patch\",\n description: \"fix up small errors in the swagger source definition\",\n default: codeGenBaseConfig.patch,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--debug\",\n description: \"additional information about processes inside this tool\",\n default: codeGenBaseConfig.debug,\n },\n {\n flags: \"--another-array-type\",\n description: \"generate array types as Array<Type> (by default Type[])\",\n default: codeGenBaseConfig.anotherArrayType,\n },\n {\n flags: \"--sort-types\",\n description: \"sort fields and types\",\n default: codeGenBaseConfig.sortTypes,\n },\n {\n flags: \"--extract-enums\",\n description:\n \"extract all enums from inline interface\\\\type content to typescript enum construction\",\n default: codeGenBaseConfig.extractEnums,\n },\n {\n flags: \"--sort-routes\",\n description: \"sort routes in alphabetical order\",\n default: codeGenBaseConfig.sortRoutes,\n },\n {\n flags: \"--custom-config <string>\",\n description: \"custom config: primitiveTypeConstructs, hooks, ... \",\n default: \"\",\n },\n ],\n});\n\nprogram.addCommand({\n name: \"generate-templates\",\n description: `Generate \".ejs\" templates needed for generate api`,\n options: [\n {\n flags: \"-o, --output <string>\",\n description: \"output path of generated templates\",\n default: templateGenBaseConfig.output,\n },\n {\n flags: \"-m, --modular\",\n description:\n \"generate templates needed to separate files for http client, data contracts, and routes\",\n default: templateGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--http-client <string>\",\n description: `http client type (possible values: ${Object.values(\n HTTP_CLIENT,\n )\n .map((v) => `\"${v}\"`)\n .join(\", \")})`,\n default: templateGenBaseConfig.httpClientType,\n internal: { name: \"httpClientType\" },\n },\n {\n flags: \"-c, --clean-output\",\n description:\n \"clean output folder before generate template. WARNING: May cause data loss\",\n default: templateGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"-r, --rewrite\",\n description: \"rewrite content in existing templates\",\n default: templateGenBaseConfig.rewrite,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: templateGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n ],\n});\n\nconst main = async () => {\n const { command, options } = await program.execute({ args: process.argv });\n\n let customConfig = null;\n let customConfigPath;\n\n if (options.customConfig) {\n try {\n customConfigPath = resolve(process.cwd(), options.customConfig);\n customConfig = await import(customConfigPath);\n customConfig = customConfig.default || customConfig;\n } catch (e) {\n console.error(\"Error loading custom config\", e);\n }\n if (customConfig) {\n console.log(`✨ found custom config at: ${customConfigPath}`);\n }\n }\n\n try {\n switch (command) {\n case null: {\n await generateApi({\n ...options,\n name: options.name,\n url: options.path,\n generateRouteTypes: options.generateRouteTypes,\n generateClient: !!(options.axios || options.client),\n httpClientType: options.axios ? HTTP_CLIENT.AXIOS : HTTP_CLIENT.FETCH,\n input: resolve(process.cwd(), options.path),\n output: resolve(process.cwd(), options.output || \".\"),\n ...customConfig,\n });\n break;\n }\n case \"generate-templates\": {\n await generateTemplates(options);\n break;\n }\n default: {\n break;\n }\n }\n } catch (e) {\n console.error(e);\n process.exit(1);\n }\n process.exit(0);\n};\n\nmain();\n"]}
package/dist/lib.cjs CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var chunkZJJTBDKO_cjs = require('./chunk-ZJJTBDKO.cjs');
4
+ var chunkZ5TA2XXH_cjs = require('./chunk-Z5TA2XXH.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "constants", {
9
9
  enumerable: true,
10
- get: function () { return chunkZJJTBDKO_cjs.c; }
10
+ get: function () { return chunkZ5TA2XXH_cjs.c; }
11
11
  });
12
12
  Object.defineProperty(exports, "generateApi", {
13
13
  enumerable: true,
14
- get: function () { return chunkZJJTBDKO_cjs.g; }
14
+ get: function () { return chunkZ5TA2XXH_cjs.g; }
15
15
  });
16
16
  Object.defineProperty(exports, "generateTemplates", {
17
17
  enumerable: true,
18
- get: function () { return chunkZJJTBDKO_cjs.f; }
18
+ get: function () { return chunkZ5TA2XXH_cjs.f; }
19
19
  });
20
20
  //# sourceMappingURL=lib.cjs.map
21
21
  //# sourceMappingURL=lib.cjs.map
package/dist/lib.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- export { c as constants, g as generateApi, f as generateTemplates } from './chunk-J5EMB2ZI.js';
2
+ export { c as constants, g as generateApi, f as generateTemplates } from './chunk-4S2WGBLV.js';
3
3
  //# sourceMappingURL=lib.js.map
4
4
  //# sourceMappingURL=lib.js.map
package/dist/types.d.cts CHANGED
@@ -27,7 +27,7 @@ declare class NameResolver {
27
27
  * @param {string[]} names
28
28
  */
29
29
  reserve(names) {
30
- const fixedNames = _.uniq(_.compact(names));
30
+ const fixedNames = lodash.uniq(lodash.compact(names));
31
31
  for (const name of fixedNames) {
32
32
  if (this.reservedNames.indexOf(name) === -1) {
33
33
  this.reservedNames.push(name);
@@ -42,7 +42,7 @@ declare class NameResolver {
42
42
  }
43
43
 
44
44
  isReserved(name) {
45
- return _.some(this.reservedNames, (reservedName) => reservedName === name);
45
+ return this.reservedNames.some((reservedName) => reservedName === name);
46
46
  }
47
47
 
48
48
  /**
@@ -72,15 +72,17 @@ declare class NameResolver {
72
72
 
73
73
  shouldReserve && this.reserve([usageName]);
74
74
  return usageName;
75
- } else if (Array.isArray(variants)) {
75
+ }
76
+
77
+ if (Array.isArray(variants)) {
76
78
  let usageName = null;
77
- const uniqVariants = _.uniq(_.compact(variants));
79
+ const uniqVariants = lodash.uniq(lodash.compact(variants));
78
80
 
79
- _.forEach(uniqVariants, (variant) => {
81
+ for (const variant of uniqVariants) {
80
82
  if (!usageName && (!shouldReserve || !this.isReserved(variant))) {
81
83
  usageName = variant;
82
84
  }
83
- });
85
+ }
84
86
 
85
87
  if (usageName) {
86
88
  shouldReserve && this.reserve([usageName]);
@@ -398,7 +400,7 @@ declare class SchemaParser {
398
400
 
399
401
  this.schemaPath.push(this.typeName);
400
402
 
401
- _.merge(
403
+ lodash.merge(
402
404
  this.schema,
403
405
  this.config.hooks.onPreParseSchema(
404
406
  this.schema,
@@ -450,14 +452,14 @@ declare class SchemaParser {
450
452
  extractSchemaFromResponseStruct = (responseStruct) => {
451
453
  const { content, ...extras } = responseStruct;
452
454
 
453
- const firstResponse = _.first(_.values(content));
454
- const firstSchema = _.get(firstResponse, "schema");
455
+ const firstResponse = lodash.first(lodash.values(content));
456
+ const firstSchema = lodash.get(firstResponse, "schema");
455
457
 
456
458
  if (!firstSchema) return;
457
459
 
458
460
  return {
459
461
  ...extras,
460
- ..._.omit(firstResponse, "schema"),
462
+ ...lodash.omit(firstResponse, "schema"),
461
463
  ...firstSchema,
462
464
  };
463
465
  };
@@ -569,8 +571,8 @@ declare class CodeGenProcess {
569
571
 
570
572
  this.schemaComponentsMap.clear();
571
573
 
572
- _.each(swagger.usageSchema.components, (component, componentName) =>
573
- _.each(component, (rawTypeData, typeName) => {
574
+ lodash.each(swagger.usageSchema.components, (component, componentName) =>
575
+ lodash.each(component, (rawTypeData, typeName) => {
574
576
  this.schemaComponentsMap.createComponent(
575
577
  this.schemaComponentsMap.createRef([
576
578
  "components",
@@ -586,7 +588,7 @@ declare class CodeGenProcess {
586
588
  * @type {SchemaComponent[]}
587
589
  */
588
590
  const componentsToParse = this.schemaComponentsMap.filter(
589
- _.compact(["schemas", this.config.extractResponses && "responses"]),
591
+ lodash.compact(["schemas", this.config.extractResponses && "responses"]),
590
592
  );
591
593
 
592
594
  const parsedSchemas = componentsToParse.map((schemaComponent) => {
@@ -643,7 +645,7 @@ declare class CodeGenProcess {
643
645
  const isDirPath = this.fileSystem.pathIsDir(this.config.output);
644
646
 
645
647
  if (isDirPath) {
646
- files.forEach((file) => {
648
+ for (const file of files) {
647
649
  this.fileSystem.createFile({
648
650
  path: this.config.output,
649
651
  fileName: `${file.fileName}${file.fileExtension}`,
@@ -656,7 +658,7 @@ declare class CodeGenProcess {
656
658
  `"${file.fileName}${file.fileExtension}"`,
657
659
  `created in ${this.config.output}`,
658
660
  );
659
- });
661
+ }
660
662
  }
661
663
 
662
664
  return {
@@ -694,7 +696,7 @@ declare class CodeGenProcess {
694
696
  return ` * ${line}${eol ? "\n" : ""}`;
695
697
  },
696
698
  NameResolver: NameResolver,
697
- _,
699
+ _: lodash,
698
700
  require: this.templatesWorker.requireFnFromTemplate,
699
701
  },
700
702
  config: this.config,
@@ -705,7 +707,7 @@ declare class CodeGenProcess {
705
707
  const components = this.schemaComponentsMap.getComponents();
706
708
  let modelTypes = [];
707
709
 
708
- const modelTypeComponents = _.compact([
710
+ const modelTypeComponents = lodash.compact([
709
711
  "schemas",
710
712
  this.config.extractResponses && "responses",
711
713
  ]);
@@ -755,7 +757,12 @@ declare class CodeGenProcess {
755
757
  rawTypeData,
756
758
  )
757
759
  : rawTypeData;
758
- let { typeIdentifier, name: originalName, content, description } = typeData;
760
+ const {
761
+ typeIdentifier,
762
+ name: originalName,
763
+ content,
764
+ description,
765
+ } = typeData;
759
766
  const name = this.typeNameFormatter.format(originalName);
760
767
 
761
768
  if (name === null) return null;
@@ -788,7 +795,7 @@ declare class CodeGenProcess {
788
795
  ? await this.createMultipleFileInfos(templatesToRender, configuration)
789
796
  : await this.createSingleFileInfo(templatesToRender, configuration);
790
797
 
791
- if (!_.isEmpty(configuration.extraTemplates)) {
798
+ if (!lodash.isEmpty(configuration.extraTemplates)) {
792
799
  for (const extraTemplate of configuration.extraTemplates) {
793
800
  const content = this.templatesWorker.renderTemplate(
794
801
  this.fileSystem.getFileContent(extraTemplate.path),
@@ -933,27 +940,29 @@ declare class CodeGenProcess {
933
940
  return await this.createOutputFileInfo(
934
941
  configuration,
935
942
  configuration.fileName,
936
- _.compact([
937
- this.templatesWorker.renderTemplate(
938
- templatesToRender.dataContracts,
939
- configuration,
940
- ),
941
- generateRouteTypes &&
942
- this.templatesWorker.renderTemplate(
943
- templatesToRender.routeTypes,
944
- configuration,
945
- ),
946
- generateClient &&
943
+ lodash
944
+ .compact([
947
945
  this.templatesWorker.renderTemplate(
948
- templatesToRender.httpClient,
946
+ templatesToRender.dataContracts,
949
947
  configuration,
950
948
  ),
951
- generateClient &&
952
- this.templatesWorker.renderTemplate(
953
- templatesToRender.api,
954
- configuration,
955
- ),
956
- ]).join("\n"),
949
+ generateRouteTypes &&
950
+ this.templatesWorker.renderTemplate(
951
+ templatesToRender.routeTypes,
952
+ configuration,
953
+ ),
954
+ generateClient &&
955
+ this.templatesWorker.renderTemplate(
956
+ templatesToRender.httpClient,
957
+ configuration,
958
+ ),
959
+ generateClient &&
960
+ this.templatesWorker.renderTemplate(
961
+ templatesToRender.api,
962
+ configuration,
963
+ ),
964
+ ])
965
+ .join("\n"),
957
966
  );
958
967
  };
959
968
 
@@ -966,7 +975,7 @@ declare class CodeGenProcess {
966
975
  */
967
976
  createOutputFileInfo = async (configuration, fileNameFull, content) => {
968
977
  const fileName = this.fileSystem.cropExtension(fileNameFull);
969
- const fileExtension = ts.Extension.Ts;
978
+ const fileExtension = typescript.Extension.Ts;
970
979
 
971
980
  if (configuration.translateToJavaScript) {
972
981
  this.logger.debug("using js translator for", fileName);
@@ -1008,14 +1017,14 @@ declare class CodeGenProcess {
1008
1017
  servers: servers || [],
1009
1018
  basePath,
1010
1019
  host,
1011
- externalDocs: _.merge(
1020
+ externalDocs: lodash.merge(
1012
1021
  {
1013
1022
  url: "",
1014
1023
  description: "",
1015
1024
  },
1016
1025
  externalDocs,
1017
1026
  ),
1018
- tags: _.compact(tags),
1027
+ tags: lodash.compact(tags),
1019
1028
  baseUrl: serverUrl,
1020
1029
  title,
1021
1030
  version,
@@ -1024,11 +1033,11 @@ declare class CodeGenProcess {
1024
1033
 
1025
1034
  injectClassInstance = (key, value) => {
1026
1035
  this[key] = value;
1027
- PATCHABLE_INSTANCES.forEach((instanceKey) => {
1036
+ for (const instanceKey of PATCHABLE_INSTANCES) {
1028
1037
  if (instanceKey !== key && key in this[instanceKey]) {
1029
1038
  this[instanceKey][key] = value;
1030
1039
  }
1031
- });
1040
+ }
1032
1041
  };
1033
1042
  }
1034
1043
 
@@ -1431,7 +1440,7 @@ interface Hooks {
1431
1440
  ) => string | undefined;
1432
1441
  }
1433
1442
 
1434
- type RouteNameRouteInfo = Record<unknown, unknown>;
1443
+ type RouteNameRouteInfo = Record<string, unknown>;
1435
1444
 
1436
1445
  type RouteNameInfo = {
1437
1446
  usage: string;
@@ -1786,13 +1795,13 @@ interface GenerateApiOutput {
1786
1795
  path: string;
1787
1796
  fileName: string;
1788
1797
  content: string;
1789
- withPrefix?: boolean;
1798
+ withPrefix: boolean;
1790
1799
  }) => void;
1791
1800
  renderTemplate: (
1792
1801
  templateContent: string,
1793
1802
  data: Record<string, unknown>,
1794
1803
  etaOptions?: Partial<eta.EtaConfig>,
1795
- ) => string;
1804
+ ) => Promise<string> | string;
1796
1805
  getTemplate: (params: {
1797
1806
  fileName?: string;
1798
1807
  name?: string;