swagger-typescript-api 13.0.21 → 13.0.22

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.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var chunk725EVWJG_cjs = require('./chunk-725EVWJG.cjs');
4
+ var chunkKMLLDZJ4_cjs = require('./chunk-KMLLDZJ4.cjs');
5
5
  var path = require('path');
6
6
  var P = require('lodash');
7
7
  var T = require('didyoumean');
@@ -35,9 +35,9 @@ ${i}`].filter(Boolean).join(`
35
35
  ${n.description&&`
36
36
  ${n.description}`}
37
37
 
38
- ${u}`);};var S=e=>{console.log(e.input.version);};var H={number:e=>+e,numeric:e=>+e,str:e=>`${e}`,string:e=>`${e}`,bool:e=>!!e,boolean:e=>!!e},U=e=>{let t=null,n=[],a=null,s=e.includes("--no-"),i=P__default.default.compact(e.split(" ").map(r=>r.replace(/,/g,"")));for(let r of i)if(r.startsWith("-"))n.push(r);else if(a===null&&(r.startsWith("{")||r.startsWith("[")||r.startsWith("<"))){let d=r.replace(/[{[<>}\].]/g,""),l=r.includes("...");a={raw:r,variadic:l,name:d,formatter:H[d]||H.string};}let u=n.slice().sort((r,d)=>d.length-r.length)[0];return u!==""&&(t=P__default.default.camelCase((s?u.replace("--no-",""):u).replace(/(--?)/,""))),{isNoFlag:s,raw:e,name:t,keys:n,value:a}},x=e=>{let t=U(e.flags);return t.name?{required:!!e.required,description:`${e.description||""}`,default:e.default,flags:t,operation:e.operation,internal:e.internal}:(console.warn("invalid option",e),null)};var I=e=>{let t={},n=(s,{addVersion:i=!1,addHelp:u=!0}={})=>(t[s.name]={name:s.name,description:`${s.description||""}`,options:P__default.default.compact(s.options.map(x))},i&&t[s.name].options.unshift(x({flags:"-v, --version",description:"output the current version",operation:()=>S(a)})),u&&t[s.name].options.push(x({flags:"-h, --help",description:"display help for command",operation:()=>B(t,a,t[s.name])})),a),a={commands:t,input:e,addCommand:n,execute:s=>G(s,t)};n({name:c,options:[]},{addVersion:!1,addHelp:!1});for(let s of e.options){let i=x(s);if(!i)return;if(q.includes(i.name)){console.warn("reserved option",i.name);return}t[c].options.push(i);}t[c].options.unshift(x({flags:"-v, --version",description:"output the current version",operation:()=>S(a)})),t[c].options.push(x({flags:"-h, --help",description:"display help for command",operation:()=>B(t,a,t[c])}));for(let s of Object.entries(e.commands??{}))n(s);return a};var o=new chunk725EVWJG_cjs.d({}),b=new chunk725EVWJG_cjs.e({}),W=I({name:chunk725EVWJG_cjs.a.name,alias:"sta",version:chunk725EVWJG_cjs.a.version,description:`Generate api via swagger scheme.
38
+ ${u}`);};var S=e=>{console.log(e.input.version);};var H={number:e=>+e,numeric:e=>+e,str:e=>`${e}`,string:e=>`${e}`,bool:e=>!!e,boolean:e=>!!e},U=e=>{let t=null,n=[],a=null,s=e.includes("--no-"),i=P__default.default.compact(e.split(" ").map(r=>r.replace(/,/g,"")));for(let r of i)if(r.startsWith("-"))n.push(r);else if(a===null&&(r.startsWith("{")||r.startsWith("[")||r.startsWith("<"))){let d=r.replace(/[{[<>}\].]/g,""),l=r.includes("...");a={raw:r,variadic:l,name:d,formatter:H[d]||H.string};}let u=n.slice().sort((r,d)=>d.length-r.length)[0];return u!==""&&(t=P__default.default.camelCase((s?u.replace("--no-",""):u).replace(/(--?)/,""))),{isNoFlag:s,raw:e,name:t,keys:n,value:a}},x=e=>{let t=U(e.flags);return t.name?{required:!!e.required,description:`${e.description||""}`,default:e.default,flags:t,operation:e.operation,internal:e.internal}:(console.warn("invalid option",e),null)};var I=e=>{let t={},n=(s,{addVersion:i=!1,addHelp:u=!0}={})=>(t[s.name]={name:s.name,description:`${s.description||""}`,options:P__default.default.compact(s.options.map(x))},i&&t[s.name].options.unshift(x({flags:"-v, --version",description:"output the current version",operation:()=>S(a)})),u&&t[s.name].options.push(x({flags:"-h, --help",description:"display help for command",operation:()=>B(t,a,t[s.name])})),a),a={commands:t,input:e,addCommand:n,execute:s=>G(s,t)};n({name:c,options:[]},{addVersion:!1,addHelp:!1});for(let s of e.options){let i=x(s);if(!i)return;if(q.includes(i.name)){console.warn("reserved option",i.name);return}t[c].options.push(i);}t[c].options.unshift(x({flags:"-v, --version",description:"output the current version",operation:()=>S(a)})),t[c].options.push(x({flags:"-h, --help",description:"display help for command",operation:()=>B(t,a,t[c])}));for(let s of Object.entries(e.commands??{}))n(s);return a};var o=new chunkKMLLDZJ4_cjs.d({}),b=new chunkKMLLDZJ4_cjs.e({}),W=I({name:chunkKMLLDZJ4_cjs.a.name,alias:"sta",version:chunkKMLLDZJ4_cjs.a.version,description:`Generate api via swagger scheme.
39
39
  Supports OA 3.0, 2.0, JSON, yaml.`,options:[{flags:"-p, --path <string>",description:"path/url to swagger scheme",required:!0},{flags:"-o, --output <string>",description:"output path of typescript api file",default:"./"},{flags:"-n, --name <string>",description:"name of output typescript api file",default:o.fileName},{flags:"-t, --templates <string>",description:"path to folder containing templates"},{flags:"-d, --default-as-success",description:`use "default" response status code as success response too.
