@hey-api/openapi-ts 0.53.6 → 0.53.7

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/index.js CHANGED
@@ -4,20 +4,20 @@ import { loadConfig } from 'c12';
4
4
  import { existsSync, writeFileSync, copyFileSync, rmSync, mkdirSync } from 'node:fs';
5
5
  import y from 'typescript';
6
6
  import { EOL } from 'os';
7
- import sp from '@apidevtools/json-schema-ref-parser';
7
+ import pp from '@apidevtools/json-schema-ref-parser';
8
8
  import f from 'handlebars';
9
9
 
10
10
  const require = createRequire(import.meta.url);
11
- var fi=Object.create;var Pn=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var yi=Object.getOwnPropertyNames;var gi=Object.getPrototypeOf,hi=Object.prototype.hasOwnProperty;var J=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xi=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of yi(t))!hi.call(e,n)&&n!==r&&Pn(e,n,{get:()=>t[n],enumerable:!(s=di(t,n))||s.enumerable});return e};var Oi=(e,t,r)=>(r=e!=null?fi(gi(e)):{},xi(Pn(r,"default",{value:e,enumerable:!0}),e));var vn=_((qp,An)=>{An.exports=Rn;Rn.sync=Pi;var Cn=J("fs");function bi(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return !0;for(var s=0;s<r.length;s++){var n=r[s].toLowerCase();if(n&&e.substr(-n.length).toLowerCase()===n)return !0}return !1}function Tn(e,t,r){return !e.isSymbolicLink()&&!e.isFile()?!1:bi(t,r)}function Rn(e,t,r){Cn.stat(e,function(s,n){r(s,s?!1:Tn(n,e,t));});}function Pi(e,t){return Tn(Cn.statSync(e),e,t)}});var Nn=_((kp,kn)=>{kn.exports=Sn;Sn.sync=Ci;var En=J("fs");function Sn(e,t,r){En.stat(e,function(s,n){r(s,s?!1:qn(n,t));});}function Ci(e,t){return qn(En.statSync(e),t)}function qn(e,t){return e.isFile()&&Ti(e,t)}function Ti(e,t){var r=e.mode,s=e.uid,n=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),a=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),i=parseInt("100",8),p=parseInt("010",8),c=parseInt("001",8),m=i|p,u=r&c||r&p&&n===a||r&i&&s===o||r&m&&o===0;return u}});var $n=_((wp,wn)=>{J("fs");var rt;process.platform==="win32"||global.TESTING_WINDOWS?rt=vn():rt=Nn();wn.exports=_t;_t.sync=Ri;function _t(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(s,n){_t(e,t||{},function(o,a){o?n(o):s(a);});})}rt(e,t||{},function(s,n){s&&(s.code==="EACCES"||t&&t.ignoreErrors)&&(s=null,n=!1),r(s,n);});}function Ri(e,t){try{return rt.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return !1;throw r}}});var Bn=_(($p,Fn)=>{var Ne=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",In=J("path"),Ai=Ne?";":":",Dn=$n(),Mn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),jn=(e,t)=>{let r=t.colon||Ai,s=e.match(/\//)||Ne&&e.match(/\\/)?[""]:[...Ne?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],n=Ne?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Ne?n.split(r):[""];return Ne&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:s,pathExt:o,pathExtExe:n}},Hn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:s,pathExt:n,pathExtExe:o}=jn(e,t),a=[],i=c=>new Promise((m,u)=>{if(c===s.length)return t.all&&a.length?m(a):u(Mn(e));let d=s[c],h=/^".*"$/.test(d)?d.slice(1,-1):d,O=In.join(h,e),T=!h&&/^\.[\\\/]/.test(e)?e.slice(0,2)+O:O;m(p(T,c,0));}),p=(c,m,u)=>new Promise((d,h)=>{if(u===n.length)return d(i(m+1));let O=n[u];Dn(c+O,{pathExt:o},(T,x)=>{if(!T&&x)if(t.all)a.push(c+O);else return d(c+O);return d(p(c,m,u+1))});});return r?i(0).then(c=>r(null,c),r):i(0)},vi=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:s,pathExtExe:n}=jn(e,t),o=[];for(let a=0;a<r.length;a++){let i=r[a],p=/^".*"$/.test(i)?i.slice(1,-1):i,c=In.join(p,e),m=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let u=0;u<s.length;u++){let d=m+s[u];try{if(Dn.sync(d,{pathExt:n}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw Mn(e)};Fn.exports=Hn;Hn.sync=vi;});var _n=_((Ip,Ut)=>{var Ln=(e={})=>{let t=e.env||process.env;return (e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(s=>s.toUpperCase()==="PATH")||"Path"};Ut.exports=Ln;Ut.exports.default=Ln;});var Wn=_((Dp,Kn)=>{var Un=J("path"),Ei=Bn(),Si=_n();function Vn(e,t){let r=e.options.env||process.env,s=process.cwd(),n=e.options.cwd!=null,o=n&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd);}catch{}let a;try{a=Ei.sync(e.command,{path:r[Si({env:r})],pathExt:t?Un.delimiter:void 0});}catch{}finally{o&&process.chdir(s);}return a&&(a=Un.resolve(n?e.options.cwd:"",a)),a}function qi(e){return Vn(e)||Vn(e,!0)}Kn.exports=qi;});var Qn=_((Mp,Kt)=>{var Vt=/([()\][%!^"`<>&|;, *?])/g;function ki(e){return e=e.replace(Vt,"^$1"),e}function Ni(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(Vt,"^$1"),t&&(e=e.replace(Vt,"^$1")),e}Kt.exports.command=ki;Kt.exports.argument=Ni;});var Xn=_((jp,Gn)=>{Gn.exports=/^#!(.*)/;});var Jn=_((Hp,zn)=>{var wi=Xn();zn.exports=(e="")=>{let t=e.match(wi);if(!t)return null;let[r,s]=t[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?s:s?`${n} ${s}`:n};});var Zn=_((Fp,Yn)=>{var Wt=J("fs"),$i=Jn();function Ii(e){let r=Buffer.alloc(150),s;try{s=Wt.openSync(e,"r"),Wt.readSync(s,r,0,150,0),Wt.closeSync(s);}catch{}return $i(r.toString())}Yn.exports=Ii;});var rr=_((Bp,nr)=>{var Di=J("path"),er=Wn(),tr=Qn(),Mi=Zn(),ji=process.platform==="win32",Hi=/\.(?:com|exe)$/i,Fi=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Bi(e){e.file=er(e);let t=e.file&&Mi(e.file);return t?(e.args.unshift(e.file),e.command=t,er(e)):e.file}function Li(e){if(!ji)return e;let t=Bi(e),r=!Hi.test(t);if(e.options.forceShell||r){let s=Fi.test(t);e.command=Di.normalize(e.command),e.command=tr.command(e.command),e.args=e.args.map(o=>tr.argument(o,s));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e}function _i(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let s={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?s:Li(s)}nr.exports=_i;});var ir=_((Lp,sr)=>{var Qt=process.platform==="win32";function Gt(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Ui(e,t){if(!Qt)return;let r=e.emit;e.emit=function(s,n){if(s==="exit"){let o=or(n,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)};}function or(e,t){return Qt&&e===1&&!t.file?Gt(t.original,"spawn"):null}function Vi(e,t){return Qt&&e===1&&!t.file?Gt(t.original,"spawnSync"):null}sr.exports={hookChildProcess:Ui,verifyENOENT:or,verifyENOENTSync:Vi,notFoundError:Gt};});var cr=_((_p,we)=>{var ar=J("child_process"),Xt=rr(),zt=ir();function pr(e,t,r){let s=Xt(e,t,r),n=ar.spawn(s.command,s.args,s.options);return zt.hookChildProcess(n,s),n}function Ki(e,t,r){let s=Xt(e,t,r),n=ar.spawnSync(s.command,s.args,s.options);return n.error=n.error||zt.verifyENOENTSync(n.status,s),n}we.exports=pr;we.exports.spawn=pr;we.exports.sync=Ki;we.exports._parse=Xt;we.exports._enoent=zt;});var On=Oi(cr());var mr,g=()=>mr,lr=e=>(mr=e,g()),A=e=>("client"in e?e.client.name:e.name).startsWith("@hey-api");var ot=e=>{switch(e.name){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 ""}};function $e(e,t){let r=e.toLocaleLowerCase(),s=t.toLocaleLowerCase();return r.localeCompare(s,"en")}var Ge=(e,t)=>$e(e.name,t.name);function Xe(e){return e.sort(Ge)}var Ie=e=>{existsSync(e)||mkdirSync(e,{recursive:!0});};var ur=async(e,t,r,s)=>{let n=g(),o=s.client({$config:n,...r,httpRequest:ot(n.client),models:Xe(r.models),services:Xe(r.services)});n.name&&(Ie(t),writeFileSync(V.resolve(t,`${n.name}.ts`),o));};var Te=()=>{let e=g();return e.client.bundle?"./client":e.client.name},Re=()=>"Options",fr=async(e,t)=>{let r=g();if(!A(r)||!r.client.bundle)return;let s=V.resolve(e,"client");Ie(s);let o=V.normalize(J.resolve(t)).split(V.sep),a=[...o.slice(0,o.indexOf("dist")),"src"].join(V.sep);["index.ts","types.ts","utils.ts"].forEach(p=>{copyFileSync(V.resolve(a,p),V.resolve(s,p));});};var dr=async(e,t,r)=>{let s=g();if(s.exportCore){let n={httpRequest:ot(s.client),server:s.base!==void 0?s.base:t.server,version:t.version};if(rmSync(V.resolve(e),{force:!0,recursive:!0}),mkdirSync(V.resolve(e),{recursive:!0}),await writeFileSync(V.resolve(e,"OpenAPI.ts"),r.core.settings({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiError.ts"),r.core.apiError({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiRequestOptions.ts"),r.core.apiRequestOptions({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiResult.ts"),r.core.apiResult({$config:s,...n})),s.client.name!=="legacy/angular"&&await writeFileSync(V.resolve(e,"CancelablePromise.ts"),r.core.cancelablePromise({$config:s,...n})),await writeFileSync(V.resolve(e,"request.ts"),r.core.request({$config:s,...n})),s.name&&(await writeFileSync(V.resolve(e,"BaseHttpRequest.ts"),r.core.baseHttpRequest({$config:s,...n})),await writeFileSync(V.resolve(e,`${n.httpRequest}.ts`),r.core.httpRequest({$config:s,...n}))),s.request){let o=V.resolve(process.cwd(),s.request);if(!await existsSync(o))throw new Error(`Custom request file "${o}" does not exists`);await copyFileSync(o,V.resolve(e,"request.ts"));}}};var st=/^[^$_\p{ID_Start}]+/u,Y=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g,ae=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var Z=e=>(e||e==="")&&(ae.lastIndex=0,!ae.test(e))?`'${e}'`:e,Me=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,w=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>EOL+r.trim());var it={newLine:y.NewLineKind.LineFeed,scriptKind:y.ScriptKind.TS,scriptTarget:y.ScriptTarget.ES2015,useSingleQuotes:!0},na=y.createPrinter({newLine:it.newLine}),yr=e=>y.createSourceFile("",e,it.scriptTarget,void 0,it.scriptKind),ra=yr(""),oa=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function Ae({node:e,unescape:t=!1}){let r=na.printNode(y.EmitHint.Unspecified,e,ra);if(!t)return r;try{return oa(r)}catch{return g().debug&&console.warn("Could not decode value:",r),r}}function gr(e){return yr(e).statements[0]}var b=({text:e})=>y.factory.createIdentifier(e),U={boolean:e=>e?y.factory.createTrue():y.factory.createFalse(),export:({alias:e,asType:t=!1,name:r})=>{let s=b({text:r});if(e){let n=b({text:e});return y.factory.createExportSpecifier(t,s,n)}return y.factory.createExportSpecifier(t,void 0,s)},import:({alias:e,asType:t=!1,name:r})=>{let s=b({text:r});if(e){let n=b({text:e});return y.factory.createImportSpecifier(t,s,n)}return y.factory.createImportSpecifier(t,void 0,s)},number:e=>e<0?y.factory.createPrefixUnaryExpression(y.SyntaxKind.MinusToken,y.factory.createNumericLiteral(Math.abs(e))):y.factory.createNumericLiteral(e),string:(e,t=!1)=>{let r=e;t&&(r=Me(r));let s=r.includes("'")&&r.includes('"'),n=r.includes(`
12
- `),o=r.startsWith("`"),a=r.startsWith("\\`")&&r.endsWith("\\`");return (n||s||o)&&!a&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?b({text:r}):y.factory.createStringLiteral(r,r.includes("'")?!1:it.useSingleQuotes)}},ve=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",de=e=>e!==void 0,sa=({commentObject:e,node:t})=>{let r=e.lines.filter(a=>!!a||a==="");if(!r.length)return;if(!e.jsdoc){for(let a of r)y.addSyntheticLeadingComment(t,y.SyntaxKind.SingleLineCommentTrivia,` ${a}`,!0);return}let s=r.map((a,i)=>{let p=a;return i!==r.length&&(p=`${p}
13
- `),y.factory.createJSDocText(p)}),n=y.factory.createJSDocComment(y.factory.createNodeArray(s),void 0),o=Ae({node:n,unescape:!0}).replace("/*","").replace("* */","");y.addSyntheticLeadingComment(t,y.SyntaxKind.MultiLineCommentTrivia,o,!0);},j=({comments:e=[],node:t})=>{let r=!!e.find(n=>typeof n=="object"&&n),s=e;r||(s=[{jsdoc:!0,lines:e}]);for(let n of s)sa({commentObject:n,node:t});};var L=(e,t)=>y.isTypeNode(e)?e:typeof e=="number"?y.factory.createLiteralTypeNode(U.number(e)):G({typeArguments:t?.map(r=>L(r)),typeName:e}),Jt=({expression:e,name:t})=>y.factory.createPropertyAccessChain(e,y.factory.createToken(y.SyntaxKind.QuestionDotToken),t),ee=({expression:e,isOptional:t,name:r})=>{let s=typeof e=="string"?b({text:e}):e;if(t)return Jt({expression:s,name:r});let n=typeof r=="string"?b({text:r}):r;return typeof r=="string"&&(ae.lastIndex=0,!ae.test(r))?y.factory.createElementAccessExpression(s,n):y.factory.createPropertyAccessExpression(s,n)},Ee=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:s,value:n})=>{if(n===null)return y.factory.createNull();if(Array.isArray(n))return Yt({elements:n});if(typeof n=="object")return mt({identifiers:e,obj:n,shorthand:r});if(typeof n=="number")return U.number(n);if(typeof n=="boolean")return U.boolean(n);if(typeof n=="string"){if(t){let o=n.split(".");return ee({expression:o[0],name:o[1]})}return U.string(n,s)}},at=e=>{let t=e==="public"?y.SyntaxKind.PublicKeyword:e==="protected"?y.SyntaxKind.ProtectedKeyword:e==="private"?y.SyntaxKind.PrivateKeyword:void 0,r=[];return t&&r.push(y.factory.createModifier(t)),r},ze=e=>e.map(t=>{if("destructure"in t)return y.factory.createParameterDeclaration(void 0,void 0,y.factory.createObjectBindingPattern(t.destructure.map(s=>"destructure"in s?void 0:y.factory.createBindingElement(void 0,void 0,b({text:s.name}),void 0)).filter(Boolean)),void 0,void 0,void 0);let r=at(t.accessLevel);return t.isReadOnly&&(r=[...r,y.factory.createModifier(y.SyntaxKind.ReadonlyKeyword)]),y.factory.createParameterDeclaration(r,void 0,b({text:t.name}),t.isRequired===!1?y.factory.createToken(y.SyntaxKind.QuestionToken):void 0,t.type!==void 0?L(t.type):void 0,t.default!==void 0?Ee({value:t.default}):void 0)}),pt=({keyword:e})=>{let t=y.SyntaxKind.AnyKeyword;switch(e){case"boolean":t=y.SyntaxKind.BooleanKeyword;break;case"string":t=y.SyntaxKind.StringKeyword;break}return y.factory.createKeywordTypeNode(t)},Je=e=>e.map(t=>y.factory.createTypeParameterDeclaration(void 0,t.name,t.extends?typeof t.extends=="string"?pt({keyword:"boolean"}):t.extends:void 0,t.default!==void 0?ve(t.default)?t.default:y.factory.createLiteralTypeNode(t.default?y.factory.createTrue():y.factory.createFalse()):void 0)),ct=({async:e,comment:t,multiLine:r,parameters:s=[],returnType:n,statements:o=[],types:a=[]})=>{let i=y.factory.createArrowFunction(e?[y.factory.createModifier(y.SyntaxKind.AsyncKeyword)]:void 0,a?Je(a):void 0,ze(s),n?L(n):void 0,void 0,Array.isArray(o)?y.factory.createBlock(o,r):o);return j({comments:t,node:i}),i},hr=({async:e,comment:t,multiLine:r,parameters:s=[],returnType:n,statements:o=[],types:a=[]})=>{let i=y.factory.createFunctionExpression(e?[y.factory.createModifier(y.SyntaxKind.AsyncKeyword)]:void 0,void 0,void 0,a?Je(a):void 0,ze(s),n?L(n):void 0,y.factory.createBlock(o,r));return j({comments:t,node:i}),i},Yt=({elements:e,multiLine:t=!1})=>y.factory.createArrayLiteralExpression(e.map(s=>ve(s)?s:Ee({value:s})).filter(de),t||!Array.isArray(e[0])&&typeof e[0]=="object"),xr=({expression:e})=>y.factory.createAwaitExpression(e),mt=({comments:e,identifiers:t=[],multiLine:r=!0,obj:s,shorthand:n,unescape:o=!1})=>{let a=Array.isArray(s)?s.map(p=>{let c=!1;if("key"in p){let{key:u}=p;c=u===p.value,(u.match(/^[0-9]/)&&u.match(/\D+/g)||u.match(/\W/g))&&!u.startsWith("'")&&!u.endsWith("'")&&(p.key=`'${u}'`);}let m;if("spread"in p){let u=ve(p.spread)?p.spread:b({text:p.spread});m=y.factory.createSpreadAssignment(p.assertion?y.factory.createAsExpression(u,pt({keyword:p.assertion})):u);}else if(p.shorthand||n&&c)m=y.factory.createShorthandPropertyAssignment(p.value);else {let u=ve(p.value)?p.value:Array.isArray(p.value)?mt({multiLine:r,obj:p.value,shorthand:n,unescape:o}):Ee({identifiers:t.includes(p.key)?Object.keys(p.value):[],isValueAccess:p.isValueAccess,shorthand:n,unescape:o,value:p.value});if(!u)return;t.includes(p.key)&&!y.isObjectLiteralExpression(u)&&(u=b({text:p.value})),m=y.factory.createPropertyAssignment(p.key,u);}return j({comments:p.comments,node:m}),m}).filter(de):Object.entries(s).map(([p,c])=>{let m=Ee({identifiers:t.includes(p)?Object.keys(c):[],shorthand:n,unescape:o,value:c});if(!m)return;t.includes(p)&&!y.isObjectLiteralExpression(m)&&(m=b({text:c}));let u=p===c;return p.match(/^[0-9]/)&&p.match(/\D+/g)&&!p.startsWith("'")&&!p.endsWith("'")&&(p=`'${p}'`),p.match(/\W/g)&&!p.startsWith("'")&&!p.endsWith("'")&&(p=`'${p}'`),n&&u?y.factory.createShorthandPropertyAssignment(c):y.factory.createPropertyAssignment(p,m)}).filter(de),i=y.factory.createObjectLiteralExpression(a,r);return j({comments:e,node:i}),i},Or=({comments:e,leadingComment:t,name:r,obj:s})=>{let n=y.factory.createEnumDeclaration([y.factory.createModifier(y.SyntaxKind.ExportKeyword)],b({text:r}),Object.entries(s).map(([o,a])=>{let i=Ee({unescape:!0,value:a}),p=y.factory.createEnumMember(o,i),c=e?.[o];return j({comments:c,node:p}),p}));return j({comments:t,node:n}),n},br=({name:e,statements:t})=>y.factory.createModuleDeclaration([y.factory.createModifier(y.SyntaxKind.ExportKeyword)],b({text:e}),y.factory.createModuleBlock(t),y.NodeFlags.Namespace),Pr=({indexType:e,objectType:t})=>y.factory.createIndexedAccessTypeNode(t,e),Cr=({text:e})=>y.factory.createStringLiteral(e),Tr=({condition:e,whenFalse:t,whenTrue:r})=>y.factory.createConditionalExpression(e,y.factory.createToken(y.SyntaxKind.QuestionToken),r,y.factory.createToken(y.SyntaxKind.ColonToken),t),Rr=({text:e})=>y.factory.createTypeOfExpression(b({text:e})),Ar=({comment:e,exportType:t,name:r,type:s,typeParameters:n=[]})=>{let o=y.factory.createTypeAliasDeclaration(t?[y.factory.createModifier(y.SyntaxKind.ExportKeyword)]:void 0,b({text:r}),Je(n),L(s));return j({comments:e,node:o}),o},G=({typeArguments:e,typeName:t})=>y.factory.createTypeReferenceNode(t,e),vr=({type:e})=>y.factory.createParenthesizedType(e);var Er=({module:e})=>y.factory.createExportDeclaration(void 0,!1,void 0,U.string(e)),te=({parameters:e=[],functionName:t,types:r})=>{let s=typeof t=="string"?b({text:t}):t,n=e.filter(a=>a!==void 0).map(a=>typeof a=="string"?b({text:a}):a);return y.factory.createCallExpression(s,r,n)},Sr=({exports:e,module:t})=>{let r=Array.isArray(e)?e:[e],s=r.some(p=>typeof p!="object"||!p.asType),n=r.map(p=>{let c=typeof p=="string"?{name:p}:p;return U.export({alias:c.alias,asType:s&&c.asType,name:c.name})}),o=y.factory.createNamedExports(n),a=U.string(t);return y.factory.createExportDeclaration(void 0,!s,o,a)},qr=({comment:e,assertion:t,destructure:r,exportConst:s,expression:n,name:o,typeName:a})=>{let i=t?y.factory.createAsExpression(n,typeof t=="string"?G({typeName:t}):t):n,p=b({text:o}),c=y.factory.createVariableDeclaration(r?y.factory.createObjectBindingPattern([y.factory.createBindingElement(void 0,void 0,p,void 0)]):p,void 0,a?typeof a=="string"?G({typeName:a}):a:void 0,i),m=y.factory.createVariableStatement(s?[y.factory.createModifier(y.SyntaxKind.ExportKeyword)]:void 0,y.factory.createVariableDeclarationList([c],y.NodeFlags.Const));return j({comments:e,node:m}),m},kr=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],s=r.some(c=>typeof c!="object"||!c.asType),n=r.map(c=>{let m=typeof c=="string"?{name:c}:c;return U.import({alias:m.alias,asType:s&&m.asType,name:m.name})}),o=y.factory.createNamedImports(n),a=y.factory.createImportClause(!s,void 0,o),i=U.string(t);return y.factory.createImportDeclaration(void 0,a,i)};var Nr=({accessLevel:e,comment:t,multiLine:r=!0,parameters:s=[],statements:n=[]})=>{let o=y.factory.createConstructorDeclaration(at(e),ze(s),y.factory.createBlock(n,r));return j({comments:t,node:o}),o},wr=({accessLevel:e,comment:t,isStatic:r=!1,multiLine:s=!0,name:n,parameters:o=[],returnType:a,statements:i=[],types:p=[]})=>{let c=at(e);r&&(c=[...c,y.factory.createModifier(y.SyntaxKind.StaticKeyword)]);let m=y.factory.createMethodDeclaration(c,void 0,b({text:n}),void 0,p?Je(p):void 0,ze(o),a?L(a):void 0,y.factory.createBlock(i,s));return j({comments:t,node:m}),m},$r=({decorator:e,members:t=[],name:r})=>{let s=[y.factory.createModifier(y.SyntaxKind.ExportKeyword)];e&&(s=[y.factory.createDecorator(te({functionName:e.name,parameters:e.args.map(o=>Ee({value:o})).filter(de)})),...s]);let n=[];return t.forEach(o=>{n=[...n,o,b({text:`
14
- `})];}),y.factory.createClassDeclaration(s,b({text:r}),[],[],n)};var Se=({expression:e})=>y.factory.createExpressionStatement(e);var Dr=({expression:e})=>y.factory.createReturnStatement(e),Mr=({args:e=[],name:t,types:r=[]})=>{let s=r.map(i=>G({typeName:i})),n=e.map(i=>y.isExpression(i)?i:b({text:i})).filter(de),o=te({functionName:t,parameters:n,types:s});return Dr({expression:o})},jr=({name:e})=>Dr({expression:b({text:e})});var je=e=>e.slice(1).reduce((t,r)=>(ae.lastIndex=0,ae.test(r)?Jt({expression:t,name:r}):y.factory.createElementAccessChain(t,y.factory.createToken(y.SyntaxKind.QuestionDotToken),b({text:r}))),b({text:e[0]})),lt=e=>e.slice(1).reduce((t,r)=>ee({expression:t,name:r}),b({text:e[0]})),Hr=({expressions:e})=>e.reduce((r,s)=>ee({expression:r,name:s})),Fr=({left:e,operator:t="=",right:r})=>y.factory.createBinaryExpression(e,t==="="?y.SyntaxKind.EqualsToken:t==="==="?y.SyntaxKind.EqualsEqualsEqualsToken:y.SyntaxKind.InKeyword,typeof r=="string"?b({text:r}):r),He=({expression:e,thenStatement:t,elseStatement:r})=>y.factory.createIfStatement(e,t,r),Br=({path:e})=>{let t=je(e),r=lt(e),s=y.factory.createBlock([Se({expression:y.factory.createBinaryExpression(r,y.SyntaxKind.EqualsToken,y.factory.createNewExpression(b({text:"Date"}),void 0,[r]))})]);return He({expression:t,thenStatement:s})},Lr=({path:e,transformerName:t})=>{let r=je(e),s=lt(e),n=y.factory.createBlock([Se({expression:te({functionName:t,parameters:[s]})})],!0);return [He({expression:r,thenStatement:n})]},_r=({path:e,transformerName:t})=>{let r=je(e),s=lt(e);return He({expression:te({functionName:ee({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:y.factory.createBlock([Se({expression:y.factory.createCallChain(ee({expression:s,name:"forEach"}),void 0,void 0,[b({text:t})])})],!0)})},Ur=({parameterName:e})=>{let t=b({text:"Date"});return y.factory.createNewExpression(t,void 0,[b({text:e})])},Vr=({path:e,transformExpression:t})=>{let r=je(e),s=lt(e);return He({expression:te({functionName:ee({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:y.factory.createBlock([Se({expression:y.factory.createBinaryExpression(s,y.factory.createToken(y.SyntaxKind.EqualsToken),y.factory.createCallChain(ee({expression:s,name:"map"}),void 0,void 0,[ct({parameters:[{name:"item"}],statements:t})]))})],!0)})};var da=G({typeName:"null"}),Fe=({isNullable:e,node:t})=>e?y.factory.createUnionTypeNode([t,da]):t,Zt=({isNullable:e,properties:t})=>{let r=y.factory.createTypeLiteralNode(t.map(s=>{let n=s.isReadOnly?[y.factory.createModifier(y.SyntaxKind.ReadonlyKeyword)]:void 0,o=s.isRequired!==!1?void 0:y.factory.createToken(y.SyntaxKind.QuestionToken),a=L(s.type),i=y.factory.createPropertySignature(n,s.name,o,a);return j({comments:s.comment,node:i}),i}));return Fe({isNullable:e,node:r})},Ye=({isNullable:e,types:t})=>{let r=t.map(n=>L(n)),s=y.factory.createUnionTypeNode(r);return Fe({isNullable:e,node:s})},Kr=({isNullable:e,types:t})=>{let r=t.map(n=>L(n)),s=y.factory.createIntersectionTypeNode(r);return Fe({isNullable:e,node:s})},Wr=({isNullable:e=!1,types:t})=>{let r=t.map(n=>L(n)),s=y.factory.createTupleTypeNode(r);return Fe({isNullable:e,node:s})},Qr=(e,t,r=!1)=>{let s=Ye({types:e}),n=Ye({types:t}),o=Zt({properties:[{name:`[key: ${Ae({node:s,unescape:!0})}]`,type:n}]});return Fe({isNullable:r,node:o})},Gr=(e,t=!1)=>{let r=G({typeArguments:[Ye({types:e})],typeName:"Array"});return Fe({isNullable:t,node:r})};var Xr=e=>{let t=e.match(/\.[0-9a-z]+$/i),r=t?t[0].slice(1):"",s=e.slice(0,e.length-(r?r.length+1:0));return {extension:r,name:s}},K=class{_headers=[];_imports=new Map;_items=[];_name;_path;constructor({dir:t,name:r,header:s=!0}){this._name=this._setName(r),this._path=V.resolve(t,this.getName()),s&&(this._headers=[...this._headers,"// This file is auto-generated by @hey-api/openapi-ts"]);}add(...t){this._items=[...this._items,...t];}import({module:t,...r}){let s=this._imports.get(t);s||(s=new Map,this._imports.set(t,s));let n=s.get(r.name);return n||(s.set(r.name,r),r)}getName(t=!0){if(t)return this._name;let{name:r}=Xr(this._name);return r}isEmpty(){return !this._items.length}remove(t){rmSync(this._path,t);}removeNode(){this._items=this._items.slice(0,this._items.length-1);}_setName(t){if(t.includes("index"))return t;let{extension:r,name:s}=Xr(t);return [s,"gen",r].filter(Boolean).join(".")}toString(t=`
11
+ var di=Object.create;var Cn=Object.defineProperty;var yi=Object.getOwnPropertyDescriptor;var gi=Object.getOwnPropertyNames;var hi=Object.getPrototypeOf,xi=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Oi=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of gi(t))!xi.call(e,n)&&n!==r&&Cn(e,n,{get:()=>t[n],enumerable:!(s=yi(t,n))||s.enumerable});return e};var bi=(e,t,r)=>(r=e!=null?di(hi(e)):{},Oi(Cn(r,"default",{value:e,enumerable:!0}),e));var En=_((wp,vn)=>{vn.exports=An;An.sync=Ci;var Tn=Y("fs");function Pi(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return !0;for(var s=0;s<r.length;s++){var n=r[s].toLowerCase();if(n&&e.substr(-n.length).toLowerCase()===n)return !0}return !1}function Rn(e,t,r){return !e.isSymbolicLink()&&!e.isFile()?!1:Pi(t,r)}function An(e,t,r){Tn.stat(e,function(s,n){r(s,s?!1:Rn(n,e,t));});}function Ci(e,t){return Rn(Tn.statSync(e),e,t)}});var wn=_(($p,Nn)=>{Nn.exports=qn;qn.sync=Ti;var Sn=Y("fs");function qn(e,t,r){Sn.stat(e,function(s,n){r(s,s?!1:kn(n,t));});}function Ti(e,t){return kn(Sn.statSync(e),t)}function kn(e,t){return e.isFile()&&Ri(e,t)}function Ri(e,t){var r=e.mode,s=e.uid,n=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),a=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),i=parseInt("100",8),p=parseInt("010",8),c=parseInt("001",8),m=i|p,u=r&c||r&p&&n===a||r&i&&s===o||r&m&&o===0;return u}});var In=_((Dp,$n)=>{Y("fs");var ot;process.platform==="win32"||global.TESTING_WINDOWS?ot=En():ot=wn();$n.exports=Ut;Ut.sync=Ai;function Ut(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(s,n){Ut(e,t||{},function(o,a){o?n(o):s(a);});})}ot(e,t||{},function(s,n){s&&(s.code==="EACCES"||t&&t.ignoreErrors)&&(s=null,n=!1),r(s,n);});}function Ai(e,t){try{return ot.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return !1;throw r}}});var Ln=_((Mp,Bn)=>{var we=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Dn=Y("path"),vi=we?";":":",Mn=In(),jn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Hn=(e,t)=>{let r=t.colon||vi,s=e.match(/\//)||we&&e.match(/\\/)?[""]:[...we?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],n=we?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=we?n.split(r):[""];return we&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:s,pathExt:o,pathExtExe:n}},Fn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:s,pathExt:n,pathExtExe:o}=Hn(e,t),a=[],i=c=>new Promise((m,u)=>{if(c===s.length)return t.all&&a.length?m(a):u(jn(e));let d=s[c],h=/^".*"$/.test(d)?d.slice(1,-1):d,O=Dn.join(h,e),C=!h&&/^\.[\\\/]/.test(e)?e.slice(0,2)+O:O;m(p(C,c,0));}),p=(c,m,u)=>new Promise((d,h)=>{if(u===n.length)return d(i(m+1));let O=n[u];Mn(c+O,{pathExt:o},(C,R)=>{if(!C&&R)if(t.all)a.push(c+O);else return d(c+O);return d(p(c,m,u+1))});});return r?i(0).then(c=>r(null,c),r):i(0)},Ei=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:s,pathExtExe:n}=Hn(e,t),o=[];for(let a=0;a<r.length;a++){let i=r[a],p=/^".*"$/.test(i)?i.slice(1,-1):i,c=Dn.join(p,e),m=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let u=0;u<s.length;u++){let d=m+s[u];try{if(Mn.sync(d,{pathExt:n}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jn(e)};Bn.exports=Fn;Fn.sync=Ei;});var Un=_((jp,Vt)=>{var _n=(e={})=>{let t=e.env||process.env;return (e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(s=>s.toUpperCase()==="PATH")||"Path"};Vt.exports=_n;Vt.exports.default=_n;});var Qn=_((Hp,Wn)=>{var Vn=Y("path"),Si=Ln(),qi=Un();function Kn(e,t){let r=e.options.env||process.env,s=process.cwd(),n=e.options.cwd!=null,o=n&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd);}catch{}let a;try{a=Si.sync(e.command,{path:r[qi({env:r})],pathExt:t?Vn.delimiter:void 0});}catch{}finally{o&&process.chdir(s);}return a&&(a=Vn.resolve(n?e.options.cwd:"",a)),a}function ki(e){return Kn(e)||Kn(e,!0)}Wn.exports=ki;});var Gn=_((Fp,Wt)=>{var Kt=/([()\][%!^"`<>&|;, *?])/g;function Ni(e){return e=e.replace(Kt,"^$1"),e}function wi(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(Kt,"^$1"),t&&(e=e.replace(Kt,"^$1")),e}Wt.exports.command=Ni;Wt.exports.argument=wi;});var zn=_((Bp,Xn)=>{Xn.exports=/^#!(.*)/;});var Yn=_((Lp,Jn)=>{var $i=zn();Jn.exports=(e="")=>{let t=e.match($i);if(!t)return null;let[r,s]=t[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?s:s?`${n} ${s}`:n};});var er=_((_p,Zn)=>{var Qt=Y("fs"),Ii=Yn();function Di(e){let r=Buffer.alloc(150),s;try{s=Qt.openSync(e,"r"),Qt.readSync(s,r,0,150,0),Qt.closeSync(s);}catch{}return Ii(r.toString())}Zn.exports=Di;});var or=_((Up,rr)=>{var Mi=Y("path"),tr=Qn(),nr=Gn(),ji=er(),Hi=process.platform==="win32",Fi=/\.(?:com|exe)$/i,Bi=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Li(e){e.file=tr(e);let t=e.file&&ji(e.file);return t?(e.args.unshift(e.file),e.command=t,tr(e)):e.file}function _i(e){if(!Hi)return e;let t=Li(e),r=!Fi.test(t);if(e.options.forceShell||r){let s=Bi.test(t);e.command=Mi.normalize(e.command),e.command=nr.command(e.command),e.args=e.args.map(o=>nr.argument(o,s));let n=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${n}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0;}return e}function Ui(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let s={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?s:_i(s)}rr.exports=Ui;});var ar=_((Vp,ir)=>{var Gt=process.platform==="win32";function Xt(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Vi(e,t){if(!Gt)return;let r=e.emit;e.emit=function(s,n){if(s==="exit"){let o=sr(n,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)};}function sr(e,t){return Gt&&e===1&&!t.file?Xt(t.original,"spawn"):null}function Ki(e,t){return Gt&&e===1&&!t.file?Xt(t.original,"spawnSync"):null}ir.exports={hookChildProcess:Vi,verifyENOENT:sr,verifyENOENTSync:Ki,notFoundError:Xt};});var mr=_((Kp,$e)=>{var pr=Y("child_process"),zt=or(),Jt=ar();function cr(e,t,r){let s=zt(e,t,r),n=pr.spawn(s.command,s.args,s.options);return Jt.hookChildProcess(n,s),n}function Wi(e,t,r){let s=zt(e,t,r),n=pr.spawnSync(s.command,s.args,s.options);return n.error=n.error||Jt.verifyENOENTSync(n.status,s),n}$e.exports=cr;$e.exports.spawn=cr;$e.exports.sync=Wi;$e.exports._parse=zt;$e.exports._enoent=Jt;});var bn=bi(mr());var lr,g=()=>lr,ur=e=>(lr=e,g()),A=e=>("client"in e?e.client.name:e.name).startsWith("@hey-api");var st=e=>{switch(e.name){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 ""}};function Ie(e,t){let r=e.toLocaleLowerCase(),s=t.toLocaleLowerCase();return r.localeCompare(s,"en")}var ze=(e,t)=>Ie(e.name,t.name);function Je(e){return e.sort(ze)}var De=e=>{existsSync(e)||mkdirSync(e,{recursive:!0});};var fr=async(e,t,r,s)=>{let n=g(),o=s.client({$config:n,...r,httpRequest:st(n.client),models:Je(r.models),services:Je(r.services)});n.name&&(De(t),writeFileSync(V.resolve(t,`${n.name}.ts`),o));};var Ce=()=>{let e=g();return e.client.bundle?"./client":e.client.name},Te=()=>"Options",dr=async(e,t)=>{let r=g();if(!A(r)||!r.client.bundle)return;let s=V.resolve(e,"client");De(s);let o=V.normalize(Y.resolve(t)).split(V.sep),a=[...o.slice(0,o.indexOf("dist")),"src"].join(V.sep);["index.ts","types.ts","utils.ts"].forEach(p=>{copyFileSync(V.resolve(a,p),V.resolve(s,p));});};var yr=async(e,t,r)=>{let s=g();if(s.exportCore){let n={httpRequest:st(s.client),server:s.base!==void 0?s.base:t.server,version:t.version};if(rmSync(V.resolve(e),{force:!0,recursive:!0}),mkdirSync(V.resolve(e),{recursive:!0}),await writeFileSync(V.resolve(e,"OpenAPI.ts"),r.core.settings({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiError.ts"),r.core.apiError({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiRequestOptions.ts"),r.core.apiRequestOptions({$config:s,...n})),await writeFileSync(V.resolve(e,"ApiResult.ts"),r.core.apiResult({$config:s,...n})),s.client.name!=="legacy/angular"&&await writeFileSync(V.resolve(e,"CancelablePromise.ts"),r.core.cancelablePromise({$config:s,...n})),await writeFileSync(V.resolve(e,"request.ts"),r.core.request({$config:s,...n})),s.name&&(await writeFileSync(V.resolve(e,"BaseHttpRequest.ts"),r.core.baseHttpRequest({$config:s,...n})),await writeFileSync(V.resolve(e,`${n.httpRequest}.ts`),r.core.httpRequest({$config:s,...n}))),s.request){let o=V.resolve(process.cwd(),s.request);if(!await existsSync(o))throw new Error(`Custom request file "${o}" does not exists`);await copyFileSync(o,V.resolve(e,"request.ts"));}}};var it=/^[^$_\p{ID_Start}]+/u,Z=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g,pe=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var ee=e=>(e||e==="")&&(pe.lastIndex=0,!pe.test(e))?`'${e}'`:e,je=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,w=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>EOL+r.trim());var at={newLine:y.NewLineKind.LineFeed,scriptKind:y.ScriptKind.TS,scriptTarget:y.ScriptTarget.ES2015,useSingleQuotes:!0},ra=y.createPrinter({newLine:at.newLine}),gr=e=>y.createSourceFile("",e,at.scriptTarget,void 0,at.scriptKind),oa=gr(""),sa=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function Re({node:e,unescape:t=!1}){let r=ra.printNode(y.EmitHint.Unspecified,e,oa);if(!t)return r;try{return sa(r)}catch{return g().debug&&console.warn("Could not decode value:",r),r}}function hr(e){return gr(e).statements[0]}var b=({text:e})=>y.factory.createIdentifier(e),U={boolean:e=>e?y.factory.createTrue():y.factory.createFalse(),export:({alias:e,asType:t=!1,name:r})=>{let s=b({text:r});if(e){let n=b({text:e});return y.factory.createExportSpecifier(t,s,n)}return y.factory.createExportSpecifier(t,void 0,s)},import:({alias:e,asType:t=!1,name:r})=>{let s=b({text:r});if(e){let n=b({text:e});return y.factory.createImportSpecifier(t,s,n)}return y.factory.createImportSpecifier(t,void 0,s)},number:e=>e<0?y.factory.createPrefixUnaryExpression(y.SyntaxKind.MinusToken,y.factory.createNumericLiteral(Math.abs(e))):y.factory.createNumericLiteral(e),string:(e,t=!1)=>{let r=e;t&&(r=je(r));let s=r.includes("'")&&r.includes('"'),n=r.includes(`
12
+ `),o=r.startsWith("`"),a=r.startsWith("\\`")&&r.endsWith("\\`");return (n||s||o)&&!a&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?b({text:r}):y.factory.createStringLiteral(r,r.includes("'")?!1:at.useSingleQuotes)}},Ae=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",fe=e=>e!==void 0,ia=({commentObject:e,node:t})=>{let r=e.lines.filter(a=>!!a||a==="");if(!r.length)return;if(!e.jsdoc){for(let a of r)y.addSyntheticLeadingComment(t,y.SyntaxKind.SingleLineCommentTrivia,` ${a}`,!0);return}let s=r.map((a,i)=>{let p=a;return i!==r.length&&(p=`${p}
13
+ `),y.factory.createJSDocText(p)}),n=y.factory.createJSDocComment(y.factory.createNodeArray(s),void 0),o=Re({node:n,unescape:!0}).replace("/*","").replace("* */","");y.addSyntheticLeadingComment(t,y.SyntaxKind.MultiLineCommentTrivia,o,!0);},M=({comments:e=[],node:t})=>{let r=!!e.find(n=>typeof n=="object"&&n),s=e;r||(s=[{jsdoc:!0,lines:e}]);for(let n of s)ia({commentObject:n,node:t});};var B=(e,t)=>y.isTypeNode(e)?e:typeof e=="number"?y.factory.createLiteralTypeNode(U.number(e)):X({typeArguments:t?.map(r=>B(r)),typeName:e}),Yt=({expression:e,name:t})=>y.factory.createPropertyAccessChain(e,y.factory.createToken(y.SyntaxKind.QuestionDotToken),t),te=({expression:e,isOptional:t,name:r})=>{let s=typeof e=="string"?b({text:e}):e;if(t)return Yt({expression:s,name:r});let n=typeof r=="string"?b({text:r}):r;return typeof r=="string"&&(pe.lastIndex=0,!pe.test(r))?y.factory.createElementAccessExpression(s,n):y.factory.createPropertyAccessExpression(s,n)},ve=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:s,value:n})=>{if(n===null)return y.factory.createNull();if(Array.isArray(n))return Zt({elements:n});if(typeof n=="object")return lt({identifiers:e,obj:n,shorthand:r});if(typeof n=="number")return U.number(n);if(typeof n=="boolean")return U.boolean(n);if(typeof n=="string"){if(t){let o=n.split(".");return te({expression:o[0],name:o[1]})}return U.string(n,s)}},pt=e=>{let t=e==="public"?y.SyntaxKind.PublicKeyword:e==="protected"?y.SyntaxKind.ProtectedKeyword:e==="private"?y.SyntaxKind.PrivateKeyword:void 0,r=[];return t&&r.push(y.factory.createModifier(t)),r},Ye=e=>e.map(t=>{if("destructure"in t)return y.factory.createParameterDeclaration(void 0,void 0,y.factory.createObjectBindingPattern(t.destructure.map(s=>"destructure"in s?void 0:y.factory.createBindingElement(void 0,void 0,b({text:s.name}),void 0)).filter(Boolean)),void 0,void 0,void 0);let r=pt(t.accessLevel);return t.isReadOnly&&(r=[...r,y.factory.createModifier(y.SyntaxKind.ReadonlyKeyword)]),y.factory.createParameterDeclaration(r,void 0,b({text:t.name}),t.isRequired===!1?y.factory.createToken(y.SyntaxKind.QuestionToken):void 0,t.type!==void 0?B(t.type):void 0,t.default!==void 0?ve({value:t.default}):void 0)}),ct=({keyword:e})=>{let t=y.SyntaxKind.AnyKeyword;switch(e){case"boolean":t=y.SyntaxKind.BooleanKeyword;break;case"string":t=y.SyntaxKind.StringKeyword;break}return y.factory.createKeywordTypeNode(t)},Ze=e=>e.map(t=>y.factory.createTypeParameterDeclaration(void 0,t.name,t.extends?typeof t.extends=="string"?ct({keyword:"boolean"}):t.extends:void 0,t.default!==void 0?Ae(t.default)?t.default:y.factory.createLiteralTypeNode(t.default?y.factory.createTrue():y.factory.createFalse()):void 0)),mt=({async:e,comment:t,multiLine:r,parameters:s=[],returnType:n,statements:o=[],types:a=[]})=>{let i=y.factory.createArrowFunction(e?[y.factory.createModifier(y.SyntaxKind.AsyncKeyword)]:void 0,a?Ze(a):void 0,Ye(s),n?B(n):void 0,void 0,Array.isArray(o)?y.factory.createBlock(o,r):o);return M({comments:t,node:i}),i},xr=({async:e,comment:t,multiLine:r,parameters:s=[],returnType:n,statements:o=[],types:a=[]})=>{let i=y.factory.createFunctionExpression(e?[y.factory.createModifier(y.SyntaxKind.AsyncKeyword)]:void 0,void 0,void 0,a?Ze(a):void 0,Ye(s),n?B(n):void 0,y.factory.createBlock(o,r));return M({comments:t,node:i}),i},Zt=({elements:e,multiLine:t=!1})=>y.factory.createArrayLiteralExpression(e.map(s=>Ae(s)?s:ve({value:s})).filter(fe),t||!Array.isArray(e[0])&&typeof e[0]=="object"),Or=({expression:e})=>y.factory.createAwaitExpression(e),lt=({comments:e,identifiers:t=[],multiLine:r=!0,obj:s,shorthand:n,unescape:o=!1})=>{let a=Array.isArray(s)?s.map(p=>{let c=!1;if("key"in p){let{key:u}=p;c=u===p.value,(u.match(/^[0-9]/)&&u.match(/\D+/g)||u.match(/\W/g))&&!u.startsWith("'")&&!u.endsWith("'")&&(p.key=`'${u}'`);}let m;if("spread"in p){let u=Ae(p.spread)?p.spread:b({text:p.spread});m=y.factory.createSpreadAssignment(p.assertion?y.factory.createAsExpression(u,ct({keyword:p.assertion})):u);}else if(p.shorthand||n&&c)m=y.factory.createShorthandPropertyAssignment(p.value);else {let u=Ae(p.value)?p.value:Array.isArray(p.value)?lt({multiLine:r,obj:p.value,shorthand:n,unescape:o}):ve({identifiers:t.includes(p.key)?Object.keys(p.value):[],isValueAccess:p.isValueAccess,shorthand:n,unescape:o,value:p.value});if(!u)return;t.includes(p.key)&&!y.isObjectLiteralExpression(u)&&(u=b({text:p.value})),m=y.factory.createPropertyAssignment(p.key,u);}return M({comments:p.comments,node:m}),m}).filter(fe):Object.entries(s).map(([p,c])=>{let m=ve({identifiers:t.includes(p)?Object.keys(c):[],shorthand:n,unescape:o,value:c});if(!m)return;t.includes(p)&&!y.isObjectLiteralExpression(m)&&(m=b({text:c}));let u=p===c;return p.match(/^[0-9]/)&&p.match(/\D+/g)&&!p.startsWith("'")&&!p.endsWith("'")&&(p=`'${p}'`),p.match(/\W/g)&&!p.startsWith("'")&&!p.endsWith("'")&&(p=`'${p}'`),n&&u?y.factory.createShorthandPropertyAssignment(c):y.factory.createPropertyAssignment(p,m)}).filter(fe),i=y.factory.createObjectLiteralExpression(a,r);return M({comments:e,node:i}),i},br=({comments:e,leadingComment:t,name:r,obj:s})=>{let n=y.factory.createEnumDeclaration([y.factory.createModifier(y.SyntaxKind.ExportKeyword)],b({text:r}),Object.entries(s).map(([o,a])=>{let i=ve({unescape:!0,value:a}),p=y.factory.createEnumMember(o,i),c=e?.[o];return M({comments:c,node:p}),p}));return M({comments:t,node:n}),n},Pr=({name:e,statements:t})=>y.factory.createModuleDeclaration([y.factory.createModifier(y.SyntaxKind.ExportKeyword)],b({text:e}),y.factory.createModuleBlock(t),y.NodeFlags.Namespace),Cr=({indexType:e,objectType:t})=>y.factory.createIndexedAccessTypeNode(t,e),Tr=({text:e})=>y.factory.createStringLiteral(e),Rr=({condition:e,whenFalse:t,whenTrue:r})=>y.factory.createConditionalExpression(e,y.factory.createToken(y.SyntaxKind.QuestionToken),r,y.factory.createToken(y.SyntaxKind.ColonToken),t),Ar=({text:e})=>y.factory.createTypeOfExpression(b({text:e})),vr=({comment:e,exportType:t,name:r,type:s,typeParameters:n=[]})=>{let o=y.factory.createTypeAliasDeclaration(t?[y.factory.createModifier(y.SyntaxKind.ExportKeyword)]:void 0,b({text:r}),Ze(n),B(s));return M({comments:e,node:o}),o},X=({typeArguments:e,typeName:t})=>y.factory.createTypeReferenceNode(t,e),Er=({type:e})=>y.factory.createParenthesizedType(e);var Sr=({module:e})=>y.factory.createExportDeclaration(void 0,!1,void 0,U.string(e)),ne=({parameters:e=[],functionName:t,types:r})=>{let s=typeof t=="string"?b({text:t}):t,n=e.filter(a=>a!==void 0).map(a=>typeof a=="string"?b({text:a}):a);return y.factory.createCallExpression(s,r,n)},qr=({exports:e,module:t})=>{let r=Array.isArray(e)?e:[e],s=r.some(p=>typeof p!="object"||!p.asType),n=r.map(p=>{let c=typeof p=="string"?{name:p}:p;return U.export({alias:c.alias,asType:s&&c.asType,name:c.name})}),o=y.factory.createNamedExports(n),a=U.string(t);return y.factory.createExportDeclaration(void 0,!s,o,a)},kr=({comment:e,assertion:t,destructure:r,exportConst:s,expression:n,name:o,typeName:a})=>{let i=t?y.factory.createAsExpression(n,typeof t=="string"?X({typeName:t}):t):n,p=b({text:o}),c=y.factory.createVariableDeclaration(r?y.factory.createObjectBindingPattern([y.factory.createBindingElement(void 0,void 0,p,void 0)]):p,void 0,a?typeof a=="string"?X({typeName:a}):a:void 0,i),m=y.factory.createVariableStatement(s?[y.factory.createModifier(y.SyntaxKind.ExportKeyword)]:void 0,y.factory.createVariableDeclarationList([c],y.NodeFlags.Const));return M({comments:e,node:m}),m},Nr=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],s=r.some(c=>typeof c!="object"||!c.asType),n=r.map(c=>{let m=typeof c=="string"?{name:c}:c;return U.import({alias:m.alias,asType:s&&m.asType,name:m.name})}),o=y.factory.createNamedImports(n),a=y.factory.createImportClause(!s,void 0,o),i=U.string(t);return y.factory.createImportDeclaration(void 0,a,i)};var wr=({accessLevel:e,comment:t,multiLine:r=!0,parameters:s=[],statements:n=[]})=>{let o=y.factory.createConstructorDeclaration(pt(e),Ye(s),y.factory.createBlock(n,r));return M({comments:t,node:o}),o},$r=({accessLevel:e,comment:t,isStatic:r=!1,multiLine:s=!0,name:n,parameters:o=[],returnType:a,statements:i=[],types:p=[]})=>{let c=pt(e);r&&(c=[...c,y.factory.createModifier(y.SyntaxKind.StaticKeyword)]);let m=y.factory.createMethodDeclaration(c,void 0,b({text:n}),void 0,p?Ze(p):void 0,Ye(o),a?B(a):void 0,y.factory.createBlock(i,s));return M({comments:t,node:m}),m},Ir=({decorator:e,members:t=[],name:r})=>{let s=[y.factory.createModifier(y.SyntaxKind.ExportKeyword)];e&&(s=[y.factory.createDecorator(ne({functionName:e.name,parameters:e.args.map(o=>ve({value:o})).filter(fe)})),...s]);let n=[];return t.forEach(o=>{n=[...n,o,b({text:`
14
+ `})];}),y.factory.createClassDeclaration(s,b({text:r}),[],[],n)};var Ee=({expression:e})=>y.factory.createExpressionStatement(e);var Mr=({expression:e})=>y.factory.createReturnStatement(e),jr=({args:e=[],name:t,types:r=[]})=>{let s=r.map(i=>X({typeName:i})),n=e.map(i=>y.isExpression(i)?i:b({text:i})).filter(fe),o=ne({functionName:t,parameters:n,types:s});return Mr({expression:o})},Hr=({expression:e})=>Mr({expression:typeof e=="string"?b({text:e}):e});var He=e=>e.slice(1).reduce((t,r)=>(pe.lastIndex=0,pe.test(r)?Yt({expression:t,name:r}):y.factory.createElementAccessChain(t,y.factory.createToken(y.SyntaxKind.QuestionDotToken),b({text:r}))),b({text:e[0]})),ut=e=>e.slice(1).reduce((t,r)=>te({expression:t,name:r}),b({text:e[0]})),Fr=({expressions:e})=>e.reduce((r,s)=>te({expression:r,name:s})),Br=({left:e,operator:t="=",right:r})=>y.factory.createBinaryExpression(e,t==="="?y.SyntaxKind.EqualsToken:t==="==="?y.SyntaxKind.EqualsEqualsEqualsToken:y.SyntaxKind.InKeyword,typeof r=="string"?b({text:r}):r),Fe=({expression:e,thenStatement:t,elseStatement:r})=>y.factory.createIfStatement(e,t,r),Lr=({path:e})=>{let t=He(e),r=ut(e),s=y.factory.createBlock([Ee({expression:y.factory.createBinaryExpression(r,y.SyntaxKind.EqualsToken,y.factory.createNewExpression(b({text:"Date"}),void 0,[r]))})]);return Fe({expression:t,thenStatement:s})},_r=({path:e,transformerName:t})=>{let r=He(e),s=ut(e),n=y.factory.createBlock([Ee({expression:ne({functionName:t,parameters:[s]})})],!0);return [Fe({expression:r,thenStatement:n})]},Ur=({path:e,transformerName:t})=>{let r=He(e),s=ut(e);return Fe({expression:ne({functionName:te({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:y.factory.createBlock([Ee({expression:y.factory.createCallChain(te({expression:s,name:"forEach"}),void 0,void 0,[b({text:t})])})],!0)})},Vr=({parameterName:e})=>{let t=b({text:"Date"});return y.factory.createNewExpression(t,void 0,[b({text:e})])},Kr=({path:e,transformExpression:t})=>{let r=He(e),s=ut(e);return Fe({expression:ne({functionName:te({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:y.factory.createBlock([Ee({expression:y.factory.createBinaryExpression(s,y.factory.createToken(y.SyntaxKind.EqualsToken),y.factory.createCallChain(te({expression:s,name:"map"}),void 0,void 0,[mt({parameters:[{name:"item"}],statements:t})]))})],!0)})};var ya=X({typeName:"null"}),Be=({isNullable:e,node:t})=>e?y.factory.createUnionTypeNode([t,ya]):t,en=({isNullable:e,properties:t})=>{let r=y.factory.createTypeLiteralNode(t.map(s=>{let n=s.isReadOnly?[y.factory.createModifier(y.SyntaxKind.ReadonlyKeyword)]:void 0,o=s.isRequired!==!1?void 0:y.factory.createToken(y.SyntaxKind.QuestionToken),a=B(s.type),i=y.factory.createPropertySignature(n,s.name,o,a);return M({comments:s.comment,node:i}),i}));return Be({isNullable:e,node:r})},et=({isNullable:e,types:t})=>{let r=t.map(n=>B(n)),s=y.factory.createUnionTypeNode(r);return Be({isNullable:e,node:s})},Wr=({isNullable:e,types:t})=>{let r=t.map(n=>B(n)),s=y.factory.createIntersectionTypeNode(r);return Be({isNullable:e,node:s})},Qr=({isNullable:e=!1,types:t})=>{let r=t.map(n=>B(n)),s=y.factory.createTupleTypeNode(r);return Be({isNullable:e,node:s})},Gr=(e,t,r=!1)=>{let s=et({types:e}),n=et({types:t}),o=en({properties:[{name:`[key: ${Re({node:s,unescape:!0})}]`,type:n}]});return Be({isNullable:r,node:o})},Xr=(e,t=!1)=>{let r=X({typeArguments:[et({types:e})],typeName:"Array"});return Be({isNullable:t,node:r})};var zr=e=>{let t=e.match(/\.[0-9a-z]+$/i),r=t?t[0].slice(1):"",s=e.slice(0,e.length-(r?r.length+1:0));return {extension:r,name:s}},K=class{_headers=[];_imports=new Map;_items=[];_name;_path;constructor({dir:t,name:r,header:s=!0}){this._name=this._setName(r),this._path=V.resolve(t,this.getName()),s&&(this._headers=[...this._headers,"// This file is auto-generated by @hey-api/openapi-ts"]);}add(...t){this._items=[...this._items,...t];}import({module:t,...r}){let s=this._imports.get(t);s||(s=new Map,this._imports.set(t,s));let n=s.get(r.name);return n||(s.set(r.name,r),r)}getName(t=!0){if(t)return this._name;let{name:r}=zr(this._name);return r}isEmpty(){return !this._items.length}remove(t){rmSync(this._path,t);}removeNode(){this._items=this._items.slice(0,this._items.length-1);}_setName(t){if(t.includes("index"))return t;let{extension:r,name:s}=zr(t);return [s,"gen",r].filter(Boolean).join(".")}toString(t=`
15
15
  `){let r=[];this._headers.length&&(r=[...r,this._headers.join(`
16
- `)]);let s=[];for(let[n,o]of this._imports.entries()){let a=Array.from(o.values()),i=l.namedImportDeclarations({imports:a,module:n});s=[...s,Ae({node:i})];}return s.length&&(r=[...r,s.join(`
17
- `)]),r=[...r,...this._items.map(n=>typeof n=="string"?n:Ae({node:n,unescape:!0}))],r.join(t)}write(t=`
18
- `){if(this.isEmpty()){this.remove({force:!0});return}let r=this._path;if(typeof this._path=="string"){let s=this._path.split(V.sep);r=s.slice(0,s.length-1).join(V.sep);}Ie(r),writeFileSync(this._path,this.toString(t));}},l={anonymousFunction:hr,arrayLiteralExpression:Yt,arrowFunction:ct,awaitExpression:xr,binaryExpression:Fr,callExpression:te,classDeclaration:$r,conditionalExpression:Tr,constVariable:qr,constructorDeclaration:Nr,enumDeclaration:Or,exportAllDeclaration:Er,exportNamedDeclaration:Sr,expressionToStatement:Se,identifier:b,ifStatement:He,indexedAccessTypeNode:Pr,isTsNode:ve,keywordTypeNode:pt,methodDeclaration:wr,namedImportDeclarations:kr,namespaceDeclaration:br,nodeToString:Ae,objectExpression:mt,ots:U,propertyAccessExpression:ee,propertyAccessExpressions:Hr,returnFunctionCall:Mr,returnVariable:jr,safeAccessExpression:je,stringLiteral:Cr,stringToTsNodes:gr,transformArrayMap:Vr,transformArrayMutation:_r,transformDateMutation:Br,transformFunctionMutation:Lr,transformNewDate:Ur,typeAliasDeclaration:Ar,typeArrayNode:Gr,typeInterfaceNode:Zt,typeIntersectionNode:Kr,typeNode:L,typeOfExpression:Rr,typeParenthesizedNode:vr,typeRecordNode:Qr,typeReferenceNode:G,typeTupleNode:Wr,typeUnionNode:Ye};var zr=async({files:e})=>{let t=g();e.index=new K({dir:t.output.path,name:"index.ts"}),t.name&&e.index.add(l.exportNamedDeclaration({exports:t.name,module:`./${t.name}`})),t.exportCore&&(e.index.add(l.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),t.services.response==="response"&&e.index.add(l.exportNamedDeclaration({exports:{asType:!0,name:"ApiResult"},module:"./core/ApiResult"})),t.name&&e.index.add(l.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),t.client.name!=="legacy/angular"&&e.index.add(l.exportNamedDeclaration({exports:["CancelablePromise","CancelError"],module:"./core/CancelablePromise"})),e.index.add(l.exportNamedDeclaration({exports:["OpenAPI",{asType:!0,name:"OpenAPIConfig"}],module:"./core/OpenAPI"}))),Object.keys(e).sort().forEach(r=>{let s=e[r];r==="index"||s.isEmpty()||e.index.add(l.exportAllDeclaration({module:`./${s.getName(!1)}`}));});};var Jr=async({client:e,files:t})=>{let r=g();if(A(r))for(let n of r.plugins){let o=n.output.split("/"),a=V.resolve(r.output.path,...o.slice(0,o.length-1));t[n.name]=new K({dir:a,name:`${o[o.length-1]}.ts`}),n.handler({client:e,files:t,outputParts:o,plugin:n});}};var tn=e=>{console.log(e);};var pe=({method:e,operation:t,operationIds:r,path:s})=>{let n=`${e} ${s}`,o=g(),a=o.services.filter?new RegExp(o.services.filter):void 0;a&&!a.test(n)||(t.operationId&&(r.has(t.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${t.operationId} in ${n}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):r.set(t.operationId,n)),console.log(t));};var nn=e=>{let t=new Map;for(let r in e.paths){let s=e.paths[r];s.delete&&pe({method:"DELETE",operation:s.delete,operationIds:t,path:r}),s.get&&pe({method:"GET",operation:s.get,operationIds:t,path:r}),s.head&&pe({method:"HEAD",operation:s.head,operationIds:t,path:r}),s.options&&pe({method:"OPTIONS",operation:s.options,operationIds:t,path:r}),s.patch&&pe({method:"PATCH",operation:s.patch,operationIds:t,path:r}),s.post&&pe({method:"POST",operation:s.post,operationIds:t,path:r}),s.put&&pe({method:"PUT",operation:s.put,operationIds:t,path:r}),s.trace&&pe({method:"TRACE",operation:s.trace,operationIds:t,path:r});}};var Yr,q=()=>Yr,Zr=e=>(Yr=e,q());var ut=["connect","delete","get","head","options","patch","post","put","trace"];function ft(e="1.0"){return String(e).replace(/^v/gi,"")}var Be="#/components/parameters/",dt="#/components/schemas/";var Oa=/[\p{Lu}]/u,ba=/[\p{Ll}]/u,no=/([\p{Alpha}\p{N}_]|$)/u,rn=/[_.\- ]+/,Pa=new RegExp("^"+rn.source),eo=new RegExp(rn.source+no.source,"gu"),to=new RegExp("\\d+"+no.source,"gu"),Ca=e=>{let t=!1,r=!1,s=!1,n=!1;for(let o=0;o<e.length;o++){let a=e[o];n=o>2?e[o-3]==="-":!0,t&&Oa.test(a)?(e=e.slice(0,o)+"-"+e.slice(o),t=!1,s=r,r=!0,o++):r&&s&&ba.test(a)&&!n?(e=e.slice(0,o-1)+"-"+e.slice(o-1),s=r,r=!1,t=!0):(t=a.toLocaleLowerCase()===a&&a.toLocaleUpperCase()!==a,s=r,r=a.toLocaleUpperCase()===a&&a.toLocaleLowerCase()!==a);}return e},H=({input:e,pascalCase:t})=>{let r=e.trim();return r.length?r.length===1?rn.test(r)?"":t?r.toLocaleUpperCase():r.toLocaleLowerCase():(r!==r.toLocaleLowerCase()&&(r=Ca(r)),r=r.replace(Pa,""),r=r.toLocaleLowerCase(),t&&(r=r.charAt(0).toLocaleUpperCase()+r.slice(1)),eo.lastIndex=0,to.lastIndex=0,r=r.replaceAll(to,(n,o,a)=>["_","-","."].includes(r.charAt(a+n.length))?n:n.toLocaleUpperCase()),r=r.replaceAll(eo,(n,o)=>o.toLocaleUpperCase()),r):""};var Le=e=>{let t=g();return t.services.name?t.services.name.replace("{{name}}",e):e},on=e=>g().types.name==="PascalCase"?H({input:e,pascalCase:!0}):e,ro=e=>{let t=on(e);return X(t).replace(Y,"_$1")};var oo=(e,t)=>{if(e.enum&&!t.includes("boolean"))return "enum"},sn=e=>_e(e).includes("null"),ye=e=>e.nullable===!0||sn(e),_e=({type:e})=>Array.isArray(e)?e:e?[e]:[];var Ta=e=>e.replace(st,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_"),X=e=>{st.lastIndex=0;let r=st.test(e)?`_${e}`:e;return Ta(r)},Ue=e=>e.replace(/^[^\p{ID_Start}]+/u,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"-").replace(/\$/g,"-"),an=e=>{let t=e.replace("[]","Array");return Ue(t)};var Ze=e=>e.trim().replace(/^#\/definitions\//,"").replace(/^#\/parameters\//,"").replace(/^#\/responses\//,"").replace(/^#\/securityDefinitions\//,"").replace(/^#\/components\/schemas\//,"").replace(/^#\/components\/responses\//,"").replace(/^#\/components\/parameters\//,"").replace(/^#\/components\/examples\//,"").replace(/^#\/components\/requestBodies\//,"").replace(/^#\/components\/headers\//,"").replace(/^#\/components\/securitySchemes\//,"").replace(/^#\/components\/links\//,"").replace(/^#\/components\/callbacks\//,"");var so=(e,t)=>{if(t==="binary")return "binary";switch(e){case"any":case"object":case"unknown":return "unknown";case"array":return "unknown[]";case"boolean":return "boolean";case"byte":case"double":case"float":case"int":case"integer":case"long":case"number":case"short":return "number";case"char":case"date":case"date-time":case"password":case"string":return "string";case"file":return "binary";case"null":return "null";case"void":return "void"}},io=/(?<!`1)\[.*\]$/g,P=({debug:e,format:t,type:r="unknown"})=>{let s={$refs:[],base:"unknown",imports:[],isNullable:!1,template:null,type:"unknown"};if(Array.isArray(r)){let a=r.filter(i=>i!=="null").map(i=>so(i,t)).filter(Boolean).join(" | ");return s.type=a,s.base=a,s.isNullable=sn({type:r}),s}let n=so(r,t);if(n)return s.type=n,s.base=n,s;let o=decodeURIComponent(Ze(r));if(io.lastIndex=0,io.test(o)){let a=o.match(/(.*?)\[(.*)\]$/);if(a?.length){let i=P({debug:e,type:X(a[1])}),p=P({debug:e,type:X(a[2])});return i.type==="unknown[]"?(s.type=`${p.type}[]`,s.base=`${p.type}`,i.$refs=[],i.imports=[]):p.type?(s.type=`${i.type}<${p.type}>`,s.base=i.type,s.template=p.type):(s.type=i.type,s.base=i.type,s.template=i.type),s.$refs=[...s.$refs,...i.$refs,...p.$refs],s.imports=[...s.imports,...i.imports,...p.imports],s}}if(o){let a=on(X(o));return r.startsWith(Be)&&(a=`Parameter${a}`),s.type=a,s.base=a,r.startsWith("#")&&(s.$refs=[...s.$refs,decodeURIComponent(r)]),s.imports=[...s.imports,a],s}return s};function F(e,t,r){return r.indexOf(e)===t}var Ve=(e,t)=>{if(!Array.isArray(t))return [];let r=(e["x-enum-descriptions"]??[]).filter(n=>typeof n=="string"),s=(e["x-enum-varnames"]??e["x-enumNames"]??[]).filter(n=>typeof n=="string");return t.filter(F).filter(n=>typeof n=="number"||typeof n=="string").map((n,o)=>({customDescription:r[o],customName:s[o],description:void 0,value:n}))};var k=e=>e?.replace(/\\/g,"\\\\").replace(/'/g,"\\'");var yt=({definition:e,getModel:t,openApi:r,types:s})=>{let n=[];return Object.entries(e.properties??{}).forEach(([o,a])=>{let i=!!e.required?.includes(o);if(a.$ref){let p=P({type:a.$ref});n.push({$refs:[],base:p.base,description:a.description||null,enum:[],enums:[],exclusiveMaximum:a.exclusiveMaximum,exclusiveMinimum:a.exclusiveMinimum,export:"reference",format:a.format,imports:p.imports,in:"",isDefinition:!1,isNullable:a["x-nullable"]===!0,isReadOnly:a.readOnly===!0,isRequired:i,link:null,maxItems:a.maxItems,maxLength:a.maxLength,maxProperties:a.maxProperties,maximum:a.maximum,minItems:a.minItems,minLength:a.minLength,minProperties:a.minProperties,minimum:a.minimum,multipleOf:a.multipleOf,name:Z(o),pattern:k(a.pattern),properties:[],template:p.template,type:p.type,uniqueItems:a.uniqueItems});}else {let p=t({definition:a,openApi:r,types:s});n.push({$refs:[],base:p.base,description:a.description||null,enum:p.enum,enums:p.enums,exclusiveMaximum:a.exclusiveMaximum,exclusiveMinimum:a.exclusiveMinimum,export:p.export,format:a.format,imports:p.imports,in:"",isDefinition:!1,isNullable:a["x-nullable"]===!0,isReadOnly:a.readOnly===!0,isRequired:i,link:p.link,maxItems:a.maxItems,maxLength:a.maxLength,maxProperties:a.maxProperties,maximum:a.maximum,minItems:a.minItems,minLength:a.minLength,minProperties:a.minProperties,minimum:a.minimum,multipleOf:a.multipleOf,name:Z(o),pattern:k(a.pattern),properties:p.properties,template:p.template,type:p.type,uniqueItems:a.uniqueItems});}}),n};var Ra=/~1/g,Aa=/~0/g;function v(e,t){if(t.$ref){let r=t.$ref.replace(/^#/g,"").split("/").filter(Boolean),s=e;return r.forEach(n=>{let o=decodeURIComponent(n.replace(Ra,"/").replace(Aa,"~"));if(s.hasOwnProperty(o))s=s[o];else throw new Error(`Could not find reference: "${t.$ref}"`)}),s}return t}var ao=({definitions:e,getModel:t,openApi:r,required:s,types:n})=>e.reduce((o,a)=>{if(a.$ref){let i=v(r,a);return [...o,...t({definition:i,openApi:r,types:n}).properties]}return [...o,...t({definition:a,openApi:r,types:n}).properties]},[]).filter(o=>!o.isRequired&&s.includes(o.name)).map(o=>({...o,isRequired:!0}));var po=({definition:e,definitions:t,getModel:r,openApi:s,type:n,types:o})=>{let a={$refs:[],enums:[],export:n,imports:[],properties:[]},i=[];if(t.map(p=>r({definition:p,openApi:s,types:o})).filter(p=>{let c=p.properties.length,m=p.enums.length;return !(p.type==="unknown"&&!c&&!m)}).forEach(p=>{a.imports.push(...p.imports),a.enums.push(...p.enums),a.properties.push(p);}),e.required){let p=ao({definitions:t,getModel:r,openApi:s,required:e.required,types:o});p.forEach(c=>{a.imports.push(...c.imports),a.enums.push(...c.enums);}),i.push(...p);}if(e.properties){let p=yt({definition:e,getModel:r,openApi:s,types:o});p.forEach(c=>{a.imports.push(...c.imports),a.enums.push(...c.enums),c.export==="enum"&&a.enums.push(c);}),i.push(...p);}return i.length&&a.properties.push({$refs:[],base:"unknown",description:"",enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"properties",properties:i,template:null,type:"unknown"}),a};var oe=({definition:e,isDefinition:t=!1,meta:r,openApi:s,types:n})=>{let o={$refs:[],base:"unknown",description:e.description||null,enum:[],enums:[],exclusiveMaximum:e.exclusiveMaximum,exclusiveMinimum:e.exclusiveMinimum,export:"interface",format:e.format,imports:[],in:"",isDefinition:t,isNullable:e["x-nullable"]===!0,isReadOnly:e.readOnly===!0,isRequired:!1,link:null,maxItems:e.maxItems,maxLength:e.maxLength,maxProperties:e.maxProperties,maximum:e.maximum,meta:r,minItems:e.minItems,minLength:e.minLength,minProperties:e.minProperties,minimum:e.minimum,multipleOf:e.multipleOf,name:r?.name??"",pattern:k(e.pattern),properties:[],template:null,type:"unknown",uniqueItems:e.uniqueItems};if(e.$ref){let a=P({type:e.$ref});return o.export="reference",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}if(e.enum&&e.type!=="boolean"){let a=Ve(e,e.enum);if(a.length)return o.base="string",o.enum=[...o.enum,...a],o.export="enum",o.type="string",o}if(e.type==="array"&&e.items)if(e.items.$ref){let a=P({type:e.items.$ref});return o.export="array",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}else {let a=oe({definition:e.items,openApi:s,types:n});return o.export="array",o.type=a.type,o.base=a.base,o.template=a.template,o.link=a,o.imports.push(...a.imports),o}if(e.type==="object"&&typeof e.additionalProperties=="object")if(e.additionalProperties.$ref){let a=P({type:e.additionalProperties.$ref});return o.export="dictionary",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}else {let a=oe({definition:e.additionalProperties,openApi:s,types:n});return o.export="dictionary",o.type=a.type,o.base=a.base,o.template=a.template,o.link=a,o.imports.push(...a.imports),o}if(e.allOf?.length){let a=po({definition:e,definitions:e.allOf,getModel:oe,openApi:s,type:"all-of",types:n});return o.export=a.export,o.imports.push(...a.imports),o.properties.push(...a.properties),o.enums=[...o.enums,...a.enums],o}if(e.type==="object")return o.export="interface",o.type="unknown",o.base="unknown",e.properties&&yt({definition:e,getModel:oe,openApi:s,types:n}).forEach(i=>{o.imports.push(...i.imports),o.enums=[...o.enums,...i.enums],o.properties.push(i),i.export==="enum"&&(o.enums=[...o.enums,i]);}),o;if(e.type){let a=P({format:e.format,type:e.type});return o.export="generic",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}return o};var co=e=>{let t={},r=[];return Object.entries(e.definitions??{}).forEach(([s,n])=>{let a=P({type:s}).base.replace(Y,"_$1"),i={$ref:`#/definitions/${s}`,name:a};t[a]=i;let p=oe({definition:n,isDefinition:!0,meta:i,openApi:e,types:t});r=[...r,p];}),{models:r,types:t}};var ge=e=>`${e.method} ${e.path}`,gt=e=>{let t=e.find(r=>r.in==="header");return t?t.name:null},se=e=>e.some(r=>r.isRequired),ht=e=>{if(e==="default")return "default";if(e==="1XX")return "1XX";if(e==="2XX")return "2XX";if(e==="3XX")return "3XX";if(e==="4XX")return "4XX";if(e==="5XX")return "5XX";if(/\d{3}/g.test(e)){let t=Number.parseInt(e,10);if(t>=100&&t<600)return t}return null},xt=(e,t)=>e.code>t.code?1:e.code<t.code?-1:0,va=e=>e==="3XX"||e==="4XX"||e==="5XX"||typeof e=="number"&&e>=300,mo=e=>e==="2XX"||typeof e=="number"&&e>=200&&e<300,Ea=(e,t)=>{let r=[],s=c=>{r.includes(c)||(r=[...r,c]);};t.some(({code:c})=>mo(c))||s("success");let o=(e.description??"").toLocaleLowerCase(),a=e.$refs.join("|").toLocaleLowerCase(),i=["error","problem"];return ["success"].some(c=>o.includes(c)||a.includes(c))&&s("success"),i.some(c=>o.includes(c)||a.includes(c))&&s("error"),r.length||s("error"),r},Ot=e=>e.map(t=>{let{code:r}=t;return r==="default"?t.responseTypes=Ea(t,e):mo(r)?t.responseTypes=["success"]:va(r)&&(t.responseTypes=["error"]),t});var E=(e,t)=>{if(e.default===void 0||e.default===null)return e.default;switch(_e(e).find(n=>n!=="null")||typeof e.default){case"int":case"integer":case"number":if(t?.export==="enum"&&t.enum?.[e.default]){let{value:n}=t.enum[e.default];return n}return e.default;case"array":case"boolean":case"object":case"string":return e.default;default:return}};var lo=({openApi:e,parameter:t,types:r})=>{let s=q(),n={$refs:[],base:"unknown",description:t.description||null,enum:[],enums:[],exclusiveMaximum:t.exclusiveMaximum,exclusiveMinimum:t.exclusiveMinimum,export:"interface",format:t.format,imports:[],in:t.in,isDefinition:!1,isNullable:t["x-nullable"]===!0,isReadOnly:!1,isRequired:t.required===!0,link:null,maxItems:t.maxItems,maxLength:t.maxLength,maximum:t.maximum,mediaType:null,minItems:t.minItems,minLength:t.minLength,minimum:t.minimum,multipleOf:t.multipleOf,pattern:k(t.pattern),prop:t.name,properties:[],template:null,type:"unknown",uniqueItems:t.uniqueItems},o={...n,name:s.nameFn.operationParameter(n)};if(t.$ref){let i=P({type:t.$ref});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"reference",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}if(t.enum){let i=Ve(t,t.enum);if(i.length)return o={...o,base:"string",enum:[...o.enum,...i],export:"enum",type:"string"},o.default=E(t,o),o}if(t.type==="array"&&t.items){let i=P({format:t.items.format,type:t.items.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"array",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}if(t.type==="object"&&t.items){let i=P({format:t.items.format,type:t.items.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"dictionary",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}let a=t.schema;if(a){if(a.$ref?.startsWith("#/parameters/")&&(a=v(e,a)),a.$ref){let p=P({type:a.$ref});return o={...o,$refs:[...o.$refs,...p.$refs],base:p.base,export:"reference",imports:[...o.imports,...p.imports],template:p.template,type:p.type},o.default=E(t,o),o}let i=oe({definition:a,openApi:e,types:r});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,enum:[...o.enum,...i.enum],enums:[...o.enums,...i.enums],export:i.export,imports:[...o.imports,...i.imports],link:i.link,properties:[...o.properties,...i.properties],template:i.template,type:i.type},o.default=E(t,o),o}if(t.type){let i=P({format:t.format,type:t.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"generic",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}return o};var Sa=["body","formData","header","path","query"],bt=({openApi:e,parameters:t,types:r})=>{let s=q(),n={$refs:[],imports:[],parameters:[],parametersBody:null,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[]};return t.forEach(o=>{let a=v(e,o),i=lo({openApi:e,parameter:a,types:r}),p=s.filterFn?.operationParameter&&!s.filterFn?.operationParameter(i);if(!(!Sa.includes(a.in)||p)){switch(a.in){case"body":n.parametersBody=i;break;case"formData":n.parametersForm=[...n.parametersForm,i];break;case"header":n.parametersHeader=[...n.parametersHeader,i];break;case"path":n.parametersPath=[...n.parametersPath,i];break;case"query":n.parametersQuery=[...n.parametersQuery,i];break}n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.parameters=[...n.parameters,i];}}),n};function Pt(e){return e.sort((t,r)=>{let s=t.isRequired&&t.default===void 0,n=r.isRequired&&r.default===void 0;return s&&!n?-1:n&&!s?1:0})}var uo=({code:e,openApi:t,response:r,types:s})=>{let n={$refs:[],base:e!==204?"unknown":"void",code:e,description:r.description||null,enum:[],enums:[],export:"generic",imports:[],in:"response",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],responseTypes:[],template:null,type:e!==204?"unknown":"void"},o=r.schema;if(o){if(o.$ref?.startsWith("#/responses/")&&(o=v(t,o)),o.$ref){let i=P({type:o.$ref});return n.export="reference",n.type=i.type,n.base=i.base,n.template=i.template,n.imports=[...n.imports,...i.imports],n}let a=oe({definition:o,openApi:t,types:s});return n.export=a.export,n.type=a.type,n.base=a.base,n.template=a.template,n.link=a.link,n.isReadOnly=a.isReadOnly,n.isRequired=a.isRequired,n.isNullable=a.isNullable,n.format=a.format,n.maximum=a.maximum,n.exclusiveMaximum=a.exclusiveMaximum,n.minimum=a.minimum,n.exclusiveMinimum=a.exclusiveMinimum,n.multipleOf=a.multipleOf,n.maxLength=a.maxLength,n.minLength=a.minLength,n.maxItems=a.maxItems,n.minItems=a.minItems,n.uniqueItems=a.uniqueItems,n.maxProperties=a.maxProperties,n.minProperties=a.minProperties,n.pattern=k(a.pattern),n.imports=[...n.imports,...a.imports],n.enum=[...n.enum,...a.enum],n.enums=[...n.enums,...a.enums],n.properties=[...n.properties,...a.properties],n}if(r.headers)for(let a in r.headers)return n.in="header",n.name=a,n.type="string",n.base="string",n;return n};var fo=({openApi:e,responses:t,types:r})=>{let s=[];return Object.entries(t).forEach(([n,o])=>{let a=ht(n);if(!a)return;let i=v(e,o),p=uo({code:a,openApi:e,response:i,types:r});s=[...s,p];}),s=Ot(s),s.sort(xt)};var yo=({method:e,op:t,openApi:r,types:s,pathParams:n,url:o})=>{let a=q(),i={$refs:[],deprecated:t.deprecated===!0,description:t.description||null,id:t.operationId||null,imports:[],method:e.toUpperCase(),parameters:[...n.parameters],parametersBody:n.parametersBody,parametersCookie:[...n.parametersCookie],parametersForm:[...n.parametersForm],parametersHeader:[...n.parametersHeader],parametersPath:[...n.parametersPath],parametersQuery:[...n.parametersQuery],path:o,responseHeader:null,responses:[],summary:t.summary||null,tags:t.tags||null},p={...i,name:a.nameFn.operation(i)};if(t.parameters){let c=bt({openApi:r,parameters:t.parameters,types:s});p.$refs=[...p.$refs,...c.$refs],p.imports=[...p.imports,...c.imports],p.parameters=[...p.parameters,...c.parameters],p.parametersBody=c.parametersBody,p.parametersCookie=[...p.parametersCookie,...c.parametersCookie],p.parametersForm=[...p.parametersForm,...c.parametersForm],p.parametersHeader=[...p.parametersHeader,...c.parametersHeader],p.parametersPath=[...p.parametersPath,...c.parametersPath],p.parametersQuery=[...p.parametersQuery,...c.parametersQuery];}if(t.responses){p.responses=fo({openApi:r,responses:t.responses,types:s});let c=p.responses.filter(m=>m.responseTypes.includes("success"));p.responseHeader=gt(c),c.forEach(m=>{p.$refs=[...p.$refs,...m.$refs],p.imports=[...p.imports,...m.imports];});}return p.parameters=Pt(p.parameters),p};var go=({openApi:e,types:t})=>{let r=q(),s=new Map,n=[];for(let o in e.paths){let a=e.paths[o],i=bt({openApi:e,parameters:a.parameters??[],types:t});for(let p in a){let c=p,m=ge({method:c.toUpperCase(),path:o});if(ut.includes(c)){let u=a[c];if(u.operationId&&(s.has(u.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${u.operationId} in ${m}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):s.set(u.operationId,m)),!r.filterFn?.operation||r.filterFn?.operation(m)){let d=yo({method:c,op:u,openApi:e,pathParams:i,types:t,url:o});n.push(d);}}}}return n};var ho=e=>{let t=e.schemes?.[0]||"http",r=e.host,s=e.basePath||"";return (r?`${t}://${r}${s}`:s).replace(/\/$/g,"")};var xo=e=>{let t=ft(e.info.version),r=ho(e),{models:s,types:n}=co(e),o=go({openApi:e,types:n});return {models:s,operations:o,server:r,types:n,version:t}};var Oo=e=>{let r=`Parameter${P({type:e}).base.replace(Y,"_$1")}`;return {$ref:Be+e,name:r}},Ct=e=>{let t=ro(e);return {$ref:dt+e,name:t}};var qa=(e,t)=>{if(t)return t;if(typeof e=="number")return `'_${e}'`;let r="";return typeof e=="string"&&(r=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_").replace(/^([^$_\p{ID_Start}])/u,"_$1").replace(/(\p{Lowercase})(\p{Uppercase}+)/gu,"$1_$2")),r=r.trim(),r||(r="empty_string"),r.toUpperCase()},bo=e=>e.map(t=>Tt(t.value,!0)).filter(F).join(" | "),Tt=(e,t=!1)=>typeof e=="string"?e.includes("'")&&t?`"${e}"`:`'${e}'`:e,Rt=e=>{let t=qa(e.value,e.customName),r=Tt(e.value);return {key:t,value:r}},At=e=>{let t=e.enum.map(r=>Rt(r)).sort((r,s)=>$e(r.key,s.key)).map(r=>`${r.key}=${r.value}`).join("&");return {$ref:`enum/${e.name}/${t}`,name:X(Me(e.name))}};var ka=e=>{let t={};for(let r in e)t[e[r]]=r;return t},Po=(e,t)=>{if(e.components&&t){for(let r in e.components.schemas)if(e.components.schemas.hasOwnProperty(r)){let s=e.components.schemas[r];if(s.discriminator&&s.oneOf?.length&&s.oneOf.some(n=>n.$ref&&Ze(n.$ref)==t.name))return s.discriminator}}},Co=(e,t)=>{if(e.mapping){let r=ka(e.mapping),s=Object.keys(r).find(n=>Ze(n)==t.name);if(s&&r[s])return r[s]}return t.name};var pn=({debug:e,definition:t,getModel:r,model:s,openApi:n,types:o})=>{let a=typeof t.additionalProperties=="object"?t.additionalProperties:{},i=r({debug:e,definition:a,openApi:n,parentDefinition:t,types:o});if(a.$ref){let p=P({type:a.$ref});return s.base=p.base,s.default=E(t,s),s.export="dictionary",s.imports.push(...p.imports),s.template=p.template,s.type=p.type,s}if(t.additionalProperties&&t.properties&&Object.keys(t.properties).length>0){let p=typeof t.additionalProperties=="object"&&t.additionalProperties.type&&!Array.isArray(t.additionalProperties.type)?t.additionalProperties.type:i.base,c=[P({type:p}).base,...s.properties.map(m=>m.base)];return i.base=c.filter(F).join(" | "),i.default=E(t,s),i.export="generic",i.isRequired=t.additionalProperties===!0,i.name="[key: string]",i}return s.base=i.base,s.default=E(t,s),s.export="dictionary",s.imports.push(...i.imports),s.link=i,s.template=i.template,s.type=i.type,s},vt=({debug:e,definition:t,getModel:r,openApi:s,parent:n,types:o})=>{let a=[],i=Po(s,n);return Object.entries(t.properties??{}).forEach(([p,c])=>{let m=!!t.required?.includes(p),u={default:c.default,deprecated:c.deprecated===!0,description:c.description||null,exclusiveMaximum:c.exclusiveMaximum,exclusiveMinimum:c.exclusiveMinimum,format:c.type==="array"?c.items?.format??c.format:c.format,in:"",isDefinition:!1,isReadOnly:c.readOnly===!0,isRequired:m,maxItems:c.maxItems,maxLength:c.maxLength,maxProperties:c.maxProperties,maximum:c.maximum,minItems:c.minItems,minLength:c.minLength,minProperties:c.minProperties,minimum:c.minimum,multipleOf:c.multipleOf,name:Z(p),pattern:k(c.pattern),uniqueItems:c.uniqueItems};if(n&&i?.propertyName==p){a=[...a,{...u,$refs:[],base:`'${Co(i,n)}'`,enum:[],enums:[],export:"reference",imports:[],isNullable:ye(c),link:null,properties:[],template:null,type:"string"}];return}if(c.$ref){let h=P({type:c.$ref});a=[...a,{...u,$refs:h.$refs,base:h.base,enum:[],enums:[],export:"reference",imports:h.imports,isNullable:h.isNullable||ye(c),link:null,properties:[],template:h.template,type:h.type}];return}let d=r({debug:e,definition:c,initialValues:u,openApi:s,parentDefinition:t,types:o});d.isNullable=d.isNullable||ye(c),a=[...a,d];}),a};var To=({definitions:e,getModel:t,openApi:r,required:s,types:n})=>e.reduce((a,i)=>{if(i.$ref){let p=P({type:i.$ref}),c={$ref:i.$ref,name:p.base};n[p.base]=c;let m=v(r,i);return [...a,...t({definition:m,meta:c,openApi:r,types:n}).properties]}return [...a,...t({definition:i,openApi:r,parentDefinition:i,types:n}).properties]},[]).filter(a=>!a.isRequired&&s.includes(a.name)).map(a=>({...a,isRequired:!0}));var Et=e=>[{definitions:e.allOf,type:"all-of"},{definitions:e.anyOf,type:"any-of"},{definitions:e.oneOf,type:"one-of"}].find(r=>r.definitions?.length),Ro=({debug:e,definition:t,definitions:r,getModel:s,model:n,openApi:o,type:a,types:i})=>{let p={$refs:n.$refs,enums:n.enums,export:a,imports:n.imports,properties:n.properties},c=[];if(r.map(m=>s({debug:e,definition:m,openApi:o,parentDefinition:t,types:i})).forEach(m=>{p.$refs=[...p.$refs,...m.$refs],p.imports=[...p.imports,...m.imports],p.enums=[...p.enums,...m.enums],p.properties=[...p.properties,m];}),t.required){let m=To({definitions:r,getModel:s,openApi:o,required:t.required,types:i});m.forEach(u=>{p.$refs=[...p.$refs,...u.$refs],p.imports=[...p.imports,...u.imports],p.enums=[...p.enums,...u.enums];}),c=[...c,...m];}if(t.properties){let m=vt({definition:t,getModel:s,openApi:o,types:i});m.forEach(u=>{p.$refs=[...p.$refs,...u.$refs],p.imports=[...p.imports,...u.imports],p.enums=[...p.enums,...u.enums],u.export==="enum"&&(p.enums=[...p.enums,u]);}),c=[...c,...m];}if(c.length){let m=Et(t);if(m){let u={$refs:[],base:"unknown",description:"",enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"properties",properties:c,template:null,type:"unknown"};m.type==="one-of"?(p.properties=[{...p,base:"",description:null,enum:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!0,link:null,name:"",template:null,type:""},u],p.export="all-of"):p.properties=[...p.properties,u];}}return p};var I=({debug:e,definition:t,initialValues:r={},isDefinition:s=!1,meta:n,openApi:o,parentDefinition:a=null,types:i})=>{let p=_e(t),c=oo(t,p),m={$refs:[],base:"unknown",deprecated:!!t.deprecated,description:t.description||null,enum:[],enums:[],exclusiveMaximum:t.exclusiveMaximum,exclusiveMinimum:t.exclusiveMinimum,export:"interface",format:t.format,imports:[],in:"",isDefinition:s,isNullable:ye(t),isReadOnly:t.readOnly===!0,isRequired:!1,link:null,maxItems:t.maxItems,maxLength:t.maxLength,maxProperties:t.maxProperties,maximum:t.maximum,meta:n,minItems:t.minItems,minLength:t.minLength,minProperties:t.minProperties,minimum:t.minimum,multipleOf:t.multipleOf,name:n?.name??"",pattern:k(t.pattern),properties:[],template:null,type:"unknown",uniqueItems:t.uniqueItems,...r};if(t.$ref){let d=P({debug:e,type:t.$ref});return m.$refs=[...m.$refs,decodeURIComponent(t.$ref)],m.base=d.base,m.export="reference",m.imports=[...m.imports,...d.imports],m.template=d.template,m.type=d.type,m.default=E(t,m),m}if(c==="enum"){let d=Ve(t,t.enum);if(d.length)return m.base="string",m.enum=[...m.enum,...d],m.export="enum",m.type="string",m.default=E(t,m),m.meta||(m.meta=At(m)),m}if(p.includes("array")&&(t.items||t.prefixItems)){if(t.prefixItems){let O=t.prefixItems.map(T=>I({definition:T,openApi:o,parentDefinition:t,types:i}));return m.export="array",m.$refs=[...m.$refs,...O.reduce((T,x)=>[...T,...x.$refs],[])],m.imports=[...m.imports,...O.reduce((T,x)=>[...T,...x.imports],[])],m.link=O,m.default=E(t,m),m}if(!t.items)return m;if(t.items.$ref){let O=P({type:t.items.$ref});return m.$refs=[...m.$refs,decodeURIComponent(t.items.$ref)],m.base=O.base,m.export="array",m.imports=[...m.imports,...O.imports],m.template=O.template,m.type=O.type,m.default=E(t,m),m}if(t.items.anyOf&&a&&a.type){let O=Et(a);if(O&&O.definitions.some(T=>!_e(T).includes("array")))return I({definition:t.items,openApi:o,parentDefinition:t,types:i})}let d=Array.isArray(t.items)?{anyOf:t.items}:t.items,h=I({definition:d,openApi:o,parentDefinition:t,types:i});return m.base=h.base,m.export="array",m.$refs=[...m.$refs,...h.$refs],m.imports=[...m.imports,...h.imports],m.link=h,m.template=h.template,m.type=h.type,m.default=E(t,m),m}let u=Et(t);if(u){let d=Ro({...u,debug:e,definition:t,getModel:I,model:m,openApi:o,types:i});return {...m,...d}}if(p.includes("object")||t.properties||t.additionalProperties){if(t.properties&&(Object.keys(t.properties).length>0||!t.additionalProperties)){if(m.base="unknown",m.export="interface",m.type="unknown",m.default=E(t,m),vt({debug:e,definition:t,getModel:I,openApi:o,parent:m,types:i}).forEach(O=>{m.$refs=[...m.$refs,...O.$refs],m.enums=[...m.enums,...O.enums],m.imports=[...m.imports,...O.imports],m.properties=[...m.properties,O],O.export==="enum"&&(m.enums=[...m.enums,O]);}),t.additionalProperties){let O=pn({debug:e,definition:t,getModel:I,model:m,openApi:o,types:i});m.properties=[...m.properties,O];}return !m.properties.length&&m.base==="unknown"&&m.type==="unknown"&&(m.export="dictionary",m.name||(m.name="[key: string]")),m}return pn({debug:e,definition:t,getModel:I,model:m,openApi:o,types:i})}if(t.const!==void 0){let d=t.const,h=typeof d=="string"?`"${d}"`:`${d}`;return m.base=h,m.export="const",m.type=h,m}if(p.length){let d=P({format:t.format,type:t.type});return m.base=d.base,m.export="generic",m.$refs=[...m.$refs,...d.$refs],m.imports=[...m.imports,...d.imports],m.isNullable=d.isNullable||m.isNullable,m.template=d.template,m.type=d.type,m.default=E(t,m),m}return m};var St=e=>{if(e.schema)return e.schema;if(e.content){let t=Object.entries(e.content);for(let[r,s]of t)if(s.schema){let n=r;return e.content[n].schema}}};var Ao=e=>{let t=q(),r={},s=[];return e.components?(Object.entries(e.components.schemas??{}).forEach(([n,o])=>{let a=Ct(n);r[a.name]=a;let i=I({definition:o,isDefinition:!0,meta:a,openApi:e,types:r});s=[...s,i];}),Object.entries(e.components.parameters??{}).forEach(([n,o])=>{let a=St(o);if(!a){t.debug&&console.warn("Skipping generating parameter:",n);return}let i=Oo(n);r[i.name]=i;let p=I({definition:a,isDefinition:!0,meta:i,openApi:e,types:r});p.deprecated=o.deprecated,p.description=o.description||null,s=[...s,p];}),{models:s,types:r}):{models:s,types:r}};var vo=({openApi:e,parameter:t,types:r})=>{let s=q(),n={$refs:[],base:"unknown",deprecated:t.deprecated===!0,description:t.description||null,enum:[],enums:[],export:"interface",imports:[],in:t.in,isDefinition:!1,isNullable:ye(t),isReadOnly:!1,isRequired:t.required===!0,link:null,mediaType:null,prop:t.name,properties:[],template:null,type:"unknown"},o={...n,name:s.nameFn.operationParameter(n)};if(t.$ref){let i=P({type:t.$ref});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"reference",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o}let a=St(t);if(a){if(a.$ref?.startsWith(Be)&&(a=v(e,a)),a.$ref){let p=P({type:a.$ref});return o={...o,$refs:[...o.$refs,...p.$refs],base:p.base,export:"reference",imports:[...o.imports,...p.imports],template:p.template,type:p.type},o.default=E(a),o}let i=I({definition:a,openApi:e,types:r});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,enum:[...o.enum,...i.enum],enums:[...o.enums,...i.enums],exclusiveMaximum:i.exclusiveMaximum,exclusiveMinimum:i.exclusiveMinimum,export:i.export,format:i.format,imports:[...o.imports,...i.imports],isNullable:o.isNullable||i.isNullable,isReadOnly:i.isReadOnly,isRequired:o.isRequired||i.isRequired,link:i.link,maxItems:i.maxItems,maxLength:i.maxLength,maxProperties:i.maxProperties,maximum:i.maximum,minItems:i.minItems,minLength:i.minLength,minProperties:i.minProperties,minimum:i.minimum,multipleOf:i.multipleOf,pattern:k(i.pattern),properties:[...o.properties,...i.properties],template:i.template,type:i.type,uniqueItems:i.uniqueItems},(o.enum.length||o.enums.length)&&!o.meta&&(o.meta=At(o)),o.default=i.default,o}return o};var Na=["cookie","formData","header","path","query"],qt=({openApi:e,parameters:t,types:r})=>{let s=q(),n={$refs:[],imports:[],parameters:[],parametersBody:null,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[]};return t.forEach(o=>{let a=v(e,o),i=vo({openApi:e,parameter:a,types:r}),p=s.filterFn?.operationParameter&&!s.filterFn?.operationParameter(i);if(!(!Na.includes(a.in)||p)){switch(a.in){case"cookie":n.parametersCookie=[...n.parametersCookie,i];break;case"formData":n.parametersForm=[...n.parametersForm,i];break;case"header":n.parametersHeader=[...n.parametersHeader,i];break;case"path":n.parametersPath=[...n.parametersPath,i];break;case"query":n.parametersQuery=[...n.parametersQuery,i];break}n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.parameters=[...n.parameters,i];}}),n};var wa=["application/json-patch+json","application/json","application/ld+json","application/x-www-form-urlencoded","multipart/batch","multipart/form-data","multipart/mixed","multipart/related","text/json","text/plain"],kt=(e,t)=>{let r=Object.keys(t).filter(n=>{let o=n.split(";")[0].trim();return wa.includes(o)}).find(n=>!!t[n]?.schema);if(r)return {mediaType:r,schema:t[r].schema};let s=Object.keys(t).find(n=>!!t[n]?.schema);if(s)return {mediaType:s,schema:t[s].schema}};var Eo=({body:e,debug:t,openApi:r,types:s})=>{let n=e["x-body-name"]??"requestBody",o={$refs:[],base:"unknown",default:void 0,description:e.description||null,enum:[],enums:[],export:"interface",imports:[],in:"body",isDefinition:!1,isNullable:e.nullable===!0,isReadOnly:!1,isRequired:e.required===!0,link:null,mediaType:null,name:n,prop:n,properties:[],template:null,type:"unknown"};if(!e.content)return o;let a=kt(r,e.content);if(!a)return o;switch(o.mediaType=a.mediaType,o.mediaType){case"application/x-www-form-urlencoded":case"multipart/form-data":o.in="formData",o.name="formData",o.prop="formData";break}if(a.schema.$ref){let p=P({type:a.schema.$ref});return o.export="reference",o.type=p.type,o.base=p.base,o.template=p.template,o.$refs=[...o.$refs,...p.$refs],o.imports=[...o.imports,...p.imports],o}let i=I({debug:t,definition:a.schema,openApi:r,types:s});return o.$refs=[...o.$refs,...i.$refs],o.base=i.base,o.enum=[...o.enum,...i.enum],o.enums=[...o.enums,...i.enums],o.exclusiveMaximum=i.exclusiveMaximum,o.exclusiveMinimum=i.exclusiveMinimum,o.export=i.export,o.format=i.format,o.imports=[...o.imports,...i.imports],o.isNullable=o.isNullable||i.isNullable,o.isReadOnly=i.isReadOnly,o.isRequired=o.isRequired||i.isRequired,o.link=i.link,o.maximum=i.maximum,o.maxItems=i.maxItems,o.maxLength=i.maxLength,o.maxProperties=i.maxProperties,o.minimum=i.minimum,o.minItems=i.minItems,o.minLength=i.minLength,o.minProperties=i.minProperties,o.multipleOf=i.multipleOf,o.pattern=k(i.pattern),o.properties=[...o.properties,...i.properties],o.template=i.template,o.type=i.type,o.uniqueItems=i.uniqueItems,o};var So=({code:e,openApi:t,response:r,types:s})=>{let n={$refs:[],base:e!==204?"unknown":"void",code:e,description:r.description||null,enum:[],enums:[],export:"generic",imports:[],in:"response",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],responseTypes:[],template:null,type:e!==204?"unknown":"void"};if(r.content){let o=kt(t,r.content);if(o){if(o.schema.$ref?.startsWith("#/components/responses/")&&(o.schema=v(t,o.schema)),o.schema.$ref){let i=P({type:o.schema.$ref});return n.base=i.base,n.export="reference",n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.template=i.template,n.type=i.type,n}let a=I({definition:o.schema,openApi:t,types:s});return n.export=a.export,n.type=a.type,n.base=a.base,n.template=a.template,n.link=a.link,n.isReadOnly=a.isReadOnly,n.isRequired=a.isRequired,n.isNullable=a.isNullable,n.format=a.format,n.maximum=a.maximum,n.exclusiveMaximum=a.exclusiveMaximum,n.minimum=a.minimum,n.exclusiveMinimum=a.exclusiveMinimum,n.multipleOf=a.multipleOf,n.maxLength=a.maxLength,n.minLength=a.minLength,n.maxItems=a.maxItems,n.minItems=a.minItems,n.uniqueItems=a.uniqueItems,n.maxProperties=a.maxProperties,n.minProperties=a.minProperties,n.pattern=k(a.pattern),n.$refs=[...n.$refs,...a.$refs],n.imports=[...n.imports,...a.imports],n.enum=[...n.enum,...a.enum],n.enums=[...n.enums,...a.enums],n.properties=[...n.properties,...a.properties],n}}if(r.headers)for(let o in r.headers)return n.in="header",n.name=o,n.type="string",n.base="string",n;return n};var qo=({debug:e,openApi:t,responses:r,types:s})=>{let n=[];return Object.entries(r).forEach(([o,a])=>{let i=ht(o);if(!i)return;let p=v(t,a),c=So({code:i,openApi:t,response:p,types:s});n=[...n,c];}),n=Ot(n),n.sort(xt)};var Ke=(e,t)=>{let r=[...e],s=[...t];for(;s.length>0;){let n=s[0];s=s.slice(1),r.every(a=>a.in!==n.in||a.name!==n.name)&&(r=[...r,n]);}return r},ko=({debug:e,method:t,op:r,openApi:s,pathParams:n,types:o,url:a})=>{let i=q(),p={$refs:[],deprecated:!!r.deprecated,description:r.description||null,id:r.operationId||null,imports:[],method:t.toUpperCase(),parameters:[],parametersBody:n.parametersBody,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[],path:a,responseHeader:null,responses:[],summary:r.summary||null,tags:r.tags||null},c={...p,name:i.nameFn.operation(p)};if(r.parameters){let m=qt({openApi:s,parameters:r.parameters,types:o});c.$refs=[...c.$refs,...m.$refs],c.imports=[...c.imports,...m.imports],c.parameters=[...c.parameters,...m.parameters],c.parametersBody=m.parametersBody,c.parametersCookie=[...c.parametersCookie,...m.parametersCookie],c.parametersForm=[...c.parametersForm,...m.parametersForm],c.parametersHeader=[...c.parametersHeader,...m.parametersHeader],c.parametersPath=[...c.parametersPath,...m.parametersPath],c.parametersQuery=[...c.parametersQuery,...m.parametersQuery];}if(r.requestBody){let m=v(s,r.requestBody),u=Eo({body:m,debug:e,openApi:s,types:o});c.$refs=[...c.$refs,...u.$refs],c.imports=[...c.imports,...u.imports],c.parameters=[...c.parameters,u],c.parametersBody=u;}if(r.responses){c.responses=qo({openApi:s,responses:r.responses,types:o});let m=c.responses.filter(u=>u.responseTypes.includes("success"));c.responseHeader=gt(m),m.forEach(u=>{c.$refs=[...c.$refs,...u.$refs],c.imports=[...c.imports,...u.imports];});}return c.parameters=Ke(c.parameters,n.parameters),c.parametersCookie=Ke(c.parametersCookie,n.parametersCookie),c.parametersForm=Ke(c.parametersForm,n.parametersForm),c.parametersHeader=Ke(c.parametersHeader,n.parametersHeader),c.parametersPath=Ke(c.parametersPath,n.parametersPath),c.parametersQuery=Ke(c.parametersQuery,n.parametersQuery),c.parameters=Pt(c.parameters),c};var No=({openApi:e,types:t})=>{let r=q(),s=new Map,n=[];for(let o in e.paths){let a=e.paths[o],i=qt({openApi:e,parameters:a.parameters??[],types:t});for(let p in a){let c=p,m=ge({method:c.toUpperCase(),path:o});if(ut.includes(c)){let u=a[c];if(u.operationId&&(s.has(u.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${u.operationId} in ${m}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):s.set(u.operationId,m)),!r.filterFn?.operation||r.filterFn?.operation(m)){let d=ko({method:c,op:u,openApi:e,pathParams:i,types:t,url:o});n.push(d);}}}}return n};var wo=e=>{let t=e.servers?.[0],r=t?.variables||{},s=t?.url||"";return Object.entries(r).forEach(([n,o])=>{s=s.replace(`{${n}}`,o.default);}),s.replace(/\/$/g,"")};var $o=e=>{let t=ft(e.info.version),r=wo(e),{models:s,types:n}=Ao(e),o=No({openApi:e,types:n});return {models:s,operations:o,server:r,types:n,version:t}};function Io({openApi:e,config:t}){if(Zr(t),"openapi"in e)return $o(e);if("swagger"in e)return xo(e);throw new Error(`Unsupported OpenAPI specification: ${JSON.stringify(e,null,2)}`)}var Do=({spec:e})=>{let t=e;switch(t.openapi){case"3.0.3":return tn(t);case"3.1.0":return nn(t);default:throw new Error("Unsupported OpenAPI specification")}};var cn=(e,t)=>{let r=g();if(Array.isArray(e))return e.map(n=>cn(n));if(typeof e!="object"||e===null)return e;let s={...e};return Object.entries(s).forEach(([n,o])=>{if(r.schemas.type==="form"&&["description","x-enum-descriptions","x-enum-varnames","x-enumNames","title"].includes(n)&&t!=="properties"){delete s[n];return}n==="$ref"&&typeof o=="string"&&(s[n]=decodeURIComponent(o)),o&&typeof o=="object"&&(s[n]=cn(o,n));}),s},$a=(e,t)=>{let r=g(),s=X(e);return r.schemas.name?r.schemas.name(s,t):`${s}Schema`},Mo=async({files:e,openApi:t})=>{let r=g();if(!r.schemas.export)return;e.schemas=new K({dir:r.output.path,name:"schemas.ts"});let s=(n,o)=>{let a=cn(o),i=l.objectExpression({obj:a}),p=l.constVariable({assertion:"const",exportConst:!0,expression:i,name:$a(n,o)});e.schemas.add(p);};"swagger"in t&&Object.entries(t.definitions??{}).forEach(([n,o])=>{s(n,o);}),"openapi"in t&&Object.entries(t.components?.schemas??{}).forEach(([n,o])=>{s(n,o);});};var et=e=>e.format==="date"||e.format==="date-time",mn=e=>{let t=g();return e.base==="binary"?l.typeUnionNode({types:["Blob","File"]}):t.types.dates&&et(e)?l.typeNode("Date"):l.typeNode(e.base)},Ia=e=>{let t=e.base==="null"?!1:e.isNullable,r=mn(e);if(e.export==="reference"&&e.$refs.length===1&&e.$refs[0].startsWith(dt)){let n=Ct(e.base);r=l.typeNode(n.name);}return l.typeUnionNode({isNullable:t,types:[r]})},Da=e=>{if(e.link){if(Array.isArray(e.link)){let t=e.link.map(s=>W(s));return l.typeTupleNode({isNullable:e.isNullable,types:t})}if(e.export==="array"&&e.maxItems&&e.minItems&&e.maxItems===e.minItems&&e.maxItems<=100){let t=Array(e.maxItems).fill(W(e.link));return l.typeTupleNode({isNullable:e.isNullable,types:t})}return l.typeArrayNode([W(e.link)],e.isNullable)}return l.typeArrayNode([mn(e)],e.isNullable)},Ma=e=>{let t=e.enum.map(r=>Tt(r.value));return l.typeUnionNode({isNullable:e.isNullable,types:t})},ja=e=>{let t=e.link&&!Array.isArray(e.link)?W(e.link):mn(e);return l.typeRecordNode(["string"],[t],e.isNullable)},jo=({model:e,style:t})=>{let r=e.properties.map(n=>l.nodeToString({node:W(n),unescape:!0})).filter(F),s=t==="union"?l.typeUnionNode({isNullable:e.isNullable&&!e.properties.find(n=>n.isNullable),types:r}):l.typeIntersectionNode({isNullable:e.isNullable,types:r});return e.meta?s:l.typeParenthesizedNode({type:s})},Ha=e=>{if(!e.properties.length)return l.typeNode("unknown");let t=g(),r=A(t),s=e.properties.map(n=>{let o=n.isRequired?"":"?",a=W(n),i=r?Z(Me(ln(n.name))):/^\dXX$/.test(n.name)?Z(n.name):n.name;return n.name==="[key: string]"&&(i=n.name,o&&(o="",a=l.typeUnionNode({types:[a,"undefined"]}))),{comment:[n.description&&w(n.description),n.deprecated&&"@deprecated"],isReadOnly:n.isReadOnly,isRequired:o==="",name:i,type:a}});return l.typeInterfaceNode({isNullable:e.isNullable,properties:s})},W=e=>{switch(e.export){case"all-of":return jo({model:e,style:"intersection"});case"any-of":case"one-of":return jo({model:e,style:"union"});case"array":return Da(e);case"dictionary":return ja(e);case"enum":return Ma(e);case"interface":return Ha(e);case"const":case"generic":case"reference":default:return Ia(e)}},Q=({client:e,count:t=1,create:r=!1,meta:s,nameTransformer:n})=>{let o={created:!1,name:""},a=s.name;n&&(a=n(a)),t>1&&(a=`${a}${t}`);let i=e.types[a];return i?i.$ref===s.$ref?o={created:!1,name:a}:o=Q({client:e,count:t+1,create:r,meta:s,nameTransformer:n}):r&&(e.types[a]=s,o={created:!0,name:a}),o},Ho=({client:e,name:t})=>{let r={deleted:!1,name:""};return e.types[t]&&(delete e.types[t],r={deleted:!0,name:t}),r},ln=e=>{let t=g();return A(t)?e:H({input:an(e)}).replace(Y,"_$1")};var qe=({meta:e,onImport:t,...r})=>{if(!e)return {created:!1,name:""};let{created:s,name:n}=Q({meta:e,...r});return n&&t(n),{created:s,name:n}},Uo=e=>`${e}ModelResponseTransformer`,ke=e=>`${H({input:e,pascalCase:!0})}Data`,We=e=>`${H({input:e,pascalCase:!0})}Error`,un=e=>`${e}Transformer`,ie=e=>`${H({input:e,pascalCase:!0})}Response`,fn=(e,t)=>{let r=Re();return t?`${r}<${e||"unknown"}, ${t}>`:e?`${r}<${e}>`:r},Fo=(e,t)=>{let r=g(),{name:s}=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:ke}),n=se(t.parameters);if(A(r))return [{isRequired:n,name:"options",type:fn(s,"ThrowOnError")}];if(!t.parameters.length)return [];let o=a=>{if(a.default!==void 0)return JSON.stringify(a.default,null,4)};return r.useOptions?[{default:n?void 0:{},name:"data",type:s}]:t.parameters.map(a=>{let i=`${s}['${a.name}']`;return {default:a?.default,isRequired:(!a.isRequired&&!o(a)?"?":"")=="",name:a.name,type:i}})},Bo=(e,t)=>{let r=g(),s=l.typeNode("void");if(t.responses.filter(o=>o.responseTypes.includes("success")).length){let{name:o}=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:ie});s=l.typeUnionNode({types:[o]});}return r.useOptions&&r.services.response==="response"&&(s=l.typeNode("ApiResult",[s])),r.client.name==="legacy/angular"?s=l.typeNode("Observable",[s]):s=l.typeNode("CancelablePromise",[s]),s},Lo=e=>{let t=g();if(A(t))return [e.deprecated&&"@deprecated",e.summary&&w(e.summary),e.description&&w(e.description)];let r=[];e.parameters.length&&(t.useOptions?r=["@param data The data for the request.",...e.parameters.map(o=>`@param data.${o.name} ${o.description?w(o.description):""}`)]:r=e.parameters.map(o=>`@param ${o.name} ${o.description?w(o.description):""}`));let s=e.responses.filter(o=>o.responseTypes.includes("success"));return [e.deprecated&&"@deprecated",e.summary&&w(e.summary),e.description&&w(e.description),...r,...s.map(o=>`@returns ${o.type} ${o.description?w(o.description):""}`),"@throws ApiError"]},Fa=(e,t,r,s)=>{let n=g(),o=ie(t.name),{name:a}=Q({client:e,meta:{$ref:`transformers/${o}`,name:o},nameTransformer:un});if(a&&r(a),A(n)){let m=[{spread:"options"}],d=t.parameters.filter(h=>h.in==="body"||h.in==="formData").map(h=>h.mediaType||(h.in==="formData"?"multipart/form-data":void 0)).filter(Boolean).filter(F);return d.length===1&&(d[0]==="multipart/form-data"&&(m=[...m,{spread:"formDataBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:null},{spread:"options?.headers"}]}],s?.("formDataBodySerializer")),d[0]==="application/x-www-form-urlencoded"&&(m=[...m,{spread:"urlSearchParamsBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:d[0]},{spread:"options?.headers"}]}],s?.("urlSearchParamsBodySerializer"))),m=[...m,{key:"url",value:t.path}],a&&(m=[...m,{key:"responseTransformer",value:a}]),l.objectExpression({identifiers:["responseTransformer"],obj:m})}let i=m=>m.reduce((u,d)=>{let h=d.prop,O=n.useOptions?`data.${d.name}`:d.name;return h===O?u[h]=h:Z(h)===h?u[h]=O:u[`'${h}'`]=O,u},{}),p={method:t.method,url:t.path};t.parametersPath.length&&(p.path=i(t.parametersPath)),t.parametersCookie.length&&(p.cookies=i(t.parametersCookie)),t.parametersHeader.length&&(p.headers=i(t.parametersHeader)),t.parametersQuery.length&&(p.query=i(t.parametersQuery)),t.parametersForm.length&&(p.formData=i(t.parametersForm)),t.parametersBody&&(t.parametersBody.in==="formData"&&(n.useOptions?p.formData=`data.${t.parametersBody.name}`:p.formData=t.parametersBody.name),t.parametersBody.in==="body"&&(n.useOptions?p.body=`data.${t.parametersBody.name}`:p.body=t.parametersBody.name)),t.parametersBody?.mediaType&&(p.mediaType=t.parametersBody?.mediaType),t.responseHeader&&(p.responseHeader=t.responseHeader),a&&(p.responseTransformer=a);let c=t.responses.filter(m=>m.responseTypes.includes("error"));if(c.length>0){let m={};c.forEach(u=>{m[u.code]=u.description??"";}),p.errors=m;}return l.objectExpression({identifiers:["body","cookies","formData","headers","path","query","responseTransformer"],obj:p,shorthand:!0})},he=(e,t)=>{let r=g();return r.services.methodNameBuilder?r.services.methodNameBuilder(e):t&&e.name.match(Y)?`${e.name}_`:e.name},_o=(e,t,r,s)=>{let n=g(),o=Fa(e,t,r,s);if(A(n)){let a=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:We}).name,p=t.responses.filter(c=>c.responseTypes.includes("success")).length?Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:ie}).name:"void";return [l.returnFunctionCall({args:[o],name:`(options?.client ?? client).${t.method.toLocaleLowerCase()}`,types:a&&p?[p,a,"ThrowOnError"]:a?["unknown",a,"ThrowOnError"]:p?[p,"unknown","ThrowOnError"]:[]})]}return n.name?[l.returnFunctionCall({args:[o],name:"this.httpRequest.request"})]:n.client.name==="legacy/angular"?[l.returnFunctionCall({args:["OpenAPI","this.http",o],name:"__request"})]:[l.returnFunctionCall({args:["OpenAPI",o],name:"__request"})]},Ba=({client:e,onClientImport:t,onImport:r,onNode:s,service:n})=>{let o=g(),a=A(o);for(let m of n.operations)m.parameters.length&&qe({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:ke,onImport:r}),a&&qe({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:We,onImport:r}),m.responses.filter(d=>d.responseTypes.includes("success")).length&&qe({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:ie,onImport:r});let i={default:!1,extends:"boolean",name:"ThrowOnError"};if(!o.services.asClass&&!o.name){for(let m of n.operations){let u={parameters:Fo(e,m),returnType:a?void 0:Bo(e,m),statements:_o(e,m,r,t),types:a?[i]:void 0},d=o.client.name==="legacy/angular"?l.anonymousFunction(u):l.arrowFunction(u),h=l.constVariable({comment:Lo(m),exportConst:!0,expression:d,name:he(m,!0)});s(h);}return}let p=n.operations.map(m=>l.methodDeclaration({accessLevel:"public",comment:Lo(m),isStatic:o.name===void 0&&o.client.name!=="legacy/angular",name:he(m,!1),parameters:Fo(e,m),returnType:a?void 0:Bo(e,m),statements:_o(e,m,r,t),types:a?[i]:void 0}));if(!p.length)return;o.name?p=[l.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:"public",isReadOnly:!0,name:"httpRequest",type:"BaseHttpRequest"}]}),...p]:o.client.name==="legacy/angular"&&(p=[l.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:"public",isReadOnly:!0,name:"http",type:"HttpClient"}]}),...p]);let c=l.classDeclaration({decorator:o.client.name==="legacy/angular"?{args:[{providedIn:"root"}],name:"Injectable"}:void 0,members:p,name:Le(n.name)});s(c);},La=({files:e})=>{if(!g().client.name)throw new Error("\u{1F6AB} client needs to be set to generate services - which HTTP client do you want to use?");if(!e.types)throw new Error("\u{1F6AB} types need to be exported to generate services - enable type generation")},Vo=async({client:e,files:t})=>{let r=g();if(!r.services.export)return;La({files:t});let s=A(r);if(t.services=new K({dir:r.output.path,name:"services.ts"}),s?(t.services.import({module:Te(),name:"createClient"}),t.services.import({module:Te(),name:"createConfig"}),t.services.import({asType:!0,module:Te(),name:Re()})):(r.client.name==="legacy/angular"?(t.services.import({module:"@angular/core",name:"Injectable"}),r.name||t.services.import({module:"@angular/common/http",name:"HttpClient"}),t.services.import({asType:!0,module:"rxjs",name:"Observable"})):t.services.import({asType:!0,module:"./core/CancelablePromise",name:"CancelablePromise"}),r.services.response==="response"&&t.services.import({asType:!0,module:"./core/ApiResult",name:"ApiResult"}),r.name?t.services.import({asType:r.client.name!=="legacy/angular",module:"./core/BaseHttpRequest",name:"BaseHttpRequest"}):(t.services.import({module:"./core/OpenAPI",name:"OpenAPI"}),t.services.import({alias:"__request",module:"./core/request",name:"request"}))),s){let n=l.constVariable({exportConst:!0,expression:l.callExpression({functionName:"createClient",parameters:[l.callExpression({functionName:"createConfig"})]}),name:"client"});t.services.add(n);}for(let n of e.services)Ba({client:e,onClientImport:o=>{t.services.import({module:Te(),name:o});},onImport:o=>{t.services.import({asType:!o.endsWith("Transformer"),module:`./${t.types.getName(!1)}`,name:o});},onNode:o=>{t.services.add(o);},service:n});};var _a="$OpenApiTs",D={$refs:[],base:"",description:null,enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],template:null,type:""},Ua=({leadingComment:e,comments:t,meta:r,obj:s,onNode:n,...o})=>{if(!r)return;let{created:a,name:i}=Q({create:!0,meta:r,...o});if(a){let p=l.enumDeclaration({comments:t,leadingComment:e,name:i,obj:s});n(p);}},ce=({comment:e,meta:t,onCreated:r,onNode:s,type:n,...o})=>{if(!t)return {created:!1,name:""};let a=Q({create:!0,meta:t,...o}),{created:i,name:p}=a;if(i){let c=l.typeAliasDeclaration({comment:e,exportType:!0,name:p,type:n});s(c),r?.(p);}return a},Va=e=>{let t=g(),r=[];Wo(e),e.model.enums.forEach(s=>t.types.enums!=="typescript+namespace"?Ko({...e,model:s}):Ka({...e,model:s,onNode:n=>{r.push(n);}})),r.length&&e.onNode(l.namespaceDeclaration({name:e.model.name,statements:r}));},Ko=({client:e,model:t,onNode:r})=>{let s=g(),n={},o={};t.enum.forEach(i=>{let{key:p,value:c}=Rt(i);n[p]=c;let m=i.customDescription||i.description;m&&(o[p]=[w(m)]);});let a=[t.description&&w(t.description),t.deprecated&&"@deprecated"];if(s.types.enums==="typescript"||s.types.enums==="typescript+namespace"){Ua({client:e,comments:o,leadingComment:a,meta:t.meta,obj:n,onNode:r});return}ce({client:e,comment:a,meta:t.meta,onCreated:i=>{if(s.types.enums==="javascript"){let p=l.objectExpression({multiLine:!0,obj:Object.entries(n).map(([m,u])=>({comments:o[m],key:m,value:u})),unescape:!0}),c=l.constVariable({assertion:"const",comment:a,exportConst:!0,expression:p,name:i});r(c);}},onNode:r,type:bo(t.enum)});},Ka=({model:e,onNode:t})=>{let r={},s={};e.enum.forEach(n=>{let{key:o,value:a}=Rt(n);r[o]=a;let i=n.customDescription||n.description;i&&(s[o]=[w(i)]);}),t(l.enumDeclaration({comments:s,leadingComment:[e.description&&w(e.description),e.deprecated&&"@deprecated"],name:e.meta?.name||e.name,obj:r}));},Wo=({client:e,model:t,onNode:r})=>{ce({client:e,comment:[t.description&&w(t.description),t.deprecated&&"@deprecated"],meta:t.meta,onNode:r,type:W(t)});},Wa=e=>{switch(e.model.export){case"all-of":case"any-of":case"one-of":case"interface":return Va(e);case"enum":return Ko(e);default:return Wo(e)}},Qa=({client:e,onNode:t})=>{let r={},s=g();if(!s.services.export&&!s.types.tree)return;let n=A(s);for(let a of e.services)for(let i of a.operations){if(!i.parameters.length&&!i.responses.length)continue;r[i.path]||(r[i.path]={});let p=r[i.path];p[i.method]||(p[i.method]={});let c=p[i.method];if(c.$ref=i.name,i.responses.length>0){if(c.res||(c.res={}),Array.isArray(c.res))continue;i.responses.forEach(u=>{c.res[u.code]=u;});}if(i.parameters.length>0){let u={mediaType:null,...D,in:"body",name:"body",prop:"body"},d=i.parameters.filter(C=>C.in==="body");d.length||(d=i.parameters.filter(C=>C.in==="formData")),d.length===1?u={...D,...d[0],in:"body",isRequired:d[0].isRequired,name:"body",prop:"body"}:d.length>1&&(u={...D,in:"body",isRequired:d.some(C=>C.isRequired),mediaType:"multipart/form-data",name:"body",prop:"body",properties:d});let h={...D,in:"header",isRequired:se(i.parameters.filter(C=>C.in==="header")),mediaType:null,name:n?"headers":"header",prop:n?"headers":"header",properties:i.parameters.filter(C=>C.in==="header").sort(Ge)},O={...D,in:"path",isRequired:se(i.parameters.filter(C=>C.in==="path")),mediaType:null,name:"path",prop:"path",properties:i.parameters.filter(C=>C.in==="path").sort(Ge)},T={...D,in:"query",isRequired:se(i.parameters.filter(C=>C.in==="query")),mediaType:null,name:"query",prop:"query",properties:i.parameters.filter(C=>C.in==="query").sort(Ge)},x=n?[u,h,O,T].filter(C=>C.properties.length||C.$refs.length||C.mediaType):Xe([...i.parameters]);c.req=x,ce({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:ke,onNode:t,type:W({...D,isRequired:!0,properties:x})});}let m=i.responses.filter(u=>u.responseTypes.includes("success"));if(m.length>0){ce({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:ie,onNode:t,type:W({...D,export:"any-of",isRequired:!0,properties:m})});let u=i.responses.filter(d=>d.responseTypes.includes("error"));n&&ce({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:We,onNode:t,type:W(u.length?{...D,export:"one-of",isRequired:!0,properties:u}:{...D,base:"unknown",isRequired:!0,type:"unknown"})});}}let o=Object.entries(r).map(([a,i])=>{let p=Object.entries(i).map(([m,u])=>{let d=m,h=[];if(u.req){let T=u.$ref,{name:x}=Q({client:e,meta:{$ref:T,name:T},nameTransformer:ke}),C={...D,base:x,export:"reference",isRequired:!0,name:"req",properties:[],type:x};h=[...h,C];}if(u.res){let T=Object.entries(u.res).map(([C,le])=>({...D,...le,isRequired:!0,name:String(C)})),x={...D,isRequired:!0,name:"res",properties:T};h=[...h,x];}return {...D,isRequired:!0,name:d.toLocaleLowerCase(),properties:h}}).filter(Boolean);return {...D,isRequired:!0,name:`'${a}'`,properties:p}});s.types.tree&&ce({client:e,meta:{$ref:"@hey-api/openapi-ts",name:_a},onNode:t,type:W({...D,properties:o})});},Qo=async({client:e,files:t})=>{let r=g();r.types.export&&(t.types=new K({dir:r.output.path,name:"types.ts"}));let s=n=>{t.types?.add(n);};for(let n of e.models)Wa({client:e,model:n,onNode:s});Qa({client:e,onNode:s});};var xe="data",Xa=e=>e.base==="unknown"&&e.export==="generic"&&e.type==="unknown",Go=({client:e,model:t})=>t.$refs.map(s=>{let n=e.models.find(o=>o.meta?.$ref===s);if(!n)throw new Error(`Ref ${s} could not be found. Transformers cannot be generated without having access to all refs.`);return n}),Xo=e=>{let t=e.model.meta.name,{name:r}=ce({...e,meta:{$ref:`transformers/${t}`,name:t},nameTransformer:Uo,onCreated:n=>{let o=Nt({...e,meta:{$ref:`transformers/${t}`,name:n},path:[xe]});zo({...e,async:!1,name:n,statements:o});},type:`(${xe}: any) => ${t}`});return {created:!!e.client.types[r],name:r}},za=e=>{let{model:t}=e,r=Go(e);if(r.length===1){let{created:s,name:n}=Xo({...e,model:r[0]});return s?[l.transformArrayMutation({path:e.path,transformerName:n})]:[]}return et(t)||t.link&&!Array.isArray(t.link)&&t.link.export==="any-of"&&t.link.properties.find(s=>et(s))?[l.transformArrayMap({path:e.path,transformExpression:l.conditionalExpression({condition:l.identifier({text:"item"}),whenFalse:l.identifier({text:"item"}),whenTrue:l.transformNewDate({parameterName:"item"})})})]:[]},Ja=e=>{let{model:t}=e,r=[...e.path,t.name];return t.type==="string"&&t.export!=="array"&&et(t)?[l.transformDateMutation({path:r})]:Nt({...e,model:t,path:r})},Nt=e=>{let{model:t}=e;switch(t.export){case"array":return za(e);case"interface":return t.properties.flatMap(r=>Ja({...e,model:r}));case"reference":{if(t.$refs.length!==1)return [];let r=Go(e),{created:s,name:n}=Xo({...e,model:r[0]});return s?t.in==="response"?[l.expressionToStatement({expression:l.callExpression({functionName:n,parameters:[xe]})})]:l.transformFunctionMutation({path:e.path,transformerName:n}):[]}default:return []}},zo=({async:e,client:t,name:r,onNode:s,onRemoveNode:n,statements:o})=>{let a={created:!1,name:r};if(!o.length)return Ho({client:t,name:r}),n?.(),a;let i=l.arrowFunction({async:e,multiLine:!0,parameters:[{name:xe}],statements:[...o,l.returnVariable({name:xe})]}),p=l.constVariable({exportConst:!0,expression:i,name:r,typeName:r});return s(p),{created:!0,name:r}},Jo=async({client:e,onNode:t,onRemoveNode:r})=>{let s=g();for(let n of e.services)for(let o of n.operations){let a=o.responses.filter(c=>c.responseTypes.includes("success"));if(!a.length)continue;let i=a.filter(c=>!Xa(c));if(!i.length)continue;if(i.length>1){s.debug&&console.warn(`\u2757\uFE0F Transformers warning: route ${ge(o)} has ${i.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);continue}let p=ie(o.name);ce({client:e,meta:{$ref:`transformers/${p}`,name:p},nameTransformer:un,onCreated:c=>{let m=a.length>1?a.flatMap(u=>{let d=Nt({client:e,meta:{$ref:`transformers/${p}`,name:p},model:u,onNode:t,onRemoveNode:r,path:[xe]});return d.length?[l.ifStatement({expression:l.safeAccessExpression(["data"]),thenStatement:y.factory.createBlock(d)})]:[]}):Nt({client:e,meta:{$ref:`transformers/${p}`,name:p},model:a[0],onNode:t,onRemoveNode:r,path:[xe]});zo({async:!0,client:e,name:c,onNode:t,onRemoveNode:r,statements:m});},onNode:t,type:`(${xe}: any) => Promise<${p}>`});}};var Zo=async(e,t,r)=>{let s=g();if(s.services.include&&s.services.asClass){let a=new RegExp(s.services.include);t.services=t.services.filter(i=>a.test(i.name));}if(s.types.include){let a=new RegExp(s.types.include);t.models=t.models.filter(i=>a.test(i.name));}let n=V.resolve(s.output.path),o={};await fr(n,s.client.name),await Qo({client:t,files:o}),await Mo({files:o,openApi:e}),s.services.export&&t.services.length&&s.types.dates==="types+transform"&&await Jo({client:t,onNode:a=>{o.types?.add(a);},onRemoveNode:()=>{o.types?.removeNode();}}),await Vo({client:t,files:o}),await ur(e,n,t,r),await dr(V.resolve(s.output.path,"core"),t,r),await zr({files:o}),await Jr({client:t,files:o}),Object.entries(o).forEach(([a,i])=>{s.dryRun||(a==="index"?i.write():i.write(`
16
+ `)]);let s=[];for(let[n,o]of this._imports.entries()){let a=Array.from(o.values()),i=l.namedImportDeclarations({imports:a,module:n});s=[...s,Re({node:i})];}return s.length&&(r=[...r,s.join(`
17
+ `)]),r=[...r,...this._items.map(n=>typeof n=="string"?n:Re({node:n,unescape:!0}))],r.join(t)}write(t=`
18
+ `){if(this.isEmpty()){this.remove({force:!0});return}let r=this._path;if(typeof this._path=="string"){let s=this._path.split(V.sep);r=s.slice(0,s.length-1).join(V.sep);}De(r),writeFileSync(this._path,this.toString(t));}},l={anonymousFunction:xr,arrayLiteralExpression:Zt,arrowFunction:mt,awaitExpression:Or,binaryExpression:Br,callExpression:ne,classDeclaration:Ir,conditionalExpression:Rr,constVariable:kr,constructorDeclaration:wr,enumDeclaration:br,exportAllDeclaration:Sr,exportNamedDeclaration:qr,expressionToStatement:Ee,identifier:b,ifStatement:Fe,indexedAccessTypeNode:Cr,isTsNode:Ae,keywordTypeNode:ct,methodDeclaration:$r,namedImportDeclarations:Nr,namespaceDeclaration:Pr,nodeToString:Re,objectExpression:lt,ots:U,propertyAccessExpression:te,propertyAccessExpressions:Fr,returnFunctionCall:jr,returnVariable:Hr,safeAccessExpression:He,stringLiteral:Tr,stringToTsNodes:hr,transformArrayMap:Kr,transformArrayMutation:Ur,transformDateMutation:Lr,transformFunctionMutation:_r,transformNewDate:Vr,typeAliasDeclaration:vr,typeArrayNode:Xr,typeInterfaceNode:en,typeIntersectionNode:Wr,typeNode:B,typeOfExpression:Ar,typeParenthesizedNode:Er,typeRecordNode:Gr,typeReferenceNode:X,typeTupleNode:Qr,typeUnionNode:et};var Jr=async({files:e})=>{let t=g();e.index=new K({dir:t.output.path,name:"index.ts"}),t.name&&e.index.add(l.exportNamedDeclaration({exports:t.name,module:`./${t.name}`})),t.exportCore&&(e.index.add(l.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),t.services.response==="response"&&e.index.add(l.exportNamedDeclaration({exports:{asType:!0,name:"ApiResult"},module:"./core/ApiResult"})),t.name&&e.index.add(l.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),t.client.name!=="legacy/angular"&&e.index.add(l.exportNamedDeclaration({exports:["CancelablePromise","CancelError"],module:"./core/CancelablePromise"})),e.index.add(l.exportNamedDeclaration({exports:["OpenAPI",{asType:!0,name:"OpenAPIConfig"}],module:"./core/OpenAPI"}))),Object.keys(e).sort().forEach(r=>{let s=e[r];r==="index"||s.isEmpty()||e.index.add(l.exportAllDeclaration({module:`./${s.getName(!1)}`}));});};var Yr=async({client:e,files:t})=>{let r=g();if(A(r))for(let n of r.plugins){let o=n.output.split("/"),a=V.resolve(r.output.path,...o.slice(0,o.length-1));t[n.name]=new K({dir:a,name:`${o[o.length-1]}.ts`}),n.handler({client:e,files:t,outputParts:o,plugin:n});}};var nn=e=>{console.log(e);};var ce=({method:e,operation:t,operationIds:r,path:s})=>{let n=`${e} ${s}`,o=g(),a=o.services.filter?new RegExp(o.services.filter):void 0;a&&!a.test(n)||(t.operationId&&(r.has(t.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${t.operationId} in ${n}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):r.set(t.operationId,n)),console.log(t));};var rn=e=>{let t=new Map;for(let r in e.paths){let s=e.paths[r];s.delete&&ce({method:"DELETE",operation:s.delete,operationIds:t,path:r}),s.get&&ce({method:"GET",operation:s.get,operationIds:t,path:r}),s.head&&ce({method:"HEAD",operation:s.head,operationIds:t,path:r}),s.options&&ce({method:"OPTIONS",operation:s.options,operationIds:t,path:r}),s.patch&&ce({method:"PATCH",operation:s.patch,operationIds:t,path:r}),s.post&&ce({method:"POST",operation:s.post,operationIds:t,path:r}),s.put&&ce({method:"PUT",operation:s.put,operationIds:t,path:r}),s.trace&&ce({method:"TRACE",operation:s.trace,operationIds:t,path:r});}};var Zr,q=()=>Zr,eo=e=>(Zr=e,q());var ft=["connect","delete","get","head","options","patch","post","put","trace"];function dt(e="1.0"){return String(e).replace(/^v/gi,"")}var Le="#/components/parameters/",yt="#/components/schemas/";var ba=/[\p{Lu}]/u,Pa=/[\p{Ll}]/u,ro=/([\p{Alpha}\p{N}_]|$)/u,on=/[_.\- ]+/,Ca=new RegExp("^"+on.source),to=new RegExp(on.source+ro.source,"gu"),no=new RegExp("\\d+"+ro.source,"gu"),Ta=e=>{let t=!1,r=!1,s=!1,n=!1;for(let o=0;o<e.length;o++){let a=e[o];n=o>2?e[o-3]==="-":!0,t&&ba.test(a)?(e=e.slice(0,o)+"-"+e.slice(o),t=!1,s=r,r=!0,o++):r&&s&&Pa.test(a)&&!n?(e=e.slice(0,o-1)+"-"+e.slice(o-1),s=r,r=!1,t=!0):(t=a.toLocaleLowerCase()===a&&a.toLocaleUpperCase()!==a,s=r,r=a.toLocaleUpperCase()===a&&a.toLocaleLowerCase()!==a);}return e},j=({input:e,pascalCase:t})=>{let r=e.trim();return r.length?r.length===1?on.test(r)?"":t?r.toLocaleUpperCase():r.toLocaleLowerCase():(r!==r.toLocaleLowerCase()&&(r=Ta(r)),r=r.replace(Ca,""),r=r.toLocaleLowerCase(),t&&(r=r.charAt(0).toLocaleUpperCase()+r.slice(1)),to.lastIndex=0,no.lastIndex=0,r=r.replaceAll(no,(n,o,a)=>["_","-","."].includes(r.charAt(a+n.length))?n:n.toLocaleUpperCase()),r=r.replaceAll(to,(n,o)=>o.toLocaleUpperCase()),r):""};var _e=e=>{let t=g();return t.services.name?t.services.name.replace("{{name}}",e):e},sn=e=>g().types.name==="PascalCase"?j({input:e,pascalCase:!0}):e,oo=e=>{let t=sn(e);return z(t).replace(Z,"_$1")};var so=(e,t)=>{if(e.enum&&!t.includes("boolean"))return "enum"},an=e=>Ue(e).includes("null"),de=e=>e.nullable===!0||an(e),Ue=({type:e})=>Array.isArray(e)?e:e?[e]:[];var Ra=e=>e.replace(it,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_"),z=e=>{it.lastIndex=0;let r=it.test(e)?`_${e}`:e;return Ra(r)},Ve=e=>e.replace(/^[^\p{ID_Start}]+/u,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"-").replace(/\$/g,"-"),pn=e=>{let t=e.replace("[]","Array");return Ve(t)};var tt=e=>e.trim().replace(/^#\/definitions\//,"").replace(/^#\/parameters\//,"").replace(/^#\/responses\//,"").replace(/^#\/securityDefinitions\//,"").replace(/^#\/components\/schemas\//,"").replace(/^#\/components\/responses\//,"").replace(/^#\/components\/parameters\//,"").replace(/^#\/components\/examples\//,"").replace(/^#\/components\/requestBodies\//,"").replace(/^#\/components\/headers\//,"").replace(/^#\/components\/securitySchemes\//,"").replace(/^#\/components\/links\//,"").replace(/^#\/components\/callbacks\//,"");var io=(e,t)=>{if(t==="binary")return "binary";switch(e){case"any":case"object":case"unknown":return "unknown";case"array":return "unknown[]";case"boolean":return "boolean";case"byte":case"double":case"float":case"int":case"integer":case"long":case"number":case"short":return "number";case"char":case"date":case"date-time":case"password":case"string":return "string";case"file":return "binary";case"null":return "null";case"void":return "void"}},ao=/(?<!`1)\[.*\]$/g,P=({debug:e,format:t,type:r="unknown"})=>{let s={$refs:[],base:"unknown",imports:[],isNullable:!1,template:null,type:"unknown"};if(Array.isArray(r)){let a=r.filter(i=>i!=="null").map(i=>io(i,t)).filter(Boolean).join(" | ");return s.type=a,s.base=a,s.isNullable=an({type:r}),s}let n=io(r,t);if(n)return s.type=n,s.base=n,s;let o=decodeURIComponent(tt(r));if(ao.lastIndex=0,ao.test(o)){let a=o.match(/(.*?)\[(.*)\]$/);if(a?.length){let i=P({debug:e,type:z(a[1])}),p=P({debug:e,type:z(a[2])});return i.type==="unknown[]"?(s.type=`${p.type}[]`,s.base=`${p.type}`,i.$refs=[],i.imports=[]):p.type?(s.type=`${i.type}<${p.type}>`,s.base=i.type,s.template=p.type):(s.type=i.type,s.base=i.type,s.template=i.type),s.$refs=[...s.$refs,...i.$refs,...p.$refs],s.imports=[...s.imports,...i.imports,...p.imports],s}}if(o){let a=sn(z(o));return r.startsWith(Le)&&(a=`Parameter${a}`),s.type=a,s.base=a,r.startsWith("#")&&(s.$refs=[...s.$refs,decodeURIComponent(r)]),s.imports=[...s.imports,a],s}return s};function H(e,t,r){return r.indexOf(e)===t}var Ke=(e,t)=>{if(!Array.isArray(t))return [];let r=(e["x-enum-descriptions"]??[]).filter(n=>typeof n=="string"),s=(e["x-enum-varnames"]??e["x-enumNames"]??[]).filter(n=>typeof n=="string");return t.filter(H).filter(n=>typeof n=="number"||typeof n=="string").map((n,o)=>({customDescription:r[o],customName:s[o],description:void 0,value:n}))};var k=e=>e?.replace(/\\/g,"\\\\").replace(/'/g,"\\'");var gt=({definition:e,getModel:t,openApi:r,types:s})=>{let n=[];return Object.entries(e.properties??{}).forEach(([o,a])=>{let i=!!e.required?.includes(o);if(a.$ref){let p=P({type:a.$ref});n.push({$refs:[],base:p.base,description:a.description||null,enum:[],enums:[],exclusiveMaximum:a.exclusiveMaximum,exclusiveMinimum:a.exclusiveMinimum,export:"reference",format:a.format,imports:p.imports,in:"",isDefinition:!1,isNullable:a["x-nullable"]===!0,isReadOnly:a.readOnly===!0,isRequired:i,link:null,maxItems:a.maxItems,maxLength:a.maxLength,maxProperties:a.maxProperties,maximum:a.maximum,minItems:a.minItems,minLength:a.minLength,minProperties:a.minProperties,minimum:a.minimum,multipleOf:a.multipleOf,name:ee(o),pattern:k(a.pattern),properties:[],template:p.template,type:p.type,uniqueItems:a.uniqueItems});}else {let p=t({definition:a,openApi:r,types:s});n.push({$refs:[],base:p.base,description:a.description||null,enum:p.enum,enums:p.enums,exclusiveMaximum:a.exclusiveMaximum,exclusiveMinimum:a.exclusiveMinimum,export:p.export,format:a.format,imports:p.imports,in:"",isDefinition:!1,isNullable:a["x-nullable"]===!0,isReadOnly:a.readOnly===!0,isRequired:i,link:p.link,maxItems:a.maxItems,maxLength:a.maxLength,maxProperties:a.maxProperties,maximum:a.maximum,minItems:a.minItems,minLength:a.minLength,minProperties:a.minProperties,minimum:a.minimum,multipleOf:a.multipleOf,name:ee(o),pattern:k(a.pattern),properties:p.properties,template:p.template,type:p.type,uniqueItems:a.uniqueItems});}}),n};var Aa=/~1/g,va=/~0/g;function v(e,t){if(t.$ref){let r=t.$ref.replace(/^#/g,"").split("/").filter(Boolean),s=e;return r.forEach(n=>{let o=decodeURIComponent(n.replace(Aa,"/").replace(va,"~"));if(s.hasOwnProperty(o))s=s[o];else throw new Error(`Could not find reference: "${t.$ref}"`)}),s}return t}var po=({definitions:e,getModel:t,openApi:r,required:s,types:n})=>e.reduce((o,a)=>{if(a.$ref){let i=v(r,a);return [...o,...t({definition:i,openApi:r,types:n}).properties]}return [...o,...t({definition:a,openApi:r,types:n}).properties]},[]).filter(o=>!o.isRequired&&s.includes(o.name)).map(o=>({...o,isRequired:!0}));var co=({definition:e,definitions:t,getModel:r,openApi:s,type:n,types:o})=>{let a={$refs:[],enums:[],export:n,imports:[],properties:[]},i=[];if(t.map(p=>r({definition:p,openApi:s,types:o})).filter(p=>{let c=p.properties.length,m=p.enums.length;return !(p.type==="unknown"&&!c&&!m)}).forEach(p=>{a.imports.push(...p.imports),a.enums.push(...p.enums),a.properties.push(p);}),e.required&&n==="all-of"){let p=po({definitions:t,getModel:r,openApi:s,required:e.required,types:o});p.forEach(c=>{a.imports.push(...c.imports),a.enums.push(...c.enums);}),i.push(...p);}if(e.properties){let p=gt({definition:e,getModel:r,openApi:s,types:o});p.forEach(c=>{a.imports.push(...c.imports),a.enums.push(...c.enums),c.export==="enum"&&a.enums.push(c);}),i.push(...p);}return i.length&&a.properties.push({$refs:[],base:"unknown",description:"",enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"properties",properties:i,template:null,type:"unknown"}),a};var se=({definition:e,isDefinition:t=!1,meta:r,openApi:s,types:n})=>{let o={$refs:[],base:"unknown",description:e.description||null,enum:[],enums:[],exclusiveMaximum:e.exclusiveMaximum,exclusiveMinimum:e.exclusiveMinimum,export:"interface",format:e.format,imports:[],in:"",isDefinition:t,isNullable:e["x-nullable"]===!0,isReadOnly:e.readOnly===!0,isRequired:!1,link:null,maxItems:e.maxItems,maxLength:e.maxLength,maxProperties:e.maxProperties,maximum:e.maximum,meta:r,minItems:e.minItems,minLength:e.minLength,minProperties:e.minProperties,minimum:e.minimum,multipleOf:e.multipleOf,name:r?.name??"",pattern:k(e.pattern),properties:[],template:null,type:"unknown",uniqueItems:e.uniqueItems};if(e.$ref){let a=P({type:e.$ref});return o.export="reference",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}if(e.enum&&e.type!=="boolean"){let a=Ke(e,e.enum);if(a.length)return o.base="string",o.enum=[...o.enum,...a],o.export="enum",o.type="string",o}if(e.type==="array"&&e.items)if(e.items.$ref){let a=P({type:e.items.$ref});return o.export="array",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}else {let a=se({definition:e.items,openApi:s,types:n});return o.export="array",o.type=a.type,o.base=a.base,o.template=a.template,o.link=a,o.imports.push(...a.imports),o}if(e.type==="object"&&typeof e.additionalProperties=="object")if(e.additionalProperties.$ref){let a=P({type:e.additionalProperties.$ref});return o.export="dictionary",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}else {let a=se({definition:e.additionalProperties,openApi:s,types:n});return o.export="dictionary",o.type=a.type,o.base=a.base,o.template=a.template,o.link=a,o.imports.push(...a.imports),o}if(e.allOf?.length){let a=co({definition:e,definitions:e.allOf,getModel:se,openApi:s,type:"all-of",types:n});return o.export=a.export,o.imports.push(...a.imports),o.properties.push(...a.properties),o.enums=[...o.enums,...a.enums],o}if(e.type==="object")return o.export="interface",o.type="unknown",o.base="unknown",e.properties&&gt({definition:e,getModel:se,openApi:s,types:n}).forEach(i=>{o.imports.push(...i.imports),o.enums=[...o.enums,...i.enums],o.properties.push(i),i.export==="enum"&&(o.enums=[...o.enums,i]);}),o;if(e.type){let a=P({format:e.format,type:e.type});return o.export="generic",o.type=a.type,o.base=a.base,o.template=a.template,o.imports.push(...a.imports),o}return o};var mo=e=>{let t={},r=[];return Object.entries(e.definitions??{}).forEach(([s,n])=>{let a=P({type:s}).base.replace(Z,"_$1"),i={$ref:`#/definitions/${s}`,name:a};t[a]=i;let p=se({definition:n,isDefinition:!0,meta:i,openApi:e,types:t});r=[...r,p];}),{models:r,types:t}};var ye=e=>`${e.method} ${e.path}`,ht=e=>{let t=e.find(r=>r.in==="header");return t?t.name:null},ie=e=>e.some(r=>r.isRequired),xt=e=>{if(e==="default")return "default";if(e==="1XX")return "1XX";if(e==="2XX")return "2XX";if(e==="3XX")return "3XX";if(e==="4XX")return "4XX";if(e==="5XX")return "5XX";if(/\d{3}/g.test(e)){let t=Number.parseInt(e,10);if(t>=100&&t<600)return t}return null},Ot=(e,t)=>e.code>t.code?1:e.code<t.code?-1:0,Ea=e=>e==="3XX"||e==="4XX"||e==="5XX"||typeof e=="number"&&e>=300,lo=e=>e==="2XX"||typeof e=="number"&&e>=200&&e<300,Sa=(e,t)=>{let r=[],s=c=>{r.includes(c)||(r=[...r,c]);};t.some(({code:c})=>lo(c))||s("success");let o=(e.description??"").toLocaleLowerCase(),a=e.$refs.join("|").toLocaleLowerCase(),i=["error","problem"];return ["success"].some(c=>o.includes(c)||a.includes(c))&&s("success"),i.some(c=>o.includes(c)||a.includes(c))&&s("error"),r.length||s("error"),r},bt=e=>e.map(t=>{let{code:r}=t;return r==="default"?t.responseTypes=Sa(t,e):lo(r)?t.responseTypes=["success"]:Ea(r)&&(t.responseTypes=["error"]),t});var E=(e,t)=>{if(e.default===void 0||e.default===null)return e.default;switch(Ue(e).find(n=>n!=="null")||typeof e.default){case"int":case"integer":case"number":if(t?.export==="enum"&&t.enum?.[e.default]){let{value:n}=t.enum[e.default];return n}return e.default;case"array":case"boolean":case"object":case"string":return e.default;default:return}};var uo=({openApi:e,parameter:t,types:r})=>{let s=q(),n={$refs:[],base:"unknown",description:t.description||null,enum:[],enums:[],exclusiveMaximum:t.exclusiveMaximum,exclusiveMinimum:t.exclusiveMinimum,export:"interface",format:t.format,imports:[],in:t.in,isDefinition:!1,isNullable:t["x-nullable"]===!0,isReadOnly:!1,isRequired:t.required===!0,link:null,maxItems:t.maxItems,maxLength:t.maxLength,maximum:t.maximum,mediaType:null,minItems:t.minItems,minLength:t.minLength,minimum:t.minimum,multipleOf:t.multipleOf,pattern:k(t.pattern),prop:t.name,properties:[],template:null,type:"unknown",uniqueItems:t.uniqueItems},o={...n,name:s.nameFn.operationParameter(n)};if(t.$ref){let i=P({type:t.$ref});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"reference",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}if(t.enum){let i=Ke(t,t.enum);if(i.length)return o={...o,base:"string",enum:[...o.enum,...i],export:"enum",type:"string"},o.default=E(t,o),o}if(t.type==="array"&&t.items){let i=P({format:t.items.format,type:t.items.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"array",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}if(t.type==="object"&&t.items){let i=P({format:t.items.format,type:t.items.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"dictionary",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}let a=t.schema;if(a){if(a.$ref?.startsWith("#/parameters/")&&(a=v(e,a)),a.$ref){let p=P({type:a.$ref});return o={...o,$refs:[...o.$refs,...p.$refs],base:p.base,export:"reference",imports:[...o.imports,...p.imports],template:p.template,type:p.type},o.default=E(t,o),o}let i=se({definition:a,openApi:e,types:r});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,enum:[...o.enum,...i.enum],enums:[...o.enums,...i.enums],export:i.export,imports:[...o.imports,...i.imports],link:i.link,properties:[...o.properties,...i.properties],template:i.template,type:i.type},o.default=E(t,o),o}if(t.type){let i=P({format:t.format,type:t.type});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"generic",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o.default=E(t,o),o}return o};var qa=["body","formData","header","path","query"],Pt=({openApi:e,parameters:t,types:r})=>{let s=q(),n={$refs:[],imports:[],parameters:[],parametersBody:null,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[]};return t.forEach(o=>{let a=v(e,o),i=uo({openApi:e,parameter:a,types:r}),p=s.filterFn?.operationParameter&&!s.filterFn?.operationParameter(i);if(!(!qa.includes(a.in)||p)){switch(a.in){case"body":n.parametersBody=i;break;case"formData":n.parametersForm=[...n.parametersForm,i];break;case"header":n.parametersHeader=[...n.parametersHeader,i];break;case"path":n.parametersPath=[...n.parametersPath,i];break;case"query":n.parametersQuery=[...n.parametersQuery,i];break}n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.parameters=[...n.parameters,i];}}),n};function Ct(e){return e.sort((t,r)=>{let s=t.isRequired&&t.default===void 0,n=r.isRequired&&r.default===void 0;return s&&!n?-1:n&&!s?1:0})}var fo=({code:e,openApi:t,response:r,types:s})=>{let n={$refs:[],base:e!==204?"unknown":"void",code:e,description:r.description||null,enum:[],enums:[],export:"generic",imports:[],in:"response",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],responseTypes:[],template:null,type:e!==204?"unknown":"void"},o=r.schema;if(o){if(o.$ref?.startsWith("#/responses/")&&(o=v(t,o)),o.$ref){let i=P({type:o.$ref});return n.export="reference",n.type=i.type,n.base=i.base,n.template=i.template,n.imports=[...n.imports,...i.imports],n}let a=se({definition:o,openApi:t,types:s});return n.export=a.export,n.type=a.type,n.base=a.base,n.template=a.template,n.link=a.link,n.isReadOnly=a.isReadOnly,n.isRequired=a.isRequired,n.isNullable=a.isNullable,n.format=a.format,n.maximum=a.maximum,n.exclusiveMaximum=a.exclusiveMaximum,n.minimum=a.minimum,n.exclusiveMinimum=a.exclusiveMinimum,n.multipleOf=a.multipleOf,n.maxLength=a.maxLength,n.minLength=a.minLength,n.maxItems=a.maxItems,n.minItems=a.minItems,n.uniqueItems=a.uniqueItems,n.maxProperties=a.maxProperties,n.minProperties=a.minProperties,n.pattern=k(a.pattern),n.imports=[...n.imports,...a.imports],n.enum=[...n.enum,...a.enum],n.enums=[...n.enums,...a.enums],n.properties=[...n.properties,...a.properties],n}if(r.headers)for(let a in r.headers)return n.in="header",n.name=a,n.type="string",n.base="string",n;return n};var yo=({openApi:e,responses:t,types:r})=>{let s=[];return Object.entries(t).forEach(([n,o])=>{let a=xt(n);if(!a)return;let i=v(e,o),p=fo({code:a,openApi:e,response:i,types:r});s=[...s,p];}),s=bt(s),s.sort(Ot)};var go=({method:e,op:t,openApi:r,types:s,pathParams:n,url:o})=>{let a=q(),i={$refs:[],deprecated:t.deprecated===!0,description:t.description||null,id:t.operationId||null,imports:[],method:e.toUpperCase(),parameters:[...n.parameters],parametersBody:n.parametersBody,parametersCookie:[...n.parametersCookie],parametersForm:[...n.parametersForm],parametersHeader:[...n.parametersHeader],parametersPath:[...n.parametersPath],parametersQuery:[...n.parametersQuery],path:o,responseHeader:null,responses:[],summary:t.summary||null,tags:t.tags||null},p={...i,name:a.nameFn.operation(i)};if(t.parameters){let c=Pt({openApi:r,parameters:t.parameters,types:s});p.$refs=[...p.$refs,...c.$refs],p.imports=[...p.imports,...c.imports],p.parameters=[...p.parameters,...c.parameters],p.parametersBody=c.parametersBody,p.parametersCookie=[...p.parametersCookie,...c.parametersCookie],p.parametersForm=[...p.parametersForm,...c.parametersForm],p.parametersHeader=[...p.parametersHeader,...c.parametersHeader],p.parametersPath=[...p.parametersPath,...c.parametersPath],p.parametersQuery=[...p.parametersQuery,...c.parametersQuery];}if(t.responses){p.responses=yo({openApi:r,responses:t.responses,types:s});let c=p.responses.filter(m=>m.responseTypes.includes("success"));p.responseHeader=ht(c),c.forEach(m=>{p.$refs=[...p.$refs,...m.$refs],p.imports=[...p.imports,...m.imports];});}return p.parameters=Ct(p.parameters),p};var ho=({openApi:e,types:t})=>{let r=q(),s=new Map,n=[];for(let o in e.paths){let a=e.paths[o],i=Pt({openApi:e,parameters:a.parameters??[],types:t});for(let p in a){let c=p,m=ye({method:c.toUpperCase(),path:o});if(ft.includes(c)){let u=a[c];if(u.operationId&&(s.has(u.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${u.operationId} in ${m}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):s.set(u.operationId,m)),!r.filterFn?.operation||r.filterFn?.operation(m)){let d=go({method:c,op:u,openApi:e,pathParams:i,types:t,url:o});n.push(d);}}}}return n};var xo=e=>{let t=e.schemes?.[0]||"http",r=e.host,s=e.basePath||"";return (r?`${t}://${r}${s}`:s).replace(/\/$/g,"")};var Oo=e=>{let t=dt(e.info.version),r=xo(e),{models:s,types:n}=mo(e),o=ho({openApi:e,types:n});return {models:s,operations:o,server:r,types:n,version:t}};var bo=e=>{let r=`Parameter${P({type:e}).base.replace(Z,"_$1")}`;return {$ref:Le+e,name:r}},Tt=e=>{let t=oo(e);return {$ref:yt+e,name:t}};var ka=(e,t)=>{if(t)return t;if(typeof e=="number")return `'_${e}'`;let r="";return typeof e=="string"&&(r=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_").replace(/^([^$_\p{ID_Start}])/u,"_$1").replace(/(\p{Lowercase})(\p{Uppercase}+)/gu,"$1_$2")),r=r.trim(),r||(r="empty_string"),r.toUpperCase()},Po=e=>e.map(t=>Rt(t.value,!0)).filter(H).join(" | "),Rt=(e,t=!1)=>typeof e=="string"?e.includes("'")&&t?`"${e}"`:`'${e}'`:e,At=e=>{let t=ka(e.value,e.customName),r=Rt(e.value);return {key:t,value:r}},vt=e=>{let t=e.enum.map(r=>At(r)).sort((r,s)=>Ie(r.key,s.key)).map(r=>`${r.key}=${r.value}`).join("&");return {$ref:`enum/${e.name}/${t}`,name:z(je(e.name))}};var Na=e=>{let t={};for(let r in e)t[e[r]]=r;return t},Co=(e,t)=>{if(e.components&&t){for(let r in e.components.schemas)if(e.components.schemas.hasOwnProperty(r)){let s=e.components.schemas[r];if(s.discriminator&&s.oneOf?.length&&s.oneOf.some(n=>n.$ref&&tt(n.$ref)==t.name))return s.discriminator}}},To=(e,t)=>{if(e.mapping){let r=Na(e.mapping),s=Object.keys(r).find(n=>tt(n)==t.name);if(s&&r[s])return r[s]}return t.name};var cn=({debug:e,definition:t,getModel:r,model:s,openApi:n,types:o})=>{let a=typeof t.additionalProperties=="object"?t.additionalProperties:{},i=r({debug:e,definition:a,openApi:n,parentDefinition:t,types:o});if(a.$ref){let p=P({type:a.$ref});return s.base=p.base,s.default=E(t,s),s.export="dictionary",s.imports.push(...p.imports),s.template=p.template,s.type=p.type,s}if(t.additionalProperties&&t.properties&&Object.keys(t.properties).length>0){let p=typeof t.additionalProperties=="object"&&t.additionalProperties.type&&!Array.isArray(t.additionalProperties.type)?t.additionalProperties.type:i.base,c=[P({type:p}).base,...s.properties.map(m=>m.base)];return i.base=c.filter(H).join(" | "),i.default=E(t,s),i.export="generic",i.isRequired=t.additionalProperties===!0,i.name="[key: string]",i}return s.base=i.base,s.default=E(t,s),s.export="dictionary",s.imports.push(...i.imports),s.link=i,s.template=i.template,s.type=i.type,s},Et=({debug:e,definition:t,getModel:r,openApi:s,parent:n,types:o})=>{let a=[],i=Co(s,n);return Object.entries(t.properties??{}).forEach(([p,c])=>{let m=!!t.required?.includes(p),u={default:c.default,deprecated:c.deprecated===!0,description:c.description||null,exclusiveMaximum:c.exclusiveMaximum,exclusiveMinimum:c.exclusiveMinimum,format:c.type==="array"?c.items?.format??c.format:c.format,in:"",isDefinition:!1,isReadOnly:c.readOnly===!0,isRequired:m,maxItems:c.maxItems,maxLength:c.maxLength,maxProperties:c.maxProperties,maximum:c.maximum,minItems:c.minItems,minLength:c.minLength,minProperties:c.minProperties,minimum:c.minimum,multipleOf:c.multipleOf,name:ee(p),pattern:k(c.pattern),uniqueItems:c.uniqueItems};if(n&&i?.propertyName==p){a=[...a,{...u,$refs:[],base:`'${To(i,n)}'`,enum:[],enums:[],export:"reference",imports:[],isNullable:de(c),link:null,properties:[],template:null,type:"string"}];return}if(c.$ref){let h=P({type:c.$ref});a=[...a,{...u,$refs:h.$refs,base:h.base,enum:[],enums:[],export:"reference",imports:h.imports,isNullable:h.isNullable||de(c),link:null,properties:[],template:h.template,type:h.type}];return}let d=r({debug:e,definition:c,initialValues:u,openApi:s,parentDefinition:t,types:o});d.isNullable=d.isNullable||de(c),a=[...a,d];}),a};var Ro=({debug:e,definitions:t,getModel:r,openApi:s,required:n,types:o})=>t.reduce((i,p)=>{if(p.$ref){let c=P({type:p.$ref}),m={$ref:p.$ref,name:c.base};o[c.base]=m;let u=v(s,p);return [...i,...r({debug:e,definition:u,meta:m,openApi:s,types:o}).properties]}return [...i,...r({debug:e,definition:p,openApi:s,parentDefinition:p,types:o}).properties]},[]).filter(i=>!i.isRequired&&n.includes(i.name)).map(i=>({...i,isRequired:!0}));var St=e=>[{definitions:e.allOf,type:"all-of"},{definitions:e.anyOf,type:"any-of"},{definitions:e.oneOf,type:"one-of"}].find(r=>r.definitions?.length),Ao=({debug:e,definition:t,definitions:r,getModel:s,model:n,openApi:o,type:a,types:i})=>{let p={$refs:n.$refs,enums:n.enums,export:a,imports:n.imports,properties:n.properties},c=[];if(r.map(m=>s({debug:e,definition:m,openApi:o,parentDefinition:t,types:i})).forEach(m=>{p.$refs=[...p.$refs,...m.$refs],p.imports=[...p.imports,...m.imports],p.enums=[...p.enums,...m.enums],p.properties=[...p.properties,m];}),t.required&&a==="all-of"){let m=Ro({debug:e,definitions:r,getModel:s,openApi:o,required:t.required,types:i});m.forEach(u=>{p.$refs=[...p.$refs,...u.$refs],p.imports=[...p.imports,...u.imports],p.enums=[...p.enums,...u.enums];}),c=[...c,...m];}if(t.properties){let m=Et({definition:t,getModel:s,openApi:o,types:i});m.forEach(u=>{p.$refs=[...p.$refs,...u.$refs],p.imports=[...p.imports,...u.imports],p.enums=[...p.enums,...u.enums],u.export==="enum"&&(p.enums=[...p.enums,u]);}),c=[...c,...m];}if(c.length){let m=St(t);if(m){let u={$refs:[],base:"unknown",description:"",enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"properties",properties:c,template:null,type:"unknown"};m.type==="one-of"?(p.properties=[{...p,base:"",description:null,enum:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!0,link:null,name:"",template:null,type:""},u],p.export="all-of"):p.properties=[...p.properties,u];}}return p};var I=({debug:e,definition:t,initialValues:r={},isDefinition:s=!1,meta:n,openApi:o,parentDefinition:a=null,types:i})=>{let p=Ue(t),c=so(t,p),m={$refs:[],base:"unknown",deprecated:!!t.deprecated,description:t.description||null,enum:[],enums:[],exclusiveMaximum:t.exclusiveMaximum,exclusiveMinimum:t.exclusiveMinimum,export:"interface",format:t.format,imports:[],in:"",isDefinition:s,isNullable:de(t),isReadOnly:t.readOnly===!0,isRequired:!1,link:null,maxItems:t.maxItems,maxLength:t.maxLength,maxProperties:t.maxProperties,maximum:t.maximum,meta:n,minItems:t.minItems,minLength:t.minLength,minProperties:t.minProperties,minimum:t.minimum,multipleOf:t.multipleOf,name:n?.name??"",pattern:k(t.pattern),properties:[],template:null,type:"unknown",uniqueItems:t.uniqueItems,...r};if(t.$ref){let d=P({debug:e,type:t.$ref});return m.$refs=[...m.$refs,decodeURIComponent(t.$ref)],m.base=d.base,m.export="reference",m.imports=[...m.imports,...d.imports],m.template=d.template,m.type=d.type,m.default=E(t,m),m}if(c==="enum"){let d=Ke(t,t.enum);if(d.length)return m.base="string",m.enum=[...m.enum,...d],m.export="enum",m.type="string",m.default=E(t,m),m.meta||(m.meta=vt(m)),m}if(p.includes("array")&&(t.items||t.prefixItems)){if(t.prefixItems){let O=t.prefixItems.map(C=>I({definition:C,openApi:o,parentDefinition:t,types:i}));return m.export="array",m.$refs=[...m.$refs,...O.reduce((C,R)=>[...C,...R.$refs],[])],m.imports=[...m.imports,...O.reduce((C,R)=>[...C,...R.imports],[])],m.link=O,m.default=E(t,m),m}if(!t.items)return m;if(t.items.$ref){let O=P({type:t.items.$ref});return m.$refs=[...m.$refs,decodeURIComponent(t.items.$ref)],m.base=O.base,m.export="array",m.imports=[...m.imports,...O.imports],m.template=O.template,m.type=O.type,m.default=E(t,m),m}if(t.items.anyOf&&a&&a.type){let O=St(a);if(O&&O.definitions.some(C=>!Ue(C).includes("array")))return I({definition:t.items,openApi:o,parentDefinition:t,types:i})}let d=Array.isArray(t.items)?{anyOf:t.items}:t.items,h=I({definition:d,openApi:o,parentDefinition:t,types:i});return m.base=h.base,m.export="array",m.$refs=[...m.$refs,...h.$refs],m.imports=[...m.imports,...h.imports],m.link=h,m.template=h.template,m.type=h.type,m.default=E(t,m),m}let u=St(t);if(u){let d=Ao({...u,debug:e,definition:t,getModel:I,model:m,openApi:o,types:i});return {...m,...d}}if(p.includes("object")||t.properties||t.additionalProperties){if(t.properties&&(Object.keys(t.properties).length>0||!t.additionalProperties)){if(m.base="unknown",m.export="interface",m.type="unknown",m.default=E(t,m),Et({debug:e,definition:t,getModel:I,openApi:o,parent:m,types:i}).forEach(O=>{m.$refs=[...m.$refs,...O.$refs],m.enums=[...m.enums,...O.enums],m.imports=[...m.imports,...O.imports],m.properties=[...m.properties,O],O.export==="enum"&&(m.enums=[...m.enums,O]);}),t.additionalProperties){let O=cn({debug:e,definition:t,getModel:I,model:m,openApi:o,types:i});m.properties=[...m.properties,O];}return !m.properties.length&&m.base==="unknown"&&m.type==="unknown"&&(m.export="dictionary",m.name||(m.name="[key: string]")),m}return cn({debug:e,definition:t,getModel:I,model:m,openApi:o,types:i})}if(t.const!==void 0){let d=t.const,h=typeof d=="string"?`"${d}"`:`${d}`;return m.base=h,m.export="const",m.type=h,m}if(p.length){let d=P({format:t.format,type:t.type});return m.base=d.base,m.export="generic",m.$refs=[...m.$refs,...d.$refs],m.imports=[...m.imports,...d.imports],m.isNullable=d.isNullable||m.isNullable,m.template=d.template,m.type=d.type,m.default=E(t,m),m}return m};var qt=e=>{if(e.schema)return e.schema;if(e.content){let t=Object.entries(e.content);for(let[r,s]of t)if(s.schema){let n=r;return e.content[n].schema}}};var vo=e=>{let t=q(),r={},s=[];return e.components?(Object.entries(e.components.schemas??{}).forEach(([n,o])=>{let a=Tt(n);r[a.name]=a;let i=I({definition:o,isDefinition:!0,meta:a,openApi:e,types:r});s=[...s,i];}),Object.entries(e.components.parameters??{}).forEach(([n,o])=>{let a=qt(o);if(!a){t.debug&&console.warn("Skipping generating parameter:",n);return}let i=bo(n);r[i.name]=i;let p=I({definition:a,isDefinition:!0,meta:i,openApi:e,types:r});p.deprecated=o.deprecated,p.description=o.description||null,s=[...s,p];}),{models:s,types:r}):{models:s,types:r}};var Eo=({openApi:e,parameter:t,types:r})=>{let s=q(),n={$refs:[],base:"unknown",deprecated:t.deprecated===!0,description:t.description||null,enum:[],enums:[],export:"interface",imports:[],in:t.in,isDefinition:!1,isNullable:de(t),isReadOnly:!1,isRequired:t.required===!0,link:null,mediaType:null,prop:t.name,properties:[],template:null,type:"unknown"},o={...n,name:s.nameFn.operationParameter(n)};if(t.$ref){let i=P({type:t.$ref});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,export:"reference",imports:[...o.imports,...i.imports],template:i.template,type:i.type},o}let a=qt(t);if(a){if(a.$ref?.startsWith(Le)&&(a=v(e,a)),a.$ref){let p=P({type:a.$ref});return o={...o,$refs:[...o.$refs,...p.$refs],base:p.base,export:"reference",imports:[...o.imports,...p.imports],template:p.template,type:p.type},o.default=E(a),o}let i=I({definition:a,openApi:e,types:r});return o={...o,$refs:[...o.$refs,...i.$refs],base:i.base,enum:[...o.enum,...i.enum],enums:[...o.enums,...i.enums],exclusiveMaximum:i.exclusiveMaximum,exclusiveMinimum:i.exclusiveMinimum,export:i.export,format:i.format,imports:[...o.imports,...i.imports],isNullable:o.isNullable||i.isNullable,isReadOnly:i.isReadOnly,isRequired:o.isRequired||i.isRequired,link:i.link,maxItems:i.maxItems,maxLength:i.maxLength,maxProperties:i.maxProperties,maximum:i.maximum,minItems:i.minItems,minLength:i.minLength,minProperties:i.minProperties,minimum:i.minimum,multipleOf:i.multipleOf,pattern:k(i.pattern),properties:[...o.properties,...i.properties],template:i.template,type:i.type,uniqueItems:i.uniqueItems},(o.enum.length||o.enums.length)&&!o.meta&&(o.meta=vt(o)),o.default=i.default,o}return o};var wa=["cookie","formData","header","path","query"],kt=({openApi:e,parameters:t,types:r})=>{let s=q(),n={$refs:[],imports:[],parameters:[],parametersBody:null,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[]};return t.forEach(o=>{let a=v(e,o),i=Eo({openApi:e,parameter:a,types:r}),p=s.filterFn?.operationParameter&&!s.filterFn?.operationParameter(i);if(!(!wa.includes(a.in)||p)){switch(a.in){case"cookie":n.parametersCookie=[...n.parametersCookie,i];break;case"formData":n.parametersForm=[...n.parametersForm,i];break;case"header":n.parametersHeader=[...n.parametersHeader,i];break;case"path":n.parametersPath=[...n.parametersPath,i];break;case"query":n.parametersQuery=[...n.parametersQuery,i];break}n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.parameters=[...n.parameters,i];}}),n};var $a=["application/json-patch+json","application/json","application/ld+json","application/x-www-form-urlencoded","multipart/batch","multipart/form-data","multipart/mixed","multipart/related","text/json","text/plain"],Nt=(e,t)=>{let r=Object.keys(t).filter(n=>{let o=n.split(";")[0].trim();return $a.includes(o)}).find(n=>!!t[n]?.schema);if(r)return {mediaType:r,schema:t[r].schema};let s=Object.keys(t).find(n=>!!t[n]?.schema);if(s)return {mediaType:s,schema:t[s].schema}};var So=({body:e,debug:t,openApi:r,types:s})=>{let n=e["x-body-name"]??"requestBody",o={$refs:[],base:"unknown",default:void 0,description:e.description||null,enum:[],enums:[],export:"interface",imports:[],in:"body",isDefinition:!1,isNullable:e.nullable===!0,isReadOnly:!1,isRequired:e.required===!0,link:null,mediaType:null,name:n,prop:n,properties:[],template:null,type:"unknown"};if(!e.content)return o;let a=Nt(r,e.content);if(!a)return o;switch(o.mediaType=a.mediaType,o.mediaType){case"application/x-www-form-urlencoded":case"multipart/form-data":o.in="formData",o.name="formData",o.prop="formData";break}if(a.schema.$ref){let p=P({type:a.schema.$ref});return o.export="reference",o.type=p.type,o.base=p.base,o.template=p.template,o.$refs=[...o.$refs,...p.$refs],o.imports=[...o.imports,...p.imports],o}let i=I({debug:t,definition:a.schema,openApi:r,types:s});return o.$refs=[...o.$refs,...i.$refs],o.base=i.base,o.enum=[...o.enum,...i.enum],o.enums=[...o.enums,...i.enums],o.exclusiveMaximum=i.exclusiveMaximum,o.exclusiveMinimum=i.exclusiveMinimum,o.export=i.export,o.format=i.format,o.imports=[...o.imports,...i.imports],o.isNullable=o.isNullable||i.isNullable,o.isReadOnly=i.isReadOnly,o.isRequired=o.isRequired||i.isRequired,o.link=i.link,o.maximum=i.maximum,o.maxItems=i.maxItems,o.maxLength=i.maxLength,o.maxProperties=i.maxProperties,o.minimum=i.minimum,o.minItems=i.minItems,o.minLength=i.minLength,o.minProperties=i.minProperties,o.multipleOf=i.multipleOf,o.pattern=k(i.pattern),o.properties=[...o.properties,...i.properties],o.template=i.template,o.type=i.type,o.uniqueItems=i.uniqueItems,o};var qo=({code:e,openApi:t,response:r,types:s})=>{let n={$refs:[],base:e!==204?"unknown":"void",code:e,description:r.description||null,enum:[],enums:[],export:"generic",imports:[],in:"response",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],responseTypes:[],template:null,type:e!==204?"unknown":"void"};if(r.content){let o=Nt(t,r.content);if(o){if(o.schema.$ref?.startsWith("#/components/responses/")&&(o.schema=v(t,o.schema)),o.schema.$ref){let i=P({type:o.schema.$ref});return n.base=i.base,n.export="reference",n.$refs=[...n.$refs,...i.$refs],n.imports=[...n.imports,...i.imports],n.template=i.template,n.type=i.type,n}let a=I({definition:o.schema,openApi:t,types:s});return n.export=a.export,n.type=a.type,n.base=a.base,n.template=a.template,n.link=a.link,n.isReadOnly=a.isReadOnly,n.isRequired=a.isRequired,n.isNullable=a.isNullable,n.format=a.format,n.maximum=a.maximum,n.exclusiveMaximum=a.exclusiveMaximum,n.minimum=a.minimum,n.exclusiveMinimum=a.exclusiveMinimum,n.multipleOf=a.multipleOf,n.maxLength=a.maxLength,n.minLength=a.minLength,n.maxItems=a.maxItems,n.minItems=a.minItems,n.uniqueItems=a.uniqueItems,n.maxProperties=a.maxProperties,n.minProperties=a.minProperties,n.pattern=k(a.pattern),n.$refs=[...n.$refs,...a.$refs],n.imports=[...n.imports,...a.imports],n.enum=[...n.enum,...a.enum],n.enums=[...n.enums,...a.enums],n.properties=[...n.properties,...a.properties],n}}if(r.headers)for(let o in r.headers)return n.in="header",n.name=o,n.type="string",n.base="string",n;return n};var ko=({debug:e,openApi:t,responses:r,types:s})=>{let n=[];return Object.entries(r).forEach(([o,a])=>{let i=xt(o);if(!i)return;let p=v(t,a),c=qo({code:i,openApi:t,response:p,types:s});n=[...n,c];}),n=bt(n),n.sort(Ot)};var We=(e,t)=>{let r=[...e],s=[...t];for(;s.length>0;){let n=s[0];s=s.slice(1),r.every(a=>a.in!==n.in||a.name!==n.name)&&(r=[...r,n]);}return r},No=({debug:e,method:t,op:r,openApi:s,pathParams:n,types:o,url:a})=>{let i=q(),p={$refs:[],deprecated:!!r.deprecated,description:r.description||null,id:r.operationId||null,imports:[],method:t.toUpperCase(),parameters:[],parametersBody:n.parametersBody,parametersCookie:[],parametersForm:[],parametersHeader:[],parametersPath:[],parametersQuery:[],path:a,responseHeader:null,responses:[],summary:r.summary||null,tags:r.tags||null},c={...p,name:i.nameFn.operation(p)};if(r.parameters){let m=kt({openApi:s,parameters:r.parameters,types:o});c.$refs=[...c.$refs,...m.$refs],c.imports=[...c.imports,...m.imports],c.parameters=[...c.parameters,...m.parameters],c.parametersBody=m.parametersBody,c.parametersCookie=[...c.parametersCookie,...m.parametersCookie],c.parametersForm=[...c.parametersForm,...m.parametersForm],c.parametersHeader=[...c.parametersHeader,...m.parametersHeader],c.parametersPath=[...c.parametersPath,...m.parametersPath],c.parametersQuery=[...c.parametersQuery,...m.parametersQuery];}if(r.requestBody){let m=v(s,r.requestBody),u=So({body:m,debug:e,openApi:s,types:o});c.$refs=[...c.$refs,...u.$refs],c.imports=[...c.imports,...u.imports],c.parameters=[...c.parameters,u],c.parametersBody=u;}if(r.responses){c.responses=ko({openApi:s,responses:r.responses,types:o});let m=c.responses.filter(u=>u.responseTypes.includes("success"));c.responseHeader=ht(m),m.forEach(u=>{c.$refs=[...c.$refs,...u.$refs],c.imports=[...c.imports,...u.imports];});}return c.parameters=We(c.parameters,n.parameters),c.parametersCookie=We(c.parametersCookie,n.parametersCookie),c.parametersForm=We(c.parametersForm,n.parametersForm),c.parametersHeader=We(c.parametersHeader,n.parametersHeader),c.parametersPath=We(c.parametersPath,n.parametersPath),c.parametersQuery=We(c.parametersQuery,n.parametersQuery),c.parameters=Ct(c.parameters),c};var wo=({openApi:e,types:t})=>{let r=q(),s=new Map,n=[];for(let o in e.paths){let a=e.paths[o],i=kt({openApi:e,parameters:a.parameters??[],types:t});for(let p in a){let c=p,m=ye({method:c.toUpperCase(),path:o});if(ft.includes(c)){let u=a[c];if(u.operationId&&(s.has(u.operationId)?console.warn(`\u2757\uFE0F Duplicate operationId: ${u.operationId} in ${m}. Please ensure your operation IDs are unique. This behavior is not supported and will likely lead to unexpected results.`):s.set(u.operationId,m)),!r.filterFn?.operation||r.filterFn?.operation(m)){let d=No({method:c,op:u,openApi:e,pathParams:i,types:t,url:o});n.push(d);}}}}return n};var $o=e=>{let t=e.servers?.[0],r=t?.variables||{},s=t?.url||"";return Object.entries(r).forEach(([n,o])=>{s=s.replace(`{${n}}`,o.default);}),s.replace(/\/$/g,"")};var Io=e=>{let t=dt(e.info.version),r=$o(e),{models:s,types:n}=vo(e),o=wo({openApi:e,types:n});return {models:s,operations:o,server:r,types:n,version:t}};function Do({openApi:e,config:t}){if(eo(t),"openapi"in e)return Io(e);if("swagger"in e)return Oo(e);throw new Error(`Unsupported OpenAPI specification: ${JSON.stringify(e,null,2)}`)}var Mo=({spec:e})=>{let t=e;switch(t.openapi){case"3.0.3":return nn(t);case"3.1.0":return rn(t);default:throw new Error("Unsupported OpenAPI specification")}};var mn=(e,t)=>{let r=g();if(Array.isArray(e))return e.map(n=>mn(n));if(typeof e!="object"||e===null)return e;let s={...e};return Object.entries(s).forEach(([n,o])=>{if(r.schemas.type==="form"&&["description","x-enum-descriptions","x-enum-varnames","x-enumNames","title"].includes(n)&&t!=="properties"){delete s[n];return}n==="$ref"&&typeof o=="string"&&(s[n]=decodeURIComponent(o)),o&&typeof o=="object"&&(s[n]=mn(o,n));}),s},Ia=(e,t)=>{let r=g(),s=z(e);return r.schemas.name?r.schemas.name(s,t):`${s}Schema`},jo=async({files:e,openApi:t})=>{let r=g();if(!r.schemas.export)return;e.schemas=new K({dir:r.output.path,name:"schemas.ts"});let s=(n,o)=>{let a=mn(o),i=l.objectExpression({obj:a}),p=l.constVariable({assertion:"const",exportConst:!0,expression:i,name:Ia(n,o)});e.schemas.add(p);};"swagger"in t&&Object.entries(t.definitions??{}).forEach(([n,o])=>{s(n,o);}),"openapi"in t&&Object.entries(t.components?.schemas??{}).forEach(([n,o])=>{s(n,o);});};var nt=e=>e.format==="date"||e.format==="date-time",ln=e=>{let t=g();return e.base==="binary"?l.typeUnionNode({types:["Blob","File"]}):t.types.dates&&nt(e)?l.typeNode("Date"):l.typeNode(e.base)},Da=e=>{let t=e.base==="null"?!1:e.isNullable,r=ln(e);if(e.export==="reference"&&e.$refs.length===1&&e.$refs[0].startsWith(yt)){let n=Tt(e.base);r=l.typeNode(n.name);}return l.typeUnionNode({isNullable:t,types:[r]})},Ma=e=>{if(e.link){if(Array.isArray(e.link)){let t=e.link.map(s=>W(s));return l.typeTupleNode({isNullable:e.isNullable,types:t})}if(e.export==="array"&&e.maxItems&&e.minItems&&e.maxItems===e.minItems&&e.maxItems<=100){let t=Array(e.maxItems).fill(W(e.link));return l.typeTupleNode({isNullable:e.isNullable,types:t})}return l.typeArrayNode([W(e.link)],e.isNullable)}return l.typeArrayNode([ln(e)],e.isNullable)},ja=e=>{let t=e.enum.map(r=>Rt(r.value));return l.typeUnionNode({isNullable:e.isNullable,types:t})},Ha=e=>{let t=e.link&&!Array.isArray(e.link)?W(e.link):ln(e);return l.typeRecordNode(["string"],[t],e.isNullable)},Ho=({model:e,style:t})=>{let r=e.properties.map(n=>l.nodeToString({node:W(n),unescape:!0})).filter(H),s=t==="union"?l.typeUnionNode({isNullable:e.isNullable&&!e.properties.find(n=>n.isNullable),types:r}):l.typeIntersectionNode({isNullable:e.isNullable,types:r});return e.meta?s:l.typeParenthesizedNode({type:s})},Fa=e=>{if(!e.properties.length)return l.typeNode("unknown");let t=g(),r=A(t),s=e.properties.map(n=>{let o=n.isRequired?"":"?",a=W(n),i=r?ee(je(un(n.name))):/^\dXX$/.test(n.name)?ee(n.name):n.name;return n.name==="[key: string]"&&(i=n.name,o&&(o="",a=l.typeUnionNode({types:[a,"undefined"]}))),{comment:[n.description&&w(n.description),n.deprecated&&"@deprecated"],isReadOnly:n.isReadOnly,isRequired:o==="",name:i,type:a}});return l.typeInterfaceNode({isNullable:e.isNullable,properties:s})},W=e=>{switch(e.export){case"all-of":return Ho({model:e,style:"intersection"});case"any-of":case"one-of":return Ho({model:e,style:"union"});case"array":return Ma(e);case"dictionary":return Ha(e);case"enum":return ja(e);case"interface":return Fa(e);case"const":case"generic":case"reference":default:return Da(e)}},Q=({client:e,count:t=1,create:r=!1,meta:s,nameTransformer:n})=>{let o={created:!1,name:""},a=s.name;n&&(a=n(a)),t>1&&(a=`${a}${t}`);let i=e.types[a];return i?i.$ref===s.$ref?o={created:!1,name:a}:o=Q({client:e,count:t+1,create:r,meta:s,nameTransformer:n}):r&&(e.types[a]=s,o={created:!0,name:a}),o},Fo=({client:e,name:t})=>{let r={deleted:!1,name:""};return e.types[t]&&(delete e.types[t],r={deleted:!0,name:t}),r},un=e=>{let t=g();return A(t)?e:j({input:pn(e)}).replace(Z,"_$1")};var Se=({meta:e,onImport:t,...r})=>{if(!e)return {created:!1,name:""};let{created:s,name:n}=Q({meta:e,...r});return n&&t(n),{created:s,name:n}},Vo=e=>`${e}ModelResponseTransformer`,qe=e=>`${j({input:e,pascalCase:!0})}Data`,Qe=e=>`${j({input:e,pascalCase:!0})}Error`,fn=e=>`${e}Transformer`,ae=e=>`${j({input:e,pascalCase:!0})}Response`,dn=(e,t)=>{let r=Te();return t?`${r}<${e||"unknown"}, ${t}>`:e?`${r}<${e}>`:r},Bo=(e,t)=>{let r=g(),{name:s}=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:qe}),n=ie(t.parameters);if(A(r))return [{isRequired:n,name:"options",type:dn(s,"ThrowOnError")}];if(!t.parameters.length)return [];let o=a=>{if(a.default!==void 0)return JSON.stringify(a.default,null,4)};return r.useOptions?[{default:n?void 0:{},name:"data",type:s}]:t.parameters.map(a=>{let i=`${s}['${a.name}']`;return {default:a?.default,isRequired:(!a.isRequired&&!o(a)?"?":"")=="",name:a.name,type:i}})},Lo=(e,t)=>{let r=g(),s=l.typeNode("void");if(t.responses.filter(o=>o.responseTypes.includes("success")).length){let{name:o}=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:ae});s=l.typeUnionNode({types:[o]});}return r.useOptions&&r.services.response==="response"&&(s=l.typeNode("ApiResult",[s])),r.client.name==="legacy/angular"?s=l.typeNode("Observable",[s]):s=l.typeNode("CancelablePromise",[s]),s},_o=e=>{let t=g();if(A(t))return [e.deprecated&&"@deprecated",e.summary&&w(e.summary),e.description&&w(e.description)];let r=[];e.parameters.length&&(t.useOptions?r=["@param data The data for the request.",...e.parameters.map(o=>`@param data.${o.name} ${o.description?w(o.description):""}`)]:r=e.parameters.map(o=>`@param ${o.name} ${o.description?w(o.description):""}`));let s=e.responses.filter(o=>o.responseTypes.includes("success"));return [e.deprecated&&"@deprecated",e.summary&&w(e.summary),e.description&&w(e.description),...r,...s.map(o=>`@returns ${o.type} ${o.description?w(o.description):""}`),"@throws ApiError"]},Ba=(e,t,r,s)=>{let n=g(),o=ae(t.name),{name:a}=Q({client:e,meta:{$ref:`transformers/${o}`,name:o},nameTransformer:fn});if(a&&r(a),A(n)){let m=[{spread:"options"}],d=t.parameters.filter(h=>h.in==="body"||h.in==="formData").map(h=>h.mediaType||(h.in==="formData"?"multipart/form-data":void 0)).filter(Boolean).filter(H);return d.length===1&&(d[0]==="multipart/form-data"&&(m=[...m,{spread:"formDataBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:null},{spread:"options?.headers"}]}],s?.("formDataBodySerializer")),d[0]==="application/x-www-form-urlencoded"&&(m=[...m,{spread:"urlSearchParamsBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:d[0]},{spread:"options?.headers"}]}],s?.("urlSearchParamsBodySerializer"))),m=[...m,{key:"url",value:t.path}],a&&(m=[...m,{key:"responseTransformer",value:a}]),l.objectExpression({identifiers:["responseTransformer"],obj:m})}let i=m=>m.reduce((u,d)=>{let h=d.prop,O=n.useOptions?`data.${d.name}`:d.name;return h===O?u[h]=h:ee(h)===h?u[h]=O:u[`'${h}'`]=O,u},{}),p={method:t.method,url:t.path};t.parametersPath.length&&(p.path=i(t.parametersPath)),t.parametersCookie.length&&(p.cookies=i(t.parametersCookie)),t.parametersHeader.length&&(p.headers=i(t.parametersHeader)),t.parametersQuery.length&&(p.query=i(t.parametersQuery)),t.parametersForm.length&&(p.formData=i(t.parametersForm)),t.parametersBody&&(t.parametersBody.in==="formData"&&(n.useOptions?p.formData=`data.${t.parametersBody.name}`:p.formData=t.parametersBody.name),t.parametersBody.in==="body"&&(n.useOptions?p.body=`data.${t.parametersBody.name}`:p.body=t.parametersBody.name)),t.parametersBody?.mediaType&&(p.mediaType=t.parametersBody?.mediaType),t.responseHeader&&(p.responseHeader=t.responseHeader),a&&(p.responseTransformer=a);let c=t.responses.filter(m=>m.responseTypes.includes("error"));if(c.length>0){let m={};c.forEach(u=>{m[u.code]=u.description??"";}),p.errors=m;}return l.objectExpression({identifiers:["body","cookies","formData","headers","path","query","responseTransformer"],obj:p,shorthand:!0})},ge=(e,t)=>{let r=g();return r.services.methodNameBuilder?r.services.methodNameBuilder(e):t&&e.name.match(Z)?`${e.name}_`:e.name},Uo=(e,t,r,s)=>{let n=g(),o=Ba(e,t,r,s);if(A(n)){let a=Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Qe}).name,p=t.responses.filter(c=>c.responseTypes.includes("success")).length?Q({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:ae}).name:"void";return [l.returnFunctionCall({args:[o],name:`(options?.client ?? client).${t.method.toLocaleLowerCase()}`,types:a&&p?[p,a,"ThrowOnError"]:a?["unknown",a,"ThrowOnError"]:p?[p,"unknown","ThrowOnError"]:[]})]}return n.name?[l.returnFunctionCall({args:[o],name:"this.httpRequest.request"})]:n.client.name==="legacy/angular"?[l.returnFunctionCall({args:["OpenAPI","this.http",o],name:"__request"})]:[l.returnFunctionCall({args:["OpenAPI",o],name:"__request"})]},La=({client:e,onClientImport:t,onImport:r,onNode:s,service:n})=>{let o=g(),a=A(o);for(let m of n.operations)m.parameters.length&&Se({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:qe,onImport:r}),a&&Se({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:Qe,onImport:r}),m.responses.filter(d=>d.responseTypes.includes("success")).length&&Se({client:e,meta:{$ref:m.name,name:m.name},nameTransformer:ae,onImport:r});let i={default:!1,extends:"boolean",name:"ThrowOnError"};if(!o.services.asClass&&!o.name){for(let m of n.operations){let u={parameters:Bo(e,m),returnType:a?void 0:Lo(e,m),statements:Uo(e,m,r,t),types:a?[i]:void 0},d=o.client.name==="legacy/angular"?l.anonymousFunction(u):l.arrowFunction(u),h=l.constVariable({comment:_o(m),exportConst:!0,expression:d,name:ge(m,!0)});s(h);}return}let p=n.operations.map(m=>l.methodDeclaration({accessLevel:"public",comment:_o(m),isStatic:o.name===void 0&&o.client.name!=="legacy/angular",name:ge(m,!1),parameters:Bo(e,m),returnType:a?void 0:Lo(e,m),statements:Uo(e,m,r,t),types:a?[i]:void 0}));if(!p.length)return;o.name?p=[l.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:"public",isReadOnly:!0,name:"httpRequest",type:"BaseHttpRequest"}]}),...p]:o.client.name==="legacy/angular"&&(p=[l.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:"public",isReadOnly:!0,name:"http",type:"HttpClient"}]}),...p]);let c=l.classDeclaration({decorator:o.client.name==="legacy/angular"?{args:[{providedIn:"root"}],name:"Injectable"}:void 0,members:p,name:_e(n.name)});s(c);},_a=({files:e})=>{if(!g().client.name)throw new Error("\u{1F6AB} client needs to be set to generate services - which HTTP client do you want to use?");if(!e.types)throw new Error("\u{1F6AB} types need to be exported to generate services - enable type generation")},Ko=async({client:e,files:t})=>{let r=g();if(!r.services.export)return;_a({files:t});let s=A(r);if(t.services=new K({dir:r.output.path,name:"services.ts"}),s?(t.services.import({module:Ce(),name:"createClient"}),t.services.import({module:Ce(),name:"createConfig"}),t.services.import({asType:!0,module:Ce(),name:Te()})):(r.client.name==="legacy/angular"?(t.services.import({module:"@angular/core",name:"Injectable"}),r.name||t.services.import({module:"@angular/common/http",name:"HttpClient"}),t.services.import({asType:!0,module:"rxjs",name:"Observable"})):t.services.import({asType:!0,module:"./core/CancelablePromise",name:"CancelablePromise"}),r.services.response==="response"&&t.services.import({asType:!0,module:"./core/ApiResult",name:"ApiResult"}),r.name?t.services.import({asType:r.client.name!=="legacy/angular",module:"./core/BaseHttpRequest",name:"BaseHttpRequest"}):(t.services.import({module:"./core/OpenAPI",name:"OpenAPI"}),t.services.import({alias:"__request",module:"./core/request",name:"request"}))),s){let n=l.constVariable({exportConst:!0,expression:l.callExpression({functionName:"createClient",parameters:[l.callExpression({functionName:"createConfig"})]}),name:"client"});t.services.add(n);}for(let n of e.services)La({client:e,onClientImport:o=>{t.services.import({module:Ce(),name:o});},onImport:o=>{t.services.import({asType:!o.endsWith("Transformer"),module:`./${t.types.getName(!1)}`,name:o});},onNode:o=>{t.services.add(o);},service:n});};var Ua="$OpenApiTs",D={$refs:[],base:"",description:null,enum:[],enums:[],export:"interface",imports:[],in:"",isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:"",properties:[],template:null,type:""},Va=({leadingComment:e,comments:t,meta:r,obj:s,onNode:n,...o})=>{if(!r)return;let{created:a,name:i}=Q({create:!0,meta:r,...o});if(a){let p=l.enumDeclaration({comments:t,leadingComment:e,name:i,obj:s});n(p);}},me=({comment:e,meta:t,onCreated:r,onNode:s,type:n,...o})=>{if(!t)return {created:!1,name:""};let a=Q({create:!0,meta:t,...o}),{created:i,name:p}=a;if(i){let c=l.typeAliasDeclaration({comment:e,exportType:!0,name:p,type:n});s(c),r?.(p);}return a},Ka=e=>{let t=g(),r=[];Qo(e),e.model.enums.forEach(s=>t.types.enums!=="typescript+namespace"?Wo({...e,model:s}):Wa({...e,model:s,onNode:n=>{r.push(n);}})),r.length&&e.onNode(l.namespaceDeclaration({name:e.model.name,statements:r}));},Wo=({client:e,model:t,onNode:r})=>{let s=g(),n={},o={};t.enum.forEach(i=>{let{key:p,value:c}=At(i);n[p]=c;let m=i.customDescription||i.description;m&&(o[p]=[w(m)]);});let a=[t.description&&w(t.description),t.deprecated&&"@deprecated"];if(s.types.enums==="typescript"||s.types.enums==="typescript+namespace"){Va({client:e,comments:o,leadingComment:a,meta:t.meta,obj:n,onNode:r});return}me({client:e,comment:a,meta:t.meta,onCreated:i=>{if(s.types.enums==="javascript"){let p=l.objectExpression({multiLine:!0,obj:Object.entries(n).map(([m,u])=>({comments:o[m],key:m,value:u})),unescape:!0}),c=l.constVariable({assertion:"const",comment:a,exportConst:!0,expression:p,name:i});r(c);}},onNode:r,type:Po(t.enum)});},Wa=({model:e,onNode:t})=>{let r={},s={};e.enum.forEach(n=>{let{key:o,value:a}=At(n);r[o]=a;let i=n.customDescription||n.description;i&&(s[o]=[w(i)]);}),t(l.enumDeclaration({comments:s,leadingComment:[e.description&&w(e.description),e.deprecated&&"@deprecated"],name:e.meta?.name||e.name,obj:r}));},Qo=({client:e,model:t,onNode:r})=>{me({client:e,comment:[t.description&&w(t.description),t.deprecated&&"@deprecated"],meta:t.meta,onNode:r,type:W(t)});},Qa=e=>{switch(e.model.export){case"all-of":case"any-of":case"one-of":case"interface":return Ka(e);case"enum":return Wo(e);default:return Qo(e)}},Ga=({client:e,onNode:t})=>{let r={},s=g();if(!s.services.export&&!s.types.tree)return;let n=A(s);for(let a of e.services)for(let i of a.operations){if(!i.parameters.length&&!i.responses.length)continue;r[i.path]||(r[i.path]={});let p=r[i.path];p[i.method]||(p[i.method]={});let c=p[i.method];if(c.$ref=i.name,i.responses.length>0){if(c.res||(c.res={}),Array.isArray(c.res))continue;i.responses.forEach(u=>{c.res[u.code]=u;});}if(i.parameters.length>0){let u={mediaType:null,...D,in:"body",name:"body",prop:"body"},d=i.parameters.filter(x=>x.in==="body");d.length||(d=i.parameters.filter(x=>x.in==="formData")),d.length===1?u={...D,...d[0],in:"body",isRequired:d[0].isRequired,name:"body",prop:"body"}:d.length>1&&(u={...D,in:"body",isRequired:d.some(x=>x.isRequired),mediaType:"multipart/form-data",name:"body",prop:"body",properties:d});let h={...D,in:"header",isRequired:ie(i.parameters.filter(x=>x.in==="header")),mediaType:null,name:n?"headers":"header",prop:n?"headers":"header",properties:i.parameters.filter(x=>x.in==="header").sort(ze)},O={...D,in:"path",isRequired:ie(i.parameters.filter(x=>x.in==="path")),mediaType:null,name:"path",prop:"path",properties:i.parameters.filter(x=>x.in==="path").sort(ze)},C={...D,in:"query",isRequired:ie(i.parameters.filter(x=>x.in==="query")),mediaType:null,name:"query",prop:"query",properties:i.parameters.filter(x=>x.in==="query").sort(ze)},R=n?[u,h,O,C].filter(x=>x.properties.length||x.$refs.length||x.mediaType):Je([...i.parameters]);c.req=R,me({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:qe,onNode:t,type:W({...D,isRequired:!0,properties:R})});}let m=i.responses.filter(u=>u.responseTypes.includes("success"));if(m.length>0){me({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:ae,onNode:t,type:W({...D,export:"any-of",isRequired:!0,properties:m})});let u=i.responses.filter(d=>d.responseTypes.includes("error"));n&&me({client:e,meta:{$ref:i.name,name:i.name},nameTransformer:Qe,onNode:t,type:W(u.length?{...D,export:"one-of",isRequired:!0,properties:u}:{...D,base:"unknown",isRequired:!0,type:"unknown"})});}}let o=Object.entries(r).map(([a,i])=>{let p=Object.entries(i).map(([m,u])=>{let d=m,h=[];if(u.req){let C=u.$ref,{name:R}=Q({client:e,meta:{$ref:C,name:C},nameTransformer:qe}),x={...D,base:R,export:"reference",isRequired:!0,name:"req",properties:[],type:R};h=[...h,x];}if(u.res){let C=Object.entries(u.res).map(([x,ke])=>({...D,...ke,isRequired:!0,name:String(x)})),R={...D,isRequired:!0,name:"res",properties:C};h=[...h,R];}return {...D,isRequired:!0,name:d.toLocaleLowerCase(),properties:h}}).filter(Boolean);return {...D,isRequired:!0,name:`'${a}'`,properties:p}});s.types.tree&&me({client:e,meta:{$ref:"@hey-api/openapi-ts",name:Ua},onNode:t,type:W({...D,properties:o})});},Go=async({client:e,files:t})=>{let r=g();r.types.export&&(t.types=new K({dir:r.output.path,name:"types.ts"}));let s=n=>{t.types?.add(n);};for(let n of e.models)Qa({client:e,model:n,onNode:s});Ga({client:e,onNode:s});};var he="data",za=e=>e.base==="unknown"&&e.export==="generic"&&e.type==="unknown",Xo=({client:e,model:t})=>t.$refs.map(s=>{let n=e.models.find(o=>o.meta?.$ref===s);if(!n)throw new Error(`Ref ${s} could not be found. Transformers cannot be generated without having access to all refs.`);return n}),zo=e=>{let t=e.model.meta.name,{name:r}=me({...e,meta:{$ref:`transformers/${t}`,name:t},nameTransformer:Vo,onCreated:n=>{let o=wt({...e,meta:{$ref:`transformers/${t}`,name:n},path:[he]});Jo({...e,async:!1,name:n,statements:o});},type:`(${he}: any) => ${t}`});return {created:!!e.client.types[r],name:r}},Ja=e=>{let{model:t}=e,r=Xo(e);if(r.length===1){let{created:s,name:n}=zo({...e,model:r[0]});return s?[l.transformArrayMutation({path:e.path,transformerName:n})]:[]}return nt(t)||t.link&&!Array.isArray(t.link)&&t.link.export==="any-of"&&t.link.properties.find(s=>nt(s))?[l.transformArrayMap({path:e.path,transformExpression:l.conditionalExpression({condition:l.identifier({text:"item"}),whenFalse:l.identifier({text:"item"}),whenTrue:l.transformNewDate({parameterName:"item"})})})]:[]},Ya=e=>{let{model:t}=e,r=[...e.path,t.name];return t.type==="string"&&t.export!=="array"&&nt(t)?[l.transformDateMutation({path:r})]:wt({...e,model:t,path:r})},wt=e=>{let{model:t}=e;switch(t.export){case"array":return Ja(e);case"interface":return t.properties.flatMap(r=>Ya({...e,model:r}));case"reference":{if(t.$refs.length!==1)return [];let r=Xo(e),{created:s,name:n}=zo({...e,model:r[0]});return s?t.in==="response"?[l.expressionToStatement({expression:l.callExpression({functionName:n,parameters:[he]})})]:l.transformFunctionMutation({path:e.path,transformerName:n}):[]}default:return []}},Jo=({async:e,client:t,name:r,onNode:s,onRemoveNode:n,statements:o})=>{let a={created:!1,name:r};if(!o.length)return Fo({client:t,name:r}),n?.(),a;let i=l.arrowFunction({async:e,multiLine:!0,parameters:[{name:he}],statements:[...o,l.returnVariable({expression:he})]}),p=l.constVariable({exportConst:!0,expression:i,name:r,typeName:r});return s(p),{created:!0,name:r}},Yo=async({client:e,onNode:t,onRemoveNode:r})=>{let s=g();for(let n of e.services)for(let o of n.operations){let a=o.responses.filter(c=>c.responseTypes.includes("success"));if(!a.length)continue;let i=a.filter(c=>!za(c));if(!i.length)continue;if(i.length>1){s.debug&&console.warn(`\u2757\uFE0F Transformers warning: route ${ye(o)} has ${i.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);continue}let p=ae(o.name);me({client:e,meta:{$ref:`transformers/${p}`,name:p},nameTransformer:fn,onCreated:c=>{let m=a.length>1?a.flatMap(u=>{let d=wt({client:e,meta:{$ref:`transformers/${p}`,name:p},model:u,onNode:t,onRemoveNode:r,path:[he]});return d.length?[l.ifStatement({expression:l.safeAccessExpression(["data"]),thenStatement:y.factory.createBlock(d)})]:[]}):wt({client:e,meta:{$ref:`transformers/${p}`,name:p},model:a[0],onNode:t,onRemoveNode:r,path:[he]});Jo({async:!0,client:e,name:c,onNode:t,onRemoveNode:r,statements:m});},onNode:t,type:`(${he}: any) => Promise<${p}>`});}};var es=async(e,t,r)=>{let s=g();if(s.services.include&&s.services.asClass){let a=new RegExp(s.services.include);t.services=t.services.filter(i=>a.test(i.name));}if(s.types.include){let a=new RegExp(s.types.include);t.models=t.models.filter(i=>a.test(i.name));}let n=V.resolve(s.output.path),o={};await dr(n,s.client.name),await Go({client:t,files:o}),await jo({files:o,openApi:e}),s.services.export&&t.services.length&&s.types.dates==="types+transform"&&await Yo({client:t,onNode:a=>{o.types?.add(a);},onRemoveNode:()=>{o.types?.removeNode();}}),await Ko({client:t,files:o}),await fr(e,n,t,r),await yr(V.resolve(s.output.path,"core"),t,r),await Jr({files:o}),await Yr({client:t,files:o}),Object.entries(o).forEach(([a,i])=>{s.dryRun||(a==="index"?i.write():i.write(`
19
19
 
20
- `));});};var wt={handler:()=>{},name:"@hey-api/schemas",output:"schemas"};var $t={handler:()=>{},name:"@hey-api/services",output:"services"};var It={handler:()=>{},name:"@hey-api/types",output:"types"};var Ya=e=>`${he(e,!1)}InfiniteOptions`,Za=e=>`${he(e,!1)}Mutation`,ep=e=>`${he(e,!1)}Options`,Dt=(e,t)=>`${he(e,!1)}${t?"Infinite":""}QueryKey`,tp=({files:e})=>{if(!e.services)throw new Error("\u{1F6AB} services need to be exported to use TanStack Query plugin - enable service generation")},np=e=>{switch(e.in){case"formData":return "body";case"header":return "headers";default:return e.in}},Qe=/^(cursor|offset|page|start)/,ps="createQueryKey",es="infiniteQueryOptions",ts="mutationOptions",gn="QueryKey",ns="queryOptions",tt="TOptions",yn=()=>g().client.name==="@hey-api/client-axios"?"baseURL":"baseUrl",rs=({file:e})=>{let t=l.indexedAccessTypeNode({indexType:l.typeNode(0),objectType:l.typeNode(gn,[l.typeNode(tt)])}),r=l.identifier({text:"infinite"}),s=l.constVariable({expression:l.arrowFunction({multiLine:!0,parameters:[{name:"id",type:l.typeNode("string")},{isRequired:!1,name:"options",type:l.typeNode(tt)},{isRequired:!1,name:"infinite",type:l.typeNode("boolean")}],returnType:t,statements:[l.constVariable({assertion:t,expression:l.objectExpression({multiLine:!1,obj:[{key:"_id",value:l.identifier({text:"id"})},{key:yn(),value:l.identifier({text:`(options?.client ?? client).getConfig().${yn()}`})}]}),name:"params",typeName:t}),l.ifStatement({expression:r,thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"_infinite"}),right:r})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"body"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"body"}),right:l.propertyAccessExpression({expression:"options",name:"body"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"headers"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"headers"}),right:l.propertyAccessExpression({expression:"options",name:"headers"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"path"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"path"}),right:l.propertyAccessExpression({expression:"options",name:"path"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"query"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"query"}),right:l.propertyAccessExpression({expression:"options",name:"query"})})})],!0)}),l.returnVariable({name:"params"})],types:[{extends:l.typeReferenceNode({typeName:l.identifier({text:Re()})}),name:tt}]}),name:ps});e.add(s);},os=({file:e})=>{let t=[{name:"_id",type:l.keywordTypeNode({keyword:"string"})},{isRequired:!1,name:"_infinite",type:l.keywordTypeNode({keyword:"boolean"})}],r=l.typeAliasDeclaration({name:gn,type:l.typeTupleNode({types:[l.typeIntersectionNode({types:[l.typeReferenceNode({typeName:`Pick<${tt}, '${yn()}' | 'body' | 'headers' | 'path' | 'query'>`}),l.typeInterfaceNode({properties:t})]})]}),typeParameters:[{extends:l.typeReferenceNode({typeName:l.identifier({text:Re()})}),name:tt}]});e.add(r);},dn=({client:e,file:t,operation:r,typesModulePath:s})=>{let{name:n}=qe({client:e,meta:r.parameters.length?{$ref:r.name,name:r.name}:void 0,nameTransformer:ke,onImport:a=>{t.import({asType:!0,module:s,name:a});}});return {typeData:fn(n)}},ss=({client:e,file:t,operation:r,pluginName:s,typesModulePath:n})=>{let o=g(),{name:a}=qe({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:We,onImport:p=>{t.import({asType:!0,module:n,name:p});}}),i={asType:!0,name:a};if(i.name||(i=t.import({asType:!0,module:s,name:"DefaultError"})),o.client.name==="@hey-api/client-axios"){let p=t.import({asType:!0,module:"axios",name:"AxiosError"});i={...p,name:`${p.name}<${i.name}>`};}return {typeError:i}},is=({client:e,file:t,operation:r,typesModulePath:s})=>{let{name:n}=qe({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:ie,onImport:a=>{t.import({asType:!0,module:s,name:a});}});return {typeResponse:n||"void"}},as=({isInfinite:e,operation:t})=>l.arrayLiteralExpression({elements:[l.callExpression({functionName:ps,parameters:[l.stringLiteral({text:t.name}),"options",e?l.ots.boolean(!0):void 0]})],multiLine:!1}),Oe=({client:e,files:t,outputParts:r,plugin:s})=>{if(s.name!=="@tanstack/react-query"&&s.name!=="@tanstack/solid-query"&&s.name!=="@tanstack/svelte-query"&&s.name!=="@tanstack/vue-query")return;tp({files:t});let n=g(),o=t[s.name];o.import({asType:!0,module:Te(),name:Re()});let a=new Array(r.length).fill("").join("../")||"./",i=a+t.types.getName(!1),p=s.name==="@tanstack/svelte-query"||s.name==="@tanstack/solid-query"?"MutationOptions":"UseMutationOptions",c,m=!1,u=!1,d=!1,h=!1,O=new Map;for(let T of e.services)for(let x of T.operations){let C=ge(x);if(O.has(C))continue;O.set(C,!0);let le=[n.services.asClass&&Le(T.name),he(x,!n.services.asClass)].filter(Boolean).join("."),ue=!1;if(s.queryOptions&&["GET","POST"].includes(x.method)){h||(h=!0,m||(os({file:o}),rs({file:o}),m=!0),o.import({module:s.name,name:ns})),ue=!0;let{typeData:B}=dn({client:e,file:o,operation:x,typesModulePath:i}),be=se(x.parameters),M=l.constVariable({exportConst:!0,expression:l.arrowFunction({parameters:[{isRequired:be,name:"options",type:B}],statements:as({operation:x})}),name:Dt(x)});o.add(M);let z=l.arrowFunction({parameters:[{isRequired:be,name:"options",type:B}],statements:[l.returnFunctionCall({args:[l.objectExpression({obj:[{key:"queryFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:"queryKey"}]}],statements:[l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{spread:"queryKey[0]"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({name:"data"})]})},{key:"queryKey",value:l.callExpression({functionName:Dt(x),parameters:["options"]})}]})],name:ns})]}),Pe=l.constVariable({comment:[],exportConst:!0,expression:z,name:ep(x)});o.add(Pe);}if(s.infiniteQueryOptions&&["GET","POST"].includes(x.method)){let B,be=x.parameters.find(M=>{if(Qe.lastIndex=0,Qe.test(M.name))return B=M,!0;if(M.in==="body"){if(M.export==="reference"){let z=M.$refs[0];return e.models.find(Ce=>Ce.meta?.$ref===z)?.properties.find(Ce=>{if(Qe.lastIndex=0,Qe.test(Ce.name))return B=Ce,!0})}return M.properties.find(z=>{if(Qe.lastIndex=0,Qe.test(z.name))return B=z,!0})}});if(be&&B){u||(u=!0,m||(os({file:o}),rs({file:o}),m=!0),o.import({module:s.name,name:es}),c=o.import({asType:!0,module:s.name,name:"InfiniteData"})),ue=!0;let{typeData:M}=dn({client:e,file:o,operation:x,typesModulePath:i}),{typeError:z}=ss({client:e,file:o,operation:x,pluginName:s.name,typesModulePath:i}),{typeResponse:Pe}=is({client:e,file:o,operation:x,typesModulePath:i}),Ce=se(x.parameters),Lt=`${gn}<${M}>`,bn=`Pick<${Lt}[0], 'body' | 'headers' | 'path' | 'query'>`,ci=`${B.base} | ${bn}`,mi=l.constVariable({exportConst:!0,expression:l.arrowFunction({parameters:[{isRequired:Ce,name:"options",type:M}],returnType:Lt,statements:as({isInfinite:!0,operation:x})}),name:Dt(x,!0)});o.add(mi);let li=l.arrowFunction({parameters:[{isRequired:Ce,name:"options",type:M}],statements:[l.returnFunctionCall({args:[l.objectExpression({comments:[{jsdoc:!1,lines:["@ts-ignore"]}],obj:[{key:"queryFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:"pageParam"},{name:"queryKey"}]}],statements:[l.constVariable({comment:[{jsdoc:!1,lines:["@ts-ignore"]}],expression:l.conditionalExpression({condition:l.binaryExpression({left:l.typeOfExpression({text:"pageParam"}),operator:"===",right:l.stringLiteral({text:"object"})}),whenFalse:l.objectExpression({multiLine:!0,obj:[{key:np(be),value:l.objectExpression({multiLine:!0,obj:[{key:B.name,value:l.identifier({text:"pageParam"})}]})}]}),whenTrue:l.identifier({text:"pageParam"})}),name:"page",typeName:bn}),l.constVariable({expression:l.objectExpression({obj:[]}),name:"params",typeName:`Partial<${M}>`}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"body"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"body"}),right:l.objectExpression({multiLine:!0,obj:[{assertion:"any",spread:"queryKey[0].body"},{assertion:"any",spread:"page.body"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"headers"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"headers"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].headers"},{spread:"page.headers"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"path"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"path"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].path"},{spread:"page.path"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"query"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"query"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].query"},{spread:"page.query"}]})})})],!0)}),l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{spread:"queryKey[0]"},{spread:"params"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({name:"data"})]})},{key:"queryKey",value:l.callExpression({functionName:Dt(x,!0),parameters:["options"]})}]})],name:es,types:[Pe,z.name,`${typeof c=="string"?c:c.name}<${Pe}>`,Lt,ci]})]}),ui=l.constVariable({comment:[],exportConst:!0,expression:li,name:Ya(x)});o.add(ui);}}if(s.mutationOptions&&["DELETE","PATCH","POST","PUT"].includes(x.method)){d||(d=!0,o.import({asType:!0,module:s.name,name:p})),ue=!0;let{typeData:B}=dn({client:e,file:o,operation:x,typesModulePath:i}),{typeError:be}=ss({client:e,file:o,operation:x,pluginName:s.name,typesModulePath:i}),{typeResponse:M}=is({client:e,file:o,operation:x,typesModulePath:i}),z=l.arrowFunction({statements:[l.constVariable({expression:l.objectExpression({obj:[{key:"mutationFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{name:"options"}],statements:[l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({name:"data"})]})}]}),name:ts,typeName:`${p}<${M}, ${be.name}, ${B}>`}),l.returnVariable({name:ts})]}),Pe=l.constVariable({comment:[],exportConst:!0,expression:z,name:Za(x)});o.add(Pe);}let nt=a+t.services.getName(!1);(h||u)&&o.import({module:nt,name:"client"}),ue&&o.import({module:nt,name:le.split(".")[0]});}};var Mt={handler:Oe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/react-query",output:"@tanstack/react-query",queryOptions:!0};var jt={handler:Oe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/solid-query",output:"@tanstack/solid-query",queryOptions:!0};var Ht={handler:Oe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/svelte-query",output:"@tanstack/svelte-query",queryOptions:!0};var Ft={handler:Oe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/vue-query",output:"@tanstack/vue-query",queryOptions:!0};var hn={"@hey-api/schemas":wt,"@hey-api/services":$t,"@hey-api/types":It,"@tanstack/react-query":Mt,"@tanstack/solid-query":jt,"@tanstack/svelte-query":Ht,"@tanstack/vue-query":Ft};var cs=["@hey-api/client-axios","@hey-api/client-fetch","legacy/angular","legacy/axios","legacy/fetch","legacy/node","legacy/xhr"];var ms=async e=>{let t=existsSync(e)?V.resolve(e):e;return await sp.bundle(t,t,{})};var ls={1:function(e,t,r,s,n){return `import { NgModule} from '@angular/core';
20
+ `));});};var $t={handler:()=>{},name:"@hey-api/schemas",output:"schemas"};var It={handler:()=>{},name:"@hey-api/services",output:"services"};var Dt={handler:()=>{},name:"@hey-api/types",output:"types"};var Za=e=>`${ge(e,!1)}InfiniteOptions`,ep=e=>`${ge(e,!1)}Mutation`,tp=e=>`${ge(e,!1)}Options`,Mt=(e,t)=>`${ge(e,!1)}${t?"Infinite":""}QueryKey`,np=({files:e})=>{if(!e.services)throw new Error("\u{1F6AB} services need to be exported to use TanStack Query plugin - enable service generation")},rp=e=>{switch(e.in){case"formData":return "body";case"header":return "headers";default:return e.in}},Ge=/^(cursor|offset|page|start)/,op="createInfiniteParams",cs="createQueryKey",ts="infiniteQueryOptions",ns="mutationOptions",hn="QueryKey",rs="queryOptions",rt="TOptions",gn=()=>g().client.name==="@hey-api/client-axios"?"baseURL":"baseUrl",sp=({file:e})=>{let t=l.constVariable({expression:l.arrowFunction({multiLine:!0,parameters:[{name:"queryKey",type:l.typeNode("QueryKey<Options>")},{name:"page",type:l.typeNode("K")}],statements:[l.constVariable({expression:l.identifier({text:"queryKey[0]"}),name:"params"}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"body"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"body"}),right:l.objectExpression({multiLine:!0,obj:[{assertion:"any",spread:"queryKey[0].body"},{assertion:"any",spread:"page.body"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"headers"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"headers"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].headers"},{spread:"page.headers"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"path"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"path"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].path"},{spread:"page.path"}]})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"page"}),name:l.identifier({text:"query"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"query"}),right:l.objectExpression({multiLine:!0,obj:[{spread:"queryKey[0].query"},{spread:"page.query"}]})})})],!0)}),l.returnVariable({expression:y.factory.createAsExpression(y.factory.createAsExpression(l.identifier({text:"params"}),y.factory.createKeywordTypeNode(y.SyntaxKind.UnknownKeyword)),y.factory.createTypeQueryNode(l.identifier({text:"page"})))})],types:[{extends:l.typeReferenceNode({typeName:l.identifier({text:"Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>"})}),name:"K"}]}),name:op});e.add(t);},os=({file:e})=>{let t=l.indexedAccessTypeNode({indexType:l.typeNode(0),objectType:l.typeNode(hn,[l.typeNode(rt)])}),r=l.identifier({text:"infinite"}),s=l.constVariable({expression:l.arrowFunction({multiLine:!0,parameters:[{name:"id",type:l.typeNode("string")},{isRequired:!1,name:"options",type:l.typeNode(rt)},{isRequired:!1,name:"infinite",type:l.typeNode("boolean")}],returnType:t,statements:[l.constVariable({assertion:t,expression:l.objectExpression({multiLine:!1,obj:[{key:"_id",value:l.identifier({text:"id"})},{key:gn(),value:l.identifier({text:`(options?.client ?? client).getConfig().${gn()}`})}]}),name:"params",typeName:t}),l.ifStatement({expression:r,thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"_infinite"}),right:r})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"body"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"body"}),right:l.propertyAccessExpression({expression:"options",name:"body"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"headers"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"headers"}),right:l.propertyAccessExpression({expression:"options",name:"headers"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"path"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"path"}),right:l.propertyAccessExpression({expression:"options",name:"path"})})})],!0)}),l.ifStatement({expression:l.propertyAccessExpression({expression:l.identifier({text:"options"}),isOptional:!0,name:l.identifier({text:"query"})}),thenStatement:y.factory.createBlock([l.expressionToStatement({expression:l.binaryExpression({left:l.propertyAccessExpression({expression:"params",name:"query"}),right:l.propertyAccessExpression({expression:"options",name:"query"})})})],!0)}),l.returnVariable({expression:"params"})],types:[{extends:l.typeReferenceNode({typeName:l.identifier({text:Te()})}),name:rt}]}),name:cs});e.add(s);},ss=({file:e})=>{let t=[{name:"_id",type:l.keywordTypeNode({keyword:"string"})},{isRequired:!1,name:"_infinite",type:l.keywordTypeNode({keyword:"boolean"})}],r=l.typeAliasDeclaration({name:hn,type:l.typeTupleNode({types:[l.typeIntersectionNode({types:[l.typeReferenceNode({typeName:`Pick<${rt}, '${gn()}' | 'body' | 'headers' | 'path' | 'query'>`}),l.typeInterfaceNode({properties:t})]})]}),typeParameters:[{extends:l.typeReferenceNode({typeName:l.identifier({text:Te()})}),name:rt}]});e.add(r);},yn=({client:e,file:t,operation:r,typesModulePath:s})=>{let{name:n}=Se({client:e,meta:r.parameters.length?{$ref:r.name,name:r.name}:void 0,nameTransformer:qe,onImport:a=>{t.import({asType:!0,module:s,name:a});}});return {typeData:dn(n)}},is=({client:e,file:t,operation:r,pluginName:s,typesModulePath:n})=>{let o=g(),{name:a}=Se({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:Qe,onImport:p=>{t.import({asType:!0,module:n,name:p});}}),i={asType:!0,name:a};if(i.name||(i=t.import({asType:!0,module:s,name:"DefaultError"})),o.client.name==="@hey-api/client-axios"){let p=t.import({asType:!0,module:"axios",name:"AxiosError"});i={...p,name:`${p.name}<${i.name}>`};}return {typeError:i}},as=({client:e,file:t,operation:r,typesModulePath:s})=>{let{name:n}=Se({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:ae,onImport:a=>{t.import({asType:!0,module:s,name:a});}});return {typeResponse:n||"void"}},ps=({isInfinite:e,operation:t})=>l.arrayLiteralExpression({elements:[l.callExpression({functionName:cs,parameters:[l.stringLiteral({text:t.name}),"options",e?l.ots.boolean(!0):void 0]})],multiLine:!1}),xe=({client:e,files:t,outputParts:r,plugin:s})=>{if(s.name!=="@tanstack/react-query"&&s.name!=="@tanstack/solid-query"&&s.name!=="@tanstack/svelte-query"&&s.name!=="@tanstack/vue-query")return;np({files:t});let n=g(),o=t[s.name];o.import({asType:!0,module:Ce(),name:Te()});let a=new Array(r.length).fill("").join("../")||"./",i=a+t.types.getName(!1),p=s.name==="@tanstack/svelte-query"||s.name==="@tanstack/solid-query"?"MutationOptions":"UseMutationOptions",c,m=!1,u=!1,d=!1,h=!1,O=!1,C=new Map;for(let R of e.services)for(let x of R.operations){let ke=ye(x);if(C.has(ke))continue;C.set(ke,!0);let le=[n.services.asClass&&_e(R.name),ge(x,!n.services.asClass)].filter(Boolean).join("."),Ne=!1;if(s.queryOptions&&["GET","POST"].includes(x.method)){O||(O=!0,u||(ss({file:o}),os({file:o}),u=!0),o.import({module:s.name,name:rs})),Ne=!0;let{typeData:G}=yn({client:e,file:o,operation:x,typesModulePath:i}),Oe=ie(x.parameters),F=l.constVariable({exportConst:!0,expression:l.arrowFunction({parameters:[{isRequired:Oe,name:"options",type:G}],statements:ps({operation:x})}),name:Mt(x)});o.add(F);let J=l.arrowFunction({parameters:[{isRequired:Oe,name:"options",type:G}],statements:[l.returnFunctionCall({args:[l.objectExpression({obj:[{key:"queryFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:"queryKey"}]}],statements:[l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{spread:"queryKey[0]"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({expression:"data"})]})},{key:"queryKey",value:l.callExpression({functionName:Mt(x),parameters:["options"]})}]})],name:rs})]}),be=l.constVariable({comment:[],exportConst:!0,expression:J,name:tp(x)});o.add(be);}if(s.infiniteQueryOptions&&["GET","POST"].includes(x.method)){let G,Oe=x.parameters.find(F=>{if(Ge.lastIndex=0,Ge.test(F.name))return G=F,!0;if(F.in==="body"){if(F.export==="reference"){let J=F.$refs[0];return e.models.find(Pe=>Pe.meta?.$ref===J)?.properties.find(Pe=>{if(Ge.lastIndex=0,Ge.test(Pe.name))return G=Pe,!0})}return F.properties.find(J=>{if(Ge.lastIndex=0,Ge.test(J.name))return G=J,!0})}});if(Oe&&G){d||(d=!0,u||(ss({file:o}),os({file:o}),u=!0),m||(sp({file:o}),m=!0),o.import({module:s.name,name:ts}),c=o.import({asType:!0,module:s.name,name:"InfiniteData"})),Ne=!0;let{typeData:F}=yn({client:e,file:o,operation:x,typesModulePath:i}),{typeError:J}=is({client:e,file:o,operation:x,pluginName:s.name,typesModulePath:i}),{typeResponse:be}=as({client:e,file:o,operation:x,typesModulePath:i}),Pe=ie(x.parameters),_t=`${hn}<${F}>`,Pn=`Pick<${_t}[0], 'body' | 'headers' | 'path' | 'query'>`,mi=`${G.base} | ${Pn}`,li=l.constVariable({exportConst:!0,expression:l.arrowFunction({parameters:[{isRequired:Pe,name:"options",type:F}],returnType:_t,statements:ps({isInfinite:!0,operation:x})}),name:Mt(x,!0)});o.add(li);let ui=l.arrowFunction({parameters:[{isRequired:Pe,name:"options",type:F}],statements:[l.returnFunctionCall({args:[l.objectExpression({comments:[{jsdoc:!1,lines:["@ts-ignore"]}],obj:[{key:"queryFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:"pageParam"},{name:"queryKey"}]}],statements:[l.constVariable({comment:[{jsdoc:!1,lines:["@ts-ignore"]}],expression:l.conditionalExpression({condition:l.binaryExpression({left:l.typeOfExpression({text:"pageParam"}),operator:"===",right:l.stringLiteral({text:"object"})}),whenFalse:l.objectExpression({multiLine:!0,obj:[{key:rp(Oe),value:l.objectExpression({multiLine:!0,obj:[{key:G.name,value:l.identifier({text:"pageParam"})}]})}]}),whenTrue:l.identifier({text:"pageParam"})}),name:"page",typeName:Pn}),l.constVariable({expression:l.callExpression({functionName:"createInfiniteParams",parameters:["queryKey","page"]}),name:"params"}),l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{spread:"params"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({expression:"data"})]})},{key:"queryKey",value:l.callExpression({functionName:Mt(x,!0),parameters:["options"]})}]})],name:ts,types:[be,J.name,`${typeof c=="string"?c:c.name}<${be}>`,_t,mi]})]}),fi=l.constVariable({comment:[],exportConst:!0,expression:ui,name:Za(x)});o.add(fi);}}if(s.mutationOptions&&["DELETE","PATCH","POST","PUT"].includes(x.method)){h||(h=!0,o.import({asType:!0,module:s.name,name:p})),Ne=!0;let{typeData:G}=yn({client:e,file:o,operation:x,typesModulePath:i}),{typeError:Oe}=is({client:e,file:o,operation:x,pluginName:s.name,typesModulePath:i}),{typeResponse:F}=as({client:e,file:o,operation:x,typesModulePath:i}),J=l.arrowFunction({statements:[l.constVariable({expression:l.objectExpression({obj:[{key:"mutationFn",value:l.arrowFunction({async:!0,multiLine:!0,parameters:[{name:"options"}],statements:[l.constVariable({destructure:!0,expression:l.awaitExpression({expression:l.callExpression({functionName:le,parameters:[l.objectExpression({multiLine:!0,obj:[{spread:"options"},{key:"throwOnError",value:!0}]})]})}),name:"data"}),l.returnVariable({expression:"data"})]})}]}),name:ns,typeName:`${p}<${F}, ${Oe.name}, ${G}>`}),l.returnVariable({expression:ns})]}),be=l.constVariable({comment:[],exportConst:!0,expression:J,name:ep(x)});o.add(be);}let Xe=a+t.services.getName(!1);(O||d)&&o.import({module:Xe,name:"client"}),Ne&&o.import({module:Xe,name:le.split(".")[0]});}};var jt={handler:xe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/react-query",output:"@tanstack/react-query",queryOptions:!0};var Ht={handler:xe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/solid-query",output:"@tanstack/solid-query",queryOptions:!0};var Ft={handler:xe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/svelte-query",output:"@tanstack/svelte-query",queryOptions:!0};var Bt={handler:xe,infiniteQueryOptions:!0,mutationOptions:!0,name:"@tanstack/vue-query",output:"@tanstack/vue-query",queryOptions:!0};var xn={"@hey-api/schemas":$t,"@hey-api/services":It,"@hey-api/types":Dt,"@tanstack/react-query":jt,"@tanstack/solid-query":Ht,"@tanstack/svelte-query":Ft,"@tanstack/vue-query":Bt};var ms=["@hey-api/client-axios","@hey-api/client-fetch","legacy/angular","legacy/axios","legacy/fetch","legacy/node","legacy/xhr"];var ls=async e=>{let t=existsSync(e)?V.resolve(e):e;return await pp.bundle(t,t,{})};var us={1:function(e,t,r,s,n){return `import { NgModule} from '@angular/core';
21
21
  import { HttpClientModule } from '@angular/common/http';
22
22
 
23
23
  import { AngularHttpRequest } from './core/AngularHttpRequest';
@@ -88,7 +88,7 @@ export class `+((o=i(a(c(c(n,"root"),"$config"),"name",{start:{line:57,column:16
88
88
  `},14:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return " this."+((o=i(r,"camelCase").call(a,i(t,"name"),{name:"camelCase",hash:{},data:n,loc:{start:{line:83,column:7},end:{line:83,column:27}}}))!=null?o:"")+" = new "+((o=i(r,"transformServiceName").call(a,i(t,"name"),{name:"transformServiceName",hash:{},data:n,loc:{start:{line:83,column:34},end:{line:83,column:65}}}))!=null?o:"")+`(this.request);
89
89
  `},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return ((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(1,n,0),inverse:e.program(3,n,0),data:n,loc:{start:{line:1,column:0},end:{line:15,column:11}}}))!=null?o:"")+`
90
90
  `+((o=i(r,"if").call(a,i(t,"services"),{name:"if",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:17,column:0},end:{line:21,column:7}}}))!=null?o:"")+`
91
- `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(8,n,0),inverse:e.program(11,n,0),data:n,loc:{start:{line:23,column:0},end:{line:87,column:11}}}))!=null?o:"")},useData:!0};var us={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Observable<HttpHeaders> => {
91
+ `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(8,n,0),inverse:e.program(11,n,0),data:n,loc:{start:{line:23,column:0},end:{line:87,column:11}}}))!=null?o:"")},useData:!0};var fs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Observable<HttpHeaders> => {
92
92
  return forkJoin({
93
93
  // @ts-ignore
94
94
  token: resolve(options, config.TOKEN),
@@ -135,7 +135,7 @@ export class `+((o=i(a(c(c(n,"root"),"$config"),"name",{start:{line:57,column:16
135
135
  return new HttpHeaders(headers);
136
136
  }),
137
137
  );
138
- };`},useData:!0};var fs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
138
+ };`},useData:!0};var ds={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
139
139
  if (options.body) {
140
140
  if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {
141
141
  return JSON.stringify(options.body);
@@ -146,12 +146,12 @@ export class `+((o=i(a(c(c(n,"root"),"$config"),"name",{start:{line:57,column:16
146
146
  }
147
147
  }
148
148
  return undefined;
149
- };`},useData:!0};var ds={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = <T>(response: HttpResponse<T>): T | undefined => {
149
+ };`},useData:!0};var ys={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = <T>(response: HttpResponse<T>): T | undefined => {
150
150
  if (response.status !== 204 && response.body !== null) {
151
151
  return response.body;
152
152
  }
153
153
  return undefined;
154
- };`},useData:!0};var ys={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = <T>(response: HttpResponse<T>, responseHeader?: string): string | undefined => {
154
+ };`},useData:!0};var gs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = <T>(response: HttpResponse<T>, responseHeader?: string): string | undefined => {
155
155
  if (responseHeader) {
156
156
  const value = response.headers.get(responseHeader);
157
157
  if (isString(value)) {
@@ -159,7 +159,7 @@ export class `+((o=i(a(c(c(n,"root"),"$config"),"name",{start:{line:57,column:16
159
159
  }
160
160
  }
161
161
  return undefined;
162
- };`},useData:!0};var gs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return `import { HttpClient, HttpHeaders } from '@angular/common/http';
162
+ };`},useData:!0};var hs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return `import { HttpClient, HttpHeaders } from '@angular/common/http';
163
163
  import type { HttpResponse, HttpErrorResponse } from '@angular/common/http';
164
164
  import { forkJoin, of, throwError } from 'rxjs';
165
165
  import { catchError, map, switchMap } from 'rxjs/operators';
@@ -257,7 +257,7 @@ export const request = <T>(config: OpenAPIConfig, http: HttpClient, options: Api
257
257
  return throwError(() => error);
258
258
  }),
259
259
  );
260
- };`},usePartial:!0,useData:!0};var hs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = <T>(
260
+ };`},usePartial:!0,useData:!0};var xs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = <T>(
261
261
  config: OpenAPIConfig,
262
262
  options: ApiRequestOptions<T>,
263
263
  http: HttpClient,
@@ -272,7 +272,7 @@ export const request = <T>(config: OpenAPIConfig, http: HttpClient, options: Api
272
272
  withCredentials: config.WITH_CREDENTIALS,
273
273
  observe: 'response',
274
274
  });
