@hey-api/openapi-ts
Version:
🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.
6 lines • 260 kB
JavaScript
'use strict';var jsonSchemaRefParser=require('@hey-api/json-schema-ref-parser'),Bt=require('path'),c12=require('c12'),x=require('typescript'),os=require('os'),bi=require('fs'),url=require('url'),Yr=require('ansi-colors');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Bt__default=/*#__PURE__*/_interopDefault(Bt);var x__default=/*#__PURE__*/_interopDefault(x);var bi__default=/*#__PURE__*/_interopDefault(bi);var Yr__default=/*#__PURE__*/_interopDefault(Yr);var jr=(...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[i,o]of n)if(o===null)t.delete(i);else if(Array.isArray(o))for(let p of o)t.append(i,p);else o!==void 0&&t.set(i,typeof o=="object"?JSON.stringify(o):o);}return t};var Ga=async({fetchOptions:e,inputPath:t,timeout:r,watch:n})=>{let i=new jsonSchemaRefParser.$RefParser,o=jsonSchemaRefParser.getResolvedInput({pathOrUrlOrSchema:t}),p,a,c;if(o.type==="url"){if(n.lastValue&&n.isHeadMethodSupported!==false){try{let f=await jsonSchemaRefParser.sendRequest({fetchOptions:{method:"HEAD",...e,headers:jr(e?.headers,n.headers)},timeout:r,url:o.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(a===void 0){let f=c.headers.get("ETag");f&&(a=f!==n.headers.get("If-None-Match"),a&&n.headers.set("If-None-Match",f));}if(a===void 0){let f=c.headers.get("Last-Modified");f&&(a=f!==n.headers.get("If-Modified-Since"),a&&n.headers.set("If-Modified-Since",f));}if(a===false)return {error:"not-modified",response:c}}try{let f=await jsonSchemaRefParser.sendRequest({fetchOptions:{method:"GET",...e},timeout:r,url:o.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(p=c.body?await c.arrayBuffer():new ArrayBuffer(0),a===void 0){let f=new TextDecoder().decode(p);a=f!==n.lastValue,n.lastValue=f;}}else n.lastValue?a=false:n.lastValue=o.type;return a===false?{error:"not-modified",response:c}:{data:await i.bundle({arrayBuffer:p,pathOrUrlOrSchema:void 0,resolvedInput:o})}};var Ps=e=>{let t={file:true,level:"info",path:process.cwd()};return typeof e?.logs=="string"?t.path=e.logs:t={...t,...e?.logs},t};var it={baseUrl:true,bundle:true,exportFromIndex:false},ot={dependencies:["@hey-api/typescript"],output:"client",tags:["client"]};var Ie="client",ne=e=>{let t=C(e);return t.name==="@hey-api/client-axios"||t.name==="@hey-api/client-nuxt"?"baseURL":"baseUrl"},C=e=>{for(let t of e.pluginOrder){let r=e.plugins[t];if(r?.tags?.includes("client"))return r}return {config:{name:""},name:""}};var Mt=/^[^$_\p{ID_Start}]+/u,ce=/^-?\d+(\.\d+)?$/,js=/^(document|history|location|navigator|window)$/g,Cs=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,me=/^(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,Es=/^(global|process|Buffer)$/g,ks=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,Oe=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var ze=e=>(e||e==="")&&(Oe.lastIndex=0,!Oe.test(e))?`'${e}'`:e,nr=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,L=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>os.EOL+r.trim());var Ns,I=()=>{let e=Ns,t=C(e);return e.client=t,e},vs=e=>(Ns=e,I()),W=e=>C(e).name.startsWith("legacy/"),Ot=e=>{if(W(e))return e.name};var Za=x__default.default.createPrinter({newLine:x__default.default.NewLineKind.LineFeed,removeComments:false}),qs=e=>x__default.default.createSourceFile("",e,x__default.default.ScriptTarget.ESNext,false,x__default.default.ScriptKind.TS),Ya=qs(""),ep=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,r)=>String.fromCharCode(Number.parseInt(r,16)));function Ae({node:e,unescape:t=false}){let r=Za.printNode(x__default.default.EmitHint.Unspecified,e,Ya);if(!t)return r;try{return ep(r)}catch{return I().logs.level==="debug"&&console.warn("Could not decode value:",r),r}}function $s(e){return qs(e).statements[0]}var T=({text:e})=>x__default.default.factory.createIdentifier(e),ws=()=>x__default.default.factory.createThis(),B=({keyword:e})=>{let t=wn({keyword:e});return x__default.default.factory.createModifier(t)},Ms=({initializer:e,modifier:t,name:r,type:n})=>x__default.default.factory.createPropertyDeclaration(t?[B({keyword:t})]:void 0,r,void 0,n,e),se={boolean:e=>e?x__default.default.factory.createTrue():x__default.default.factory.createFalse(),export:({alias:e,asType:t=false,name:r})=>{let n=T({text:r});if(e){let i=T({text:e});return x__default.default.factory.createExportSpecifier(t,n,i)}return x__default.default.factory.createExportSpecifier(t,void 0,n)},import:({alias:e,asType:t=false,name:r})=>{let n=T({text:r});if(e){let i=T({text:e});return x__default.default.factory.createImportSpecifier(t,n,i)}return x__default.default.factory.createImportSpecifier(t,void 0,n)},number:e=>e<0?x__default.default.factory.createPrefixUnaryExpression(x__default.default.SyntaxKind.MinusToken,x__default.default.factory.createNumericLiteral(Math.abs(e))):x__default.default.factory.createNumericLiteral(e),string:(e,t=false)=>{let r=e;t&&(r=nr(r));let n=r.includes("'")&&r.includes('"'),i=r.includes(`
`),o=r.startsWith("`"),p=r.startsWith("\\`")&&r.endsWith("\\`");return (i||n||o)&&!p&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?T({text:r}):Tt({text:r})}},St=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",at=e=>e!==void 0,tp=({commentObject:e,node:t})=>{let r=e.lines.filter(p=>!!p||p==="");if(!r.length)return;if(!e.jsdoc){for(let p of r)x__default.default.addSyntheticLeadingComment(t,x__default.default.SyntaxKind.SingleLineCommentTrivia,` ${p}`,true);return}let n=r.map((p,a)=>{let c=p;return a!==r.length&&(c=`${c}
`),x__default.default.factory.createJSDocText(c)}),i=x__default.default.factory.createJSDocComment(x__default.default.factory.createNodeArray(n),void 0),o=Ae({node:i,unescape:true}).replace("/*","").replace("* */","");x__default.default.addSyntheticLeadingComment(t,x__default.default.SyntaxKind.MultiLineCommentTrivia,o,true);},X=({comments:e=[],node:t})=>{let r=!!e.find(i=>typeof i=="object"&&i),n=e;r||(n=[{jsdoc:true,lines:e}]);for(let i of n)tp({commentObject:i,node:t});};var G=(e,t)=>x__default.default.isTypeNode(e)?e:typeof e=="number"?x__default.default.factory.createLiteralTypeNode(se.number(e)):fe({typeArguments:t?.map(r=>G(r)),typeName:e}),Mn=({expression:e,name:t})=>x__default.default.factory.createPropertyAccessChain(e,x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionDotToken),t),je=({expression:e,isOptional:t,name:r})=>{let n=typeof e=="string"?T({text:e}):e;if(t&&typeof r!="number")return Mn({expression:n,name:r});if(typeof r=="string"){if(Oe.lastIndex=0,!Oe.test(r)){!r.startsWith("'")&&!r.endsWith("'")&&(r=`'${r}'`);let o=T({text:r});return x__default.default.factory.createElementAccessExpression(n,o)}let i=T({text:r});return x__default.default.factory.createPropertyAccessExpression(n,i)}if(typeof r=="number"){let i=x__default.default.factory.createNumericLiteral(r);return x__default.default.factory.createElementAccessExpression(n,i)}return x__default.default.factory.createPropertyAccessExpression(n,r)},Fn=()=>x__default.default.factory.createNull(),Pe=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:n,value:i})=>{if(i===null)return Fn();if(Array.isArray(i))return Ln({elements:i});if(typeof i=="object")return Nr({identifiers:e,obj:i,shorthand:r});if(typeof i=="number")return se.number(i);if(typeof i=="boolean")return se.boolean(i);if(typeof i=="string"){if(t){let o=i.split(".");return je({expression:o[0],name:o[1]})}return se.string(i,n)}},sr=e=>e.map(t=>{if("destructure"in t)return Ft({name:x__default.default.factory.createObjectBindingPattern(t.destructure.map(n=>"destructure"in n?void 0:x__default.default.factory.createBindingElement(void 0,void 0,T({text:n.name}),void 0)).filter(Boolean)),type:t.type!==void 0?G(t.type):void 0});let r=t.accessLevel?[B({keyword:t.accessLevel})]:[];return t.isReadOnly&&r.push(B({keyword:"readonly"})),Ft({initializer:t.default!==void 0?Pe({value:t.default}):void 0,modifiers:r,name:T({text:t.name}),required:t.isRequired!==false,type:t.type!==void 0?G(t.type):void 0})}),wn=({keyword:e})=>{switch(e){case "any":return x__default.default.SyntaxKind.AnyKeyword;case "async":return x__default.default.SyntaxKind.AsyncKeyword;case "boolean":return x__default.default.SyntaxKind.BooleanKeyword;case "export":return x__default.default.SyntaxKind.ExportKeyword;case "never":return x__default.default.SyntaxKind.NeverKeyword;case "number":return x__default.default.SyntaxKind.NumberKeyword;case "private":return x__default.default.SyntaxKind.PrivateKeyword;case "protected":return x__default.default.SyntaxKind.ProtectedKeyword;case "public":return x__default.default.SyntaxKind.PublicKeyword;case "readonly":return x__default.default.SyntaxKind.ReadonlyKeyword;case "static":return x__default.default.SyntaxKind.StaticKeyword;case "string":return x__default.default.SyntaxKind.StringKeyword;case "undefined":return x__default.default.SyntaxKind.UndefinedKeyword;case "unknown":return x__default.default.SyntaxKind.UnknownKeyword;case "void":return x__default.default.SyntaxKind.VoidKeyword;default:throw new Error(`unsupported syntax kind keyword "${e}"`)}},Rt=({keyword:e})=>{let t=wn({keyword:e});return x__default.default.factory.createKeywordTypeNode(t)},ir=e=>e.map(t=>x__default.default.isTypeParameterDeclaration(t)?t:or({constraint:t.extends?typeof t.extends=="string"?Rt({keyword:"boolean"}):t.extends:void 0,defaultType:t.default!==void 0?St(t.default)?t.default:x__default.default.factory.createLiteralTypeNode(t.default?x__default.default.factory.createTrue():x__default.default.factory.createFalse()):void 0,name:t.name})),Fs=({operator:e,type:t})=>{let r=e==="keyof"?x__default.default.SyntaxKind.KeyOfKeyword:e==="readonly"?x__default.default.SyntaxKind.ReadonlyKeyword:x__default.default.SyntaxKind.UniqueKeyword;return x__default.default.factory.createTypeOperatorNode(r,t)},or=({constraint:e,defaultType:t,modifiers:r,name:n})=>x__default.default.factory.createTypeParameterDeclaration(r,n,e,t),Er=({members:e,nameType:t,questionToken:r,readonlyToken:n,type:i,typeParameter:o})=>x__default.default.factory.createMappedTypeNode(n,o,t,r,i,e),Ls=({literal:e})=>x__default.default.factory.createLiteralTypeNode(e),kr=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:i,statements:o=[],types:p=[]})=>{let a=x__default.default.factory.createArrowFunction(e?[B({keyword:"async"})]:void 0,p?ir(p):void 0,sr(n),i?G(i):void 0,void 0,Array.isArray(o)?le({multiLine:r,statements:o}):o);return X({comments:t,node:a}),a},Ds=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:i,statements:o=[],types:p=[]})=>{let a=x__default.default.factory.createFunctionExpression(e?[B({keyword:"async"})]:void 0,void 0,void 0,p?ir(p):void 0,sr(n),i?G(i):void 0,le({multiLine:r,statements:o}));return X({comments:t,node:a}),a},Ln=({elements:e,multiLine:t=false})=>x__default.default.factory.createArrayLiteralExpression(e.map(n=>St(n)?n:Pe({value:n})).filter(at),t||!Array.isArray(e[0])&&typeof e[0]=="object"),Vs=({expression:e})=>x__default.default.factory.createAwaitExpression(e),_s=({parameters:e=[],returnType:t,typeParameters:r})=>x__default.default.factory.createFunctionTypeNode(r,e,t),Nr=({comments:e,identifiers:t=[],multiLine:r=true,obj:n,shorthand:i,unescape:o=false})=>{let p=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=St(c.spread)?c.spread:T({text:c.spread});f=x__default.default.factory.createSpreadAssignment(c.assertion?pr({expression:l,type:typeof c.assertion=="string"?Rt({keyword:c.assertion}):c.assertion}):l);}else if(c.shorthand||i&&m)f=x__default.default.factory.createShorthandPropertyAssignment(c.value);else {let l=St(c.value)?c.value:Array.isArray(c.value)&&(!c.value.length||typeof c.value[0]=="object")?Nr({multiLine:r,obj:c.value,shorthand:i,unescape:o}):Pe({identifiers:t.includes(c.key)?Object.keys(c.value):[],isValueAccess:c.isValueAccess,shorthand:i,unescape:o,value:c.value});if(!l)return;t.includes(c.key)&&!x__default.default.isObjectLiteralExpression(l)&&(l=T({text:c.value})),f=Cr({initializer:l,name:c.key});}return X({comments:c.comments,node:f}),f}).filter(at):Object.entries(n).map(([c,m])=>{let f=Pe({identifiers:t.includes(c)?Object.keys(m):[],shorthand:i,unescape:o,value:m});if(!f)return;t.includes(c)&&!x__default.default.isObjectLiteralExpression(f)&&(f=T({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}'`),i&&l?x__default.default.factory.createShorthandPropertyAssignment(m):Cr({initializer:f,name:c})}).filter(at),a=x__default.default.factory.createObjectLiteralExpression(p,r);return X({comments:e,node:a}),a},Bs=({comments:e={},leadingComment:t,name:r,obj:n})=>{let i=Array.isArray(n)?n.map(p=>{let a=np({initializer:Pe({value:p.value}),name:p.key});return X({comments:p.comments,node:a}),a}):Object.entries(n).map(([p,a])=>{let c=x__default.default.factory.createEnumMember(p,Pe({unescape:true,value:a}));return X({comments:e[p],node:c}),c}),o=x__default.default.factory.createEnumDeclaration([B({keyword:"export"})],T({text:r}),i);return X({comments:t,node:o}),o},np=({initializer:e,name:t})=>{let r=t;return typeof r=="string"&&(r.includes("'")?r=Tt({isSingleQuote:false,text:r}):r=ze(r)),x__default.default.factory.createEnumMember(r,e)},Ks=({name:e,statements:t})=>x__default.default.factory.createModuleDeclaration([B({keyword:"export"})],T({text:e}),x__default.default.factory.createModuleBlock(t),x__default.default.NodeFlags.Namespace),Ws=({indexType:e,objectType:t})=>x__default.default.factory.createIndexedAccessTypeNode(t,e),Tt=({isSingleQuote:e,text:t})=>(e===void 0&&(e=!t.includes("'")),x__default.default.factory.createStringLiteral(t,e)),Hs=({condition:e,whenFalse:t,whenTrue:r})=>x__default.default.factory.createConditionalExpression(e,x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),r,x__default.default.factory.createToken(x__default.default.SyntaxKind.ColonToken),t),Qs=({text:e})=>x__default.default.factory.createTypeOfExpression(T({text:e})),zs=({comment:e,exportType:t,name:r,type:n,typeParameters:i=[]})=>{let o=x__default.default.factory.createTypeAliasDeclaration(t?[B({keyword:"export"})]:void 0,T({text:r}),ir(i),G(n));return X({comments:e,node:o}),o},fe=({typeArguments:e,typeName:t})=>x__default.default.factory.createTypeReferenceNode(t,e),Us=({type:e})=>x__default.default.factory.createParenthesizedType(e),Ft=({initializer:e,modifiers:t,name:r,required:n=true,type:i})=>x__default.default.factory.createParameterDeclaration(t,void 0,r,n?void 0:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),i,e),ar=({argumentsArray:e,expression:t,typeArguments:r})=>x__default.default.factory.createNewExpression(t,r,e),Xs=({awaitModifier:e,expression:t,initializer:r,statement:n})=>x__default.default.factory.createForOfStatement(e,r,t,n),Gs=({left:e,right:t})=>x__default.default.factory.createAssignment(e,t),le=({multiLine:e=true,statements:t})=>x__default.default.factory.createBlock(t,e),Cr=({initializer:e,name:t})=>x__default.default.factory.createPropertyAssignment(t,e),Js=({flags:e=[],text:t})=>{let r=t.startsWith("/")&&t.endsWith("/")?t:`/${t}/`;return x__default.default.factory.createRegularExpressionLiteral(`${r}${e.join("")}`)},pr=({expression:e,type:t})=>x__default.default.factory.createAsExpression(e,t),Zs=({value:e})=>{let t=[],r="";for(let i of e.slice(0).reverse())if(typeof i=="string")r=`${i}${r}`;else {let o=t.length?x__default.default.factory.createTemplateMiddle(r):x__default.default.factory.createTemplateTail(r),p=x__default.default.factory.createTemplateLiteralTypeSpan(i,o);t.push(p),r="";}return x__default.default.factory.createTemplateLiteralType(x__default.default.factory.createTemplateHead(r),t.reverse())};var Ys=({module:e})=>x__default.default.factory.createExportDeclaration(void 0,false,void 0,se.string(e)),Ce=({functionName:e,parameters:t=[],types:r})=>{let n=typeof e=="string"?T({text:e}):e,i=t.filter(p=>p!==void 0).map(p=>typeof p=="string"?T({text:p}):p);return x__default.default.factory.createCallExpression(n,r,i)},ei=({exports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(c=>typeof c!="object"||!c.asType),i=r.map(c=>{let m=typeof c=="string"?{name:c}:c;return se.export({alias:m.alias,asType:n&&m.asType,name:m.name})}),o=x__default.default.factory.createNamedExports(i),p=se.string(t);return x__default.default.factory.createExportDeclaration(void 0,!n,o,p)},ti=({assertion:e,comment:t,destructure:r,exportConst:n,expression:i,name:o,typeName:p})=>{let a=e?pr({expression:i,type:typeof e=="string"?fe({typeName:e}):e}):i,c=T({text:o}),m=x__default.default.factory.createVariableDeclaration(r?x__default.default.factory.createObjectBindingPattern([x__default.default.factory.createBindingElement(void 0,void 0,c,void 0)]):c,void 0,p?typeof p=="string"?fe({typeName:p}):p:void 0,a),f=x__default.default.factory.createVariableStatement(n?[B({keyword:"export"})]:void 0,x__default.default.factory.createVariableDeclarationList([m],x__default.default.NodeFlags.Const));return X({comments:t,node:f}),f},ri=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(f=>typeof f!="object"||!f.asType),i,o=[];r.forEach(f=>{let l=typeof f=="string"?{name:f}:f;l.name==="*"&&l.alias?i=l:o.push(se.import({alias:l.alias,asType:n&&l.asType,name:l.name}));});let p=i?x__default.default.factory.createNamespaceImport(T({text:i.alias})):x__default.default.factory.createNamedImports(o),a=x__default.default.factory.createImportClause(!n,void 0,p),c=se.string(t);return x__default.default.factory.createImportDeclaration(void 0,a,c)};var ni=({accessLevel:e,comment:t,multiLine:r=true,parameters:n=[],statements:i=[]})=>{let o=e?[B({keyword:e})]:void 0,p=x__default.default.factory.createConstructorDeclaration(o,sr(n),le({multiLine:r,statements:i}));return X({comments:t,node:p}),p},si=({accessLevel:e,comment:t,isStatic:r=false,multiLine:n=true,name:i,parameters:o=[],returnType:p,statements:a=[],types:c=[]})=>{let m=e?[B({keyword:e})]:[];r&&m.push(B({keyword:"static"}));let f=x__default.default.factory.createMethodDeclaration(m,void 0,T({text:i}),void 0,c?ir(c):void 0,sr(o),p?G(p):void 0,le({multiLine:n,statements:a}));return X({comments:t,node:f}),f},ii=({decorator:e,exportClass:t,extendedClasses:r,name:n,nodes:i})=>{let o=[];t&&o.push(B({keyword:"export"})),e&&o.unshift(x__default.default.factory.createDecorator(Ce({functionName:e.name,parameters:e.args.map(a=>Pe({value:a})).filter(at)})));let p=[];if(r)for(let a of r)p.push(x__default.default.factory.createHeritageClause(x__default.default.SyntaxKind.ExtendsKeyword,[x__default.default.factory.createExpressionWithTypeArguments(T({text:a}),void 0)]));return x__default.default.factory.createClassDeclaration(o,T({text:n}),void 0,p,i)};var At=({expression:e})=>x__default.default.factory.createExpressionStatement(e);var vr=({expression:e})=>x__default.default.factory.createReturnStatement(e),ai=({args:e=[],name:t,types:r=[]})=>{let n=r.map(a=>fe({typeName:a})),i=e.map(a=>x__default.default.isExpression(a)?a:T({text:a})).filter(at),o=Ce({functionName:t,parameters:i,types:n});return vr({expression:o})},pi=({expression:e})=>vr({expression:typeof e=="string"?T({text:e}):e});var Lt=e=>e.slice(1).reduce((t,r)=>(Oe.lastIndex=0,Oe.test(r)?Mn({expression:t,name:r}):x__default.default.factory.createElementAccessChain(t,x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionDotToken),T({text:r}))),T({text:e[0]})),qr=e=>e.slice(1).reduce((t,r)=>je({expression:t,name:r}),T({text:e[0]})),ci=({expressions:e})=>e.reduce((r,n)=>je({expression:r,name:n})),$r=({left:e,operator:t="=",right:r})=>x__default.default.factory.createBinaryExpression(e,t==="="?x__default.default.SyntaxKind.EqualsToken:t==="==="?x__default.default.SyntaxKind.EqualsEqualsEqualsToken:t==="??"?x__default.default.SyntaxKind.QuestionQuestionToken:x__default.default.SyntaxKind.InKeyword,typeof r=="string"?T({text:r}):r),Dt=({elseStatement:e,expression:t,thenStatement:r})=>x__default.default.factory.createIfStatement(t,r,e),mi=({path:e})=>{let t=Lt(e),r=qr(e),n=le({statements:[At({expression:$r({left:r,right:ar({argumentsArray:[r],expression:T({text:"Date"})})})})]});return Dt({expression:t,thenStatement:n})},fi=({path:e,transformerName:t})=>{let r=Lt(e),n=qr(e),i=le({statements:[At({expression:Ce({functionName:t,parameters:[n]})})]});return [Dt({expression:r,thenStatement:i})]},li=({path:e,transformerName:t})=>{let r=Lt(e),n=qr(e);return Dt({expression:Ce({functionName:je({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:le({statements:[At({expression:x__default.default.factory.createCallChain(je({expression:n,name:"forEach"}),void 0,void 0,[T({text:t})])})]})})},ui=({parameterName:e})=>{let t=T({text:"Date"});return ar({argumentsArray:[T({text:e})],expression:t})},di=({path:e,transformExpression:t})=>{let r=Lt(e),n=qr(e);return Dt({expression:Ce({functionName:je({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:le({statements:[At({expression:$r({left:n,right:x__default.default.factory.createCallChain(je({expression:n,name:"map"}),void 0,void 0,[kr({parameters:[{name:"item"}],statements:t})])})})]})})};var fp=fe({typeName:"null"}),Vt=({isNullable:e,node:t})=>e?x__default.default.factory.createUnionTypeNode([t,fp]):t,Dn=({indexKey:e,indexProperty:t,isNullable:r,properties:n,useLegacyResolution:i})=>{let p=n.map(m=>{let f=m.isReadOnly?[B({keyword:"readonly"})]:void 0,l=m.isRequired!==false?void 0:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),u=G(m.type);let d=x__default.default.factory.createPropertySignature(f,i||typeof m.name=="string"&&m.name.match(Oe)||typeof m.name!="string"&&x__default.default.isPropertyName(m.name)?m.name:Tt({text:m.name}),l,u);return X({comments:m.comment,node:d}),d}),a=false;if(t)if(!n.length&&e){let m=Er({questionToken:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),type:Rt({keyword:"string"}),typeParameter:or({constraint:fe({typeName:e}),name:T({text:String(t.name)})})});p.push(m),a=true;}else {let m=t.isReadOnly?[B({keyword:"readonly"})]:void 0,f=x__default.default.factory.createIndexSignature(m,[Ft({name:T({text:String(t.name)}),type:Rt({keyword:"string"})})],G(t.type));p.push(f);}let c=a?p[0]:x__default.default.factory.createTypeLiteralNode(p);return Vt({isNullable:r,node:c})},cr=({isNullable:e,types:t})=>{let r=t.map(i=>G(i)),n=x__default.default.factory.createUnionTypeNode(r);return Vt({isNullable:e,node:n})},yi=({isNullable:e,types:t})=>{let r=t.map(i=>G(i)),n=x__default.default.factory.createIntersectionTypeNode(r);return Vt({isNullable:e,node:n})},hi=({isNullable:e=false,types:t})=>{let r=t.map(i=>G(i)),n=x__default.default.factory.createTupleTypeNode(r);return Vt({isNullable:e,node:n})},gi=(e,t,r=false,n=true)=>{let i=cr({types:e}),o=cr({types:t}),p=Dn({properties:[{name:`[key: ${Ae({node:i,unescape:true})}]`,type:o}],useLegacyResolution:n});return Vt({isNullable:r,node:p})},xi=(e,t=false)=>{let r=fe({typeArguments:[Array.isArray(e)?cr({types:e}):e],typeName:"Array"});return Vt({isNullable:t,node:r})};var s={anonymousFunction:Ds,arrayLiteralExpression:Ln,arrowFunction:kr,asExpression:pr,assignment:Gs,awaitExpression:Vs,binaryExpression:$r,block:le,callExpression:Ce,classDeclaration:ii,conditionalExpression:Hs,constVariable:ti,constructorDeclaration:ni,enumDeclaration:Bs,exportAllDeclaration:Ys,exportNamedDeclaration:ei,expressionToStatement:At,forOfStatement:Xs,functionTypeNode:_s,identifier:T,ifStatement:Dt,indexedAccessTypeNode:Ws,isTsNode:St,keywordTypeNode:Rt,literalTypeNode:Ls,mappedTypeNode:Er,methodDeclaration:si,namedImportDeclarations:ri,namespaceDeclaration:Ks,newExpression:ar,nodeToString:Ae,null:Fn,objectExpression:Nr,ots:se,parameterDeclaration:Ft,propertyAccessExpression:je,propertyAccessExpressions:ci,propertyAssignment:Cr,propertyDeclaration:Ms,regularExpressionLiteral:Js,returnFunctionCall:ai,returnStatement:vr,returnVariable:pi,safeAccessExpression:Lt,stringLiteral:Tt,stringToTsNodes:$s,templateLiteralType:Zs,this:ws,transformArrayMap:di,transformArrayMutation:li,transformDateMutation:mi,transformFunctionMutation:fi,transformNewDate:ui,typeAliasDeclaration:zs,typeArrayNode:xi,typeInterfaceNode:Dn,typeIntersectionNode:yi,typeNode:G,typeOfExpression:Qs,typeOperatorNode:Fs,typeParameterDeclaration:or,typeParenthesizedNode:Us,typeRecordNode:gi,typeReferenceNode:fe,typeTupleNode:hi,typeUnionNode:cr,valueToExpression:Pe};var wr=e=>{bi__default.default.existsSync(e)||bi__default.default.mkdirSync(e,{recursive:true});};var _t=({moduleOutput:e,sourceOutput:t})=>{let r=t.split("/");return `${Array.from({length:r.length}).fill("").join("../")||"./"}${e}`};var dp=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('internal.cjs', document.baseURI).href)));Bt__default.default.dirname(dp);var yp=e=>{let t=e.split(Bt__default.default.sep);return t.slice(0,t.length-1).join(Bt__default.default.sep)},H=({config:e,sourceOutput:t})=>{let r=C(e);if("bundle"in r.config&&r.config.bundle)return _t({moduleOutput:"client",sourceOutput:t});if(Bt__default.default.isAbsolute(r.name)){let n=yp(r.name),i=Bt__default.default.resolve(e.output.path);return Bt__default.default.relative(i,n).replace(/\\/g,"/")}return r.name},D={Options:{asType:true,name:"Options"},OptionsLegacyParser:{asType:true,name:"OptionsLegacyParser"}};var Oi=/^(([^:/?#]+):)?((\/\/)?([^:/?#]*)(:?([^/?#]*)))?([^?#]*)(\?([^#]*))?(#(.*))?/,Ee=e=>{let t={host:"",path:"",port:"",protocol:""};Oi.lastIndex=0;let r=e.match(Oi);if(!r)return t;let n=r[5]||"";if(n==="."||n==="..")return t;let i=r[8]||"",o=r[2]||"";return o.length===1?t:{host:n,path:i==="/"?"":i,port:r[7]||"",protocol:o}};var Kt="#/ir/",Mr=e=>{let t=Vn(e);return t.length===3&&t[0]==="components"},Q=e=>{let t=Vn(e),r=t[t.length-1];return decodeURI(r)},Vn=e=>e.replace(/^#\//,"").split("/"),_n=({$ref:e,spec:t})=>{let r=Vn(decodeURI(e)),n=t;for(let i of r){let o=i;if(n[o]===void 0)throw new Error(`Reference not found: ${e}`);n=n[o];}return n};var Si=/[\p{Lu}]/u,Bn=/[\p{Ll}]/u,Ri=/([\p{Alpha}\p{N}_]|$)/u,Wt=/[_.\- `\\[\]{}\\/]+/,hp=new RegExp(`^${Wt.source}`),Kn=new RegExp(`${Wt.source}${Ri.source}`,"gu"),Ti=new RegExp(`\\d+${Ri.source}`,"gu"),gp=({case:e,string:t})=>{let r=false,n=false,i=false,o=false,p=e==="snake_case"||e==="SCREAMING_SNAKE_CASE"?"_":"-";for(let a=0;a<t.length;a++){let c=t[a];o=a>2?t[a-3]===p:true;let m=a+1,f=t[m];for(Wt.lastIndex=0;f&&Wt.test(f);)m+=1,f=t[m];let l=m!==a+1;if(Bn.lastIndex=0,Si.lastIndex=0,Si.test(c)&&(r||f&&!l&&f!=="s"&&Bn.test(f)))t=`${t.slice(0,a)}${p}${t.slice(a)}`,a++,i=n,r=false,n=true;else if(n&&i&&Bn.test(c)&&!o&&!(c==="s"&&(!f||f.toLocaleLowerCase()!==f)))t=`${t.slice(0,a-1)}${p}${t.slice(a-1)}`,i=n,r=true,n=false;else {let u=c.toLocaleLowerCase(),d=c.toLocaleUpperCase();i=n,r=u===c&&d!==c,n=d===c&&u!==c;}}return t},P=({case:e,stripLeadingSeparators:t=true,value:r})=>{let n=r.trim();return n.length?!e||e==="preserve"?n:n.length===1?(Wt.lastIndex=0,Wt.test(n)?"":e==="PascalCase"||e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase()):(n!==n.toLocaleLowerCase()&&(n=gp({case:e,string:n})),(t||n[0]!==r[0])&&(n=n.replace(hp,"")),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(Kn,(o,p,a)=>a===0&&!t?o:`_${p}`),n[n.length-1]==="_"&&(n=n.slice(0,n.length-1))):(Kn.lastIndex=0,Ti.lastIndex=0,n=n.replaceAll(Ti,(o,p,a)=>["_","-","."].includes(n.charAt(a+o.length))?o:o.toLocaleUpperCase()),n=n.replaceAll(Kn,(o,p,a)=>a===0&&!t&&o[0]&&r.startsWith(o[0])?o:p.toLocaleUpperCase())),n):""};var te=({case:e="PascalCase",config:t,id:r,parameterId:n,type:i})=>{let o="";switch(i){case "data":case "error":case "errors":case "parameter":case "response":case "responses":o=`${(i[0]??"").toLocaleUpperCase()}${i.slice(1)}`;break}let p=true;t.plugins["@hey-api/typescript"]?.config.identifierCase==="preserve"&&(p=false);let a=p?"-":"",c=[Kt,P({case:e,value:r}),a,o];return n&&c.push(a,P({case:e,value:n})),c.join("")};var E="types";function xp(e,t){return {...e,get name(){return t?.(e),e.name}}}var Te=({context:e,file:t,operation:r,type:n})=>{let i=e.file({id:E}).identifier({$ref:te({config:e.config,id:r.id,type:n}),namespace:"type"});return xp(i,o=>{o.name&&t.import({asType:true,module:t.relativePathToFile({context:e,id:E}),name:o.name});})};var bp=({plugin:e})=>{let{baseUrl:t}=e.config;if(t===false)return;if(typeof t=="string")return t;let{servers:r}=e.context.ir;if(r)return r[typeof t=="number"?t:0]?.url},Ii=({plugin:e})=>{let t=e.context.file({id:Ie}),r=H({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),n=t.import({module:r,name:"createClient"}),i=t.import({module:r,name:"createConfig"}),o=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:E}),name:"ClientOptions"}),p=e.config.runtimeConfigPath?t.import({module:t.relativePathToFile({context:e.context,id:e.config.runtimeConfigPath}),name:"createClientConfig"}):void 0,a=[],c=bp({plugin:e});if(c){let l=Ee(c);if(l.protocol&&l.host&&!c.includes("{"))a.push({key:ne(e.context.config),value:c});else if(c!=="/"&&c.startsWith("/")){let u=c.endsWith("/")?c.slice(0,-1):c;a.push({key:ne(e.context.config),value:u});}}"throwOnError"in e.config&&e.config.throwOnError&&a.push({key:"throwOnError",value:true});let m=[s.callExpression({functionName:i.name,parameters:a.length?[s.objectExpression({obj:a})]:void 0,types:[s.typeReferenceNode({typeName:o.name})]})],f=s.constVariable({exportConst:true,expression:s.callExpression({functionName:n.name,parameters:p?[s.callExpression({functionName:p.name,parameters:m})]:m}),name:"client"});t.add(f);};var Ai=({plugin:e})=>{let t=e.context.file({id:Ie}),r=H({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),n=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:E}),name:"ClientOptions"}),i=t.import({asType:true,module:r,name:"Config"}),o=t.import({alias:"DefaultClientOptions",asType:true,module:r,name:"ClientOptions"}),p=s.typeReferenceNode({typeName:o.name}),a=s.typeReferenceNode({typeName:"T"}),c=s.typeAliasDeclaration({comment:["The `createClientConfig()` function will be called on client initialization","and the returned object will become the client's initial configuration.","","You may want to initialize your client this way instead of calling","`setConfig()`. This is useful for example if you're using Next.js","to ensure your client always has the correct values."],exportType:true,name:"CreateClientConfig",type:s.functionTypeNode({parameters:[s.parameterDeclaration({name:"override",required:false,type:s.typeReferenceNode({typeArguments:[s.typeIntersectionNode({types:[p,a]})],typeName:i.name})})],returnType:s.typeReferenceNode({typeArguments:[s.typeIntersectionNode({types:[s.typeReferenceNode({typeArguments:[p],typeName:"Required"}),a]})],typeName:i.name})}),typeParameters:[{default:s.typeReferenceNode({typeName:n.name}),extends:p,name:"T"}]});t.add(c);};var pt=({plugin:e})=>{e.createFile({id:Ie,path:e.output}),Ai({plugin:e}),Ii({plugin:e});};var Fr={...ot,config:{...it,throwOnError:false},handler:pt,name:"@hey-api/client-axios"};var Lr={...ot,config:{...it,throwOnError:false},handler:pt,name:"@hey-api/client-fetch"};var Dr={...ot,config:{...it,throwOnError:false},handler:pt,name:"@hey-api/client-next"};var Vr={...ot,config:it,handler:pt,name:"@hey-api/client-nuxt"};var _r={config:{},handler:()=>{},name:"legacy/angular",output:"client",tags:["client"]};var Br={config:{},handler:()=>{},name:"legacy/axios",output:"client",tags:["client"]};var Kr={config:{},handler:()=>{},name:"legacy/fetch",output:"client",tags:["client"]};var Wr={config:{},handler:()=>{},name:"legacy/node",output:"client",tags:["client"]};var Hr={config:{},handler:()=>{},name:"legacy/xhr",output:"client",tags:["client"]};var Ep=[me,ks,Cs,Es,js],Qr=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");if(Mt.lastIndex=0,Mt.test(t))return `_${t}`;for(let r of Ep){if(t.startsWith("_"))return t;t=t.replace(r,"_$1");}return t};var zr="schemas",Wn=({plugin:e,schema:t})=>{e.config.type==="form"&&(t.description&&delete t.description,t["x-enum-descriptions"]&&delete t["x-enum-descriptions"],t["x-enum-varnames"]&&delete t["x-enum-varnames"],t["x-enumNames"]&&delete t["x-enumNames"],t.title&&delete t.title);},Ht=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(i=>Ht({context:e,plugin:t,schema:i}));let n=structuredClone(r);if(n.$ref)return n.$ref=decodeURI(n.$ref),n;if(Wn({plugin:t,schema:n}),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=Ht({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(i=>Ht({context:e,plugin:t,schema:i}))),n.items&&(n.items=Ht({context:e,plugin:t,schema:n.items})),n.properties)for(let i in n.properties){let o=n.properties[i];typeof o!="boolean"&&(n.properties[i]=Ht({context:e,plugin:t,schema:o}));}return n},ct=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(i=>ct({context:e,plugin:t,schema:i}));let n=structuredClone(r);if("$ref"in n)return n.$ref=decodeURI(n.$ref),n;if(Wn({plugin:t,schema:n}),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=ct({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(i=>ct({context:e,plugin:t,schema:i}))),n.anyOf&&(n.anyOf=n.anyOf.map(i=>ct({context:e,plugin:t,schema:i}))),n.items&&(n.items=ct({context:e,plugin:t,schema:n.items})),n.oneOf&&(n.oneOf=n.oneOf.map(i=>ct({context:e,plugin:t,schema:i}))),n.properties)for(let i in n.properties){let o=n.properties[i];typeof o!="boolean"&&(n.properties[i]=ct({context:e,plugin:t,schema:o}));}return n},Ue=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(i=>Ue({context:e,plugin:t,schema:i}));let n=structuredClone(r);if(Wn({plugin:t,schema:n}),n.$ref&&(n.$ref=decodeURI(n.$ref)),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=Ue({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(i=>Ue({context:e,plugin:t,schema:i}))),n.anyOf&&(n.anyOf=n.anyOf.map(i=>Ue({context:e,plugin:t,schema:i}))),n.items&&(n.items=Ue({context:e,plugin:t,schema:n.items})),n.oneOf&&(n.oneOf=n.oneOf.map(i=>Ue({context:e,plugin:t,schema:i}))),n.prefixItems&&(n.prefixItems=n.prefixItems.map(i=>Ue({context:e,plugin:t,schema:i}))),n.properties)for(let i in n.properties){let o=n.properties[i];typeof o!="boolean"&&(n.properties[i]=Ue({context:e,plugin:t,schema:o}));}return n},Hn=({name:e,plugin:t,schema:r})=>{let n="";return t.config.nameBuilder&&(typeof t.config.nameBuilder=="function"?n=t.config.nameBuilder(e,r):n=t.config.nameBuilder.replace("{{name}}",e)),n||(n=`${e}Schema`),Qr(n)},kp=({context:e,plugin:t})=>{if(e.spec.definitions)for(let r in e.spec.definitions){let n=e.spec.definitions[r],i=Ht({context:e,plugin:t,schema:n}),o=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:i}),name:Hn({name:r,plugin:t,schema:n})});e.file({id:zr}).add(o);}},Np=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let n=e.spec.components.schemas[r],i=ct({context:e,plugin:t,schema:n}),o=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:i}),name:Hn({name:r,plugin:t,schema:n})});e.file({id:zr}).add(o);}},vp=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let n=e.spec.components.schemas[r],i=Ue({context:e,plugin:t,schema:n}),o=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:i}),name:Hn({name:r,plugin:t,schema:n})});e.file({id:zr}).add(o);}},Pi=({plugin:e})=>{if(e.createFile({id:zr,path:e.output}),"swagger"in e.context.spec){kp({context:e.context,plugin:e});return}switch(e.context.spec.openapi){case "3.0.0":case "3.0.1":case "3.0.2":case "3.0.3":case "3.0.4":Np({context:e.context,plugin:e});break;case "3.1.0":case "3.1.1":vp({context:e.context,plugin:e});break;default:throw new Error("Unsupported OpenAPI specification")}};var ke=class{_exportFromIndex;_headers=[];_id;_identifierCase;_imports=new Map;_items=[];_name;_path;identifiers={};constructor({dir:t,exportFromIndex:r=false,header:n=true,id:i,identifierCase:o,name:p}){this._exportFromIndex=r,this._id=i,this._identifierCase=o,this._name=this._setName(p),this._path=Bt__default.default.resolve(t,this._name),n&&this._headers.push("// This file is auto-generated by @hey-api/openapi-ts");}add(...t){this._items=this._items.concat(t);}blockIdentifier({$ref:t,namespace:r}){let{name:n,ref:i}=Ci(t),o=this.identifiers[n.toLocaleLowerCase()]?.[r]?.[i];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 zn({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 i=n.get(r.name);return i?{...i,name:i.alias||i.name}:(n.set(r.name,r),{...r,name:r.alias||r.name})}isEmpty(){return !this._items.length}nameWithoutExtension(){let{name:t}=Qn(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=Bt__default.default.resolve(process.cwd(),...m,r);}else {let m=t.file({id:r});if(!m)throw new Error(`File with id ${r} does not exist`);n=m._path;}let i=this._path.split(Bt__default.default.sep),o=n.split(Bt__default.default.sep),p=-1,a="";for(let m of i)if(p+=1,o[p]!==m){let f=Array.from({length:i.length-p}).fill(""),l=o.slice(p),u=l.slice(0,l.length-1);u.length&&u.push(""),a=(f.join("../")||"./")+u.join("/");break}let c=o[o.length-1];return `${a}${Qn(c).name}`}remove(t){bi__default.default.rmSync(this._path,t);}removeNode(){this._items=this._items.slice(0,this._items.length-1);}_setName(t){if(t.includes("index"))return t;let{extension:r,name:n}=Qn(t);return [n,"gen",r].filter(Boolean).join(".")}_toString(t,r){let n=[];this._headers.length&&n.push(this._headers.join(`
`));let i=r?.options.moduleResolution===x__default.default.ModuleResolutionKind.NodeNext,o=[];for(let[p,a]of this._imports.entries()){let c=Array.from(a.values()),m=p;i&&(m.startsWith("./")||m.startsWith("../"))&&(m==="./client"?m="./client/index.js":m=`${m}.js`);let f=s.namedImportDeclarations({imports:c,module:m});o.push(Ae({node:f}));}return o.length&&n.push(o.join(`
`)),n=n.concat(this._items.map(p=>typeof p=="string"?p:Ae({node:p,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 i=this._path.split(Bt__default.default.sep);n=i.slice(0,i.length-1).join(Bt__default.default.sep);}wr(n),bi__default.default.writeFileSync(this._path,this._toString(t,r));}},Ci=e=>{let t=e,r=[],n=t.split("/"),i=n[n.length-1]||"",o=n.indexOf("properties");if(o!==-1)for(t=n.slice(0,o).join("/"),i=n[o-1]||"";o+1<n.length;){let p=n[o+1];if(!p)throw new Error(`Invalid $ref: ${e}`);r.push(p),o+=2;}return {name:i,properties:r,ref:t}},$p=(e,t,r)=>{if(typeof t=="function")return t(e);let n=r==="preserve"?"":"-";return t.replace("{{name}}",`${n}${e}${n}`)},zn=({$ref:e,case:t,count:r=1,create:n=false,identifiers:i,nameTransformer:o,namespace:p})=>{let{name:a,properties:c,ref:m}=Ci(e);if(!a)return {created:false,name:""};let f=P({case:t,value:o?$p(a,o,t):a});r>1&&(f=`${f}${r}`);let l=f.toLocaleLowerCase();i[l]||(i[l]={});let u=i[l];if(p==="enum"&&(u.type||u.value)||p!=="enum"&&u.enum)return zn({$ref:m,case:t,count:r+1,create:n,identifiers:i,nameTransformer:o,namespace:p});u[p]||(u[p]={});let d=u[p],g=d[m];if(g){let A=g.name;return c.length&&(A+=c.map(b=>`['${b}']`).join("")),{created:false,name:A}}let h=d[f];return h?h.$ref===m?{created:false,name:h.name}:zn({$ref:m,case:t,count:r+1,create:n,identifiers:i,nameTransformer:o,namespace:p}):n?(h={$ref:m,name:Qr(f)},d[f]=h,d[h.$ref]=h,{created:true,name:h.name}):(delete u[p],{created:false,name:""})},Qn=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 Fp=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('internal.cjs', document.baseURI).href)));Bt__default.default.dirname(Fp);process.stdin.isTTY&&process.stdout.isTTY;var Ur=class extends Error{args;event;pluginName;constructor({args:t,error:r,event:n,name:i,pluginName:o}){let p=r instanceof Error?r.message:"Unknown error";super(p),this.args=t,this.cause=r.cause,this.event=n,this.name=i||r.name,this.pluginName=o,this.stack=r.stack;}};var Xr=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],i=new Set(r.length?r:["operation","parameter","requestBody","schema","server"]);if(i.has("server")&&this.context.ir.servers)for(let o of this.context.ir.servers){let p={server:o,type:"server"};try{n(p);}catch(a){this.forEachError(a,p);}}if(i.has("schema")&&this.context.ir.components?.schemas)for(let o in this.context.ir.components.schemas){let p={$ref:`#/components/schemas/${o}`,name:o,schema:this.context.ir.components.schemas[o],type:"schema"};try{n(p);}catch(a){this.forEachError(a,p);}}if(i.has("parameter")&&this.context.ir.components?.parameters)for(let o in this.context.ir.components.parameters){let p={$ref:`#/components/parameters/${o}`,name:o,parameter:this.context.ir.components.parameters[o],type:"parameter"};try{n(p);}catch(a){this.forEachError(a,p);}}if(i.has("requestBody")&&this.context.ir.components?.requestBodies)for(let o in this.context.ir.components.requestBodies){let p={$ref:`#/components/requestBodies/${o}`,name:o,requestBody:this.context.ir.components.requestBodies[o],type:"requestBody"};try{n(p);}catch(a){this.forEachError(a,p);}}if(i.has("operation")&&this.context.ir.paths)for(let o in this.context.ir.paths){let p=this.context.ir.paths[o];for(let a in p){let c=a,m={method:c,operation:p[c],path:o,type:"operation"};try{n(m);}catch(f){this.forEachError(f,m);}}}}forEachError(t,r){let n=t instanceof Error?t:new Error(String(t));throw new Ur({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 Gr=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=Bt__default.default.resolve(this.config.output.path,...r.slice(0,r.length-1)),i=new ke({dir:n,exportFromIndex:t.exportFromIndex,id:t.id,identifierCase:t.identifierCase,name:`${r[r.length-1]}.ts`});return this.files[t.id]=i,i}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 Xr({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 _n({$ref:t,spec:this.ir})}resolveRef(t){return _n({$ref:t,spec:this.spec})}};var Jr=({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]},mt=e=>{for(let t in e)if(e[t].required)return true;return false},Ei=e=>e?!!(mt(e.cookie)||mt(e.header)||mt(e.path)||mt(e.query)):false,Un=({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:Jr({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:Jr({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:Jr({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:Jr({context:e,parameter:n})}}}};var ie=({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 p=o.const!==void 0?`const-${o.const}`:"",a=o.format!==void 0&&e?`format-${o.format}`:"",c=`${o.$ref??""}${o.type??""}${p}${a}`;n.includes(c)||(n.push(c),r.push(o));continue}r.push(o);}let i={...t};if(i.items=r,i.items.length<=1&&i.type!=="array"&&i.type!=="enum"&&i.type!=="tuple"){let o=i.items[0];delete i.logicalOperator,delete i.items,i={...i,...o};}return i.type==="unknown"?{}:i};var S=(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 Xn=({items:e,schema:t})=>{for(let r of e)t.accessScopes=S(t.accessScopes,r.accessScopes);t.items=e;},F=({items:e,logicalOperator:t="or",mutateSchemaOneItem:r=false,schema:n})=>e.length?n.type==="tuple"?(Xn({items:e,schema:n}),n):e.length!==1?(Xn({items:e,schema:n}),n.logicalOperator=t,n):r?(n={...n,...e[0]},n):(Xn({items:e,schema:n}),n):n;var Zr=e=>!!(Ei(e.parameters)||e.body?.required),v=({method:e,path:t})=>`${e.toUpperCase()} ${t}`,ki=({context:e,operation:t})=>{let r=t.body;if(!r||!r.pagination)return Un({context:e,parameters:t.parameters});if(r.pagination===true)return {in:"body",name:"body",schema:r.schema};let n=r.schema,i=n.$ref?e.resolveIrRef(n.$ref):n,p=("schema"in i?i.schema:i)?.properties?.[r.pagination];return p?{in:"body",name:r.pagination,schema:p}:Un({context:e,parameters:t.parameters})},Gn=({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`}},Ne=e=>{let t={};if(!e.responses)return t;let r={properties:{},type:"object"},n={properties:{},type:"object"},i;for(let a in e.responses){let c=e.responses[a];switch(Gn({statusCode:a})){case "1XX":case "3XX":break;case "2XX":n.properties[a]=c.schema;break;case "4XX":case "5XX":r.properties[a]=c.schema;break;case "default":i=c;break}}if(i){let a=false;Object.keys(n.properties).length||(n.properties.default=i.schema,a=true);let c=(i.schema.description??"").toLocaleLowerCase(),m=(i.schema.$ref??"").toLocaleLowerCase();["success"].some(u=>c.includes(u)||m.includes(u))&&(n.properties.default=i.schema,a=true),["error","problem"].some(u=>c.includes(u)||m.includes(u))&&(r.properties.default=i.schema,a=true),a||(r.properties.default=i.schema);}let o=Object.keys(r.properties);if(o.length){r.required=o,t.errors=r;let a=F({items:Object.values(r.properties),mutateSchemaOneItem:true,schema:{}});a=ie({schema:a}),Object.keys(a).length&&a.type!=="unknown"&&(t.error=a);}let p=Object.keys(n.properties);if(p.length){n.required=p,t.responses=n;let a=F({items:Object.values(n.properties),mutateSchemaOneItem:true,schema:{}});a=ie({schema:a}),Object.keys(a).length&&a.type!=="unknown"&&(t.response=a);}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"}},Ni="/",O=(e,t="")=>`${e}${Ni}${t}`,K=e=>{let t=e.indexOf(Ni);return {name:e.slice(t+1),namespace:e.slice(0,t)}};var Pt=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");return Mt.lastIndex=0,Mt.test(t)?`_${t}`:t},ft=e=>e.replace(/^[^\p{ID_Start}]+/u,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"-").replace(/[$+]/g,"-"),Jn=e=>{let t=e.replace("[]","Array");return ft(t)};var Y=["delete","get","head","options","patch","post","put","trace"],jt=({context:e