UNPKG

@hey-api/openapi-ts

Version:

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

36 lines (30 loc) • 390 kB
'use strict';var Le=require('ansi-colors'),Yg=require('color-support'),X=require('path'),Te=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 Le__default=/*#__PURE__*/_interopDefault(Le);var Yg__default=/*#__PURE__*/_interopDefault(Yg);var X__default=/*#__PURE__*/_interopDefault(X);var Te__default=/*#__PURE__*/_interopDefault(Te);var b__default=/*#__PURE__*/_interopDefault(b);var x__default=/*#__PURE__*/_interopDefault(x);var Al=Object.create;var Vo=Object.defineProperty;var Cl=Object.getOwnPropertyDescriptor;var Il=Object.getOwnPropertyNames;var vl=Object.getPrototypeOf,jl=Object.prototype.hasOwnProperty;var _e=(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 El=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Il(t))!jl.call(e,s)&&s!==r&&Vo(e,s,{get:()=>t[s],enumerable:!(n=Cl(t,s))||n.enumerable});return e};var kl=(e,t,r)=>(r=e!=null?Al(vl(e)):{},El(Vo(r,"default",{value:e,enumerable:true}),e));var Pp=ge((jC,Tp)=>{Tp.exports=Rp;Rp.sync=id;var Op=_e("fs");function od(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 Sp(e,t,r){return !e.isSymbolicLink()&&!e.isFile()?false:od(t,r)}function Rp(e,t,r){Op.stat(e,function(n,s){r(n,n?false:Sp(s,e,t));});}function id(e,t){return Sp(Op.statSync(e),e,t)}});var jp=ge((EC,vp)=>{vp.exports=Cp;Cp.sync=ad;var Ap=_e("fs");function Cp(e,t,r){Ap.stat(e,function(n,s){r(n,n?false:Ip(s,t));});}function ad(e,t){return Ip(Ap.statSync(e),t)}function Ip(e,t){return e.isFile()&&pd(e,t)}function pd(e,t){var r=e.mode,n=e.uid,s=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),c=parseInt("010",8),m=parseInt("001",8),l=a|c,f=r&m||r&c&&s===i||r&a&&n===o||r&l&&o===0;return f}});var kp=ge((qC,Ep)=>{_e("fs");var Qn;process.platform==="win32"||global.TESTING_WINDOWS?Qn=Pp():Qn=jp();Ep.exports=mo;mo.sync=cd;function mo(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){mo(e,t||{},function(o,i){o?s(o):n(i);});})}Qn(e,t||{},function(n,s){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,s=false),r(n,s);});}function cd(e,t){try{return Qn.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return false;throw r}}});var Fp=ge((NC,Mp)=>{var Rr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",qp=_e("path"),md=Rr?";":":",Np=kp(),wp=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),$p=(e,t)=>{let r=t.colon||md,n=e.match(/\//)||Rr&&e.match(/\\/)?[""]:[...Rr?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=Rr?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Rr?s.split(r):[""];return Rr&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:s}},Dp=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:s,pathExtExe:o}=$p(e,t),i=[],a=m=>new Promise((l,f)=>{if(m===n.length)return t.all&&i.length?l(i):f(wp(e));let u=n[m],d=/^".*"$/.test(u)?u.slice(1,-1):u,y=qp.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(a(l+1));let y=s[f];Np(m+y,{pathExt:o},(g,T)=>{if(!g&&T)if(t.all)i.push(m+y);else return u(m+y);return u(c(m,l,f+1))});});return r?a(0).then(m=>r(null,m),r):a(0)},ld=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=$p(e,t),o=[];for(let i=0;i<r.length;i++){let a=r[i],c=/^".*"$/.test(a)?a.slice(1,-1):a,m=qp.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(Np.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 wp(e)};Mp.exports=Dp;Dp.sync=ld;});var Bp=ge((wC,lo)=>{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"};lo.exports=Lp;lo.exports.default=Lp;});var Kp=ge(($C,Vp)=>{var Hp=_e("path"),fd=Fp(),ud=Bp();function _p(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 i;try{i=fd.sync(e.command,{path:r[ud({env:r})],pathExt:t?Hp.delimiter:void 0});}catch{}finally{o&&process.chdir(n);}return i&&(i=Hp.resolve(s?e.options.cwd:"",i)),i}function dd(e){return _p(e)||_p(e,true)}Vp.exports=dd;});var Wp=ge((DC,uo)=>{var fo=/([()\][%!^"`<>&|;, *?])/g;function yd(e){return e=e.replace(fo,"^$1"),e}function gd(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(fo,"^$1"),t&&(e=e.replace(fo,"^$1")),e}uo.exports.command=yd;uo.exports.argument=gd;});var zp=ge((MC,Up)=>{Up.exports=/^#!(.*)/;});var Xp=ge((FC,Qp)=>{var hd=zp();Qp.exports=(e="")=>{let t=e.match(hd);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s};});var Jp=ge((LC,Gp)=>{var yo=_e("fs"),xd=Xp();function bd(e){let r=Buffer.alloc(150),n;try{n=yo.openSync(e,"r"),yo.readSync(n,r,0,150,0),yo.closeSync(n);}catch{}return xd(r.toString())}Gp.exports=bd;});var tc=ge((BC,ec)=>{var Od=_e("path"),Zp=Kp(),Yp=Wp(),Sd=Jp(),Rd=process.platform==="win32",Td=/\.(?:com|exe)$/i,Pd=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ad(e){e.file=Zp(e);let t=e.file&&Sd(e.file);return t?(e.args.unshift(e.file),e.command=t,Zp(e)):e.file}function Cd(e){if(!Rd)return e;let t=Ad(e),r=!Td.test(t);if(e.options.forceShell||r){let n=Pd.test(t);e.command=Od.normalize(e.command),e.command=Yp.command(e.command),e.args=e.args.map(o=>Yp.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 Id(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:Cd(n)}ec.exports=Id;});var sc=ge((HC,nc)=>{var go=process.platform==="win32";function ho(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 vd(e,t){if(!go)return;let r=e.emit;e.emit=function(n,s){if(n==="exit"){let o=rc(s,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)};}function rc(e,t){return go&&e===1&&!t.file?ho(t.original,"spawn"):null}function jd(e,t){return go&&e===1&&!t.file?ho(t.original,"spawnSync"):null}nc.exports={hookChildProcess:vd,verifyENOENT:rc,verifyENOENTSync:jd,notFoundError:ho};});var ac=ge((_C,Tr)=>{var oc=_e("child_process"),xo=tc(),bo=sc();function ic(e,t,r){let n=xo(e,t,r),s=oc.spawn(n.command,n.args,n.options);return bo.hookChildProcess(s,n),s}function Ed(e,t,r){let n=xo(e,t,r),s=oc.spawnSync(n.command,n.args,n.options);return s.error=s.error||bo.verifyENOENTSync(s.status,n),s}Tr.exports=ic;Tr.exports.spawn=ic;Tr.exports.sync=Ed;Tr.exports._parse=xo;Tr.exports._enoent=bo;});var Ve="client",he=e=>{let t=I(e);return t.name==="@hey-api/client-axios"||t.name==="@hey-api/client-nuxt"?"baseURL":"baseUrl"},I=e=>{for(let t of e.pluginOrder){let r=e.plugins[t];if(r?.tags?.includes("client"))return r}return {config:{name:""},name:""}};var Ko,S=()=>{let e=Ko,t=I(e);return e.client=t,e},Wo=e=>(Ko=e,S()),F=e=>I(e).name.startsWith("legacy/"),U=e=>{if(F(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 Yt(e,t){let r=e.toLocaleLowerCase(),n=t.toLocaleLowerCase();return r.localeCompare(n,"en")}var Ir=(e,t)=>Yt(e.name,t.name);function vr(e){return e.sort(Ir)}var we=e=>{Te__default.default.existsSync(e)||Te__default.default.mkdirSync(e,{recursive:true});},Yr=e=>{Te__default.default.existsSync(e)&&Te__default.default.rmSync(e,{force:true,recursive:true});},er=({moduleOutput:e,sourceOutput:t})=>{let r=t.split("/");return `${Array.from({length:r.length}).fill("").join("../")||"./"}${e}`};var Uo=async(e,t,r,n)=>{let s=S(),o=I(s),i=n.client({$config:s,...r,httpRequest:Jr(o.name),models:vr(r.models),services:vr(r.services)});U(s)&&(we(t),Te__default.default.writeFileSync(X__default.default.resolve(t,`${U(s)}.ts`),i));};var Dl=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))),zo=X__default.default.dirname(Dl),Xo=e=>{let t=e.split(X__default.default.sep);return t.slice(0,t.length-1).join(X__default.default.sep)},ee=({config:e,sourceOutput:t})=>{let r=I(e);if("bundle"in r.config&&r.config.bundle)return er({moduleOutput:"client",sourceOutput:t});if(X__default.default.isAbsolute(r.name)){let n=Xo(r.name),s=X__default.default.resolve(e.output.path);return X__default.default.relative(s,n).replace(/\\/g,"/")}return r.name},z={Options:{asType:true,name:"Options"},OptionsLegacyParser:{asType:true,name:"OptionsLegacyParser"}},Qo=e=>{let t=Te__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'`}),Te__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(zo,"clients","core");if(Te__default.default.cpSync(d,u,{recursive:true}),f){let O=Te__default.default.readdirSync(u);for(let q of O)Qo(X__default.default.resolve(u,q));}let y=X__default.default.resolve(e,"client");we(y);let g=t.name.slice(16),T=X__default.default.resolve(zo,"clients",g);if(Te__default.default.cpSync(T,y,{recursive:true}),f){let O=Te__default.default.readdirSync(y);for(let q of O)Qo(X__default.default.resolve(y,q));}return}let s="";if(X__default.default.isAbsolute(t.name)&&(s=Xo(t.name)),s){let f=X__default.default.resolve(e,"client");we(f),Te__default.default.cpSync(s,f,{recursive:true});return}let i=X__default.default.normalize(_e.resolve(t.name)).split(X__default.default.sep),a=i.slice(0,i.indexOf("dist")+1).join(X__default.default.sep),m=[i[i.length-1],"index.d.ts","index.d.cts"],l=X__default.default.resolve(e,"client");we(l);for(let f of m)Te__default.default.copyFileSync(X__default.default.resolve(a,f),X__default.default.resolve(l,f));};var Go=async(e,t,r)=>{let n=S();if(n.exportCore){let s=I(n),o={httpRequest:Jr(s.name),server:n.base!==void 0?n.base:t.server,version:t.version};if(Te__default.default.rmSync(X__default.default.resolve(e),{force:true,recursive:true}),Te__default.default.mkdirSync(X__default.default.resolve(e),{recursive:true}),await Te__default.default.writeFileSync(X__default.default.resolve(e,"OpenAPI.ts"),r.core.settings({$config:n,...o})),await Te__default.default.writeFileSync(X__default.default.resolve(e,"ApiError.ts"),r.core.apiError({$config:n,...o})),await Te__default.default.writeFileSync(X__default.default.resolve(e,"ApiRequestOptions.ts"),r.core.apiRequestOptions({$config:n,...o})),await Te__default.default.writeFileSync(X__default.default.resolve(e,"ApiResult.ts"),r.core.apiResult({$config:n,...o})),s.name!=="legacy/angular"&&await Te__default.default.writeFileSync(X__default.default.resolve(e,"CancelablePromise.ts"),r.core.cancelablePromise({$config:n,...o})),await Te__default.default.writeFileSync(X__default.default.resolve(e,"request.ts"),r.core.request({$config:n,...o})),U(n)&&(await Te__default.default.writeFileSync(X__default.default.resolve(e,"BaseHttpRequest.ts"),r.core.baseHttpRequest({$config:n,...o})),await Te__default.default.writeFileSync(X__default.default.resolve(e,`${o.httpRequest}.ts`),r.core.httpRequest({$config:n,...o}))),n.request){let i=X__default.default.resolve(process.cwd(),n.request);if(!await Te__default.default.existsSync(i))throw new Error(`Custom request file "${i}" does not exists`);await Te__default.default.copyFileSync(i,X__default.default.resolve(e,"request.ts"));}}};var tr=/^[^$_\p{ID_Start}]+/u,Ae=/^-?\d+(\.\d+)?$/,Jo=/^(document|history|location|navigator|window)$/g,Zo=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,le=/^(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,Yo=/^(global|process|Buffer)$/g,ei=/^(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 Ce=e=>(e||e==="")&&($e.lastIndex=0,!$e.test(e))?`'${e}'`:e,rr=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,V=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>os$1.EOL+r.trim());var Fl=b__default.default.createPrinter({newLine:b__default.default.NewLineKind.LineFeed,removeComments:false}),ti=e=>b__default.default.createSourceFile("",e,b__default.default.ScriptTarget.ESNext,false,b__default.default.ScriptKind.TS),Ll=ti(""),Bl=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function Ke({node:e,unescape:t=false}){let r=Fl.printNode(b__default.default.EmitHint.Unspecified,e,Ll);if(!t)return r;try{return Bl(r)}catch{return S().logs.level==="debug"&&console.warn("Could not decode value:",r),r}}function ri(e){return ti(e).statements[0]}var A=({text:e})=>b__default.default.factory.createIdentifier(e),ni=()=>b__default.default.factory.createThis(),J=({keyword:e})=>{let t=Ds({keyword:e});return b__default.default.factory.createModifier(t)},si=({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=A({text:r});if(e){let s=A({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=A({text:r});if(e){let s=A({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=rr(r));let n=r.includes("'")&&r.includes('"'),s=r.includes(` `),o=r.startsWith("`"),i=r.startsWith("\\`")&&r.endsWith("\\`");return (s||n||o)&&!i&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?A({text:r}):Bt({text:r})}},Lt=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",It=e=>e!==void 0,Hl=({commentObject:e,node:t})=>{let r=e.lines.filter(i=>!!i||i==="");if(!r.length)return;if(!e.jsdoc){for(let i of r)b__default.default.addSyntheticLeadingComment(t,b__default.default.SyntaxKind.SingleLineCommentTrivia,` ${i}`,true);return}let n=r.map((i,a)=>{let c=i;return a!==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=Ke({node:s,unescape:true}).replace("/*","").replace("* */","");b__default.default.addSyntheticLeadingComment(t,b__default.default.SyntaxKind.MultiLineCommentTrivia,o,true);},se=({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)Hl({commentObject:s,node:t});};var oe=(e,t)=>b__default.default.isTypeNode(e)?e:typeof e=="number"?b__default.default.factory.createLiteralTypeNode(xe.number(e)):Ie({typeArguments:t?.map(r=>oe(r)),typeName:e}),Ms=({expression:e,name:t})=>b__default.default.factory.createPropertyAccessChain(e,b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionDotToken),t),Ue=({expression:e,isOptional:t,name:r})=>{let n=typeof e=="string"?A({text:e}):e;if(t&&typeof r!="number")return Ms({expression:n,name:r});if(typeof r=="string"){if($e.lastIndex=0,!$e.test(r)){!r.startsWith("'")&&!r.endsWith("'")&&(r=`'${r}'`);let o=A({text:r});return b__default.default.factory.createElementAccessExpression(n,o)}let s=A({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)},Fs=()=>b__default.default.factory.createNull(),We=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:n,value:s})=>{if(s===null)return Fs();if(Array.isArray(s))return Ls({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 Ue({expression:o[0],name:o[1]})}return xe.string(s,n)}},jr=e=>e.map(t=>{if("destructure"in t)return nr({name:b__default.default.factory.createObjectBindingPattern(t.destructure.map(n=>"destructure"in n?void 0:b__default.default.factory.createBindingElement(void 0,void 0,A({text:n.name}),void 0)).filter(Boolean)),type:t.type!==void 0?oe(t.type):void 0});let r=t.accessLevel?[J({keyword:t.accessLevel})]:[];return t.isReadOnly&&r.push(J({keyword:"readonly"})),nr({initializer:t.default!==void 0?We({value:t.default}):void 0,modifiers:r,name:A({text:t.name}),required:t.isRequired!==false,type:t.type!==void 0?oe(t.type):void 0})}),Ds=({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}"`)}},Ht=({keyword:e})=>{let t=Ds({keyword:e});return b__default.default.factory.createKeywordTypeNode(t)},Er=e=>e.map(t=>b__default.default.isTypeParameterDeclaration(t)?t:kr({constraint:t.extends?typeof t.extends=="string"?Ht({keyword:"boolean"}):t.extends:void 0,defaultType:t.default!==void 0?Lt(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})),oi=({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)},kr=({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),ii=({literal:e})=>b__default.default.factory.createLiteralTypeNode(e),nn=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:i=[]})=>{let a=b__default.default.factory.createArrowFunction(e?[J({keyword:"async"})]:void 0,i?Er(i):void 0,jr(n),s?oe(s):void 0,void 0,Array.isArray(o)?ve({multiLine:r,statements:o}):o);return se({comments:t,node:a}),a},ai=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:i=[]})=>{let a=b__default.default.factory.createFunctionExpression(e?[J({keyword:"async"})]:void 0,void 0,void 0,i?Er(i):void 0,jr(n),s?oe(s):void 0,ve({multiLine:r,statements:o}));return se({comments:t,node:a}),a},Ls=({elements:e,multiLine:t=false})=>b__default.default.factory.createArrayLiteralExpression(e.map(n=>Lt(n)?n:We({value:n})).filter(It),t||!Array.isArray(e[0])&&typeof e[0]=="object"),pi=({expression:e})=>b__default.default.factory.createAwaitExpression(e),ci=({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 i=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=Lt(c.spread)?c.spread:A({text:c.spread});l=b__default.default.factory.createSpreadAssignment(c.assertion?Nr({expression:f,type:typeof c.assertion=="string"?Ht({keyword:c.assertion}):c.assertion}):f);}else if(c.shorthand||s&&m)l=b__default.default.factory.createShorthandPropertyAssignment(c.value);else {let f=Lt(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}):We({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=A({text:c.value})),l=tn({initializer:f,name:c.key});}return se({comments:c.comments,node:l}),l}).filter(It):Object.entries(n).map(([c,m])=>{let l=We({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=A({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(It),a=b__default.default.factory.createObjectLiteralExpression(i,r);return se({comments:e,node:a}),a},mi=({comments:e={},leadingComment:t,name:r,obj:n})=>{let s=Array.isArray(n)?n.map(i=>{let a=Vl({initializer:We({value:i.value}),name:i.key});return se({comments:i.comments,node:a}),a}):Object.entries(n).map(([i,a])=>{let c=b__default.default.factory.createEnumMember(i,We({unescape:true,value:a}));return se({comments:e[i],node:c}),c}),o=b__default.default.factory.createEnumDeclaration([J({keyword:"export"})],A({text:r}),s);return se({comments:t,node:o}),o},Vl=({initializer:e,name:t})=>{let r=t;return typeof r=="string"&&(r.includes("'")?r=Bt({isSingleQuote:false,text:r}):r=Ce(r)),b__default.default.factory.createEnumMember(r,e)},li=({name:e,statements:t})=>b__default.default.factory.createModuleDeclaration([J({keyword:"export"})],A({text:e}),b__default.default.factory.createModuleBlock(t),b__default.default.NodeFlags.Namespace),fi=({indexType:e,objectType:t})=>b__default.default.factory.createIndexedAccessTypeNode(t,e),Bt=({isSingleQuote:e,text:t})=>(e===void 0&&(e=!t.includes("'")),b__default.default.factory.createStringLiteral(t,e)),ui=({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),di=({text:e})=>b__default.default.factory.createTypeOfExpression(A({text:e})),yi=({comment:e,exportType:t,name:r,type:n,typeParameters:s=[]})=>{let o=b__default.default.factory.createTypeAliasDeclaration(t?[J({keyword:"export"})]:void 0,A({text:r}),Er(s),oe(n));return se({comments:e,node:o}),o},Ie=({typeArguments:e,typeName:t})=>b__default.default.factory.createTypeReferenceNode(t,e),gi=({type:e})=>b__default.default.factory.createParenthesizedType(e),nr=({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),qr=({argumentsArray:e,expression:t,typeArguments:r})=>b__default.default.factory.createNewExpression(t,r,e),hi=({awaitModifier:e,expression:t,initializer:r,statement:n})=>b__default.default.factory.createForOfStatement(e,r,t,n),xi=({left:e,right:t})=>b__default.default.factory.createAssignment(e,t),ve=({multiLine:e=true,statements:t})=>b__default.default.factory.createBlock(t,e),tn=({initializer:e,name:t})=>b__default.default.factory.createPropertyAssignment(t,e),bi=({flags:e=[],text:t})=>{let r=t.startsWith("/")&&t.endsWith("/")?t:`/${t}/`;return b__default.default.factory.createRegularExpressionLiteral(`${r}${e.join("")}`)},Nr=({expression:e,type:t})=>b__default.default.factory.createAsExpression(e,t),Oi=({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),i=b__default.default.factory.createTemplateLiteralTypeSpan(s,o);t.push(i),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)),ze=({functionName:e,parameters:t=[],types:r})=>{let n=typeof e=="string"?A({text:e}):e,s=t.filter(i=>i!==void 0).map(i=>typeof i=="string"?A({text:i}):i);return b__default.default.factory.createCallExpression(n,r,s)},Ri=({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),i=xe.string(t);return b__default.default.factory.createExportDeclaration(void 0,!n,o,i)},Ti=({assertion:e,comment:t,destructure:r,exportConst:n,expression:s,name:o,typeName:i})=>{let a=e?Nr({expression:s,type:typeof e=="string"?Ie({typeName:e}):e}):s,c=A({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,i?typeof i=="string"?Ie({typeName:i}):i:void 0,a),l=b__default.default.factory.createVariableStatement(n?[J({keyword:"export"})]:void 0,b__default.default.factory.createVariableDeclarationList([m],b__default.default.NodeFlags.Const));return se({comments:t,node:l}),l},Pi=({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 i=s?b__default.default.factory.createNamespaceImport(A({text:s.alias})):b__default.default.factory.createNamedImports(o),a=b__default.default.factory.createImportClause(!n,void 0,i),c=xe.string(t);return b__default.default.factory.createImportDeclaration(void 0,a,c)};var Ai=({accessLevel:e,comment:t,multiLine:r=true,parameters:n=[],statements:s=[]})=>{let o=e?[J({keyword:e})]:void 0,i=b__default.default.factory.createConstructorDeclaration(o,jr(n),ve({multiLine:r,statements:s}));return se({comments:t,node:i}),i},Ci=({accessLevel:e,comment:t,isStatic:r=false,multiLine:n=true,name:s,parameters:o=[],returnType:i,statements:a=[],types:c=[]})=>{let m=e?[J({keyword:e})]:[];r&&m.push(J({keyword:"static"}));let l=b__default.default.factory.createMethodDeclaration(m,void 0,A({text:s}),void 0,c?Er(c):void 0,jr(o),i?oe(i):void 0,ve({multiLine:n,statements:a}));return se({comments:t,node:l}),l},Ii=({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(ze({functionName:e.name,parameters:e.args.map(a=>We({value:a})).filter(It)})));let i=[];if(r)for(let a of r)i.push(b__default.default.factory.createHeritageClause(b__default.default.SyntaxKind.ExtendsKeyword,[b__default.default.factory.createExpressionWithTypeArguments(A({text:a}),void 0)]));return b__default.default.factory.createClassDeclaration(o,A({text:n}),void 0,i,s)};var Vt=({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(a=>Ie({typeName:a})),s=e.map(a=>b__default.default.isExpression(a)?a:A({text:a})).filter(It),o=ze({functionName:t,parameters:s,types:n});return on({expression:o})},Ei=({expression:e})=>on({expression:typeof e=="string"?A({text:e}):e});var sr=e=>e.slice(1).reduce((t,r)=>($e.lastIndex=0,$e.test(r)?Ms({expression:t,name:r}):b__default.default.factory.createElementAccessChain(t,b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionDotToken),A({text:r}))),A({text:e[0]})),an=e=>e.slice(1).reduce((t,r)=>Ue({expression:t,name:r}),A({text:e[0]})),ki=({expressions:e})=>e.reduce((r,n)=>Ue({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"?A({text:r}):r),or=({elseStatement:e,expression:t,thenStatement:r})=>b__default.default.factory.createIfStatement(t,r,e),qi=({path:e})=>{let t=sr(e),r=an(e),n=ve({statements:[Vt({expression:pn({left:r,right:qr({argumentsArray:[r],expression:A({text:"Date"})})})})]});return or({expression:t,thenStatement:n})},Ni=({path:e,transformerName:t})=>{let r=sr(e),n=an(e),s=ve({statements:[Vt({expression:ze({functionName:t,parameters:[n]})})]});return [or({expression:r,thenStatement:s})]},wi=({path:e,transformerName:t})=>{let r=sr(e),n=an(e);return or({expression:ze({functionName:Ue({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:ve({statements:[Vt({expression:b__default.default.factory.createCallChain(Ue({expression:n,name:"forEach"}),void 0,void 0,[A({text:t})])})]})})},$i=({parameterName:e})=>{let t=A({text:"Date"});return qr({argumentsArray:[A({text:e})],expression:t})},Di=({path:e,transformExpression:t})=>{let r=sr(e),n=an(e);return or({expression:ze({functionName:Ue({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:ve({statements:[Vt({expression:pn({left:n,right:b__default.default.factory.createCallChain(Ue({expression:n,name:"map"}),void 0,void 0,[nn({parameters:[{name:"item"}],statements:t})])})})]})})};var Jl=Ie({typeName:"null"}),ir=({isNullable:e,node:t})=>e?b__default.default.factory.createUnionTypeNode([t,Jl]):t,Bs=({indexKey:e,indexProperty:t,isNullable:r,properties:n,useLegacyResolution:s})=>{let i=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=oe(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:Bt({text:m.name}),f,u);return se({comments:m.comment,node:d}),d}),a=false;if(t)if(!n.length&&e){let m=rn({questionToken:b__default.default.factory.createToken(b__default.default.SyntaxKind.QuestionToken),type:Ht({keyword:"string"}),typeParameter:kr({constraint:Ie({typeName:e}),name:A({text:String(t.name)})})});i.push(m),a=true;}else {let m=t.isReadOnly?[J({keyword:"readonly"})]:void 0,l=b__default.default.factory.createIndexSignature(m,[nr({name:A({text:String(t.name)}),type:Ht({keyword:"string"})})],oe(t.type));i.push(l);}let c=a?i[0]:b__default.default.factory.createTypeLiteralNode(i);return ir({isNullable:r,node:c})},wr=({isNullable:e,types:t})=>{let r=t.map(s=>oe(s)),n=b__default.default.factory.createUnionTypeNode(r);return ir({isNullable:e,node:n})},Mi=({isNullable:e,types:t})=>{let r=t.map(s=>oe(s)),n=b__default.default.factory.createIntersectionTypeNode(r);return ir({isNullable:e,node:n})},Fi=({isNullable:e=false,types:t})=>{let r=t.map(s=>oe(s)),n=b__default.default.factory.createTupleTypeNode(r);return ir({isNullable:e,node:n})},Li=(e,t,r=false,n=true)=>{let s=wr({types:e}),o=wr({types:t}),i=Bs({properties:[{name:`[key: ${Ke({node:s,unescape:true})}]`,type:o}],useLegacyResolution:n});return ir({isNullable:r,node:i})},Bi=(e,t=false)=>{let r=Ie({typeArguments:[Array.isArray(e)?wr({types:e}):e],typeName:"Array"});return ir({isNullable:t,node:r})};var p={anonymousFunction:ai,arrayLiteralExpression:Ls,arrowFunction:nn,asExpression:Nr,assignment:xi,awaitExpression:pi,binaryExpression:pn,block:ve,callExpression:ze,classDeclaration:Ii,conditionalExpression:ui,constVariable:Ti,constructorDeclaration:Ai,enumDeclaration:mi,exportAllDeclaration:Si,exportNamedDeclaration:Ri,expressionToStatement:Vt,forOfStatement:hi,functionTypeNode:ci,identifier:A,ifStatement:or,indexedAccessTypeNode:fi,isTsNode:Lt,keywordTypeNode:Ht,literalTypeNode:ii,mappedTypeNode:rn,methodDeclaration:Ci,namedImportDeclarations:Pi,namespaceDeclaration:li,newExpression:qr,nodeToString:Ke,null:Fs,objectExpression:sn,ots:xe,parameterDeclaration:nr,propertyAccessExpression:Ue,propertyAccessExpressions:ki,propertyAssignment:tn,propertyDeclaration:si,regularExpressionLiteral:bi,returnFunctionCall:ji,returnStatement:on,returnVariable:Ei,safeAccessExpression:sr,stringLiteral:Bt,stringToTsNodes:ri,templateLiteralType:Oi,this:ni,transformArrayMap:Di,transformArrayMutation:wi,transformDateMutation:qi,transformFunctionMutation:Ni,transformNewDate:$i,typeAliasDeclaration:yi,typeArrayNode:Bi,typeInterfaceNode:Bs,typeIntersectionNode:Mi,typeNode:oe,typeOfExpression:di,typeOperatorNode:oi,typeParameterDeclaration:kr,typeParenthesizedNode:gi,typeRecordNode:Li,typeReferenceNode:Ie,typeTupleNode:Fi,typeUnionNode:wr,valueToExpression:We};var Yl=[le,ei,Zo,Yo,Jo],cn=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");if(tr.lastIndex=0,tr.test(t))return `_${t}`;for(let r of Yl){if(t.startsWith("_"))return t;t=t.replace(r,"_$1");}return t};var Hi=/[\p{Lu}]/u,Hs=/[\p{Ll}]/u,Vi=/([\p{Alpha}\p{N}_]|$)/u,ar=/[_.\- `\\[\]{}\\/]+/,ef=new RegExp(`^${ar.source}`),_s=new RegExp(`${ar.source}${Vi.source}`,"gu"),_i=new RegExp(`\\d+${Vi.source}`,"gu"),tf=({case:e,string:t})=>{let r=false,n=false,s=false,o=false,i=e==="snake_case"||e==="SCREAMING_SNAKE_CASE"?"_":"-";for(let a=0;a<t.length;a++){let c=t[a];o=a>2?t[a-3]===i:true;let m=a+1,l=t[m];for(ar.lastIndex=0;l&&ar.test(l);)m+=1,l=t[m];let f=m!==a+1;if(Hs.lastIndex=0,Hi.lastIndex=0,Hi.test(c)&&(r||l&&!f&&l!=="s"&&Hs.test(l)))t=`${t.slice(0,a)}${i}${t.slice(a)}`,a++,s=n,r=false,n=true;else if(n&&s&&Hs.test(c)&&!o&&!(c==="s"&&(!l||l.toLocaleLowerCase()!==l)))t=`${t.slice(0,a-1)}${i}${t.slice(a-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},v=({case:e,stripLeadingSeparators:t=true,value:r})=>{let n=r.trim();return n.length?!e||e==="preserve"?n:n.length===1?(ar.lastIndex=0,ar.test(n)?"":e==="PascalCase"||e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase()):(n!==n.toLocaleLowerCase()&&(n=tf({case:e,string:n})),(t||n[0]!==r[0])&&(n=n.replace(ef,"")),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(_s,(o,i,a)=>a===0&&!t?o:`_${i}`),n[n.length-1]==="_"&&(n=n.slice(0,n.length-1))):(_s.lastIndex=0,_i.lastIndex=0,n=n.replaceAll(_i,(o,i,a)=>["_","-","."].includes(n.charAt(a+o.length))?o:o.toLocaleUpperCase()),n=n.replaceAll(_s,(o,i,a)=>a===0&&!t&&o[0]&&r.startsWith(o[0])?o:i.toLocaleUpperCase())),n):""};var ue=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:i}){this._exportFromIndex=r,this._id=s,this._identifierCase=o,this._name=this._setName(i),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}=Wi(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 Ks({case:t.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}=Vs(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),i=-1,a="";for(let m of s)if(i+=1,o[i]!==m){let l=Array.from({length:s.length-i}).fill(""),f=o.slice(i),u=f.slice(0,f.length-1);u.length&&u.push(""),a=(l.join("../")||"./")+u.join("/");break}let c=o[o.length-1];return `${a}${Vs(c).name}`}remove(t){Te__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}=Vs(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[i,a]of this._imports.entries()){let c=Array.from(a.values()),m=i;s&&(m.startsWith("./")||m.startsWith("../"))&&(m==="./client"?m="./client/index.js":m=`${m}.js`);let l=p.namedImportDeclarations({imports:c,module:m});o.push(Ke({node:l}));}return o.length&&n.push(o.join(` `)),n=n.concat(this._items.map(i=>typeof i=="string"?i:Ke({node:i,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),Te__default.default.writeFileSync(this._path,this._toString(t,r));}},Wi=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 i=n[o+1];if(!i)throw new Error(`Invalid $ref: ${e}`);r.push(i),o+=2;}return {name:s,properties:r,ref:t}},nf=(e,t,r)=>{if(typeof t=="function")return t(e);let n=r==="preserve"?"":"-";return t.replace("{{name}}",`${n}${e}${n}`)},Ks=({$ref:e,case:t,count:r=1,create:n=false,identifiers:s,nameTransformer:o,namespace:i})=>{let{name:a,properties:c,ref:m}=Wi(e);if(!a)return {created:false,name:""};let l=v({case:t,value:o?nf(a,o,t):a});r>1&&(l=`${l}${r}`);let f=l.toLocaleLowerCase();s[f]||(s[f]={});let u=s[f];if(i==="enum"&&(u.type||u.value)||i!=="enum"&&u.enum)return Ks({$ref:m,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:i});u[i]||(u[i]={});let d=u[i],y=d[m];if(y){let T=y.name;return c.length&&(T+=c.map(O=>`['${O}']`).join("")),{created:false,name:T}}let g=d[l];return g?g.$ref===m?{created:false,name:g.name}:Ks({$ref:m,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:i}):n?(g={$ref:m,name:cn(l)},d[l]=g,d[g.$ref]=g,{created:true,name:g.name}):(delete u[i],{created:false,name:""})},Vs=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 of=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))),Ws=X__default.default.dirname(of),Us=()=>{let e=Ws;for(;e!==X__default.default.dirname(e);){let r=Te__default.default.readdirSync(e).filter(n=>n==="package.json");if(r[0]){let n=X__default.default.join(e,r[0]);return JSON.parse(Te__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(Ws,e);return Te__default.default.existsSync(r)?r:null}let t=Ws;for(;t!==X__default.default.dirname(t);){let n=Te__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 Ui=({files:e})=>{let t=S();e.index=new ue({dir:t.output.path,id:"index",name:"index.ts"}),U(t)&&e.index.add(p.exportNamedDeclaration({exports:U(t),module:`./${U(t)}`})),t.exportCore&&(e.index.add(p.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),t.plugins["@hey-api/sdk"]?.config.response==="response"&&e.index.add(p.exportNamedDeclaration({exports:{asType:true,name:"ApiResult"},module:"./core/ApiResult"})),U(t)&&e.index.add(p.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),I(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 zi=async({client:e,openApi:t,templates:r})=>{let n=S(),s=t;if(e){if(n.plugins["@hey-api/sdk"]?.config.include&&n.plugins["@hey-api/sdk"].config.asClass){let m=new RegExp(n.plugins["@hey-api/sdk"].config.include);e.services=e.services.filter(l=>m.test(l.name));}if(n.plugins["@hey-api/typescript"]?.config.include){let m=new RegExp(n.plugins["@hey-api/typescript"].config.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 i=un(fn(n.output.tsConfigPath)),a=I(n);!F(n)&&"bundle"in a.config&&a.config.bundle&&en({outputPath:o,plugin:a,tsConfig:i}),await Uo(s,o,e,r),await Go(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 ue({dir:u,id:`legacy-unused-${l.name}`,name:`${f[f.length-1]}.ts`}),l.handlerLegacy?.({client:e,files:c,openApi:s,plugin:l});}Ui({files:c}),Object.entries(c).forEach(([m,l])=>{n.dryRun||(m==="index"?l.write(` `,i):l.write(` `,i));});};var Qi=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=I(e.config);"bundle"in s.config&&s.config.bundle&&en({outputPath:t,plugin:s,tsConfig:r});for(let o of e.registerPlugins())await o.run();if(!e.config.dryRun){let o=e.createFile({id:"_index",path:"index"});for(let i of Object.values(e.files))if(i.nameWithoutExtension()!==o.nameWithoutExtension()){if(!i.isEmpty()&&i.exportFromIndex&&e.config.output.indexFile){let c=o.relativePathToFile({context:e,id:i.id});n&&(c.startsWith("./")||c.startsWith("../"))&&(c==="./client"?c="./client/index.js":c=`${c}.js`),o.add(p.exportAllDeclaration({module:c}));}i.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 i of o)t.append(s,i);else o!==void 0&&t.set(s,typeof o=="object"?JSON.stringify(o):o);}return t};var Zi=async({fetchOptions:e,inputPath:t,timeout:r,watch:n})=>{let s=new jsonSchemaRefParser.$RefParser,o=jsonSchemaRefParser.getResolvedInput({pathOrUrlOrSchema:t}),i,a,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(a===void 0){let l=c.headers.get("ETag");l&&(a=l!==n.headers.get("If-None-Match"),a&&n.headers.set("If-None-Match",l));}if(a===void 0){let l=c.headers.get("Last-Modified");l&&(a=l!==n.headers.get("If-Modified-Since"),a&&n.headers.set("If-Modified-Since",l));}if(a===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(i=c.body?await c.arrayBuffer():new ArrayBuffer(0),a===void 0){let l=new TextDecoder().decode(i);a=l!==n.lastValue,n.lastValue=l;}}else n.lastValue?a=false:n.lastValue=o.type;return a===false?{error:"not-modified",response:c}:{data:await s.bundle({arrayBuffer:i,pathOrUrlOrSchema:void 0,resolvedInput:o})}};var bf=process.stdin.isTTY&&process.stdout.isTTY,cr=class extends Error{args;event;pluginName;constructor({args:t,error:r,event:n,name:s,pluginName:o}){let i=r instanceof Error?r.message:"Unknown error";super(i),this.args=t,this.cause=r.cause,this.event=n,this.name=s||r.name,this.pluginName=o,this.stack=r.stack;}},ea=(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 cr&&(o+=`${e.name} during event "${e.event}" `,e.pluginName&&(o+=`Plugin: ${e.pluginName} `),o+=`Arguments: ${JSON.stringify(e.args,null,2)} `);let i=e instanceof Error?e.message:String(e),a=e instanceof Error?e.stack:void 0;return o+=`Error: ${i} `,a&&(o+=`Stack: ${a} `),Te__default.default.writeFileSync(s,o),s},ta=async e=>{let t="";e instanceof cr&&(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}",title:"Crash Report"}),o=Us(),i;if(o&&typeof o=="object"&&"bugs"in o&&o.bugs&&typeof o.bugs=="object"&&"url"in o.bugs&&typeof o.bugs.url=="string"&&(i=o.bugs.url,i&&!i.endsWith("/")&&(i+="/")),i){let a=`${i}new?${s.toString()}`,c=(await import('open')).default;await c(a);}},ra=({error:e,logPath:t})=>{let r=Us(),n;r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"&&(n=r.name),process.stderr.write(` \u{1F6D1} ${Le__default.default.cyan(n||"")} ${Le__default.default.red("encountered an error.")} ${Le__default.default.red("\u2757\uFE0F Error:")} ${Le__default.default.white(typeof e=="string"?e:e instanceof Error?e.message:"Unknown error")}`+(t?` ${Le__default.default.cyan("\u{1F4C4} Crash log saved to:")} ${Le__default.default.gray(t)}`:""));},na=async()