275
- };`},useData:!0};var xs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `import type { ApiRequestOptions } from './ApiRequestOptions';
275
+ };`},useData:!0};var Os={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `import type { ApiRequestOptions } from './ApiRequestOptions';
276
276
  import type { ApiResult } from './ApiResult';
277
277
 
278
278
  export class ApiError extends Error {
@@ -292,7 +292,7 @@ export class ApiError extends Error {
292
292
  this.body = response.body;
293
293
  this.request = request;
294
294
  }
295
- }`},useData:!0};var Os={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export type ApiRequestOptions<T = unknown> = {
295
+ }`},useData:!0};var bs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export type ApiRequestOptions<T = unknown> = {
296
296
  readonly body?: any;
297
297
  readonly cookies?: Record<string, unknown>;
298
298
  readonly errors?: Record<number | string, string>;
@@ -312,13 +312,13 @@ export class ApiError extends Error {
312
312
  readonly responseHeader?: string;
313
313
  readonly responseTransformer?: (data: unknown) => Promise<T>;
314
314
  readonly url: string;
315
- };`},useData:!0};var bs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export type ApiResult<TData = any> = {
315
+ };`},useData:!0};var Ps={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export type ApiResult<TData = any> = {
316
316
  readonly body: TData;
317
317
  readonly ok: boolean;
318
318
  readonly status: number;
319
319
  readonly statusText: string;
320
320
  readonly url: string;
321
- };`},useData:!0};var Ps={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Record<string, string>> => {
321
+ };`},useData:!0};var Cs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Record<string, string>> => {
322
322
  const [token, username, password, additionalHeaders] = await Promise.all([
323
323
  // @ts-ignore
324
324
  resolve(options, config.TOKEN),
@@ -367,17 +367,17 @@ export class ApiError extends Error {
367
367
  }
368
368
 
369
369
  return headers;
370
- };`},useData:!0};var Cs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
370
+ };`},useData:!0};var Ts={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
371
371
  if (options.body) {
372
372
  return options.body;
373
373
  }
374
374
  return undefined;
375
- };`},useData:!0};var Ts={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = (response: AxiosResponse<unknown>): unknown => {
375
+ };`},useData:!0};var Rs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = (response: AxiosResponse<unknown>): unknown => {
376
376
  if (response.status !== 204) {
377
377
  return response.data;
378
378
  }
379
379
  return undefined;
380
- };`},useData:!0};var Rs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (response: AxiosResponse<unknown>, responseHeader?: string): string | undefined => {
380
+ };`},useData:!0};var As={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (response: AxiosResponse<unknown>, responseHeader?: string): string | undefined => {
381
381
  if (responseHeader) {
382
382
  const content = response.headers[responseHeader];
383
383
  if (isString(content)) {
@@ -385,7 +385,7 @@ export class ApiError extends Error {
385
385
  }
386
386
  }
387
387
  return undefined;
388
- };`},useData:!0};var As={1:function(e,t,r,s,n){return "ApiResult<T>"},3:function(e,t,r,s,n){return "T"},5:function(e,t,r,s,n){return "result.body"},7:function(e,t,r,s,n){return "result"},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return `import axios from 'axios';
388
+ };`},useData:!0};var vs={1:function(e,t,r,s,n){return "ApiResult<T>"},3:function(e,t,r,s,n){return "T"},5:function(e,t,r,s,n){return "result.body"},7:function(e,t,r,s,n){return "result"},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return `import axios from 'axios';
389
389
  import type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';
390
390
 
391
391
  import { ApiError } from './ApiError';
@@ -474,7 +474,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>,
474
474
  reject(error);
475
475
  }
