UNPKG

@hey-api/openapi-ts

Version:

🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.

673 lines (582 loc) • 86.6 kB
import {createRequire}from'module';import {b,a,c,q,H,h,v,x,y,w,I,f,g,F as F$1,E,e,A,o,u,t,d,p as p$1,m as m$1,s,B,C as C$1,D,n,z}from'./chunk-YJGQGZQU.js';export{k as clientDefaultConfig,l as clientDefaultMeta,r as clientPluginHandler,m as compiler,i as defaultPaginationKeywords,G as defaultPlugins,j as definePluginConfig}from'./chunk-YJGQGZQU.js';import C from'ansi-colors';import lr from'color-support';import R from'node:path';import v$1 from'node:fs';import Ct from'typescript';import p from'handlebars';createRequire(import.meta.url); var Se=b((Xr,Ee)=>{Ee.exports=we;we.sync=qt;var ke=a("fs");function bt(e,n){var o=n.pathExt!==void 0?n.pathExt:process.env.PATHEXT;if(!o||(o=o.split(";"),o.indexOf("")!==-1))return true;for(var r=0;r<o.length;r++){var t=o[r].toLowerCase();if(t&&e.substr(-t.length).toLowerCase()===t)return true}return false}function Oe(e,n,o){return !e.isSymbolicLink()&&!e.isFile()?false:bt(n,o)}function we(e,n,o){ke.stat(e,function(r,t){o(r,r?false:Oe(t,e,n));});}function qt(e,n){return Oe(ke.statSync(e),e,n)}});var je=b((Qr,Be)=>{Be.exports=De;De.sync=At;var He=a("fs");function De(e,n,o){He.stat(e,function(r,t){o(r,r?false:Ie(t,n));});}function At(e,n){return Ie(He.statSync(e),n)}function Ie(e,n){return e.isFile()&&Tt(e,n)}function Tt(e,n){var o=e.mode,r=e.uid,t=e.gid,s=n.uid!==void 0?n.uid:process.getuid&&process.getuid(),a=n.gid!==void 0?n.gid:process.getgid&&process.getgid(),i=parseInt("100",8),u=parseInt("010",8),l=parseInt("001",8),c=i|u,f=o&l||o&u&&t===a||o&i&&r===s||o&c&&s===0;return f}});var Ne=b((Yr,$e)=>{a("fs");var _;process.platform==="win32"||global.TESTING_WINDOWS?_=Se():_=je();$e.exports=V;V.sync=kt;function V(e,n,o){if(typeof n=="function"&&(o=n,n={}),!o){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,t){V(e,n||{},function(s,a){s?t(s):r(a);});})}_(e,n||{},function(r,t){r&&(r.code==="EACCES"||n&&n.ignoreErrors)&&(r=null,t=false),o(r,t);});}function kt(e,n){try{return _.sync(e,n||{})}catch(o){if(n&&n.ignoreErrors||o.code==="EACCES")return false;throw o}}});var Ve=b((Zr,Ue)=>{var w=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Fe=a("path"),Ot=w?";":":",_e=Ne(),Le=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Me=(e,n)=>{let o=n.colon||Ot,r=e.match(/\//)||w&&e.match(/\\/)?[""]:[...w?[process.cwd()]:[],...(n.path||process.env.PATH||"").split(o)],t=w?n.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=w?t.split(o):[""];return w&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:r,pathExt:s,pathExtExe:t}},We=(e,n,o)=>{typeof n=="function"&&(o=n,n={}),n||(n={});let{pathEnv:r,pathExt:t,pathExtExe:s}=Me(e,n),a=[],i=l=>new Promise((c,f)=>{if(l===r.length)return n.all&&a.length?c(a):f(Le(e));let d=r[l],A=/^".*"$/.test(d)?d.slice(1,-1):d,q=Fe.join(A,e),k=!A&&/^\.[\\\/]/.test(e)?e.slice(0,2)+q:q;c(u(k,l,0));}),u=(l,c,f)=>new Promise((d,A)=>{if(f===t.length)return d(i(c+1));let q=t[f];_e(l+q,{pathExt:s},(k,H)=>{if(!k&&H)if(n.all)a.push(l+q);else return d(l+q);return d(u(l,c,f+1))});});return o?i(0).then(l=>o(null,l),o):i(0)},wt=(e,n)=>{n=n||{};let{pathEnv:o,pathExt:r,pathExtExe:t}=Me(e,n),s=[];for(let a=0;a<o.length;a++){let i=o[a],u=/^".*"$/.test(i)?i.slice(1,-1):i,l=Fe.join(u,e),c=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;for(let f=0;f<r.length;f++){let d=c+r[f];try{if(_e.sync(d,{pathExt:t}))if(n.all)s.push(d);else return d}catch{}}}if(n.all&&s.length)return s;if(n.nothrow)return null;throw Le(e)};Ue.exports=We;We.sync=wt;});var ze=b((eo,G)=>{var Ge=(e={})=>{let n=e.env||process.env;return (e.platform||process.platform)!=="win32"?"PATH":Object.keys(n).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};G.exports=Ge;G.exports.default=Ge;});var Je=b((no,Qe)=>{var Ke=a("path"),Et=Ve(),St=ze();function Xe(e,n){let o=e.options.env||process.env,r=process.cwd(),t=e.options.cwd!=null,s=t&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd);}catch{}let a;try{a=Et.sync(e.command,{path:o[St({env:o})],pathExt:n?Ke.delimiter:void 0});}catch{}finally{s&&process.chdir(r);}return a&&(a=Ke.resolve(t?e.options.cwd:"",a)),a}function Ht(e){return Xe(e)||Xe(e,true)}Qe.exports=Ht;});var Ye=b((to,K)=>{var z=/([()\][%!^"`<>&|;, *?])/g;function Dt(e){return e=e.replace(z,"^$1"),e}function It(e,n){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(z,"^$1"),n&&(e=e.replace(z,"^$1")),e}K.exports.command=Dt;K.exports.argument=It;});var en=b((ro,Ze)=>{Ze.exports=/^#!(.*)/;});var tn=b((oo,nn)=>{var Bt=en();nn.exports=(e="")=>{let n=e.match(Bt);if(!n)return null;let[o,r]=n[0].replace(/#! ?/,"").split(" "),t=o.split("/").pop();return t==="env"?r:r?`${t} ${r}`:t};});var on=b((so,rn)=>{var X=a("fs"),jt=tn();function $t(e){let o=Buffer.alloc(150),r;try{r=X.openSync(e,"r"),X.readSync(r,o,0,150,0),X.closeSync(r);}catch{}return jt(o.toString())}rn.exports=$t;});var un=b((io,ln)=>{var Nt=a("path"),sn=Je(),an=Ye(),Ft=on(),_t=process.platform==="win32",Lt=/\.(?:com|exe)$/i,Mt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Wt(e){e.file=sn(e);let n=e.file&&Ft(e.file);return n?(e.args.unshift(e.file),e.command=n,sn(e)):e.file}function Ut(e){if(!_t)return e;let n=Wt(e),o=!Lt.test(n);if(e.options.forceShell||o){let r=Mt.test(n);e.command=Nt.normalize(e.command),e.command=an.command(e.command),e.args=e.args.map(s=>an.argument(s,r));let t=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${t}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=true;}return e}function Vt(e,n,o){n&&!Array.isArray(n)&&(o=n,n=null),n=n?n.slice(0):[],o=Object.assign({},o);let r={command:e,args:n,options:o,file:void 0,original:{command:e,args:n}};return o.shell?r:Ut(r)}ln.exports=Vt;});var fn=b((ao,cn)=>{var Q=process.platform==="win32";function J(e,n){return Object.assign(new Error(`${n} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${n} ${e.command}`,path:e.command,spawnargs:e.args})}function Gt(e,n){if(!Q)return;let o=e.emit;e.emit=function(r,t){if(r==="exit"){let s=pn(t,n);if(s)return o.call(e,"error",s)}return o.apply(e,arguments)};}function pn(e,n){return Q&&e===1&&!n.file?J(n.original,"spawn"):null}function zt(e,n){return Q&&e===1&&!n.file?J(n.original,"spawnSync"):null}cn.exports={hookChildProcess:Gt,verifyENOENT:pn,verifyENOENTSync:zt,notFoundError:J};});var gn=b((lo,E)=>{var mn=a("child_process"),Y=un(),Z=fn();function dn(e,n,o){let r=Y(e,n,o),t=mn.spawn(r.command,r.args,r.options);return Z.hookChildProcess(t,r),t}function Kt(e,n,o){let r=Y(e,n,o),t=mn.spawnSync(r.command,r.args,r.options);return t.error=t.error||Z.verifyENOENTSync(t.status,r),t}E.exports=dn;E.exports.spawn=dn;E.exports.sync=Kt;E.exports._parse=Y;E.exports._enoent=Z;});var F=e=>{switch(e){case "legacy/angular":return "AngularHttpRequest";case "legacy/axios":return "AxiosHttpRequest";case "legacy/fetch":return "FetchHttpRequest";case "legacy/node":return "NodeHttpRequest";case "legacy/xhr":return "XHRHttpRequest";default:return ""}};var xe=async(e$1,n$1,o,r)=>{let t=e(),s=d(t),a=r.client({$config:t,...o,httpRequest:F(s.name),models:D(o.models),services:D(o.services)});g(t)&&(n(n$1),v$1.writeFileSync(R.resolve(n$1,`${g(t)}.ts`),a));};var Ce=async(e$1,n,o)=>{let r=e();if(r.exportCore){let t=d(r),s={httpRequest:F(t.name),server:r.base!==void 0?r.base:n.server,version:n.version};if(v$1.rmSync(R.resolve(e$1),{force:true,recursive:true}),v$1.mkdirSync(R.resolve(e$1),{recursive:true}),await v$1.writeFileSync(R.resolve(e$1,"OpenAPI.ts"),o.core.settings({$config:r,...s})),await v$1.writeFileSync(R.resolve(e$1,"ApiError.ts"),o.core.apiError({$config:r,...s})),await v$1.writeFileSync(R.resolve(e$1,"ApiRequestOptions.ts"),o.core.apiRequestOptions({$config:r,...s})),await v$1.writeFileSync(R.resolve(e$1,"ApiResult.ts"),o.core.apiResult({$config:r,...s})),t.name!=="legacy/angular"&&await v$1.writeFileSync(R.resolve(e$1,"CancelablePromise.ts"),o.core.cancelablePromise({$config:r,...s})),await v$1.writeFileSync(R.resolve(e$1,"request.ts"),o.core.request({$config:r,...s})),g(r)&&(await v$1.writeFileSync(R.resolve(e$1,"BaseHttpRequest.ts"),o.core.baseHttpRequest({$config:r,...s})),await v$1.writeFileSync(R.resolve(e$1,`${s.httpRequest}.ts`),o.core.httpRequest({$config:r,...s}))),r.request){let a=R.resolve(process.cwd(),r.request);if(!await v$1.existsSync(a))throw new Error(`Custom request file "${a}" does not exists`);await v$1.copyFileSync(a,R.resolve(e$1,"request.ts"));}}};var be=({files:e$1})=>{let n=e();e$1.index=new s({dir:n.output.path,id:"index",name:"index.ts"}),g(n)&&e$1.index.add(m$1.exportNamedDeclaration({exports:g(n),module:`./${g(n)}`})),n.exportCore&&(e$1.index.add(m$1.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),n.plugins["@hey-api/sdk"]?.config.response==="response"&&e$1.index.add(m$1.exportNamedDeclaration({exports:{asType:true,name:"ApiResult"},module:"./core/ApiResult"})),g(n)&&e$1.index.add(m$1.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),d(n).name!=="legacy/angular"&&e$1.index.add(m$1.exportNamedDeclaration({exports:["CancelablePromise","CancelError"],module:"./core/CancelablePromise"})),e$1.index.add(m$1.exportNamedDeclaration({exports:["OpenAPI",{asType:true,name:"OpenAPIConfig"}],module:"./core/OpenAPI"}))),Object.keys(e$1).sort().forEach(o=>{let r=e$1[o];o==="index"||r.isEmpty()||r.exportFromIndex&&e$1.index.add(m$1.exportAllDeclaration({module:`./${r.nameWithoutExtension()}`}));});};var qe=async({client:e$1,openApi:n,templates:o$1})=>{let r=e(),t$1=n;if(e$1){if(r.plugins["@hey-api/sdk"]?.config.include&&r.plugins["@hey-api/sdk"].config.asClass){let l=new RegExp(r.plugins["@hey-api/sdk"].config.include);e$1.services=e$1.services.filter(c=>l.test(c.name));}if(r.plugins["@hey-api/typescript"]?.config.include){let l=new RegExp(r.plugins["@hey-api/typescript"].config.include);e$1.models=e$1.models.filter(c=>l.test(c.name));}}let s$1=R.resolve(r.output.path);r.output.clean&&o(s$1);let a=u(t(r.output.tsConfigPath)),i=d(r);!f(r)&&"bundle"in i.config&&i.config.bundle&&p$1({outputPath:s$1,plugin:i,tsConfig:a}),await xe(t$1,s$1,e$1,o$1),await Ce(R.resolve(r.output.path,"core"),e$1,o$1);let u$1={};for(let l of r.pluginOrder){let c=r.plugins[l],f=(c.output??"").split("/"),d=R.resolve(r.output.path,...f.slice(0,f.length-1));u$1[c.name]=new s({dir:d,id:`legacy-unused-${c.name}`,name:`${f[f.length-1]}.ts`}),c.handlerLegacy?.({client:e$1,files:u$1,openApi:t$1,plugin:c});}be({files:u$1}),Object.entries(u$1).forEach(([l,c])=>{r.dryRun||(l==="index"?c.write(` `,a):c.write(` `,a));});};var Ae=async({context:e})=>{let n=R.resolve(e.config.output.path);e.config.output.clean&&o(n);let o$1=u(t(e.config.output.tsConfigPath)),r=o$1?.options.moduleResolution===Ct.ModuleResolutionKind.NodeNext,t$1=d(e.config);"bundle"in t$1.config&&t$1.config.bundle&&p$1({outputPath:n,plugin:t$1,tsConfig:o$1});for(let s of e.registerPlugins())await s.run();if(!e.config.dryRun){let s=e.createFile({id:"_index",path:"index"});for(let a of Object.values(e.files))if(a.nameWithoutExtension()!==s.nameWithoutExtension()){if(!a.isEmpty()&&a.exportFromIndex&&e.config.output.indexFile){let u=s.relativePathToFile({context:e,id:a.id});r&&(u.startsWith("./")||u.startsWith("../"))&&(u==="./client"?u="./client/index.js":u=`${u}.js`),s.add(m$1.exportAllDeclaration({module:u}));}a.write(` `,o$1);}e.config.output.indexFile&&s.write(` `,o$1);}};var Te=({patchOptions:e,spec:n})=>{if(!e)return;let o=n;if("swagger"in o){if(e.version&&o.swagger&&(o.swagger=typeof e.version=="string"?e.version:e.version(o.swagger)),e.meta&&o.info&&e.meta(o.info),e.schemas&&o.definitions)for(let r in e.schemas){let t=o.definitions[r];if(!t||typeof t!="object")continue;let s=e.schemas[r];s(t);}if(e.operations&&o.paths)for(let r in e.operations){let[t,s]=r.split(" ");if(!t||!s)continue;let a=o.paths[s];if(!a)continue;let i=a[t.toLocaleLowerCase()]||a[t.toLocaleUpperCase()];if(!i||typeof i!="object")continue;let u=e.operations[r];u(i);}return}if(e.version&&o.openapi&&(o.openapi=typeof e.version=="string"?e.version:e.version(o.openapi)),e.meta&&o.info&&e.meta(o.info),o.components){if(e.schemas&&o.components.schemas)for(let r in e.schemas){let t=o.components.schemas[r];if(!t||typeof t!="object")continue;let s=e.schemas[r];s(t);}if(e.parameters&&o.components.parameters)for(let r in e.parameters){let t=o.components.parameters[r];if(!t||typeof t!="object")continue;let s=e.parameters[r];s(t);}if(e.requestBodies&&o.components.requestBodies)for(let r in e.requestBodies){let t=o.components.requestBodies[r];if(!t||typeof t!="object")continue;let s=e.requestBodies[r];s(t);}if(e.responses&&o.components.responses)for(let r in e.responses){let t=o.components.responses[r];if(!t||typeof t!="object")continue;let s=e.responses[r];s(t);}}if(e.operations&&o.paths)for(let r in e.operations){let[t,s]=r.split(" ");if(!t||!s)continue;let a=o.paths[s];if(!a)continue;let i=a[t.toLocaleLowerCase()]||a[t.toLocaleUpperCase()];if(!i||typeof i!="object")continue;let u=e.operations[r];u(i);}};var ee=c(gn(),1),Xt={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"}},Qt={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"},oxlint:{args:e=>["--fix",e],command:"oxlint",name:"oxlint"}},yn=({config:e})=>{if(e.output.format){let n=Xt[e.output.format];console.log(`\u2728 Running ${n.name}`),(0, ee.sync)(n.command,n.args(e.output.path));}if(e.output.lint){let n=Qt[e.output.lint];console.log(`\u2728 Running ${n.name}`),(0, ee.sync)(n.command,n.args(e.output.path));}};var hn=e=>`${e}-end`,ne=e=>`${e}-length`,vn=e=>`${e}-start`,m={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(hn(e)),getEntriesByName:e=>performance.getEntriesByName(ne(e)),measure:e=>performance.measure(ne(e),vn(e),hn(e)),start:e=>performance.mark(vn(e))},L=class{totalMeasure;constructor({totalMark:n}){this.totalMeasure=m.measure(n);}report({marks:n}){let o=Math.ceil(this.totalMeasure.duration*100)/100,r=this.totalMeasure.name;console.warn(`${r.substring(0,r.length-ne("").length)}: ${o.toFixed(2)}ms`),n.forEach(t=>{try{let s=m.measure(t),a=Math.ceil(s.duration*100)/100,i=Math.ceil(s.duration/this.totalMeasure.duration*100*100)/100;console.warn(`${t}: ${a.toFixed(2)}ms (${i.toFixed(2)}%)`);}catch{}});}};function Rn(e,n){return {...e,config:n,models:e.models.map(o=>Jt(o)),services:Yt(e.operations).map(Zt),types:{}}}var Jt=e=>({...e,$refs:e.$refs.filter((n,o,r)=>B(n,o,r)),enum:e.enum.filter((n,o,r)=>r.findIndex(t=>t.value===n.value)===o),enums:e.enums.filter((n,o,r)=>r.findIndex(t=>t.name===n.name)===o),imports:e.imports.filter((n,o,r)=>B(n,o,r)&&n!==e.name).sort(C$1)}),Yt=e$1=>{let n=e(),o=new Map;return e$1.forEach(r=>{(r.tags?.length&&(n.plugins["@hey-api/sdk"]?.config.asClass||g(n))?r.tags.filter(B):["Default"]).forEach(s=>{let a={...r,service:tr(s)},i=o.get(a.service)||nr(a);i.$refs=[...i.$refs,...a.$refs],i.imports=[...i.imports,...a.imports],i.operations=[...i.operations,a],o.set(a.service,i);});}),Array.from(o.values())},Zt=e=>{let n={...e};return n.operations=er(n),n.operations.forEach(o=>{n.imports.push(...o.imports);}),n.imports=n.imports.filter(B).sort(C$1),n},er=e=>{let n=new Map;return e.operations.map(o=>{let r={...o};r.imports.push(...r.parameters.flatMap(i=>i.imports));let t=r.responses.filter(i=>i.responseTypes.includes("success"));r.imports.push(...t.flatMap(i=>i.imports));let s=r.name,a=n.get(s)||0;return a>0&&(r.name=`${s}${a}`),n.set(s,a+1),r})},nr=e=>({$refs:[],imports:[],name:e.service,operations:[]}),tr=e=>q({case:"PascalCase",value:z(e)});var te=e=>e.startsWith("https://get.heyapi.dev"),or=e=>{let n={path:""};if(e.path&&(typeof e.path!="string"||!te(e.path)))return n.path=e.path,n;let[o,r]=e.path.split("?"),s=(r||"").split("&").map(P=>P.split("=")),a=o||"";a.endsWith("/")&&(a=a.slice(0,a.length-1));let[,i]=a.split("://"),[u,l,c]=(i||"").split("/");n.organization=l||e.organization,n.project=c||e.project;let f=[],d="api_key";n.api_key=s.find(([P])=>P===d)?.[1]||e.api_key||process.env.HEY_API_TOKEN,n.api_key&&f.push(`${d}=${n.api_key}`);let A="branch";n.branch=s.find(([P])=>P===A)?.[1]||e.branch,n.branch&&f.push(`${A}=${n.branch}`);let q="commit_sha";n.commit_sha=s.find(([P])=>P===q)?.[1]||e.commit_sha,n.commit_sha&&f.push(`${q}=${n.commit_sha}`);let k="tags";n.tags=s.find(([P])=>P===k)?.[1]?.split(",")||e.tags,n.tags?.length&&f.push(`${k}=${n.tags.join(",")}`);let H="version";if(n.version=s.find(([P])=>P===H)?.[1]||e.version,n.version&&f.push(`${H}=${n.version}`),!n.organization)throw new Error("missing organization - from which Hey API Platform organization do you want to generate your output?");if(!n.project)throw new Error("missing project - from which Hey API Platform project do you want to generate your output?");let oe=f.join("&"),se=u||"get.heyapi.dev",ie=se.startsWith("localhost"),ae=[ie?"http":"https",se].join("://"),le=ie?[ae,"v1","get",n.organization,n.project].join("/"):[ae,n.organization,n.project].join("/");return n.path=oe?`${le}?${oe}`:le,n},Pn=e=>{let n=C.cyan("Generating from");if(typeof e.path=="string"){let o=te(e.path)?`${e.organization??""}/${e.project??""}`:e.path;console.log(`\u23F3 ${n} ${o}`),te(e.path)&&(e.branch&&console.log(`${C.gray("branch:")} ${C.green(e.branch)}`),e.commit_sha&&console.log(`${C.gray("commit:")} ${C.green(e.commit_sha)}`),e.tags?.length&&console.log(`${C.gray("tags:")} ${C.green(e.tags.join(", "))}`),e.version&&console.log(`${C.gray("version:")} ${C.green(e.version)}`));}else console.log(`\u23F3 ${n} raw OpenAPI specification`);},re=async({config:e,templates:n,watch:o})=>{let r=or(e.input),{timeout:t}=e.input.watch,s=o||{headers:new Headers};e.logs.level!=="silent"&&!o&&Pn(r),m.start("spec");let{data:a,error:i,response:u}=await I({fetchOptions:e.input.fetch,inputPath:r.path,timeout:t,watch:s});if(m.end("spec"),i&&!o)throw new Error(`Request failed with status ${u.status}: ${u.statusText}`);let l,c;if(a){if(e.logs.level!=="silent"&&o&&(console.clear(),Pn(r)),m.start("input.patch"),Te({patchOptions:e.parser.patch,spec:a}),m.end("input.patch"),m.start("parser"),e.experimentalParser&&!f(e)&&!g(e)&&(c=F$1({config:e,spec:a})),!c){let f=E({openApi:a});l=Rn(f,e);}if(m.end("parser"),m.start("generator"),c?await Ae({context:c}):l&&await qe({client:l,openApi:a,templates:n}),m.end("generator"),m.start("postprocess"),!e.dryRun&&(yn({config:e}),e.logs.level!=="silent")){let f=process.env.INIT_CWD?`./${R.relative(process.env.INIT_CWD,e.output.path)}`:e.output.path;console.log(`${C.green("\u{1F680} Done!")} Your output is in ${C.cyanBright(f)}`);}m.end("postprocess");}return e.input.watch.enabled&&typeof r.path=="string"&&setTimeout(()=>{re({config:e,templates:n,watch:s});},e.input.watch.interval),c||l};var xn={1:function(e,n,o,r,t){return `import { NgModule} from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; import { AngularHttpRequest } from './core/AngularHttpRequest'; import { BaseHttpRequest } from './core/BaseHttpRequest'; import type { OpenAPIConfig } from './core/OpenAPI'; import { OpenAPI } from './core/OpenAPI'; import { Interceptors } from './core/OpenAPI'; `},3:function(e,n,o,r,t){var s,a=e.strict,i=e.lambda;return `import type { BaseHttpRequest } from './core/BaseHttpRequest'; import type { OpenAPIConfig } from './core/OpenAPI'; import { Interceptors } from './core/OpenAPI'; import { `+((s=i(a(n,"httpRequest",{start:{line:14,column:12},end:{line:14,column:23}}),n))!=null?s:"")+" } from './core/"+((s=i(a(n,"httpRequest",{start:{line:14,column:45},end:{line:14,column:56}}),n))!=null?s:"")+`'; `},5:function(e,n,o,r,t){var s,a=e.lookupProperty||function(i,u){if(Object.prototype.hasOwnProperty.call(i,u))return i[u]};return (s=a(o,"each").call(n??(e.nullContext||{}),a(n,"services"),{name:"each",hash:{},fn:e.program(6,t,0),inverse:e.noop,data:t,loc:{start:{line:18,column:0},end:{line:20,column:9}}}))!=null?s:""},6:function(e,n,o,r,t){var s,a=e.lookupProperty||function(i,u){if(Object.prototype.hasOwnProperty.call(i,u))return i[u]};return "import { "+((s=a(o,"transformServiceName").call(n??(e.nullContext||{}),a(n,"name"),{name:"transformServiceName",hash:{},data:t,loc:{start:{line:19,column:9},end:{line:19,column:40}}}))!=null?s:"")+` } from './sdk.gen'; `},8:function(e,n,o,r,t){var s,a=e.strict,i=e.lambda,u=e.lookupProperty||function(l,c){if(Object.prototype.hasOwnProperty.call(l,c))return l[c]};return `@NgModule({ imports: [HttpClientModule], providers: [ { provide: OpenAPI, useValue: { BASE: OpenAPI?.BASE ?? '`+((s=i(a(n,"server",{start:{line:30,column:31},end:{line:30,column:37}}),n))!=null?s:"")+`', VERSION: OpenAPI?.VERSION ?? '`+((s=i(a(n,"version",{start:{line:31,column:37},end:{line:31,column:44}}),n))!=null?s:"")+`', WITH_CREDENTIALS: OpenAPI?.WITH_CREDENTIALS ?? false, CREDENTIALS: OpenAPI?.CREDENTIALS ?? 'include', TOKEN: OpenAPI?.TOKEN, USERNAME: OpenAPI?.USERNAME, PASSWORD: OpenAPI?.PASSWORD, HEADERS: OpenAPI?.HEADERS, ENCODE_PATH: OpenAPI?.ENCODE_PATH, interceptors: { response: OpenAPI?.interceptors?.response ?? new Interceptors(), }, } as OpenAPIConfig, }, { provide: BaseHttpRequest, useClass: AngularHttpRequest, }, `+((s=u(o,"each").call(n??(e.nullContext||{}),u(n,"services"),{name:"each",hash:{},fn:e.program(9,t,0),inverse:e.noop,data:t,loc:{start:{line:48,column:2},end:{line:50,column:11}}}))!=null?s:"")+` ] }) export class `+((s=i(a(u(u(t,"root"),"$config"),"name",{start:{line:53,column:16},end:{line:53,column:34}}),n))!=null?s:"")+` {} `},9:function(e,n,o,r,t){var s,a=e.lookupProperty||function(i,u){if(Object.prototype.hasOwnProperty.call(i,u))return i[u]};return " "+((s=a(o,"transformServiceName").call(n??(e.nullContext||{}),a(n,"name"),{name:"transformServiceName",hash:{},data:t,loc:{start:{line:49,column:2},end:{line:49,column:33}}}))!=null?s:"")+`, `},11:function(e,n,o,r,t){var s,a=e.strict,i=e.lambda,u=n??(e.nullContext||{}),l=e.lookupProperty||function(c,f){if(Object.prototype.hasOwnProperty.call(c,f))return c[f]};return `type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest; export class `+((s=i(a(l(l(t,"root"),"$config"),"name",{start:{line:57,column:16},end:{line:57,column:34}}),n))!=null?s:"")+` { `+((s=l(o,"each").call(u,l(n,"services"),{name:"each",hash:{},fn:e.program(12,t,0),inverse:e.noop,data:t,loc:{start:{line:59,column:1},end:{line:61,column:10}}}))!=null?s:"")+` public readonly request: BaseHttpRequest; constructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = `+((s=i(a(n,"httpRequest",{start:{line:65,column:87},end:{line:65,column:98}}),n))!=null?s:"")+`) { this.request = new HttpRequest({ BASE: config?.BASE ?? '`+((s=i(a(n,"server",{start:{line:67,column:29},end:{line:67,column:35}}),n))!=null?s:"")+`', VERSION: config?.VERSION ?? '`+((s=i(a(n,"version",{start:{line:68,column:35},end:{line:68,column:42}}),n))!=null?s:"")+`', WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false, CREDENTIALS: config?.CREDENTIALS ?? 'include', TOKEN: config?.TOKEN, USERNAME: config?.USERNAME, PASSWORD: config?.PASSWORD, HEADERS: config?.HEADERS, ENCODE_PATH: config?.ENCODE_PATH, interceptors: { request: config?.interceptors?.request ?? new Interceptors(), response: config?.interceptors?.response ?? new Interceptors(), }, }); `+((s=l(o,"each").call(u,l(n,"services"),{name:"each",hash:{},fn:e.program(14,t,0),inverse:e.noop,data:t,loc:{start:{line:82,column:2},end:{line:84,column:11}}}))!=null?s:"")+` } } `},12:function(e,n,o,r,t){var s,a=n??(e.nullContext||{}),i=e.lookupProperty||function(u,l){if(Object.prototype.hasOwnProperty.call(u,l))return u[l]};return " public readonly "+((s=i(o,"camelCase").call(a,i(n,"name"),{name:"camelCase",hash:{},data:t,loc:{start:{line:60,column:17},end:{line:60,column:37}}}))!=null?s:"")+": "+((s=i(o,"transformServiceName").call(a,i(n,"name"),{name:"transformServiceName",hash:{},data:t,loc:{start:{line:60,column:39},end:{line:60,column:70}}}))!=null?s:"")+`; `},14:function(e,n,o,r,t){var s,a=n??(e.nullContext||{}),i=e.lookupProperty||function(u,l){if(Object.prototype.hasOwnProperty.call(u,l))return u[l]};return " this."+((s=i(o,"camelCase").call(a,i(n,"name"),{name:"camelCase",hash:{},data:t,loc:{start:{line:83,column:7},end:{line:83,column:27}}}))!=null?s:"")+" = new "+((s=i(o,"transformServiceName").call(a,i(n,"name"),{name:"transformServiceName",hash:{},data:t,loc:{start:{line:83,column:34},end:{line:83,column:65}}}))!=null?s:"")+`(this.request); `},compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){var s,a=n??(e.nullContext||{}),i=e.lookupProperty||function(u,l){if(Object.prototype.hasOwnProperty.call(u,l))return u[l]};return ((s=i(o,"equals").call(a,i(i(i(i(t,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(1,t,0),inverse:e.program(3,t,0),data:t,loc:{start:{line:1,column:0},end:{line:15,column:11}}}))!=null?s:"")+` `+((s=i(o,"if").call(a,i(n,"services"),{name:"if",hash:{},fn:e.program(5,t,0),inverse:e.noop,data:t,loc:{start:{line:17,column:0},end:{line:21,column:7}}}))!=null?s:"")+` `+((s=i(o,"equals").call(a,i(i(i(i(t,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(8,t,0),inverse:e.program(11,t,0),data:t,loc:{start:{line:23,column:0},end:{line:87,column:11}}}))!=null?s:"")},useData:true};var Cn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getHeaders = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Observable<HttpHeaders> => { return forkJoin({ // @ts-ignore token: resolve(options, config.TOKEN), // @ts-ignore username: resolve(options, config.USERNAME), // @ts-ignore password: resolve(options, config.PASSWORD), // @ts-ignore additionalHeaders: resolve(options, config.HEADERS), }).pipe( map(({ token, username, password, additionalHeaders }) => { const headers = Object.entries({ Accept: 'application/json', ...additionalHeaders, ...options.headers, }) .filter(([, value]) => value !== undefined && value !== null) .reduce((headers, [key, value]) => ({ ...headers, [key]: String(value), }), {} as Record<string, string>); if (isStringWithValue(token)) { headers['Authorization'] = \`Bearer \${token}\`; } if (isStringWithValue(username) && isStringWithValue(password)) { const credentials = base64(\`\${username}:\${password}\`); headers['Authorization'] = \`Basic \${credentials}\`; } if (options.body !== undefined) { if (options.mediaType) { headers['Content-Type'] = options.mediaType; } else if (isBlob(options.body)) { headers['Content-Type'] = options.body.type || 'application/octet-stream'; } else if (isString(options.body)) { headers['Content-Type'] = 'text/plain'; } else if (!isFormData(options.body)) { headers['Content-Type'] = 'application/json'; } } return new HttpHeaders(headers); }), ); };`},useData:true};var bn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getRequestBody = (options: ApiRequestOptions): unknown => { if (options.body) { if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) { return JSON.stringify(options.body); } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) { return options.body; } else { return JSON.stringify(options.body); } } return undefined; };`},useData:true};var qn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getResponseBody = <T>(response: HttpResponse<T>): T | undefined => { if (response.status !== 204 && response.body !== null) { return response.body; } return undefined; };`},useData:true};var An={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getResponseHeader = <T>(response: HttpResponse<T>, responseHeader?: string): string | undefined => { if (responseHeader) { const value = response.headers.get(responseHeader); if (isString(value)) { return value; } } return undefined; };`},useData:true};var Tn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){var s,a=e.lookupProperty||function(i,u){if(Object.prototype.hasOwnProperty.call(i,u))return i[u]};return `import { HttpClient, HttpHeaders } from '@angular/common/http'; import type { HttpResponse, HttpErrorResponse } from '@angular/common/http'; import { forkJoin, of, throwError } from 'rxjs'; import { catchError, map, switchMap } from 'rxjs/operators'; import type { Observable } from 'rxjs'; import { ApiError } from './ApiError'; import type { ApiRequestOptions } from './ApiRequestOptions'; import type { ApiResult } from './ApiResult'; import type { OpenAPIConfig } from './OpenAPI'; `+((s=e.invokePartial(a(r,"functions/isString"),n,{name:"functions/isString",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/isStringWithValue"),n,{name:"functions/isStringWithValue",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/isBlob"),n,{name:"functions/isBlob",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/isFormData"),n,{name:"functions/isFormData",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/base64"),n,{name:"functions/base64",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/getQueryString"),n,{name:"functions/getQueryString",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/getUrl"),n,{name:"functions/getUrl",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/getFormData"),n,{name:"functions/getFormData",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/resolve"),n,{name:"functions/resolve",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"angular/getHeaders"),n,{name:"angular/getHeaders",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"angular/getRequestBody"),n,{name:"angular/getRequestBody",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"angular/sendRequest"),n,{name:"angular/sendRequest",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"angular/getResponseHeader"),n,{name:"angular/getResponseHeader",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"angular/getResponseBody"),n,{name:"angular/getResponseBody",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(a(r,"functions/catchErrorCodes"),n,{name:"functions/catchErrorCodes",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` /** * Request method * @param config The OpenAPI configuration object * @param http The Angular HTTP client * @param options The request options from the service * @returns Observable<T> * @throws ApiError */ export const request = <T>(config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions<T>): Observable<T> => { const url = getUrl(config, options); const formData = getFormData(options); const body = getRequestBody(options); return getHeaders(config, options).pipe( switchMap(headers => { return sendRequest<T>(config, options, http, url, body, formData, headers); }), switchMap(async response => { for (const fn of config.interceptors.response._fns) { response = await fn(response); } const responseBody = getResponseBody(response); const responseHeader = getResponseHeader(response, options.responseHeader); let transformedBody = responseBody; if (options.responseTransformer && response.ok) { transformedBody = await options.responseTransformer(responseBody) } return { url, ok: response.ok, status: response.status, statusText: response.statusText, body: responseHeader ?? transformedBody, } as ApiResult; }), catchError((error: HttpErrorResponse) => { if (!error.status) { return throwError(() => error); } return of({ url, ok: error.ok, status: error.status, statusText: error.statusText, body: error.error ?? error.statusText, } as ApiResult); }), map(result => { catchErrorCodes(options, result); return result.body as T; }), catchError((error: ApiError) => { return throwError(() => error); }), ); };`},usePartial:true,useData:true};var kn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const sendRequest = <T>( config: OpenAPIConfig, options: ApiRequestOptions<T>, http: HttpClient, url: string, body: unknown, formData: FormData | undefined, headers: HttpHeaders ): Observable<HttpResponse<T>> => { return http.request<T>(options.method, url, { headers, body: body ?? formData, withCredentials: config.WITH_CREDENTIALS, observe: 'response', }); };`},useData:true};var On={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `import type { ApiRequestOptions } from './ApiRequestOptions'; import type { ApiResult } from './ApiResult'; export class ApiError extends Error { public readonly url: string; public readonly status: number; public readonly statusText: string; public readonly body: unknown; public readonly request: ApiRequestOptions; constructor(request: ApiRequestOptions, response: ApiResult, message: string) { super(message); this.name = 'ApiError'; this.url = response.url; this.status = response.status; this.statusText = response.statusText; this.body = response.body; this.request = request; } }`},useData:true};var wn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export type ApiRequestOptions<T = unknown> = { readonly body?: any; readonly cookies?: Record<string, unknown>; readonly errors?: Record<number | string, string>; readonly formData?: Record<string, unknown> | any[] | Blob | File; readonly headers?: Record<string, unknown>; readonly mediaType?: string; readonly method: | 'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT'; readonly path?: Record<string, unknown>; readonly query?: Record<string, unknown>; readonly responseHeader?: string; readonly responseTransformer?: (data: unknown) => Promise<T>; readonly url: string; };`},useData:true};var En={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export type ApiResult<TData = any> = { readonly body: TData; readonly ok: boolean; readonly status: number; readonly statusText: string; readonly url: string; };`},useData:true};var Sn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Record<string, string>> => { const [token, username, password, additionalHeaders] = await Promise.all([ // @ts-ignore resolve(options, config.TOKEN), // @ts-ignore resolve(options, config.USERNAME), // @ts-ignore resolve(options, config.PASSWORD), // @ts-ignore resolve(options, config.HEADERS), ]); const headers = Object.entries({ Accept: 'application/json', ...additionalHeaders, ...options.headers, }) .filter(([, value]) => value !== undefined && value !== null) .reduce((headers, [key, value]) => ({ ...headers, [key]: String(value), }), {} as Record<string, string>); if (isStringWithValue(token)) { headers['Authorization'] = \`Bearer \${token}\`; } if (isStringWithValue(username) && isStringWithValue(password)) { const credentials = base64(\`\${username}:\${password}\`); headers['Authorization'] = \`Basic \${credentials}\`; } if (options.body !== undefined) { if (options.mediaType) { headers['Content-Type'] = options.mediaType; } else if (isBlob(options.body)) { headers['Content-Type'] = options.body.type || 'application/octet-stream'; } else if (isString(options.body)) { headers['Content-Type'] = 'text/plain'; } else if (!isFormData(options.body)) { headers['Content-Type'] = 'application/json'; } } else if (options.formData !== undefined) { if (options.mediaType) { headers['Content-Type'] = options.mediaType; } } return headers; };`},useData:true};var Hn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getRequestBody = (options: ApiRequestOptions): unknown => { if (options.body) { return options.body; } return undefined; };`},useData:true};var Dn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getResponseBody = (response: AxiosResponse<unknown>): unknown => { if (response.status !== 204) { return response.data; } return undefined; };`},useData:true};var In={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getResponseHeader = (response: AxiosResponse<unknown>, responseHeader?: string): string | undefined => { if (responseHeader) { const content = response.headers[responseHeader]; if (isString(content)) { return content; } } return undefined; };`},useData:true};var Bn={1:function(e,n,o,r,t){return "ApiResult<T>"},3:function(e,n,o,r,t){return "T"},5:function(e,n,o,r,t){return "result.body"},7:function(e,n,o,r,t){return "result"},compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){var s,a=n??(e.nullContext||{}),i=e.lookupProperty||function(u,l){if(Object.prototype.hasOwnProperty.call(u,l))return u[l]};return `import axios from 'axios'; import type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; import { ApiError } from './ApiError'; import type { ApiRequestOptions } from './ApiRequestOptions'; import type { ApiResult } from './ApiResult'; import { CancelablePromise } from './CancelablePromise'; import type { OnCancel } from './CancelablePromise'; import type { OpenAPIConfig } from './OpenAPI'; `+((s=e.invokePartial(i(r,"functions/isString"),n,{name:"functions/isString",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/isStringWithValue"),n,{name:"functions/isStringWithValue",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/isBlob"),n,{name:"functions/isBlob",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/isFormData"),n,{name:"functions/isFormData",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/isSuccess"),n,{name:"functions/isSuccess",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/base64"),n,{name:"functions/base64",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/getQueryString"),n,{name:"functions/getQueryString",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/getUrl"),n,{name:"functions/getUrl",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/getFormData"),n,{name:"functions/getFormData",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/resolve"),n,{name:"functions/resolve",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"axios/getHeaders"),n,{name:"axios/getHeaders",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"axios/getRequestBody"),n,{name:"axios/getRequestBody",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"axios/sendRequest"),n,{name:"axios/sendRequest",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"axios/getResponseHeader"),n,{name:"axios/getResponseHeader",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"axios/getResponseBody"),n,{name:"axios/getResponseBody",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` `+((s=e.invokePartial(i(r,"functions/catchErrorCodes"),n,{name:"functions/catchErrorCodes",data:t,helpers:o,partials:r,decorators:e.decorators}))!=null?s:"")+` /** * Request method * @param config The OpenAPI configuration object * @param options The request options from the service * @param axiosClient The axios client instance to use * @returns CancelablePromise<`+((s=i(o,"ifServicesResponse").call(a,"response",{name:"ifServicesResponse",hash:{},fn:e.program(1,t,0),inverse:e.program(3,t,0),data:t,loc:{start:{line:64,column:30},end:{line:64,column:108}}}))!=null?s:"")+`> * @throws ApiError */ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>, axiosClient: AxiosInstance = axios): CancelablePromise<`+((s=i(o,"ifServicesResponse").call(a,"response",{name:"ifServicesResponse",hash:{},fn:e.program(1,t,0),inverse:e.program(3,t,0),data:t,loc:{start:{line:67,column:136},end:{line:67,column:214}}}))!=null?s:"")+`> => { return new CancelablePromise(async (resolve, reject, onCancel) => { try { const url = getUrl(config, options); const formData = getFormData(options); const body = getRequestBody(options); const headers = await getHeaders(config, options); if (!onCancel.isCancelled) { let response = await sendRequest<T>(config, options, url, body, formData, headers, onCancel, axiosClient); for (const fn of config.interceptors.response._fns) { response = await fn(response); } const responseBody = getResponseBody(response); const responseHeader = getResponseHeader(response, options.responseHeader); let transformedBody = responseBody; if (options.responseTransformer && isSuccess(response.status)) { transformedBody = await options.responseTransformer(responseBody) } const result: ApiResult = { url, ok: isSuccess(response.status), status: response.status, statusText: response.statusText, body: responseHeader ?? transformedBody, }; catchErrorCodes(options, result); resolve(`+((s=i(o,"ifServicesResponse").call(a,"body",{name:"ifServicesResponse",hash:{},fn:e.program(5,t,0),inverse:e.program(7,t,0),data:t,loc:{start:{line:100,column:12},end:{line:100,column:90}}}))!=null?s:"")+`); } } catch (error) { reject(error); } }); };`},usePartial:true,useData:true};var jn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const sendRequest = async <T>( config: OpenAPIConfig, options: ApiRequestOptions<T>, url: string, body: unknown, formData: FormData | undefined, headers: Record<string, string>, onCancel: OnCancel, axiosClient: AxiosInstance ): Promise<AxiosResponse<T>> => { const controller = new AbortController(); let requestConfig: AxiosRequestConfig = { data: body ?? formData, headers, method: options.method, signal: controller.signal, url, withCredentials: config.WITH_CREDENTIALS, }; onCancel(() => controller.abort()); for (const fn of config.interceptors.request._fns) { requestConfig = await fn(requestConfig); } try { return await axiosClient.request(requestConfig); } catch (error) { const axiosError = error as AxiosError<T>; if (axiosError.response) { return axiosError.response; } throw error; } };`},useData:true};var $n={1:function(e,n,o,r,t){return `import type { HttpClient } from '@angular/common/http'; import type { Observable } from 'rxjs'; import type { ApiRequestOptions } from './ApiRequestOptions'; import type { OpenAPIConfig } from './OpenAPI'; `},3:function(e,n,o,r,t){return `import type { ApiRequestOptions } from './ApiRequestOptions'; import type { CancelablePromise } from './CancelablePromise'; import type { OpenAPIConfig } from './OpenAPI'; `},5:function(e,n,o,r,t){return ` constructor( public readonly config: OpenAPIConfig, public readonly http: HttpClient, ) {} `},7:function(e,n,o,r,t){return ` constructor(public readonly config: OpenAPIConfig) {} `},9:function(e,n,o,r,t){return ` public abstract request<T>(options: ApiRequestOptions<T>): Observable<T>; `},11:function(e,n,o,r,t){return ` public abstract request<T>(options: ApiRequestOptions<T>): CancelablePromise<T>; `},compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){var s,a=n??(e.nullContext||{}),i=e.lookupProperty||function(u,l){if(Object.prototype.hasOwnProperty.call(u,l))return u[l]};return ((s=i(o,"equals").call(a,i(i(i(i(t,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(1,t,0),inverse:e.program(3,t,0),data:t,loc:{start:{line:1,column:0},end:{line:11,column:11}}}))!=null?s:"")+` export abstract class BaseHttpRequest { `+((s=i(o,"equals").call(a,i(i(i(i(t,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(5,t,0),inverse:e.program(7,t,0),data:t,loc:{start:{line:15,column:1},end:{line:22,column:12}}}))!=null?s:"")+` `+((s=i(o,"equals").call(a,i(i(i(i(t,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(9,t,0),inverse:e.program(11,t,0),data:t,loc:{start:{line:24,column:1},end:{line:28,column:12}}}))!=null?s:"")+"}"},useData:true};var Nn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export class CancelError extends Error { constructor(message: string) { super(message); this.name = 'CancelError'; } public get isCancelled(): boolean { return true; } } export interface OnCancel { readonly isResolved: boolean; readonly isRejected: boolean; readonly isCancelled: boolean; (cancelHandler: () => void): void; } export class CancelablePromise<T> implements Promise<T> { private _isResolved: boolean; private _isRejected: boolean; private _isCancelled: boolean; readonly cancelHandlers: (() => void)[]; readonly promise: Promise<T>; private _resolve?: (value: T | PromiseLike<T>) => void; private _reject?: (reason?: unknown) => void; constructor( executor: ( resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: unknown) => void, onCancel: OnCancel ) => void ) { this._isResolved = false; this._isRejected = false; this._isCancelled = false; this.cancelHandlers = []; this.promise = new Promise<T>((resolve, reject) => { this._resolve = resolve; this._reject = reject; const onResolve = (value: T | PromiseLike<T>): void => { if (this._isResolved || this._isRejected || this._isCancelled) { return; } this._isResolved = true; if (this._resolve) this._resolve(value); }; const onReject = (reason?: unknown): void => { if (this._isResolved || this._isRejected || this._isCancelled) { return; } this._isRejected = true; if (this._reject) this._reject(reason); }; const onCancel = (cancelHandler: () => void): void => { if (this._isResolved || this._isRejected || this._isCancelled) { return; } this.cancelHandlers.push(cancelHandler); }; Object.defineProperty(onCancel, 'isResolved', { get: (): boolean => this._isResolved, }); Object.defineProperty(onCancel, 'isRejected', { get: (): boolean => this._isRejected, }); Object.defineProperty(onCancel, 'isCancelled', { get: (): boolean => this._isCancelled, }); return executor(onResolve, onReject, onCancel as OnCancel); }); } get [Symbol.toStringTag]() { return "Cancellable Promise"; } public then<TResult1 = T, TResult2 = never>( onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null ): Promise<TResult1 | TResult2> { return this.promise.then(onFulfilled, onRejected); } public catch<TResult = never>( onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null ): Promise<T | TResult> { return this.promise.catch(onRejected); } public finally(onFinally?: (() => void) | null): Promise<T> { return this.promise.finally(onFinally); } public cancel(): void { if (this._isResolved || this._isRejected || this._isCancelled) { return; } this._isCancelled = true; if (this.cancelHandlers.length) { try { for (const cancelHandler of this.cancelHandlers) { cancelHandler(); } } catch (error) { console.warn('Cancellation threw an error', error); return; } } this.cancelHandlers.length = 0; if (this._reject) this._reject(new CancelError('Request aborted')); } public get isCancelled(): boolean { return this._isCancelled; } }`},useData:true};var Fn={compiler:[8,">= 4.3.0"],main:function(e,n,o,r,t){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => { const [token, username, password, additionalHeaders] = await Promise.all([ // @ts-ignore resolve(options, config.TOKEN), // @ts-ignore resolve(options, config.USERNAME), // @ts-ignore resolve(options, config.PASSWORD), // @ts-ignore resolve(options, config.HEADERS), ]); const headers = Object.entries({ Accept: 'application/json', ...additionalHeaders, ...options.headers, }) .filter(([, value]) => value !== undefined && value !== null) .reduce((headers, [key, value]) => ({ ...headers, [key]: String(value), }), {} as Record<string, string>); if (isStringWithValue(token)) { headers['Authorization'] = \`Bearer \${token}\`; } if (isStringWithValue(username) && isStringWithValue(password)) { const credentials = base64(\`\${us