@hey-api/openapi-ts 0.53.9 → 0.53.11

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/README.md CHANGED
@@ -1,11 +1,9 @@
1
1
  <div align="center">
2
- <img width="150" height="150" src="https://heyapi.vercel.app/logo.png" alt="Logo">
3
- <h1 align="center"><b>OpenAPI Typescript</b></h1>
4
- <p align="center">✨ Turn your OpenAPI specification into a beautiful TypeScript client.</p>
2
+ <img width="150" height="150" src="https://heyapi.dev/logo.png" alt="Logo">
3
+ <h1 align="center"><b>OpenAPI TypeScript</b></h1>
4
+ <p align="center">🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.</p>
5
5
  </div>
6
6
 
7
- Generate TypeScript interfaces, REST clients, and JSON Schemas from OpenAPI specifications.
8
-
9
7
  [Live demo](https://stackblitz.com/edit/hey-api-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fservices.gen.ts,src%2Fclient%2Ftypes.gen.ts)
10
8
 
11
9
  ## Features
@@ -18,7 +16,7 @@ Generate TypeScript interfaces, REST clients, and JSON Schemas from OpenAPI spec
18
16
 
19
17
  ## Documentation
20
18
 
21
- Please visit our [website](https://heyapi.vercel.app/) for documentation, guides, migrating, and more.
19
+ Please visit our [website](https://heyapi.dev/) for documentation, guides, migrating, and more.
22
20
 
23
21
  ## Sponsoring
24
22
 
@@ -26,12 +24,12 @@ Love Hey API? Please consider becoming a [sponsor](https://github.com/sponsors/m
26
24
 
27
25
  ## GitHub Integration (coming soon)
28
26
 
29
- Automatically update your code when the APIs it depends on change. [Find out more](https://heyapi.vercel.app/openapi-ts/integrations.html).
27
+ Automatically update your code when the APIs it depends on change. [Find out more](https://heyapi.dev/openapi-ts/integrations.html).
30
28
 
31
29
  ## Migrating from OpenAPI Typescript Codegen?
32
30
 
33
- Please read our [migration guide](https://heyapi.vercel.app/openapi-ts/migrating.html#openapi-typescript-codegen).
31
+ Please read our [migration guide](https://heyapi.dev/openapi-ts/migrating.html#openapi-typescript-codegen).
34
32
 
35
33
  ## Contributing
36
34
 
37
- Want to get involved? Please refer to the [contributing guide](https://heyapi.vercel.app/contributing.html).
35
+ Want to get involved? Please refer to the [contributing guide](https://heyapi.dev/contributing.html).
package/dist/index.cjs CHANGED
@@ -1322,7 +1322,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
1322
1322
 
1323
1323
  onCancel(() => xhr.abort());
1324
1324
  });
1325
- };`},useData:!0};var mp=()=>{f__default.default.registerHelper("camelCase",function(e){return j({input:e})}),f__default.default.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f__default.default.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("transformServiceName",Le);},ri=()=>{mp();let e={client:f__default.default.template(fs),core:{apiError:f__default.default.template(bs),apiRequestOptions:f__default.default.template(Ps),apiResult:f__default.default.template(Cs),baseHttpRequest:f__default.default.template(Ss),cancelablePromise:f__default.default.template(ks),httpRequest:f__default.default.template(Gs),request:f__default.default.template(zs),settings:f__default.default.template(Xs)}};return f__default.default.registerPartial("functions/base64",f__default.default.template(js)),f__default.default.registerPartial("functions/catchErrorCodes",f__default.default.template(Hs)),f__default.default.registerPartial("functions/getFormData",f__default.default.template(Fs)),f__default.default.registerPartial("functions/getQueryString",f__default.default.template(Bs)),f__default.default.registerPartial("functions/getUrl",f__default.default.template(Ls)),f__default.default.registerPartial("functions/isBlob",f__default.default.template(_s)),f__default.default.registerPartial("functions/isFormData",f__default.default.template(Us)),f__default.default.registerPartial("functions/isString",f__default.default.template(Vs)),f__default.default.registerPartial("functions/isStringWithValue",f__default.default.template(Ks)),f__default.default.registerPartial("functions/isSuccess",f__default.default.template(Qs)),f__default.default.registerPartial("functions/resolve",f__default.default.template(Ws)),f__default.default.registerPartial("fetch/getHeaders",f__default.default.template(Ns)),f__default.default.registerPartial("fetch/getRequestBody",f__default.default.template(ws)),f__default.default.registerPartial("fetch/getResponseBody",f__default.default.template($s)),f__default.default.registerPartial("fetch/getResponseHeader",f__default.default.template(Is)),f__default.default.registerPartial("fetch/request",f__default.default.template(Ds)),f__default.default.registerPartial("fetch/sendRequest",f__default.default.template(Ms)),f__default.default.registerPartial("xhr/getHeaders",f__default.default.template(Js)),f__default.default.registerPartial("xhr/getRequestBody",f__default.default.template(Ys)),f__default.default.registerPartial("xhr/getResponseBody",f__default.default.template(Zs)),f__default.default.registerPartial("xhr/getResponseHeader",f__default.default.template(ei)),f__default.default.registerPartial("xhr/request",f__default.default.template(ti)),f__default.default.registerPartial("xhr/sendRequest",f__default.default.template(ni)),f__default.default.registerPartial("axios/getHeaders",f__default.default.template(Ts)),f__default.default.registerPartial("axios/getRequestBody",f__default.default.template(Rs)),f__default.default.registerPartial("axios/getResponseBody",f__default.default.template(As)),f__default.default.registerPartial("axios/getResponseHeader",f__default.default.template(vs)),f__default.default.registerPartial("axios/request",f__default.default.template(Es)),f__default.default.registerPartial("axios/sendRequest",f__default.default.template(qs)),f__default.default.registerPartial("angular/getHeaders",f__default.default.template(ds)),f__default.default.registerPartial("angular/getRequestBody",f__default.default.template(ys)),f__default.default.registerPartial("angular/getResponseBody",f__default.default.template(gs)),f__default.default.registerPartial("angular/getResponseHeader",f__default.default.template(hs)),f__default.default.registerPartial("angular/request",f__default.default.template(xs)),f__default.default.registerPartial("angular/sendRequest",f__default.default.template(Os)),e};var oi=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},si=e=>{let t=g();return !R(t)||e.prop!=="api-version"},ii=e=>{let t=g();if(t.services.operationId&&e.id)return j({input:Ue(e.id)});let r=e.path;return R(t)&&(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),j({input:`${e.method}-${r}`})},ai=e=>{let t=g();return R(t)?un(e.prop):e.prop};var pi=e=>`${e}-end`,On=e=>`${e}-length`,ci=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(pi(e)),getEntriesByName:e=>performance.getEntriesByName(On(e)),measure:e=>performance.measure(On(e),ci(e),pi(e)),start:e=>performance.mark(ci(e))},Lt=class{totalMeasure;constructor({totalMark:t}){this.totalMeasure=N.measure(t);}report({marks:t}){let r=Math.ceil(this.totalMeasure.duration*100)/100,s=this.totalMeasure.name;console.warn(`${s.substring(0,s.length-On("").length)}: ${r.toFixed(2)}ms`),t.forEach(n=>{let o=N.measure(n),a=Math.ceil(o.duration*100)/100,i=Math.ceil(o.duration/this.totalMeasure.duration*100*100)/100;console.warn(`${n}: ${a.toFixed(2)}ms (${i.toFixed(2)}%)`);});}};function mi(e){return {...e,models:e.models.map(t=>lp(t)),services:up(e.operations).map(fp),types:{}}}var lp=e=>({...e,$refs:e.$refs.filter((t,r,s)=>H(t,r,s)),enum:e.enum.filter((t,r,s)=>s.findIndex(n=>n.value===t.value)===r),enums:e.enums.filter((t,r,s)=>s.findIndex(n=>n.name===t.name)===r),imports:e.imports.filter((t,r,s)=>H(t,r,s)&&t!==e.name).sort($e)}),up=e=>{let t=g(),r=new Map;return e.forEach(s=>{(s.tags?.length&&(t.services.asClass||t.name)?s.tags.filter(H):["Default"]).forEach(o=>{let a={...s,service:gp(o)},i=r.get(a.service)||yp(a);i.$refs=[...i.$refs,...a.$refs],i.imports=[...i.imports,...a.imports],i.operations=[...i.operations,a],r.set(a.service,i);});}),Array.from(r.values())},fp=e=>{let t={...e};return t.operations=dp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(H).sort($e),t},dp=e=>{let t=new Map;return e.operations.map(r=>{let s={...r};s.imports.push(...s.parameters.flatMap(i=>i.imports));let n=s.responses.filter(i=>i.responseTypes.includes("success"));s.imports.push(...n.flatMap(i=>i.imports));let o=s.name,a=t.get(o)||0;return a>0&&(s.name=`${o}${a}`),t.set(o,a+1),s})},yp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),gp=e=>j({input:Ue(e),pascalCase:!0});var Op={biome:{args:e=>["format","--write",e],command:"biome",name:"Biome (Format)"},prettier:{args:e=>["--ignore-unknown",e,"--write","--ignore-path","./.prettierignore"],command:"prettier",name:"Prettier"}},bp={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},Pp=()=>{let e=g();if(e.output.format){let t=Op[e.output.format];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}if(e.output.lint){let t=bp[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}},Cp=()=>{let{client:e}=g();switch(e.name){case"legacy/angular":return console.log("\u2728 Creating Angular client");case"@hey-api/client-axios":case"legacy/axios":return console.log("\u2728 Creating Axios client");case"@hey-api/client-fetch":case"legacy/fetch":return console.log("\u2728 Creating Fetch client");case"legacy/node":return console.log("\u2728 Creating Node.js client");case"legacy/xhr":return console.log("\u2728 Creating XHR client")}},Tp=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},Rp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Ap=e=>(e.plugins??[]).map(r=>typeof r=="string"?xn[r]:{...xn[r.name],...r}),vp=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},Ep=e=>{let t={asClass:!1,export:!0,name:"{{name}}Service",operationId:!0,response:"body"};return typeof e.services=="boolean"?t.export=e.services:typeof e.services=="string"?t.include=e.services:t={...t,...e.services},t},qp=(e,t)=>{let r={dates:!1,enums:!1,export:!0,name:"preserve",tree:!t.export};return typeof e.types=="boolean"?r.export=e.types:typeof e.types=="string"?r.include=e.types:r={...r,...e.types},r},Sp=async e=>{let t;if(e.configFile){let n=e.configFile.split(".");t=n.slice(0,n.length-1).join(".");}let{config:r}=await c12.loadConfig({configFile:t,name:"openapi-ts"});return (Array.isArray(e)?e:Array.isArray(r)?r.map(n=>({...n,...e})):[{...r??{},...e}]).map(n=>{let{base:o,configFile:a="",debug:i=!1,dryRun:p=!1,exportCore:c=!0,experimental_parser:m=!1,input:u,name:d,request:h,useOptions:O=!0}=n;i&&console.warn("userConfig:",n);let x=Rp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!x.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let E=Tp(n);if(E.name&&!ls.includes(E.name))throw new Error("\u{1F6AB} invalid client - select a valid client value");O||console.warn("\u2757\uFE0F Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.vercel.app/openapi-ts/migrating.html#v0-27-38");let C=Ap(n),ue=vp(n),ke=Ep(n),F=qp(n,ke);x.path=K__default.default.resolve(process.cwd(),x.path);let J=ur({base:o,client:E,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:R(E)?c:!1,input:u,name:d,output:x,plugins:C,request:h,schemas:ue,services:ke,types:F,useOptions:O});return i&&console.warn("config:",J),J})};async function kp(e){N.start("createClient"),N.start("config");let t=await Sp(e);N.end("config"),N.start("handlebars");let r=ri();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await us(a.input):a.input;if(N.end("openapi"),a.experimental_parser)N.start("experimental_parser"),Mo({spec:i}),N.end("experimental_parser");else {N.start("parser");let p=Do({config:{filterFn:{operation:oi,operationParameter:si},nameFn:{operation:ii,operationParameter:ai}},openApi:i}),c=mi(p);return N.end("parser"),Cp(),N.start("generator"),await es(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(Pp(),console.log("\u2728 Done! Your client is located in:",a.output.path)),N.end("postprocess"),c}},n=[],o=t.map(a=>s(a));for(let a of o){let i=await a();i&&n.push(i);}return N.end("createClient"),e.debug&&new Lt({totalMark:"createClient"}).report({marks:["config","openapi","handlebars","parser","generator","postprocess"]}),n}var Np=e=>e,nx={createClient:kp,defineConfig:Np};
1325
+ };`},useData:!0};var mp=()=>{f__default.default.registerHelper("camelCase",function(e){return j({input:e})}),f__default.default.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f__default.default.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f__default.default.registerHelper("transformServiceName",Le);},ri=()=>{mp();let e={client:f__default.default.template(fs),core:{apiError:f__default.default.template(bs),apiRequestOptions:f__default.default.template(Ps),apiResult:f__default.default.template(Cs),baseHttpRequest:f__default.default.template(Ss),cancelablePromise:f__default.default.template(ks),httpRequest:f__default.default.template(Gs),request:f__default.default.template(zs),settings:f__default.default.template(Xs)}};return f__default.default.registerPartial("functions/base64",f__default.default.template(js)),f__default.default.registerPartial("functions/catchErrorCodes",f__default.default.template(Hs)),f__default.default.registerPartial("functions/getFormData",f__default.default.template(Fs)),f__default.default.registerPartial("functions/getQueryString",f__default.default.template(Bs)),f__default.default.registerPartial("functions/getUrl",f__default.default.template(Ls)),f__default.default.registerPartial("functions/isBlob",f__default.default.template(_s)),f__default.default.registerPartial("functions/isFormData",f__default.default.template(Us)),f__default.default.registerPartial("functions/isString",f__default.default.template(Vs)),f__default.default.registerPartial("functions/isStringWithValue",f__default.default.template(Ks)),f__default.default.registerPartial("functions/isSuccess",f__default.default.template(Qs)),f__default.default.registerPartial("functions/resolve",f__default.default.template(Ws)),f__default.default.registerPartial("fetch/getHeaders",f__default.default.template(Ns)),f__default.default.registerPartial("fetch/getRequestBody",f__default.default.template(ws)),f__default.default.registerPartial("fetch/getResponseBody",f__default.default.template($s)),f__default.default.registerPartial("fetch/getResponseHeader",f__default.default.template(Is)),f__default.default.registerPartial("fetch/request",f__default.default.template(Ds)),f__default.default.registerPartial("fetch/sendRequest",f__default.default.template(Ms)),f__default.default.registerPartial("xhr/getHeaders",f__default.default.template(Js)),f__default.default.registerPartial("xhr/getRequestBody",f__default.default.template(Ys)),f__default.default.registerPartial("xhr/getResponseBody",f__default.default.template(Zs)),f__default.default.registerPartial("xhr/getResponseHeader",f__default.default.template(ei)),f__default.default.registerPartial("xhr/request",f__default.default.template(ti)),f__default.default.registerPartial("xhr/sendRequest",f__default.default.template(ni)),f__default.default.registerPartial("axios/getHeaders",f__default.default.template(Ts)),f__default.default.registerPartial("axios/getRequestBody",f__default.default.template(Rs)),f__default.default.registerPartial("axios/getResponseBody",f__default.default.template(As)),f__default.default.registerPartial("axios/getResponseHeader",f__default.default.template(vs)),f__default.default.registerPartial("axios/request",f__default.default.template(Es)),f__default.default.registerPartial("axios/sendRequest",f__default.default.template(qs)),f__default.default.registerPartial("angular/getHeaders",f__default.default.template(ds)),f__default.default.registerPartial("angular/getRequestBody",f__default.default.template(ys)),f__default.default.registerPartial("angular/getResponseBody",f__default.default.template(gs)),f__default.default.registerPartial("angular/getResponseHeader",f__default.default.template(hs)),f__default.default.registerPartial("angular/request",f__default.default.template(xs)),f__default.default.registerPartial("angular/sendRequest",f__default.default.template(Os)),e};var oi=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},si=e=>{let t=g();return !R(t)||e.prop!=="api-version"},ii=e=>{let t=g();if(t.services.operationId&&e.id)return j({input:Ue(e.id)});let r=e.path;return R(t)&&(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),j({input:`${e.method}-${r}`})},ai=e=>{let t=g();return R(t)?un(e.prop):e.prop};var pi=e=>`${e}-end`,On=e=>`${e}-length`,ci=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(pi(e)),getEntriesByName:e=>performance.getEntriesByName(On(e)),measure:e=>performance.measure(On(e),ci(e),pi(e)),start:e=>performance.mark(ci(e))},Lt=class{totalMeasure;constructor({totalMark:t}){this.totalMeasure=N.measure(t);}report({marks:t}){let r=Math.ceil(this.totalMeasure.duration*100)/100,s=this.totalMeasure.name;console.warn(`${s.substring(0,s.length-On("").length)}: ${r.toFixed(2)}ms`),t.forEach(n=>{let o=N.measure(n),a=Math.ceil(o.duration*100)/100,i=Math.ceil(o.duration/this.totalMeasure.duration*100*100)/100;console.warn(`${n}: ${a.toFixed(2)}ms (${i.toFixed(2)}%)`);});}};function mi(e){return {...e,models:e.models.map(t=>lp(t)),services:up(e.operations).map(fp),types:{}}}var lp=e=>({...e,$refs:e.$refs.filter((t,r,s)=>H(t,r,s)),enum:e.enum.filter((t,r,s)=>s.findIndex(n=>n.value===t.value)===r),enums:e.enums.filter((t,r,s)=>s.findIndex(n=>n.name===t.name)===r),imports:e.imports.filter((t,r,s)=>H(t,r,s)&&t!==e.name).sort($e)}),up=e=>{let t=g(),r=new Map;return e.forEach(s=>{(s.tags?.length&&(t.services.asClass||t.name)?s.tags.filter(H):["Default"]).forEach(o=>{let a={...s,service:gp(o)},i=r.get(a.service)||yp(a);i.$refs=[...i.$refs,...a.$refs],i.imports=[...i.imports,...a.imports],i.operations=[...i.operations,a],r.set(a.service,i);});}),Array.from(r.values())},fp=e=>{let t={...e};return t.operations=dp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(H).sort($e),t},dp=e=>{let t=new Map;return e.operations.map(r=>{let s={...r};s.imports.push(...s.parameters.flatMap(i=>i.imports));let n=s.responses.filter(i=>i.responseTypes.includes("success"));s.imports.push(...n.flatMap(i=>i.imports));let o=s.name,a=t.get(o)||0;return a>0&&(s.name=`${o}${a}`),t.set(o,a+1),s})},yp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),gp=e=>j({input:Ue(e),pascalCase:!0});var Op={biome:{args:e=>["format","--write",e],command:"biome",name:"Biome (Format)"},prettier:{args:e=>["--ignore-unknown",e,"--write","--ignore-path","./.prettierignore"],command:"prettier",name:"Prettier"}},bp={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},Pp=()=>{let e=g();if(e.output.format){let t=Op[e.output.format];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}if(e.output.lint){let t=bp[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}},Cp=()=>{let{client:e}=g();switch(e.name){case"legacy/angular":return console.log("\u2728 Creating Angular client");case"@hey-api/client-axios":case"legacy/axios":return console.log("\u2728 Creating Axios client");case"@hey-api/client-fetch":case"legacy/fetch":return console.log("\u2728 Creating Fetch client");case"legacy/node":return console.log("\u2728 Creating Node.js client");case"legacy/xhr":return console.log("\u2728 Creating XHR client")}},Tp=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},Rp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Ap=e=>(e.plugins??[]).map(r=>typeof r=="string"?xn[r]:{...xn[r.name],...r}),vp=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},Ep=e=>{let t={asClass:!1,export:!0,name:"{{name}}Service",operationId:!0,response:"body"};return typeof e.services=="boolean"?t.export=e.services:typeof e.services=="string"?t.include=e.services:t={...t,...e.services},t},qp=(e,t)=>{let r={dates:!1,enums:!1,export:!0,name:"preserve",tree:!t.export};return typeof e.types=="boolean"?r.export=e.types:typeof e.types=="string"?r.include=e.types:r={...r,...e.types},r},Sp=async e=>{let t;if(e.configFile){let n=e.configFile.split(".");t=n.slice(0,n.length-1).join(".");}let{config:r}=await c12.loadConfig({configFile:t,name:"openapi-ts"});return (Array.isArray(e)?e:Array.isArray(r)?r.map(n=>({...n,...e})):[{...r??{},...e}]).map(n=>{let{base:o,configFile:a="",debug:i=!1,dryRun:p=!1,exportCore:c=!0,experimental_parser:m=!1,input:u,name:d,request:h,useOptions:O=!0}=n;i&&console.warn("userConfig:",n);let x=Rp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!x.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let E=Tp(n);if(E.name&&!ls.includes(E.name))throw new Error("\u{1F6AB} invalid client - select a valid client value");O||console.warn("\u2757\uFE0F Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.dev/openapi-ts/migrating.html#v0-27-38");let C=Ap(n),ue=vp(n),ke=Ep(n),F=qp(n,ke);x.path=K__default.default.resolve(process.cwd(),x.path);let J=ur({base:o,client:E,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:R(E)?c:!1,input:u,name:d,output:x,plugins:C,request:h,schemas:ue,services:ke,types:F,useOptions:O});return i&&console.warn("config:",J),J})};async function kp(e){N.start("createClient"),N.start("config");let t=await Sp(e);N.end("config"),N.start("handlebars");let r=ri();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await us(a.input):a.input;if(N.end("openapi"),a.experimental_parser)N.start("experimental_parser"),Mo({spec:i}),N.end("experimental_parser");else {N.start("parser");let p=Do({config:{filterFn:{operation:oi,operationParameter:si},nameFn:{operation:ii,operationParameter:ai}},openApi:i}),c=mi(p);return N.end("parser"),Cp(),N.start("generator"),await es(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(Pp(),console.log("\u2728 Done! Your client is located in:",a.output.path)),N.end("postprocess"),c}},n=[],o=t.map(a=>s(a));for(let a of o){let i=await a();i&&n.push(i);}return N.end("createClient"),e.debug&&new Lt({totalMark:"createClient"}).report({marks:["config","openapi","handlebars","parser","generator","postprocess"]}),n}var Np=e=>e,nx={createClient:kp,defineConfig:Np};
1326
1326
 
1327
1327
  exports.createClient = kp;
1328
1328
  exports.default = nx;