476
476
  });
477
- };`},usePartial:!0,useData:!0};var vs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = async <T>(
477
+ };`},usePartial:!0,useData:!0};var Es={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = async <T>(
478
478
  config: OpenAPIConfig,
479
479
  options: ApiRequestOptions<T>,
480
480
  url: string,
@@ -510,7 +510,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>,
510
510
  }
511
511
  throw error;
512
512
  }
513
- };`},useData:!0};var Es={1:function(e,t,r,s,n){return `import type { HttpClient } from '@angular/common/http';
513
+ };`},useData:!0};var Ss={1:function(e,t,r,s,n){return `import type { HttpClient } from '@angular/common/http';
514
514
  import type { Observable } from 'rxjs';
515
515
 
516
516
  import type { ApiRequestOptions } from './ApiRequestOptions';
@@ -529,7 +529,7 @@ import type { OpenAPIConfig } from './OpenAPI';
529
529
  export abstract class BaseHttpRequest {
530
530
 
531
531
  `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.program(7,n,0),data:n,loc:{start:{line:15,column:1},end:{line:22,column:12}}}))!=null?o:"")+`
532
- `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(9,n,0),inverse:e.program(11,n,0),data:n,loc:{start:{line:24,column:1},end:{line:28,column:12}}}))!=null?o:"")+"}"},useData:!0};var Ss={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export class CancelError extends Error {
532
+ `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(9,n,0),inverse:e.program(11,n,0),data:n,loc:{start:{line:24,column:1},end:{line:28,column:12}}}))!=null?o:"")+"}"},useData:!0};var qs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export class CancelError extends Error {
533
533
  constructor(message: string) {
534
534
  super(message);
535
535
  this.name = 'CancelError';
@@ -654,7 +654,7 @@ export class CancelablePromise<T> implements Promise<T> {
654
654
  public get isCancelled(): boolean {
655
655
  return this._isCancelled;
656
656
  }
657
- }`},useData:!0};var qs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {
657
+ }`},useData:!0};var ks={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {
658
658
  const [token, username, password, additionalHeaders] = await Promise.all([
659
659
  // @ts-ignore
660
660
  resolve(options, config.TOKEN),
@@ -699,7 +699,7 @@ export class CancelablePromise<T> implements Promise<T> {
699
699
  }
700
700
 
701
701
  return new Headers(headers);
702
- };`},useData:!0};var ks={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
702
+ };`},useData:!0};var Ns={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
703
703
  if (options.body !== undefined) {
704
704
  if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {
705
705
  return JSON.stringify(options.body);
@@ -710,7 +710,7 @@ export class CancelablePromise<T> implements Promise<T> {
710
710
  }
711
711
  }
712
712
  return undefined;
713
- };`},useData:!0};var Ns={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = async (response: Response): Promise<unknown> => {
713
+ };`},useData:!0};var ws={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = async (response: Response): Promise<unknown> => {
714
714
  if (response.status !== 204) {
715
715
  try {
716
716
  const contentType = response.headers.get('Content-Type');
@@ -731,7 +731,7 @@ export class CancelablePromise<T> implements Promise<T> {
731
731
  }
732
732
  }
733
733
  return undefined;
734
- };`},useData:!0};var ws={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {
734
+ };`},useData:!0};var $s={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {
735
735
  if (responseHeader) {
736
736
  const content = response.headers.get(responseHeader);
737
737
  if (isString(content)) {
@@ -739,7 +739,7 @@ export class CancelablePromise<T> implements Promise<T> {
739
739
  }
740
740
  }
741
741
  return undefined;
742
- };`},useData:!0};var $s={1:function(e,t,r,s,n){return `import fetch, { FormData, Headers } from 'node-fetch';
742
+ };`},useData:!0};var Is={1:function(e,t,r,s,n){return `import fetch, { FormData, Headers } from 'node-fetch';
743
743
  import type { RequestInit, Response } from 'node-fetch';
744
744
 
745
745
  `},3:function(e,t,r,s,n){return "ApiResult<T>"},5:function(e,t,r,s,n){return "T"},7:function(e,t,r,s,n){return "result.body"},9:function(e,t,r,s,n){return "result"},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return ((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/node",{name:"equals",hash:{},fn:e.program(1,n,0),inverse:e.noop,data:n,loc:{start:{line:1,column:0},end:{line:5,column:11}}}))!=null?o:"")+`import { ApiError } from './ApiError';
@@ -825,7 +825,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
825
825
  reject(error);
826
826
  }
