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