@hey-api/openapi-ts
Version:
🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.
33 lines (28 loc) • 297 kB
JavaScript
import {createRequire}from'module';import {$RefParser,getResolvedInput,sendRequest}from'@hey-api/json-schema-ref-parser';import At from'node:fs';import Q from'node:path';import yt from'ansi-colors';import {fileURLToPath}from'node:url';import x from'typescript';import {EOL}from'os';import {loadConfig}from'c12';const require = createRequire(import.meta.url);
var Zp=Object.create;var pi=Object.defineProperty;var Yp=Object.getOwnPropertyDescriptor;var ec=Object.getOwnPropertyNames;var tc=Object.getPrototypeOf,rc=Object.prototype.hasOwnProperty;var ci=(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 Mu=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var nc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ec(t))!rc.call(e,s)&&s!==r&&pi(e,s,{get:()=>t[s],enumerable:!(n=Yp(t,s))||n.enumerable});return e};var Fu=(e,t,r)=>(r=e!=null?Zp(tc(e)):{},nc(t||!e||!e.__esModule?pi(r,"default",{value:e,enumerable:true}):r,e));var _r=(...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 dd=async({fetchOptions:e,inputPath:t,timeout:r,watch:n})=>{let s=new $RefParser,o=getResolvedInput({pathOrUrlOrSchema:t}),a,p,c;if(o.type==="url"){if(n.lastValue&&n.isHeadMethodSupported!==false){try{let m=await sendRequest({fetchOptions:{method:"HEAD",...e,headers:_r(e?.headers,n.headers)},timeout:r,url:o.path});if(m.response.status>=300)return {error:"not-ok",response:m.response};c=m.response;}catch(m){return {error:"not-ok",response:new Response(m.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(p===void 0){let m=c.headers.get("ETag");m&&(p=m!==n.headers.get("If-None-Match"),p&&n.headers.set("If-None-Match",m));}if(p===void 0){let m=c.headers.get("Last-Modified");m&&(p=m!==n.headers.get("If-Modified-Since"),p&&n.headers.set("If-Modified-Since",m));}if(p===false)return {error:"not-modified",response:c}}try{let m=await sendRequest({fetchOptions:{method:"GET",...e},timeout:r,url:o.path});if(m.response.status>=300)return {error:"not-ok",response:m.response};c=m.response;}catch(m){return {error:"not-ok",response:new Response(m.message)}}if(!c.ok)return {error:"not-ok",response:c};if(a=c.body?await c.arrayBuffer():new ArrayBuffer(0),p===void 0){let m=new TextDecoder().decode(a);p=m!==n.lastValue,n.lastValue=m;}}else n.lastValue?p=false:n.lastValue=o.type;return p===false?{error:"not-modified",response:c}:{data:await s.bundle({arrayBuffer:a,pathOrUrlOrSchema:void 0,resolvedInput:o})}};var dc=fileURLToPath(import.meta.url),gs=Q.dirname(dc),xs=()=>{let e=gs;for(;e!==Q.dirname(e);){let r=At.readdirSync(e).filter(n=>n==="package.json");if(r[0]){let n=Q.join(e,r[0]);return JSON.parse(At.readFileSync(n,{encoding:"utf8"}))}e=Q.dirname(e);}},Od=e=>{if(e==="off")return null;if(e){let r=Q.isAbsolute(e)?e:Q.resolve(gs,e);return At.existsSync(r)?r:null}let t=gs;for(;t!==Q.dirname(t);){let n=At.readdirSync(t).filter(s=>s.startsWith("tsconfig")&&s.endsWith(".json")).sort(s=>s==="tsconfig.json"?-1:1);if(n[0])return Q.join(t,n[0]);t=Q.dirname(t);}return null},Sd=e=>{if(!e)return null;let t=x.readConfigFile(e,x.sys.readFile);if(t.error)throw new Error(`Couldn't read tsconfig from path: ${e}`);return x.parseJsonConfigFileContent(t.config,x.sys,Q.dirname(e))};var rt=e=>{At.existsSync(e)||At.mkdirSync(e,{recursive:true});},Id=e=>{At.existsSync(e)&&At.rmSync(e,{force:true,recursive:true});},Ht=({moduleOutput:e,sourceOutput:t})=>{let r=t.split("/");return `${Array.from({length:r.length}).fill("").join("../")||"./"}${e}`};var hc=process.stdin.isTTY&&process.stdout.isTTY,Qt=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;}},Nd=(e,t)=>{let r=`openapi-ts-error-${Date.now()}.log`,n=Q.resolve(process.cwd(),t);rt(n);let s=Q.resolve(n,r),o=`[${new Date().toISOString()}] `;e instanceof Qt&&(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),p=e instanceof Error?e.stack:void 0;return o+=`Error: ${a}
`,p&&(o+=`Stack:
${p}
`),At.writeFileSync(s,o),s},vd=async e=>{let t="";e instanceof Qt&&(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=xs(),a;if(o&&typeof o=="object"&&"bugs"in o&&o.bugs&&typeof o.bugs=="object"&&"url"in o.bugs&&typeof o.bugs.url=="string"&&(a=o.bugs.url,a&&!a.endsWith("/")&&(a+="/")),a){let p=`${a}new?${s.toString()}`,c=(await import('open')).default;await c(p);}},qd=({error:e,logPath:t})=>{let r=xs(),n;r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"&&(n=r.name),process.stderr.write(`
\u{1F6D1} ${yt.cyan(n||"")} ${yt.red("encountered an error.")}
${yt.red("\u2757\uFE0F Error:")} ${yt.white(typeof e=="string"?e:e instanceof Error?e.message:"Unknown error")}`+(t?`
${yt.cyan("\u{1F4C4} Crash log saved to:")} ${yt.gray(t)}`:""));},$d=async()=>hc?new Promise(e=>{process.stdout.write(`${yt.yellow(`
\u{1F4E2} Open a GitHub issue with crash details?`)} ${yt.yellow("(y/N):")}`),process.stdin.setEncoding("utf8"),process.stdin.once("data",t=>{e(t.trim().toLowerCase()==="y");});}):false;var di=["after","before","cursor","offset","page","start"];function me({keywords:e=di}={}){e.length||(e=di);let t=`^(${e.join("|")})$`;return new RegExp(t)}var zt=/^[^$_\p{ID_Start}]+/u,he=/^-?\d+(\.\d+)?$/,yi=/^(document|history|location|navigator|window)$/g,hi=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,oe=/^(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,gi=/^(global|process|Buffer)$/g,xi=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,Pe=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var ge=e=>(e||e==="")&&(Pe.lastIndex=0,!Pe.test(e))?`'${e}'`:e,Ut=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)=>EOL+r.trim());var ve="client",fe=e=>{let t=E(e);return t.name==="@hey-api/client-axios"||t.name==="@hey-api/client-nuxt"?"baseURL":"baseUrl"},E=e=>{for(let t of e.pluginOrder){let r=e.plugins[t];if(r?.tags?.includes("client"))return r}return {config:{name:""},name:""}};var bi,S=()=>{let e=bi,t=E(e);return e.client=t,e},Oi=e=>(bi=e,S()),K=e=>E(e).name.startsWith("legacy/"),kt=e=>{if(K(e))return e.name};var xc=x.createPrinter({newLine:x.NewLineKind.LineFeed,removeComments:false}),Si=e=>x.createSourceFile("",e,x.ScriptTarget.ESNext,false,x.ScriptKind.TS),bc=Si(""),Oc=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function qe({node:e,unescape:t=false}){let r=xc.printNode(x.EmitHint.Unspecified,e,bc);if(!t)return r;try{return Oc(r)}catch{return S().logs.level==="debug"&&console.warn("Could not decode value:",r),r}}function Ti(e){return Si(e).statements[0]}var R=({text:e})=>x.factory.createIdentifier(e),Ri=()=>x.factory.createThis(),z=({keyword:e})=>{let t=bs({keyword:e});return x.factory.createModifier(t)},Ii=({initializer:e,modifier:t,name:r,type:n})=>x.factory.createPropertyDeclaration(t?[z({keyword:t})]:void 0,r,void 0,n,e),le={boolean:e=>e?x.factory.createTrue():x.factory.createFalse(),export:({alias:e,asType:t=false,name:r})=>{let n=R({text:r});if(e){let s=R({text:e});return x.factory.createExportSpecifier(t,n,s)}return x.factory.createExportSpecifier(t,void 0,n)},import:({alias:e,asType:t=false,name:r})=>{let n=R({text:r});if(e){let s=R({text:e});return x.factory.createImportSpecifier(t,n,s)}return x.factory.createImportSpecifier(t,void 0,n)},number:e=>e<0?x.factory.createPrefixUnaryExpression(x.SyntaxKind.MinusToken,x.factory.createNumericLiteral(Math.abs(e))):x.factory.createNumericLiteral(e),string:(e,t=false)=>{let r=e;t&&(r=Ut(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("`")?R({text:r}):vt({text:r})}},Nt=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",ht=e=>e!==void 0,Sc=({commentObject:e,node:t})=>{let r=e.lines.filter(a=>!!a||a==="");if(!r.length)return;if(!e.jsdoc){for(let a of r)x.addSyntheticLeadingComment(t,x.SyntaxKind.SingleLineCommentTrivia,` ${a}`,true);return}let n=r.map((a,p)=>{let c=a;return p!==r.length&&(c=`${c}
`),x.factory.createJSDocText(c)}),s=x.factory.createJSDocComment(x.factory.createNodeArray(n),void 0),o=qe({node:s,unescape:true}).replace("/*","").replace("* */","");x.addSyntheticLeadingComment(t,x.SyntaxKind.MultiLineCommentTrivia,o,true);},ee=({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)Sc({commentObject:s,node:t});};var te=(e,t)=>x.isTypeNode(e)?e:typeof e=="number"?x.factory.createLiteralTypeNode(le.number(e)):xe({typeArguments:t?.map(r=>te(r)),typeName:e}),Os=({expression:e,name:t})=>x.factory.createPropertyAccessChain(e,x.factory.createToken(x.SyntaxKind.QuestionDotToken),t),we=({expression:e,isOptional:t,name:r})=>{let n=typeof e=="string"?R({text:e}):e;if(t&&typeof r!="number")return Os({expression:n,name:r});if(typeof r=="string"){if(Pe.lastIndex=0,!Pe.test(r)){!r.startsWith("'")&&!r.endsWith("'")&&(r=`'${r}'`);let o=R({text:r});return x.factory.createElementAccessExpression(n,o)}let s=R({text:r});return x.factory.createPropertyAccessExpression(n,s)}if(typeof r=="number"){let s=x.factory.createNumericLiteral(r);return x.factory.createElementAccessExpression(n,s)}return x.factory.createPropertyAccessExpression(n,r)},Ss=()=>x.factory.createNull(),$e=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:n,value:s})=>{if(s===null)return Ss();if(Array.isArray(s))return Ts({elements:s});if(typeof s=="object")return Ur({identifiers:e,obj:s,shorthand:r});if(typeof s=="number")return le.number(s);if(typeof s=="boolean")return le.boolean(s);if(typeof s=="string"){if(t){let o=s.split(".");return we({expression:o[0],name:o[1]})}return le.string(s,n)}},gr=e=>e.map(t=>{if("destructure"in t)return Xt({name:x.factory.createObjectBindingPattern(t.destructure.map(n=>"destructure"in n?void 0:x.factory.createBindingElement(void 0,void 0,R({text:n.name}),void 0)).filter(Boolean)),type:t.type!==void 0?te(t.type):void 0});let r=t.accessLevel?[z({keyword:t.accessLevel})]:[];return t.isReadOnly&&r.push(z({keyword:"readonly"})),Xt({initializer:t.default!==void 0?$e({value:t.default}):void 0,modifiers:r,name:R({text:t.name}),required:t.isRequired!==false,type:t.type!==void 0?te(t.type):void 0})}),bs=({keyword:e})=>{switch(e){case "any":return x.SyntaxKind.AnyKeyword;case "async":return x.SyntaxKind.AsyncKeyword;case "boolean":return x.SyntaxKind.BooleanKeyword;case "export":return x.SyntaxKind.ExportKeyword;case "never":return x.SyntaxKind.NeverKeyword;case "number":return x.SyntaxKind.NumberKeyword;case "private":return x.SyntaxKind.PrivateKeyword;case "protected":return x.SyntaxKind.ProtectedKeyword;case "public":return x.SyntaxKind.PublicKeyword;case "readonly":return x.SyntaxKind.ReadonlyKeyword;case "static":return x.SyntaxKind.StaticKeyword;case "string":return x.SyntaxKind.StringKeyword;case "undefined":return x.SyntaxKind.UndefinedKeyword;case "unknown":return x.SyntaxKind.UnknownKeyword;case "void":return x.SyntaxKind.VoidKeyword;default:throw new Error(`unsupported syntax kind keyword "${e}"`)}},qt=({keyword:e})=>{let t=bs({keyword:e});return x.factory.createKeywordTypeNode(t)},xr=e=>e.map(t=>x.isTypeParameterDeclaration(t)?t:br({constraint:t.extends?typeof t.extends=="string"?qt({keyword:"boolean"}):t.extends:void 0,defaultType:t.default!==void 0?Nt(t.default)?t.default:x.factory.createLiteralTypeNode(t.default?x.factory.createTrue():x.factory.createFalse()):void 0,name:t.name})),Ai=({operator:e,type:t})=>{let r=e==="keyof"?x.SyntaxKind.KeyOfKeyword:e==="readonly"?x.SyntaxKind.ReadonlyKeyword:x.SyntaxKind.UniqueKeyword;return x.factory.createTypeOperatorNode(r,t)},br=({constraint:e,defaultType:t,modifiers:r,name:n})=>x.factory.createTypeParameterDeclaration(r,n,e,t),Qr=({members:e,nameType:t,questionToken:r,readonlyToken:n,type:s,typeParameter:o})=>x.factory.createMappedTypeNode(n,o,t,r,s,e),Pi=({literal:e})=>x.factory.createLiteralTypeNode(e),zr=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:a=[]})=>{let p=x.factory.createArrowFunction(e?[z({keyword:"async"})]:void 0,a?xr(a):void 0,gr(n),s?te(s):void 0,void 0,Array.isArray(o)?be({multiLine:r,statements:o}):o);return ee({comments:t,node:p}),p},ji=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:s,statements:o=[],types:a=[]})=>{let p=x.factory.createFunctionExpression(e?[z({keyword:"async"})]:void 0,void 0,void 0,a?xr(a):void 0,gr(n),s?te(s):void 0,be({multiLine:r,statements:o}));return ee({comments:t,node:p}),p},Ts=({elements:e,multiLine:t=false})=>x.factory.createArrayLiteralExpression(e.map(n=>Nt(n)?n:$e({value:n})).filter(ht),t||!Array.isArray(e[0])&&typeof e[0]=="object"),Ci=({expression:e})=>x.factory.createAwaitExpression(e),Ei=({parameters:e=[],returnType:t,typeParameters:r})=>x.factory.createFunctionTypeNode(r,e,t),Ur=({comments:e,identifiers:t=[],multiLine:r=true,obj:n,shorthand:s,unescape:o=false})=>{let a=Array.isArray(n)?n.map(c=>{let f=false;if("key"in c){let{key:l}=c;f=l===c.value,(l.match(/^[0-9]/)&&l.match(/\D+/g)||l.match(/\W/g)||l==="")&&!l.startsWith("'")&&!l.endsWith("'")&&(c.key=`'${l}'`);}let m;if("spread"in c){let l=Nt(c.spread)?c.spread:R({text:c.spread});m=x.factory.createSpreadAssignment(c.assertion?Sr({expression:l,type:typeof c.assertion=="string"?qt({keyword:c.assertion}):c.assertion}):l);}else if(c.shorthand||s&&f)m=x.factory.createShorthandPropertyAssignment(c.value);else {let l=Nt(c.value)?c.value:Array.isArray(c.value)&&(!c.value.length||typeof c.value[0]=="object")?Ur({multiLine:r,obj:c.value,shorthand:s,unescape:o}):$e({identifiers:t.includes(c.key)?Object.keys(c.value):[],isValueAccess:c.isValueAccess,shorthand:s,unescape:o,value:c.value});if(!l)return;t.includes(c.key)&&!x.isObjectLiteralExpression(l)&&(l=R({text:c.value})),m=Hr({initializer:l,name:c.key});}return ee({comments:c.comments,node:m}),m}).filter(ht):Object.entries(n).map(([c,f])=>{let m=$e({identifiers:t.includes(c)?Object.keys(f):[],shorthand:s,unescape:o,value:f});if(!m)return;t.includes(c)&&!x.isObjectLiteralExpression(m)&&(m=R({text:f}));let l=c===f;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&&l?x.factory.createShorthandPropertyAssignment(f):Hr({initializer:m,name:c})}).filter(ht),p=x.factory.createObjectLiteralExpression(a,r);return ee({comments:e,node:p}),p},ki=({comments:e={},leadingComment:t,name:r,obj:n})=>{let s=Array.isArray(n)?n.map(a=>{let p=Rc({initializer:$e({value:a.value}),name:a.key});return ee({comments:a.comments,node:p}),p}):Object.entries(n).map(([a,p])=>{let c=x.factory.createEnumMember(a,$e({unescape:true,value:p}));return ee({comments:e[a],node:c}),c}),o=x.factory.createEnumDeclaration([z({keyword:"export"})],R({text:r}),s);return ee({comments:t,node:o}),o},Rc=({initializer:e,name:t})=>{let r=t;return typeof r=="string"&&(r.includes("'")?r=vt({isSingleQuote:false,text:r}):r=ge(r)),x.factory.createEnumMember(r,e)},Ni=({name:e,statements:t})=>x.factory.createModuleDeclaration([z({keyword:"export"})],R({text:e}),x.factory.createModuleBlock(t),x.NodeFlags.Namespace),vi=({indexType:e,objectType:t})=>x.factory.createIndexedAccessTypeNode(t,e),vt=({isSingleQuote:e,text:t})=>(e===void 0&&(e=!t.includes("'")),x.factory.createStringLiteral(t,e)),qi=({condition:e,whenFalse:t,whenTrue:r})=>x.factory.createConditionalExpression(e,x.factory.createToken(x.SyntaxKind.QuestionToken),r,x.factory.createToken(x.SyntaxKind.ColonToken),t),$i=({text:e})=>x.factory.createTypeOfExpression(R({text:e})),wi=({comment:e,exportType:t,name:r,type:n,typeParameters:s=[]})=>{let o=x.factory.createTypeAliasDeclaration(t?[z({keyword:"export"})]:void 0,R({text:r}),xr(s),te(n));return ee({comments:e,node:o}),o},xe=({typeArguments:e,typeName:t})=>x.factory.createTypeReferenceNode(t,e),Mi=({type:e})=>x.factory.createParenthesizedType(e),Xt=({initializer:e,modifiers:t,name:r,required:n=true,type:s})=>x.factory.createParameterDeclaration(t,void 0,r,n?void 0:x.factory.createToken(x.SyntaxKind.QuestionToken),s,e),Or=({argumentsArray:e,expression:t,typeArguments:r})=>x.factory.createNewExpression(t,r,e),Fi=({awaitModifier:e,expression:t,initializer:r,statement:n})=>x.factory.createForOfStatement(e,r,t,n),Li=({left:e,right:t})=>x.factory.createAssignment(e,t),be=({multiLine:e=true,statements:t})=>x.factory.createBlock(t,e),Hr=({initializer:e,name:t})=>x.factory.createPropertyAssignment(t,e),Di=({flags:e=[],text:t})=>{let r=t.startsWith("/")&&t.endsWith("/")?t:`/${t}/`;return x.factory.createRegularExpressionLiteral(`${r}${e.join("")}`)},Sr=({expression:e,type:t})=>x.factory.createAsExpression(e,t),Vi=({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?x.factory.createTemplateMiddle(r):x.factory.createTemplateTail(r),a=x.factory.createTemplateLiteralTypeSpan(s,o);t.push(a),r="";}return x.factory.createTemplateLiteralType(x.factory.createTemplateHead(r),t.reverse())};var _i=({module:e})=>x.factory.createExportDeclaration(void 0,false,void 0,le.string(e)),Me=({functionName:e,parameters:t=[],types:r})=>{let n=typeof e=="string"?R({text:e}):e,s=t.filter(a=>a!==void 0).map(a=>typeof a=="string"?R({text:a}):a);return x.factory.createCallExpression(n,r,s)},Bi=({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 f=typeof c=="string"?{name:c}:c;return le.export({alias:f.alias,asType:n&&f.asType,name:f.name})}),o=x.factory.createNamedExports(s),a=le.string(t);return x.factory.createExportDeclaration(void 0,!n,o,a)},Ki=({assertion:e,comment:t,destructure:r,exportConst:n,expression:s,name:o,typeName:a})=>{let p=e?Sr({expression:s,type:typeof e=="string"?xe({typeName:e}):e}):s,c=R({text:o}),f=x.factory.createVariableDeclaration(r?x.factory.createObjectBindingPattern([x.factory.createBindingElement(void 0,void 0,c,void 0)]):c,void 0,a?typeof a=="string"?xe({typeName:a}):a:void 0,p),m=x.factory.createVariableStatement(n?[z({keyword:"export"})]:void 0,x.factory.createVariableDeclarationList([f],x.NodeFlags.Const));return ee({comments:t,node:m}),m},Wi=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(m=>typeof m!="object"||!m.asType),s,o=[];r.forEach(m=>{let l=typeof m=="string"?{name:m}:m;l.name==="*"&&l.alias?s=l:o.push(le.import({alias:l.alias,asType:n&&l.asType,name:l.name}));});let a=s?x.factory.createNamespaceImport(R({text:s.alias})):x.factory.createNamedImports(o),p=x.factory.createImportClause(!n,void 0,a),c=le.string(t);return x.factory.createImportDeclaration(void 0,p,c)};var Hi=({accessLevel:e,comment:t,multiLine:r=true,parameters:n=[],statements:s=[]})=>{let o=e?[z({keyword:e})]:void 0,a=x.factory.createConstructorDeclaration(o,gr(n),be({multiLine:r,statements:s}));return ee({comments:t,node:a}),a},Qi=({accessLevel:e,comment:t,isStatic:r=false,multiLine:n=true,name:s,parameters:o=[],returnType:a,statements:p=[],types:c=[]})=>{let f=e?[z({keyword:e})]:[];r&&f.push(z({keyword:"static"}));let m=x.factory.createMethodDeclaration(f,void 0,R({text:s}),void 0,c?xr(c):void 0,gr(o),a?te(a):void 0,be({multiLine:n,statements:p}));return ee({comments:t,node:m}),m},zi=({decorator:e,exportClass:t,extendedClasses:r,name:n,nodes:s})=>{let o=[];t&&o.push(z({keyword:"export"})),e&&o.unshift(x.factory.createDecorator(Me({functionName:e.name,parameters:e.args.map(p=>$e({value:p})).filter(ht)})));let a=[];if(r)for(let p of r)a.push(x.factory.createHeritageClause(x.SyntaxKind.ExtendsKeyword,[x.factory.createExpressionWithTypeArguments(R({text:p}),void 0)]));return x.factory.createClassDeclaration(o,R({text:n}),void 0,a,s)};var wt=({expression:e})=>x.factory.createExpressionStatement(e);var Xr=({expression:e})=>x.factory.createReturnStatement(e),Xi=({args:e=[],name:t,types:r=[]})=>{let n=r.map(p=>xe({typeName:p})),s=e.map(p=>x.isExpression(p)?p:R({text:p})).filter(ht),o=Me({functionName:t,parameters:s,types:n});return Xr({expression:o})},Gi=({expression:e})=>Xr({expression:typeof e=="string"?R({text:e}):e});var Gt=e=>e.slice(1).reduce((t,r)=>(Pe.lastIndex=0,Pe.test(r)?Os({expression:t,name:r}):x.factory.createElementAccessChain(t,x.factory.createToken(x.SyntaxKind.QuestionDotToken),R({text:r}))),R({text:e[0]})),Gr=e=>e.slice(1).reduce((t,r)=>we({expression:t,name:r}),R({text:e[0]})),Ji=({expressions:e})=>e.reduce((r,n)=>we({expression:r,name:n})),Jr=({left:e,operator:t="=",right:r})=>x.factory.createBinaryExpression(e,t==="="?x.SyntaxKind.EqualsToken:t==="==="?x.SyntaxKind.EqualsEqualsEqualsToken:t==="??"?x.SyntaxKind.QuestionQuestionToken:x.SyntaxKind.InKeyword,typeof r=="string"?R({text:r}):r),Jt=({elseStatement:e,expression:t,thenStatement:r})=>x.factory.createIfStatement(t,r,e),Zi=({path:e})=>{let t=Gt(e),r=Gr(e),n=be({statements:[wt({expression:Jr({left:r,right:Or({argumentsArray:[r],expression:R({text:"Date"})})})})]});return Jt({expression:t,thenStatement:n})},Yi=({path:e,transformerName:t})=>{let r=Gt(e),n=Gr(e),s=be({statements:[wt({expression:Me({functionName:t,parameters:[n]})})]});return [Jt({expression:r,thenStatement:s})]},eo=({path:e,transformerName:t})=>{let r=Gt(e),n=Gr(e);return Jt({expression:Me({functionName:we({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:be({statements:[wt({expression:x.factory.createCallChain(we({expression:n,name:"forEach"}),void 0,void 0,[R({text:t})])})]})})},to=({parameterName:e})=>{let t=R({text:"Date"});return Or({argumentsArray:[R({text:e})],expression:t})},ro=({path:e,transformExpression:t})=>{let r=Gt(e),n=Gr(e);return Jt({expression:Me({functionName:we({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:be({statements:[wt({expression:Jr({left:n,right:x.factory.createCallChain(we({expression:n,name:"map"}),void 0,void 0,[zr({parameters:[{name:"item"}],statements:t})])})})]})})};var Nc=xe({typeName:"null"}),Zt=({isNullable:e,node:t})=>e?x.factory.createUnionTypeNode([t,Nc]):t,Rs=({indexKey:e,indexProperty:t,isNullable:r,properties:n,useLegacyResolution:s})=>{let a=n.map(f=>{let m=f.isReadOnly?[z({keyword:"readonly"})]:void 0,l=f.isRequired!==false?void 0:x.factory.createToken(x.SyntaxKind.QuestionToken),u=te(f.type);let d=x.factory.createPropertySignature(m,s||typeof f.name=="string"&&f.name.match(Pe)||typeof f.name!="string"&&x.isPropertyName(f.name)?f.name:vt({text:f.name}),l,u);return ee({comments:f.comment,node:d}),d}),p=false;if(t)if(!n.length&&e){let f=Qr({questionToken:x.factory.createToken(x.SyntaxKind.QuestionToken),type:qt({keyword:"string"}),typeParameter:br({constraint:xe({typeName:e}),name:R({text:String(t.name)})})});a.push(f),p=true;}else {let f=t.isReadOnly?[z({keyword:"readonly"})]:void 0,m=x.factory.createIndexSignature(f,[Xt({name:R({text:String(t.name)}),type:qt({keyword:"string"})})],te(t.type));a.push(m);}let c=p?a[0]:x.factory.createTypeLiteralNode(a);return Zt({isNullable:r,node:c})},Tr=({isNullable:e,types:t})=>{let r=t.map(s=>te(s)),n=x.factory.createUnionTypeNode(r);return Zt({isNullable:e,node:n})},no=({isNullable:e,types:t})=>{let r=t.map(s=>te(s)),n=x.factory.createIntersectionTypeNode(r);return Zt({isNullable:e,node:n})},so=({isNullable:e=false,types:t})=>{let r=t.map(s=>te(s)),n=x.factory.createTupleTypeNode(r);return Zt({isNullable:e,node:n})},io=(e,t,r=false,n=true)=>{let s=Tr({types:e}),o=Tr({types:t}),a=Rs({properties:[{name:`[key: ${qe({node:s,unescape:true})}]`,type:o}],useLegacyResolution:n});return Zt({isNullable:r,node:a})},oo=(e,t=false)=>{let r=xe({typeArguments:[Array.isArray(e)?Tr({types:e}):e],typeName:"Array"});return Zt({isNullable:t,node:r})};var i={anonymousFunction:ji,arrayLiteralExpression:Ts,arrowFunction:zr,asExpression:Sr,assignment:Li,awaitExpression:Ci,binaryExpression:Jr,block:be,callExpression:Me,classDeclaration:zi,conditionalExpression:qi,constVariable:Ki,constructorDeclaration:Hi,enumDeclaration:ki,exportAllDeclaration:_i,exportNamedDeclaration:Bi,expressionToStatement:wt,forOfStatement:Fi,functionTypeNode:Ei,identifier:R,ifStatement:Jt,indexedAccessTypeNode:vi,isTsNode:Nt,keywordTypeNode:qt,literalTypeNode:Pi,mappedTypeNode:Qr,methodDeclaration:Qi,namedImportDeclarations:Wi,namespaceDeclaration:Ni,newExpression:Or,nodeToString:qe,null:Ss,objectExpression:Ur,ots:le,parameterDeclaration:Xt,propertyAccessExpression:we,propertyAccessExpressions:Ji,propertyAssignment:Hr,propertyDeclaration:Ii,regularExpressionLiteral:Di,returnFunctionCall:Xi,returnStatement:Xr,returnVariable:Gi,safeAccessExpression:Gt,stringLiteral:vt,stringToTsNodes:Ti,templateLiteralType:Vi,this:Ri,transformArrayMap:ro,transformArrayMutation:eo,transformDateMutation:Zi,transformFunctionMutation:Yi,transformNewDate:to,typeAliasDeclaration:wi,typeArrayNode:oo,typeInterfaceNode:Rs,typeIntersectionNode:no,typeNode:te,typeOfExpression:$i,typeOperatorNode:Ai,typeParameterDeclaration:br,typeParenthesizedNode:Mi,typeRecordNode:io,typeReferenceNode:xe,typeTupleNode:so,typeUnionNode:Tr,valueToExpression:$e};var qc=[oe,xi,hi,gi,yi],Zr=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");if(zt.lastIndex=0,zt.test(t))return `_${t}`;for(let r of qc){if(t.startsWith("_"))return t;t=t.replace(r,"_$1");}return t};var ao=/[\p{Lu}]/u,Is=/[\p{Ll}]/u,co=/([\p{Alpha}\p{N}_]|$)/u,Yt=/[_.\- `\\[\]{}\\/]+/,$c=new RegExp(`^${Yt.source}`),As=new RegExp(`${Yt.source}${co.source}`,"gu"),po=new RegExp(`\\d+${co.source}`,"gu"),wc=({case:e,string:t})=>{let r=false,n=false,s=false,o=false,a=e==="snake_case"||e==="SCREAMING_SNAKE_CASE"?"_":"-";for(let p=0;p<t.length;p++){let c=t[p];o=p>2?t[p-3]===a:true;let f=p+1,m=t[f];for(Yt.lastIndex=0;m&&Yt.test(m);)f+=1,m=t[f];let l=f!==p+1;if(Is.lastIndex=0,ao.lastIndex=0,ao.test(c)&&(r||m&&!l&&m!=="s"&&Is.test(m)))t=`${t.slice(0,p)}${a}${t.slice(p)}`,p++,s=n,r=false,n=true;else if(n&&s&&Is.test(c)&&!o&&!(c==="s"&&(!m||m.toLocaleLowerCase()!==m)))t=`${t.slice(0,p-1)}${a}${t.slice(p-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},j=({case:e,stripLeadingSeparators:t=true,value:r})=>{let n=r.trim();return n.length?!e||e==="preserve"?n:n.length===1?(Yt.lastIndex=0,Yt.test(n)?"":e==="PascalCase"||e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase()):(n!==n.toLocaleLowerCase()&&(n=wc({case:e,string:n})),(t||n[0]!==r[0])&&(n=n.replace($c,"")),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(As,(o,a,p)=>p===0&&!t?o:`_${a}`),n[n.length-1]==="_"&&(n=n.slice(0,n.length-1))):(As.lastIndex=0,po.lastIndex=0,n=n.replaceAll(po,(o,a,p)=>["_","-","."].includes(n.charAt(p+o.length))?o:o.toLocaleUpperCase()),n=n.replaceAll(As,(o,a,p)=>p===0&&!t&&o[0]&&r.startsWith(o[0])?o:a.toLocaleUpperCase())),n):""};var Fe=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=Q.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}=fo(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 js({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}=Ps(this._name);return t}relativePathToFile({context:t,id:r}){let n="";if(r.startsWith(".")){let f=[];if(t.config.configFile){let m=t.config.configFile.split("/");f=m.slice(0,m.length-1);}n=Q.resolve(process.cwd(),...f,r);}else {let f=t.file({id:r});if(!f)throw new Error(`File with id ${r} does not exist`);n=f._path;}let s=this._path.split(Q.sep),o=n.split(Q.sep),a=-1,p="";for(let f of s)if(a+=1,o[a]!==f){let m=Array.from({length:s.length-a}).fill(""),l=o.slice(a),u=l.slice(0,l.length-1);u.length&&u.push(""),p=(m.join("../")||"./")+u.join("/");break}let c=o[o.length-1];return `${p}${Ps(c).name}`}remove(t){At.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}=Ps(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===x.ModuleResolutionKind.NodeNext,o=[];for(let[a,p]of this._imports.entries()){let c=Array.from(p.values()),f=a;s&&(f.startsWith("./")||f.startsWith("../"))&&(f==="./client"?f="./client/index.js":f=`${f}.js`);let m=i.namedImportDeclarations({imports:c,module:f});o.push(qe({node:m}));}return o.length&&n.push(o.join(`
`)),n=n.concat(this._items.map(a=>typeof a=="string"?a:qe({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(Q.sep);n=s.slice(0,s.length-1).join(Q.sep);}rt(n),At.writeFileSync(this._path,this._toString(t,r));}},fo=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}},Fc=(e,t,r)=>{if(typeof t=="function")return t(e);let n=r==="preserve"?"":"-";return t.replace("{{name}}",`${n}${e}${n}`)},js=({$ref:e,case:t,count:r=1,create:n=false,identifiers:s,nameTransformer:o,namespace:a})=>{let{name:p,properties:c,ref:f}=fo(e);if(!p)return {created:false,name:""};let m=j({case:t,value:o?Fc(p,o,t):p});r>1&&(m=`${m}${r}`);let l=m.toLocaleLowerCase();s[l]||(s[l]={});let u=s[l];if(a==="enum"&&(u.type||u.value)||a!=="enum"&&u.enum)return js({$ref:f,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:a});u[a]||(u[a]={});let d=u[a],y=d[f];if(y){let I=y.name;return c.length&&(I+=c.map(b=>`['${b}']`).join("")),{created:false,name:I}}let h=d[m];return h?h.$ref===f?{created:false,name:h.name}:js({$ref:f,case:t,count:r+1,create:n,identifiers:s,nameTransformer:o,namespace:a}):n?(h={$ref:f,name:Zr(m)},d[m]=h,d[h.$ref]=h,{created:true,name:h.name}):(delete u[a],{created:false,name:""})},Ps=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 Yr=class{api;config;context;dependencies=[];handler;name;output;constructor(t){this.api=t.api??{},this.config=t.config,this.context=t.context,this.dependencies=t.dependencies,this.handler=t.handler,this.name=t.name,this.output=t.output;}createFile(t){return this.context.createFile({exportFromIndex:this.config.exportFromIndex,...t})}forEach(...t){let r=t.slice(0,-1),n=t[t.length-1],s=new Set(r.length?r:["operation","parameter","requestBody","schema","server"]);if(s.has("server")&&this.context.ir.servers)for(let o of this.context.ir.servers){let a={server:o,type:"server"};try{n(a);}catch(p){this.forEachError(p,a);}}if(s.has("schema")&&this.context.ir.components?.schemas)for(let o in this.context.ir.components.schemas){let a={$ref:`#/components/schemas/${o}`,name:o,schema:this.context.ir.components.schemas[o],type:"schema"};try{n(a);}catch(p){this.forEachError(p,a);}}if(s.has("parameter")&&this.context.ir.components?.parameters)for(let o in this.context.ir.components.parameters){let a={$ref:`#/components/parameters/${o}`,name:o,parameter:this.context.ir.components.parameters[o],type:"parameter"};try{n(a);}catch(p){this.forEachError(p,a);}}if(s.has("requestBody")&&this.context.ir.components?.requestBodies)for(let o in this.context.ir.components.requestBodies){let a={$ref:`#/components/requestBodies/${o}`,name:o,requestBody:this.context.ir.components.requestBodies[o],type:"requestBody"};try{n(a);}catch(p){this.forEachError(p,a);}}if(s.has("operation")&&this.context.ir.paths)for(let o in this.context.ir.paths){let a=this.context.ir.paths[o];for(let p in a){let c=p,f={method:c,operation:a[c],path:o,type:"operation"};try{n(f);}catch(m){this.forEachError(m,f);}}}}forEachError(t,r){let n=t instanceof Error?t:new Error(String(t));throw new Qt({args:[r],error:n,event:r.type,name:"Error",pluginName:this.name})}getPlugin(t){return this.context.plugins[t]}async run(){await this.handler({plugin:this});}};var tr="#/ir/",en=e=>{let t=Cs(e);return t.length===3&&t[0]==="components"},G=e=>{let t=Cs(e),r=t[t.length-1];return decodeURI(r)},Cs=e=>e.replace(/^#\//,"").split("/"),Es=({$ref:e,spec:t})=>{let r=Cs(decodeURI(e)),n=t;for(let s of r){let o=s;if(n[o]===void 0)throw new Error(`Reference not found: ${e}`);n=n[o];}return n};var tn=class{config;files={};ir={};plugins={};spec;constructor({config:t,spec:r}){this.config=t,this.spec=r;}createFile(t){let r=t.path.split("/"),n=Q.resolve(this.config.output.path,...r.slice(0,r.length-1)),s=new Fe({dir:n,exportFromIndex:t.exportFromIndex,id:t.id,identifierCase:t.identifierCase,name:`${r[r.length-1]}.ts`});return this.files[t.id]=s,s}dereference(t){let r=this.resolveRef(t.$ref),n={...t,...r};return delete n.$ref,n}file({id:t}){return this.files[t]}registerPlugin(t){let r=this.config.plugins[t],n=new Yr({api:r.api,config:r.config,context:this,dependencies:r.dependencies??[],handler:r.handler,name:r.name,output:r.output});return this.plugins[n.name]=n,n}registerPlugins(){return this.config.pluginOrder.map(t=>this.registerPlugin(t))}resolveIrRef(t){return Es({$ref:t,spec:this.ir})}resolveRef(t){return Es({$ref:t,spec:this.spec})}};var rn=({context:e,parameter:t})=>{if(!t.pagination)return;if(t.pagination===true)return t.schema;let r=t.schema;return r.$ref&&(r=e.resolveIrRef(r.$ref)),r.properties[t.pagination]},gt=e=>{for(let t in e)if(e[t].required)return true;return false},lo=e=>e?!!(gt(e.cookie)||gt(e.header)||gt(e.path)||gt(e.query)):false,ks=({context:e,parameters:t})=>{if(t){for(let r in t.cookie){let n=t.cookie[r];if(n.pagination)return {in:n.location,name:n.pagination===true?r:`${r}.${n.pagination}`,schema:rn({context:e,parameter:n})}}for(let r in t.header){let n=t.header[r];if(n.pagination)return {in:n.location,name:n.pagination===true?r:`${r}.${n.pagination}`,schema:rn({context:e,parameter:n})}}for(let r in t.path){let n=t.path[r];if(n.pagination)return {in:n.location,name:n.pagination===true?r:`${r}.${n.pagination}`,schema:rn({context:e,parameter:n})}}for(let r in t.query){let n=t.query[r];if(n.pagination)return {in:n.location,name:n.pagination===true?r:`${r}.${n.pagination}`,schema:rn({context:e,parameter:n})}}}};var ue=({detectFormat:e=true,schema:t})=>{if(!t.items)return t;let r=[],n=[];for(let o of t.items){if(!o.type&&o.items||t.type==="tuple"){r.push(o);continue}if(!o.type||o.type==="boolean"||o.type==="integer"||o.type==="null"||o.type==="number"||o.type==="string"||o.type==="unknown"||o.type==="void"){let a=o.const!==void 0?`const-${o.const}`:"",p=o.format!==void 0&&e?`format-${o.format}`:"",c=`${o.$ref??""}${o.type??""}${a}${p}`;n.includes(c)||(n.push(c),r.push(o));continue}r.push(o);}let s={...t};if(s.items=r,s.items.length<=1&&s.type!=="array"&&s.type!=="enum"&&s.type!=="tuple"){let o=s.items[0];delete s.logicalOperator,delete s.items,s={...s,...o};}return s.type==="unknown"?{}:s};var T=(e,t)=>{if(!e?.length)return t?.length?t:void 0;if(!t?.length)return e;let r=new Set(e);for(let n of t)r.add(n);return r.size>e.length?Array.from(r):e};var Ns=({items:e,schema:t})=>{for(let r of e)t.accessScopes=T(t.accessScopes,r.accessScopes);t.items=e;},D=({items:e,logicalOperator:t="or",mutateSchemaOneItem:r=false,schema:n})=>e.length?n.type==="tuple"?(Ns({items:e,schema:n}),n):e.length!==1?(Ns({items:e,schema:n}),n.logicalOperator=t,n):r?(n={...n,...e[0]},n):(Ns({items:e,schema:n}),n):n;var nn=e=>!!(lo(e.parameters)||e.body?.required),v=({method:e,path:t})=>`${e.toUpperCase()} ${t}`,uo=({context:e,operation:t})=>{let r=t.body;if(!r||!r.pagination)return ks({context:e,parameters:t.parameters});if(r.pagination===true)return {in:"body",name:"body",schema:r.schema};let n=r.schema,s=n.$ref?e.resolveIrRef(n.$ref):n,a=("schema"in s?s.schema:s)?.properties?.[r.pagination];return a?{in:"body",name:r.pagination,schema:a}:ks({context:e,parameters:t.parameters})},vs=({statusCode:e})=>{switch(e){case "1XX":return "1XX";case "2XX":return "2XX";case "3XX":return "3XX";case "4XX":return "4XX";case "5XX":return "5XX";case "default":return "default";default:return `${e[0]}XX`}},Le=e=>{let t={};if(!e.responses)return t;let r={properties:{},type:"object"},n={properties:{},type:"object"},s;for(let p in e.responses){let c=e.responses[p];switch(vs({statusCode:p})){case "1XX":case "3XX":break;case "2XX":n.properties[p]=c.schema;break;case "4XX":case "5XX":r.properties[p]=c.schema;break;case "default":s=c;break}}if(s){let p=false;Object.keys(n.properties).length||(n.properties.default=s.schema,p=true);let c=(s.schema.description??"").toLocaleLowerCase(),f=(s.schema.$ref??"").toLocaleLowerCase();["success"].some(u=>c.includes(u)||f.includes(u))&&(n.properties.default=s.schema,p=true),["error","problem"].some(u=>c.includes(u)||f.includes(u))&&(r.properties.default=s.schema,p=true),p||(r.properties.default=s.schema);}let o=Object.keys(r.properties);if(o.length){r.required=o,t.errors=r;let p=D({items:Object.values(r.properties),mutateSchemaOneItem:true,schema:{}});p=ue({schema:p}),Object.keys(p).length&&p.type!=="unknown"&&(t.error=p);}let a=Object.keys(n.properties);if(a.length){n.required=a,t.responses=n;let p=D({items:Object.values(n.properties),mutateSchemaOneItem:true,schema:{}});p=ue({schema:p}),Object.keys(p).length&&p.type!=="unknown"&&(t.response=p);}return t};var rr=e=>{switch(e){case "parameters":return "parameter";case "requestBodies":return "body";case "responses":return "response";case "definitions":case "schemas":return "schema";default:return "unknown"}},yo="/",O=(e,t="")=>`${e}${yo}${t}`,U=e=>{let t=e.indexOf(yo);return {name:e.slice(t+1),namespace:e.slice(0,t)}};var Ce=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");return zt.lastIndex=0,zt.test(t)?`_${t}`:t},nt=e=>e.replace(/^[^\p{ID_Start}]+/u,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"-").replace(/[$+]/g,"-"),qs=e=>{let t=e.replace("[]","Array");return nt(t)};var ie=["delete","get","head","options","patch","post","put","trace"],Mt=({context:e,count:t=1,id:r,method:n,path:s,state:o})=>{let a;if(r&&(!e.config.plugins["@hey-api/sdk"]||e.config.plugins["@hey-api/sdk"].config.operationId))a=j({case:"camelCase",value:nt(r)});else {let p=s.replace(/{(.*?)}/g,"by-$1").replace(/[/:+]/g,"-");a=j({case:"camelCase",value:`${n}-${p}`});}return t>1&&(a=`${a}${t}`),o.ids.has(a)?Mt({context:e,count:t+1,id:r,method:n,path:s,state:o}):(o.ids.set(a,v({method:n,path:s})),a)};var De=(e,t)=>{let r=[],n=[];if(t)for(let s of t)s.startsWith("/")&&s.endsWith("/")?n.push(new RegExp(s.slice(1,s.length-1))):r.push(O(e,s));return {regexps:n,set:new Set(r)}},Dc=({excludeOperations:e,excludeSchemas:t,includeOperations:r,includeSchemas:n,spec:s})=>{if((e.regexps.length||r.regexps.length)&&s.paths)for(let o of Object.entries(s.paths)){let a=o[0],p=o[1];for(let c of ie){if(!p[c])continue;let m=v({method:c,path:a});e.regexps.some(l=>l.test(m))&&e.set.add(O("operation",m)),r.regexps.some(l=>l.test(m))&&r.set.add(O("operation",m));}}if(s.definitions&&(t.regexps.length||n.regexps.length))for(let o of Object.keys(s.definitions))t.regexps.some(a=>a.test(o))&&t.set.add(O("schema",o)),n.regexps.some(a=>a.test(o))&&n.set.add(O("schema",o));},Vc=({excludeOperations:e,excludeParameters:t,excludeRequestBodies:r,excludeResponses:n,excludeSchemas:s,includeOperations:o,includeParameters:a,includeRequestBodies:p,includeResponses:c,includeSchemas:f,spec:m})=>{if((e.regexps.length||o.regexps.length)&&m.paths)for(let l of Object.entries(m.paths)){let u=l[0],d=l[1];for(let y of ie){if(!d[y])continue;let I=v({method:y,path:u});e.regexps.some(b=>b.test(I))&&e.set.add(O("operation",I)),o.regexps.some(b=>b.test(I))&&o.set.add(O("operation",I));}}if(m.components){if((t.regexps.length||a.regexps.length)&&m.components.parameters)for(let l of Object.keys(m.components.parameters))t.regexps.some(u=>u.test(l))&&t.set.add(O("parameter",l)),a.regexps.some(u=>u.test(l))&&a.set.add(O("parameter",l));if((r.regexps.length||p.regexps.length)&&m.components.requestBodies)for(let l of Object.keys(m.components.requestBodies))r.regexps.some(u=>u.test(l))&&r.set.add(O("body",l)),p.regexps.some(u=>u.test(l))&&p.set.add(O("body",l));if((n.regexps.length||c.regexps.length)&&m.components.responses)for(let l of Object.keys(m.components.responses))n.regexps.some(u=>u.test(l))&&n.set.add(O("response",l)),c.regexps.some(u=>u.test(l))&&c.set.add(O("response",l));if((s.regexps.length||f.regexps.length)&&m.components.schemas)for(let l of Object.keys(m.components.schemas))s.regexps.some(u=>u.test(l))&&s.set.add(O("schema",l)),f.regexps.some(u=>u.test(l))&&f.set.add(O("schema",l));}},_c=({spec:e,...t})=>{"swagger"in e?Dc({...t,spec:e}):Vc({...t,spec:e});},nr=(e,t)=>{let r=De("operation",e?.operations?.exclude),n=De("operation",e?.operations?.include),s=De("parameter",e?.parameters?.exclude),o=De("parameter",e?.parameters?.include),a=De("body",e?.requestBodies?.exclude),p=De("body",e?.requestBodies?.include),c=De("response",e?.responses?.exclude),f=De("response",e?.responses?.include),m=De("schema",e?.schemas?.exclude),l=De("schema",e?.schemas?.include);return _c({excludeOperations:r,excludeParameters:s,excludeRequestBodies:a,excludeResponses:c,excludeSchemas:m,includeOperations:n,includeParameters:o,includeRequestBodies:p,includeResponses:f,includeSchemas:l,spec:t}),{deprecated:e?.deprecated??true,operations:{exclude:r.set,include:n.set},orphans:e?.orphans??false,parameters:{exclude:s.set,include:o.set},preserveOrder:e?.preserveOrder??false,requestBodies:{exclude:a.set,include:p.set},responses:{exclude:c.set,include:f.set},schemas:{exclude:m.set,include:l.set},tags:{exclude:new Set(e?.tags?.exclude),include:new Set(e?.tags?.include)}}},sr=e=>e?e.orphans===false||e.deprecated===false?true:!!(e.operations?.exclude?.length||e.operations?.include?.length||e.parameters?.exclude?.length||e.parameters?.include?.length||e.requestBodies?.exclude?.length||e.requestBodies?.include?.length||e.responses?.exclude?.length||e.responses?.include?.length||e.schemas?.exclude?.length||e.schemas?.include?.length||e.tags?.exclude?.length||e.tags?.include?.length):false,Bc=({filters:e,graph:t,parameters:r,requestBodies:n,responses:s,schemas:o})=>{let a=new Set,c=[...e.operations.include.size?e.operations.include:new Set(t.operations.keys())];for(;c.length;){let f=c.pop();if(e.operations.exclude.has(f)||a.has(f))continue;let m=t.operations.get(f);m&&(!e.deprecated&&m.deprecated||e.tags.exclude.size&&m.tags.size&&[...e.tags.exclude].some(l=>m.tags.has(l))||e.tags.include.size&&!new Set([...e.tags.include].filter(l=>m.tags.has(l))).size||[...m.dependencies].some(l=>{let{namespace:u}=U(l);switch(u){case "body":return !n.has(l);case "parameter":return !r.has(l);case "response":return !s.has(l);case "schema":return !o.has(l);default:return false}})||a.add(f));}return {operations:a}},Kc=({filters:e,graph:t,schemas:r})=>{let n=new Set,o=[...e.parameters.include.size?e.parameters.include:new Set(t.parameters.keys())];for(;o.length;){let a=o.pop();if(e.parameters.exclude.has(a)||n.has(a))continue;let p=t.parameters.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(n.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:f}=U(c);switch(f){case "body":{e.requestBodies.exclude.has(c)?n.delete(a):n.has(c)||o.push(c);break}case "schema":{e.schemas.exclude.has(c)?n.delete(a):r.has(c)||r.add(c);break}}}}return {parameters:n}},Wc=({filters:e,graph:t,schemas:r})=>{let n=new Set,o=[...e.requestBodies.include.size?e.requestBodies.include:new Set(t.requestBodies.keys())];for(;o.length;){let a=o.pop();if(e.requestBodies.exclude.has(a)||n.has(a))continue;let p=t.requestBodies.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(n.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:f}=U(c);switch(f){case "body":{e.requestBodies.exclude.has(c)?n.delete(a):n.has(c)||o.push(c);break}case "schema":{e.schemas.exclude.has(c)?n.delete(a):r.has(c)||r.add(c);break}}}}return {requestBodies:n}},Hc=({filters:e,graph:t,schemas:r})=>{let n=new Set,o=[...e.responses.include.size?e.responses.include:new Set(t.responses.keys())];for(;o.length;){let a=o.pop();if(e.responses.exclude.has(a)||n.has(a))continue;let p=t.responses.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(n.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:f}=U(c);switch(f){case "body":{e.requestBodies.exclude.has(c)?n.delete(a):n.has(c)||o.push(c);break}case "schema":{e.schemas.exclude.has(c)?n.delete(a):r.has(c)||r.add(c);break}}}}return {responses:n}},Qc=({filters:e,graph:t})=>{let r=new Set,s=[...e.schemas.include.size?e.schemas.include:new Set(t.schemas.keys())];for(;s.length;){let o=s.pop();if(e.schemas.exclude.has(o)||r.has(o))continue;let a=t.schemas.get(o);if(a&&!(!e.deprecated&&a.deprecated)&&(r.add(o),!!a.dependencies.size))for(let p of a.dependencies){let{namespace:c}=U(p);switch(c){case "schema":{!r.has(p)&&!e.schemas.exclude.has(p)&&s.push(p);break}}}}return {schemas:r}},zc=({filters:e,graph:t,parameters:r})=>{if(e.parameters.exclude.size)for(let n of r){let s=t.parameters.get(n);if(s?.dependencies.size){for(let o of e.parameters.exclude)if(s.dependencies.has(o)){r.delete(n);break}}}},Uc=({filters:e,graph:t,requestBodies:r})=>{if(e.requestBodies.exclude.size)for(let n of r){let s=t.requestBodies.get(n);if(s?.dependencies.size){for(let o of e.requestBodies.exclude)if(s.dependencies.has(o)){r.delete(n);break}}}},Xc=({filters:e,graph:t,responses:r})=>{if(e.responses.exclude.size)for(let n of r){let s=t.responses.get(n);if(s?.dependencies.size){for(let o of e.responses.exclude)if(s.dependencies.has(o)){r.delete(n);break}}}},Gc=({filters:e,graph:t,schemas:r})=>{if(e.schemas.exclude.size)for(let n of r){let s=t.schemas.get(n);if(s?.dependencies.size){for(let o of e.schemas.exclude)if(s.dependencies.has(o)){r.delete(n);break}}}},Jc=({operationDependencies:e,parameters:t,requestBodies:r,responses:n,schemas:s})=>{for(let o of s)e.has(o)||s.delete(o);for(let o of t)e.has(o)||t.delete(o);for(let o of r)e.has(o)||r.delete(o);for(let o of n)e.has(o)||n.delete(o);},Zc=({graph:e,operations:t})=>{let r=new Set,s=[...new Set([...t].flatMap(o=>[...e.operations.get(o)?.dependencies??[]]))];for(;s.length;){let o=s.pop();if(r.has(o))continue;r.add(o);let{namespace:a}=U(o),p;if(a==="body"?p=e.requestBodies.get(o)?.dependencies:a==="operation"?p=e.operations.get(o)?.dependencies:a==="parameter"?p=e.parameters.get(o)?.dependencies:a==="response"?p=e.responses.get(o)?.dependencies:a==="schema"&&(p=e.schemas.get(o)?.dependencies),!!p?.size)for(let c of p)r.has(c)||s.push(c);}return {operationDependencies:r}},ir=({filters:e,graph:t})=>{let{schemas:r}=Qc({filters:e,graph:t}),{parameters:n}=Kc({filters:e,graph:t,schemas:r}),{requestBodies:s}=Wc({filters:e,graph:t,schemas:r}),{responses:o}=Hc({filters:e,graph:t,schemas:r});Gc({filters:e,graph:t,schemas:r}),zc({filters:e,graph:t,parameters:n}),Uc({filters:e,graph:t,requestBodies:s}),Xc({filters:e,graph:t,responses:o});let{operations:a}=Bc({filters:e,graph:t,parameters:n,requestBodies:s,responses:o,schemas:r});if(!e.orphans&&a.size){let{operationDependencies:p}=Zc({graph:t,operations:a});Jc({operationDependencies:p,parameters:n,requestBodies:s,responses:o,schemas:r});}return {operations:a,parameters:n,requestBodies:s,responses:o,schemas:r}};var q=({source:e,target:t})=>{let r={...t};if(e&&(e.cookie&&(r.cookie?r.cookie={...r.cookie,...e.cookie}:r.cookie=e.cookie),e.header&&(r.header?r.header={...r.header,...e.header}:r.header=e.header),e.path&&(r.path?r.path={...r.path,...e.path}:r.path=e.path),e.query&&(r.query?r.query={...r.query,...e.query}:r.q