827
827
  });
828
- };`},usePartial:!0,useData:!0};var Is={1:function(e,t,r,s,n){return ` if (config.WITH_CREDENTIALS) {
828
+ };`},usePartial:!0,useData:!0};var Ds={1:function(e,t,r,s,n){return ` if (config.WITH_CREDENTIALS) {
829
829
  request.credentials = config.CREDENTIALS;
830
830
  }
831
831
  `},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return `export const sendRequest = async (
@@ -854,14 +854,14 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
854
854
  onCancel(() => controller.abort());
855
855
 
856
856
  return await fetch(url, request);
857
- };`},useData:!0};var Ds={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const base64 = (str: string): string => {
857
+ };`},useData:!0};var Ms={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const base64 = (str: string): string => {
858
858
  try {
859
859
  return btoa(str);
860
860
  } catch (err) {
861
861
  // @ts-ignore
862
862
  return Buffer.from(str).toString('base64');
863
863
  }
864
- };`},useData:!0};var Ms={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {
864
+ };`},useData:!0};var js={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {
865
865
  const errors: Record<number, string> = {
866
866
  400: 'Bad Request',
867
867
  401: 'Unauthorized',
@@ -926,7 +926,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
926
926
  \`Generic Error: status: \${errorStatus}; status text: \${errorStatusText}; body: \${errorBody}\`
927
927
  );
928
928
  }
929
- };`},useData:!0};var js={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getFormData = (options: ApiRequestOptions): FormData | undefined => {
929
+ };`},useData:!0};var Hs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getFormData = (options: ApiRequestOptions): FormData | undefined => {
930
930
  if (options.formData) {
931
931
  const formData = new FormData();
932
932
 
@@ -951,7 +951,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
951
951
  return formData;
952
952
  }
953
953
  return undefined;
954
- };`},useData:!0};var Hs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getQueryString = (params: Record<string, unknown>): string => {
954
+ };`},useData:!0};var Fs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getQueryString = (params: Record<string, unknown>): string => {
955
955
  const qs: string[] = [];
956
956
 
957
957
  const append = (key: string, value: unknown) => {
@@ -977,7 +977,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
977
977
  Object.entries(params).forEach(([key, value]) => encodePair(key, value));
978
978
 
979
979
  return qs.length ? \`?\${qs.join('&')}\` : '';
980
- };`},useData:!0};var Fs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {
980
+ };`},useData:!0};var Bs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {
981
981
  const encoder = config.ENCODE_PATH || encodeURI;
982
982
 
983
983
  const path = options.url
@@ -991,24 +991,24 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
991
991
 
992
992
  const url = config.BASE + path;
993
993
  return options.query ? url + getQueryString(options.query) : url;
994
- };`},useData:!0};var Bs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isBlob = (value: any): value is Blob => {
994
+ };`},useData:!0};var Ls={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isBlob = (value: any): value is Blob => {
995
995
  return value instanceof Blob;
996
- };`},useData:!0};var Ls={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isFormData = (value: unknown): value is FormData => {
996
+ };`},useData:!0};var _s={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isFormData = (value: unknown): value is FormData => {
997
997
  return value instanceof FormData;
998
- };`},useData:!0};var _s={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isString = (value: unknown): value is string => {
998
+ };`},useData:!0};var Us={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isString = (value: unknown): value is string => {
999
999
  return typeof value === 'string';
1000
- };`},useData:!0};var Us={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isStringWithValue = (value: unknown): value is string => {
1000
+ };`},useData:!0};var Vs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isStringWithValue = (value: unknown): value is string => {
1001
1001
  return isString(value) && value !== '';
1002
- };`},useData:!0};var Vs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isSuccess = (status: number): boolean => {
1002
+ };`},useData:!0};var Ks={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const isSuccess = (status: number): boolean => {
1003
1003
  return status >= 200 && status < 300;
1004
- };`},useData:!0};var Ks={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;
1004
+ };`},useData:!0};var Ws={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;
1005
1005
 
1006
1006
  export const resolve = async <T>(options: ApiRequestOptions<T>, resolver?: T | Resolver<T>): Promise<T | undefined> => {
1007
1007
  if (typeof resolver === 'function') {
1008
1008
  return (resolver as Resolver<T>)(options);
1009
1009
  }
1010
1010
  return resolver;
1011
- };`},useData:!0};var Ws={1:function(e,t,r,s,n){return `import { Inject, Injectable } from '@angular/core';
1011
+ };`},useData:!0};var Qs={1:function(e,t,r,s,n){return `import { Inject, Injectable } from '@angular/core';
1012
1012
  import { HttpClient } from '@angular/common/http';
1013
1013
  import type { Observable } from 'rxjs';
1014
1014
 
@@ -1055,7 +1055,7 @@ import { request as __request } from './request';
1055
1055
  `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:19,column:0},end:{line:21,column:11}}}))!=null?o:"")+"export class "+((o=e.lambda(e.strict(t,"httpRequest",{start:{line:22,column:15},end:{line:22,column:26}}),t))!=null?o:"")+` extends BaseHttpRequest {
1056
1056
 
1057
1057
  `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(7,n,0),inverse:e.program(9,n,0),data:n,loc:{start:{line:24,column:1},end:{line:36,column:12}}}))!=null?o:"")+`
1058
- `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(11,n,0),inverse:e.program(13,n,0),data:n,loc:{start:{line:38,column:1},end:{line:58,column:12}}}))!=null?o:"")+"}"},useData:!0};var Qs={1:function(e,t,r,s,n){return `import type { HttpResponse } from '@angular/common/http';
1058
+ `+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(11,n,0),inverse:e.program(13,n,0),data:n,loc:{start:{line:38,column:1},end:{line:58,column:12}}}))!=null?o:"")+"}"},useData:!0};var Gs={1:function(e,t,r,s,n){return `import type { HttpResponse } from '@angular/common/http';
1059
1059
  `},3:function(e,t,r,s,n){return `import type { AxiosRequestConfig, AxiosResponse } from 'axios';
1060
1060
  `},5:function(e,t,r,s,n){return `import type { RequestInit, Response } from 'node-fetch';
1061
1061
  `},7:function(e,t,r,s,n){return ` response: Interceptors<HttpResponse<any>>;
@@ -1118,7 +1118,7 @@ export const OpenAPI: OpenAPIConfig = {
1118
1118
  interceptors: {
1119
1119
  `+((o=c(r,"notEquals").call(a,c(c(c(c(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"notEquals",hash:{},fn:e.program(15,n,0),inverse:e.noop,data:n,loc:{start:{line:79,column:2},end:{line:81,column:16}}}))!=null?o:"")+` response: new Interceptors(),
1120
1120
  },
1121
- };`},useData:!0};var Gs={1:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"angular/request"),t,{name:"angular/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},3:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"axios/request"),t,{name:"axios/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},5:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"fetch/request"),t,{name:"fetch/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},7:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"xhr/request"),t,{name:"xhr/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return ((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(1,n,0),inverse:e.noop,data:n,loc:{start:{line:1,column:0},end:{line:1,column:87}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/axios",{name:"equals",hash:{},fn:e.program(3,n,0),inverse:e.noop,data:n,loc:{start:{line:2,column:0},end:{line:2,column:83}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/fetch",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:3,column:0},end:{line:3,column:83}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/node",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:4,column:0},end:{line:4,column:82}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/xhr",{name:"equals",hash:{},fn:e.program(7,n,0),inverse:e.noop,data:n,loc:{start:{line:5,column:0},end:{line:5,column:79}}}))!=null?o:"")},usePartial:!0,useData:!0};var Xs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {
1121
+ };`},useData:!0};var Xs={1:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"angular/request"),t,{name:"angular/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},3:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"axios/request"),t,{name:"axios/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},5:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"fetch/request"),t,{name:"fetch/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},7:function(e,t,r,s,n){var o,a=e.lookupProperty||function(i,p){if(Object.prototype.hasOwnProperty.call(i,p))return i[p]};return (o=e.invokePartial(a(s,"xhr/request"),t,{name:"xhr/request",data:n,helpers:r,partials:s,decorators:e.decorators}))!=null?o:""},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return ((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/angular",{name:"equals",hash:{},fn:e.program(1,n,0),inverse:e.noop,data:n,loc:{start:{line:1,column:0},end:{line:1,column:87}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/axios",{name:"equals",hash:{},fn:e.program(3,n,0),inverse:e.noop,data:n,loc:{start:{line:2,column:0},end:{line:2,column:83}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/fetch",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:3,column:0},end:{line:3,column:83}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/node",{name:"equals",hash:{},fn:e.program(5,n,0),inverse:e.noop,data:n,loc:{start:{line:4,column:0},end:{line:4,column:82}}}))!=null?o:"")+((o=i(r,"equals").call(a,i(i(i(i(n,"root"),"$config"),"client"),"name"),"legacy/xhr",{name:"equals",hash:{},fn:e.program(7,n,0),inverse:e.noop,data:n,loc:{start:{line:5,column:0},end:{line:5,column:79}}}))!=null?o:"")},usePartial:!0,useData:!0};var zs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getHeaders = async <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>): Promise<Headers> => {
1122
1122
  const [token, username, password, additionalHeaders] = await Promise.all([
1123
1123
  // @ts-ignore
1124
1124
  resolve(options, config.TOKEN),
@@ -1163,7 +1163,7 @@ export const OpenAPI: OpenAPIConfig = {
1163
1163
  }
1164
1164
 
1165
1165
  return new Headers(headers);
1166
- };`},useData:!0};var zs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
1166
+ };`},useData:!0};var Js={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getRequestBody = (options: ApiRequestOptions): unknown => {
1167
1167
  if (options.body !== undefined) {
1168
1168
  if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) {
1169
1169
  return JSON.stringify(options.body);
@@ -1174,7 +1174,7 @@ export const OpenAPI: OpenAPIConfig = {
1174
1174
  }
1175
1175
  }
1176
1176
  return undefined;
1177
- };`},useData:!0};var Js={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = (xhr: XMLHttpRequest): unknown => {
1177
+ };`},useData:!0};var Ys={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseBody = (xhr: XMLHttpRequest): unknown => {
1178
1178
  if (xhr.status !== 204) {
1179
1179
  try {
1180
1180
  const contentType = xhr.getResponseHeader('Content-Type');
@@ -1190,7 +1190,7 @@ export const OpenAPI: OpenAPIConfig = {
1190
1190
  }
1191
1191
  }
1192
1192
  return undefined;
1193
- };`},useData:!0};var Ys={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {
1193
+ };`},useData:!0};var Zs={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {
1194
1194
  if (responseHeader) {
1195
1195
  const content = xhr.getResponseHeader(responseHeader);
1196
1196
  if (isString(content)) {
@@ -1198,7 +1198,7 @@ export const OpenAPI: OpenAPIConfig = {
1198
1198
  }
1199
1199
  }
1200
1200
  return undefined;
1201
- };`},useData:!0};var Zs={1:function(e,t,r,s,n){return "ApiResult<T>"},3:function(e,t,r,s,n){return "T"},5:function(e,t,r,s,n){return "result.body"},7:function(e,t,r,s,n){return "result"},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return `import { ApiError } from './ApiError';
1201
+ };`},useData:!0};var ei={1:function(e,t,r,s,n){return "ApiResult<T>"},3:function(e,t,r,s,n){return "T"},5:function(e,t,r,s,n){return "result.body"},7:function(e,t,r,s,n){return "result"},compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){var o,a=t??(e.nullContext||{}),i=e.lookupProperty||function(p,c){if(Object.prototype.hasOwnProperty.call(p,c))return p[c]};return `import { ApiError } from './ApiError';
1202
1202
  import type { ApiRequestOptions } from './ApiRequestOptions';
1203
1203
  import type { ApiResult } from './ApiResult';
1204
1204
  import { CancelablePromise } from './CancelablePromise';
@@ -1283,7 +1283,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
1283
1283
  reject(error);
1284
1284
  }
1285
1285
  });
1286
- };`},usePartial:!0,useData:!0};var ei={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = async (
1286
+ };`},usePartial:!0,useData:!0};var ti={compiler:[8,">= 4.3.0"],main:function(e,t,r,s,n){return `export const sendRequest = async (
1287
1287
  config: OpenAPIConfig,
1288
1288
  options: ApiRequestOptions,
1289
1289
  url: string,
@@ -1313,8 +1313,8 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions<T>)
1313
1313
 
1314
1314
  onCancel(() => xhr.abort());
1315
1315
  });
