@hey-api/openapi-ts
Version:
🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.
31 lines (27 loc) • 375 kB
JavaScript
'use strict';var ke=require('ansi-colors'),jg=require('color-support'),X=require('path'),Re=require('fs'),url=require('url'),b=require('typescript'),os$1=require('os'),jsonSchemaRefParser=require('@hey-api/json-schema-ref-parser'),c12=require('c12'),x=require('handlebars');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ke__default=/*#__PURE__*/_interopDefault(ke);var jg__default=/*#__PURE__*/_interopDefault(jg);var X__default=/*#__PURE__*/_interopDefault(X);var Re__default=/*#__PURE__*/_interopDefault(Re);var b__default=/*#__PURE__*/_interopDefault(b);var x__default=/*#__PURE__*/_interopDefault(x);var Rl=Object.create;var Ko=Object.defineProperty;var Sl=Object.getOwnPropertyDescriptor;var Cl=Object.getOwnPropertyNames;var Tl=Object.getPrototypeOf,Il=Object.prototype.hasOwnProperty;var Le=(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 ge=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Pl=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Cl(t))!Il.call(e,s)&&s!==r&&Ko(e,s,{get:()=>t[s],enumerable:!(n=Sl(t,s))||n.enumerable});return e};var Al=(e,t,r)=>(r=e!=null?Rl(Tl(e)):{},Pl(Ko(r,"default",{value:e,enumerable:true}),e));var Pp=ge((iP,Ip)=>{Ip.exports=Tp;Tp.sync=td;var Sp=Le("fs");function ed(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return true;for(var n=0;n<r.length;n++){var s=r[n].toLowerCase();if(s&&e.substr(-s.length).toLowerCase()===s)return true}return false}function Cp(e,t,r){return !e.isSymbolicLink()&&!e.isFile()?false:ed(t,r)}function Tp(e,t,r){Sp.stat(e,function(n,s){r(n,n?false:Cp(s,e,t));});}function td(e,t){return Cp(Sp.statSync(e),e,t)}});var kp=ge((aP,jp)=>{jp.exports=Ep;Ep.sync=rd;var Ap=Le("fs");function Ep(e,t,r){Ap.stat(e,function(n,s){r(n,n?false:vp(s,t));});}function rd(e,t){return vp(Ap.statSync(e),t)}function vp(e,t){return e.isFile()&&nd(e,t)}function nd(e,t){var r=e.mode,n=e.uid,s=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),c=parseInt("010",8),m=parseInt("001",8),l=i|c,f=r&m||r&c&&s===a||r&i&&n===o||r&l&&o===0;return f}});var qp=ge((cP,Np)=>{Le("fs");var zn;process.platform==="win32"||global.TESTING_WINDOWS?zn=Pp():zn=kp();Np.exports=Ls;Ls.sync=sd;function Ls(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(n,s){Ls(e,t||{},function(o,a){o?s(o):n(a);});})}zn(e,t||{},function(n,s){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,s=false),r(n,s);});}function sd(e,t){try{return zn.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return false;throw r}}});var _p=ge((mP,Bp)=>{var xr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",wp=Le("path"),od=xr?";":":",$p=qp(),Dp=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Mp=(e,t)=>{let r=t.colon||od,n=e.match(/\//)||xr&&e.match(/\\/)?[""]:[...xr?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=xr?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=xr?s.split(r):[""];return xr&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:s}},Fp=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:s,pathExtExe:o}=Mp(e,t),a=[],i=m=>new Promise((l,f)=>{if(m===n.length)return t.all&&a.length?l(a):f(Dp(e));let u=n[m],d=/^".*"$/.test(u)?u.slice(1,-1):u,y=wp.join(d,e),g=!d&&/^\.[\\\/]/.test(e)?e.slice(0,2)+y:y;l(c(g,m,0));}),c=(m,l,f)=>new Promise((u,d)=>{if(f===s.length)return u(i(l+1));let y=s[f];$p(m+y,{pathExt:o},(g,R)=>{if(!g&&R)if(t.all)a.push(m+y);else return u(m+y);return u(c(m,l,f+1))});});return r?i(0).then(m=>r(null,m),r):i(0)},id=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=Mp(e,t),o=[];for(let a=0;a<r.length;a++){let i=r[a],c=/^".*"$/.test(i)?i.slice(1,-1):i,m=wp.join(c,e),l=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+m:m;for(let f=0;f<n.length;f++){let u=l+n[f];try{if($p.sync(u,{pathExt:s}))if(t.all)o.push(u);else return u}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw Dp(e)};Bp.exports=Fp;Fp.sync=id;});var Hp=ge((lP,Hs)=>{var Lp=(e={})=>{let t=e.env||process.env;return (e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Hs.exports=Lp;Hs.exports.default=Lp;});var Up=ge((fP,Wp)=>{var Vp=Le("path"),ad=_p(),pd=Hp();function Kp(e,t){let r=e.options.env||process.env,n=process.cwd(),s=e.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd);}catch{}let a;try{a=ad.sync(e.command,{path:r[pd({env:r})],pathExt:t?Vp.delimiter:void 0});}catch{}finally{o&&process.chdir(n);}return a&&(a=Vp.resolve(s?e.options.cwd:"",a)),a}function cd(e){return Kp(e)||Kp(e,true)}Wp.exports=cd;});var zp=ge((uP,Ks)=>{var Vs=/([()\][%!^"`<>&|;, *?])/g;function md(e){return e=e.replace(Vs,"^$1"),e}function ld(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Vs,"^$1"),t&&(e=e.replace(Vs,"^$1")),e}Ks.exports.command=md;Ks.exports.argument=ld;});var Xp=ge((dP,Qp)=>{Qp.exports=/^#!(.*)/;});var Jp=ge((yP,Gp)=>{var fd=Xp();Gp.exports=(e="")=>{let t=e.match(fd);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s};});var Yp=ge((gP,Zp)=>{var Ws=Le("fs"),ud=Jp();function dd(e){let r=Buffer.alloc(150),n;try{n=Ws.openSync(e,"r"),Ws.readSync(n,r,0,150,0),Ws.closeSync(n);}catch{}return ud(r.toString())}Zp.exports=dd;});var nc=ge((hP,rc)=>{var yd=Le("path"),ec=Up(),tc=zp(),gd=Yp(),hd=process.platform==="win32",xd=/\.(?:com|exe)$/i,bd=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Od(e){e.file=ec(e);let t=e.file&&gd(e.file);return t?(e.args.unshift(e.file),e.command=t,ec(e)):e.file}function Rd(e){if(!hd)return e;let t=Od(e),r=!xd.test(t);if(e.options.forceShell||r){let n=bd.test(t);e.command=yd.normalize(e.command),e.command=tc.command(e.command),e.args=e.args.map(o=>tc.argument(o,n));let s=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${s}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=true;}return e}function Sd(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:Rd(n)}rc.exports=Sd;});var ic=ge((xP,oc)=>{var Us=process.platform==="win32";function zs(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 Cd(e,t){if(!Us)return;let r=e.emit;e.emit=function(n,s){if(n==="exit"){let o=sc(s,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)};}function sc(e,t){return Us&&e===1&&!t.file?zs(t.original,"spawn"):null}function Td(e,t){return Us&&e===1&&!t.file?zs(t.original,"spawnSync"):null}oc.exports={hookChildProcess:Cd,verifyENOENT:sc,verifyENOENTSync:Td,notFoundError:zs};});var cc=ge((bP,br)=>{var ac=Le("child_process"),Qs=nc(),Xs=ic();function pc(e,t,r){let n=Qs(e,t,r),s=ac.spawn(n.command,n.args,n.options);return Xs.hookChildProcess(s,n),s}function Id(e,t,r){let n=Qs(e,t,r),s=ac.spawnSync(n.command,n.args,n.options);return s.error=s.error||Xs.verifyENOENTSync(s.status,n),s}br.exports=pc;br.exports.spawn=pc;br.exports.sync=Id;br.exports._parse=Qs;br.exports._enoent=Xs;});var He="client",he=e=>{let t=A(e);return t.name==="@hey-api/client-axios"||t.name==="@hey-api/client-nuxt"?"baseURL":"baseUrl"},A=e=>{for(let t of e.pluginOrder){let r=e.plugins[t];if(r?._tags?.includes("client"))return r}return {name:""}};var Wo,S=()=>{let e=Wo,t=A(e);return e.client=t,e},Uo=e=>(Wo=e,S()),D=e=>A(e).name.startsWith("legacy/"),W=e=>{if(D(e))return e.name};var Jr=e=>{switch(e){case "legacy/angular":return "AngularHttpRequest";case "legacy/axios":return "AxiosHttpRequest";case "legacy/fetch":return "FetchHttpRequest";case "legacy/node":return "NodeHttpRequest";case "legacy/xhr":return "XHRHttpRequest";default:return ""}};function Xt(e,t){let r=e.toLocaleLowerCase(),n=t.toLocaleLowerCase();return r.localeCompare(n,"en")}var Ir=(e,t)=>Xt(e.name,t.name);function Pr(e){return e.sort(Ir)}var we=e=>{Re__default.default.existsSync(e)||Re__default.default.mkdirSync(e,{recursive:true});},Yr=e=>{Re__default.default.existsSync(e)&&Re__default.default.rmSync(e,{force:true,recursive:true});},Gt=({moduleOutput:e,sourceOutput:t})=>{let r=t.split("/");return `${Array.from({length:r.length}).fill("").join("../")||"./"}${e}`};var zo=async(e,t,r,n)=>{let s=S(),o=A(s),a=n.client({$config:s,...r,httpRequest:Jr(o.name),models:Pr(r.models),services:Pr(r.services)});W(s)&&(we(t),Re__default.default.writeFileSync(X__default.default.resolve(t,`${W(s)}.ts`),a));};var Nl=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))),Qo=X__default.default.dirname(Nl),Go=e=>{let t=e.split(X__default.default.sep);return t.slice(0,t.length-1).join(X__default.default.sep)},te=({config:e,sourceOutput:t})=>{let r=A(e);if("bundle"in r&&r.bundle)return Gt({moduleOutput:"client",sourceOutput:t});if(X__default.default.isAbsolute(r.name)){let n=Go(r.name),s=X__default.default.resolve(e.output.path);return X__default.default.relative(s,n).replace(/\\/g,"/")}return r.name},U={Options:{asType:true,name:"Options"},OptionsLegacyParser:{asType:true,name:"OptionsLegacyParser"}},Xo=e=>{let t=Re__default.default.readFileSync(e,"utf8");t=t.replace(/from\s+['"](\.\.?\/[^'"]*?)['"]/g,(r,n)=>{let s=n.lastIndexOf("/");return (s>=0?n.slice(s+1):n).includes(".")?r:`from '${n}.js'`}),Re__default.default.writeFileSync(e,t,"utf8");},en=({outputPath:e,plugin:t,tsConfig:r})=>{if(t.name.startsWith("@hey-api/client-")){let f=r?.options.moduleResolution===b__default.default.ModuleResolutionKind.NodeNext,u=X__default.default.resolve(e,"core");we(u);let d=X__default.default.resolve(Qo,"clients","core");if(Re__default.default.cpSync(d,u,{recursive:true}),f){let O=Re__default.default.readdirSync(u);for(let j of O)Xo(X__default.default.resolve(u,j));}let y=X__default.default.resolve(e,"client");we(y);let g=t.name.slice(16),R=X__default.default.resolve(Qo,"clients",g);if(Re__default.default.cpSync(R,y,{recursive:true}),f){let O=Re__default.default.readdirSync(y);for(let j of O)Xo(X__default.default.resolve(y,j));}return}let s="";if(X__default.default.isAbsolute(t.name)&&(s=Go(t.name)),s){let f=X__default.default.resolve(e,"client");we(f),Re__default.default.cpSync(s,f,{recursive:true});return}let a=X__default.default.normalize(Le.resolve(t.name)).split(X__default.default.sep),i=a.slice(0,a.indexOf("dist")+1).join(X__default.default.sep),m=[a[a.length-1],"index.d.ts","index.d.cts"],l=X__default.default.resolve(e,"client");we(l);for(let f of m)Re__default.default.copyFileSync(X__default.default.resolve(i,f),X__default.default.resolve(l,f));};var Jo=async(e,t,r)=>{let n=S();if(n.exportCore){let s=A(n),o={httpRequest:Jr(s.name),server:n.base!==void 0?n.base:t.server,version:t.version};if(Re__default.default.rmSync(X__default.default.resolve(e),{force:true,recursive:true}),Re__default.default.mkdirSync(X__default.default.resolve(e),{recursive:true}),await Re__default.default.writeFileSync(X__default.default.resolve(e,"OpenAPI.ts"),r.core.settings({$config:n,...o})),await Re__default.default.writeFileSync(X__default.default.resolve(e,"ApiError.ts"),r.core.apiError({$config:n,...o})),await Re__default.default.writeFileSync(X__default.default.resolve(e,"ApiRequestOptions.ts"),r.core.apiRequestOptions({$config:n,...o})),await Re__default.default.writeFileSync(X__default.default.resolve(e,"ApiResult.ts"),r.core.apiResult({$config:n,...o})),s.name!=="legacy/angular"&&await Re__default.default.writeFileSync(X__default.default.resolve(e,"CancelablePromise.ts"),r.core.cancelablePromise({$config:n,...o})),await Re__default.default.writeFileSync(X__default.default.resolve(e,"request.ts"),r.core.request({$config:n,...o})),W(n)&&(await Re__default.default.writeFileSync(X__default.default.resolve(e,"BaseHttpRequest.ts"),r.core.baseHttpRequest({$config:n,...o})),await Re__default.default.writeFileSync(X__default.default.resolve(e,`${o.httpRequest}.ts`),r.core.httpRequest({$config:n,...o}))),n.request){let a=X__default.default.resolve(process.cwd(),n.request);if(!await Re__default.default.existsSync(a))throw new Error(`Custom request file "${a}" does not exists`);await Re__default.default.copyFileSync(a,X__default.default.resolve(e,"request.ts"));}}};var Jt=/^[^$_\p{ID_Start}]+/u,Ce=/^-?\d+(\.\d+)?$/,Zo=/^(document|history|location|navigator|window)$/g,Yo=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,fe=/^(arguments|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|from|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,ei=/^(global|process|Buffer)$/g,ti=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,$e=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var Te=e=>(e||e==="")&&($e.lastIndex=0,!$e.test(e))?`'${e}'`:e,Zt=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,H=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>os$1.EOL+r.trim());var wl=b__default.default.createPrinter({newLine:b__default.default.NewLineKind.LineFeed,removeComments:false}),ri=e=>b__default.default.createSourceFile("",e,b__default.default.ScriptTarget.ESNext,false,b__default.default.ScriptKind.TS),$l=ri(""),Dl=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function Ve({node:e,unescape:t=false}){let r=wl.printNode(b__default.default.EmitHint.Unspecified,e,$l);if(!t)return r;try{return Dl(r)}catch{return S().logs.level==="debug"&&console.warn("Could not decode value:",r),r}}function ni(e){return ri(e).statements[0]}var I=({text:e})=>b__default.default.factory.createIdentifier(e),si=()=>b__default.default.factory.createThis(),J=({keyword:e})=>{let t=us({keyword:e});return b__default.default.factory.createModifier(t)},oi=({initializer:e,modifier:t,name:r,type:n})=>b__default.default.factory.createPropertyDeclaration(t?[J({keyword:t})]:void 0,r,void 0,n,e),xe={boolean:e=>e?b__default.default.factory.createTrue():b__default.default.factory.createFalse(),export:({alias:e,asType:t=false,name:r})=>{let n=I({text:r});if(e){let s=I({text:e});return b__default.default.factory.createExportSpecifier(t,n,s)}return b__default.default.factory.createExportSpecifier(t,void 0,n)},import:({alias:e,asType:t=false,name:r})=>{let n=I({text:r});if(e){let s=I({text:e});return b__default.default.factory.createImportSpecifier(t,n,s)}return b__default.default.factory.createImportSpecifier(t,void 0,n)},number:e=>e<0?b__default.default.factory.createPrefixUnaryExpression(b__default.default.SyntaxKind.MinusToken,b__default.default.factory.createNumericLiteral(Math.abs(e))):b__default.default.factory.createNumericLiteral(e),string:(e,t=false)=>{let r=e;t&&(r=Zt(r));let n=r.includes("'")&&r.includes('"'),s=r.includes(`
`),o=r.startsWith("`"),a=r.startsWith("\\`")&&r.endsWith("\\`");return (s||n||o)&&!a&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?I({text:r}):Dt({text:r})}},$t=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",Ct=e=>e!==void 0,Ml=({commentObject:e,node:t})=>{let r=e.lines.filter(a=>!!a||a==="");if(!r.length)return;if(!e.jsdoc){for(let a of r)b__default.default.addSyntheticLeadingComment(t,b__default.default.SyntaxKind.SingleLineCommentTrivia,` ${a}`,true);return}let n=r.map((a,i)=>{let c=a;return i!==r.length&&(c=`${c}
`),b__default.default.factory.createJSDocText(c)}),s=b__default.default.factory.createJSDocComment(b__default.default.factory.createNodeArray(n),void 0),o=Ve({node:s,unescape:true}).replace("/*","").replace("* */","");b__default.default.addSyntheticLeadingComment(t,b__default.default.SyntaxKind.MultiLineCommentTrivia,o,true);},oe=({comments:e=[],node:t})=>{let r=!!e.find(s=>typeof s=="object"&&s),n=e;r||(n=[{jsdoc:true,lines:e}]);for(let s of n)Ml({commentObject:s,node:t});};var ie=(e,t)=>b__default.default.isTypeNode(e)?e:typeof e=="number"?b__default.default.factory.createLiteralTypeNode(xe.number(e)):Ie({typeArguments:t?.map(r=>ie(r)),typeName:e}),ds=({expression:e,name:t})=>b__default.default.factory.createPropertyAccessChain(e,b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionDotToken),t),We=({expression:e,isOptional:t,name:r})=>{let n=typeof e=="string"?I({text:e}):e;if(t&&typeof r!="number")return ds({expression:n,name:r});if(typeof r=="string"){if($e.lastIndex=0,!$e.test(r)){!r.startsWith("'")&&!r.endsWith("'")&&(r=`'${r}'`);let o=I({text:r});return b__default.default.factory.createElementAccessExpression(n,o)}let s=I({text:r});return b__default.default.factory.createPropertyAccessExpression(n,s)}if(typeof r=="number"){let s=b__default.default.factory.createNumericLiteral(r);return b__default.default.factory.createElementAccessExpression(n,s)}return b__default.default.factory.createPropertyAccessExpression(n,r)},ys=()=>b__default.default.factory.createNull(),Ke=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:n,value:s})=>{if(s===null)return ys();if(Array.isArray(s))return gs({elements:s});if(typeof s=="object")return sn({identifiers:e,obj:s,shorthand:r});if(typeof s=="number")return xe.number(s);if(typeof s=="boolean")return xe.boolean(s);if(typeof s=="string"){if(t){let o=s.split(".");return We({expression:o[0],name:o[1]})}return xe.string(s,n)}},Ar=e=>e.map(t=>{if("destructure"in t)return Yt({name:b__default.default.factory.createObjectBindingPattern(t.destructure.map(n=>"destructure"in n?void 0:b__default.default.factory.createBindingElement(void 0,void 0,I({text:n.name}),void 0)).filter(Boolean)),type:t.type!==void 0?ie(t.type):void 0});let r=t.accessLevel?[J({keyword:t.accessLevel})]:[];return t.isReadOnly&&r.push(J({keyword:"readonly"})),Yt({initializer:t.default!==void 0?Ke({value:t.default}):void 0,modifiers:r,name:I({text:t.name}),required:t.isRequired!==false,type:t.type!==void 0?ie(t.type):void 0})}),us=({keyword:e})=>{switch(e){case "any":return b__default.default.SyntaxKind.AnyKeyword;case "async":return b__default.default.SyntaxKind.AsyncKeyword;case "boolean":return b__default.default.SyntaxKind.BooleanKeyword;case "export":return b__default.default.SyntaxKind.ExportKeyword;case "never":return b__default.default.SyntaxKind.NeverKeyword;case "number":return b__default.default.SyntaxKind.NumberKeyword;case "private":return b__default.default.SyntaxKind.PrivateKeyword;case "protected":return b__default.default.SyntaxKind.ProtectedKeyword;case "public":return b__default.default.SyntaxKind.PublicKeyword;case "readonly":return b__default.default.SyntaxKind.ReadonlyKeyword;case "static":return b__default.default.SyntaxKind.StaticKeyword;case "string":return b__default.default.SyntaxKind.StringKeyword;case "undefined":return b__default.default.SyntaxKind.UndefinedKeyword;case "unknown":return b__default.default.SyntaxKind.UnknownKeyword;case "void":return b__default.default.SyntaxKind.VoidKeyword;default:throw new Error(`unsupported syntax kind keyword "${e}"`)}},Mt=({keyword:e})=>{let t=us({keyword:e});return b__default.default.factory.createKeywordTypeNode(t)},Er=e=>e.map(t=>b__default.default.isTypeParameterDeclaration(t)?t:vr({constraint:t.extends?typeof t.extends=="string"?Mt({keyword:"boolean"}):t.extends:void 0,defaultType:t.default!==void 0?$t(t.default)?t.default:b__default.default.factory.createLiteralTypeNode(t.default?b__default.default.factory.createTrue():b__default.default.factory.createFalse()):void 0,name:t.name})),ii=({operator:e,type:t})=>{let r=e==="keyof"?b__default.default.SyntaxKind.KeyOfKeyword:e==="readonly"?b__default.default.SyntaxKind.ReadonlyKeyword:b__default.default.SyntaxKind.UniqueKeyword;return b__default.default.factory.createTypeOperatorNode(r,t)},vr=({constraint:e,defaultType:t,modifiers:r,name:n})=>b__default.default.factory.createTypeParameterDeclaration(r,n,e,t),rn=({members:e,nameType:t,questionToken:r,readonlyToken:n,type:s,typeParameter:o})=>b__default.default.factory.createMappedTypeNode(n,o,t,r,s,e),ai=({literal:e})=>b__default.default.factory.createLiteralTypeNode(e),nn=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:a=[]})=>{let i=b__default.default.factory.createArrowFunction(e?[J({keyword:"async"})]:void 0,a?Er(a):void 0,Ar(n),s?ie(s):void 0,void 0,Array.isArray(o)?Pe({multiLine:r,statements:o}):o);return oe({comments:t,node:i}),i},pi=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:a=[]})=>{let i=b__default.default.factory.createFunctionExpression(e?[J({keyword:"async"})]:void 0,void 0,void 0,a?Er(a):void 0,Ar(n),s?ie(s):void 0,Pe({multiLine:r,statements:o}));return oe({comments:t,node:i}),i},gs=({elements:e,multiLine:t=false})=>b__default.default.factory.createArrayLiteralExpression(e.map(n=>$t(n)?n:Ke({value:n})).filter(Ct),t||!Array.isArray(e[0])&&typeof e[0]=="object"),ci=({expression:e})=>b__default.default.factory.createAwaitExpression(e),mi=({parameters:e=[],returnType:t,typeParameters:r})=>b__default.default.factory.createFunctionTypeNode(r,e,t),sn=({comments:e,identifiers:t=[],multiLine:r=true,obj:n,shorthand:s,unescape:o=false})=>{let a=Array.isArray(n)?n.map(c=>{let m=false;if("key"in c){let{key:f}=c;m=f===c.value,(f.match(/^[0-9]/)&&f.match(/\D+/g)||f.match(/\W/g)||f==="")&&!f.startsWith("'")&&!f.endsWith("'")&&(c.key=`'${f}'`);}let l;if("spread"in c){let f=$t(c.spread)?c.spread:I({text:c.spread});l=b__default.default.factory.createSpreadAssignment(c.assertion?kr({expression:f,type:typeof c.assertion=="string"?Mt({keyword:c.assertion}):c.assertion}):f);}else if(c.shorthand||s&&m)l=b__default.default.factory.createShorthandPropertyAssignment(c.value);else {let f=$t(c.value)?c.value:Array.isArray(c.value)&&(!c.value.length||typeof c.value[0]=="object")?sn({multiLine:r,obj:c.value,shorthand:s,unescape:o}):Ke({identifiers:t.includes(c.key)?Object.keys(c.value):[],isValueAccess:c.isValueAccess,shorthand:s,unescape:o,value:c.value});if(!f)return;t.includes(c.key)&&!b__default.default.isObjectLiteralExpression(f)&&(f=I({text:c.value})),l=tn({initializer:f,name:c.key});}return oe({comments:c.comments,node:l}),l}).filter(Ct):Object.entries(n).map(([c,m])=>{let l=Ke({identifiers:t.includes(c)?Object.keys(m):[],shorthand:s,unescape:o,value:m});if(!l)return;t.includes(c)&&!b__default.default.isObjectLiteralExpression(l)&&(l=I({text:m}));let f=c===m;return c.match(/^[0-9]/)&&c.match(/\D+/g)&&!c.startsWith("'")&&!c.endsWith("'")&&(c=`'${c}'`),c.match(/\W/g)&&!c.startsWith("'")&&!c.endsWith("'")&&(c=`'${c}'`),s&&f?b__default.default.factory.createShorthandPropertyAssignment(m):tn({initializer:l,name:c})}).filter(Ct),i=b__default.default.factory.createObjectLiteralExpression(a,r);return oe({comments:e,node:i}),i},li=({comments:e={},leadingComment:t,name:r,obj:n})=>{let s=Array.isArray(n)?n.map(a=>{let i=Bl({initializer:Ke({value:a.value}),name:a.key});return oe({comments:a.comments,node:i}),i}):Object.entries(n).map(([a,i])=>{let c=b__default.default.factory.createEnumMember(a,Ke({unescape:true,value:i}));return oe({comments:e[a],node:c}),c}),o=b__default.default.factory.createEnumDeclaration([J({keyword:"export"})],I({text:r}),s);return oe({comments:t,node:o}),o},Bl=({initializer:e,name:t})=>{let r=t;return typeof r=="string"&&(r.includes("'")?r=Dt({isSingleQuote:false,text:r}):r=Te(r)),b__default.default.factory.createEnumMember(r,e)},fi=({name:e,statements:t})=>b__default.default.factory.createModuleDeclaration([J({keyword:"export"})],I({text:e}),b__default.default.factory.createModuleBlock(t),b__default.default.NodeFlags.Namespace),ui=({indexType:e,objectType:t})=>b__default.default.factory.createIndexedAccessTypeNode(t,e),Dt=({isSingleQuote:e,text:t})=>(e===void 0&&(e=!t.includes("'")),b__default.default.factory.createStringLiteral(t,e)),di=({condition:e,whenFalse:t,whenTrue:r})=>b__default.default.factory.createConditionalExpression(e,b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionToken),r,b__default.default.factory.createToken(b__default.default.SyntaxKind.ColonToken),t),yi=({text:e})=>b__default.default.factory.createTypeOfExpression(I({text:e})),gi=({comment:e,exportType:t,name:r,type:n,typeParameters:s=[]})=>{let o=b__default.default.factory.createTypeAliasDeclaration(t?[J({keyword:"export"})]:void 0,I({text:r}),Er(s),ie(n));return oe({comments:e,node:o}),o},Ie=({typeArguments:e,typeName:t})=>b__default.default.factory.createTypeReferenceNode(t,e),hi=({type:e})=>b__default.default.factory.createParenthesizedType(e),Yt=({initializer:e,modifiers:t,name:r,required:n=true,type:s})=>b__default.default.factory.createParameterDeclaration(t,void 0,r,n?void 0:b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionToken),s,e),jr=({argumentsArray:e,expression:t,typeArguments:r})=>b__default.default.factory.createNewExpression(t,r,e),xi=({awaitModifier:e,expression:t,initializer:r,statement:n})=>b__default.default.factory.createForOfStatement(e,r,t,n),bi=({left:e,right:t})=>b__default.default.factory.createAssignment(e,t),Pe=({multiLine:e=true,statements:t})=>b__default.default.factory.createBlock(t,e),tn=({initializer:e,name:t})=>b__default.default.factory.createPropertyAssignment(t,e),Oi=({flags:e=[],text:t})=>{let r=t.startsWith("/")&&t.endsWith("/")?t:`/${t}/`;return b__default.default.factory.createRegularExpressionLiteral(`${r}${e.join("")}`)},kr=({expression:e,type:t})=>b__default.default.factory.createAsExpression(e,t),Ri=({value:e})=>{let t=[],r="";for(let s of e.slice(0).reverse())if(typeof s=="string")r=`${s}${r}`;else {let o=t.length?b__default.default.factory.createTemplateMiddle(r):b__default.default.factory.createTemplateTail(r),a=b__default.default.factory.createTemplateLiteralTypeSpan(s,o);t.push(a),r="";}return b__default.default.factory.createTemplateLiteralType(b__default.default.factory.createTemplateHead(r),t.reverse())};var Si=({module:e})=>b__default.default.factory.createExportDeclaration(void 0,false,void 0,xe.string(e)),Ue=({functionName:e,parameters:t=[],types:r})=>{let n=typeof e=="string"?I({text:e}):e,s=t.filter(a=>a!==void 0).map(a=>typeof a=="string"?I({text:a}):a);return b__default.default.factory.createCallExpression(n,r,s)},Ci=({exports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(c=>typeof c!="object"||!c.asType),s=r.map(c=>{let m=typeof c=="string"?{name:c}:c;return xe.export({alias:m.alias,asType:n&&m.asType,name:m.name})}),o=b__default.default.factory.createNamedExports(s),a=xe.string(t);return b__default.default.factory.createExportDeclaration(void 0,!n,o,a)},Ti=({assertion:e,comment:t,destructure:r,exportConst:n,expression:s,name:o,typeName:a})=>{let i=e?kr({expression:s,type:typeof e=="string"?Ie({typeName:e}):e}):s,c=I({text:o}),m=b__default.default.factory.createVariableDeclaration(r?b__default.default.factory.createObjectBindingPattern([b__default.default.factory.createBindingElement(void 0,void 0,c,void 0)]):c,void 0,a?typeof a=="string"?Ie({typeName:a}):a:void 0,i),l=b__default.default.factory.createVariableStatement(n?[J({keyword:"export"})]:void 0,b__default.default.factory.createVariableDeclarationList([m],b__default.default.NodeFlags.Const));return oe({comments:t,node:l}),l},Ii=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(l=>typeof l!="object"||!l.asType),s,o=[];r.forEach(l=>{let f=typeof l=="string"?{name:l}:l;f.name==="*"&&f.alias?s=f:o.push(xe.import({alias:f.alias,asType:n&&f.asType,name:f.name}));});let a=s?b__default.default.factory.createNamespaceImport(I({text:s.alias})):b__default.default.factory.createNamedImports(o),i=b__default.default.factory.createImportClause(!n,void 0,a),c=xe.string(t);return b__default.default.factory.createImportDeclaration(void 0,i,c)};var Pi=({accessLevel:e,comment:t,multiLine:r=true,parameters:n=[],statements:s=[]})=>{let o=e?[J({keyword:e})]:void 0,a=b__default.default.factory.createConstructorDeclaration(o,Ar(n),Pe({multiLine:r,statements:s}));return oe({comments:t,node:a}),a},Ai=({accessLevel:e,comment:t,isStatic:r=false,multiLine:n=true,name:s,parameters:o=[],returnType:a,statements:i=[],types:c=[]})=>{let m=e?[J({keyword:e})]:[];r&&m.push(J({keyword:"static"}));let l=b__default.default.factory.createMethodDeclaration(m,void 0,I({text:s}),void 0,c?Er(c):void 0,Ar(o),a?ie(a):void 0,Pe({multiLine:n,statements:i}));return oe({comments:t,node:l}),l},Ei=({decorator:e,exportClass:t,extendedClasses:r,name:n,nodes:s})=>{let o=[];t&&o.push(J({keyword:"export"})),e&&o.unshift(b__default.default.factory.createDecorator(Ue({functionName:e.name,parameters:e.args.map(i=>Ke({value:i})).filter(Ct)})));let a=[];if(r)for(let i of r)a.push(b__default.default.factory.createHeritageClause(b__default.default.SyntaxKind.ExtendsKeyword,[b__default.default.factory.createExpressionWithTypeArguments(I({text:i}),void 0)]));return b__default.default.factory.createClassDeclaration(o,I({text:n}),void 0,a,s)};var Bt=({expression:e})=>b__default.default.factory.createExpressionStatement(e);var on=({expression:e})=>b__default.default.factory.createReturnStatement(e),ji=({args:e=[],name:t,types:r=[]})=>{let n=r.map(i=>Ie({typeName:i})),s=e.map(i=>b__default.default.isExpression(i)?i:I({text:i})).filter(Ct),o=Ue({functionName:t,parameters:s,types:n});return on({expression:o})},ki=({expression:e})=>on({expression:typeof e=="string"?I({text:e}):e});var er=e=>e.slice(1).reduce((t,r)=>($e.lastIndex=0,$e.test(r)?ds({expression:t,name:r}):b__default.default.factory.createElementAccessChain(t,b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionDotToken),I({text:r}))),I({text:e[0]})),an=e=>e.slice(1).reduce((t,r)=>We({expression:t,name:r}),I({text:e[0]})),Ni=({expressions:e})=>e.reduce((r,n)=>We({expression:r,name:n})),pn=({left:e,operator:t="=",right:r})=>b__default.default.factory.createBinaryExpression(e,t==="="?b__default.default.SyntaxKind.EqualsToken:t==="==="?b__default.default.SyntaxKind.EqualsEqualsEqualsToken:t==="??"?b__default.default.SyntaxKind.QuestionQuestionToken:b__default.default.SyntaxKind.InKeyword,typeof r=="string"?I({text:r}):r),tr=({elseStatement:e,expression:t,thenStatement:r})=>b__default.default.factory.createIfStatement(t,r,e),qi=({path:e})=>{let t=er(e),r=an(e),n=Pe({statements:[Bt({expression:pn({left:r,right:jr({argumentsArray:[r],expression:I({text:"Date"})})})})]});return tr({expression:t,thenStatement:n})},wi=({path:e,transformerName:t})=>{let r=er(e),n=an(e),s=Pe({statements:[Bt({expression:Ue({functionName:t,parameters:[n]})})]});return [tr({expression:r,thenStatement:s})]},$i=({path:e,transformerName:t})=>{let r=er(e),n=an(e);return tr({expression:Ue({functionName:We({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:Pe({statements:[Bt({expression:b__default.default.factory.createCallChain(We({expression:n,name:"forEach"}),void 0,void 0,[I({text:t})])})]})})},Di=({parameterName:e})=>{let t=I({text:"Date"});return jr({argumentsArray:[I({text:e})],expression:t})},Mi=({path:e,transformExpression:t})=>{let r=er(e),n=an(e);return tr({expression:Ue({functionName:We({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:Pe({statements:[Bt({expression:pn({left:n,right:b__default.default.factory.createCallChain(We({expression:n,name:"map"}),void 0,void 0,[nn({parameters:[{name:"item"}],statements:t})])})})]})})};var zl=Ie({typeName:"null"}),rr=({isNullable:e,node:t})=>e?b__default.default.factory.createUnionTypeNode([t,zl]):t,hs=({indexKey:e,indexProperty:t,isNullable:r,properties:n,useLegacyResolution:s})=>{let a=n.map(m=>{let l=m.isReadOnly?[J({keyword:"readonly"})]:void 0,f=m.isRequired!==false?void 0:b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionToken),u=ie(m.type);let d=b__default.default.factory.createPropertySignature(l,s||typeof m.name=="string"&&m.name.match($e)||typeof m.name!="string"&&b__default.default.isPropertyName(m.name)?m.name:Dt({text:m.name}),f,u);return oe({comments:m.comment,node:d}),d}),i=false;if(t)if(!n.length&&e){let m=rn({questionToken:b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionToken),type:Mt({keyword:"string"}),typeParameter:vr({constraint:Ie({typeName:e}),name:I({text:String(t.name)})})});a.push(m),i=true;}else {let m=t.isReadOnly?[J({keyword:"readonly"})]:void 0,l=b__default.default.factory.createIndexSignature(m,[Yt({name:I({text:String(t.name)}),type:Mt({keyword:"string"})})],ie(t.type));a.push(l);}let c=i?a[0]:b__default.default.factory.createTypeLiteralNode(a);return rr({isNullable:r,node:c})},Nr=({isNullable:e,types:t})=>{let r=t.map(s=>ie(s)),n=b__default.default.factory.createUnionTypeNode(r);return rr({isNullable:e,node:n})},Fi=({isNullable:e,types:t})=>{let r=t.map(s=>ie(s)),n=b__default.default.factory.createIntersectionTypeNode(r);return rr({isNullable:e,node:n})},Bi=({isNullable:e=false,types:t})=>{let r=t.map(s=>ie(s)),n=b__default.default.factory.createTupleTypeNode(r);return rr({isNullable:e,node:n})},_i=(e,t,r=false,n=true)=>{let s=Nr({types:e}),o=Nr({types:t}),a=hs({properties:[{name:`[key: ${Ve({node:s,unescape:true})}]`,type:o}],useLegacyResolution:n});return rr({isNullable:r,node:a})},Li=(e,t=false)=>{let r=Ie({typeArguments:[Array.isArray(e)?Nr({types:e}):e],typeName:"Array"});return rr({isNullable:t,node:r})};var p={anonymousFunction:pi,arrayLiteralExpression:gs,arrowFunction:nn,asExpression:kr,assignment:bi,awaitExpression:ci,binaryExpression:pn,block:Pe,callExpression:Ue,classDeclaration:Ei,conditionalExpression:di,constVariable:Ti,constructorDeclaration:Pi,enumDeclaration:li,exportAllDeclaration:Si,exportNamedDeclaration:Ci,expressionToStatement:Bt,forOfStatement:xi,functionTypeNode:mi,identifier:I,ifStatement:tr,indexedAccessTypeNode:ui,isTsNode:$t,keywordTypeNode:Mt,literalTypeNode:ai,mappedTypeNode:rn,methodDeclaration:Ai,namedImportDeclarations:Ii,namespaceDeclaration:fi,newExpression:jr,nodeToString:Ve,null:ys,objectExpression:sn,ots:xe,parameterDeclaration:Yt,propertyAccessExpression:We,propertyAccessExpressions:Ni,propertyAssignment:tn,propertyDeclaration:oi,regularExpressionLiteral:Oi,returnFunctionCall:ji,returnStatement:on,returnVariable:ki,safeAccessExpression:er,stringLiteral:Dt,stringToTsNodes:ni,templateLiteralType:Ri,this:si,transformArrayMap:Mi,transformArrayMutation:$i,transformDateMutation:qi,transformFunctionMutation:wi,transformNewDate:Di,typeAliasDeclaration:gi,typeArrayNode:Li,typeInterfaceNode:hs,typeIntersectionNode:Fi,typeNode:ie,typeOfExpression:yi,typeOperatorNode:ii,typeParameterDeclaration:vr,typeParenthesizedNode:hi,typeRecordNode:_i,typeReferenceNode:Ie,typeTupleNode:Bi,typeUnionNode:Nr,valueToExpression:Ke};var Xl=[fe,ti,Yo,ei,Zo],cn=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");if(Jt.lastIndex=0,Jt.test(t))return `_${t}`;for(let r of Xl){if(t.startsWith("_"))return t;t=t.replace(r,"_$1");}return t};var Hi=/[\p{Lu}]/u,xs=/[\p{Ll}]/u,Ki=/([\p{Alpha}\p{N}_]|$)/u,nr=/[_.\- `\\[\]{}\\/]+/,Gl=new RegExp(`^${nr.source}`),bs=new RegExp(`${nr.source}${Ki.source}`,"gu"),Vi=new RegExp(`\\d+${Ki.source}`,"gu"),Jl=({case:e,string:t})=>{let r=false,n=false,s=false,o=false,a=e==="snake_case"||e==="SCREAMING_SNAKE_CASE"?"_":"-";for(let i=0;i<t.length;i++){let c=t[i];o=i>2?t[i-3]===a:true;let m=i+1,l=t[m];for(nr.lastIndex=0;l&&nr.test(l);)m+=1,l=t[m];let f=m!==i+1;if(xs.lastIndex=0,Hi.lastIndex=0,Hi.test(c)&&(r||l&&!f&&l!=="s"&&xs.test(l)))t=`${t.slice(0,i)}${a}${t.slice(i)}`,i++,s=n,r=false,n=true;else if(n&&s&&xs.test(c)&&!o&&!(c==="s"&&(!l||l.toLocaleLowerCase()!==l)))t=`${t.slice(0,i-1)}${a}${t.slice(i-1)}`,s=n,r=true,n=false;else {let u=c.toLocaleLowerCase(),d=c.toLocaleUpperCase();s=n,r=u===c&&d!==c,n=d===c&&u!==c;}}return t},E=({case:e,stripLeadingSeparators:t=true,value:r})=>{let n=r.trim();return n.length?!e||e==="preserve"?n:n.length===1?(nr.lastIndex=0,nr.test(n)?"":e==="PascalCase"||e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase()):(n!==n.toLocaleLowerCase()&&(n=Jl({case:e,string:n})),(t||n[0]!==r[0])&&(n=n.replace(Gl,"")),n=e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase(),e==="PascalCase"&&(n=`${n.charAt(0).toLocaleUpperCase()}${n.slice(1)}`),e==="snake_case"||e==="SCREAMING_SNAKE_CASE"?(n=n.replaceAll(bs,(o,a,i)=>i===0&&!t?o:`_${a}`),n[n.length-1]==="_"&&(n=n.slice(0,n.length-1))):(bs.lastIndex=0,Vi.lastIndex=0,n=n.replaceAll(Vi,(o,a,i)=>["_","-","."].includes(n.charAt(i+o.length))?o:o.toLocaleUpperCase()),n=n.replaceAll(bs,(o,a,i)=>i===0&&!t&&o[0]&&r.startsWith(o[0])?o:a.toLocaleUpperCase())),n):""};var de=class{_exportFromIndex;_headers=[];_id;_identifierCase;_imports=new Map;_items=[];_name;_path;identifiers={};constructor({dir:t,exportFromIndex:r=false,header:n=true,id:s,identifierCase:o,name:a}){this._exportFromIndex=r,this._id=s,this._identifierCase=o,this._name=this._setName(a),this._path=X__default.default.resolve(t,this._name),n&&this._headers.push("// This file is auto-generated by @hey-api/openapi-ts");}add(...t){this._items=this._items.concat(t);}blockIdentifier({$ref:t,namespace:r}){let{name:n,ref:s}=Ui(t),o=this.identifiers[n.toLocaleLowerCase()]?.[r]?.[s];if(!o)throw new Error(`Identifier for $ref ${t} in namespace ${r} not found`);return o.name=false,{created:false,name:o.name}}get exportFromIndex(){return this._exportFromIndex}get id(){return this._id}identifier(t){return Rs({case:this._identifierCase,identifiers:this.identifiers,...t})}import({module:t,...r}){let n=this._imports.get(t);n||(n=new Map,this._imports.set(t,n));let s=n.get(r.name);return s?{...s,name:s.alias||s.name}:(n.set(r.name,r),{...r,name:r.alias||r.name})}isEmpty(){return !this._items.length}nameWithoutExtension(){let{name:t}=Os(this._name);return t}relativePathToFile({context:t,id:r}){let n="";if(r.startsWith(".")){let m=[];if(t.config.configFile){let l=t.config.configFile.split("/");m=l.slice(0,l.length-1);}n=X__default.default.resolve(process.cwd(),...m,r);}else {let m=t.file({id:r});if(!m)throw new Error(`File with id ${r} does not exist`);n=m._path;}let s=this._path.split(X__default.default.sep),o=n.split(X__default.default.sep),a=-1,i="";for(let m of s)if(a+=1,o[a]!==m){let l=Array.from({length:s.length-a}).fill(""),f=o.slice(a),u=f.slice(0,f.length-1);u.length&&u.push(""),i=(l.join("../")||"./")+u.join("/");break}let c=o[o.length-1];return `${i}${Os(c).name}`}remove(t){Re__default.default.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:n}=Os(t);return [n,"gen",r].filter(Boolean).join(".")}_toString(t,r){let n=[];this._headers.length&&n.push(this._headers.join(`
`));let s=r?.options.moduleResolution===b__default.default.ModuleResolutionKind.NodeNext,o=[];for(let[a,i]of this._imports.entries()){let c=Array.from(i.values()),m=a;s&&(m.startsWith("./")||m.startsWith("../"))&&(m==="./client"?m="./client/index.js":m=`${m}.js`);let l=p.namedImportDeclarations({imports:c,module:m});o.push(Ve({node:l}));}return o.length&&n.push(o.join(`
`)),n=n.concat(this._items.map(a=>typeof a=="string"?a:Ve({node:a,unescape:true}))),n.join(t)}write(t=`
`,r=null){if(this.isEmpty()){this.remove({force:true});return}let n=this._path;if(typeof this._path=="string"){let s=this._path.split(X__default.default.sep);n=s.slice(0,s.length-1).join(X__default.default.sep);}we(n),Re__default.default.writeFileSync(this._path,this._toString(t,r));}},Ui=e=>{let t=e,r=[],n=t.split("/"),s=n[n.length-1]||"",o=n.indexOf("properties");if(o!==-1)for(t=n.slice(0,o).join("/"),s=n[o-1]||"";o+1<n.length;){let a=n[o+1];if(!a)throw new Error(`Invalid $ref: ${e}`);r.push(a),o+=2;}return {name:s,properties:r,ref:t}},Rs=({$ref:e,case:t,count:r=1,create:n=false,identifiers:s,nameTransformer:o,namespace:a})=>{let{name:i,properties:c,ref:m}=Ui(e);if(!i)return {created:false,name:""};let l=E({case:t,value:i});r>1&&(l=`${l}${r}`);let f=l.toLocaleLowerCase();s[f]||(s[f]={});let u=s[f];if(a==="enum"&&(u.type||u.value)||a!=="enum"&&u.enum)return Rs({$ref:m,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:a});u[a]||(u[a]={});let d=u[a],y=d[m];if(y){let O=y.name;return c.length&&(O+=c.map(j=>`['${j}']`).join("")),{created:false,name:O}}let g=E({case:t,value:o?.(i)??i});r>1&&(g=`${g}${r}`);let R=d[g];return R?R.$ref===m?{created:false,name:R.name}:Rs({$ref:m,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:a}):n?(R={$ref:m,name:cn(g)},d[g]=R,d[R.$ref]=R,{created:true,name:R.name}):(delete u[a],{created:false,name:""})},Os=e=>{let t=e.match(/\.[0-9a-z]+$/i),r=t?t[0].slice(1):"",n=e.slice(0,e.length-(r?r.length+1:0));return {extension:r,name:n}};var ef=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))),Ss=X__default.default.dirname(ef),Cs=()=>{let e=Ss;for(;e!==X__default.default.dirname(e);){let r=Re__default.default.readdirSync(e).filter(n=>n==="package.json");if(r[0]){let n=X__default.default.join(e,r[0]);return JSON.parse(Re__default.default.readFileSync(n,{encoding:"utf8"}))}e=X__default.default.dirname(e);}},fn=e=>{if(e==="off")return null;if(e){let r=X__default.default.isAbsolute(e)?e:X__default.default.resolve(Ss,e);return Re__default.default.existsSync(r)?r:null}let t=Ss;for(;t!==X__default.default.dirname(t);){let n=Re__default.default.readdirSync(t).filter(s=>s.startsWith("tsconfig")&&s.endsWith(".json")).sort(s=>s==="tsconfig.json"?-1:1);if(n[0])return X__default.default.join(t,n[0]);t=X__default.default.dirname(t);}return null},un=e=>{if(!e)return null;let t=b__default.default.readConfigFile(e,b__default.default.sys.readFile);if(t.error)throw new Error(`Couldn't read tsconfig from path: ${e}`);return b__default.default.parseJsonConfigFileContent(t.config,b__default.default.sys,X__default.default.dirname(e))};var zi=({files:e})=>{let t=S();e.index=new de({dir:t.output.path,id:"index",name:"index.ts"}),W(t)&&e.index.add(p.exportNamedDeclaration({exports:W(t),module:`./${W(t)}`})),t.exportCore&&(e.index.add(p.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),t.plugins["@hey-api/sdk"]?.response==="response"&&e.index.add(p.exportNamedDeclaration({exports:{asType:true,name:"ApiResult"},module:"./core/ApiResult"})),W(t)&&e.index.add(p.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),A(t).name!=="legacy/angular"&&e.index.add(p.exportNamedDeclaration({exports:["CancelablePromise","CancelError"],module:"./core/CancelablePromise"})),e.index.add(p.exportNamedDeclaration({exports:["OpenAPI",{asType:true,name:"OpenAPIConfig"}],module:"./core/OpenAPI"}))),Object.keys(e).sort().forEach(r=>{let n=e[r];r==="index"||n.isEmpty()||n.exportFromIndex&&e.index.add(p.exportAllDeclaration({module:`./${n.nameWithoutExtension()}`}));});};var Qi=async({client:e,openApi:t,templates:r})=>{let n=S(),s=t;if(e){if(n.plugins["@hey-api/sdk"]?.include&&n.plugins["@hey-api/sdk"].asClass){let m=new RegExp(n.plugins["@hey-api/sdk"].include);e.services=e.services.filter(l=>m.test(l.name));}if(n.plugins["@hey-api/typescript"]?.include){let m=new RegExp(n.plugins["@hey-api/typescript"].include);e.models=e.models.filter(l=>m.test(l.name));}}let o=X__default.default.resolve(n.output.path);n.output.clean&&Yr(o);let a=un(fn(n.output.tsConfigPath)),i=A(n);!D(n)&&"bundle"in i&&i.bundle&&en({outputPath:o,plugin:i,tsConfig:a}),await zo(s,o,e,r),await Jo(X__default.default.resolve(n.output.path,"core"),e,r);let c={};for(let m of n.pluginOrder){let l=n.plugins[m],f=(l.output??"").split("/"),u=X__default.default.resolve(n.output.path,...f.slice(0,f.length-1));c[l.name]=new de({dir:u,id:`legacy-unused-${l.name}`,name:`${f[f.length-1]}.ts`}),l._handlerLegacy({client:e,files:c,openApi:s,plugin:l});}zi({files:c}),Object.entries(c).forEach(([m,l])=>{n.dryRun||(m==="index"?l.write(`
`,a):l.write(`
`,a));});};var Xi=async({context:e})=>{await e.broadcast("before");for(let t of e.ir.servers??[])await e.broadcast("server",{server:t});if(e.ir.components){for(let t in e.ir.components.schemas){let r=e.ir.components.schemas[t],n=`#/components/schemas/${t}`;await e.broadcast("schema",{$ref:n,name:t,schema:r});}for(let t in e.ir.components.parameters){let r=e.ir.components.parameters[t],n=`#/components/parameters/${t}`;await e.broadcast("parameter",{$ref:n,name:t,parameter:r});}for(let t in e.ir.components.requestBodies){let r=e.ir.components.requestBodies[t],n=`#/components/requestBodies/${t}`;await e.broadcast("requestBody",{$ref:n,name:t,requestBody:r});}}for(let t in e.ir.paths){let r=e.ir.paths[t];for(let n in r){let s=n,o=r[s];await e.broadcast("operation",{method:s,operation:o,path:t});}}await e.broadcast("after");};var Gi=async({context:e})=>{let t=X__default.default.resolve(e.config.output.path);e.config.output.clean&&Yr(t);let r=un(fn(e.config.output.tsConfigPath)),n=r?.options.moduleResolution===b__default.default.ModuleResolutionKind.NodeNext,s=A(e.config);"bundle"in s&&s.bundle&&en({outputPath:t,plugin:s,tsConfig:r});for(let o of e.config.pluginOrder){let a=e.config.plugins[o],i=e.subscribe.bind(e);e.subscribe=(c,m)=>{i(c,m,o);},a._handler({context:e,plugin:a}),e.subscribe=i;}if(await Xi({context:e}),!e.config.dryRun){let o=e.createFile({id:"_index",path:"index"});for(let a of Object.values(e.files))if(a.nameWithoutExtension()!==o.nameWithoutExtension()){if(!a.isEmpty()&&a.exportFromIndex&&e.config.output.indexFile){let c=o.relativePathToFile({context:e,id:a.id});n&&(c.startsWith("./")||c.startsWith("../"))&&(c==="./client"?c="./client/index.js":c=`${c}.js`),o.add(p.exportAllDeclaration({module:c}));}a.write(`
`,r);}e.config.output.indexFile&&o.write(`
`,r);}};var yn=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let n=r instanceof Headers?r.entries():Object.entries(r);for(let[s,o]of n)if(o===null)t.delete(s);else if(Array.isArray(o))for(let a of o)t.append(s,a);else o!==void 0&&t.set(s,typeof o=="object"?JSON.stringify(o):o);}return t};var ea=async({fetchOptions:e,inputPath:t,timeout:r,watch:n})=>{let s=new jsonSchemaRefParser.$RefParser,o=jsonSchemaRefParser.getResolvedInput({pathOrUrlOrSchema:t}),a,i,c;if(o.type==="url"){if(n.lastValue&&n.isHeadMethodSupported!==false){try{let l=await jsonSchemaRefParser.sendRequest({fetchOptions:{method:"HEAD",...e,headers:yn(e?.headers,n.headers)},timeout:r,url:o.path});if(l.response.status>=300)return {error:"not-ok",response:l.response};c=l.response;}catch(l){return {error:"not-ok",response:new Response(l.message)}}if(!c.ok&&n.isHeadMethodSupported)return {error:"not-ok",response:c};if(n.isHeadMethodSupported===void 0&&(n.isHeadMethodSupported=c.ok),c.status===304)return {error:"not-modified",response:c};if(i===void 0){let l=c.headers.get("ETag");l&&(i=l!==n.headers.get("If-None-Match"),i&&n.headers.set("If-None-Match",l));}if(i===void 0){let l=c.headers.get("Last-Modified");l&&(i=l!==n.headers.get("If-Modified-Since"),i&&n.headers.set("If-Modified-Since",l));}if(i===false)return {error:"not-modified",response:c}}try{let l=await jsonSchemaRefParser.sendRequest({fetchOptions:{method:"GET",...e},timeout:r,url:o.path});if(l.response.status>=300)return {error:"not-ok",response:l.response};c=l.response;}catch(l){return {error:"not-ok",response:new Response(l.message)}}if(!c.ok)return {error:"not-ok",response:c};if(a=c.body?await c.arrayBuffer():new ArrayBuffer(0),i===void 0){let l=new TextDecoder().decode(a);i=l!==n.lastValue,n.lastValue=l;}}else n.lastValue?i=false:n.lastValue=o.type;return i===false?{error:"not-modified",response:c}:{data:await s.bundle({arrayBuffer:a,pathOrUrlOrSchema:void 0,resolvedInput:o})}};var df=process.stdin.isTTY&&process.stdout.isTTY,or=class extends Error{args;event;pluginName;constructor({args:t,error:r,event:n,name:s,pluginName:o}){let a=r instanceof Error?r.message:"Unknown error";super(a),this.args=t,this.cause=r.cause,this.event=n,this.name=s||r.name,this.pluginName=o,this.stack=r.stack;}},ra=(e,t)=>{let r=`openapi-ts-error-${Date.now()}.log`,n=X__default.default.resolve(process.cwd(),t);we(n);let s=X__default.default.resolve(n,r),o=`[${new Date().toISOString()}] `;e instanceof or&&(o+=`${e.name} during event "${e.event}"
`,e.pluginName&&(o+=`Plugin: ${e.pluginName}
`),o+=`Arguments: ${JSON.stringify(e.args,null,2)}
`);let a=e instanceof Error?e.message:String(e),i=e instanceof Error?e.stack:void 0;return o+=`Error: ${a}
`,i&&(o+=`Stack:
${i}
`),Re__default.default.writeFileSync(s,o),s},na=async e=>{let t="";e instanceof or&&(e.pluginName&&(t+=`**Plugin**: \`${e.pluginName}\`
`),t+=`**Event**: \`${e.event}\`
`,t+=`**Arguments**:
\`\`\`ts
${JSON.stringify(e.args,null,2)}
\`\`\`
`);let r=e instanceof Error?e.message:String(e),n=e instanceof Error?e.stack:void 0;t+=`**Error**: \`${r}\`
`,n&&(t+=`
**Stack Trace**:
\`\`\`
${n}
\`\`\``);let s=new URLSearchParams({body:t,labels:"bug \u{1F525}",