@hey-api/openapi-ts
Version:
🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more.
6 lines • 267 kB
JavaScript
'use strict';var Wt=require('path'),c12=require('c12'),x=require('typescript'),os$1=require('os'),qo=require('fs'),url=require('url'),mn=require('ansi-colors'),jsonSchemaRefParser=require('@hey-api/json-schema-ref-parser');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Wt__default=/*#__PURE__*/_interopDefault(Wt);var x__default=/*#__PURE__*/_interopDefault(x);var qo__default=/*#__PURE__*/_interopDefault(qo);var mn__default=/*#__PURE__*/_interopDefault(mn);var Ie="client",te=e=>{let t=j(e);return t.name==="@hey-api/client-axios"||t.name==="@hey-api/client-nuxt"?"baseURL":"baseUrl"},j=e=>{for(let t of e.pluginOrder){let r=e.plugins[t];if(r?.tags?.includes("client"))return r}return {config:{name:""},name:""}};var Fs,T=()=>{let e=Fs,t=j(e);return e.client=t,e},Ls=e=>(Fs=e,T()),_=e=>j(e).name.startsWith("legacy/"),Ot=e=>{if(_(e))return e.name};var ar={enabled:false,interval:1e3,timeout:6e4},Ds=e=>{let t={...ar};return typeof e.path!="string"||(typeof e.watch=="boolean"?t.enabled=e.watch:typeof e.watch=="number"?(t.enabled=true,t.interval=e.watch):e.watch&&(t={...t,...e.watch})),t},Vs=e=>{let t={path:"",watch:ar};return typeof e.input=="string"?t.path=e.input:e.input&&(e.input.path!==void 0||e.input.organization!==void 0)?(t={...t,path:"https://get.heyapi.dev",...e.input},t.watch!==void 0&&(t.watch=Ds(t))):t={...t,path:e.input},e.watch!==void 0&&t.watch.enabled===ar.enabled&&t.watch.interval===ar.interval&&t.watch.timeout===ar.timeout&&(t.watch=Ds({path:t.path,watch:e.watch})),t};var _s=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 mp=(e,t)=>({...e||{},...t||{}}),zn=(e,t)=>{let r=e||{},n=t||{},o={...r,...n};return typeof o.logs=="object"&&(o.logs=mp(r.logs,n.logs)),o};var Ks=e=>{let t={clean:true,format:false,indexFile:true,lint:false,path:"",tsConfigPath:""};return typeof e.output=="string"?t.path=e.output:t={...t,...e.output},t};var pr=(e,t)=>{for(let[r,n]of Object.entries(t))n!==void 0&&n!==""&&(e[r]=n);return e},St=({defaultValue:e,mappers:t,value:r})=>{let n={...e};switch(typeof r){case "boolean":if(t&&"boolean"in t){let o=t.boolean;n=pr(n,o(r));}break;case "number":if(t&&"number"in t){let o=t.number;n=pr(n,o(r));}break;case "string":if(t&&"string"in t){let o=t.string;n=pr(n,o(r));}break;case "object":if(r!==null)if(t&&"object"in t&&typeof t.object=="function"){let o=t.object;n=pr(n,o(r));}else n=pr(n,r);break}return n};var fp=["after","before","cursor","offset","page","start"],Bs=e=>{let t={...e.parser,pagination:{keywords:fp},transforms:{enums:{case:"PascalCase",enabled:false,mode:"root",name:"{{name}}Enum"},readWrite:{enabled:true,requests:{case:"preserve",name:"{{name}}Writable"},responses:{case:"preserve",name:"{{name}}"}}},validate_EXPERIMENTAL:false};return e.parser&&(e.parser.pagination?.keywords&&(t.pagination.keywords=e.parser.pagination.keywords),e.parser.transforms&&(e.parser.transforms.enums!==void 0&&(t.transforms.enums=St({defaultValue:{...t.transforms.enums,enabled:!!e.parser.transforms.enums},mappers:{boolean:r=>({enabled:r}),string:r=>({mode:r})},value:e.parser.transforms.enums})),e.parser.transforms.readWrite!==void 0&&(t.transforms.readWrite=St({defaultValue:{...t.transforms.readWrite,enabled:!!e.parser.transforms.readWrite},mappers:{boolean:r=>({enabled:r}),object:r=>({...r,requests:St({defaultValue:t.transforms.readWrite.requests,mappers:{string:n=>({name:n})},value:r.requests}),responses:St({defaultValue:t.transforms.readWrite.responses,mappers:{string:n=>({name:n})},value:r.responses})})},value:e.parser.transforms.readWrite}))),e.parser.validate_EXPERIMENTAL&&(t.validate_EXPERIMENTAL=e.parser.validate_EXPERIMENTAL===true?"warn":e.parser.validate_EXPERIMENTAL)),t};var st={baseUrl:true,bundle:true,exportFromIndex:false},ot={dependencies:["@hey-api/typescript"],output:"client",tags:["client"]};var Lt=/^[^$_\p{ID_Start}]+/u,ae=/^-?\d+(\.\d+)?$/,Ws=/^(document|history|location|navigator|window)$/g,Hs=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,pe=/^(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,Us=/^(global|process|Buffer)$/g,zs=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,xe=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;var Ue=e=>(e||e==="")&&(xe.lastIndex=0,!xe.test(e))?`'${e}'`:e,cr=e=>e&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,e.length-1):e,F=e=>e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,(t,r)=>os$1.EOL+r.trim());var up=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),dp=Qs(""),yp=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=up.printNode(x__default.default.EmitHint.Unspecified,e,dp);if(!t)return r;try{return yp(r)}catch{return T().logs.level==="debug"&&console.warn("Could not decode value:",r),r}}function Xs(e){return Qs(e).statements[0]}var O=({text:e})=>x__default.default.factory.createIdentifier(e),Js=()=>x__default.default.factory.createThis(),V=({keyword:e})=>{let t=Qn({keyword:e});return x__default.default.factory.createModifier(t)},Gs=({initializer:e,modifier:t,name:r,type:n})=>x__default.default.factory.createPropertyDeclaration(t?[V({keyword:t})]:void 0,r,void 0,n,e),re={boolean:e=>e?x__default.default.factory.createTrue():x__default.default.factory.createFalse(),export:({alias:e,asType:t=false,name:r})=>{let n=O({text:r});if(e){let o=O({text:e});return x__default.default.factory.createExportSpecifier(t,n,o)}return x__default.default.factory.createExportSpecifier(t,void 0,n)},import:({alias:e,asType:t=false,name:r})=>{let n=O({text:r});if(e){let o=O({text:e});return x__default.default.factory.createImportSpecifier(t,n,o)}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=cr(r));let n=r.includes("'")&&r.includes('"'),o=r.includes(`
`),i=r.startsWith("`"),a=r.startsWith("\\`")&&r.endsWith("\\`");return (o||n||i)&&!a&&(r=`\`${r.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),r.startsWith("`")?O({text:r}):Tt({text:r})}},Rt=e=>e!==null&&typeof e=="object"&&typeof e.kind=="number"&&typeof e.flags=="number"&&typeof e.pos=="number"&&typeof e.end=="number",it=e=>e!==void 0,gp=({commentObject:e,node:t})=>{let r=e.lines.filter(a=>!!a||a==="");if(!r.length)return;if(!e.jsdoc){for(let a of r)x__default.default.addSyntheticLeadingComment(t,x__default.default.SyntaxKind.SingleLineCommentTrivia,` ${a}`,true);return}let n=r.map((a,p)=>{let c=a;return p!==r.length&&(c=`${c}
`),x__default.default.factory.createJSDocText(c)}),o=x__default.default.factory.createJSDocComment(x__default.default.factory.createNodeArray(n),void 0),i=Ae({node:o,unescape:true}).replace("/*","").replace("* */","");x__default.default.addSyntheticLeadingComment(t,x__default.default.SyntaxKind.MultiLineCommentTrivia,i,true);},U=({comments:e=[],node:t})=>{let r=!!e.find(o=>typeof o=="object"&&o),n=e;r||(n=[{jsdoc:true,lines:e}]);for(let o of n)gp({commentObject:o,node:t});};var z=(e,t)=>x__default.default.isTypeNode(e)?e:typeof e=="number"?x__default.default.factory.createLiteralTypeNode(re.number(e)):ce({typeArguments:t?.map(r=>z(r)),typeName:e}),Xn=({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"?O({text:e}):e;if(t&&typeof r!="number")return Xn({expression:n,name:r});if(typeof r=="string"){if(xe.lastIndex=0,!xe.test(r)){!r.startsWith("'")&&!r.endsWith("'")&&(r=`'${r}'`);let i=O({text:r});return x__default.default.factory.createElementAccessExpression(n,i)}let o=O({text:r});return x__default.default.factory.createPropertyAccessExpression(n,o)}if(typeof r=="number"){let o=x__default.default.factory.createNumericLiteral(r);return x__default.default.factory.createElementAccessExpression(n,o)}return x__default.default.factory.createPropertyAccessExpression(n,r)},Jn=()=>x__default.default.factory.createNull(),Pe=({identifiers:e=[],isValueAccess:t,shorthand:r,unescape:n,value:o})=>{if(o===null)return Jn();if(Array.isArray(o))return Gn({elements:o});if(typeof o=="object")return Lr({identifiers:e,obj:o,shorthand:r});if(typeof o=="number")return re.number(o);if(typeof o=="boolean")return re.boolean(o);if(typeof o=="string"){if(t){let i=o.split(".");return je({expression:i[0],name:i[1]})}return re.string(o,n)}},mr=e=>e.map(t=>{if("destructure"in t)return Dt({name:x__default.default.factory.createObjectBindingPattern(t.destructure.map(n=>"destructure"in n?void 0:x__default.default.factory.createBindingElement(void 0,void 0,O({text:n.name}),void 0)).filter(Boolean)),type:t.type!==void 0?z(t.type):void 0});let r=t.accessLevel?[V({keyword:t.accessLevel})]:[];return t.isReadOnly&&r.push(V({keyword:"readonly"})),Dt({initializer:t.default!==void 0?Pe({value:t.default}):void 0,modifiers:r,name:O({text:t.name}),required:t.isRequired!==false,type:t.type!==void 0?z(t.type):void 0})}),Qn=({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}"`)}},It=({keyword:e})=>{let t=Qn({keyword:e});return x__default.default.factory.createKeywordTypeNode(t)},fr=e=>e.map(t=>x__default.default.isTypeParameterDeclaration(t)?t:lr({constraint:t.extends?typeof t.extends=="string"?It({keyword:"boolean"}):t.extends:void 0,defaultType:t.default!==void 0?Rt(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})),Zs=({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)},lr=({constraint:e,defaultType:t,modifiers:r,name:n})=>x__default.default.factory.createTypeParameterDeclaration(r,n,e,t),Mr=({members:e,nameType:t,questionToken:r,readonlyToken:n,type:o,typeParameter:i})=>x__default.default.factory.createMappedTypeNode(n,i,t,r,o,e),Ys=({literal:e})=>x__default.default.factory.createLiteralTypeNode(e),Fr=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:o,statements:i=[],types:a=[]})=>{let p=x__default.default.factory.createArrowFunction(e?[V({keyword:"async"})]:void 0,a?fr(a):void 0,mr(n),o?z(o):void 0,void 0,Array.isArray(i)?me({multiLine:r,statements:i}):i);return U({comments:t,node:p}),p},eo=({async:e,comment:t,multiLine:r,parameters:n=[],returnType:o,statements:i=[],types:a=[]})=>{let p=x__default.default.factory.createFunctionExpression(e?[V({keyword:"async"})]:void 0,void 0,void 0,a?fr(a):void 0,mr(n),o?z(o):void 0,me({multiLine:r,statements:i}));return U({comments:t,node:p}),p},Gn=({elements:e,multiLine:t=false})=>x__default.default.factory.createArrayLiteralExpression(e.map(n=>Rt(n)?n:Pe({value:n})).filter(it),t||!Array.isArray(e[0])&&typeof e[0]=="object"),to=({expression:e})=>x__default.default.factory.createAwaitExpression(e),ro=({parameters:e=[],returnType:t,typeParameters:r})=>x__default.default.factory.createFunctionTypeNode(r,e,t),Lr=({comments:e,identifiers:t=[],multiLine:r=true,obj:n,shorthand:o,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=Rt(c.spread)?c.spread:O({text:c.spread});f=x__default.default.factory.createSpreadAssignment(c.assertion?dr({expression:l,type:typeof c.assertion=="string"?It({keyword:c.assertion}):c.assertion}):l);}else if(c.shorthand||o&&m)f=x__default.default.factory.createShorthandPropertyAssignment(c.value);else {let l=Rt(c.value)?c.value:Array.isArray(c.value)&&(!c.value.length||typeof c.value[0]=="object")?Lr({multiLine:r,obj:c.value,shorthand:o,unescape:i}):Pe({identifiers:t.includes(c.key)?Object.keys(c.value):[],isValueAccess:c.isValueAccess,shorthand:o,unescape:i,value:c.value});if(!l)return;t.includes(c.key)&&!x__default.default.isObjectLiteralExpression(l)&&(l=O({text:c.value})),f=qr({initializer:l,name:c.key});}return U({comments:c.comments,node:f}),f}).filter(it):Object.entries(n).map(([c,m])=>{let f=Pe({identifiers:t.includes(c)?Object.keys(m):[],shorthand:o,unescape:i,value:m});if(!f)return;t.includes(c)&&!x__default.default.isObjectLiteralExpression(f)&&(f=O({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}'`),o&&l?x__default.default.factory.createShorthandPropertyAssignment(m):qr({initializer:f,name:c})}).filter(it),p=x__default.default.factory.createObjectLiteralExpression(a,r);return U({comments:e,node:p}),p},no=({comments:e={},leadingComment:t,name:r,obj:n})=>{let o=Array.isArray(n)?n.map(a=>{let p=xp({initializer:Pe({value:a.value}),name:a.key});return U({comments:a.comments,node:p}),p}):Object.entries(n).map(([a,p])=>{let c=x__default.default.factory.createEnumMember(a,Pe({unescape:true,value:p}));return U({comments:e[a],node:c}),c}),i=x__default.default.factory.createEnumDeclaration([V({keyword:"export"})],O({text:r}),o);return U({comments:t,node:i}),i},xp=({initializer:e,name:t})=>{let r=t;return typeof r=="string"&&(r.includes("'")?r=Tt({isSingleQuote:false,text:r}):r=Ue(r)),x__default.default.factory.createEnumMember(r,e)},so=({name:e,statements:t})=>x__default.default.factory.createModuleDeclaration([V({keyword:"export"})],O({text:e}),x__default.default.factory.createModuleBlock(t),x__default.default.NodeFlags.Namespace),oo=({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)),io=({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),ao=({text:e})=>x__default.default.factory.createTypeOfExpression(O({text:e})),po=({comment:e,exportType:t,name:r,type:n,typeParameters:o=[]})=>{let i=x__default.default.factory.createTypeAliasDeclaration(t?[V({keyword:"export"})]:void 0,O({text:r}),fr(o),z(n));return U({comments:e,node:i}),i},ce=({typeArguments:e,typeName:t})=>x__default.default.factory.createTypeReferenceNode(t,e),co=({type:e})=>x__default.default.factory.createParenthesizedType(e),Dt=({initializer:e,modifiers:t,name:r,required:n=true,type:o})=>x__default.default.factory.createParameterDeclaration(t,void 0,r,n?void 0:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),o,e),ur=({argumentsArray:e,expression:t,typeArguments:r})=>x__default.default.factory.createNewExpression(t,r,e),mo=({awaitModifier:e,expression:t,initializer:r,statement:n})=>x__default.default.factory.createForOfStatement(e,r,t,n),fo=({left:e,right:t})=>x__default.default.factory.createAssignment(e,t),me=({multiLine:e=true,statements:t})=>x__default.default.factory.createBlock(t,e),qr=({initializer:e,name:t})=>x__default.default.factory.createPropertyAssignment(t,e),lo=({flags:e=[],text:t})=>{let r=t.startsWith("/")&&t.endsWith("/")?t:`/${t}/`;return x__default.default.factory.createRegularExpressionLiteral(`${r}${e.join("")}`)},dr=({expression:e,type:t})=>x__default.default.factory.createAsExpression(e,t),uo=({value:e})=>{let t=[],r="";for(let o of e.slice(0).reverse())if(typeof o=="string")r=`${o}${r}`;else {let i=t.length?x__default.default.factory.createTemplateMiddle(r):x__default.default.factory.createTemplateTail(r),a=x__default.default.factory.createTemplateLiteralTypeSpan(o,i);t.push(a),r="";}return x__default.default.factory.createTemplateLiteralType(x__default.default.factory.createTemplateHead(r),t.reverse())};var yo=({module:e})=>x__default.default.factory.createExportDeclaration(void 0,false,void 0,re.string(e)),Ce=({functionName:e,parameters:t=[],types:r})=>{let n=typeof e=="string"?O({text:e}):e,o=t.filter(a=>a!==void 0).map(a=>typeof a=="string"?O({text:a}):a);return x__default.default.factory.createCallExpression(n,r,o)},go=({exports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(c=>typeof c!="object"||!c.asType),o=r.map(c=>{let m=typeof c=="string"?{name:c}:c;return re.export({alias:m.alias,asType:n&&m.asType,name:m.name})}),i=x__default.default.factory.createNamedExports(o),a=re.string(t);return x__default.default.factory.createExportDeclaration(void 0,!n,i,a)},ho=({assertion:e,comment:t,destructure:r,exportConst:n,expression:o,name:i,typeName:a})=>{let p=e?dr({expression:o,type:typeof e=="string"?ce({typeName:e}):e}):o,c=O({text:i}),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,a?typeof a=="string"?ce({typeName:a}):a:void 0,p),f=x__default.default.factory.createVariableStatement(n?[V({keyword:"export"})]:void 0,x__default.default.factory.createVariableDeclarationList([m],x__default.default.NodeFlags.Const));return U({comments:t,node:f}),f},xo=({imports:e,module:t})=>{let r=Array.isArray(e)?e:[e],n=r.some(f=>typeof f!="object"||!f.asType),o,i=[];r.forEach(f=>{let l=typeof f=="string"?{name:f}:f;l.name==="*"&&l.alias?o=l:i.push(re.import({alias:l.alias,asType:n&&l.asType,name:l.name}));});let a=o?x__default.default.factory.createNamespaceImport(O({text:o.alias})):x__default.default.factory.createNamedImports(i),p=x__default.default.factory.createImportClause(!n,void 0,a),c=re.string(t);return x__default.default.factory.createImportDeclaration(void 0,p,c)};var bo=({accessLevel:e,comment:t,multiLine:r=true,parameters:n=[],statements:o=[]})=>{let i=e?[V({keyword:e})]:void 0,a=x__default.default.factory.createConstructorDeclaration(i,mr(n),me({multiLine:r,statements:o}));return U({comments:t,node:a}),a},Oo=({accessLevel:e,comment:t,isStatic:r=false,multiLine:n=true,name:o,parameters:i=[],returnType:a,statements:p=[],types:c=[]})=>{let m=e?[V({keyword:e})]:[];r&&m.push(V({keyword:"static"}));let f=x__default.default.factory.createMethodDeclaration(m,void 0,O({text:o}),void 0,c?fr(c):void 0,mr(i),a?z(a):void 0,me({multiLine:n,statements:p}));return U({comments:t,node:f}),f},So=({decorator:e,exportClass:t,extendedClasses:r,name:n,nodes:o})=>{let i=[];t&&i.push(V({keyword:"export"})),e&&i.unshift(x__default.default.factory.createDecorator(Ce({functionName:e.name,parameters:e.args.map(p=>Pe({value:p})).filter(it)})));let a=[];if(r)for(let p of r)a.push(x__default.default.factory.createHeritageClause(x__default.default.SyntaxKind.ExtendsKeyword,[x__default.default.factory.createExpressionWithTypeArguments(O({text:p}),void 0)]));return x__default.default.factory.createClassDeclaration(i,O({text:n}),void 0,a,o)};var Pt=({expression:e})=>x__default.default.factory.createExpressionStatement(e);var Dr=({expression:e})=>x__default.default.factory.createReturnStatement(e),To=({args:e=[],name:t,types:r=[]})=>{let n=r.map(p=>ce({typeName:p})),o=e.map(p=>x__default.default.isExpression(p)?p:O({text:p})).filter(it),i=Ce({functionName:t,parameters:o,types:n});return Dr({expression:i})},Io=({expression:e})=>Dr({expression:typeof e=="string"?O({text:e}):e});var Vt=e=>e.slice(1).reduce((t,r)=>(xe.lastIndex=0,xe.test(r)?Xn({expression:t,name:r}):x__default.default.factory.createElementAccessChain(t,x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionDotToken),O({text:r}))),O({text:e[0]})),Vr=e=>e.slice(1).reduce((t,r)=>je({expression:t,name:r}),O({text:e[0]})),Ao=({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"?O({text:r}):r),_t=({elseStatement:e,expression:t,thenStatement:r})=>x__default.default.factory.createIfStatement(t,r,e),Po=({path:e})=>{let t=Vt(e),r=Vr(e),n=me({statements:[Pt({expression:_r({left:r,right:ur({argumentsArray:[r],expression:O({text:"Date"})})})})]});return _t({expression:t,thenStatement:n})},jo=({path:e,transformerName:t})=>{let r=Vt(e),n=Vr(e),o=me({statements:[Pt({expression:Ce({functionName:t,parameters:[n]})})]});return [_t({expression:r,thenStatement:o})]},Co=({path:e,transformerName:t})=>{let r=Vt(e),n=Vr(e);return _t({expression:Ce({functionName:je({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:me({statements:[Pt({expression:x__default.default.factory.createCallChain(je({expression:n,name:"forEach"}),void 0,void 0,[O({text:t})])})]})})},ko=({parameterName:e})=>{let t=O({text:"Date"});return ur({argumentsArray:[O({text:e})],expression:t})},Eo=({path:e,transformExpression:t})=>{let r=Vt(e),n=Vr(e);return _t({expression:Ce({functionName:je({expression:"Array",name:"isArray"}),parameters:[r]}),thenStatement:me({statements:[Pt({expression:_r({left:n,right:x__default.default.factory.createCallChain(je({expression:n,name:"map"}),void 0,void 0,[Fr({parameters:[{name:"item"}],statements:t})])})})]})})};var Pp=ce({typeName:"null"}),Kt=({isNullable:e,node:t})=>e?x__default.default.factory.createUnionTypeNode([t,Pp]):t,Zn=({indexKey:e,indexProperty:t,isNullable:r,properties:n,useLegacyResolution:o})=>{let a=n.map(m=>{let f=m.isReadOnly?[V({keyword:"readonly"})]:void 0,l=m.isRequired!==false?void 0:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),u=z(m.type);let d=x__default.default.factory.createPropertySignature(f,o||typeof m.name=="string"&&m.name.match(xe)||typeof m.name!="string"&&x__default.default.isPropertyName(m.name)?m.name:Tt({text:m.name}),l,u);return U({comments:m.comment,node:d}),d}),p=false;if(t)if(!n.length&&e){let m=Mr({questionToken:x__default.default.factory.createToken(x__default.default.SyntaxKind.QuestionToken),type:t.type??It({keyword:"string"}),typeParameter:lr({constraint:ce({typeName:e}),name:O({text:String(t.name)})})});a.push(m),p=true;}else {let m=t.isReadOnly?[V({keyword:"readonly"})]:void 0,f=x__default.default.factory.createIndexSignature(m,[Dt({name:O({text:String(t.name)}),type:It({keyword:"string"})})],z(t.type));a.push(f);}let c=p?a[0]:x__default.default.factory.createTypeLiteralNode(a);return Kt({isNullable:r,node:c})},yr=({isNullable:e,types:t})=>{let r=t.map(o=>z(o)),n=x__default.default.factory.createUnionTypeNode(r);return Kt({isNullable:e,node:n})},No=({isNullable:e,types:t})=>{let r=t.map(o=>z(o)),n=x__default.default.factory.createIntersectionTypeNode(r);return Kt({isNullable:e,node:n})},vo=({isNullable:e=false,types:t})=>{let r=t.map(o=>z(o)),n=x__default.default.factory.createTupleTypeNode(r);return Kt({isNullable:e,node:n})},wo=(e,t,r=false,n=true)=>{let o=yr({types:e}),i=yr({types:t}),a=Zn({properties:[{name:`[key: ${Ae({node:o,unescape:true})}]`,type:i}],useLegacyResolution:n});return Kt({isNullable:r,node:a})},$o=(e,t=false)=>{let r=ce({typeArguments:[Array.isArray(e)?yr({types:e}):e],typeName:"Array"});return Kt({isNullable:t,node:r})};var s={anonymousFunction:eo,arrayLiteralExpression:Gn,arrowFunction:Fr,asExpression:dr,assignment:fo,awaitExpression:to,binaryExpression:_r,block:me,callExpression:Ce,classDeclaration:So,conditionalExpression:io,constVariable:ho,constructorDeclaration:bo,enumDeclaration:no,exportAllDeclaration:yo,exportNamedDeclaration:go,expressionToStatement:Pt,forOfStatement:mo,functionTypeNode:ro,identifier:O,ifStatement:_t,indexedAccessTypeNode:oo,isTsNode:Rt,keywordTypeNode:It,literalTypeNode:Ys,mappedTypeNode:Mr,methodDeclaration:Oo,namedImportDeclarations:xo,namespaceDeclaration:so,newExpression:ur,nodeToString:Ae,null:Jn,objectExpression:Lr,ots:re,parameterDeclaration:Dt,propertyAccessExpression:je,propertyAccessExpressions:Ao,propertyAssignment:qr,propertyDeclaration:Gs,regularExpressionLiteral:lo,returnFunctionCall:To,returnStatement:Dr,returnVariable:Io,safeAccessExpression:Vt,stringLiteral:Tt,stringToTsNodes:Xs,templateLiteralType:uo,this:Js,transformArrayMap:Eo,transformArrayMutation:Co,transformDateMutation:Po,transformFunctionMutation:jo,transformNewDate:ko,typeAliasDeclaration:po,typeArrayNode:$o,typeInterfaceNode:Zn,typeIntersectionNode:No,typeNode:z,typeOfExpression:ao,typeOperatorNode:Zs,typeParameterDeclaration:lr,typeParenthesizedNode:co,typeRecordNode:wo,typeReferenceNode:ce,typeTupleNode:vo,typeUnionNode:yr,valueToExpression:Pe};var Kr=e=>{qo__default.default.existsSync(e)||qo__default.default.mkdirSync(e,{recursive:true});};var Bt=({moduleOutput:e,sourceOutput:t})=>{let r=t.split("/");return `${Array.from({length:r.length}).fill("").join("../")||"./"}${e}`};var kp=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)));Wt__default.default.dirname(kp);var Ep=e=>{let t=e.split(Wt__default.default.sep);return t.slice(0,t.length-1).join(Wt__default.default.sep)},K=({config:e,sourceOutput:t})=>{let r=j(e);if("bundle"in r.config&&r.config.bundle)return Bt({moduleOutput:"client",sourceOutput:t});if(Wt__default.default.isAbsolute(r.name)){let n=Ep(r.name),o=Wt__default.default.resolve(e.output.path);return Wt__default.default.relative(o,n).replace(/\\/g,"/")}return r.name},D={Options:{asType:true,name:"Options"},OptionsLegacyParser:{asType:true,name:"OptionsLegacyParser"}};var Mo=/^(([^:/?#]+):)?((\/\/)?([^:/?#]*)(:?([^/?#]*)))?([^?#]*)(\?([^#]*))?(#(.*))?/,ke=e=>{let t={host:"",path:"",port:"",protocol:""};Mo.lastIndex=0;let r=e.match(Mo);if(!r)return t;let n=r[5]||"";if(n==="."||n==="..")return t;let o=r[8]||"",i=r[2]||"";return i.length===1?t:{host:n,path:o==="/"?"":o,port:r[7]||"",protocol:i}};var Np=/~1/g,vp=/~0/g,Ht="#/ir/",Br=e=>{let t=Oe(e);return t.length===3&&t[0]==="components"},Q=e=>{let t=Oe(e),r=t[t.length-1];return decodeURI(r)},wp=e=>String(e).replace(/~/g,"~0").replace(/\//g,"~1"),Oe=e=>{let t=e.trim();return t.startsWith("#")&&(t=t.slice(1)),t.startsWith("/")&&(t=t.slice(1)),t?t.split("/").map(r=>r.replace(Np,"/").replace(vp,"~")):[]},Fo=e=>{let t=e.trim();return t.startsWith("#")||(t=`#${t}`),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t=t.replace(/\/+/g,"/"),t},Lo=e=>{let t=e.map(wp).join("/");return "#"+(t?`/${t}`:"")},Yn=({$ref:e,spec:t})=>{let r=Oe(decodeURI(e)),n=t;for(let o of r){let i=o;if(n[i]===void 0)throw new Error(`Reference not found: ${e}`);n=n[i];}return n};var Do=/[\p{Lu}]/u,es=/[\p{Ll}]/u,_o=/([\p{Alpha}\p{N}_]|$)/u,Ut=/[_.\- `\\[\]{}\\/]+/,$p=new RegExp(`^${Ut.source}`),ts=new RegExp(`${Ut.source}${_o.source}`,"gu"),Vo=new RegExp(`\\d+${_o.source}`,"gu"),qp=({case:e,string:t})=>{let r=false,n=false,o=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(Ut.lastIndex=0;f&&Ut.test(f);)m+=1,f=t[m];let l=m!==p+1;if(es.lastIndex=0,Do.lastIndex=0,Do.test(c)&&(r||f&&!l&&f!=="s"&&es.test(f)))t=`${t.slice(0,p)}${a}${t.slice(p)}`,p++,o=n,r=false,n=true;else if(n&&o&&es.test(c)&&!i&&!(c==="s"&&(!f||f.toLocaleLowerCase()!==f)))t=`${t.slice(0,p-1)}${a}${t.slice(p-1)}`,o=n,r=true,n=false;else {let u=c.toLocaleLowerCase(),d=c.toLocaleUpperCase();o=n,r=u===c&&d!==c,n=d===c&&u!==c;}}return t},A=({case:e,stripLeadingSeparators:t=true,value:r})=>{let n=r.trim();return n.length?!e||e==="preserve"?n:n.length===1?(Ut.lastIndex=0,Ut.test(n)?"":e==="PascalCase"||e==="SCREAMING_SNAKE_CASE"?n.toLocaleUpperCase():n.toLocaleLowerCase()):(n!==n.toLocaleLowerCase()&&(n=qp({case:e,string:n})),(t||n[0]!==r[0])&&(n=n.replace($p,"")),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(ts,(i,a,p)=>p===0&&!t?i:`_${a}`),n[n.length-1]==="_"&&(n=n.slice(0,n.length-1))):(ts.lastIndex=0,Vo.lastIndex=0,n=n.replaceAll(Vo,(i,a,p)=>["_","-","."].includes(n.charAt(p+i.length))?i:i.toLocaleUpperCase()),n=n.replaceAll(ts,(i,a,p)=>p===0&&!t&&i[0]&&r.startsWith(i[0])?i:a.toLocaleUpperCase())),n):""};var Y=({case:e="PascalCase",config:t,id:r,parameterId:n,type:o})=>{let i="";switch(o){case "data":case "error":case "errors":case "parameter":case "response":case "responses":i=`${(o[0]??"").toLocaleUpperCase()}${o.slice(1)}`;break}let a=true;t.plugins["@hey-api/typescript"]?.config.case==="preserve"&&(a=false);let p=a?"-":"",c=[Ht,A({case:e,value:r}),p,i];return n&&c.push(p,A({case:e,value:n})),c.join("")};var P="types";function Mp(e,t){return {...e,get name(){return t?.(e),e.name}}}var Se=({context:e,file:t,operation:r,type:n})=>{let o=e.file({id:P}).identifier({$ref:Y({config:e.config,id:r.id,type:n}),namespace:"type"});return Mp(o,i=>{i.name&&t.import({asType:true,module:t.relativePathToFile({context:e,id:P}),name:i.name});})};var Fp=({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},Ko=({plugin:e})=>{let t=e.context.file({id:Ie}),r=K({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),n=t.import({module:r,name:"createClient"}),o=t.import({module:r,name:"createConfig"}),i=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:P}),name:"ClientOptions"}),a=e.config.runtimeConfigPath?t.import({module:t.relativePathToFile({context:e.context,id:e.config.runtimeConfigPath}),name:"createClientConfig"}):void 0,p=[],c=Fp({plugin:e});if(c){let l=ke(c);if(l.protocol&&l.host&&!c.includes("{"))p.push({key:te(e.context.config),value:c});else if(c!=="/"&&c.startsWith("/")){let u=c.endsWith("/")?c.slice(0,-1):c;p.push({key:te(e.context.config),value:u});}}"throwOnError"in e.config&&e.config.throwOnError&&p.push({key:"throwOnError",value:true});let m=[s.callExpression({functionName:o.name,parameters:p.length?[s.objectExpression({obj:p})]:void 0,types:[s.typeReferenceNode({typeName:i.name})]})],f=s.constVariable({exportConst:true,expression:s.callExpression({functionName:n.name,parameters:a?[s.callExpression({functionName:a.name,parameters:m})]:m}),name:"client"});t.add(f);};var Bo=({plugin:e})=>{let t=e.context.file({id:Ie}),r=K({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),n=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:P}),name:"ClientOptions"}),o=t.import({asType:true,module:r,name:"Config"}),i=t.import({alias:"DefaultClientOptions",asType:true,module:r,name:"ClientOptions"}),a=s.typeReferenceNode({typeName:i.name}),p=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:[a,p]})],typeName:o.name})})],returnType:s.typeReferenceNode({typeArguments:[s.typeIntersectionNode({types:[s.typeReferenceNode({typeArguments:[a],typeName:"Required"}),p]})],typeName:o.name})}),typeParameters:[{default:s.typeReferenceNode({typeName:n.name}),extends:a,name:"T"}]});t.add(c);};var at=({plugin:e})=>{e.createFile({id:Ie,path:e.output}),Bo({plugin:e}),Ko({plugin:e});};var Wr={...ot,config:{...st,throwOnError:false},handler:at,name:"@hey-api/client-axios"};var Hr={...ot,config:{...st,throwOnError:false},handler:at,name:"@hey-api/client-fetch"};var Ur={...ot,config:{...st,throwOnError:false},handler:at,name:"@hey-api/client-next"};var zr={...ot,config:st,handler:at,name:"@hey-api/client-nuxt"};var Qr={config:{},handler:()=>{},name:"legacy/angular",output:"client",tags:["client"]};var Xr={config:{},handler:()=>{},name:"legacy/axios",output:"client",tags:["client"]};var Jr={config:{},handler:()=>{},name:"legacy/fetch",output:"client",tags:["client"]};var Gr={config:{},handler:()=>{},name:"legacy/node",output:"client",tags:["client"]};var Zr={config:{},handler:()=>{},name:"legacy/xhr",output:"client",tags:["client"]};var zp=[pe,zs,Hs,Us,Ws],Yr=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");if(Lt.lastIndex=0,Lt.test(t))return `_${t}`;for(let r of zp){if(t.startsWith("_"))return t;t=t.replace(r,"_$1");}return t};var en="schemas",rs=({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);},zt=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>zt({context:e,plugin:t,schema:o}));let n=structuredClone(r);if(n.$ref)return n.$ref=decodeURI(n.$ref),n;if(rs({plugin:t,schema:n}),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=zt({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(o=>zt({context:e,plugin:t,schema:o}))),n.items&&(n.items=zt({context:e,plugin:t,schema:n.items})),n.properties)for(let o in n.properties){let i=n.properties[o];typeof i!="boolean"&&(n.properties[o]=zt({context:e,plugin:t,schema:i}));}return n},pt=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>pt({context:e,plugin:t,schema:o}));let n=structuredClone(r);if("$ref"in n)return n.$ref=decodeURI(n.$ref),n;if(rs({plugin:t,schema:n}),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=pt({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(o=>pt({context:e,plugin:t,schema:o}))),n.anyOf&&(n.anyOf=n.anyOf.map(o=>pt({context:e,plugin:t,schema:o}))),n.items&&(n.items=pt({context:e,plugin:t,schema:n.items})),n.oneOf&&(n.oneOf=n.oneOf.map(o=>pt({context:e,plugin:t,schema:o}))),n.properties)for(let o in n.properties){let i=n.properties[o];typeof i!="boolean"&&(n.properties[o]=pt({context:e,plugin:t,schema:i}));}return n},ze=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>ze({context:e,plugin:t,schema:o}));let n=structuredClone(r);if(rs({plugin:t,schema:n}),n.$ref&&(n.$ref=decodeURI(n.$ref)),n.additionalProperties&&typeof n.additionalProperties!="boolean"&&(n.additionalProperties=ze({context:e,plugin:t,schema:n.additionalProperties})),n.allOf&&(n.allOf=n.allOf.map(o=>ze({context:e,plugin:t,schema:o}))),n.anyOf&&(n.anyOf=n.anyOf.map(o=>ze({context:e,plugin:t,schema:o}))),n.items&&(n.items=ze({context:e,plugin:t,schema:n.items})),n.oneOf&&(n.oneOf=n.oneOf.map(o=>ze({context:e,plugin:t,schema:o}))),n.prefixItems&&(n.prefixItems=n.prefixItems.map(o=>ze({context:e,plugin:t,schema:o}))),n.properties)for(let o in n.properties){let i=n.properties[o];typeof i!="boolean"&&(n.properties[o]=ze({context:e,plugin:t,schema:i}));}return n},ns=({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`),Yr(n)},Qp=({context:e,plugin:t})=>{if(e.spec.definitions)for(let r in e.spec.definitions){let n=e.spec.definitions[r],o=zt({context:e,plugin:t,schema:n}),i=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:o}),name:ns({name:r,plugin:t,schema:n})});e.file({id:en}).add(i);}},Xp=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let n=e.spec.components.schemas[r],o=pt({context:e,plugin:t,schema:n}),i=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:o}),name:ns({name:r,plugin:t,schema:n})});e.file({id:en}).add(i);}},Jp=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let n=e.spec.components.schemas[r],o=ze({context:e,plugin:t,schema:n}),i=s.constVariable({assertion:"const",exportConst:true,expression:s.objectExpression({obj:o}),name:ns({name:r,plugin:t,schema:n})});e.file({id:en}).add(i);}},Wo=({plugin:e})=>{if(e.createFile({id:en,path:e.output}),"swagger"in e.context.spec){Qp({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":Xp({context:e.context,plugin:e});break;case "3.1.0":case "3.1.1":Jp({context:e.context,plugin:e});break;default:throw new Error("Unsupported OpenAPI specification")}};var Ee=class{_exportFromIndex;_headers=[];_id;_identifierCase;_imports=new Map;_items=[];_name;_path;identifiers={};constructor({dir:t,exportFromIndex:r=false,header:n=true,id:o,identifierCase:i,name:a}){this._exportFromIndex=r,this._id=o,this._identifierCase=i,this._name=this._setName(a),this._path=Wt__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:o}=Uo(t),i=this.identifiers[n.toLocaleLowerCase()]?.[r]?.[o];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 os({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 o=n.get(r.name);return o?{...o,name:o.alias||o.name}:(n.set(r.name,r),{...r,name:r.alias||r.name})}isEmpty(){return !this._items.length}nameWithoutExtension(){let{name:t}=ss(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=Wt__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 o=this._path.split(Wt__default.default.sep),i=n.split(Wt__default.default.sep),a=-1,p="";for(let m of o)if(a+=1,i[a]!==m){let f=Array.from({length:o.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}${ss(c).name}`}remove(t){qo__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}=ss(t);return [n,"gen",r].filter(Boolean).join(".")}_toString(t,r){let n=[];this._headers.length&&n.push(this._headers.join(`
`));let o=r?.options.moduleResolution===x__default.default.ModuleResolutionKind.NodeNext,i=[];for(let[a,p]of this._imports.entries()){let c=Array.from(p.values()),m=a;o&&(m.startsWith("./")||m.startsWith("../"))&&(m==="./client"?m="./client/index.js":m=`${m}.js`);let f=s.namedImportDeclarations({imports:c,module:m});i.push(Ae({node:f}));}return i.length&&n.push(i.join(`
`)),n=n.concat(this._items.map(a=>typeof a=="string"?a:Ae({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 o=this._path.split(Wt__default.default.sep);n=o.slice(0,o.length-1).join(Wt__default.default.sep);}Kr(n),qo__default.default.writeFileSync(this._path,this._toString(t,r));}},Uo=e=>{let t=e,r=[],n=t.split("/"),o=n[n.length-1]||"",i=n.indexOf("properties");if(i!==-1)for(t=n.slice(0,i).join("/"),o=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:o,properties:r,ref:t}},Zp=(e,t,r)=>{if(typeof t=="function")return t(e);let n=r==="preserve"?"":"-";return t.replace("{{name}}",`${n}${e}${n}`)},os=({$ref:e,case:t,count:r=1,create:n=false,identifiers:o,nameTransformer:i,namespace:a})=>{let{name:p,properties:c,ref:m}=Uo(e);if(!p)return {created:false,name:""};let f=A({case:t,value:i?Zp(p,i,t):p});r>1&&(f=`${f}${r}`);let l=f.toLocaleLowerCase();o[l]||(o[l]={});let u=o[l];if(a==="enum"&&(u.type||u.value)||a!=="enum"&&u.enum)return os({$ref:m,case:t,count:r+1,create:n,identifiers:o,nameTransformer:i,namespace:a});u[a]||(u[a]={});let d=u[a],g=d[m];if(g){let S=g.name;return c.length&&(S+=c.map(b=>`['${b}']`).join("")),{created:false,name:S}}let h=d[f];return h?h.$ref===m?{created:false,name:h.name}:os({$ref:m,case:t,count:r+1,create:n,identifiers:o,nameTransformer:i,namespace:a}):n?(h={$ref:m,name:Yr(f)},d[f]=h,d[h.$ref]=h,{created:true,name:h.name}):(delete u[a],{created:false,name:""})},ss=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 tc=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)));Wt__default.default.dirname(tc);process.stdin.isTTY&&process.stdout.isTTY;var tn=class extends Error{args;event;pluginName;constructor({args:t,error:r,event:n,name:o,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=o||r.name,this.pluginName=i,this.stack=r.stack;}};var rn=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],o=new Set(r.length?r:["operation","parameter","requestBody","schema","server"]);if(o.has("server")&&this.context.ir.servers)for(let i of this.context.ir.servers){let a={server:i,type:"server"};try{n(a);}catch(p){this.forEachError(p,a);}}if(o.has("schema")&&this.context.ir.components?.schemas)for(let i in this.context.ir.components.schemas){let a={$ref:`#/components/schemas/${i}`,name:i,schema:this.context.ir.components.schemas[i],type:"schema"};try{n(a);}catch(p){this.forEachError(p,a);}}if(o.has("parameter")&&this.context.ir.components?.parameters)for(let i in this.context.ir.components.parameters){let a={$ref:`#/components/parameters/${i}`,name:i,parameter:this.context.ir.components.parameters[i],type:"parameter"};try{n(a);}catch(p){this.forEachError(p,a);}}if(o.has("requestBody")&&this.context.ir.components?.requestBodies)for(let i in this.context.ir.components.requestBodies){let a={$ref:`#/components/requestBodies/${i}`,name:i,requestBody:this.context.ir.components.requestBodies[i],type:"requestBody"};try{n(a);}catch(p){this.forEachError(p,a);}}if(o.has("operation")&&this.context.ir.paths)for(let i in this.context.ir.paths){let a=this.context.ir.paths[i];for(let p in a){let c=p,m={method:c,operation:a[c],path:i,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 tn({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 nn=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=Wt__default.default.resolve(this.config.output.path,...r.slice(0,r.length-1)),o=new Ee({dir:n,exportFromIndex:t.exportFromIndex,id:t.id,identifierCase:t.identifierCase,name:`${r[r.length-1]}.ts`});return this.files[t.id]=o,o}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 rn({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 Yn({$ref:t,spec:this.ir})}resolveRef(t){return Yn({$ref:t,spec:this.spec})}};var sn=({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]},ct=e=>{for(let t in e)if(e[t].required)return true;return false},zo=e=>e?!!(ct(e.cookie)||ct(e.header)||ct(e.path)||ct(e.query)):false,is=({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:sn({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:sn({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:sn({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:sn({context:e,parameter:n})}}}};var ne=({detectFormat:e=true,schema:t})=>{if(!t.items)return t;let r=[],n=[];for(let i of t.items){if(!i.type&&i.items||t.type==="tuple"){r.push(i);continue}if(!i.type||i.type==="boolean"||i.type==="integer"||i.type==="null"||i.type==="number"||i.type==="string"||i.type==="unknown"||i.type==="void"){let a=i.const!==void 0?`const-${i.const}`:"",p=i.format!==void 0&&e?`format-${i.format}`:"",c=`${i.$ref??""}${i.type??""}${a}${p}`;n.includes(c)||(n.push(c),r.push(i));continue}r.push(i);}let o={...t};if(o.items=r,o.items.length<=1&&o.type!=="array"&&o.type!=="enum"&&o.type!=="tuple"){let i=o.items[0];delete o.logicalOperator,delete o.items,o={...o,...i};}return o.type==="unknown"?{}:o};var gr=e=>JSON.parse(JSON.stringify(e)),k=(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 as=({items:e,schema:t})=>{for(let r of e)t.accessScopes=k(t.accessScopes,r.accessScopes);t.items=e;},M=({items:e,logicalOperator:t="or",mutateSchemaOneItem:r=false,schema:n})=>e.length?n.type==="tuple"?(as({items:e,schema:n}),n):e.length!==1?(as({items:e,schema:n}),n.logicalOperator=t,n):r?(n={...n,...e[0]},n):(as({items:e,schema:n}),n):n;var on=e=>!!(zo(e.parameters)||e.body?.required),N=({method:e,path:t})=>`${e.toUpperCase()} ${t}`,Qo=({context:e,operation:t})=>{let r=t.body;if(!r||!r.pagination)return is({context:e,parameters:t.parameters});if(r.pagination===true)return {in:"body",name:"body",schema:r.schema};let n=r.schema,o=n.$ref?e.resolveIrRef(n.$ref):n,a=("schema"in o?o.schema:o)?.properties?.[r.pagination];return a?{in:"body",name:r.pagination,schema:a}:is({context:e,parameters:t.parameters})},ps=({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"},o;for(let p in e.responses){let c=e.responses[p];switch(ps({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":o=c;break}}if(o){let p=false;Object.keys(n.properties).length||(n.properties.default=o.schema,p=true);let c=(o.schema.description??"").toLocaleLowerCase(),m=(o.schema.$ref??"").toLocaleLowerCase();["success"].some(u=>c.includes(u)||m.includes(u))&&(n.properties.default=o.schema,p=true),["error","problem"].some(u=>c.includes(u)||m.inclu