1316
- };`},useData:!0};var ip=()=>{f.registerHelper("camelCase",function(e){return H({input:e})}),f.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f.registerHelper("transformServiceName",Le);},ti=()=>{ip();let e={client:f.template(ls),core:{apiError:f.template(xs),apiRequestOptions:f.template(Os),apiResult:f.template(bs),baseHttpRequest:f.template(Es),cancelablePromise:f.template(Ss),httpRequest:f.template(Ws),request:f.template(Gs),settings:f.template(Qs)}};return f.registerPartial("functions/base64",f.template(Ds)),f.registerPartial("functions/catchErrorCodes",f.template(Ms)),f.registerPartial("functions/getFormData",f.template(js)),f.registerPartial("functions/getQueryString",f.template(Hs)),f.registerPartial("functions/getUrl",f.template(Fs)),f.registerPartial("functions/isBlob",f.template(Bs)),f.registerPartial("functions/isFormData",f.template(Ls)),f.registerPartial("functions/isString",f.template(_s)),f.registerPartial("functions/isStringWithValue",f.template(Us)),f.registerPartial("functions/isSuccess",f.template(Vs)),f.registerPartial("functions/resolve",f.template(Ks)),f.registerPartial("fetch/getHeaders",f.template(qs)),f.registerPartial("fetch/getRequestBody",f.template(ks)),f.registerPartial("fetch/getResponseBody",f.template(Ns)),f.registerPartial("fetch/getResponseHeader",f.template(ws)),f.registerPartial("fetch/request",f.template($s)),f.registerPartial("fetch/sendRequest",f.template(Is)),f.registerPartial("xhr/getHeaders",f.template(Xs)),f.registerPartial("xhr/getRequestBody",f.template(zs)),f.registerPartial("xhr/getResponseBody",f.template(Js)),f.registerPartial("xhr/getResponseHeader",f.template(Ys)),f.registerPartial("xhr/request",f.template(Zs)),f.registerPartial("xhr/sendRequest",f.template(ei)),f.registerPartial("axios/getHeaders",f.template(Ps)),f.registerPartial("axios/getRequestBody",f.template(Cs)),f.registerPartial("axios/getResponseBody",f.template(Ts)),f.registerPartial("axios/getResponseHeader",f.template(Rs)),f.registerPartial("axios/request",f.template(As)),f.registerPartial("axios/sendRequest",f.template(vs)),f.registerPartial("angular/getHeaders",f.template(us)),f.registerPartial("angular/getRequestBody",f.template(fs)),f.registerPartial("angular/getResponseBody",f.template(ds)),f.registerPartial("angular/getResponseHeader",f.template(ys)),f.registerPartial("angular/request",f.template(gs)),f.registerPartial("angular/sendRequest",f.template(hs)),e};var ni=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},ri=e=>{let t=g();return A(t)||e.prop!=="api-version"},oi=e=>{let t=g();if(t.services.operationId&&e.id)return H({input:Ue(e.id)});let r=e.path;return A(t)||(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),H({input:`${e.method}-${r}`})},si=e=>{let t=g();return A(t)?e.prop:ln(e.prop)};var ii=e=>`${e}-end`,xn=e=>`${e}-length`,ai=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(ii(e)),getEntriesByName:e=>performance.getEntriesByName(xn(e)),measure:e=>performance.measure(xn(e),ai(e),ii(e)),start:e=>performance.mark(ai(e))},Bt=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-xn("").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 pi(e){return {...e,models:e.models.map(t=>ap(t)),services:pp(e.operations).map(cp),types:{}}}var ap=e=>({...e,$refs:e.$refs.filter((t,r,s)=>F(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)=>F(t,r,s)&&t!==e.name).sort($e)}),pp=e=>{let t=g(),r=new Map;return e.forEach(s=>{(s.tags?.length&&(t.services.asClass||t.name)?s.tags.filter(F):["Default"]).forEach(o=>{let a={...s,service:up(o)},i=r.get(a.service)||lp(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())},cp=e=>{let t={...e};return t.operations=mp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(F).sort($e),t},mp=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})},lp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),up=e=>H({input:Ue(e),pascalCase:!0});var yp={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"}},gp={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},hp=()=>{let e=g();if(e.output.format){let t=yp[e.output.format];console.log(`\u2728 Running ${t.name}`),(0, On.sync)(t.command,t.args(e.output.path));}if(e.output.lint){let t=gp[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, On.sync)(t.command,t.args(e.output.path));}},xp=()=>{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")}},Op=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},bp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Pp=e=>(e.plugins??[]).map(r=>typeof r=="string"?hn[r]:{...hn[r.name],...r}),Cp=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},Tp=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},Rp=(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},Ap=async e=>{let t;if(e.configFile){let n=e.configFile.split(".");t=n.slice(0,n.length-1).join(".");}let{config:r}=await loadConfig({configFile:t,jitiOptions:{esmResolve:!0},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 T=bp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!T.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let x=Op(n);if(x.name&&!cs.includes(x.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=Pp(n),le=Cp(n),ue=Tp(n),nt=Rp(n,ue);T.path=V.resolve(process.cwd(),T.path);let B=lr({base:o,client:x,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:A(x)||!x.name?!1:c,input:u,name:d,output:T,plugins:C,request:h,schemas:le,services:ue,types:nt,useOptions:O});return i&&console.warn("config:",B),B})};async function vp(e){N.start("createClient"),N.start("config");let t=await Ap(e);N.end("config"),N.start("handlebars");let r=ti();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await ms(a.input):a.input;if(N.end("openapi"),a.experimental_parser)N.start("experimental_parser"),Do({spec:i}),N.end("experimental_parser");else {N.start("parser");let p=Io({config:{filterFn:{operation:ni,operationParameter:ri},nameFn:{operation:oi,operationParameter:si}},openApi:i}),c=pi(p);return N.end("parser"),xp(),N.start("generator"),await Zo(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(hp(),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 Bt({totalMark:"createClient"}).report({marks:["config","openapi","handlebars","parser","generator","postprocess"]}),n}var Ep=e=>e,Vh={createClient:vp,defineConfig:Ep};
1316
+ };`},useData:!0};var cp=()=>{f.registerHelper("camelCase",function(e){return j({input:e})}),f.registerHelper("equals",function(e,t,r){return e===t?r.fn(this):r.inverse(this)}),f.registerHelper("ifdef",function(...e){let t=e.pop();return e.every(r=>!r)?t.inverse(this):t.fn(this)}),f.registerHelper("notEquals",function(e,t,r){return e!==t?r.fn(this):r.inverse(this)}),f.registerHelper("transformServiceName",_e);},ni=()=>{cp();let e={client:f.template(us),core:{apiError:f.template(Os),apiRequestOptions:f.template(bs),apiResult:f.template(Ps),baseHttpRequest:f.template(Ss),cancelablePromise:f.template(qs),httpRequest:f.template(Qs),request:f.template(Xs),settings:f.template(Gs)}};return f.registerPartial("functions/base64",f.template(Ms)),f.registerPartial("functions/catchErrorCodes",f.template(js)),f.registerPartial("functions/getFormData",f.template(Hs)),f.registerPartial("functions/getQueryString",f.template(Fs)),f.registerPartial("functions/getUrl",f.template(Bs)),f.registerPartial("functions/isBlob",f.template(Ls)),f.registerPartial("functions/isFormData",f.template(_s)),f.registerPartial("functions/isString",f.template(Us)),f.registerPartial("functions/isStringWithValue",f.template(Vs)),f.registerPartial("functions/isSuccess",f.template(Ks)),f.registerPartial("functions/resolve",f.template(Ws)),f.registerPartial("fetch/getHeaders",f.template(ks)),f.registerPartial("fetch/getRequestBody",f.template(Ns)),f.registerPartial("fetch/getResponseBody",f.template(ws)),f.registerPartial("fetch/getResponseHeader",f.template($s)),f.registerPartial("fetch/request",f.template(Is)),f.registerPartial("fetch/sendRequest",f.template(Ds)),f.registerPartial("xhr/getHeaders",f.template(zs)),f.registerPartial("xhr/getRequestBody",f.template(Js)),f.registerPartial("xhr/getResponseBody",f.template(Ys)),f.registerPartial("xhr/getResponseHeader",f.template(Zs)),f.registerPartial("xhr/request",f.template(ei)),f.registerPartial("xhr/sendRequest",f.template(ti)),f.registerPartial("axios/getHeaders",f.template(Cs)),f.registerPartial("axios/getRequestBody",f.template(Ts)),f.registerPartial("axios/getResponseBody",f.template(Rs)),f.registerPartial("axios/getResponseHeader",f.template(As)),f.registerPartial("axios/request",f.template(vs)),f.registerPartial("axios/sendRequest",f.template(Es)),f.registerPartial("angular/getHeaders",f.template(fs)),f.registerPartial("angular/getRequestBody",f.template(ds)),f.registerPartial("angular/getResponseBody",f.template(ys)),f.registerPartial("angular/getResponseHeader",f.template(gs)),f.registerPartial("angular/request",f.template(hs)),f.registerPartial("angular/sendRequest",f.template(xs)),e};var ri=e=>{let t=g(),r=t.services.filter?new RegExp(t.services.filter):void 0;return !r||r.test(e)},oi=e=>{let t=g();return A(t)||e.prop!=="api-version"},si=e=>{let t=g();if(t.services.operationId&&e.id)return j({input:Ve(e.id)});let r=e.path;return A(t)||(r=r.replace(/[^/]*?{api-version}.*?\//g,"")),r=r.replace(/{(.*?)}/g,"by-$1").replace(/[/:]/g,"-"),j({input:`${e.method}-${r}`})},ii=e=>{let t=g();return A(t)?e.prop:un(e.prop)};var ai=e=>`${e}-end`,On=e=>`${e}-length`,pi=e=>`${e}-start`,N={clear:()=>{performance.clearMarks(),performance.clearMeasures();},end:e=>performance.mark(ai(e)),getEntriesByName:e=>performance.getEntriesByName(On(e)),measure:e=>performance.measure(On(e),pi(e),ai(e)),start:e=>performance.mark(pi(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 ci(e){return {...e,models:e.models.map(t=>mp(t)),services:lp(e.operations).map(up),types:{}}}var mp=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(Ie)}),lp=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:yp(o)},i=r.get(a.service)||dp(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())},up=e=>{let t={...e};return t.operations=fp(t),t.operations.forEach(r=>{t.imports.push(...r.imports);}),t.imports=t.imports.filter(H).sort(Ie),t},fp=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})},dp=e=>({$refs:[],imports:[],name:e.service,operations:[]}),yp=e=>j({input:Ve(e),pascalCase:!0});var xp={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"}},Op={biome:{args:e=>["lint","--apply",e],command:"biome",name:"Biome (Lint)"},eslint:{args:e=>[e,"--fix"],command:"eslint",name:"ESLint"}},bp=()=>{let e=g();if(e.output.format){let t=xp[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=Op[e.output.lint];console.log(`\u2728 Running ${t.name}`),(0, bn.sync)(t.command,t.args(e.output.path));}},Pp=()=>{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")}},Cp=e=>{let t={bundle:!1,name:""};return typeof e.client=="string"?t.name=e.client:e.client&&(t={...t,...e.client}),t},Tp=e=>{let t={format:!1,lint:!1,path:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t},Rp=e=>(e.plugins??[]).map(r=>typeof r=="string"?xn[r]:{...xn[r.name],...r}),Ap=e=>{let t={export:!0,type:"json"};return typeof e.schemas=="boolean"?t.export=e.schemas:t={...t,...e.schemas},t},vp=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},Ep=(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 loadConfig({configFile:t,jitiOptions:{esmResolve:!0},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 C=Tp(n);if(!u)throw new Error("\u{1F6AB} missing input - which OpenAPI specification should we use to generate your client?");if(!C.path)throw new Error("\u{1F6AB} missing output - where should we generate your client?");let R=Cp(n);if(R.name&&!ms.includes(R.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 x=Rp(n),ke=Ap(n),le=vp(n),Ne=Ep(n,le);C.path=V.resolve(process.cwd(),C.path);let Xe=ur({base:o,client:R,configFile:a,debug:i,dryRun:p,experimental_parser:m,exportCore:A(R)||!R.name?!1:c,input:u,name:d,output:C,plugins:x,request:h,schemas:ke,services:le,types:Ne,useOptions:O});return i&&console.warn("config:",Xe),Xe})};async function qp(e){N.start("createClient"),N.start("config");let t=await Sp(e);N.end("config"),N.start("handlebars");let r=ni();N.end("handlebars");let s=a=>async()=>{N.start("openapi");let i=typeof a.input=="string"?await ls(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:ri,operationParameter:oi},nameFn:{operation:si,operationParameter:ii}},openApi:i}),c=ci(p);return N.end("parser"),Pp(),N.start("generator"),await es(i,c,r),N.end("generator"),N.start("postprocess"),a.dryRun||(bp(),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 kp=e=>e,Qh={createClient:qp,defineConfig:kp};
1317
1317
 
1318
- export { vp as createClient, Vh as default, Ep as defineConfig };
1318
+ export { qp as createClient, Qh as default, kp as defineConfig };
1319
1319
  //# sourceMappingURL=index.js.map
1320
1320
  //# sourceMappingURL=index.js.map