40
40
  some swagger schemas use "default" response status code as success response type by default.`,default:o.defaultResponseAsSuccess,internal:{name:"defaultResponseAsSuccess"}},{flags:"-r, --responses",description:`generate additional information about request responses
41
- also add typings for bad responses`,default:o.generateResponses,internal:{name:"generateResponses"}},{flags:"--union-enums",description:'generate all "enum" types as union types (T1 | T2 | TN)',default:o.generateUnionEnums,internal:{name:"generateUnionEnums"}},{flags:"--add-readonly",description:"generate readonly properties",default:o.addReadonly},{flags:"--route-types",description:"generate type definitions for API routes",default:o.generateRouteTypes,internal:{name:"generateRouteTypes"}},{flags:"--no-client",description:"do not generate an API class",default:o.generateClient},{flags:"--enum-names-as-values",description:"use values in 'x-enumNames' as enum values (not only as keys)",default:o.enumNamesAsValues},{flags:"--extract-request-params",description:"extract request params to data contract (Also combine path params and query params into one object)",default:o.extractRequestParams,internal:{formatter:Boolean}},{flags:"--extract-request-body",description:"extract request body type to data contract",default:o.extractRequestBody,internal:{formatter:Boolean}},{flags:"--extract-response-body",description:"extract response body type to data contract",default:o.extractResponseBody,internal:{formatter:Boolean}},{flags:"--extract-response-error",description:"extract response error type to data contract",default:o.extractResponseError,internal:{formatter:Boolean}},{flags:"--extract-responses",description:"extract all responses described in /components/responses",default:o.extractResponses,internal:{formatter:Boolean}},{flags:"--modular",description:"generate separated files for http client, data contracts, and routes",default:o.modular,internal:{formatter:Boolean}},{flags:"--js",description:"generate js api module with declaration file",default:o.toJS,internal:{formatter:Boolean,name:"toJS"}},{flags:"--module-name-index <number>",description:"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)",default:o.moduleNameIndex,internal:{formatter:e=>+e||0}},{flags:"--module-name-first-tag",description:"splits routes based on the first tag",default:o.moduleNameFirstTag},{flags:"--disableStrictSSL",description:"disabled strict SSL",default:o.disableStrictSSL,internal:{formatter:Boolean}},{flags:"--disableProxy",description:"disabled proxy",default:o.disableProxy,internal:{formatter:Boolean}},{flags:"--axios",description:"generate axios http client",default:o.httpClientType===chunk725EVWJG_cjs.b.AXIOS},{flags:"--unwrap-response-data",description:"unwrap the data item from the response",default:o.unwrapResponseData},{flags:"--disable-throw-on-error",description:"Do not throw an error when response.ok is not true",default:o.disableThrowOnError},{flags:"--single-http-client",description:"Ability to send HttpClient instance to Api constructor",default:o.singleHttpClient,internal:{formatter:Boolean}},{flags:"--silent",description:"Output only errors to console",default:o.silent,internal:{formatter:Boolean}},{flags:"--default-response <type>",description:"default type for empty response schema",default:o.defaultResponseType,internal:{name:"defaultResponseType"}},{flags:"--type-prefix <string>",description:"data contract name prefix",default:o.typePrefix},{flags:"--type-suffix <string>",description:"data contract name suffix",default:o.typeSuffix},{flags:"--clean-output",description:"clean output folder before generate api. WARNING: May cause data loss",default:o.cleanOutput,internal:{formatter:Boolean}},{flags:"--api-class-name <string>",description:"name of the api class",default:o.apiClassName},{flags:"--patch",description:"fix up small errors in the swagger source definition",default:o.patch,internal:{formatter:Boolean}},{flags:"--debug",description:"additional information about processes inside this tool",default:o.debug},{flags:"--another-array-type",description:"generate array types as Array<Type> (by default Type[])",default:o.anotherArrayType},{flags:"--sort-types",description:"sort fields and types",default:o.sortTypes},{flags:"--extract-enums",description:"extract all enums from inline interface\\type content to typescript enum construction",default:o.extractEnums},{flags:"--sort-routes",description:"sort routes in alphabetical order",default:o.sortRoutes},{flags:"--custom-config <string>",description:"custom config: primitiveTypeConstructs, hooks, ... ",default:""}]});W.addCommand({name:"generate-templates",description:'Generate ".ejs" templates needed for generate api',options:[{flags:"-o, --output <string>",description:"output path of generated templates",default:b.output},{flags:"-m, --modular",description:"generate templates needed to separate files for http client, data contracts, and routes",default:b.modular,internal:{formatter:Boolean}},{flags:"--http-client <string>",description:`http client type (possible values: ${Object.values(chunk725EVWJG_cjs.b).map(e=>`"${e}"`).join(", ")})`,default:b.httpClientType,internal:{name:"httpClientType"}},{flags:"-c, --clean-output",description:"clean output folder before generate template. WARNING: May cause data loss",default:b.cleanOutput,internal:{formatter:Boolean}},{flags:"-r, --rewrite",description:"rewrite content in existing templates",default:b.rewrite,internal:{formatter:Boolean}},{flags:"--silent",description:"Output only errors to console",default:b.silent,internal:{formatter:Boolean}}]});var M=async()=>{let{command:e,options:t}=await W.execute({args:process.argv}),n=null,a;if(t.customConfig){try{a=path.resolve(process.cwd(),t.customConfig),n=await import(a),n=n.default||n;}catch(s){console.error("Error loading custom config",s);}n&&console.log(`\u2728 found custom config at: ${a}`);}try{switch(e){case null:{await chunk725EVWJG_cjs.g({...t,name:t.name,url:t.path,generateRouteTypes:t.generateRouteTypes,generateClient:!!(t.axios||t.client),httpClientType:t.axios?chunk725EVWJG_cjs.b.AXIOS:chunk725EVWJG_cjs.b.FETCH,input:path.resolve(process.cwd(),t.path),output:path.resolve(process.cwd(),t.output||"."),...n});break}case"generate-templates":{await chunk725EVWJG_cjs.f(t);break}default:break}}catch(s){console.error(s),process.exit(1);}process.exit(0);};M();
41
+ also add typings for bad responses`,default:o.generateResponses,internal:{name:"generateResponses"}},{flags:"--union-enums",description:'generate all "enum" types as union types (T1 | T2 | TN)',default:o.generateUnionEnums,internal:{name:"generateUnionEnums"}},{flags:"--add-readonly",description:"generate readonly properties",default:o.addReadonly},{flags:"--route-types",description:"generate type definitions for API routes",default:o.generateRouteTypes,internal:{name:"generateRouteTypes"}},{flags:"--no-client",description:"do not generate an API class",default:o.generateClient},{flags:"--enum-names-as-values",description:"use values in 'x-enumNames' as enum values (not only as keys)",default:o.enumNamesAsValues},{flags:"--extract-request-params",description:"extract request params to data contract (Also combine path params and query params into one object)",default:o.extractRequestParams,internal:{formatter:Boolean}},{flags:"--extract-request-body",description:"extract request body type to data contract",default:o.extractRequestBody,internal:{formatter:Boolean}},{flags:"--extract-response-body",description:"extract response body type to data contract",default:o.extractResponseBody,internal:{formatter:Boolean}},{flags:"--extract-response-error",description:"extract response error type to data contract",default:o.extractResponseError,internal:{formatter:Boolean}},{flags:"--extract-responses",description:"extract all responses described in /components/responses",default:o.extractResponses,internal:{formatter:Boolean}},{flags:"--modular",description:"generate separated files for http client, data contracts, and routes",default:o.modular,internal:{formatter:Boolean}},{flags:"--js",description:"generate js api module with declaration file",default:o.toJS,internal:{formatter:Boolean,name:"toJS"}},{flags:"--module-name-index <number>",description:"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)",default:o.moduleNameIndex,internal:{formatter:e=>+e||0}},{flags:"--module-name-first-tag",description:"splits routes based on the first tag",default:o.moduleNameFirstTag},{flags:"--disableStrictSSL",description:"disabled strict SSL",default:o.disableStrictSSL,internal:{formatter:Boolean}},{flags:"--disableProxy",description:"disabled proxy",default:o.disableProxy,internal:{formatter:Boolean}},{flags:"--axios",description:"generate axios http client",default:o.httpClientType===chunkKMLLDZJ4_cjs.b.AXIOS},{flags:"--unwrap-response-data",description:"unwrap the data item from the response",default:o.unwrapResponseData},{flags:"--disable-throw-on-error",description:"Do not throw an error when response.ok is not true",default:o.disableThrowOnError},{flags:"--single-http-client",description:"Ability to send HttpClient instance to Api constructor",default:o.singleHttpClient,internal:{formatter:Boolean}},{flags:"--silent",description:"Output only errors to console",default:o.silent,internal:{formatter:Boolean}},{flags:"--default-response <type>",description:"default type for empty response schema",default:o.defaultResponseType,internal:{name:"defaultResponseType"}},{flags:"--type-prefix <string>",description:"data contract name prefix",default:o.typePrefix},{flags:"--type-suffix <string>",description:"data contract name suffix",default:o.typeSuffix},{flags:"--clean-output",description:"clean output folder before generate api. WARNING: May cause data loss",default:o.cleanOutput,internal:{formatter:Boolean}},{flags:"--api-class-name <string>",description:"name of the api class",default:o.apiClassName},{flags:"--patch",description:"fix up small errors in the swagger source definition",default:o.patch,internal:{formatter:Boolean}},{flags:"--debug",description:"additional information about processes inside this tool",default:o.debug},{flags:"--another-array-type",description:"generate array types as Array<Type> (by default Type[])",default:o.anotherArrayType},{flags:"--sort-types",description:"sort fields and types",default:o.sortTypes},{flags:"--extract-enums",description:"extract all enums from inline interface\\type content to typescript enum construction",default:o.extractEnums},{flags:"--sort-routes",description:"sort routes in alphabetical order",default:o.sortRoutes},{flags:"--custom-config <string>",description:"custom config: primitiveTypeConstructs, hooks, ... ",default:""}]});W.addCommand({name:"generate-templates",description:'Generate ".ejs" templates needed for generate api',options:[{flags:"-o, --output <string>",description:"output path of generated templates",default:b.output},{flags:"-m, --modular",description:"generate templates needed to separate files for http client, data contracts, and routes",default:b.modular,internal:{formatter:Boolean}},{flags:"--http-client <string>",description:`http client type (possible values: ${Object.values(chunkKMLLDZJ4_cjs.b).map(e=>`"${e}"`).join(", ")})`,default:b.httpClientType,internal:{name:"httpClientType"}},{flags:"-c, --clean-output",description:"clean output folder before generate template. WARNING: May cause data loss",default:b.cleanOutput,internal:{formatter:Boolean}},{flags:"-r, --rewrite",description:"rewrite content in existing templates",default:b.rewrite,internal:{formatter:Boolean}},{flags:"--silent",description:"Output only errors to console",default:b.silent,internal:{formatter:Boolean}}]});var M=async()=>{let{command:e,options:t}=await W.execute({args:process.argv}),n=null,a;if(t.customConfig){try{a=path.resolve(process.cwd(),t.customConfig),n=await import(a),n=n.default||n;}catch(s){console.error("Error loading custom config",s);}n&&console.log(`\u2728 found custom config at: ${a}`);}try{switch(e){case null:{await chunkKMLLDZJ4_cjs.g({...t,name:t.name,url:t.path,generateRouteTypes:t.generateRouteTypes,generateClient:!!(t.axios||t.client),httpClientType:t.axios?chunkKMLLDZJ4_cjs.b.AXIOS:chunkKMLLDZJ4_cjs.b.FETCH,input:path.resolve(process.cwd(),t.path),output:path.resolve(process.cwd(),t.output||"."),...n});break}case"generate-templates":{await chunkKMLLDZJ4_cjs.f(t);break}default:break}}catch(s){console.error(s),process.exit(1);}process.exit(0);};M();
42
42
  //# sourceMappingURL=cli.cjs.map
43
43
  //# sourceMappingURL=cli.cjs.map
package/dist/cli.cjs.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","lodash","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","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,EAAY,CAACC,CAAAA,CAAMC,IAAS,CAChC,GAAID,GAAQ,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,kBAAW,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,KAAMI,CAAWA,EAAAA,CAAAA,CAAO,MAAM,IAAS,GAAA,MAAM,CAC/D,CAGF,CAAA,IAAMC,EAAmBJ,CAAa,CAAA,MAAA,CAAQG,CAAWA,EAAAA,CAAAA,CAAO,SAAS,CAAA,CACzE,GAAIC,CAAiB,CAAA,MAAA,CAAQ,CAC3BA,CAAiB,CAAA,CAAC,EAAE,SAAU,EAAA,CAC9BP,EAAQ,CACN,OAAA,CAASX,EACT,OAAS,CAAA,EACX,CAAC,CAAA,CACD,MACF,CAAO,KAAA,CACL,IAAIe,CAAAA,CAAQ,EAENI,CAAAA,CAAAA,CAAwB,CAACC,CAAYH,CAAAA,CAAAA,GAAW,CACpD,GAAIG,CAAAA,CAAY,CACd,IAAMC,CAAAA,CAAOD,CAAW,CAAA,KAAA,CACxB,GAAI,CAACC,EAAK,MAAU,EAAA,CAACJ,EAAO,KAAM,CAAA,KAAA,CAChC,OAAO,CAACA,CAAAA,CAAO,KAAM,CAAA,QAAA,CAEvB,GAAIA,CAAAA,CAAO,MAAM,KACf,CAAA,OAAIA,EAAO,KAAM,CAAA,KAAA,CAAM,SACdI,CAAK,CAAA,MAAA,CAAO,CAACC,CAAKC,CAAAA,CAAAA,IACvBD,EAAI,IAAK,CAAA,GAAGC,EAAE,KAAM,CAAA,GAAG,EAAE,GAAIN,CAAAA,CAAAA,CAAO,KAAM,CAAA,KAAA,CAAM,SAAS,CAAC,EACnDK,CACN,CAAA,CAAA,EAAE,CAEEL,CAAAA,CAAAA,CAAO,MAAM,KAAM,CAAA,SAAA,CAAUI,EAAK,CAAC,CAAA,EAAKJ,EAAO,OAAO,CAGnE,CAEA,OAAOA,CAAAA,CAAO,OAChB,CAEMO,CAAAA,CAAAA,CAAsBX,CAAQ,CAAA,OAAA,CAAQ,MAAO,CAAA,CAACS,EAAKL,CAAW,GAAA,CAClE,GAAIF,CAAO,CAAA,OAAOO,EAElB,IAAMF,CAAAA,CAAaN,EAAa,IAC7BW,CAAAA,CAAAA,EAAMA,EAAE,KAAM,CAAA,IAAA,GAASR,EAAO,KAAM,CAAA,IACvC,EAEA,GAAI,CAACG,CAAcH,EAAAA,CAAAA,CAAO,QACxB,CAAA,OAAAF,EAAQ,CAAoBE,iBAAAA,EAAAA,CAAAA,CAAO,MAAM,GAAG,CAAA,eAAA,CAAA,CACrCK,EAGT,IAAMI,CAAAA,CAAYP,CAAsBC,CAAAA,CAAAA,CAAYH,CAAM,CAAA,CAC1D,GAAI,CAACA,CAAAA,CAAO,UAAW,CACrB,IAAMU,EAAWV,CAAO,CAAA,QAAA,EAAY,EAAC,CACrCK,CAAIK,CAAAA,CAAAA,CAAS,MAAQV,CAAO,CAAA,KAAA,CAAM,IAAI,CAAIU,CAAAA,CAAAA,CAAS,UAC/CA,CAAS,CAAA,SAAA,CAAUD,CAAS,CAC5BA,CAAAA,EACN,CAEA,OAAOJ,CACT,EAAG,EAAE,EAEDP,CACFH,CAAAA,CAAAA,CAAO,IAAI,KAAA,CAAMG,CAAK,CAAC,EAEvBJ,CAAQ,CAAA,CACN,QAASE,CAAQ,CAAA,IAAA,GAASd,EAAe,IAAOc,CAAAA,CAAAA,CAAQ,IACxD,CAAA,OAAA,CAASW,CACX,CAAC,EAEL,CACF,CAAC,CACH,CAEMR,CAAAA,CAAAA,CAAc,CAACP,CAAUN,CAAAA,CAAAA,GAAS,CACtC,IAAIU,CAAU,CAAA,IAAA,CACVC,EAAe,EAAC,CAChBc,EAAgB,IAChBb,CAAAA,CAAAA,CAAQ,GAERc,CAAc,CAAA,GAkElB,OAhEA1B,CAAAA,CAAK,QAAQ,CAAC2B,CAAAA,CAAKC,IAAM,CACvB,GAAI,CAAAhB,CAEJ,CAAA,CAAA,GAAIgB,CAAM,GAAA,CAAA,CAAG,CAGX,GAFAlB,EAAUJ,CAASqB,CAAAA,CAAG,EAElB,CAACjB,CAAAA,EAAW,CAACiB,CAAI,CAAA,UAAA,CAAW,GAAG,CAAA,CAAG,CACpC,IAAME,EAAM1B,kBAAWwB,CAAAA,CAAAA,CAAKrB,EAAS,IAAK,EAAC,EAC3CM,CAAQ,CAAA,CAAA,gBAAA,EAAmBe,CAAG,CAAA,EAC5BE,CAAM,CAAA,CAAA;AAAA,cAAA,EAAmBA,CAAG,CAAA,GAAA,CAAA,CAAQ,EACtC,CAAA,EACF,CAAYnB,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,CAAIe,GAAAA,CAAAA,CAAI,UAAW,CAAA,GAAG,CAAG,CAAA,CACvB,IAAMb,CAAAA,CAASJ,CAAQ,CAAA,OAAA,CAAQ,IAAMI,CAAAA,CAAAA,EACnCA,CAAO,CAAA,KAAA,CAAM,KAAK,QAASa,CAAAA,CAAG,CAChC,CAAA,CAEA,GAAI,CAACb,CAAQ,CAAA,CACX,IAAMe,CAAM1B,CAAAA,kBAAAA,CAAWwB,CAAKD,CAAAA,CAAW,CACvCd,CAAAA,CAAAA,CAAQ,CAAkBe,eAAAA,EAAAA,CAAG,GAC3BE,CAAM,CAAA,CAAA;AAAA,cAAmBA,EAAAA,CAAG,MAAQ,EACtC,CAAA,EACF,CAEA,GAAIf,CAAAA,CAAQ,CACV,GAAIW,CAAiBA,EAAAA,CAAAA,CAAc,MAAM,IAASX,GAAAA,CAAAA,CAAO,KAAM,CAAA,IAAA,CAC7D,OAEF,IAAMgB,EAAgBnB,CAAa,CAAA,IAAA,CAChCW,CAAMA,EAAAA,CAAAA,CAAE,KAAM,CAAA,IAAA,GAASR,EAAO,KAAM,CAAA,IACvC,EACIgB,CACFL,CAAAA,CAAAA,CAAgBK,GAEhBL,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,IAAKE,CAAAA,CAAG,IAEhC,CAAC,CAAA,CACDjB,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,IAAMmB,CAAAA,CAAyBC,CAC7BA,EAAAA,CAAAA,CAAQ,OACN,CAACb,CAAAA,CAAKL,CAAW,GAAA,CACf,IAAMmB,CAAAA,CAAQ,GAAGnB,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,CACMoB,EAAc,CAAGpB,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,OAAImB,CAAM,CAAA,MAAA,CAASd,CAAI,CAAA,SAAA,GACrBA,EAAI,SAAYc,CAAAA,CAAAA,CAAM,MAGxBd,CAAAA,CAAAA,CAAAA,CAAI,OAAQ,CAAA,IAAA,CAAK,CACf,KAAAc,CAAAA,CAAAA,CACA,WAAAC,CAAAA,CACF,CAAC,CAAA,CACMf,CACT,CACA,CAAA,CACE,QAAS,EAAC,CACV,UAAW,CACb,CACF,CAEIgB,CAAAA,CAAAA,CAA4B,CAACH,CAAAA,CAASI,EAAWC,CACrDL,GAAAA,CAAAA,CACG,GAAKlB,CAAAA,CAAAA,EAAW,CAEf,IAAMwB,EAAU,CADG,EAAA,KAAA,CAAMD,CAAM,CAAA,CAAE,IAAK,CAAA,GAAG,EAAE,IAAK,CAAA,EAAE,CACrB,CAAA,EAAGvB,CAAO,CAAA,KAAA,CAAM,OAAOsB,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,CAAmB1B,CAAO,CAAA,WAAA,CAAY,KAAM,CAAA,CAAA;AAAA,CAAI,CAAA,CAEtD,OACEwB,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,CAACpC,CAAAA,CAAUC,CAAa,GAAA,CAC7C,GAAM,CAAE,OAAAyB,CAAAA,CAAAA,CAAS,SAAWW,CAAAA,CAAgB,CAAIZ,CAAAA,CAAAA,CAC9CzB,CAASV,CAAAA,CAAY,CAAE,CAAA,OACzB,CAEM,CAAA,CAAE,QAAUgD,CAAAA,CAAAA,CAAe,SAAWC,CAAAA,CAAiB,CAAIC,CAAAA,kBAAAA,CAC9D,MAAOxC,CAAAA,CAAAA,CAAWI,GAAYA,CAAQ,CAAA,IAAA,GAASd,CAAY,CAAA,CAC3D,MACC,CAAA,CAACuB,CAAKT,CAAAA,CAAAA,GAAY,CAChB,IAAMsB,CAAUD,CAAAA,CAAAA,CAAsBrB,CAAQ,CAAA,OAAO,CAC/CqC,CAAAA,CAAAA,CAAO,CAAGrC,EAAAA,CAAAA,CAAQ,IAAI,CAAA,EAAGsB,CAAQ,CAAA,MAAA,CAAS,YAAe,CAAA,EAAE,CAC3DE,CAAAA,CAAAA,CAAAA,CAAcxB,CAAQ,CAAA,WAAA,CAEtB0B,CAAY,CAAA,IAAA,CAAK,GAAIW,CAAAA,CAAAA,CAAK,OAAQf,CAAQ,CAAA,SAAS,CACzD,CAAA,OAAII,CAAYjB,CAAAA,CAAAA,CAAI,SAClBA,GAAAA,CAAAA,CAAI,SAAYiB,CAAAA,CAAAA,CAAAA,CAGlBjB,CAAI,CAAA,QAAA,CAAS,IAAK,CAAA,CAChB,WAAAe,CAAAA,CAAAA,CACA,IAAAa,CAAAA,CAAAA,CACA,OAAAf,CAAAA,CACF,CAAC,CAAA,CACMb,CACT,CAAA,CACA,CACE,QAAA,CAAU,EAAC,CACX,SAAWwB,CAAAA,CACb,CACF,CAAA,CAEIK,EAAgBb,CAA0BH,CAAAA,CAAAA,CAASW,CAAiB,CAAA,CAAC,CAErEM,CAAAA,CAAAA,CAAiBL,CACpB,CAAA,GAAA,CAAKM,CAAiB,EAAA,CACrB,IAAMZ,CAAAA,CAAU,CAAKY,EAAAA,EAAAA,CAAAA,CAAa,IAAK,CAAA,MAAA,CACrCL,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,CAAmBU,CAAAA,CAAAA,CAAa,YAAY,KAAM,CAAA,CAAA;AAAA,CAAI,EACtDC,CAAoBhB,CAAAA,CAAAA,CACxBe,EAAa,OAAQ,CAAA,OAAA,CACrBL,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,CACTU,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,OAAO8C,CAAAA,CAAepC,EAAUC,CAAQ,CAAA,CAE3E,GAAM,CAAE,QAAAyB,CAAS,CAAA,SAAA,CAAWW,CAAgB,CAAA,CAAIZ,EAC9CrB,CAAQ,CAAA,OACV,CACMsC,CAAAA,CAAAA,CAAgBb,EAA0BH,CAASW,CAAAA,CAAAA,CAAiB,CAAC,CAErES,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,CC7KA,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,CAAgBxB,CAAU,EAAA,CAC9B,IAAIc,CAAAA,CAAO,IACLW,CAAAA,CAAAA,CAAO,EACTC,CAAAA,CAAAA,CAAQ,IACNC,CAAAA,CAAAA,CAAW3B,CAAM,CAAA,QAAA,CAAS,OAAO,CAEjC4B,CAAAA,CAAAA,CAASf,kBAAO,CAAA,OAAA,CACpBb,CAAM,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,GAAA,CAAKuB,CAAQA,EAAAA,CAAAA,CAAI,OAAQ,CAAA,IAAA,CAAM,EAAE,CAAC,CACrD,CAAA,CAEA,IAAWA,IAAAA,CAAAA,IAAOK,CAChB,CAAA,GAAIL,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,IAAMM,CAAWN,CAAAA,CAAAA,CAAI,OAAQ,CAAA,aAAA,CAAe,EAAE,CAAA,CACxCO,EAAWP,CAAI,CAAA,QAAA,CAAS,KAAK,CAAA,CACnCG,CAAQ,CAAA,CACN,IAAKH,CACL,CAAA,QAAA,CAAAO,CACA,CAAA,IAAA,CAAMD,CACN,CAAA,SAAA,CAAWP,EAAiBO,CAAQ,CAAA,EAAKP,CAAiB,CAAA,MAC5D,EACF,CAIJ,IAAMS,CAAAA,CAAaN,CAAK,CAAA,KAAA,EAAQ,CAAA,IAAA,CAAK,CAACO,CAAAA,CAAGC,IAAMA,CAAE,CAAA,MAAA,CAASD,CAAE,CAAA,MAAM,CAAE,CAAA,CAAC,CAErE,CAAA,OAAID,CAAe,GAAA,EAAA,GACjBjB,CAAOD,CAAAA,kBAAAA,CAAO,SACXc,CAAAA,CAAAA,CAAAA,CAAWI,EAAW,OAAQ,CAAA,OAAA,CAAS,EAAE,CAAA,CAAIA,CAAY,EAAA,OAAA,CACxD,OACA,CAAA,EACF,CACF,CAAA,CAAA,CAGK,CACL,QAAA,CAAAJ,CACA,CAAA,GAAA,CAAK3B,EACL,IAAAc,CAAAA,CAAAA,CACA,IAAAW,CAAAA,CAAAA,CACA,KAAAC,CAAAA,CACF,CACF,CAEMQ,CAAAA,CAAAA,CAAiBrD,CAAW,EAAA,CAChC,IAAMsD,CAAAA,CAAiBX,EAAa3C,CAAO,CAAA,KAAK,CAEhD,CAAA,OAAKsD,CAAe,CAAA,IAAA,CAKb,CACL,QAAA,CAAU,CAAC,CAACtD,CAAO,CAAA,QAAA,CACnB,WAAa,CAAA,CAAA,EAAGA,EAAO,WAAe,EAAA,EAAE,CACxC,CAAA,CAAA,OAAA,CAASA,CAAO,CAAA,OAAA,CAChB,KAAOsD,CAAAA,CAAAA,CACP,SAAWtD,CAAAA,CAAAA,CAAO,SAClB,CAAA,QAAA,CAAUA,CAAO,CAAA,QACnB,GAXE,OAAQ,CAAA,IAAA,CAAK,gBAAkBA,CAAAA,CAAM,CAC9B,CAAA,IAAA,CAWX,CCnEA,CAAA,IAAMuD,CAAOC,CAAAA,CAAAA,EAAU,CACrB,IAAMhE,CAAW,CAAA,GAEXiE,CAAa,CAAA,CAAC7D,CAAS,CAAA,CAAE,UAAA8D,CAAAA,CAAAA,CAAa,GAAO,OAAAC,CAAAA,CAAAA,CAAU,CAAK,CAAA,CAAA,CAAI,EAAC,IACrEnE,EAASI,CAAQ,CAAA,IAAI,CAAI,CAAA,CACvB,IAAMA,CAAAA,CAAAA,CAAQ,IACd,CAAA,WAAA,CAAa,CAAGA,EAAAA,CAAAA,CAAQ,WAAe,EAAA,EAAE,CACzC,CAAA,CAAA,OAAA,CAASoC,mBAAO,OAAQpC,CAAAA,CAAAA,CAAQ,OAAQ,CAAA,GAAA,CAAIyD,CAAa,CAAC,CAC5D,CAAA,CAEIK,CACFlE,EAAAA,CAAAA,CAASI,CAAQ,CAAA,IAAI,CAAE,CAAA,OAAA,CAAQ,QAC7ByD,CAAc,CAAA,CACZ,KAAO,CAAA,eAAA,CACP,WAAa,CAAA,4BAAA,CACb,SAAW,CAAA,IAAMb,CAAe/C,CAAAA,CAAQ,CAC1C,CAAC,CACH,CAAA,CAGEkE,GACFnE,CAASI,CAAAA,CAAAA,CAAQ,IAAI,CAAA,CAAE,OAAQ,CAAA,IAAA,CAC7ByD,EAAc,CACZ,KAAA,CAAO,YACP,CAAA,WAAA,CAAa,0BACb,CAAA,SAAA,CAAW,IACTd,CAAY/C,CAAAA,CAAAA,CAAUC,CAAUD,CAAAA,CAAAA,CAASI,CAAQ,CAAA,IAAI,CAAC,CAC1D,CAAC,CACH,CAGKH,CAAAA,CAAAA,CAAAA,CAGHA,CAAW,CAAA,CACf,SAAAD,CACA,CAAA,KAAA,CAAAgE,CACA,CAAA,UAAA,CAAAC,CACA,CAAA,OAAA,CAAUlE,CAAWD,EAAAA,CAAAA,CAAQC,CAAQC,CAAAA,CAAkB,CACzD,CAEAiE,CAAAA,CAAAA,CACE,CACE,IAAM3E,CAAAA,CAAAA,CACN,OAAS,CAAA,EACX,CAAA,CACA,CACE,UAAA,CAAY,CACZ,CAAA,CAAA,OAAA,CAAS,CACX,CAAA,CACF,CAEA,CAAA,IAAA,IAAWkB,KAAUwD,CAAM,CAAA,OAAA,CAAS,CAClC,IAAMI,CAAYP,CAAAA,CAAAA,CAAcrD,CAAM,CAEtC,CAAA,GAAI,CAAC4D,CAAAA,CAAW,OAEhB,GAAI5E,EAAgB,QAAS4E,CAAAA,CAAAA,CAAU,IAAI,CAAA,CAAG,CAC5C,OAAA,CAAQ,IAAK,CAAA,iBAAA,CAAmBA,CAAU,CAAA,IAAI,CAC9C,CAAA,MACF,CAEApE,CAAAA,CAASV,CAAY,CAAE,CAAA,OAAA,CAAQ,IAAK8E,CAAAA,CAAS,EAC/C,CAEApE,CAASV,CAAAA,CAAY,CAAE,CAAA,OAAA,CAAQ,OAC7BuE,CAAAA,CAAAA,CAAc,CACZ,KAAA,CAAO,gBACP,WAAa,CAAA,4BAAA,CACb,SAAW,CAAA,IAAMb,CAAe/C,CAAAA,CAAQ,CAC1C,CAAC,CACH,CAAA,CAEAD,CAASV,CAAAA,CAAY,CAAE,CAAA,OAAA,CAAQ,KAC7BuE,CAAc,CAAA,CACZ,KAAO,CAAA,YAAA,CACP,WAAa,CAAA,0BAAA,CACb,SAAW,CAAA,IAAMd,CAAY/C,CAAAA,CAAAA,CAAUC,CAAUD,CAAAA,CAAAA,CAASV,CAAY,CAAC,CACzE,CAAC,CACH,CAEA,CAAA,IAAA,IAAWc,CAAW,IAAA,MAAA,CAAO,OAAQ4D,CAAAA,CAAAA,CAAM,QAAY,EAAA,EAAE,CAAA,CACvDC,CAAW7D,CAAAA,CAAO,EAGpB,OAAOH,CACT,CCnFA,CAAA,IAAMoE,CAAoB,CAAA,IAAIC,mBAAc,CAAA,EAAE,CAAA,CACxCC,CAAwB,CAAA,IAAIC,mBAAmB,CAAA,EAAE,CAEjDC,CAAAA,CAAAA,CAAUV,CAAI,CAAA,CAClB,IAAMW,CAAAA,mBAAAA,CAAY,IAClB,CAAA,KAAA,CAAO,KACP,CAAA,OAAA,CAASA,mBAAY,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,mBAAY,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,mBACF,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,CAAA1E,CAAS,CAAA,OAAA,CAAAsB,CAAQ,CAAI,CAAA,MAAM+C,CAAQ,CAAA,OAAA,CAAQ,CAAE,IAAM,CAAA,OAAA,CAAQ,IAAK,CAAC,EAErEM,CAAe,CAAA,IAAA,CACfC,EAEJ,GAAItD,CAAAA,CAAQ,aAAc,CACxB,GAAI,CACFsD,CAAAA,CAAmB9E,aAAQ,OAAQ,CAAA,GAAA,EAAOwB,CAAAA,CAAAA,CAAQ,YAAY,CAC9DqD,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,OAAQ5E,CAAAA,EACN,KAAK,IAAA,CAAM,CACT,MAAM8E,oBAAY,CAChB,GAAGxD,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,CAAQkD,mBAAY,CAAA,KAAA,CAAQA,oBAAY,KAChE,CAAA,KAAA,CAAO1E,YAAQ,CAAA,OAAA,CAAQ,KAAOwB,CAAAA,CAAAA,CAAQ,IAAI,CAC1C,CAAA,MAAA,CAAQxB,aAAQ,OAAQ,CAAA,GAAA,EAAOwB,CAAAA,CAAAA,CAAQ,QAAU,GAAG,CAAA,CACpD,GAAGqD,CACL,CAAC,CACD,CAAA,KACF,CACA,IAAK,qBAAsB,CACzB,MAAMI,oBAAkBzD,CAAO,CAAA,CAC/B,KACF,CACA,QACE,KAEJ,CACF,OAASuD,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.cjs","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 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 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 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 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 Object.entries(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"]}
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","lodash","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","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.cjs","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 { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\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 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 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 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 Object.entries(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/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { d, e, a, b as b$1, f, g } from './chunk-3LHF3KLG.js';
2
+ import { d, e, a, b as b$1, f, g } from './chunk-M2JPSLFC.js';
3
3
  import { resolve } from 'node:path';
4
4
  import P from 'lodash';
5
5
  import T from 'didyoumean';
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","lodash","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","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 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 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 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 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 Object.entries(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"]}
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","lodash","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","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 { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\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 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 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 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 Object.entries(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 chunk725EVWJG_cjs = require('./chunk-725EVWJG.cjs');
4
+ var chunkKMLLDZJ4_cjs = require('./chunk-KMLLDZJ4.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "constants", {
9
9
  enumerable: true,
10
- get: function () { return chunk725EVWJG_cjs.c; }
10
+ get: function () { return chunkKMLLDZJ4_cjs.c; }
11
11
  });
12
12
  Object.defineProperty(exports, "generateApi", {
13
13
  enumerable: true,
14
- get: function () { return chunk725EVWJG_cjs.g; }
14
+ get: function () { return chunkKMLLDZJ4_cjs.g; }
15
15
  });
16
16
  Object.defineProperty(exports, "generateTemplates", {
17
17
  enumerable: true,
18
- get: function () { return chunk725EVWJG_cjs.f; }
18
+ get: function () { return chunkKMLLDZJ4_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-3LHF3KLG.js';
2
+ export { c as constants, g as generateApi, f as generateTemplates } from './chunk-M2JPSLFC.js';
3
3
  //# sourceMappingURL=lib.js.map
4
4
  //# sourceMappingURL=lib.js.map