@hey-api/openapi-ts 0.86.0 → 0.86.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{__require as e}from"./chunk-BJUc-MpE.js";import t from"ansi-colors";import n from"node:fs";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"typescript";import{EOL as o}from"os";import*as s from"semver";import{Project as c,createBinding as l,mergeBindings as u,renderIds as d}from"@hey-api/codegen-core";import{getResolvedInput as f,sendRequest as p}from"@hey-api/json-schema-ref-parser";const m=i(import.meta.url),h=r.dirname(m),g=()=>{let e=h;for(;e!==r.dirname(e);){let t=n.readdirSync(e).filter(e=>e===`package.json`);if(t[0]){let i=r.join(e,t[0]);return JSON.parse(n.readFileSync(i,{encoding:`utf8`}))}e=r.dirname(e)}},_=()=>{let e=g(),t={bugs:{url:``},name:``,version:``};return e&&typeof e==`object`&&(`name`in e&&typeof e.name==`string`&&(t.name=e.name),`version`in e&&typeof e.version==`string`&&(t.version=e.version),`bugs`in e&&e.bugs&&typeof e.bugs==`object`&&`url`in e.bugs&&typeof e.bugs.url==`string`&&(t.bugs.url=e.bugs.url,t.bugs.url&&!t.bugs.url.endsWith(`/`)&&(t.bugs.url+=`/`))),t},v=e=>{if(e===null)return null;if(e){let t=r.isAbsolute(e)?e:r.resolve(h,e);return n.existsSync(t)?t:null}let t=h;for(;t!==r.dirname(t);){let e=n.readdirSync(t).filter(e=>e.startsWith(`tsconfig`)&&e.endsWith(`.json`)).sort(e=>e===`tsconfig.json`?-1:1);if(e[0])return r.join(t,e[0]);t=r.dirname(t)}return null},y=e=>{if(!e)return null;let t=a.readConfigFile(e,a.sys.readFile);if(t.error)throw Error(`Couldn't read tsconfig from path: ${e}`);return a.parseJsonConfigFileContent(t.config,a.sys,r.dirname(e))},b=e=>{n.existsSync(e)||n.mkdirSync(e,{recursive:!0})},ee=e=>{n.existsSync(e)&&n.rmSync(e,{force:!0,recursive:!0})},te=({moduleOutput:e,sourceOutput:t})=>{let n=t.split(`/`);return`${Array.from({length:n.length}).fill(``).join(`../`)||`./`}${e}`};var ne=class extends Error{constructor(e){super(e),this.name=`ConfigError`}},re=class extends Error{errors;constructor(e){super(`Found ${e.length} configuration ${e.length===1?`error`:`errors`}.`),this.name=`ConfigValidationError`,this.errors=e}},ie=class extends Error{originalError;constructor(e,t){super(e),this.name=`JobError`,this.originalError=t}},ae=class extends Error{args;event;pluginName;constructor({args:e,error:t,event:n,name:r,pluginName:i}){let a=t instanceof Error?t.message:`Unknown error`;super(a),this.args=e,this.cause=t.cause,this.event=n,this.name=r||t.name,this.pluginName=i,this.stack=t.stack}};const oe=(e,t)=>{if(e instanceof ne||e instanceof re)return;e instanceof ie&&(e=e.originalError.error);let i=`openapi-ts-error-${Date.now()}.log`,a=r.resolve(process.cwd(),t);b(a);let o=r.resolve(a,i),s=`[${new Date().toISOString()}] `;e instanceof ae&&(s+=`${e.name} during event "${e.event}"\n`,e.pluginName&&(s+=`Plugin: ${e.pluginName}\n`),s+=`Arguments: ${JSON.stringify(e.args,null,2)}\n\n`);let c=e instanceof Error?e.message:String(e),l=e instanceof Error?e.stack:void 0;return s+=`Error: ${c}\n`,l&&(s+=`Stack:\n${l}\n`),n.writeFileSync(o,s),o},se=async e=>{let t=_();if(!t.bugs.url)return;e instanceof ie&&(e=e.originalError.error);let n=``;e instanceof ae&&(e.pluginName&&(n+=`**Plugin**: \`${e.pluginName}\`\n`),n+=`**Event**: \`${e.event}\`\n`,n+=`**Arguments**:\n\`\`\`ts\n${JSON.stringify(e.args,null,2)}\n\`\`\`\n\n`);let r=e instanceof Error?e.message:String(e),i=e instanceof Error?e.stack:void 0;n+=`**Error**: \`${r}\`\n`,i&&(n+=`\n**Stack Trace**:\n\`\`\`\n${i}\n\`\`\``);let a=new URLSearchParams({body:n,labels:`bug 🔥`,title:`Crash Report`}),o=`${t.bugs.url}new?${a.toString()}`,s=(await import(`open`)).default;await s(o)},ce=({error:e,logPath:n})=>{if(e instanceof re&&e.errors.length){let n=new Map;for(let{error:t,jobIndex:r}of e.errors)n.has(r)||n.set(r,[]),n.get(r).push(t);for(let[e,r]of n.entries()){let n=t.gray(`[Job ${e+1}] `),i=r.length,a=t.red(`Found ${i} configuration ${i===1?`error`:`errors`}:`);console.error(`${n}❗️ ${a}`),r.forEach((e,r)=>{let i=` [${r+1}] `,a=t.red(i);console.error(`${n}${a}${t.white(e.message)}`)})}}else{let n=t.gray(`[root] `);e instanceof ie&&(n=t.gray(`[Job ${e.originalError.jobIndex+1}] `),e=e.originalError.error);let r=t.red(`Failed with the message:`);console.error(`${n}❌ ${r}`);let i=t.red(` `);console.error(`${n}${i}${typeof e==`string`?e:e instanceof Error?e.message:`Unknown error`}`)}if(n){let e=t.gray(`[root] `);console.error(`${e}${t.cyan(`📄 Crash log saved to:`)} ${t.gray(n)}`)}},le=async({error:e,isInteractive:n})=>!n||e instanceof ne||e instanceof re?!1:new Promise(e=>{let n=t.gray(`[root] `);console.log(`${n}${t.yellow(`📢 Open a GitHub issue with crash details? (y/N):`)}`),process.stdin.setEncoding(`utf8`),process.stdin.once(`data`,t=>{e(t.trim().toLowerCase()===`y`)})}),ue=e=>{let t=x(e);return t.name===`@hey-api/client-axios`||t.name===`@hey-api/client-nuxt`?`baseURL`:`baseUrl`},x=e=>{for(let t of e.pluginOrder){let n=e.plugins[t];if(n?.tags?.includes(`client`))return n}return{config:{name:``},name:``}};let de;const S=()=>{let e=de;return e.client=x(e),e},fe=e=>(de=e,S()),C=e=>x(e).name.startsWith(`legacy/`),pe=e=>{if(C(e))return e.name},me=/^([\w-]+)\/([\w-]+)(?:\?([\w=&.-]*))?$/,he=`https://get.heyapi.dev`,ge=(e,t,n)=>`${he}/${e}/${t}${n?`?${n}`:``}`,_e=e=>{let t=e.organization,n=e.project,r;if(e.path){let i=e.path.match(me);if(!i)throw Error(`Invalid Hey API shorthand format. Expected "organization/project?queryParams" or "organization/project", received: ${e.path}`);t=i[1],n=i[2],r=i[3]}if(!t)throw Error(`The Hey API organization cannot be empty.`);if(!n)throw Error(`The Hey API project cannot be empty.`);return{organization:t,project:n,queryParams:r}},ve=e=>{let t=_e(e);return{path:ge(t.organization,t.project,t.queryParams),registry:`hey-api`}},ye=/^(@([\w-]+)\/([\w\-.]+)#)?([\w-]+)$/,be=e=>`https://dash.readme.com/api/v1/api-registry/${e}`,xe=`readme`,Se=e=>{let t=e.match(ye);if(!t)throw Error(`Invalid ReadMe shorthand format. Expected "${xe}:@organization/project#uuid" or "${xe}:uuid", received: ${xe}:${e}`);let[,,n,r,i]=t;if(!i)throw Error(`The ReadMe UUID cannot be empty.`);return{organization:n,project:r,uuid:i}},Ce=e=>{let t=Se(e.slice(`${xe}:`.length));return{...t,path:be(t.uuid),registry:`readme`}},we=/^(@[\w-]+)\/([\w.-]+)$/,Te=(e,t)=>`https://registry.scalar.com/${e}/apis/${t}/latest?format=json`,Ee=`scalar`,De=e=>{let t=e.match(we);if(!t)throw Error(`Invalid Scalar shorthand format. Expected "${Ee}:@organization/project", received: ${Ee}:${e}`);let[,n,r]=t;if(!n)throw Error(`The Scalar organization cannot be empty.`);if(!r)throw Error(`The Scalar project cannot be empty.`);return{organization:n,project:r}},Oe=e=>{let t=De(e.slice(`${Ee}:`.length));return{...t,path:Te(t.organization,t.project),registry:`scalar`}},ke=e=>{if(e.path.startsWith(`readme:`)){Object.assign(e,Ce(e.path));return}if(e.path.startsWith(`scalar:`)){Object.assign(e,Oe(e.path));return}if(e.path.startsWith(`.`))return;if(e.path.startsWith(he)){e.path=e.path.slice(23),Object.assign(e,ve(e));return}let t=e.path.split(`/`);if(t.length===2&&t.filter(Boolean).length===2){Object.assign(e,ve(e));return}},Ae={enabled:!1,interval:1e3,timeout:6e4},je=e=>{let t={...Ae};return typeof e.path==`string`&&(typeof e.watch==`boolean`?t.enabled=e.watch:typeof e.watch==`number`?(t.enabled=!0,t.interval=e.watch):e.watch&&(t={...t,...e.watch})),t},Me=e=>{let t=e.input instanceof Array?e.input:[e.input],n=[];for(let r of t){let t={path:``,watch:Ae};typeof r==`string`?t.path=r:r&&(r.path!==void 0||r.organization!==void 0)?(t={...t,path:he,...r},t.watch!==void 0&&(t.watch=je(t))):t={...t,path:r},typeof t.path==`string`&&ke(t),e.watch!==void 0&&t.watch.enabled===Ae.enabled&&t.watch.interval===Ae.interval&&t.watch.timeout===Ae.timeout&&(t.watch=je({path:t.path,watch:e.watch})),t.path&&n.push(t)}return n},Ne=e=>{let t={file:!0,level:`info`,path:process.cwd()};return typeof e?.logs==`string`?t.path=e.logs:t={...t,...e?.logs},t},Pe=(e,t)=>{let n=e||{},r=t||{};return{...n,...r}},Fe=(e,t)=>{let n=e||{},r=t||{},i={...n,...r};return typeof i.logs==`object`&&(i.logs=Pe(n.logs,r.logs)),i},Ie=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e!=`function`,Le=(e,t)=>{for(let[n,r]of Object.entries(t))r!==void 0&&r!==``&&(e[n]=r);return e},Re=({defaultValue:e,mappers:t,value:n})=>{let r={...e};switch(typeof n){case`boolean`:if(t&&`boolean`in t){let e=t.boolean;r=Le(r,e(n))}break;case`function`:if(t&&`function`in t){let e=t.function;r=Le(r,e(n))}break;case`number`:if(t&&`number`in t){let e=t.number;r=Le(r,e(n))}break;case`string`:if(t&&`string`in t){let e=t.string;r=Le(r,e(n))}break;case`object`:if(Ie(n))if(t&&`object`in t&&typeof t.object==`function`){let i=t.object;r=Le(r,i(n,e))}else r=Le(r,n);break}return r},ze=e=>{if(e.output instanceof Array)throw Error(`Unexpected array of outputs in user configuration. This should have been expanded already.`);let t=Re({defaultValue:{clean:!0,fileName:{case:`preserve`,name:`{{name}}`,suffix:`.gen`},format:null,indexFile:!0,lint:null,path:``},mappers:{object:(e,t)=>({...e,fileName:Re({defaultValue:{...t.fileName},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.fileName})}),string:e=>({path:e})},value:e.output});return t.tsConfig=y(v(t.tsConfigPath)),t.importFileExtension===void 0&&t.tsConfig?.options.moduleResolution===a.ModuleResolutionKind.NodeNext&&(t.importFileExtension=`.js`),t.importFileExtension&&!t.importFileExtension.startsWith(`.`)&&(t.importFileExtension=`.${t.importFileExtension}`),t},Be=e=>{let t=e?r.dirname(e):process.cwd();for(;t!==r.dirname(t);){let e=r.join(t,`package.json`);if(n.existsSync(e))try{let t=JSON.parse(n.readFileSync(e,`utf8`));return{...t.dependencies,...t.devDependencies,...t.peerDependencies,...t.optionalDependencies}}catch{}let i=r.dirname(t);if(i===t)break;t=i}return{}},Ve=[`after`,`before`,`cursor`,`offset`,`page`,`start`],He=e=>Re({defaultValue:{hooks:{},pagination:{keywords:Ve},transforms:{enums:{case:`PascalCase`,enabled:!1,mode:`root`,name:`{{name}}Enum`},propertiesRequiredByDefault:!1,readWrite:{enabled:!0,requests:{case:`preserve`,name:`{{name}}Writable`},responses:{case:`preserve`,name:`{{name}}`}}},validate_EXPERIMENTAL:!1},mappers:{object:(e,t)=>({...e,pagination:Re({defaultValue:{...t.pagination},value:e.pagination}),transforms:Re({defaultValue:{...t.transforms},mappers:{object:(e,t)=>({...e,enums:Re({defaultValue:{...t.enums,enabled:e.enums===void 0?t.enums.enabled:!!e.enums},mappers:{boolean:e=>({enabled:e}),string:e=>({mode:e})},value:e.enums}),propertiesRequiredByDefault:e.propertiesRequiredByDefault===void 0?t.propertiesRequiredByDefault:e.propertiesRequiredByDefault,readWrite:Re({defaultValue:{...t.readWrite,enabled:e.readWrite===void 0?t.readWrite.enabled:!!e.readWrite},mappers:{boolean:e=>({enabled:e}),object:(e,t)=>({...e,requests:Re({defaultValue:{...t.requests},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.requests}),responses:Re({defaultValue:{...t.responses},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.responses})})},value:e.readWrite})})},value:e.transforms}),validate_EXPERIMENTAL:e.validate_EXPERIMENTAL===!0?`warn`:e.validate_EXPERIMENTAL})},value:e.parser}),Ue=e=>t=>({...e,config:{...e.config,...t}}),We={boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})};var Ge=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const Ke=/[\p{Lu}]/u,qe=/[\p{Ll}]/u,Je=/([\p{Alpha}\p{N}_]|$)/u,Ye=/[_.\- `\\[\]{}\\/]+/,Xe=RegExp(`^${Ye.source}`),Ze=RegExp(`${Ye.source}${Je.source}`,`gu`),Qe=RegExp(`\\d+${Je.source}`,`gu`),$e=({case:e,string:t})=>{let n=!1,r=!1,i=!1,a=!1,o=e===`snake_case`||e===`SCREAMING_SNAKE_CASE`?`_`:`-`;for(let e=0;e<t.length;e++){let s=t[e];a=e>2?t[e-3]===o:!0;let c=e+1,l=t[c];for(Ye.lastIndex=0;l&&Ye.test(l);)c+=1,l=t[c];let u=c!==e+1;if(qe.lastIndex=0,Ke.lastIndex=0,Ke.test(s)&&(n||l&&!u&&l!==`s`&&qe.test(l)))t=`${t.slice(0,e)}${o}${t.slice(e)}`,e++,i=r,n=!1,r=!0;else if(r&&i&&qe.test(s)&&!a&&!(s===`s`&&(!l||l.toLocaleLowerCase()!==l)))t=`${t.slice(0,e-1)}${o}${t.slice(e-1)}`,i=r,n=!0,r=!1;else{let e=s.toLocaleLowerCase(),t=s.toLocaleUpperCase();i=r,n=e===s&&t!==s,r=t===s&&e!==s}}return t},w=({case:e,stripLeadingSeparators:t=!0,value:n})=>{let r=n.trim();return r.length?!e||e===`preserve`?r:r.length===1?(Ye.lastIndex=0,Ye.test(r)?``:e===`PascalCase`||e===`SCREAMING_SNAKE_CASE`?r.toLocaleUpperCase():r.toLocaleLowerCase()):(r!==r.toLocaleLowerCase()&&(r=$e({case:e,string:r})),(t||r[0]!==n[0])&&(r=r.replace(Xe,``)),r=e===`SCREAMING_SNAKE_CASE`?r.toLocaleUpperCase():r.toLocaleLowerCase(),e===`PascalCase`&&(r=`${r.charAt(0).toLocaleUpperCase()}${r.slice(1)}`),e===`snake_case`||e===`SCREAMING_SNAKE_CASE`?(r=r.replaceAll(Ze,(e,n,r)=>r===0&&!t?e:`_${n}`),r[r.length-1]===`_`&&(r=r.slice(0,r.length-1))):(Ze.lastIndex=0,Qe.lastIndex=0,r=r.replaceAll(Qe,(e,t,n)=>[`_`,`-`,`.`].includes(r.charAt(n+e.length))?e:e.toLocaleUpperCase()),r=r.replaceAll(Ze,(e,r,i)=>i===0&&!t&&e[0]&&n.startsWith(e[0])?e:r.toLocaleUpperCase())),r):``},T=({config:e,name:t})=>{if(typeof e.name==`function`)t=e.name(t);else if(e.name){let n=e.case===`preserve`?``:`-`;t=e.name.replace(`{{name}}`,`${n}${t}${n}`)}return w({case:e.case,value:t})},et=/^[^$_\p{ID_Start}]+/u,E=/^-?\d+(\.\d+)?$/,tt=/^(document|history|location|navigator|window)$/g,nt=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,rt=/^(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,it=/^(global|process|Buffer)$/g,at=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,ot=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u,st=e=>(e||e===``)&&(ot.lastIndex=0,!ot.test(e))?`'${e}'`:e,ct=e=>e&&e.startsWith(`'`)&&e.endsWith(`'`)?e.slice(1,e.length-1):e,D=e=>e.replace(/\*\//g,`*`).replace(/\/\*/g,`*`).replace(/\r?\n(.*)/g,(e,t)=>o+t.trim()),lt=a.createPrinter({newLine:a.NewLineKind.LineFeed,removeComments:!1}),ut=(e=>a.createSourceFile(``,e,a.ScriptTarget.ESNext,!1,a.ScriptKind.TS))(``),dt=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,16)));function ft({node:e,unescape:t=!1}){let n=lt.printNode(a.EmitHint.Unspecified,e,ut);if(!t)return n;try{return dt(n)}catch{return S().logs.level===`debug`&&console.warn(`Could not decode value:`,n),n}}const O=({text:e})=>a.factory.createIdentifier(e),pt=()=>a.factory.createThis(),k=({keyword:e})=>{let t=wt({keyword:e});return a.factory.createModifier(t)},mt=({initializer:e,modifier:t,name:n,type:r})=>a.factory.createPropertyDeclaration(t?[k({keyword:t})]:void 0,n,void 0,r,e),ht={boolean:e=>e?a.factory.createTrue():a.factory.createFalse(),export:({alias:e,asType:t=!1,name:n})=>{let r=O({text:n});if(e){let n=O({text:e});return a.factory.createExportSpecifier(t,r,n)}return a.factory.createExportSpecifier(t,void 0,r)},import:({alias:e,asType:t=!1,name:n})=>{let r=O({text:n});if(e){let n=O({text:e});return a.factory.createImportSpecifier(t,r,n)}return a.factory.createImportSpecifier(t,void 0,r)},number:e=>e<0?a.factory.createPrefixUnaryExpression(a.SyntaxKind.MinusToken,a.factory.createNumericLiteral(Math.abs(e))):a.factory.createNumericLiteral(e),string:(e,t=!1)=>{let n=e;t&&(n=ct(n));let r=n.includes(`'`)&&n.includes(`"`),i=n.includes(`
1
+ import{r as e}from"./chunk-C-EqMg7d.js";import t from"ansi-colors";import n from"node:fs";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"typescript";import{EOL as o}from"os";import*as s from"semver";import{Project as c,createBinding as l,mergeBindings as u,renderIds as d}from"@hey-api/codegen-core";import{getResolvedInput as f,sendRequest as p}from"@hey-api/json-schema-ref-parser";const m=i(import.meta.url),h=r.dirname(m),g=()=>{let e=h;for(;e!==r.dirname(e);){let t=n.readdirSync(e).filter(e=>e===`package.json`);if(t[0]){let i=r.join(e,t[0]);return JSON.parse(n.readFileSync(i,{encoding:`utf8`}))}e=r.dirname(e)}},_=()=>{let e=g(),t={bugs:{url:``},name:``,version:``};return e&&typeof e==`object`&&(`name`in e&&typeof e.name==`string`&&(t.name=e.name),`version`in e&&typeof e.version==`string`&&(t.version=e.version),`bugs`in e&&e.bugs&&typeof e.bugs==`object`&&`url`in e.bugs&&typeof e.bugs.url==`string`&&(t.bugs.url=e.bugs.url,t.bugs.url&&!t.bugs.url.endsWith(`/`)&&(t.bugs.url+=`/`))),t},v=e=>{if(e===null)return null;if(e){let t=r.isAbsolute(e)?e:r.resolve(h,e);return n.existsSync(t)?t:null}let t=h;for(;t!==r.dirname(t);){let e=n.readdirSync(t).filter(e=>e.startsWith(`tsconfig`)&&e.endsWith(`.json`)).sort(e=>e===`tsconfig.json`?-1:1);if(e[0])return r.join(t,e[0]);t=r.dirname(t)}return null},y=e=>{if(!e)return null;let t=a.readConfigFile(e,a.sys.readFile);if(t.error)throw Error(`Couldn't read tsconfig from path: ${e}`);return a.parseJsonConfigFileContent(t.config,a.sys,r.dirname(e))},b=e=>{n.existsSync(e)||n.mkdirSync(e,{recursive:!0})},ee=e=>{n.existsSync(e)&&n.rmSync(e,{force:!0,recursive:!0})},te=({moduleOutput:e,sourceOutput:t})=>{let n=t.split(`/`);return`${Array.from({length:n.length}).fill(``).join(`../`)||`./`}${e}`};var ne=class extends Error{constructor(e){super(e),this.name=`ConfigError`}},re=class extends Error{errors;constructor(e){super(`Found ${e.length} configuration ${e.length===1?`error`:`errors`}.`),this.name=`ConfigValidationError`,this.errors=e}},ie=class extends Error{originalError;constructor(e,t){super(e),this.name=`JobError`,this.originalError=t}},ae=class extends Error{args;event;pluginName;constructor({args:e,error:t,event:n,name:r,pluginName:i}){let a=t instanceof Error?t.message:`Unknown error`;super(a),this.args=e,this.cause=t.cause,this.event=n,this.name=r||t.name,this.pluginName=i,this.stack=t.stack}};const oe=(e,t)=>{if(e instanceof ne||e instanceof re)return;e instanceof ie&&(e=e.originalError.error);let i=`openapi-ts-error-${Date.now()}.log`,a=r.resolve(process.cwd(),t);b(a);let o=r.resolve(a,i),s=`[${new Date().toISOString()}] `;e instanceof ae&&(s+=`${e.name} during event "${e.event}"\n`,e.pluginName&&(s+=`Plugin: ${e.pluginName}\n`),s+=`Arguments: ${JSON.stringify(e.args,null,2)}\n\n`);let c=e instanceof Error?e.message:String(e),l=e instanceof Error?e.stack:void 0;return s+=`Error: ${c}\n`,l&&(s+=`Stack:\n${l}\n`),n.writeFileSync(o,s),o},se=async e=>{let t=_();if(!t.bugs.url)return;e instanceof ie&&(e=e.originalError.error);let n=``;e instanceof ae&&(e.pluginName&&(n+=`**Plugin**: \`${e.pluginName}\`\n`),n+=`**Event**: \`${e.event}\`\n`,n+=`**Arguments**:\n\`\`\`ts\n${JSON.stringify(e.args,null,2)}\n\`\`\`\n\n`);let r=e instanceof Error?e.message:String(e),i=e instanceof Error?e.stack:void 0;n+=`**Error**: \`${r}\`\n`,i&&(n+=`\n**Stack Trace**:\n\`\`\`\n${i}\n\`\`\``);let a=new URLSearchParams({body:n,labels:`bug 🔥`,title:`Crash Report`}),o=`${t.bugs.url}new?${a.toString()}`,s=(await import(`open`)).default;await s(o)},ce=({error:e,logPath:n})=>{if(e instanceof re&&e.errors.length){let n=new Map;for(let{error:t,jobIndex:r}of e.errors)n.has(r)||n.set(r,[]),n.get(r).push(t);for(let[e,r]of n.entries()){let n=t.gray(`[Job ${e+1}] `),i=r.length,a=t.red(`Found ${i} configuration ${i===1?`error`:`errors`}:`);console.error(`${n}❗️ ${a}`),r.forEach((e,r)=>{let i=` [${r+1}] `,a=t.red(i);console.error(`${n}${a}${t.white(e.message)}`)})}}else{let n=t.gray(`[root] `);e instanceof ie&&(n=t.gray(`[Job ${e.originalError.jobIndex+1}] `),e=e.originalError.error);let r=t.red(`Failed with the message:`);console.error(`${n}❌ ${r}`);let i=t.red(` `);console.error(`${n}${i}${typeof e==`string`?e:e instanceof Error?e.message:`Unknown error`}`)}if(n){let e=t.gray(`[root] `);console.error(`${e}${t.cyan(`📄 Crash log saved to:`)} ${t.gray(n)}`)}},le=async({error:e,isInteractive:n})=>!n||e instanceof ne||e instanceof re?!1:new Promise(e=>{let n=t.gray(`[root] `);console.log(`${n}${t.yellow(`📢 Open a GitHub issue with crash details? (y/N):`)}`),process.stdin.setEncoding(`utf8`),process.stdin.once(`data`,t=>{e(t.trim().toLowerCase()===`y`)})}),ue=e=>{let t=x(e);return t.name===`@hey-api/client-axios`||t.name===`@hey-api/client-nuxt`?`baseURL`:`baseUrl`},x=e=>{for(let t of e.pluginOrder){let n=e.plugins[t];if(n?.tags?.includes(`client`))return n}return{config:{name:``},name:``}};let de;const S=()=>{let e=de;return e.client=x(e),e},fe=e=>(de=e,S()),C=e=>x(e).name.startsWith(`legacy/`),pe=e=>{if(C(e))return e.name},me=/^([\w-]+)\/([\w-]+)(?:\?([\w=&.-]*))?$/,he=`https://get.heyapi.dev`,ge=(e,t,n)=>`${he}/${e}/${t}${n?`?${n}`:``}`,_e=e=>{let t=e.organization,n=e.project,r;if(e.path){let i=e.path.match(me);if(!i)throw Error(`Invalid Hey API shorthand format. Expected "organization/project?queryParams" or "organization/project", received: ${e.path}`);t=i[1],n=i[2],r=i[3]}if(!t)throw Error(`The Hey API organization cannot be empty.`);if(!n)throw Error(`The Hey API project cannot be empty.`);return{organization:t,project:n,queryParams:r}},ve=e=>{let t=_e(e);return{path:ge(t.organization,t.project,t.queryParams),registry:`hey-api`}},ye=/^(@([\w-]+)\/([\w\-.]+)#)?([\w-]+)$/,be=e=>`https://dash.readme.com/api/v1/api-registry/${e}`,xe=`readme`,Se=e=>{let t=e.match(ye);if(!t)throw Error(`Invalid ReadMe shorthand format. Expected "${xe}:@organization/project#uuid" or "${xe}:uuid", received: ${xe}:${e}`);let[,,n,r,i]=t;if(!i)throw Error(`The ReadMe UUID cannot be empty.`);return{organization:n,project:r,uuid:i}},Ce=e=>{let t=Se(e.slice(`${xe}:`.length));return{...t,path:be(t.uuid),registry:`readme`}},we=/^(@[\w-]+)\/([\w.-]+)$/,Te=(e,t)=>`https://registry.scalar.com/${e}/apis/${t}/latest?format=json`,Ee=`scalar`,De=e=>{let t=e.match(we);if(!t)throw Error(`Invalid Scalar shorthand format. Expected "${Ee}:@organization/project", received: ${Ee}:${e}`);let[,n,r]=t;if(!n)throw Error(`The Scalar organization cannot be empty.`);if(!r)throw Error(`The Scalar project cannot be empty.`);return{organization:n,project:r}},Oe=e=>{let t=De(e.slice(`${Ee}:`.length));return{...t,path:Te(t.organization,t.project),registry:`scalar`}},ke=e=>{if(e.path.startsWith(`readme:`)){Object.assign(e,Ce(e.path));return}if(e.path.startsWith(`scalar:`)){Object.assign(e,Oe(e.path));return}if(e.path.startsWith(`.`))return;if(e.path.startsWith(he)){e.path=e.path.slice(23),Object.assign(e,ve(e));return}let t=e.path.split(`/`);if(t.length===2&&t.filter(Boolean).length===2){Object.assign(e,ve(e));return}},Ae={enabled:!1,interval:1e3,timeout:6e4},je=e=>{let t={...Ae};return typeof e.path==`string`&&(typeof e.watch==`boolean`?t.enabled=e.watch:typeof e.watch==`number`?(t.enabled=!0,t.interval=e.watch):e.watch&&(t={...t,...e.watch})),t},Me=e=>{let t=e.input instanceof Array?e.input:[e.input],n=[];for(let r of t){let t={path:``,watch:Ae};typeof r==`string`?t.path=r:r&&(r.path!==void 0||r.organization!==void 0)?(t={...t,path:he,...r},t.watch!==void 0&&(t.watch=je(t))):t={...t,path:r},typeof t.path==`string`&&ke(t),e.watch!==void 0&&t.watch.enabled===Ae.enabled&&t.watch.interval===Ae.interval&&t.watch.timeout===Ae.timeout&&(t.watch=je({path:t.path,watch:e.watch})),t.path&&n.push(t)}return n},Ne=e=>{let t={file:!0,level:`info`,path:process.cwd()};return typeof e?.logs==`string`?t.path=e.logs:t={...t,...e?.logs},t},Pe=(e,t)=>{let n=e||{},r=t||{};return{...n,...r}},Fe=(e,t)=>{let n=e||{},r=t||{},i={...n,...r};return typeof i.logs==`object`&&(i.logs=Pe(n.logs,r.logs)),i},Ie=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e!=`function`,Le=(e,t)=>{for(let[n,r]of Object.entries(t))r!==void 0&&r!==``&&(e[n]=r);return e},Re=({defaultValue:e,mappers:t,value:n})=>{let r={...e};switch(typeof n){case`boolean`:if(t&&`boolean`in t){let e=t.boolean;r=Le(r,e(n))}break;case`function`:if(t&&`function`in t){let e=t.function;r=Le(r,e(n))}break;case`number`:if(t&&`number`in t){let e=t.number;r=Le(r,e(n))}break;case`string`:if(t&&`string`in t){let e=t.string;r=Le(r,e(n))}break;case`object`:if(Ie(n))if(t&&`object`in t&&typeof t.object==`function`){let i=t.object;r=Le(r,i(n,e))}else r=Le(r,n);break}return r},ze=e=>{if(e.output instanceof Array)throw Error(`Unexpected array of outputs in user configuration. This should have been expanded already.`);let t=Re({defaultValue:{clean:!0,fileName:{case:`preserve`,name:`{{name}}`,suffix:`.gen`},format:null,indexFile:!0,lint:null,path:``},mappers:{object:(e,t)=>({...e,fileName:Re({defaultValue:{...t.fileName},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.fileName})}),string:e=>({path:e})},value:e.output});return t.tsConfig=y(v(t.tsConfigPath)),t.importFileExtension===void 0&&t.tsConfig?.options.moduleResolution===a.ModuleResolutionKind.NodeNext&&(t.importFileExtension=`.js`),t.importFileExtension&&!t.importFileExtension.startsWith(`.`)&&(t.importFileExtension=`.${t.importFileExtension}`),t},Be=e=>{let t=e?r.dirname(e):process.cwd();for(;t!==r.dirname(t);){let e=r.join(t,`package.json`);if(n.existsSync(e))try{let t=JSON.parse(n.readFileSync(e,`utf8`));return{...t.dependencies,...t.devDependencies,...t.peerDependencies,...t.optionalDependencies}}catch{}let i=r.dirname(t);if(i===t)break;t=i}return{}},Ve=[`after`,`before`,`cursor`,`offset`,`page`,`start`],He=e=>Re({defaultValue:{hooks:{},pagination:{keywords:Ve},transforms:{enums:{case:`PascalCase`,enabled:!1,mode:`root`,name:`{{name}}Enum`},propertiesRequiredByDefault:!1,readWrite:{enabled:!0,requests:{case:`preserve`,name:`{{name}}Writable`},responses:{case:`preserve`,name:`{{name}}`}}},validate_EXPERIMENTAL:!1},mappers:{object:(e,t)=>({...e,pagination:Re({defaultValue:{...t.pagination},value:e.pagination}),transforms:Re({defaultValue:{...t.transforms},mappers:{object:(e,t)=>({...e,enums:Re({defaultValue:{...t.enums,enabled:e.enums===void 0?t.enums.enabled:!!e.enums},mappers:{boolean:e=>({enabled:e}),string:e=>({mode:e})},value:e.enums}),propertiesRequiredByDefault:e.propertiesRequiredByDefault===void 0?t.propertiesRequiredByDefault:e.propertiesRequiredByDefault,readWrite:Re({defaultValue:{...t.readWrite,enabled:e.readWrite===void 0?t.readWrite.enabled:!!e.readWrite},mappers:{boolean:e=>({enabled:e}),object:(e,t)=>({...e,requests:Re({defaultValue:{...t.requests},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.requests}),responses:Re({defaultValue:{...t.responses},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.responses})})},value:e.readWrite})})},value:e.transforms}),validate_EXPERIMENTAL:e.validate_EXPERIMENTAL===!0?`warn`:e.validate_EXPERIMENTAL})},value:e.parser}),Ue=e=>t=>({...e,config:{...e.config,...t}}),We={boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})};var Ge=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const Ke=/[\p{Lu}]/u,qe=/[\p{Ll}]/u,Je=/([\p{Alpha}\p{N}_]|$)/u,Ye=/[_.\- `\\[\]{}\\/]+/,Xe=RegExp(`^${Ye.source}`),Ze=RegExp(`${Ye.source}${Je.source}`,`gu`),Qe=RegExp(`\\d+${Je.source}`,`gu`),$e=({case:e,string:t})=>{let n=!1,r=!1,i=!1,a=!1,o=e===`snake_case`||e===`SCREAMING_SNAKE_CASE`?`_`:`-`;for(let e=0;e<t.length;e++){let s=t[e];a=e>2?t[e-3]===o:!0;let c=e+1,l=t[c];for(Ye.lastIndex=0;l&&Ye.test(l);)c+=1,l=t[c];let u=c!==e+1;if(qe.lastIndex=0,Ke.lastIndex=0,Ke.test(s)&&(n||l&&!u&&l!==`s`&&qe.test(l)))t=`${t.slice(0,e)}${o}${t.slice(e)}`,e++,i=r,n=!1,r=!0;else if(r&&i&&qe.test(s)&&!a&&!(s===`s`&&(!l||l.toLocaleLowerCase()!==l)))t=`${t.slice(0,e-1)}${o}${t.slice(e-1)}`,i=r,n=!0,r=!1;else{let e=s.toLocaleLowerCase(),t=s.toLocaleUpperCase();i=r,n=e===s&&t!==s,r=t===s&&e!==s}}return t},w=({case:e,stripLeadingSeparators:t=!0,value:n})=>{let r=n.trim();return r.length?!e||e===`preserve`?r:r.length===1?(Ye.lastIndex=0,Ye.test(r)?``:e===`PascalCase`||e===`SCREAMING_SNAKE_CASE`?r.toLocaleUpperCase():r.toLocaleLowerCase()):(r!==r.toLocaleLowerCase()&&(r=$e({case:e,string:r})),(t||r[0]!==n[0])&&(r=r.replace(Xe,``)),r=e===`SCREAMING_SNAKE_CASE`?r.toLocaleUpperCase():r.toLocaleLowerCase(),e===`PascalCase`&&(r=`${r.charAt(0).toLocaleUpperCase()}${r.slice(1)}`),e===`snake_case`||e===`SCREAMING_SNAKE_CASE`?(r=r.replaceAll(Ze,(e,n,r)=>r===0&&!t?e:`_${n}`),r[r.length-1]===`_`&&(r=r.slice(0,r.length-1))):(Ze.lastIndex=0,Qe.lastIndex=0,r=r.replaceAll(Qe,(e,t,n)=>[`_`,`-`,`.`].includes(r.charAt(n+e.length))?e:e.toLocaleUpperCase()),r=r.replaceAll(Ze,(e,r,i)=>i===0&&!t&&e[0]&&n.startsWith(e[0])?e:r.toLocaleUpperCase())),r):``},T=({config:e,name:t})=>{if(typeof e.name==`function`)t=e.name(t);else if(e.name){let n=e.case===`preserve`?``:`-`;t=e.name.replace(`{{name}}`,`${n}${t}${n}`)}return w({case:e.case,value:t})},et=/^[^$_\p{ID_Start}]+/u,E=/^-?\d+(\.\d+)?$/,tt=/^(document|history|location|navigator|window)$/g,nt=/^(console|Array|Date|Error|Function|JSON|Map|Math|Object|Promise|RegExp|Set|WeakMap|WeakSet)$/g,rt=/^(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,it=/^(global|process|Buffer)$/g,at=/^(any|as|bigint|boolean|namespace|never|null|number|string|symbol|type|undefined|unknown|void)$/g,ot=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u,st=e=>(e||e===``)&&(ot.lastIndex=0,!ot.test(e))?`'${e}'`:e,ct=e=>e&&e.startsWith(`'`)&&e.endsWith(`'`)?e.slice(1,e.length-1):e,D=e=>e.replace(/\*\//g,`*`).replace(/\/\*/g,`*`).replace(/\r?\n(.*)/g,(e,t)=>o+t.trim()),lt=a.createPrinter({newLine:a.NewLineKind.LineFeed,removeComments:!1}),ut=(e=>a.createSourceFile(``,e,a.ScriptTarget.ESNext,!1,a.ScriptKind.TS))(``),dt=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,16)));function ft({node:e,unescape:t=!1}){let n=lt.printNode(a.EmitHint.Unspecified,e,ut);if(!t)return n;try{return dt(n)}catch{return S().logs.level===`debug`&&console.warn(`Could not decode value:`,n),n}}const O=({text:e})=>a.factory.createIdentifier(e),pt=()=>a.factory.createThis(),k=({keyword:e})=>{let t=wt({keyword:e});return a.factory.createModifier(t)},mt=({initializer:e,modifier:t,name:n,type:r})=>a.factory.createPropertyDeclaration(t?[k({keyword:t})]:void 0,n,void 0,r,e),ht={boolean:e=>e?a.factory.createTrue():a.factory.createFalse(),export:({alias:e,asType:t=!1,name:n})=>{let r=O({text:n});if(e){let n=O({text:e});return a.factory.createExportSpecifier(t,r,n)}return a.factory.createExportSpecifier(t,void 0,r)},import:({alias:e,asType:t=!1,name:n})=>{let r=O({text:n});if(e){let n=O({text:e});return a.factory.createImportSpecifier(t,r,n)}return a.factory.createImportSpecifier(t,void 0,r)},number:e=>e<0?a.factory.createPrefixUnaryExpression(a.SyntaxKind.MinusToken,a.factory.createNumericLiteral(Math.abs(e))):a.factory.createNumericLiteral(e),string:(e,t=!1)=>{let n=e;t&&(n=ct(n));let r=n.includes(`'`)&&n.includes(`"`),i=n.includes(`
2
2
  `),a=n.startsWith("`"),o=n.startsWith("\\`")&&n.endsWith("\\`");return(i||r||a)&&!o&&(n=`\`${n.replace(/(?<!\\)`/g,"\\`").replace(/\${/g,"\\${")}\``),n.startsWith("`")?O({text:n}):Ht({text:n})}},gt=e=>typeof e==`object`&&!!e&&typeof e.kind==`number`&&typeof e.flags==`number`&&typeof e.pos==`number`&&typeof e.end==`number`,_t=e=>e!==void 0,vt=({commentObject:e,node:t})=>{let n=e.lines.filter(e=>!!e||e===``);if(!n.length)return;if(!e.jsdoc){for(let e of n)a.addSyntheticLeadingComment(t,a.SyntaxKind.SingleLineCommentTrivia,` ${e}`,!0);return}let r=n.map((e,t)=>{let r=e;return t!==n.length&&(r=`${r}\n`),a.factory.createJSDocText(r)}),i=ft({node:a.factory.createJSDocComment(a.factory.createNodeArray(r),void 0),unescape:!0}).replace(`/*`,``).replace(`* */`,``);a.addSyntheticLeadingComment(t,a.SyntaxKind.MultiLineCommentTrivia,i,!0)},A=({comments:e=[],node:t})=>{let n=!!e.find(e=>typeof e==`object`&&e),r=e;n||(r=[{jsdoc:!0,lines:e}]);for(let e of r)vt({commentObject:e,node:t})},j=(e,t)=>a.isTypeNode(e)?e:typeof e==`number`?a.factory.createLiteralTypeNode(ht.number(e)):Kt({typeArguments:t?.map(e=>j(e)),typeName:a.isIdentifier(e)?e.text:e}),yt=({expression:e,name:t})=>a.factory.createPropertyAccessChain(e,a.factory.createToken(a.SyntaxKind.QuestionDotToken),t),bt=({expression:e,isOptional:t,name:n})=>{let r=typeof e==`string`?O({text:e}):e;if(t&&typeof n!=`number`)return yt({expression:r,name:n});if(typeof n==`string`){if(ot.lastIndex=0,!ot.test(n)){!n.startsWith(`'`)&&!n.endsWith(`'`)&&(n=`\'${n}\'`);let e=O({text:n});return a.factory.createElementAccessExpression(r,e)}let e=O({text:n});return a.factory.createPropertyAccessExpression(r,e)}if(typeof n==`number`){let e=a.factory.createNumericLiteral(n);return a.factory.createElementAccessExpression(r,e)}return a.factory.createPropertyAccessExpression(r,n)},xt=()=>a.factory.createNull(),St=({identifiers:e=[],isValueAccess:t,shorthand:n,unescape:r,value:i})=>{if(i===null)return xt();if(Array.isArray(i))return Nt({elements:i});if(typeof i==`object`)return It({identifiers:e,obj:i,shorthand:n});if(typeof i==`number`)return ht.number(i);if(typeof i==`boolean`)return ht.boolean(i);if(typeof i==`string`){if(t){let e=i.split(`.`);return bt({expression:e[0],name:e[1]})}return ht.string(i,r)}},Ct=e=>e.map(e=>{if(`destructure`in e)return Jt({name:a.factory.createObjectBindingPattern(e.destructure.map(e=>{if(!(`destructure`in e))return a.factory.createBindingElement(void 0,void 0,O({text:e.name}),void 0)}).filter(Boolean)),type:e.type===void 0?void 0:j(e.type)});let t=e.accessLevel?[k({keyword:e.accessLevel})]:[];return e.isReadOnly&&t.push(k({keyword:`readonly`})),Jt({initializer:e.default===void 0?void 0:St({value:e.default}),modifiers:t,name:O({text:e.name}),required:e.isRequired!==!1,type:e.type===void 0?void 0:j(e.type)})}),wt=({keyword:e})=>{switch(e){case`any`:return a.SyntaxKind.AnyKeyword;case`async`:return a.SyntaxKind.AsyncKeyword;case`boolean`:return a.SyntaxKind.BooleanKeyword;case`export`:return a.SyntaxKind.ExportKeyword;case`never`:return a.SyntaxKind.NeverKeyword;case`number`:return a.SyntaxKind.NumberKeyword;case`private`:return a.SyntaxKind.PrivateKeyword;case`protected`:return a.SyntaxKind.ProtectedKeyword;case`public`:return a.SyntaxKind.PublicKeyword;case`readonly`:return a.SyntaxKind.ReadonlyKeyword;case`static`:return a.SyntaxKind.StaticKeyword;case`string`:return a.SyntaxKind.StringKeyword;case`undefined`:return a.SyntaxKind.UndefinedKeyword;case`unknown`:return a.SyntaxKind.UnknownKeyword;case`void`:return a.SyntaxKind.VoidKeyword;default:throw Error(`unsupported syntax kind keyword "${e}"`)}},Tt=({keyword:e})=>{let t=wt({keyword:e});return a.factory.createKeywordTypeNode(t)},Et=e=>e.map(e=>a.isTypeParameterDeclaration(e)?e:Ot({constraint:e.extends?typeof e.extends==`string`?Tt({keyword:`boolean`}):e.extends:void 0,defaultType:e.default===void 0?void 0:gt(e.default)?e.default:a.factory.createLiteralTypeNode(e.default?a.factory.createTrue():a.factory.createFalse()),name:e.name})),Dt=({operator:e,type:t})=>{let n=e===`keyof`?a.SyntaxKind.KeyOfKeyword:e===`readonly`?a.SyntaxKind.ReadonlyKeyword:a.SyntaxKind.UniqueKeyword;return a.factory.createTypeOperatorNode(n,t)},Ot=({constraint:e,defaultType:t,modifiers:n,name:r})=>a.factory.createTypeParameterDeclaration(n,r,e,t),kt=({members:e,nameType:t,questionToken:n,readonlyToken:r,type:i,typeParameter:o})=>a.factory.createMappedTypeNode(r,o,t,n,i,e),At=({literal:e})=>a.factory.createLiteralTypeNode(e),jt=({async:e,comment:t,multiLine:n,parameters:r=[],returnType:i,statements:o=[],types:s=[]})=>{let c=a.factory.createArrowFunction(e?[k({keyword:`async`})]:void 0,s?Et(s):void 0,Ct(r),i?j(i):void 0,void 0,Array.isArray(o)?Qt({multiLine:n,statements:o}):o);return A({comments:t,node:c}),c},Mt=({async:e,comment:t,multiLine:n,parameters:r=[],returnType:i,statements:o=[],types:s=[]})=>{let c=a.factory.createFunctionExpression(e?[k({keyword:`async`})]:void 0,void 0,void 0,s?Et(s):void 0,Ct(r),i?j(i):void 0,Qt({multiLine:n,statements:o}));return A({comments:t,node:c}),c},Nt=({elements:e,multiLine:t=!1})=>a.factory.createArrayLiteralExpression(e.map(e=>gt(e)?e:St({value:e})).filter(_t),t||!Array.isArray(e[0])&&typeof e[0]==`object`),Pt=({expression:e})=>a.factory.createAwaitExpression(e),Ft=({parameters:e=[],returnType:t,typeParameters:n})=>a.factory.createFunctionTypeNode(n,e,t),It=({comments:e,identifiers:t=[],multiLine:n=!0,obj:r,shorthand:i,unescape:o=!1})=>{let s=Array.isArray(r)?r.map(e=>{let r=!1;if(`key`in e){let{key:t}=e;r=t===e.value,(t.match(/^[0-9]/)&&t.match(/\D+/g)||t.match(/\W/g)||t===``)&&!t.startsWith(`'`)&&!t.endsWith(`'`)&&(e.key=`'${t}'`)}let s;if(`spread`in e){let t=gt(e.spread)?e.spread:O({text:e.spread});s=a.factory.createSpreadAssignment(e.assertion?tn({expression:t,type:typeof e.assertion==`string`?Tt({keyword:e.assertion}):e.assertion}):t)}else if(e.shorthand||i&&r)s=a.factory.createShorthandPropertyAssignment(e.value);else{let r=gt(e.value)?e.value:Array.isArray(e.value)&&(!e.value.length||typeof e.value[0]==`object`)?It({multiLine:n,obj:e.value,shorthand:i,unescape:o}):St({identifiers:t.includes(e.key)?Object.keys(e.value):[],isValueAccess:e.isValueAccess,shorthand:i,unescape:o,value:e.value});if(!r)return;t.includes(e.key)&&!a.isObjectLiteralExpression(r)&&(r=O({text:e.value})),s=$t({initializer:r,name:e.key})}return A({comments:e.comments,node:s}),s}).filter(_t):Object.entries(r).map(([e,n])=>{let r=St({identifiers:t.includes(e)?Object.keys(n):[],shorthand:i,unescape:o,value:n});if(!r)return;t.includes(e)&&!a.isObjectLiteralExpression(r)&&(r=O({text:n}));let s=e===n;return e.match(/^[0-9]/)&&e.match(/\D+/g)&&!e.startsWith(`'`)&&!e.endsWith(`'`)&&(e=`'${e}'`),e.match(/\W/g)&&!e.startsWith(`'`)&&!e.endsWith(`'`)&&(e=`'${e}'`),i&&s?a.factory.createShorthandPropertyAssignment(n):$t({initializer:r,name:e})}).filter(_t),c=a.factory.createObjectLiteralExpression(s,n);return A({comments:e,node:c}),c},Lt=({asConst:e,comments:t={},leadingComment:n,name:r,obj:i})=>{let o=Array.isArray(i)?i.map(e=>{let t=Rt({initializer:St({value:e.value}),name:e.key});return A({comments:e.comments,node:t}),t}):Object.entries(i).map(([e,n])=>{let r=a.factory.createEnumMember(e,St({unescape:!0,value:n}));return A({comments:t[e],node:r}),r}),s=[k({keyword:`export`})],c=e?[a.factory.createToken(a.SyntaxKind.ConstKeyword)]:[],l=[...s,...c],u=a.factory.createEnumDeclaration(l,typeof r==`string`?O({text:r}):r,o);return A({comments:n,node:u}),u},Rt=({initializer:e,name:t})=>{let n=t;return typeof n==`string`&&(n=n.includes(`'`)?Ht({isSingleQuote:!1,text:n}):st(n)),a.factory.createEnumMember(n,e)},zt=({name:e,statements:t})=>a.factory.createModuleDeclaration([k({keyword:`export`})],O({text:e}),a.factory.createModuleBlock(t),a.NodeFlags.Namespace),Bt=({indexType:e,objectType:t})=>a.factory.createIndexedAccessTypeNode(t,e),Vt=({name:e,returnType:t,statements:n})=>a.factory.createGetAccessorDeclaration(void 0,e,[],t?Kt({typeName:t}):void 0,Qt({statements:n})),Ht=({isSingleQuote:e,text:t})=>(e===void 0&&(e=!t.includes(`'`)),a.factory.createStringLiteral(t,e)),Ut=({condition:e,whenFalse:t,whenTrue:n})=>a.factory.createConditionalExpression(e,a.factory.createToken(a.SyntaxKind.QuestionToken),n,a.factory.createToken(a.SyntaxKind.ColonToken),t),Wt=({text:e})=>a.factory.createTypeOfExpression(typeof e==`string`?O({text:e}):e),Gt=({comment:e,exportType:t,name:n,type:r,typeParameters:i=[]})=>{let o=a.factory.createTypeAliasDeclaration(t?[k({keyword:`export`})]:void 0,typeof n==`string`?O({text:n}):n,Et(i),j(r));return A({comments:e,node:o}),o},Kt=({typeArguments:e,typeName:t})=>a.factory.createTypeReferenceNode(t,e),qt=({type:e})=>a.factory.createParenthesizedType(e),Jt=({initializer:e,modifiers:t,name:n,required:r=!0,type:i})=>a.factory.createParameterDeclaration(t,void 0,n,r?void 0:a.factory.createToken(a.SyntaxKind.QuestionToken),i,e),Yt=({argumentsArray:e,expression:t,typeArguments:n})=>a.factory.createNewExpression(t,n,e),Xt=({awaitModifier:e,expression:t,initializer:n,statement:r})=>a.factory.createForOfStatement(e,n,t,r),Zt=({left:e,right:t})=>a.factory.createAssignment(e,t),Qt=({multiLine:e=!0,statements:t})=>a.factory.createBlock(t,e),$t=({initializer:e,name:t})=>a.factory.createPropertyAssignment(t,e),en=({flags:e=[],text:t})=>{let n=`/${(t.startsWith(`/`)&&t.endsWith(`/`)?t.slice(1,-1):t).replace(/(?<!\\)\//g,`\\/`)}/`;return a.factory.createRegularExpressionLiteral(`${n}${e.join(``)}`)},tn=({expression:e,type:t})=>a.factory.createAsExpression(e,t),nn=({value:e})=>{let t=[],n=``;for(let r of e.slice(0).reverse())if(typeof r==`string`)n=`${r}${n}`;else{let e=t.length?a.factory.createTemplateMiddle(n):a.factory.createTemplateTail(n),i=a.factory.createTemplateLiteralTypeSpan(r,e);t.push(i),n=``}return a.factory.createTemplateLiteralType(a.factory.createTemplateHead(n),t.reverse())},rn=({module:e,shouldAppendJs:t})=>a.factory.createExportDeclaration(void 0,!1,void 0,ht.string(t?`${e}.js`:e)),an=({functionName:e,parameters:t=[],types:n})=>{let r=typeof e==`string`?O({text:e}):e,i=t.filter(e=>e!==void 0).map(e=>typeof e==`string`?O({text:e}):e);return a.factory.createCallExpression(r,n,i)},on=({exports:e,module:t})=>{let n=Array.isArray(e)?e:[e],r=n.some(e=>typeof e!=`object`||!e.asType),i=n.map(e=>{let t=typeof e==`string`?{name:e}:e;return ht.export({alias:t.alias,asType:r&&t.asType,name:t.name})}),o=a.factory.createNamedExports(i),s=ht.string(t);return a.factory.createExportDeclaration(void 0,!r,o,s)},sn=({assertion:e,comment:t,destructure:n,exportConst:r,expression:i,name:o,typeName:s})=>{let c=e?tn({expression:i,type:typeof e==`string`?Kt({typeName:e}):e}):i,l=typeof o==`string`?O({text:o}):o,u=a.factory.createVariableDeclaration(n?a.factory.createObjectBindingPattern([a.factory.createBindingElement(void 0,void 0,l,void 0)]):l,void 0,s?typeof s==`string`?Kt({typeName:s}):s:void 0,c),d=a.factory.createVariableStatement(r?[k({keyword:`export`})]:void 0,a.factory.createVariableDeclarationList([u],a.NodeFlags.Const));return A({comments:t,node:d}),d},cn=({imports:e,module:t})=>{let n=Array.isArray(e)?e:[e],r=n.some(e=>typeof e!=`object`||!e.asType),i,o=[];n.forEach(e=>{let t=typeof e==`string`?{name:e}:e;t.name===`*`&&t.alias?i=t:o.push(ht.import({alias:t.alias,asType:r&&t.asType,name:t.name}))});let s=i?a.factory.createNamespaceImport(O({text:i.alias})):a.factory.createNamedImports(o),c=a.factory.createImportClause(!r,void 0,s),l=ht.string(t);return a.factory.createImportDeclaration(void 0,c,l)},ln=({accessLevel:e,comment:t,multiLine:n=!0,parameters:r=[],statements:i=[]})=>{let o=e?[k({keyword:e})]:void 0,s=a.factory.createConstructorDeclaration(o,Ct(r),Qt({multiLine:n,statements:i}));return A({comments:t,node:s}),s},un=({accessLevel:e,comment:t,isStatic:n=!1,multiLine:r=!0,name:i,parameters:o=[],returnType:s,statements:c=[],types:l=[]})=>{let u=e?[k({keyword:e})]:[];n&&u.push(k({keyword:`static`}));let d=a.factory.createMethodDeclaration(u,void 0,O({text:i}),void 0,l?Et(l):void 0,Ct(o),s?j(s):void 0,Qt({multiLine:r,statements:c}));return A({comments:t,node:d}),d},dn=({decorator:e,exportClass:t,extendedClasses:n,name:r,nodes:i})=>{let o=[];t&&o.push(k({keyword:`export`})),e&&o.unshift(a.factory.createDecorator(an({functionName:e.name,parameters:e.args.map(e=>St({value:e})).filter(_t)})));let s=[];if(n)for(let e of n)s.push(a.factory.createHeritageClause(a.SyntaxKind.ExtendsKeyword,[a.factory.createExpressionWithTypeArguments(O({text:e}),void 0)]));return a.factory.createClassDeclaration(o,O({text:r}),void 0,s,i)},fn=({expression:e})=>a.factory.createExpressionStatement(e),pn=({expression:e})=>a.factory.createReturnStatement(e),mn=({args:e=[],name:t,types:n=[]})=>{let r=n.map(e=>Kt({typeName:e}));return pn({expression:an({functionName:t,parameters:e.map(e=>a.isExpression(e)?e:O({text:e})).filter(_t),types:r})})},hn=({expression:e})=>pn({expression:typeof e==`string`?O({text:e}):e}),gn=e=>e.slice(1).reduce((e,t)=>(ot.lastIndex=0,ot.test(t)?yt({expression:e,name:t}):a.factory.createElementAccessChain(e,a.factory.createToken(a.SyntaxKind.QuestionDotToken),O({text:t}))),O({text:e[0]})),_n=e=>e.slice(1).reduce((e,t)=>bt({expression:e,name:t}),O({text:e[0]})),vn=({expressions:e})=>e.reduce((e,t)=>bt({expression:e,name:t})),yn=({left:e,operator:t=`=`,right:n})=>a.factory.createBinaryExpression(e,t===`=`?a.SyntaxKind.EqualsToken:t===`===`?a.SyntaxKind.EqualsEqualsEqualsToken:t===`!==`?a.SyntaxKind.ExclamationEqualsEqualsToken:t===`??`?a.SyntaxKind.QuestionQuestionToken:a.SyntaxKind.InKeyword,typeof n==`string`?O({text:n}):n),bn=({elseStatement:e,expression:t,thenStatement:n})=>a.factory.createIfStatement(t,n,e),xn=({path:e})=>{let t=gn(e),n=_n(e);return bn({expression:t,thenStatement:Qt({statements:[fn({expression:yn({left:n,right:Yt({argumentsArray:[n],expression:O({text:`Date`})})})})]})})},Sn=({path:e,transformerName:t})=>[bn({expression:gn(e),thenStatement:Qt({statements:[fn({expression:an({functionName:t,parameters:[_n(e)]})})]})})],Cn=({path:e,transformerName:t})=>{let n=gn(e),r=_n(e);return bn({expression:an({functionName:bt({expression:`Array`,name:`isArray`}),parameters:[n]}),thenStatement:Qt({statements:[fn({expression:a.factory.createCallChain(bt({expression:r,name:`forEach`}),void 0,void 0,[O({text:t})])})]})})},wn=({parameterName:e})=>{let t=O({text:`Date`});return Yt({argumentsArray:[O({text:e})],expression:t})},Tn=({path:e,transformExpression:t})=>{let n=gn(e),r=_n(e);return bn({expression:an({functionName:bt({expression:`Array`,name:`isArray`}),parameters:[n]}),thenStatement:Qt({statements:[fn({expression:yn({left:r,right:a.factory.createCallChain(bt({expression:r,name:`map`}),void 0,void 0,[jt({parameters:[{name:`item`}],statements:t})])})})]})})},En=Kt({typeName:`null`}),Dn=({isNullable:e,node:t})=>e?a.factory.createUnionTypeNode([t,En]):t,On=({indexKey:e,indexProperty:t,isNullable:n,properties:r,useLegacyResolution:i})=>{let o=[],s=r.map(e=>{let t=e.isReadOnly?[k({keyword:`readonly`})]:void 0,n=e.isRequired===!1?a.factory.createToken(a.SyntaxKind.QuestionToken):void 0,r=j(e.type);o.push(r);let s=a.factory.createPropertySignature(t,i||typeof e.name==`string`&&e.name.match(ot)||typeof e.name!=`string`&&a.isPropertyName(e.name)?e.name:Ht({text:e.name}),n,r);return A({comments:e.comment,node:s}),s}),c=!1;if(t)if(!r.length&&e){let n=kt({questionToken:a.factory.createToken(a.SyntaxKind.QuestionToken),type:t.type??Tt({keyword:`string`}),typeParameter:Ot({constraint:e,name:O({text:String(t.name)})})});s.push(n),c=!0}else{let e=t.isReadOnly?[k({keyword:`readonly`})]:void 0,n=a.factory.createIndexSignature(e,[Jt({name:O({text:String(t.name)}),type:Tt({keyword:`string`})})],j(t.type));s.push(n)}return Dn({isNullable:n,node:c?s[0]:a.factory.createTypeLiteralNode(s)})},kn=({isNullable:e,types:t})=>{let n=[];for(let e of t){let t=j(e);a.isUnionTypeNode(t)?n.push(...t.types):n.push(t)}return Dn({isNullable:e,node:a.factory.createUnionTypeNode(n)})},M={anonymousFunction:Mt,arrayLiteralExpression:Nt,arrowFunction:jt,asExpression:tn,assignment:Zt,awaitExpression:Pt,binaryExpression:yn,block:Qt,callExpression:an,classDeclaration:dn,conditionalExpression:Ut,constVariable:sn,constructorDeclaration:ln,enumDeclaration:Lt,exportAllDeclaration:rn,exportNamedDeclaration:on,expressionToStatement:fn,forOfStatement:Xt,functionTypeNode:Ft,getAccessorDeclaration:Vt,identifier:O,ifStatement:bn,indexedAccessTypeNode:Bt,isTsNode:gt,keywordTypeNode:Tt,literalTypeNode:At,mappedTypeNode:kt,methodDeclaration:un,namedImportDeclarations:cn,namespaceDeclaration:zt,newExpression:Yt,nodeToString:ft,null:xt,objectExpression:It,ots:ht,parameterDeclaration:Jt,propertyAccessExpression:bt,propertyAccessExpressions:vn,propertyAssignment:$t,propertyDeclaration:mt,regularExpressionLiteral:en,returnFunctionCall:mn,returnStatement:pn,returnVariable:hn,safeAccessExpression:gn,stringLiteral:Ht,templateLiteralType:nn,this:pt,transformArrayMap:Tn,transformArrayMutation:Cn,transformDateMutation:xn,transformFunctionMutation:Sn,transformNewDate:wn,typeAliasDeclaration:Gt,typeArrayNode:(e,t=!1)=>Dn({isNullable:t,node:Kt({typeArguments:[Array.isArray(e)?kn({types:e}):e],typeName:`Array`})}),typeInterfaceNode:On,typeIntersectionNode:({isNullable:e,types:t})=>{let n=[];for(let e of t){let t=j(e);a.isIntersectionTypeNode(t)?n.push(...t.types):n.push(t)}return Dn({isNullable:e,node:a.factory.createIntersectionTypeNode(n)})},typeNode:j,typeOfExpression:Wt,typeOperatorNode:Dt,typeParameterDeclaration:Ot,typeParenthesizedNode:qt,typeRecordNode:(e,t,n=!1,r=!0)=>{let i=kn({types:e}),a=kn({types:t});return Dn({isNullable:n,node:On({properties:[{name:`[key: ${ft({node:i,unescape:!0})}]`,type:a}],useLegacyResolution:r})})},typeReferenceNode:Kt,typeTupleNode:({isNullable:e=!1,types:t})=>{let n=t.map(e=>j(e));return Dn({isNullable:e,node:a.factory.createTupleTypeNode(n)})},typeUnionNode:kn,valueToExpression:St},An=M,jn=({context:e,parameter:t})=>{if(!t.pagination)return;if(t.pagination===!0)return t.schema;let n=t.schema;return n.$ref&&(n=e.resolveIrRef(n.$ref)),n.properties[t.pagination]},Mn=e=>{for(let t in e)if(e[t].required)return!0;return!1},Nn=e=>e?!!(Mn(e.cookie)||Mn(e.header)||Mn(e.path)||Mn(e.query)):!1,Pn=({context:e,parameters:t})=>{if(t){for(let n in t.cookie){let r=t.cookie[n];if(r.pagination)return{in:r.location,name:r.pagination===!0?r.name:`${r.name}.${r.pagination}`,schema:jn({context:e,parameter:r})}}for(let n in t.header){let r=t.header[n];if(r.pagination)return{in:r.location,name:r.pagination===!0?r.name:`${r.name}.${r.pagination}`,schema:jn({context:e,parameter:r})}}for(let n in t.path){let r=t.path[n];if(r.pagination)return{in:r.location,name:r.pagination===!0?r.name:`${r.name}.${r.pagination}`,schema:jn({context:e,parameter:r})}}for(let n in t.query){let r=t.query[n];if(r.pagination)return{in:r.location,name:r.pagination===!0?r.name:`${r.name}.${r.pagination}`,schema:jn({context:e,parameter:r})}}}},N=({detectFormat:e=!0,schema:t})=>{if(!t.items)return t;let n=[],r=[];for(let i of t.items){if(!i.type&&i.items||t.type===`tuple`){n.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 t=i.const===void 0?``:`const-${i.const}`,a=i.format!==void 0&&e?`format-${i.format}`:``,o=[i.minLength===void 0?``:`minLength-${i.minLength}`,i.maxLength===void 0?``:`maxLength-${i.maxLength}`,i.minimum===void 0?``:`minimum-${i.minimum}`,i.maximum===void 0?``:`maximum-${i.maximum}`,i.exclusiveMinimum===void 0?``:`exclusiveMinimum-${i.exclusiveMinimum}`,i.exclusiveMaximum===void 0?``:`exclusiveMaximum-${i.exclusiveMaximum}`,i.minItems===void 0?``:`minItems-${i.minItems}`,i.maxItems===void 0?``:`maxItems-${i.maxItems}`,i.pattern===void 0?``:`pattern-${i.pattern}`].join(``),s=`${i.$ref??``}${i.type??``}${t}${a}${o}`;r.includes(s)||(r.push(s),n.push(i));continue}n.push(i)}let i={...t};if(i.items=n,i.items.length<=1&&i.type!==`array`&&i.type!==`enum`&&i.type!==`tuple`){let e=i.items[0];delete i.logicalOperator,delete i.items,i={...i,...e}}return i.type===`unknown`?{}:i},P=({items:e,logicalOperator:t=`or`,mutateSchemaOneItem:n=!1,schema:r})=>e.length?r.type===`tuple`?(r.items=e,r):e.length===1?n?(r={...r,...e[0]},r):(r.items=e,r):(r.items=e,r.logicalOperator=t,r):r,Fn=e=>!!(Nn(e.parameters)||e.body?.required),F=({method:e,path:t})=>`${e.toUpperCase()} ${t}`,In=({context:e,operation:t})=>{let n=t.body;if(!n||!n.pagination)return Pn({context:e,parameters:t.parameters});if(n.pagination===!0)return{in:`body`,name:`body`,schema:n.schema};let r=n.schema,i=r.$ref?e.resolveIrRef(r.$ref):r,a=(`schema`in i?i.schema:i)?.properties?.[n.pagination];return a?{in:`body`,name:n.pagination,schema:a}:Pn({context:e,parameters:t.parameters})},Ln=({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`}},Rn=e=>{let t={};if(!e.responses)return t;let n={properties:{},type:`object`},r={properties:{},type:`object`},i;for(let t in e.responses){let a=e.responses[t];switch(Ln({statusCode:t})){case`1XX`:case`3XX`:break;case`2XX`:r.properties[t]=a.schema;break;case`4XX`:case`5XX`:n.properties[t]=a.schema;break;case`default`:i=a;break}}if(i){let e=!1;Object.keys(r.properties).length||(r.properties.default=i.schema,e=!0);let t=(i.schema.description??``).toLocaleLowerCase(),a=(i.schema.$ref??``).toLocaleLowerCase();[`success`].some(e=>t.includes(e)||a.includes(e))&&(r.properties.default=i.schema,e=!0),[`error`,`problem`].some(e=>t.includes(e)||a.includes(e))&&(n.properties.default=i.schema,e=!0),e||(n.properties.default=i.schema)}let a=Object.keys(n.properties);if(a.length){n.required=a,t.errors=n;let e=P({items:Object.values(n.properties),mutateSchemaOneItem:!0,schema:{}});e=N({schema:e}),Object.keys(e).length&&e.type!==`unknown`&&(t.error=e)}let o=Object.keys(r.properties);if(o.length){r.required=o,t.responses=r;let e=P({items:Object.values(r.properties),mutateSchemaOneItem:!0,schema:{}});e=N({schema:e}),Object.keys(e).length&&e.type!==`unknown`&&(t.response=e)}return t},zn=(...e)=>s.satisfies(...e),Bn=e=>({getVersion:t=>{let n=e[t];if(n)try{let e=s.parse(n);if(e)return e;let t=s.minVersion(n);if(t)return t;if(e=s.coerce(n),e)return e}catch{}},isInstalled:t=>!!e[t],satisfies:(t,n,r)=>{let i=typeof t==`string`?e[t]:t;return i?zn(i,n,r):!1}}),Vn=[rt,at,nt,it,tt],Hn=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,`_`);if(et.lastIndex=0,et.test(t))return`_${t}`;for(let e of Vn){if(t.startsWith(`_`))return t;t=t.replace(e,`_$1`)}return t},Un=new Set(`buffer.child_process.cluster.console.constants.crypto.dgram.dns.domain.events.freelist.fs.http.https.module.net.os.path.process.punycode.querystring.readline.repl.stream.string_decoder.timers.tls.tty.url.util.v8.vm.worker_threads.zlib`.split(`.`));var Wn=class{addBinding({bindings:e,file:t,meta:n,project:r,symbol:i}){if(!i.external&&!r.symbols.hasValue(i.id))return;let[a]=r.symbolIdToFiles(i.id);if(!a)return;let o=this.getBindingPath(t,a,n),s=e.get(o),c=l({file:t,modulePath:o,symbol:i,symbolFile:a});s?(u(s,c),e.set(o,s)):e.set(o,c)}getBindingPath(e,t,n){if(!e.path||!t.path)return``;if(t.external&&!r.isAbsolute(t.path))return t.path;let i=r.posix.relative(r.posix.dirname(e.path.split(r.sep).join(r.posix.sep)),t.path.split(r.sep).join(r.posix.sep));return!i.startsWith(`.`)&&i!==``&&(i=`./${i}`),t.extension===`.ts`&&(i.endsWith(t.extension)&&(i=i.slice(0,-t.extension.length)),n?.importFileExtension?i+=n.importFileExtension:i.endsWith(`/index`)&&(i=i.slice(0,-6))),i}getBodyLines(e,t){let n=[];for(let r of e.symbols.body){let e=t.symbols.getValue(r);if(typeof e==`string`)n.push(e);else if(e instanceof Array)for(let t of e)n.push(ft({node:t,unescape:!0}));else e!=null&&n.push(ft({node:e,unescape:!0}))}return n}getExportLines(e,t,n){let r=[];for(let[i,o]of e.entries()){let e=[],s,c=!1;if(o.namespaceBinding!==void 0)typeof o.namespaceBinding==`string`&&(s=d(o.namespaceBinding,e=>{let r=n.symbols.get(e);return this.replacerFn({file:t,project:n,symbol:r})})),o.typeNamespaceBinding&&(c=!0);else if(o.names&&o.names.length>0){o.names.every(e=>(o.typeNames??[]).includes(e))&&(c=!0);for(let r of o.names){let i=o.aliases?.[r],s=r,l;i&&i!==s&&(l=s,s=i),s=d(s,e=>{let r=n.symbols.get(e),i=this.replacerFn({file:t,project:n,symbol:r}),[a]=n.symbolIdToFiles(e),o=a?a.resolvedNames.get(e):void 0;return o&&o!==i&&(l||=o),i}),l&&(l=d(l,e=>{let r=n.symbols.get(e);return this.replacerFn({file:t,project:n,symbol:r})}),l===s&&(l=void 0));let u=a.factory.createExportSpecifier(c?!1:o.typeNames?.includes(r)??!1,l?M.identifier({text:l}):void 0,M.identifier({text:s}));e.push(u)}}let l=s?a.factory.createNamespaceExport(M.identifier({text:s})):e.length?a.factory.createNamedExports(e):void 0,u=a.factory.createExportDeclaration(void 0,c,l,M.stringLiteral({isSingleQuote:!0,text:i}));r.push(ft({node:u,unescape:!0}))}return r}getHeaderLines(){return[`// This file is auto-generated by @hey-api/openapi-ts`]}getImportLines(e,t,n){let r=[],i=-1,o=e=>{let t=e.from;return t.startsWith(`.`)?t.startsWith(`./`)?[2,0,t]:[2,t.match(/\.\.\//g)?.length??0,t]:Un.has(t.split(`/`)[0])?[0,0,t]:[1,0,t]},s=Array.from(e.values()).map(e=>({...e,k:o(e)})).sort((e,t)=>e.k[0]-t.k[0]||e.k[1]-t.k[1]||e.k[2].localeCompare(t.k[2]));for(let e of s){let o=[],s,c,l=!1;if(e.defaultBinding){let r=d(e.defaultBinding,e=>{let r=n.symbols.get(e);return this.replacerFn({file:t,project:n,symbol:r})});s=M.identifier({text:r}),e.typeDefaultBinding&&(l=!0)}else if(typeof e.namespaceBinding==`string`)c=d(e.namespaceBinding,e=>{let r=n.symbols.get(e);return this.replacerFn({file:t,project:n,symbol:r})}),e.typeNamespaceBinding&&(l=!0);else if(e.names&&e.names.length>0){e.names.every(t=>e.typeNames?.includes(t))&&(l=!0);let r=[];for(let i of e.names){let a=e.aliases?.[i],o=i,s;a&&a!==o&&(s=o,o=a),o=d(o,e=>{let r=n.symbols.get(e),i=this.replacerFn({file:t,project:n,symbol:r}),[a]=n.symbolIdToFiles(e),o=a?a.resolvedNames.get(e):void 0;return o&&o!==i&&(s||=o),i}),s&&(s=d(s,e=>{let r=n.symbols.get(e);return this.replacerFn({file:t,project:n,symbol:r})}),s===o&&(s=void 0)),r.push({isTypeOnly:l?!1:e.typeNames?.includes(i)??!1,name:o,propertyName:s?M.identifier({text:s}):void 0})}o=r.sort((e,t)=>e.name.localeCompare(t.name)).map(({isTypeOnly:e,name:t,propertyName:n})=>a.factory.createImportSpecifier(e,n,M.identifier({text:t})))}let u=a.factory.createImportClause(l,s,c?a.factory.createNamespaceImport(M.identifier({text:c})):o.length?a.factory.createNamedImports(o):void 0),f=a.factory.createImportDeclaration(void 0,u,M.stringLiteral({isSingleQuote:!0,text:e.from}));i!==-1&&e.k[0]!==i&&r.push(``),r.push(ft({node:f,unescape:!0})),i=e.k[0]}return r}getUniqueName(e,t){let n=2,r=e;for(;t.hasValue(r);)r=`${e}${n}`,n+=1;return r}renderFile(e,t,n,r){let i=new Map;if(e=d(e,e=>{let a=n.symbols.get(e),o=this.replacerFn({file:t,project:n,symbol:a});return a&&this.addBinding({bindings:i,file:t,meta:r,project:n,symbol:a}),o}),!e.length)return``;let a=``,o=this.getHeaderLines();a+=`${o.join(`
3
3
  `)}${o.length?`
4
4
 
@@ -20,5 +20,5 @@ ${a}`,n.writeFileSync(e,a,`utf8`)},el=({meta:t,outputPath:i,plugin:a,project:o})
20
20
  `,t=null){if(this.isEmpty()){this.remove({force:!0});return}let i=this._path;if(typeof this._path==`string`){let e=this._path.split(r.sep);i=e.slice(0,e.length-1).join(r.sep)}b(i),n.writeFileSync(this._path,this._toString(e,t))}};const Nl=e=>{let t=e.match(/\.[0-9a-z]+$/i),n=t?t[0].slice(1):``;return{extension:n,name:e.slice(0,e.length-(n?n.length+1:0))}},Pl=(e,t)=>{let n=S();if(Array.isArray(e))return e.map(e=>Pl(e));if(typeof e!=`object`||!e)return e;let r={...e};return Object.entries(r).forEach(([e,i])=>{if(n.plugins[`@hey-api/schemas`]?.config.type===`form`&&[`description`,`x-enum-descriptions`,`x-enum-varnames`,`x-enumNames`,`title`].includes(e)&&t!==`properties`){delete r[e];return}e===`$ref`&&typeof i==`string`&&(r[e]=decodeURIComponent(i)),i&&typeof i==`object`&&(r[e]=Pl(i,e))}),r},Fl=(e,t)=>{let n=S(),r=nr(e),i=n.plugins[`@hey-api/schemas`];return i?.config.nameBuilder?typeof i.config.nameBuilder==`function`?i.config.nameBuilder(r,t):i.config.nameBuilder.replace(`{{name}}`,r):`${r}Schema`},Il={api:new Sl({name:`@hey-api/schemas`}),config:{exportFromIndex:!1,nameBuilder:e=>`${e}Schema`,type:`json`},handler:jl,handlerLegacy:({files:e,openApi:t,plugin:n})=>{e.schemas=new Ml({dir:S().output.path,exportFromIndex:n.config.exportFromIndex,id:`schemas`,name:`schemas.ts`});let r=(t,n)=>{let r=Pl(n),i=M.objectExpression({obj:r}),a=M.constVariable({assertion:`const`,exportConst:!0,expression:i,name:Fl(t,n)});e.schemas.add(a)};`swagger`in t&&Object.entries(t.definitions??{}).forEach(([e,t])=>{r(e,t)}),`openapi`in t&&Object.entries(t.components?.schemas??{}).forEach(([e,t])=>{r(e,t)})},name:`@hey-api/schemas`},Ll=({operation:e})=>{let t=[];if(e.summary&&t.push(D(e.summary)),e.description&&(t.length&&t.push(``),t.push(D(e.description))),e.deprecated&&(t.length&&t.push(``),t.push(`@deprecated`)),t.length)return t};var Rl=class{constructor(e){this.meta=e}createOperationComment(...e){return Ll(...e)}getSelector(...e){return[this.meta.name,...e]}};const zl=({meta:e,onImport:t,...n})=>{if(!e)return{created:!1,name:``};let{created:r,name:i}=bs({meta:e,...n});return i&&t(i),{created:r,name:i}},Bl=e=>`${e}ModelResponseTransformer`,Vl=e=>`${w({case:`PascalCase`,value:e})}Data`,Hl=e=>`${w({case:`PascalCase`,value:e})}Error`,Ul=e=>`${e}Transformer`,Wl=e=>`${w({case:`PascalCase`,value:e})}Response`,Gl=({importedType:e,throwOnError:t})=>{let n=`OptionsLegacyParser`;return t?`${n}<${e||`unknown`}, ${t}>`:e?`${n}<${e}>`:n},Kl=(e,t)=>{let n=S(),{name:r}=bs({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Vl}),i=ws(t.parameters);if(!C(n))return[{isRequired:i,name:`options`,type:Gl({importedType:r,throwOnError:`ThrowOnError`})}];if(!t.parameters.length)return[];let a=e=>{if(e.default!==void 0)return JSON.stringify(e.default,null,4)};return n.useOptions?[{default:i?void 0:{},name:`data`,type:r}]:t.parameters.map(e=>{let t=`${r}['${e.name}']`;return{default:e?.default,isRequired:(!e.isRequired&&!a(e)?`?`:``)==``,name:e.name,type:t}})},ql=(e,t)=>{let n=S(),r=M.typeNode(`void`);if(t.responses.filter(e=>e.responseTypes.includes(`success`)).length){let{name:n}=bs({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Wl});r=M.typeUnionNode({types:[n]})}return n.useOptions&&n.plugins[`@hey-api/sdk`]?.config.response===`response`&&(r=M.typeNode(`ApiResult`,[r])),r=x(n).name===`legacy/angular`?M.typeNode(`Observable`,[r]):M.typeNode(`CancelablePromise`,[r]),r},Jl=e=>{let t=S();if(!C(t))return[e.deprecated&&`@deprecated`,e.summary&&D(e.summary),e.description&&D(e.description)];let n=[];e.parameters.length&&(n=t.useOptions?[`@param data The data for the request.`,...e.parameters.map(e=>`@param data.${e.name} ${e.description?D(e.description):``}`)]:e.parameters.map(e=>`@param ${e.name} ${e.description?D(e.description):``}`));let r=e.responses.filter(e=>e.responseTypes.includes(`success`));return[e.deprecated&&`@deprecated`,e.summary&&D(e.summary),e.description&&D(e.description),...n,...r.map(e=>`@returns ${e.type} ${e.description?D(e.description):``}`),`@throws ApiError`]},Yl=({client:e,onClientImport:t,onImport:n,operation:r})=>{let i=S(),a=Wl(r.name),{name:o}=bs({client:e,meta:{$ref:`transformers/${a}`,name:a},nameTransformer:Ul});if(o&&n(o),!C(i)){let e=[{spread:`options`}],n=r.parameters.filter(e=>e.in===`body`||e.in===`formData`).map(e=>e.mediaType||(e.in===`formData`?`multipart/form-data`:void 0)).filter(Boolean).filter(Ko);return n.length===1&&(n[0]===`multipart/form-data`&&(e=[...e,{spread:`formDataBodySerializer`},{key:`headers`,value:[{key:`Content-Type`,value:null},{spread:`options?.headers`}]}],t?.(`formDataBodySerializer`)),n[0]===`application/x-www-form-urlencoded`&&(e=[...e,{spread:`urlSearchParamsBodySerializer`},{key:`headers`,value:[{key:`Content-Type`,value:n[0]},{spread:`options?.headers`}]}],t?.(`urlSearchParamsBodySerializer`))),e=[...e,{key:`url`,value:r.path}],o&&(e=[...e,{key:`responseTransformer`,value:o}]),M.objectExpression({identifiers:[`responseTransformer`],obj:e})}let s=e=>e.reduce((e,t)=>{let n=t.prop,r=i.useOptions?`data.${t.name}`:t.name;return n===r?e[n]=n:st(n)===n?e[n]=r:e[`'${n}'`]=r,e},{}),c={method:r.method,url:r.path};r.parametersPath.length&&(c.path=s(r.parametersPath)),r.parametersCookie.length&&(c.cookies=s(r.parametersCookie)),r.parametersHeader.length&&(c.headers=s(r.parametersHeader)),r.parametersQuery.length&&(c.query=s(r.parametersQuery)),r.parametersForm.length&&(c.formData=s(r.parametersForm)),r.parametersBody&&(r.parametersBody.in===`formData`&&(i.useOptions?c.formData=`data.${r.parametersBody.name}`:c.formData=r.parametersBody.name),r.parametersBody.in===`body`&&(i.useOptions?c.body=`data.${r.parametersBody.name}`:c.body=r.parametersBody.name)),r.parametersBody?.mediaType&&(c.mediaType=r.parametersBody?.mediaType),r.responseHeader&&(c.responseHeader=r.responseHeader),o&&(c.responseTransformer=o);let l=r.responses.filter(e=>e.responseTypes.includes(`error`));if(l.length>0){let e={};l.forEach(t=>{e[t.code]=t.description??``}),c.errors=e}return M.objectExpression({identifiers:[`body`,`cookies`,`formData`,`headers`,`path`,`query`,`responseTransformer`],obj:c,shorthand:!0})},Xl=({config:e,handleIllegal:t,id:n,operation:r})=>e.plugins[`@hey-api/sdk`]?.config.methodNameBuilder?e.plugins[`@hey-api/sdk`].config.methodNameBuilder(r):t&&n.match(rt)?`${n}_`:n,Zl=({client:e,onClientImport:t,onImport:n,operation:r})=>{let i=S(),a=Yl({client:e,onClientImport:t,onImport:n,operation:r});if(!C(i)){let t=bs({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:Hl}).name,n=r.responses.filter(e=>e.responseTypes.includes(`success`)).length?bs({client:e,meta:{$ref:r.name,name:r.name},nameTransformer:Wl}).name:`void`;return[M.returnFunctionCall({args:[a],name:`(options?.client ?? client).${r.method.toLocaleLowerCase()}`,types:t&&n?[n,t,`ThrowOnError`]:t?[`unknown`,t,`ThrowOnError`]:n?[n,`unknown`,`ThrowOnError`]:[]})]}return pe(i)?[M.returnFunctionCall({args:[a],name:`this.httpRequest.request`})]:x(i).name===`legacy/angular`?[M.returnFunctionCall({args:[`OpenAPI`,`this.http`,a],name:`__request`})]:[M.returnFunctionCall({args:[`OpenAPI`,a],name:`__request`})]},Ql=({client:e,onClientImport:t,onImport:n,onNode:r,service:i})=>{let a=S(),o=x(a),s=C(a);for(let t of i.operations)t.parameters.length&&zl({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Vl,onImport:n}),s||zl({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Hl,onImport:n}),t.responses.filter(e=>e.responseTypes.includes(`success`)).length&&zl({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Wl,onImport:n});let c={default:(`throwOnError`in o.config?o.config.throwOnError:!1)??!1,extends:`boolean`,name:`ThrowOnError`};if(!a.plugins[`@hey-api/sdk`]?.config.asClass&&!pe(a)){for(let l of i.operations){let i={parameters:Kl(e,l),returnType:s?ql(e,l):void 0,statements:Zl({client:e,onClientImport:t,onImport:n,operation:l}),types:s?void 0:[c]},u=o.name===`legacy/angular`?M.anonymousFunction(i):M.arrowFunction(i);r(M.constVariable({comment:Jl(l),exportConst:!0,expression:u,name:Xl({config:a,handleIllegal:!0,id:l.name,operation:l})}))}return}let l=i.operations.map(r=>M.methodDeclaration({accessLevel:`public`,comment:Jl(r),isStatic:pe(a)===void 0&&o.name!==`legacy/angular`,name:Xl({config:a,id:r.name,operation:r}),parameters:Kl(e,r),returnType:s?ql(e,r):void 0,statements:Zl({client:e,onClientImport:t,onImport:n,operation:r}),types:s?void 0:[c]}));if(!l.length)return;pe(a)?l=[M.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:`public`,isReadOnly:!0,name:`httpRequest`,type:`BaseHttpRequest`}]}),...l]:o.name===`legacy/angular`&&(l=[M.constructorDeclaration({multiLine:!1,parameters:[{accessLevel:`public`,isReadOnly:!0,name:`http`,type:`HttpClient`}]}),...l]);let u=[];l.forEach((e,t)=>{t&&u.push(M.identifier({text:`
21
21
  `})),u.push(e)}),r(M.classDeclaration({decorator:o.name===`legacy/angular`?{args:[{providedIn:`root`}],name:`Injectable`}:void 0,exportClass:!0,name:Io({config:a,name:i.name}),nodes:u}))},$l=({client:e,files:t,plugin:n})=>{let r=S(),i=C(r);if(t.sdk=new Ml({dir:r.output.path,exportFromIndex:n.config.exportFromIndex,id:`sdk`,name:`sdk.ts`}),!i)t.sdk.import({module:Yc({config:r,sourceOutput:`sdk`}),name:`createClient`}),t.sdk.import({module:Yc({config:r,sourceOutput:`sdk`}),name:`createConfig`}),t.sdk.import({asType:!0,module:Yc({config:r,sourceOutput:`sdk`}),name:`OptionsLegacyParser`});else if(x(r).name===`legacy/angular`?(t.sdk.import({module:`@angular/core`,name:`Injectable`}),pe(r)||t.sdk.import({module:`@angular/common/http`,name:`HttpClient`}),t.sdk.import({asType:!0,module:`rxjs`,name:`Observable`})):t.sdk.import({asType:!0,module:`./core/CancelablePromise`,name:`CancelablePromise`}),r.plugins[`@hey-api/sdk`]?.config.response===`response`&&t.sdk.import({asType:!0,module:`./core/ApiResult`,name:`ApiResult`}),pe(r)){let e=x(r);t.sdk.import({asType:e.name!==`legacy/angular`,module:`./core/BaseHttpRequest`,name:`BaseHttpRequest`})}else t.sdk.import({module:`./core/OpenAPI`,name:`OpenAPI`}),t.sdk.import({alias:`__request`,module:`./core/request`,name:`request`});if(!i){let e=x(r),n=M.constVariable({exportConst:!0,expression:M.callExpression({functionName:`createClient`,parameters:[M.callExpression({functionName:`createConfig`,parameters:[`throwOnError`in e&&e.throwOnError?M.objectExpression({obj:[{key:`throwOnError`,value:!0}]}):void 0]})]}),name:`client`});t.sdk.add(n)}for(let n of e.services)Ql({client:e,onClientImport:e=>{t.sdk.import({module:Yc({config:r,sourceOutput:`sdk`}),name:e})},onImport:e=>{t.sdk.import({asType:!e.endsWith(`Transformer`),module:`./${t.types.nameWithoutExtension()}`,name:e})},onNode:e=>{t.sdk.add(e)},service:n})},eu=({plugin:e})=>{let t=Xc(e.context.config),n=x(e.context.config).name===`@hey-api/client-nuxt`,r=e.registerSymbol({external:t,meta:{kind:`type`},name:`TDataShape`}),i=e.registerSymbol({external:t,meta:{kind:`type`},name:`Client`,selector:e.api.getSelector(`Client`)}),a=e.registerSymbol({external:t,meta:{kind:`type`},name:`Options`}),o=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`Options`,selector:e.api.getSelector(`Options`)}),s=M.typeAliasDeclaration({exportType:o.exported,name:o.placeholder,type:M.typeIntersectionNode({types:[M.typeReferenceNode({typeArguments:n?[M.typeReferenceNode({typeName:`TComposable`}),M.typeReferenceNode({typeName:`TData`}),M.typeReferenceNode({typeName:bc}),M.typeReferenceNode({typeName:yc})]:[M.typeReferenceNode({typeName:`TData`}),M.typeReferenceNode({typeName:`ThrowOnError`})],typeName:a.placeholder}),M.typeInterfaceNode({properties:[{comment:["You can provide a client instance returned by `createClient()` instead of",`individual options. This might be also useful if you want to implement a`,`custom client.`],isRequired:!e.config.client,name:`client`,type:M.typeReferenceNode({typeName:i.placeholder})},{comment:["You can pass arbitrary values through the `meta` object. This can be",`used to access values that aren't defined as part of the SDK function.`],isRequired:!1,name:`meta`,type:M.typeReferenceNode({typeArguments:[M.keywordTypeNode({keyword:`string`}),M.keywordTypeNode({keyword:`unknown`})],typeName:`Record`})}],useLegacyResolution:!1})]}),typeParameters:n?[M.typeParameterDeclaration({constraint:M.typeReferenceNode({typeName:e.referenceSymbol(e.api.getSelector(`Composable`)).placeholder}),defaultType:M.typeNode(`'$fetch'`),name:`TComposable`}),M.typeParameterDeclaration({constraint:M.typeReferenceNode({typeName:r.placeholder}),defaultType:M.typeReferenceNode({typeName:r.placeholder}),name:`TData`}),M.typeParameterDeclaration({defaultType:M.keywordTypeNode({keyword:`unknown`}),name:bc}),M.typeParameterDeclaration({defaultType:M.keywordTypeNode({keyword:`undefined`}),name:yc})]:[M.typeParameterDeclaration({constraint:M.typeReferenceNode({typeName:r.placeholder}),defaultType:M.typeReferenceNode({typeName:r.placeholder}),name:`TData`}),M.typeParameterDeclaration({constraint:M.keywordTypeNode({keyword:`boolean`}),defaultType:M.keywordTypeNode({keyword:`boolean`}),name:`ThrowOnError`})]});e.setSymbolValue(o,s)},tu=({plugin:e})=>{let t=M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:M.this(),name:`_client`}),operator:`=`,right:M.propertyAccessExpression({expression:M.identifier({text:`args`}),name:`client`})})}),n=e.referenceSymbol(e.api.getSelector(`Client`)),r=x(e.context.config),i=r.api&&`getSelector`in r.api?e.getSymbol(r.api.getSelector(`client`)):void 0;return[M.propertyDeclaration({initializer:i?M.identifier({text:i.placeholder}):void 0,modifier:`protected`,name:`_client`,type:M.typeReferenceNode({typeName:n.placeholder})}),M.identifier({text:`
22
22
  `}),M.constructorDeclaration({multiLine:!0,parameters:[{isRequired:!e.config.client,name:`args`,type:M.typeInterfaceNode({properties:[{isRequired:!e.config.client,name:`client`,type:n.placeholder}],useLegacyResolution:!1})}],statements:[e.config.client?M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`args`}),isOptional:!0,name:`client`}),thenStatement:M.block({statements:[t]})}):t]})]},nu=({plugin:e})=>{let t=x(e.context.config),n=t.name===`@hey-api/client-angular`,r=t.name===`@hey-api/client-nuxt`,i=new Map,a=new Set,o=e.config.instance?tu({plugin:e}):[];e.forEach(`operation`,({operation:a})=>{let o=Ac({context:e.context,operation:a}),s=e.getPluginOrThrow(`@hey-api/typescript`),c=r?e.getSymbol(s.api.getSelector(`response`,a.id)):void 0,l=Tc({context:e.context,operation:a,plugin:e});for(let s of l.values())s.path.forEach((l,u)=>{let d=e.referenceSymbol(e.api.getSelector(`class`,l));i.has(d.id)||i.set(d.id,{className:l,classes:new Set,id:d.id,methods:new Set,nodes:[],root:!u});let f=s.path[u-1];if(f){let t=e.referenceSymbol(e.api.getSelector(`class`,f));if(t.placeholder!==d.placeholder){let e=i.get(t.id);e.classes.add(d.id),i.set(t.id,e)}}if(s.path.length!==u+1)return;let p=i.get(d.id);if(p.methods.has(s.methodName))return;let m=Dc({isRequiredOptions:o,operation:a,plugin:e}),h=kc({isRequiredOptions:o,opParameters:m,operation:a,plugin:e}),g=M.methodDeclaration({accessLevel:`public`,comment:e.api.createOperationComment({operation:a}),isStatic:n?!1:!e.config.instance,name:s.methodName,parameters:m.parameters,returnType:void 0,statements:h,types:r?[{default:M.ots.string(`$fetch`),extends:M.typeNode(e.referenceSymbol(e.api.getSelector(`Composable`)).placeholder),name:vc},{default:c?M.typeReferenceNode({typeName:c.placeholder}):M.typeNode(`undefined`),extends:c?M.typeReferenceNode({typeName:c.placeholder}):void 0,name:yc}]:[{default:(`throwOnError`in t.config?t.config.throwOnError:!1)??!1,extends:`boolean`,name:`ThrowOnError`}]});p.nodes.length?p.nodes.push(M.identifier({text:`
23
- `}),g):p.nodes.push(g),p.methods.add(s.methodName),i.set(d.id,p)})});let s=e.registerSymbol({exported:!1,name:`_HeyApiClient`}),c=t=>{if(a.has(t.id))return;if(t.classes.size)for(let n of t.classes){let r=i.get(n);c(r),t.nodes.push(M.propertyDeclaration({initializer:e.config.instance?M.newExpression({argumentsArray:e.config.instance?[M.objectExpression({multiLine:!1,obj:[{key:`client`,value:M.propertyAccessExpression({expression:M.this(),name:`_client`})}]})]:[],expression:M.identifier({text:e.referenceSymbol(r.id).placeholder})}):M.identifier({text:e.referenceSymbol(r.id).placeholder}),modifier:e.config.instance?void 0:`static`,name:w({case:`camelCase`,value:r.className})}))}let r=e.registerSymbol({exported:!0,name:t.className,selector:e.api.getSelector(`class`,t.className)}),o=M.classDeclaration({decorator:t.root&&n?{args:[{providedIn:`root`}],name:e.referenceSymbol(e.api.getSelector(`Injectable`)).placeholder}:void 0,exportClass:r.exported,extendedClasses:e.config.instance?[s.placeholder]:void 0,name:r.placeholder,nodes:t.nodes});e.setSymbolValue(r,o),a.add(r.id)};if(o.length){let t=M.classDeclaration({exportClass:s.exported,name:s.placeholder,nodes:o});e.setSymbolValue(s,t)}for(let e of i.values())c(e)},ru=({plugin:e})=>{let t=x(e.context.config),n=t.name===`@hey-api/client-nuxt`;e.forEach(`operation`,({operation:r})=>{let i=Ac({context:e.context,operation:r}),a=e.getPluginOrThrow(`@hey-api/typescript`),o=n?e.getSymbol(a.api.getSelector(`response`,r.id)):void 0,s=Dc({isRequiredOptions:i,operation:r,plugin:e}),c=kc({isRequiredOptions:i,opParameters:s,operation:r,plugin:e}),l=e.registerSymbol({name:Xl({config:e.context.config,handleIllegal:!0,id:r.id,operation:r}),selector:e.api.getSelector(`function`,r.id)}),u=M.constVariable({comment:e.api.createOperationComment({operation:r}),exportConst:!0,expression:M.arrowFunction({parameters:s.parameters,returnType:void 0,statements:c,types:n?[{default:M.ots.string(`$fetch`),extends:M.typeNode(e.referenceSymbol(e.api.getSelector(`Composable`)).placeholder),name:vc},{default:o?M.typeReferenceNode({typeName:o.placeholder}):M.typeNode(`undefined`),extends:o?M.typeReferenceNode({typeName:o.placeholder}):void 0,name:yc}]:[{default:(`throwOnError`in t.config?t.config.throwOnError:!1)??!1,extends:`boolean`,name:`ThrowOnError`}]}),name:l.placeholder});e.setSymbolValue(l,u)})},iu={api:new Rl({name:`@hey-api/sdk`}),config:{asClass:!1,auth:!0,classNameBuilder:`{{name}}`,classStructure:`auto`,client:!0,exportFromIndex:!0,instance:!1,operationId:!0,params_EXPERIMENTAL:`default`,response:`body`,responseStyle:`fields`,transformer:!1,validator:!1},dependencies:[`@hey-api/typescript`],handler:({plugin:e})=>{let t=Xc(e.context.config);e.registerSymbol({external:t,name:`formDataBodySerializer`,selector:e.api.getSelector(`formDataBodySerializer`)}),e.registerSymbol({external:t,name:`urlSearchParamsBodySerializer`,selector:e.api.getSelector(`urlSearchParamsBodySerializer`)}),e.registerSymbol({external:t,name:`buildClientParams`,selector:e.api.getSelector(`buildClientParams`)});let n=x(e.context.config),r=n.name===`@hey-api/client-angular`;n.name===`@hey-api/client-nuxt`&&e.registerSymbol({external:t,meta:{kind:`type`},name:`Composable`,selector:e.api.getSelector(`Composable`)}),r&&e.config.asClass&&e.registerSymbol({external:`@angular/core`,name:`Injectable`,selector:e.api.getSelector(`Injectable`)}),eu({plugin:e}),e.config.asClass?nu({plugin:e}):ru({plugin:e})},handlerLegacy:$l,name:`@hey-api/sdk`,resolveConfig:(e,t)=>{e.config.client?(typeof e.config.client==`boolean`&&(e.config.client=t.pluginByTag(`client`,{defaultPlugin:`@hey-api/client-fetch`})),e.dependencies.add(e.config.client)):e.config.client=!1,e.config.transformer?(typeof e.config.transformer==`boolean`&&(e.config.transformer=t.pluginByTag(`transformer`)),e.dependencies.add(e.config.transformer)):e.config.transformer=!1,typeof e.config.validator!=`object`&&(e.config.validator={request:e.config.validator,response:e.config.validator}),e.config.validator.request?(typeof e.config.validator.request==`boolean`&&(e.config.validator.request=t.pluginByTag(`validator`)),e.dependencies.add(e.config.validator.request)):e.config.validator.request=!1,e.config.validator.response?(typeof e.config.validator.response==`boolean`&&(e.config.validator.response=t.pluginByTag(`validator`)),e.dependencies.add(e.config.validator.response)):e.config.validator.response=!1,e.config.instance?(typeof e.config.instance!=`string`&&(e.config.instance=`Sdk`),e.config.asClass=!0):e.config.instance=!1,e.config.classNameBuilder===`{{name}}`&&e.config.client===`@hey-api/client-angular`&&(e.config.classNameBuilder=`{{name}}Service`)}};var au=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const ou=({dataExpression:e,schema:t})=>{if(t.type!==`integer`||t.format!==`int64`)return;let n=e===void 0?void 0:M.callExpression({functionName:`BigInt`,parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:e,name:`toString`})})]});if(n){if(typeof e==`string`)return[n];if(e)return[M.assignment({left:e,right:n})]}},su=({dataExpression:e,schema:t})=>{if(t.type!==`string`||!(t.format===`date`||t.format===`date-time`))return;let n=M.identifier({text:`Date`});if(typeof e==`string`)return[M.newExpression({argumentsArray:[M.identifier({text:e})],expression:n})];if(e)return[M.assignment({left:e,right:M.newExpression({argumentsArray:[e],expression:n})})]},cu=`data`,lu=e=>e.map(e=>a.isStatement(e)?e:M.expressionToStatement({expression:e})),uu=({node:e})=>e.kind===a.SyntaxKind.ReturnStatement,du=({plugin:e,schema:t})=>{let n=M.identifier({text:cu}),r=fu({dataExpression:n,plugin:e,schema:t});return r.length&&!uu({node:r[r.length-1]})&&r.push(M.returnStatement({expression:n})),r},fu=({dataExpression:e,plugin:t,schema:n})=>{if(n.$ref){let r=t.api.getSelector(`response-ref`,n.$ref);if(!t.getSymbol(r)){let e=t.registerSymbol({name:T({config:{case:`camelCase`,name:`{{name}}SchemaResponseTransformer`},name:I(n.$ref)}),selector:r}),i=du({plugin:t,schema:t.context.resolveIrRef(n.$ref)});if(i.length){let n=M.constVariable({expression:M.arrowFunction({async:!1,multiLine:!0,parameters:[{name:cu,type:M.keywordTypeNode({keyword:`any`})}],statements:lu(i)}),name:e.placeholder});t.setSymbolValue(e,n)}else t.setSymbolValue(e,null)}let i=t.referenceSymbol(r);if(t.getSymbolValue(i)!==null){let t=M.callExpression({functionName:i.placeholder,parameters:[e]});if(e)return typeof e==`string`&&e===`item`?[M.returnStatement({expression:t})]:[typeof e==`string`?t:M.assignment({left:e,right:t})]}return[]}if(n.type===`array`){if(!e||typeof e==`string`)return[];let r=n.items?fu({dataExpression:`item`,plugin:t,schema:n.items?.[0]?n.items[0]:{...n,type:void 0}}):[];if(!r.length)return[];let i=lu(r);return i.some(e=>uu({node:e}))||i.push(M.returnStatement({expression:M.identifier({text:`item`})})),[M.assignment({left:e,right:M.callExpression({functionName:M.propertyAccessExpression({expression:e,name:`map`}),parameters:[M.arrowFunction({multiLine:!0,parameters:[{name:`item`,type:`any`}],statements:i})]})})]}if(n.type===`object`){let r=[],i=n.required??[];for(let a in n.properties){let o=n.properties[a],s=M.propertyAccessExpression({expression:e||cu,name:a}),c=fu({dataExpression:s,plugin:t,schema:o});if(!c.length)continue;let l=!o.items?.find(e=>e.type===`null`);i.includes(a)&&l?r=r.concat(c):r.push(M.ifStatement({expression:s,thenStatement:M.block({statements:lu(c)})}))}return r}if(n.items){if(n.items.length===1)return fu({dataExpression:`item`,plugin:t,schema:n.items[0]});let r=[];if(n.logicalOperator===`and`||n.items.length===2&&n.items.find(e=>e.type===`null`||e.type===`void`)){for(let i of n.items){let n=fu({dataExpression:e||`item`,plugin:t,schema:i});if(n.length)if(e)r=r.concat(n);else{let e=M.identifier({text:`item`});r.push(M.ifStatement({expression:e,thenStatement:M.block({statements:lu(n)})}),M.returnStatement({expression:e}))}}return r}n.type!==`enum`&&((n.items??[]).every(e=>[`boolean`,`integer`,`null`,`number`,`string`].includes(e.type))||console.warn(`❗️ Transformers warning: schema ${JSON.stringify(n)} is too complex and won't be currently processed. This will likely produce an incomplete transformer which is not what you want. Please open an issue if you'd like this improved https://github.com/hey-api/openapi-ts/issues`))}for(let r of t.config.transformers){let i=r({config:t.config,dataExpression:e,schema:n});if(i)return i}return[]},pu=({plugin:e})=>{e.forEach(`operation`,({operation:t})=>{let{response:n}=Rn(t);if(!n)return;if(n.items&&n.items.length>1){e.context.config.logs.level===`debug`&&console.warn(`❗️ Transformers warning: route ${F(t)} has ${n.items.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);return}let r=e.getPluginOrThrow(`@hey-api/typescript`),i=e.getSymbol(r.api.getSelector(`response`,t.id));if(!i)return;let a=e.registerSymbol({exported:!0,name:T({config:{case:`camelCase`,name:`{{name}}ResponseTransformer`},name:t.id}),selector:e.api.getSelector(`response`,t.id)}),o=du({plugin:e,schema:n});if(o.length){let t=M.constVariable({exportConst:a.exported,expression:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:cu,type:M.keywordTypeNode({keyword:`any`})}],returnType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:i.placeholder})],typeName:`Promise`}),statements:lu(o)}),name:a.placeholder});e.setSymbolValue(a,t)}else e.setSymbolValue(a,null)})},J={$refs:[],base:``,description:null,enum:[],enums:[],export:`interface`,imports:[],in:``,isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:``,properties:[],template:null,type:``},mu=({comments:e,leadingComment:t,meta:n,obj:r,onNode:i,...a})=>{if(!n)return;let{created:o,name:s}=bs({create:!0,meta:n,...a});if(o){let n=S().plugins[`@hey-api/typescript`];i(M.enumDeclaration({asConst:typeof n?.config.enums==`object`&&n.config.enums.mode===`typescript-const`,comments:e,leadingComment:t,name:s,obj:r}))}},hu=({comment:e,meta:t,onCreated:n,onNode:r,type:i,...a})=>{if(!t)return{created:!1,name:``};let o=bs({create:!0,meta:t,...a}),{created:s,name:c}=o;return s&&(r(M.typeAliasDeclaration({comment:e,exportType:!0,name:c,type:i})),n?.(c)),o},gu=e=>{let t=[];yu(e),e.model.enums.forEach(n=>vu({...e,model:n,onNode:e=>{t.push(e)}})),t.length&&e.onNode(M.namespaceDeclaration({name:e.model.name,statements:t}))},_u=({client:e,model:t,onNode:n})=>{let r=S(),i={},a={};t.enum.forEach(e=>{let{key:t,value:n}=cs(e);i[t]=n;let r=e.customDescription||e.description;r&&(a[t]=[D(r)])});let o=[t.description&&D(t.description),t.deprecated&&`@deprecated`],s=r.plugins[`@hey-api/typescript`];if(s?.config&&typeof s.config.enums==`object`&&s.config.enums.enabled&&(s.config.enums.mode===`typescript`||s.config.enums.mode===`typescript-const`)){mu({asConst:s.config.enums.mode===`typescript-const`,client:e,comments:a,leadingComment:o,meta:t.meta,obj:i,onNode:n});return}hu({client:e,comment:o,meta:t.meta,onCreated:e=>{let t=r.plugins[`@hey-api/typescript`];if(t?.config&&typeof t.config.enums==`object`&&t.config.enums.enabled&&t.config.enums.mode===`javascript`){let t=M.objectExpression({multiLine:!0,obj:Object.entries(i).map(([e,t])=>({comments:a[e],key:e,value:t})),unescape:!0});n(M.constVariable({assertion:`const`,comment:o,exportConst:!0,expression:t,name:e}))}},onNode:n,type:os(t.enum)})},vu=({model:e,onNode:t})=>{let n={},r={};e.enum.forEach(e=>{let{key:t,value:i}=cs(e);n[t]=i;let a=e.customDescription||e.description;a&&(r[t]=[D(a)])});let i=S().plugins[`@hey-api/typescript`];t(M.enumDeclaration({asConst:typeof i?.config.enums==`object`&&i.config.enums.mode===`typescript-const`,comments:r,leadingComment:[e.description&&D(e.description),e.deprecated&&`@deprecated`],name:e.meta?.name||e.name,obj:n}))},yu=({client:e,model:t,onNode:n})=>{hu({client:e,comment:[t.description&&D(t.description),t.deprecated&&`@deprecated`],meta:t.meta,onNode:n,type:G(t)})},bu=e=>{switch(e.model.export){case`all-of`:case`any-of`:case`one-of`:case`interface`:return gu(e);case`enum`:return _u(e);default:return yu(e)}},xu=({client:e,onNode:t})=>{let n={},r=S();if(!r.plugins[`@hey-api/sdk`]&&!r.plugins[`@hey-api/typescript`]?.config.tree)return;let i=C(r);for(let r of e.services)for(let a of r.operations){if(!a.parameters.length&&!a.responses.length)continue;n[a.path]||(n[a.path]={});let r=n[a.path];r[a.method]||(r[a.method]={});let o=r[a.method];if(o.$ref=a.name,a.responses.length>0){if(o.res||={},Array.isArray(o.res))continue;a.responses.forEach(e=>{o.res[e.code]=e})}if(a.parameters.length>0){let n={mediaType:null,...J,in:`body`,name:`body`,prop:`body`},r=a.parameters.filter(e=>e.in===`body`);r.length||(r=a.parameters.filter(e=>e.in===`formData`)),r.length===1?n={...J,...r[0],in:`body`,isRequired:r[0].isRequired,name:`body`,prop:`body`}:r.length>1&&(n={...J,in:`body`,isRequired:r.some(e=>e.isRequired),mediaType:`multipart/form-data`,name:`body`,prop:`body`,properties:r});let s={...J,in:`header`,isRequired:ws(a.parameters.filter(e=>e.in===`header`)),mediaType:null,name:i?`header`:`headers`,prop:i?`header`:`headers`,properties:a.parameters.filter(e=>e.in===`header`).sort(rs)},c={...J,in:`path`,isRequired:ws(a.parameters.filter(e=>e.in===`path`)),mediaType:null,name:`path`,prop:`path`,properties:a.parameters.filter(e=>e.in===`path`).sort(rs)},l={...J,in:`query`,isRequired:ws(a.parameters.filter(e=>e.in===`query`)),mediaType:null,name:`query`,prop:`query`,properties:a.parameters.filter(e=>e.in===`query`).sort(rs)},u=i?is([...a.parameters]):[n,s,c,l].filter(e=>e.properties.length||e.$refs.length||e.mediaType);o.req=u,hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Vl,onNode:t,type:G({...J,isRequired:!0,properties:u})})}let s=a.responses.filter(e=>e.responseTypes.includes(`success`));if(s.length>0){hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Wl,onNode:t,type:G({...J,export:`any-of`,isRequired:!0,properties:s})});let n=a.responses.filter(e=>e.responseTypes.includes(`error`));i||hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Hl,onNode:t,type:G(n.length?{...J,export:`one-of`,isRequired:!0,properties:n}:{...J,base:`unknown`,isRequired:!0,type:`unknown`})})}}let a=Object.entries(n).map(([t,n])=>{let r=Object.entries(n).map(([t,n])=>{let r=t,i=[];if(n.req){let t=n.$ref,{name:r}=bs({client:e,meta:{$ref:t,name:t},nameTransformer:Vl}),a={...J,base:r,export:`reference`,isRequired:!0,name:`req`,properties:[],type:r};i=[...i,a]}if(n.res){let e=Object.entries(n.res).map(([e,t])=>({...J,...t,isRequired:!0,name:String(e)})),t={...J,isRequired:!0,name:`res`,properties:e};i=[...i,t]}return{...J,isRequired:!0,name:r.toLocaleLowerCase(),properties:i}}).filter(Boolean);return{...J,isRequired:!0,name:`'${t}'`,properties:r}});r.plugins[`@hey-api/typescript`]?.config.tree&&hu({client:e,meta:{$ref:`@hey-api/openapi-ts`,name:`$OpenApiTs`},onNode:t,type:G({...J,properties:a})})},Su=({client:e,files:t,plugin:n})=>{t.types=new Ml({dir:S().output.path,exportFromIndex:n.config.exportFromIndex,id:`types`,name:`types.ts`});let r=e=>{t.types?.add(e)};for(let t of e.models)bu({client:e,model:t,onNode:r});xu({client:e,onNode:r})},Cu=`data`,wu=e=>e.base===`unknown`&&e.export===`generic`&&e.type===`unknown`,Tu=({client:e,model:t})=>t.$refs.map(t=>{let n=e.models.find(e=>e.meta?.$ref===t);if(!n)throw Error(`Ref ${t} could not be found. Transformers cannot be generated without having access to all refs.`);return n}),Eu=e=>{let t=e.model.meta.name,{name:n}=hu({...e,meta:{$ref:`transformers/${t}`,name:t},nameTransformer:Bl,onCreated:n=>{let r=ku({...e,meta:{$ref:`transformers/${t}`,name:n},path:[Cu]});Au({...e,async:!1,name:n,statements:r})},type:`(${Cu}: any) => ${t}`});return{created:!!e.client.types[n],name:n}},Du=e=>{let{model:t}=e,n=Tu(e);if(n.length===1){let{created:t,name:r}=Eu({...e,model:n[0]});return t?[M.transformArrayMutation({path:e.path,transformerName:r})]:[]}return fs(t)||t.link&&!Array.isArray(t.link)&&t.link.export===`any-of`&&t.link.properties.find(e=>fs(e))?[M.transformArrayMap({path:e.path,transformExpression:M.conditionalExpression({condition:M.identifier({text:`item`}),whenFalse:M.identifier({text:`item`}),whenTrue:M.transformNewDate({parameterName:`item`})})})]:[]},Ou=e=>{let{model:t}=e,n=[...e.path,t.name];return t.type===`string`&&t.export!==`array`&&fs(t)?[M.transformDateMutation({path:n})]:ku({...e,model:t,path:n})},ku=e=>{let{model:t}=e;switch(t.export){case`array`:return Du(e);case`interface`:return t.properties.flatMap(t=>Ou({...e,model:t}));case`reference`:{if(t.$refs.length!==1)return[];let n=Tu(e),{created:r,name:i}=Eu({...e,model:n[0]});return r?t.in===`response`?[M.expressionToStatement({expression:M.callExpression({functionName:i,parameters:[Cu]})})]:M.transformFunctionMutation({path:e.path,transformerName:i}):[]}default:return[]}},Au=({async:e,client:t,name:n,onNode:r,onRemoveNode:i,statements:a})=>{let o={created:!1,name:n};if(!a.length)return xs({client:t,name:n}),i?.(),o;let s=M.arrowFunction({async:e,multiLine:!0,parameters:[{name:Cu}],statements:[...a,M.returnVariable({expression:Cu})]});return r(M.constVariable({exportConst:!0,expression:s,name:n,typeName:n})),{created:!0,name:n}},ju={api:new au({name:`@hey-api/transformers`}),config:{bigInt:!0,dates:!0,exportFromIndex:!1,transformers:[],typeTransformers:[]},dependencies:[`@hey-api/typescript`],handler:pu,handlerLegacy:({client:e,files:t})=>{let n=S(),r=e=>{t.types?.add(e)},i=()=>{t.types?.removeNode_LEGACY()};for(let t of e.services)for(let a of t.operations){let t=a.responses.filter(e=>e.responseTypes.includes(`success`));if(!t.length)continue;let o=t.filter(e=>!wu(e));if(!o.length)continue;if(o.length>1){n.logs.level===`debug`&&console.warn(`❗️ Transformers warning: route ${F(a)} has ${o.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);continue}let s=Wl(a.name);hu({client:e,meta:{$ref:`transformers/${s}`,name:s},nameTransformer:Ul,onCreated:n=>{Au({async:!0,client:e,name:n,onNode:r,onRemoveNode:i,statements:t.length>1?t.flatMap(t=>{let n=ku({client:e,meta:{$ref:`transformers/${s}`,name:s},model:t,onNode:r,onRemoveNode:i,path:[Cu]});return n.length?[M.ifStatement({expression:M.safeAccessExpression([`data`]),thenStatement:M.block({statements:n})})]:[]}):ku({client:e,meta:{$ref:`transformers/${s}`,name:s},model:t[0],onNode:r,onRemoveNode:i,path:[Cu]})})},onNode:r,type:`(${Cu}: any) => Promise<${s}>`})}},name:`@hey-api/transformers`,resolveConfig:e=>{e.config.transformers||(e.config.transformers=[]),e.config.dates&&(e.config.transformers=[...e.config.transformers,su]),e.config.bigInt&&(e.config.transformers=[...e.config.transformers,ou])},tags:[`transformer`]},Mu=({context:e,name:t})=>(E.lastIndex=0,E.test(t)?t.startsWith(`-`)?a.factory.createStringLiteral(t):a.factory.createNumericLiteral(t):w({case:e.config.output.case,value:t})),Nu=({schema:e})=>{let t=[];return e.title&&t.push(D(e.title)),e.description&&(t.length&&t.push(``),t.push(D(e.description))),e.deprecated&&(t.length&&t.push(``),t.push(`@deprecated`)),t.length?t:void 0},Pu=M.keywordTypeNode({keyword:`string`}),Fu=({server:e})=>{let t=ea(e.url);return t.protocol&&t.host?M.literalTypeNode({literal:M.stringLiteral({text:e.url})}):M.templateLiteralType({value:[t.protocol||Pu,`://`,t.host||Pu,t.port?`:${t.port}`:``,t.path||``]})},Iu=({plugin:e,servers:t,symbolClientOptions:n})=>{let r=x(e.context.config),i=t.map(e=>Fu({server:e}));t.length?`strictBaseUrl`in r.config&&r.config.strictBaseUrl||i.push(M.typeIntersectionNode({types:[Pu,a.factory.createTypeLiteralNode([])]})):i.push(Pu);let o=M.typeInterfaceNode({properties:[{name:ue(e.context.config),type:M.typeUnionNode({types:i})}],useLegacyResolution:!1}),s=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:o});e.setSymbolValue(n,s)},Lu=({plugin:e,schema:t})=>{let n=[];return{obj:(t.items??[]).map((t,r)=>{let i=typeof t.const;n.includes(i)||n.push(i);let a;return a=t.title?t.title:i===`number`||i===`string`?`${t.const}`:i===`boolean`?t.const?`true`:`false`:t.const===null?`null`:`${r}`,a&&(a=w({case:e.config.enums.case,stripLeadingSeparators:!1,value:a}),E.lastIndex=0,E.test(a)&&e.config.enums.enabled&&(e.config.enums.mode===`typescript`||e.config.enums.mode===`typescript-const`)&&(a=`_${a}`)),{comments:Nu({schema:t}),key:a,value:t.const}}),typeofItems:n}},Ru=({plugin:e,schema:t,symbol:n,type:r})=>{if(t.type===`enum`&&e.config.enums.enabled){let r=Lu({plugin:e,schema:t});if(e.config.enums.mode===`javascript`){e.config.enums.constantsIgnoreNull&&r.typeofItems.includes(`object`)&&(r.obj=r.obj.filter(e=>e.value!==null));let i=M.constVariable({assertion:`const`,comment:Nu({schema:t}),exportConst:!0,expression:M.objectExpression({multiLine:!0,obj:r.obj}),name:n.placeholder}),a=M.typeOfExpression({text:n.placeholder}),o=M.typeAliasDeclaration({comment:Nu({schema:t}),exportType:!0,name:n.placeholder,type:M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:a}),objectType:a})});e.setSymbolValue(n,[i,o]);return}else if((e.config.enums.mode===`typescript`||e.config.enums.mode===`typescript-const`)&&!r.typeofItems.some(e=>e!==`number`&&e!==`string`)){let i=M.enumDeclaration({asConst:e.config.enums.mode===`typescript-const`,leadingComment:Nu({schema:t}),name:n.placeholder,obj:r.obj});e.setSymbolValue(n,i);return}}let i=M.typeAliasDeclaration({comment:Nu({schema:t}),exportType:n.exported,name:n.placeholder,type:r});e.setSymbolValue(n,i)},zu=({parameters:e})=>{let t={type:`object`};if(e){let n={},r=[];for(let t in e){let i=e[t];n[i.name]=N({detectFormat:!1,schema:i.schema}),i.required&&r.push(i.name)}t.properties=n,r.length&&(t.required=r)}return t},Bu=({operation:e,plugin:t})=>{let n={type:`object`},r=[];n.properties||={},e.body?(n.properties.body=e.body.schema,e.body.required&&r.push(`body`)):n.properties.body={type:`never`},e.parameters?.header&&(n.properties.headers=zu({parameters:e.parameters.header}),n.properties.headers.required&&r.push(`headers`)),e.parameters?.path?(n.properties.path=zu({parameters:e.parameters.path}),n.properties.path.required&&r.push(`path`)):n.properties.path={type:`never`},e.parameters?.query?(n.properties.query=zu({parameters:e.parameters.query}),n.properties.query.required&&r.push(`query`)):n.properties.query={type:`never`},n.properties.url={const:e.path,type:`string`},r.push(`url`),n.required=r;let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.requests,name:e.id}),selector:t.api.getSelector(`data`,e.id)}),a=Y({plugin:t,schema:n}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});t.setSymbolValue(i,o)},Vu=({operation:e,plugin:t})=>{Bu({operation:e,plugin:t});let{error:n,errors:r,response:i,responses:a}=Rn(e);if(r){let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.errors,name:e.id}),selector:t.api.getSelector(`errors`,e.id)}),a=Y({plugin:t,schema:r}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});if(t.setSymbolValue(i,o),n){let n=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.errors.case,name:t.config.errors.error},name:e.id}),selector:t.api.getSelector(`error`,e.id)}),r=M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:M.typeReferenceNode({typeName:i.placeholder})}),objectType:M.typeReferenceNode({typeName:i.placeholder})}),a=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:r});t.setSymbolValue(n,a)}}if(a){let n=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.responses,name:e.id}),selector:t.api.getSelector(`responses`,e.id)}),r=Y({plugin:t,schema:a}),o=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:r});if(t.setSymbolValue(n,o),i){let r=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.responses.case,name:t.config.responses.response},name:e.id}),selector:t.api.getSelector(`response`,e.id)}),i=M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:M.typeReferenceNode({typeName:n.placeholder})}),objectType:M.typeReferenceNode({typeName:n.placeholder})}),a=M.typeAliasDeclaration({exportType:r.exported,name:r.placeholder,type:i});t.setSymbolValue(r,a)}}},Hu=({operation:e,plugin:t})=>{let n={type:`object`},r=[];if(n.properties||={},e.body){let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.webhooks.case,name:t.config.webhooks.payload},name:e.id}),selector:t.api.getSelector(`webhook-payload`,e.id)}),a=Y({plugin:t,schema:e.body.schema}),o=M.typeAliasDeclaration({comment:Nu({schema:e.body.schema}),exportType:i.exported,name:i.placeholder,type:a});t.setSymbolValue(i,o),t.registerSymbol({exported:!0,meta:{kind:`type`},name:i.name,placeholder:i.placeholder,selector:t.api.getSelector(`ref`,i.placeholder)}),n.properties.body={$ref:i.placeholder},r.push(`body`)}else n.properties.body={type:`never`};n.properties.key={const:e.path,type:`string`},r.push(`key`),n.properties.path={type:`never`},n.properties.query={type:`never`},n.required=r;let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.webhooks,name:e.id}),selector:t.api.getSelector(`webhook-request`,e.id)}),a=Y({plugin:t,schema:n}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});return t.setSymbolValue(i,o),i.placeholder},Uu=({operation:e,plugin:t})=>Hu({operation:e,plugin:t}),Wu=({plugin:e,symbolWebhooks:t,webhookNames:n})=>{if(!n.length)return;let r=M.typeUnionNode({types:n.map(e=>M.typeReferenceNode({typeName:e}))}),i=M.typeAliasDeclaration({exportType:t.exported,name:t.placeholder,type:r});e.setSymbolValue(t,i)},Gu=({plugin:e,schema:t})=>{if(!t.items)return M.typeArrayNode(M.keywordTypeNode({keyword:e.config.topType}));t=N({detectFormat:!0,schema:t});let n=[];for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return n.length===1?M.typeArrayNode(n[0]):t.logicalOperator===`and`?M.typeArrayNode(M.typeIntersectionNode({types:n})):M.typeArrayNode(M.typeUnionNode({types:n}))},Ku=({schema:e})=>e.const===void 0?M.keywordTypeNode({keyword:`boolean`}):M.literalTypeNode({literal:M.ots.boolean(e.const)}),qu=({plugin:e,schema:t})=>Y({plugin:e,schema:{...t,type:void 0}}),Ju=({plugin:e,schema:t})=>t.const===void 0?t.type===`integer`&&t.format===`int64`&&e.getPlugin(`@hey-api/transformers`)?.config.bigInt?M.typeReferenceNode({typeName:`bigint`}):M.keywordTypeNode({keyword:`number`}):M.literalTypeNode({literal:M.ots.number(t.const)}),Yu=({plugin:e,schema:t})=>{let n,r,i=[],a=[],o=t.required??[],s=!1;for(let n in t.properties){let r=t.properties[n],c=Y({plugin:e,schema:r}),l=o.includes(n);i.push({comment:Nu({schema:r}),isReadOnly:r.accessScope===`read`,isRequired:l,name:Mu({context:e.context,name:n}),type:c}),a.push(r),l||(s=!0)}if(t.patternProperties)for(let e in t.patternProperties){let n=t.patternProperties[e];a.unshift(n)}let c=!!t.patternProperties&&Object.keys(t.patternProperties).length>0,l=t.additionalProperties,u=l!==!1&&l?l:void 0;if(c||u&&(u.type!==`never`||!a.length)){let i=u;i&&i.type!==`never`?a.unshift(i):!c&&!a.length&&i&&i.type===`never`&&(a=[i]),s&&a.push({type:`undefined`}),r={isRequired:!t.propertyNames,name:`key`,type:a.length===1?Y({plugin:e,schema:a[0]}):Y({plugin:e,schema:{items:a,logicalOperator:`or`}})},t.propertyNames?.$ref&&(n=Y({plugin:e,schema:{$ref:t.propertyNames.$ref}}))}return M.typeInterfaceNode({indexKey:n,indexProperty:r,properties:i,useLegacyResolution:!1})},Xu=({plugin:e,schema:t})=>{if(t.const!==void 0)return M.literalTypeNode({literal:M.stringLiteral({text:t.const})});if(t.format){if(t.format===`binary`)return M.typeUnionNode({types:[M.typeReferenceNode({typeName:`Blob`}),M.typeReferenceNode({typeName:`File`})]});if((t.format===`date-time`||t.format===`date`)&&e.getPlugin(`@hey-api/transformers`)?.config.dates)return M.typeReferenceNode({typeName:`Date`});if(t.format===`typeid`&&typeof t.example==`string`){let n=String(t.example).split(`_`);n.pop();let r=n.join(`_`),i=e.api.getSelector(`TypeID`,r);if(!e.getSymbol(i)){let t=e.api.getSelector(`TypeID`);if(!e.getSymbol(t)){let n=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`TypeID`,selector:t}),r=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:M.templateLiteralType({value:[M.typeReferenceNode({typeName:`T`}),`_`,M.keywordTypeNode({keyword:`string`})]}),typeParameters:[M.typeParameterDeclaration({constraint:M.keywordTypeNode({keyword:`string`}),name:`T`})]});e.setSymbolValue(n,r)}let n=e.referenceSymbol(t),a=e.registerSymbol({exported:!0,meta:{kind:`type`},name:w({case:e.config.case,value:`${r}_id`}),selector:i}),o=M.typeAliasDeclaration({exportType:a.exported,name:a.placeholder,type:M.typeReferenceNode({typeArguments:[M.literalTypeNode({literal:M.stringLiteral({text:r})})],typeName:n.placeholder})});e.setSymbolValue(a,o)}let a=e.referenceSymbol(i);return M.typeReferenceNode({typeName:a.placeholder})}}return M.keywordTypeNode({keyword:`string`})},Zu=({plugin:e,schema:t})=>{let n=[];if(t.const&&Array.isArray(t.const))n=t.const.map(t=>M.valueToExpression({value:t})??M.identifier({text:e.config.topType}));else if(t.items)for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return M.typeTupleNode({types:n})},Qu=({plugin:e,schema:t})=>{let n=e.getPlugin(`@hey-api/transformers`);if(n?.config.typeTransformers)for(let e of n.config.typeTransformers){let n=e({schema:t});if(n)return n}switch(t.type){case`array`:return Gu({plugin:e,schema:t});case`boolean`:return Ku({schema:t});case`enum`:return qu({plugin:e,schema:t});case`integer`:case`number`:return Ju({plugin:e,schema:t});case`never`:return M.keywordTypeNode({keyword:`never`});case`null`:return M.literalTypeNode({literal:M.null()});case`object`:return Yu({plugin:e,schema:t});case`string`:return Xu({plugin:e,schema:t});case`tuple`:return Zu({plugin:e,schema:t});case`undefined`:return M.keywordTypeNode({keyword:`undefined`});case`unknown`:return M.keywordTypeNode({keyword:e.config.topType});case`void`:return M.keywordTypeNode({keyword:`void`})}},Y=({plugin:e,schema:t})=>{if(t.$ref){let n=e.referenceSymbol(e.api.getSelector(`ref`,t.$ref));return M.typeReferenceNode({typeName:n.placeholder})}if(t.type)return Qu({plugin:e,schema:t});if(t.items){if(t=N({detectFormat:!1,schema:t}),t.items){let n=[];for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return t.logicalOperator===`and`?M.typeIntersectionNode({types:n}):M.typeUnionNode({types:n})}return Y({plugin:e,schema:t})}return Qu({plugin:e,schema:{type:`unknown`}})},$u=({id:e,plugin:t,schema:n})=>{let r=Y({plugin:t,schema:n}),i=n.type===`enum`&&t.config.enums.enabled;Ru({plugin:t,schema:n,symbol:t.registerSymbol({exported:!0,meta:{kind:i?void 0:`type`},name:T({config:t.config.definitions,name:I(e)}),selector:t.api.getSelector(`ref`,e)}),type:r})},ed={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}schemaToType(e){return Y(e)}}({name:`@hey-api/typescript`}),config:{case:`PascalCase`,exportFromIndex:!0,style:`preserve`,topType:`unknown`,tree:!1},handler:({plugin:e})=>{let t=e.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:e.config.case},name:`ClientOptions`}),selector:e.api.getSelector(`ClientOptions`)}),n=e.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:e.config.case},name:`Webhooks`}),selector:e.api.getSelector(`Webhooks`)}),r=[],i=[];e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`server`,`webhook`,t=>{switch(t.type){case`operation`:Vu({operation:t.operation,plugin:e});break;case`parameter`:$u({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:$u({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:$u({id:t.$ref,plugin:e,schema:t.schema});break;case`server`:r.push(t.server);break;case`webhook`:i.push(Uu({operation:t.operation,plugin:e}));break}}),Iu({plugin:e,servers:r,symbolClientOptions:t}),Wu({plugin:e,symbolWebhooks:n,webhookNames:i})},handlerLegacy:Su,name:`@hey-api/typescript`,resolveConfig:(e,t)=>{e.config.definitions=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.definitions}),e.config.enums=t.valueToObject({defaultValue:{case:`SCREAMING_SNAKE_CASE`,constantsIgnoreNull:!1,enabled:!!e.config.enums,mode:`javascript`},mappers:{boolean:e=>({enabled:e}),string:e=>({mode:e})},value:e.config.enums}),e.config.errors=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,error:`{{name}}Error`,name:`{{name}}Errors`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.errors}),e.config.requests=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}Data`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.requests}),e.config.responses=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}Responses`,response:`{{name}}Response`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.responses}),e.config.webhooks=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}WebhookRequest`,payload:`{{name}}WebhookPayload`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.webhooks})}};var td=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const nd=(e,t,n)=>{let r=e.config[n].meta;if(!r)return;let i=r(t);if(Object.keys(i).length)return M.valueToExpression({value:i})},rd=({operation:e,plugin:t})=>Ec({operation:e,plugin:t.getPluginOrThrow(`@hey-api/sdk`)}),id=({operation:e,plugin:t})=>{let n=x(t.context.config),r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`error`,e.id))?.placeholder;return i||=`Error`,n.name===`@hey-api/client-axios`&&(i=`${t.referenceSymbol(t.api.getSelector(`AxiosError`)).placeholder}<${i}>`),i},ad=({operation:e,plugin:t})=>{let n=t.getPluginOrThrow(`@hey-api/typescript`);return t.getSymbol(n.api.getSelector(`response`,e.id))?.placeholder||`unknown`},od=({plugin:e,typeData:t})=>{let n=x(e.context.config).name===`@hey-api/client-nuxt`;return{isNuxtClient:n,strippedTypeData:n?`Omit<${t}, 'composable'>`:t}},sd=({operation:e,plugin:t,queryFn:n})=>{let r=t.referenceSymbol(t.api.getSelector(`UseMutationOptions`)),i=rd({operation:e,plugin:t}),a=id({operation:e,plugin:t}),o=ad({operation:e,plugin:t}),{isNuxtClient:s,strippedTypeData:c}=od({plugin:t,typeData:i}),l=s?`${r.placeholder}<${o}, ${c}, ${a}>`:`${r.placeholder}<${o}, ${i}, ${a}>`,u=`fnOptions`,d=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:u},{key:`throwOnError`,value:!0}]})]})}),f=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?f.push(M.returnVariable({expression:d})):f.push(M.constVariable({destructure:!0,expression:d,name:`data`}),M.returnVariable({expression:`data`}));let p=[{key:`mutation`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[s?{name:u,type:`Partial<${c}>`}:{name:u}],statements:f})}],m=nd(t,e,`mutationOptions`);m&&p.push({key:`meta`,value:m});let h=t.getPluginOrThrow(`@hey-api/sdk`),g=t.registerSymbol({exported:!0,name:T({config:t.config.mutationOptions,name:e.id})}),_=M.constVariable({comment:t.config.comments?h.api.createOperationComment({operation:e}):void 0,exportConst:g.exported,expression:M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${c}>`}],returnType:l,statements:[M.returnStatement({expression:M.objectExpression({obj:p})})]}),name:g.placeholder});t.setSymbolValue(g.id,_)},cd=`TOptions`,ld=M.identifier({text:`options`}),ud=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createQueryKey`}),selector:e.api.getSelector(`createQueryKey`)}),n=e.referenceSymbol(e.api.getSelector(`QueryKey`)),r=e.referenceSymbol(e.api.getSelector(`_JSONValue`)),i=M.indexedAccessTypeNode({indexType:M.literalTypeNode({literal:M.ots.number(0)}),objectType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:cd})],typeName:n.placeholder})}),a=ue(e.context.config),o=e.getPluginOrThrow(`@hey-api/sdk`),s=e.referenceSymbol(o.api.getSelector(`Options`)),c=x(e.context.config),l=c.api&&`getSelector`in c.api?e.getSymbol(c.api.getSelector(`client`)):void 0,u=Xc(e.context.config),d=e.registerSymbol({external:u,name:`serializeQueryKeyValue`}),f=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeReferenceNode({typeName:`string`})},{isRequired:!1,name:`options`,type:M.typeReferenceNode({typeName:cd})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],returnType:M.typeTupleNode({types:[i]}),statements:[M.constVariable({assertion:i,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:a,value:M.identifier({text:`options?.${a} || (options?.client ?? ${l?.placeholder}).getConfig().${a}`})}]}),name:`params`,typeName:i}),M.ifStatement({expression:M.identifier({text:`tags`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`tags`}),right:M.asExpression({expression:M.asExpression({expression:M.identifier({text:`tags`}),type:M.keywordTypeNode({keyword:`unknown`})}),type:M.typeReferenceNode({typeName:r.placeholder})})})})]})}),M.ifStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`body`})}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.constVariable({expression:M.callExpression({functionName:d.placeholder,parameters:[M.propertyAccessExpression({expression:`options`,name:`body`})]}),name:`normalizedBody`}),M.ifStatement({expression:M.binaryExpression({left:M.identifier({text:`normalizedBody`}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.identifier({text:`normalizedBody`})})})]})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`query`})}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.constVariable({expression:M.callExpression({functionName:d.placeholder,parameters:[M.propertyAccessExpression({expression:`options`,name:`query`})]}),name:`normalizedQuery`}),M.ifStatement({expression:M.binaryExpression({left:M.identifier({text:`normalizedQuery`}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.identifier({text:`normalizedQuery`})})})]})})]})}),M.returnStatement({expression:M.arrayLiteralExpression({elements:[M.identifier({text:`params`})]})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:s.placeholder})}),name:cd}]}),name:t.placeholder});e.setSymbolValue(t,f)},dd=({id:e,operation:t,plugin:n})=>{let r=n.config.queryKeys,i;r.tags&&t.tags&&t.tags.length>0&&(i=M.arrayLiteralExpression({elements:t.tags.map(e=>M.stringLiteral({text:e}))}));let a=n.referenceSymbol(n.api.getSelector(`createQueryKey`));return M.callExpression({functionName:a.placeholder,parameters:[M.ots.string(e),`options`,i]})},fd=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`_JSONValue`)),n=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:ue(e.context.config),type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`body`,type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`query`,type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:t.placeholder})}],r=e.getPluginOrThrow(`@hey-api/sdk`),i=e.referenceSymbol(r.api.getSelector(`Options`)),a=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`QueryKey`,selector:e.api.getSelector(`QueryKey`)}),o=M.typeAliasDeclaration({exportType:a.exported,name:a.placeholder,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${cd}, 'path'>`}),M.typeInterfaceNode({properties:n,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:i.placeholder})}),name:cd}]});e.setSymbolValue(a,o)},pd=({operation:e,plugin:t,symbol:n})=>{let{strippedTypeData:r}=od({plugin:t,typeData:rd({operation:e,plugin:t})});return M.constVariable({exportConst:n.exported,expression:M.arrowFunction({parameters:[{isRequired:Fn(e),name:`options`,type:r}],statements:dd({id:e.id,operation:e,plugin:t})}),name:n.placeholder})},md=`options`,hd=`context`,gd=({operation:e,plugin:t,queryFn:n})=>{if(jc({operation:e}))return;let r=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(fd({plugin:t}),ud({plugin:t}));let i;if(t.config.queryKeys.enabled){let n=t.registerSymbol({exported:!0,name:T({config:t.config.queryKeys,name:e.id})}),r=pd({operation:e,plugin:t,symbol:n});t.setSymbolValue(n,r),i=M.callExpression({functionName:n.placeholder,parameters:[md]})}else{let n=t.referenceSymbol(t.api.getSelector(`createQueryKey`)),r;t.config.queryKeys.tags&&e.tags&&e.tags.length>0&&(r=M.arrayLiteralExpression({elements:e.tags.map(e=>M.stringLiteral({text:e}))})),i=M.callExpression({functionName:n.placeholder,parameters:[M.ots.string(e.id),md,r]})}let{strippedTypeData:a}=od({plugin:t,typeData:rd({operation:e,plugin:t})}),o=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:md},{spread:hd},{key:`throwOnError`,value:!0}]})]})}),s=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?s.push(M.returnVariable({expression:o})):s.push(M.constVariable({destructure:!0,expression:o,name:`data`}),M.returnVariable({expression:`data`}));let c=[{key:`key`,value:i},{key:`query`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:hd}],statements:s})}],l=nd(t,e,`queryOptions`);l&&c.push({key:`meta`,value:l});let u=t.getPluginOrThrow(`@hey-api/sdk`),d=t.registerSymbol({exported:!0,name:T({config:t.config.queryOptions,name:e.id}),selector:t.api.getSelector(`queryOptionsFn`,e.id)}),f=t.registerSymbol({external:t.name,name:`defineQueryOptions`,selector:t.api.getSelector(`defineQueryOptions`)}),p=M.constVariable({comment:t.config.comments?u.api.createOperationComment({operation:e}):void 0,exportConst:d.exported,expression:M.callExpression({functionName:f.placeholder,parameters:[M.arrowFunction({parameters:[{isRequired:r,name:md,type:a}],statements:M.objectExpression({obj:c})})]}),name:d.placeholder});t.setSymbolValue(d,p)},_d={api:new td({name:`@pinia/colada`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/typescript`,`@hey-api/sdk`],handler:({plugin:e})=>{e.registerSymbol({external:e.name,meta:{kind:`type`},name:`UseMutationOptions`,selector:e.api.getSelector(`UseMutationOptions`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`UseQueryOptions`,selector:e.api.getSelector(`UseQueryOptions`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`_JSONValue`,selector:e.api.getSelector(`_JSONValue`)}),e.registerSymbol({external:`axios`,meta:{kind:`type`},name:`AxiosError`,selector:e.api.getSelector(`AxiosError`)});let t=e.getPluginOrThrow(`@hey-api/sdk`);e.forEach(`operation`,({operation:n})=>{let r=t.config.asClass?Tc({context:e.context,operation:n,plugin:t}):void 0,i=r?r.values().next().value:void 0,a=i?[e.referenceSymbol(t.api.getSelector(`class`,i.path[0])).placeholder,...i.path.slice(1).map(e=>w({case:`camelCase`,value:e})),i.methodName].filter(Boolean).join(`.`):e.referenceSymbol(t.api.getSelector(`function`,n.id)).placeholder;e.hooks.operation.isQuery(n)&&e.config.queryOptions.enabled&&gd({operation:n,plugin:e,queryFn:a}),e.hooks.operation.isMutation(n)&&e.config.mutationOptions.enabled&&sd({operation:n,plugin:e,queryFn:a})})},name:`@pinia/colada`,resolveConfig:(e,t)=>{e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Query`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},vd=(e,t,n)=>{let r=e.config[n].meta;if(!r)return;let i=r(t);if(Object.keys(i).length)return M.valueToExpression({value:i})},yd=({operation:e,plugin:t})=>Ec({operation:e,plugin:t.getPluginOrThrow(`@hey-api/sdk`)}),bd=({operation:e,plugin:t})=>{let n=x(t.context.config),r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`error`,e.id))?.placeholder;return i||=t.referenceSymbol(t.api.getSelector(`DefaultError`)).placeholder,n.name===`@hey-api/client-axios`&&(i=`${t.referenceSymbol(t.api.getSelector(`AxiosError`)).placeholder}<${i}>`),i},xd=({operation:e,plugin:t})=>{let n=t.getPluginOrThrow(`@hey-api/typescript`);return t.getSymbol(n.api.getSelector(`response`,e.id))?.placeholder||`unknown`},Sd=`TOptions`,Cd=M.identifier({text:`infinite`}),wd=M.identifier({text:`options`}),Td=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createQueryKey`}),selector:e.api.getSelector(`createQueryKey`)}),n=e.referenceSymbol(e.api.getSelector(`QueryKey`)),r=M.indexedAccessTypeNode({indexType:M.literalTypeNode({literal:M.ots.number(0)}),objectType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:Sd})],typeName:n.placeholder})}),i=ue(e.context.config),a=x(e.context.config),o=a.api&&`getSelector`in a.api?e.getSymbol(a.api.getSelector(`client`)):void 0,s=e.getPluginOrThrow(`@hey-api/sdk`),c=e.referenceSymbol(s.api.getSelector(`Options`)),l=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeReferenceNode({typeName:`string`})},{isRequired:!1,name:`options`,type:M.typeReferenceNode({typeName:Sd})},{isRequired:!1,name:`infinite`,type:M.typeReferenceNode({typeName:`boolean`})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],returnType:M.typeTupleNode({types:[r]}),statements:[M.constVariable({assertion:r,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:i,value:M.identifier({text:`options?.${i} || (options?.client ?? ${o?.placeholder}).getConfig().${i}`})}]}),name:`params`,typeName:r}),M.ifStatement({expression:Cd,thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`_infinite`}),right:Cd})})]})}),M.ifStatement({expression:M.identifier({text:`tags`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`tags`}),right:M.identifier({text:`tags`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.propertyAccessExpression({expression:`options`,name:`body`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.propertyAccessExpression({expression:`options`,name:`headers`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.propertyAccessExpression({expression:`options`,name:`query`})})})]})}),M.returnStatement({expression:M.arrayLiteralExpression({elements:[M.identifier({text:`params`})]})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:c.placeholder})}),name:Sd}]}),name:t.placeholder});e.setSymbolValue(t,l)},Ed=({id:e,isInfinite:t,operation:n,plugin:r})=>{let i=t?r.config.infiniteQueryKeys:r.config.queryKeys,a;i.tags&&n.tags&&n.tags.length>0&&(a=M.arrayLiteralExpression({elements:n.tags.map(e=>M.stringLiteral({text:e}))}));let o=r.referenceSymbol(r.api.getSelector(`createQueryKey`));return M.callExpression({functionName:o.placeholder,parameters:[M.ots.string(e),`options`,t||a?M.ots.boolean(!!t):void 0,a]})},Dd=({plugin:e})=>{let t=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:`_infinite`,type:M.keywordTypeNode({keyword:`boolean`})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],n=e.getPluginOrThrow(`@hey-api/sdk`),r=e.referenceSymbol(n.api.getSelector(`Options`)),i=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`QueryKey`,selector:e.api.getSelector(`QueryKey`)}),a=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${Sd}, '${ue(e.context.config)}' | 'body' | 'headers' | 'path' | 'query'>`}),M.typeInterfaceNode({properties:t,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:r.placeholder})}),name:Sd}]});e.setSymbolValue(i,a)},Od=({isInfinite:e,operation:t,plugin:n,symbol:r,typeQueryKey:i})=>{let a=yd({operation:t,plugin:n});return M.constVariable({exportConst:r.exported,expression:M.arrowFunction({parameters:[{isRequired:Fn(t),name:`options`,type:a}],returnType:e?i:void 0,statements:Ed({id:t.id,isInfinite:e,operation:t,plugin:n})}),name:r.placeholder})},kd=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createInfiniteParams`}),selector:e.api.getSelector(`createInfiniteParams`)}),n=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`queryKey`,type:M.typeReferenceNode({typeName:`QueryKey<Options>`})},{name:`page`,type:M.typeReferenceNode({typeName:`K`})}],statements:[M.constVariable({expression:M.objectExpression({obj:[{spread:M.propertyAccessExpression({expression:`queryKey`,name:0})}]}),name:`params`}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].body`},{assertion:`any`,spread:`page.body`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].headers`},{spread:`page.headers`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].path`},{assertion:`any`,spread:`page.path`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].query`},{assertion:`any`,spread:`page.query`}]})})})]})}),M.returnVariable({expression:M.asExpression({expression:M.asExpression({expression:M.identifier({text:`params`}),type:M.keywordTypeNode({keyword:`unknown`})}),type:a.factory.createTypeQueryNode(M.identifier({text:`page`}))})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>`})}),name:`K`}]}),name:t.placeholder});e.setSymbolValue(t,n)},Ad=({operation:e,plugin:t,queryFn:n})=>{let r=In({context:t.context,operation:e});if(!r)return;let i=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(Dd({plugin:t}),Td({plugin:t})),t.getSymbol(t.api.getSelector(`createInfiniteParams`))||kd({plugin:t});let a=t.referenceSymbol(t.api.getSelector(`infiniteQueryOptions`)),o=t.referenceSymbol(t.api.getSelector(`InfiniteData`)),s=yd({operation:e,plugin:t}),c=bd({operation:e,plugin:t}),l=xd({operation:e,plugin:t}),u=`${t.referenceSymbol(t.api.getSelector(`QueryKey`)).placeholder}<${s}>`,d=`Pick<${u}[0], 'body' | 'headers' | 'path' | 'query'>`,f=t.getPluginOrThrow(`@hey-api/typescript`),p=`${ft({node:f.api.schemaToType({plugin:f,schema:r.schema}),unescape:!0})} | ${d}`,m=t.registerSymbol({exported:!0,name:T({config:t.config.infiniteQueryKeys,name:e.id})}),h=Od({isInfinite:!0,operation:e,plugin:t,symbol:m,typeQueryKey:u});t.setSymbolValue(m,h);let g=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`params`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),_=t.referenceSymbol(t.api.getSelector(`createInfiniteParams`)),v=[M.constVariable({comment:[{jsdoc:!1,lines:[`@ts-ignore`]}],expression:M.conditionalExpression({condition:M.binaryExpression({left:M.typeOfExpression({text:`pageParam`}),operator:`===`,right:M.ots.string(`object`)}),whenFalse:M.objectExpression({multiLine:!0,obj:[{key:r.in,value:M.objectExpression({multiLine:!0,obj:[{key:r.name,value:M.identifier({text:`pageParam`})}]})}]}),whenTrue:M.identifier({text:`pageParam`})}),name:`page`,typeName:d}),M.constVariable({expression:M.callExpression({functionName:_.placeholder,parameters:[`queryKey`,`page`]}),name:`params`})];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?v.push(M.returnVariable({expression:g})):v.push(M.constVariable({destructure:!0,expression:g,name:`data`}),M.returnVariable({expression:`data`}));let y=[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`pageParam`},{name:`queryKey`},{name:`signal`}]}],statements:v})},{key:`queryKey`,value:M.callExpression({functionName:m.placeholder,parameters:[`options`]})}],b=vd(t,e,`infiniteQueryOptions`);b&&y.push({key:`meta`,value:b});let ee=t.getPluginOrThrow(`@hey-api/sdk`),te=t.registerSymbol({exported:!0,name:T({config:t.config.infiniteQueryOptions,name:e.id})}),ne=M.constVariable({comment:t.config.comments?ee.api.createOperationComment({operation:e}):void 0,exportConst:te.exported,expression:M.arrowFunction({parameters:[{isRequired:i,name:`options`,type:s}],statements:[M.returnFunctionCall({args:[M.objectExpression({comments:[{jsdoc:!1,lines:[`@ts-ignore`]}],obj:y})],name:a.placeholder,types:[l,c||`unknown`,`${o.placeholder}<${l}>`,u,p]})]}),name:te.placeholder});t.setSymbolValue(te,ne)},jd=({operation:e,plugin:t,queryFn:n})=>{let r=t.referenceSymbol(t.api.getSelector(`MutationOptions`)),i=yd({operation:e,plugin:t}),a=bd({operation:e,plugin:t}),o=xd({operation:e,plugin:t}),s=`${r.placeholder}<${o}, ${a}, ${i}>`,c=`fnOptions`,l=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:c},{key:`throwOnError`,value:!0}]})]})}),u=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?u.push(M.returnVariable({expression:l})):u.push(M.constVariable({destructure:!0,expression:l,name:`data`}),M.returnVariable({expression:`data`}));let d=[{key:`mutationFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:c}],statements:u})}],f=vd(t,e,`mutationOptions`);f&&d.push({key:`meta`,value:f});let p=t.getPluginOrThrow(`@hey-api/sdk`),m=`mutationOptions`,h=M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${i}>`}],returnType:s,statements:[M.constVariable({expression:M.objectExpression({obj:d}),name:m,typeName:s}),M.returnVariable({expression:m})]}),g=t.registerSymbol({exported:!0,name:T({config:t.config.mutationOptions,name:e.id})}),_=M.constVariable({comment:t.config.comments?p.api.createOperationComment({operation:e}):void 0,exportConst:g.exported,expression:h,name:g.placeholder});t.setSymbolValue(g,_)},Md=`options`,Nd=({operation:e,plugin:t,queryFn:n})=>{if(jc({operation:e}))return;let r=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(Dd({plugin:t}),Td({plugin:t}));let i=t.referenceSymbol(t.api.getSelector(`queryOptions`)),a=t.registerSymbol({exported:!0,name:T({config:t.config.queryKeys,name:e.id})}),o=Od({isInfinite:!1,operation:e,plugin:t,symbol:a});t.setSymbolValue(a,o);let s=yd({operation:e,plugin:t}),c=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:Md},{spread:`queryKey[0]`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),l=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?l.push(M.returnVariable({expression:c})):l.push(M.constVariable({destructure:!0,expression:c,name:`data`}),M.returnVariable({expression:`data`}));let u=[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`queryKey`},{name:`signal`}]}],statements:l})},{key:`queryKey`,value:M.callExpression({functionName:a.placeholder,parameters:[Md]})}],d=vd(t,e,`queryOptions`);d&&u.push({key:`meta`,value:d});let f=t.getPluginOrThrow(`@hey-api/sdk`),p=t.registerSymbol({exported:t.config.queryOptions.exported,name:T({config:t.config.queryOptions,name:e.id}),selector:t.api.getSelector(`queryOptionsFn`,e.id)}),m=M.constVariable({comment:t.config.comments?f.api.createOperationComment({operation:e}):void 0,exportConst:p.exported,expression:M.arrowFunction({parameters:[{isRequired:r,name:Md,type:s}],statements:[M.returnFunctionCall({args:[M.objectExpression({obj:u})],name:i.placeholder})]}),name:p.placeholder});t.setSymbolValue(p,m)},Pd=`options`,Fd=({operation:e,plugin:t})=>{if(jc({operation:e})||!(`useQuery`in t.config))return;let n=t.getPluginOrThrow(`@hey-api/sdk`),r=t.registerSymbol({exported:!0,name:T({config:t.config.useQuery,name:e.id})}),i=t.referenceSymbol(t.api.getSelector(`useQuery`)),a=Ac({context:t.context,operation:e}),o=yd({operation:e,plugin:t}),s=t.referenceSymbol(t.api.getSelector(`queryOptionsFn`,e.id)),c=M.constVariable({comment:t.config.comments?n.api.createOperationComment({operation:e}):void 0,exportConst:r.exported,expression:M.arrowFunction({parameters:[{isRequired:a,name:Pd,type:o}],statements:[M.returnStatement({expression:M.callExpression({functionName:i.placeholder,parameters:[M.callExpression({functionName:s.placeholder,parameters:[Pd]})]})})]}),name:r.placeholder});t.setSymbolValue(r,c)},Id=({plugin:e})=>{e.registerSymbol({external:e.name,meta:{kind:`type`},name:`DefaultError`,selector:e.api.getSelector(`DefaultError`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`InfiniteData`,selector:e.api.getSelector(`InfiniteData`)});let t=e.name===`@tanstack/angular-query-experimental`||e.name===`@tanstack/svelte-query`||e.name===`@tanstack/solid-query`?`MutationOptions`:`UseMutationOptions`;e.registerSymbol({external:e.name,meta:{kind:`type`},name:t,selector:e.api.getSelector(`MutationOptions`)}),e.registerSymbol({external:e.name,name:`infiniteQueryOptions`,selector:e.api.getSelector(`infiniteQueryOptions`)}),e.registerSymbol({external:e.name,name:`queryOptions`,selector:e.api.getSelector(`queryOptions`)}),e.registerSymbol({external:e.name,name:`useQuery`,selector:e.api.getSelector(`useQuery`)}),e.registerSymbol({external:`axios`,meta:{kind:`type`},name:`AxiosError`,selector:e.api.getSelector(`AxiosError`)});let n=e.getPluginOrThrow(`@hey-api/sdk`);e.forEach(`operation`,({operation:t})=>{let r=n.config.asClass?Tc({context:e.context,operation:t,plugin:n}):void 0,i=r?r.values().next().value:void 0,a=i?[e.referenceSymbol(n.api.getSelector(`class`,i.path[0])).placeholder,...i.path.slice(1).map(e=>w({case:`camelCase`,value:e})),i.methodName].filter(Boolean).join(`.`):e.referenceSymbol(n.api.getSelector(`function`,t.id)).placeholder;e.hooks.operation.isQuery(t)&&(e.config.queryOptions.enabled&&Nd({operation:t,plugin:e,queryFn:a}),e.config.infiniteQueryOptions.enabled&&Ad({operation:t,plugin:e,queryFn:a}),`useQuery`in e.config&&e.config.useQuery.enabled&&Fd({operation:t,plugin:e})),e.hooks.operation.isMutation(t)&&e.config.mutationOptions.enabled&&jd({operation:t,plugin:e,queryFn:a})})},Ld=e=>`${Xl({config:S(),id:e.name,operation:e})}InfiniteOptions`,Rd=e=>`${Xl({config:S(),id:e.name,operation:e})}Mutation`,zd=({config:e,id:t,operation:n})=>`${Xl({config:e,id:t,operation:n})}Options`,Bd=({config:e,id:t,isInfinite:n,operation:r})=>`${Xl({config:e,id:t,operation:r})}${n?`Infinite`:``}QueryKey`,Vd=e=>{switch(e.in){case`formData`:return`body`;case`header`:return`headers`;default:return e.in}},Hd=`createQueryKey`,Ud=`infiniteQueryOptions`,Wd=`mutationOptions`,Gd=`QueryKey`,Kd=`queryOptions`,qd=`TOptions`,Jd=({file:e})=>{let t=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`queryKey`,type:M.typeNode(`QueryKey<OptionsLegacyParser>`)},{name:`page`,type:M.typeNode(`K`)}],statements:[M.constVariable({expression:M.identifier({text:`queryKey[0]`}),name:`params`}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].body`},{assertion:`any`,spread:`page.body`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].headers`},{spread:`page.headers`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].path`},{spread:`page.path`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].query`},{spread:`page.query`}]})})})]})}),M.returnVariable({expression:a.factory.createAsExpression(a.factory.createAsExpression(M.identifier({text:`params`}),a.factory.createKeywordTypeNode(a.SyntaxKind.UnknownKeyword)),a.factory.createTypeQueryNode(M.identifier({text:`page`})))})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`Pick<QueryKey<OptionsLegacyParser>[0], 'body' | 'headers' | 'path' | 'query'>`})}),name:`K`}]}),name:`createInfiniteParams`});e.add(t)},Yd=({file:e})=>{let t=M.indexedAccessTypeNode({indexType:M.typeNode(0),objectType:M.typeNode(Gd,[M.typeNode(qd)])}),n=M.identifier({text:`infinite`}),r=ue(S()),i=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeNode(`string`)},{isRequired:!1,name:`options`,type:M.typeNode(qd)},{isRequired:!1,name:`infinite`,type:M.typeNode(`boolean`)}],returnType:t,statements:[M.constVariable({assertion:t,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:r,value:M.identifier({text:`options?.${r} || (options?.client ?? _heyApiClient).getConfig().${r}`})}]}),name:`params`,typeName:t}),M.ifStatement({expression:n,thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`_infinite`}),right:n})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.propertyAccessExpression({expression:`options`,name:`body`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.propertyAccessExpression({expression:`options`,name:`headers`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.propertyAccessExpression({expression:`options`,name:`query`})})})]})}),M.returnVariable({expression:`params`})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`OptionsLegacyParser`})}),name:qd}]}),name:Hd});e.add(i)},Xd=({file:e})=>{let t=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:`_infinite`,type:M.keywordTypeNode({keyword:`boolean`})}],n=M.typeAliasDeclaration({name:Gd,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${qd}, '${ue(S())}' | 'body' | 'headers' | 'path' | 'query'>`}),M.typeInterfaceNode({properties:t,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`OptionsLegacyParser`})}),name:qd}]});e.add(n)},Zd=({client:e,file:t,operation:n,typesModulePath:r})=>{let{name:i}=zl({client:e,meta:n.parameters.length?{$ref:n.name,name:n.name}:void 0,nameTransformer:Vl,onImport:e=>{t.import({asType:!0,module:r,name:e})}});return{typeData:Gl({importedType:i})}},Qd=({client:e,file:t,operation:n,pluginName:r,typesModulePath:i})=>{let a=S(),{name:o}=zl({client:e,meta:{$ref:n.name,name:n.name},nameTransformer:Hl,onImport:e=>{t.import({asType:!0,module:i,name:e})}}),s={asType:!0,name:o};if(s.name||(s=t.import({asType:!0,module:r,name:`DefaultError`})),x(a).name===`@hey-api/client-axios`){let e=t.import({asType:!0,module:`axios`,name:`AxiosError`});s={...e,name:`${e.name}<${s.name}>`}}return{typeError:s}},$d=({client:e,file:t,operation:n,typesModulePath:r})=>{let{name:i}=zl({client:e,meta:{$ref:n.name,name:n.name},nameTransformer:Wl,onImport:e=>{t.import({asType:!0,module:r,name:e})}});return{typeResponse:i||`void`}},ef=({id:e,isInfinite:t})=>M.arrayLiteralExpression({elements:[M.callExpression({functionName:Hd,parameters:[M.ots.string(e),`options`,t?M.ots.boolean(!0):void 0]})],multiLine:!1}),tf=({client:e,files:t,plugin:n})=>{let r=S();if(C(r))throw Error(`TanStack Query plugin does not support legacy clients`);let i=t[n.name];i.import({asType:!0,module:Yc({config:r,sourceOutput:n.output}),name:`OptionsLegacyParser`});let a=te({moduleOutput:t.types.nameWithoutExtension(),sourceOutput:n.output}),o=n.name===`@tanstack/angular-query-experimental`||n.name===`@tanstack/svelte-query`||n.name===`@tanstack/solid-query`?`MutationOptions`:`UseMutationOptions`,s,c=!1,l=!1,u=!1,d=!1,f=!1,p=new Map;for(let m of e.services)for(let h of m.operations){let g=F(h);if(p.has(g))continue;p.set(g,!0);let _=[r.plugins[`@hey-api/sdk`]?.config.asClass&&Io({config:r,name:m.name}),Xl({config:r,handleIllegal:!r.plugins[`@hey-api/sdk`]?.config.asClass,id:h.name,operation:h})].filter(Boolean).join(`.`),v=!1;if(n.config.queryOptions.enabled&&[`GET`,`POST`].includes(h.method)){f||(f=!0,l||=(Xd({file:i}),Yd({file:i}),!0),i.import({module:n.name,name:Kd})),v=!0;let{typeData:t}=Zd({client:e,file:i,operation:h,typesModulePath:a}),o=ws(h.parameters),s=M.constVariable({exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:o,name:`options`,type:t}],statements:ef({id:h.name})}),name:Bd({config:r,id:h.name,operation:h})});i.add(s);let c=M.constVariable({comment:[],exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:o,name:`options`,type:t}],statements:[M.returnFunctionCall({args:[M.objectExpression({obj:[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`queryKey`},{name:`signal`}]}],statements:[M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`queryKey[0]`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})},{key:`queryKey`,value:M.callExpression({functionName:Bd({config:r,id:h.name,operation:h}),parameters:[`options`]})}]})],name:Kd})]}),name:zd({config:r,id:h.name,operation:h})});i.add(c)}if(n.config.infiniteQueryOptions&&[`GET`,`POST`].includes(h.method)){let t,o=h.parameters.find(n=>{if(Ci(r.parser.pagination).test(n.name))return t=n,!0;if(n.in===`body`){if(n.export===`reference`){let i=n.$refs[0];return e.models.find(e=>e.meta?.$ref===i)?.properties.find(e=>{if(Ci(r.parser.pagination).test(e.name))return t=e,!0})}return n.properties.find(e=>{if(Ci(r.parser.pagination).test(e.name))return t=e,!0})}});if(o&&t){u||(u=!0,l||=(Xd({file:i}),Yd({file:i}),!0),c||=(Jd({file:i}),!0),i.import({module:n.name,name:Ud}),s=i.import({asType:!0,module:n.name,name:`InfiniteData`})),v=!0;let{typeData:d}=Zd({client:e,file:i,operation:h,typesModulePath:a}),{typeError:f}=Qd({client:e,file:i,operation:h,pluginName:n.name,typesModulePath:a}),{typeResponse:p}=$d({client:e,file:i,operation:h,typesModulePath:a}),m=ws(h.parameters),g=`${Gd}<${d}>`,y=`Pick<${g}[0], 'body' | 'headers' | 'path' | 'query'>`,b=`${t.base} | ${y}`,ee=M.constVariable({exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:m,name:`options`,type:d}],returnType:g,statements:ef({id:h.name,isInfinite:!0})}),name:Bd({config:r,id:h.name,isInfinite:!0,operation:h})});i.add(ee);let te=M.constVariable({comment:[],exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:m,name:`options`,type:d}],statements:[M.returnFunctionCall({args:[M.objectExpression({comments:[{jsdoc:!1,lines:[`@ts-ignore`]}],obj:[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`pageParam`},{name:`queryKey`},{name:`signal`}]}],statements:[M.constVariable({comment:[{jsdoc:!1,lines:[`@ts-ignore`]}],expression:M.conditionalExpression({condition:M.binaryExpression({left:M.typeOfExpression({text:`pageParam`}),operator:`===`,right:M.ots.string(`object`)}),whenFalse:M.objectExpression({multiLine:!0,obj:[{key:Vd(o),value:M.objectExpression({multiLine:!0,obj:[{key:t.name,value:M.identifier({text:`pageParam`})}]})}]}),whenTrue:M.identifier({text:`pageParam`})}),name:`page`,typeName:y}),M.constVariable({expression:M.callExpression({functionName:`createInfiniteParams`,parameters:[`queryKey`,`page`]}),name:`params`}),M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`params`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})},{key:`queryKey`,value:M.callExpression({functionName:Bd({config:r,id:h.name,isInfinite:!0,operation:h}),parameters:[`options`]})}]})],name:Ud,types:[p,f.name,`${typeof s==`string`?s:s.name}<${p}>`,g,b]})]}),name:Ld(h)});i.add(te)}}if(n.config.mutationOptions&&[`DELETE`,`PATCH`,`POST`,`PUT`].includes(h.method)){d||(d=!0,i.import({asType:!0,module:n.name,name:o})),v=!0;let{typeData:t}=Zd({client:e,file:i,operation:h,typesModulePath:a}),{typeError:r}=Qd({client:e,file:i,operation:h,pluginName:n.name,typesModulePath:a}),{typeResponse:s}=$d({client:e,file:i,operation:h,typesModulePath:a}),c=`fnOptions`,l=M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${t}>`}],statements:[M.constVariable({expression:M.objectExpression({obj:[{key:`mutationFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:c}],statements:[M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:c},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})}]}),name:Wd,typeName:`${o}<${s}, ${r.name}, ${t}>`}),M.returnVariable({expression:Wd})]}),u=M.constVariable({comment:[],exportConst:!0,expression:l,name:Rd(h)});i.add(u)}(f||u)&&i.import({alias:`_heyApiClient`,module:te({moduleOutput:t.client.nameWithoutExtension(),sourceOutput:n.output}),name:`client`}),v&&i.import({module:te({moduleOutput:t.sdk.nameWithoutExtension(),sourceOutput:n.output}),name:_.split(`.`)[0]})}},nf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/angular-query-experimental`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/angular-query-experimental`,output:`@tanstack/angular-query-experimental`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},rf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/react-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/react-query`,output:`@tanstack/react-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions}),e.config.useQuery=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!1,name:`use{{name}}Query`},mappers:{boolean:e=>({enabled:e}),function:e=>({enabled:!0,name:e}),object:e=>({enabled:!0,...e}),string:e=>({enabled:!0,name:e})},value:e.config.useQuery}),e.config.useQuery.enabled&&(e.config.queryOptions.enabled||(e.config.queryOptions.enabled=!0,e.config.queryOptions.exported=!1))}},af={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/solid-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/solid-query`,output:`@tanstack/solid-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},of={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/svelte-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/svelte-query`,output:`@tanstack/svelte-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},sf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/vue-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/vue-query`,output:`@tanstack/vue-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}};var cf=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const lf=({operation:e,plugin:t})=>{let n=[],r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`data`,e.id));i&&(e.body&&n.push({isRequired:e.body.required,name:`Body`,type:`${i.placeholder}['body']`}),e.parameters&&(e.parameters.header&&n.push({isRequired:Mn(e.parameters.header),name:`Headers`,type:`${i.placeholder}['headers']`}),e.parameters.path&&n.push({isRequired:Mn(e.parameters.path),name:`Params`,type:`${i.placeholder}['path']`}),e.parameters.query&&n.push({isRequired:Mn(e.parameters.query),name:`Querystring`,type:`${i.placeholder}['query']`})));let{errors:a,responses:o}=Rn(e),s,c=t.getSymbol(r.api.getSelector(`errors`,e.id));if(c&&a&&a.properties){let e=Object.keys(a.properties);if(e.length){if(!e.includes(`default`))s=M.typeReferenceNode({typeName:c.placeholder});else if(e.length>1){let e=M.typeReferenceNode({typeName:c.placeholder}),t=M.literalTypeNode({literal:M.stringLiteral({text:`default`})});s=M.typeReferenceNode({typeArguments:[e,t],typeName:`Omit`})}}}let l,u=t.getSymbol(r.api.getSelector(`responses`,e.id));if(u&&o&&o.properties){let e=Object.keys(o.properties);if(e.length){if(!e.includes(`default`))l=M.typeReferenceNode({typeName:u.placeholder});else if(e.length>1){let e=M.typeReferenceNode({typeName:u.placeholder}),t=M.literalTypeNode({literal:M.stringLiteral({text:`default`})});l=M.typeReferenceNode({typeArguments:[e,t],typeName:`Omit`})}}}let d=[s,l].filter(Boolean);if(d.length&&n.push({name:`Reply`,type:M.typeIntersectionNode({types:d})}),!n.length)return;let f=t.referenceSymbol(t.api.getSelector(`RouteHandler`));return{name:e.id,type:M.typeReferenceNode({typeArguments:[M.typeInterfaceNode({properties:n,useLegacyResolution:!1})],typeName:f.placeholder})}},uf={api:new cf({name:`fastify`}),config:{exportFromIndex:!1},dependencies:[`@hey-api/typescript`],handler:({plugin:e})=>{e.registerSymbol({external:`fastify`,meta:{kind:`type`},name:`RouteHandler`,selector:e.api.getSelector(`RouteHandler`)});let t=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`RouteHandlers`}),n=[];e.forEach(`operation`,({operation:t})=>{let r=lf({operation:t,plugin:e});r&&n.push(r)});let r=M.typeAliasDeclaration({exportType:t.exported,name:t.placeholder,type:M.typeInterfaceNode({properties:n,useLegacyResolution:!1})});e.setSymbolValue(t,r)},name:`fastify`},X={actions:{args:M.identifier({text:`args`}),base64:M.identifier({text:`base64`}),bic:M.identifier({text:`bic`}),brand:M.identifier({text:`brand`}),bytes:M.identifier({text:`bytes`}),check:M.identifier({text:`check`}),checkItems:M.identifier({text:`checkItems`}),creditCard:M.identifier({text:`creditCard`}),cuid2:M.identifier({text:`cuid2`}),decimal:M.identifier({text:`decimal`}),description:M.identifier({text:`description`}),digits:M.identifier({text:`digits`}),email:M.identifier({text:`email`}),emoji:M.identifier({text:`emoji`}),empty:M.identifier({text:`empty`}),endsWith:M.identifier({text:`endsWith`}),entries:M.identifier({text:`entries`}),everyItem:M.identifier({text:`everyItem`}),excludes:M.identifier({text:`excludes`}),filterItems:M.identifier({text:`filterItems`}),findItem:M.identifier({text:`findItem`}),finite:M.identifier({text:`finite`}),flavor:M.identifier({text:`flavor`}),graphemes:M.identifier({text:`graphemes`}),gtValue:M.identifier({text:`gtValue`}),hash:M.identifier({text:`hash`}),hexColor:M.identifier({text:`hexColor`}),hexadecimal:M.identifier({text:`hexadecimal`}),imei:M.identifier({text:`imei`}),includes:M.identifier({text:`includes`}),integer:M.identifier({text:`integer`}),ip:M.identifier({text:`ip`}),ipv4:M.identifier({text:`ipv4`}),ipv6:M.identifier({text:`ipv6`}),isoDate:M.identifier({text:`isoDate`}),isoDateTime:M.identifier({text:`isoDateTime`}),isoTime:M.identifier({text:`isoTime`}),isoTimeSecond:M.identifier({text:`isoTimeSecond`}),isoTimestamp:M.identifier({text:`isoTimestamp`}),isoWeek:M.identifier({text:`isoWeek`}),length:M.identifier({text:`length`}),ltValue:M.identifier({text:`ltValue`}),mac:M.identifier({text:`mac`}),mac48:M.identifier({text:`mac48`}),mac64:M.identifier({text:`mac64`}),mapItems:M.identifier({text:`mapItems`}),maxBytes:M.identifier({text:`maxBytes`}),maxEntries:M.identifier({text:`maxEntries`}),maxGraphemes:M.identifier({text:`maxGraphemes`}),maxLength:M.identifier({text:`maxLength`}),maxSize:M.identifier({text:`maxSize`}),maxValue:M.identifier({text:`maxValue`}),maxWords:M.identifier({text:`maxWords`}),metadata:M.identifier({text:`metadata`}),mimeType:M.identifier({text:`mimeType`}),minBytes:M.identifier({text:`minBytes`}),minEntries:M.identifier({text:`minEntries`}),minGraphemes:M.identifier({text:`minGraphemes`}),minLength:M.identifier({text:`minLength`}),minSize:M.identifier({text:`minSize`}),minValue:M.identifier({text:`minValue`}),minWords:M.identifier({text:`minWords`}),multipleOf:M.identifier({text:`multipleOf`}),nanoid:M.identifier({text:`nanoid`}),nonEmpty:M.identifier({text:`nonEmpty`}),normalize:M.identifier({text:`normalize`}),notBytes:M.identifier({text:`notBytes`}),notEntries:M.identifier({text:`notEntries`}),notGraphemes:M.identifier({text:`notGraphemes`}),notLength:M.identifier({text:`notLength`}),notSize:M.identifier({text:`notSize`}),notValue:M.identifier({text:`notValue`}),notValues:M.identifier({text:`notValues`}),notWords:M.identifier({text:`notWords`}),octal:M.identifier({text:`octal`}),parseJson:M.identifier({text:`parseJson`}),partialCheck:M.identifier({text:`partialCheck`}),rawCheck:M.identifier({text:`rawCheck`}),rawTransform:M.identifier({text:`rawTransform`}),readonly:M.identifier({text:`readonly`}),reduceItems:M.identifier({text:`reduceItems`}),regex:M.identifier({text:`regex`}),returns:M.identifier({text:`returns`}),rfcEmail:M.identifier({text:`rfcEmail`}),safeInteger:M.identifier({text:`safeInteger`}),size:M.identifier({text:`size`}),slug:M.identifier({text:`slug`}),someItem:M.identifier({text:`someItem`}),sortItems:M.identifier({text:`sortItems`}),startsWith:M.identifier({text:`startsWith`}),stringifyJson:M.identifier({text:`stringifyJson`}),title:M.identifier({text:`title`}),toLowerCase:M.identifier({text:`toLowerCase`}),toMaxValue:M.identifier({text:`toMaxValue`}),toMinValue:M.identifier({text:`toMinValue`}),toUpperCase:M.identifier({text:`toUpperCase`}),transform:M.identifier({text:`transform`}),trim:M.identifier({text:`trim`}),trimEnd:M.identifier({text:`trimEnd`}),trimStart:M.identifier({text:`trimStart`}),ulid:M.identifier({text:`ulid`}),url:M.identifier({text:`url`}),uuid:M.identifier({text:`uuid`}),value:M.identifier({text:`value`}),values:M.identifier({text:`values`}),words:M.identifier({text:`words`})},async:{argsAsync:M.identifier({text:`argsAsync`}),arrayAsync:M.identifier({text:`arrayAsync`}),awaitAsync:M.identifier({text:`awaitAsync`}),checkAsync:M.identifier({text:`checkAsync`}),checkItemsAsync:M.identifier({text:`checkItemsAsync`}),customAsync:M.identifier({text:`customAsync`}),exactOptionalAsync:M.identifier({text:`exactOptionalAsync`}),fallbackAsync:M.identifier({text:`fallbackAsync`}),forwardAsync:M.identifier({text:`forwardAsync`}),getDefaultsAsync:M.identifier({text:`getDefaultsAsync`}),getFallbacksAsync:M.identifier({text:`getFallbacksAsync`}),intersectAsync:M.identifier({text:`intersectAsync`}),lazyAsync:M.identifier({text:`lazyAsync`}),looseObjectAsync:M.identifier({text:`looseObjectAsync`}),looseTupleAsync:M.identifier({text:`looseTupleAsync`}),mapAsync:M.identifier({text:`mapAsync`}),nonNullableAsync:M.identifier({text:`nonNullableAsync`}),nonNullishAsync:M.identifier({text:`nonNullishAsync`}),nonOptionalAsync:M.identifier({text:`nonOptionalAsync`}),nullableAsync:M.identifier({text:`nullableAsync`}),nullishAsync:M.identifier({text:`nullishAsync`}),objectAsync:M.identifier({text:`objectAsync`}),objectWithRestAsync:M.identifier({text:`objectWithRestAsync`}),optionalAsync:M.identifier({text:`optionalAsync`}),parseAsync:M.identifier({text:`parseAsync`}),parserAsync:M.identifier({text:`parserAsync`}),partialAsync:M.identifier({text:`partialAsync`}),partialCheckAsync:M.identifier({text:`partialCheckAsync`}),pipeAsync:M.identifier({text:`pipeAsync`}),rawCheckAsync:M.identifier({text:`rawCheckAsync`}),rawTransformAsync:M.identifier({text:`rawTransformAsync`}),recordAsync:M.identifier({text:`recordAsync`}),requiredAsync:M.identifier({text:`requiredAsync`}),returnsAsync:M.identifier({text:`returnsAsync`}),safeParseAsync:M.identifier({text:`safeParseAsync`}),safeParserAsync:M.identifier({text:`safeParserAsync`}),setAsync:M.identifier({text:`setAsync`}),strictObjectAsync:M.identifier({text:`strictObjectAsync`}),strictTupleAsync:M.identifier({text:`strictTupleAsync`}),transformAsync:M.identifier({text:`transformAsync`}),tupleAsync:M.identifier({text:`tupleAsync`}),tupleWithRestAsync:M.identifier({text:`tupleWithRestAsync`}),undefinedableAsync:M.identifier({text:`undefinedableAsync`}),unionAsync:M.identifier({text:`unionAsync`}),variantAsync:M.identifier({text:`variantAsync`})},methods:{assert:M.identifier({text:`assert`}),config:M.identifier({text:`config`}),fallback:M.identifier({text:`fallback`}),flatten:M.identifier({text:`flatten`}),forward:M.identifier({text:`forward`}),getDefault:M.identifier({text:`getDefault`}),getDefaults:M.identifier({text:`getDefaults`}),getDescription:M.identifier({text:`getDescription`}),getFallback:M.identifier({text:`getFallback`}),getFallbacks:M.identifier({text:`getFallbacks`}),getMetadata:M.identifier({text:`getMetadata`}),getTitle:M.identifier({text:`getTitle`}),is:M.identifier({text:`is`}),keyof:M.identifier({text:`keyof`}),message:M.identifier({text:`message`}),omit:M.identifier({text:`omit`}),parse:M.identifier({text:`parse`}),parser:M.identifier({text:`parser`}),partial:M.identifier({text:`partial`}),pick:M.identifier({text:`pick`}),pipe:M.identifier({text:`pipe`}),required:M.identifier({text:`required`}),safeParse:M.identifier({text:`safeParse`}),safeParser:M.identifier({text:`safeParser`}),summarize:M.identifier({text:`summarize`}),unwrap:M.identifier({text:`unwrap`})},schemas:{any:M.identifier({text:`any`}),array:M.identifier({text:`array`}),bigInt:M.identifier({text:`bigint`}),blob:M.identifier({text:`blob`}),boolean:M.identifier({text:`boolean`}),custom:M.identifier({text:`custom`}),date:M.identifier({text:`date`}),enum:M.identifier({text:`enum`}),exactOptional:M.identifier({text:`exactOptional`}),file:M.identifier({text:`file`}),function:M.identifier({text:`function`}),instance:M.identifier({text:`instance`}),intersect:M.identifier({text:`intersect`}),lazy:M.identifier({text:`lazy`}),literal:M.identifier({text:`literal`}),looseObject:M.identifier({text:`looseObject`}),looseTuple:M.identifier({text:`looseTuple`}),map:M.identifier({text:`map`}),nan:M.identifier({text:`nan`}),never:M.identifier({text:`never`}),nonNullable:M.identifier({text:`nonNullable`}),nonNullish:M.identifier({text:`nonNullish`}),nonOptional:M.identifier({text:`nonOptional`}),null:M.identifier({text:`null`}),nullable:M.identifier({text:`nullable`}),nullish:M.identifier({text:`nullish`}),number:M.identifier({text:`number`}),object:M.identifier({text:`object`}),objectWithRest:M.identifier({text:`objectWithRest`}),optional:M.identifier({text:`optional`}),picklist:M.identifier({text:`picklist`}),promise:M.identifier({text:`promise`}),record:M.identifier({text:`record`}),set:M.identifier({text:`set`}),strictObject:M.identifier({text:`strictObject`}),strictTuple:M.identifier({text:`strictTuple`}),string:M.identifier({text:`string`}),symbol:M.identifier({text:`symbol`}),tuple:M.identifier({text:`tuple`}),tupleWithRest:M.identifier({text:`tupleWithRest`}),undefined:M.identifier({text:`undefined`}),undefinedable:M.identifier({text:`undefinedable`}),union:M.identifier({text:`union`}),unknown:M.identifier({text:`unknown`}),variant:M.identifier({text:`variant`}),void:M.identifier({text:`void`})},storages:{},types:{GenericSchema:M.identifier({text:`GenericSchema`})},utils:{}};var df=class{constructor(e){this.meta=e}createRequestValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`data`,e.id));if(!n)return;let r=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),i=`data`;return M.arrowFunction({async:!0,parameters:[{name:i}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:X.async.parseAsync}),parameters:[M.identifier({text:n.placeholder}),M.identifier({text:i})]})})})]})}createResponseValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`responses`,e.id));if(!n)return;let r=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),i=`data`;return M.arrowFunction({async:!0,parameters:[{name:i}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:X.async.parseAsync}),parameters:[M.identifier({text:n.placeholder}),M.identifier({text:i})]})})})]})}getSelector(...e){return[this.meta.name,...e]}};const ff=e=>{if(e.length>=2){if(e[0]===`components`){if(e[1]===`schemas`)return`schema`;if(e[1]===`parameters`)return`parameter`;if(e[1]===`requestBodies`)return`requestBody`}if(e[0]===`paths`)return`operation`;if(e[0]===`servers`)return`server`;if(e[0]===`webhooks`)return`webhook`}},pf={int16:{max:32767,maxError:`Invalid value: Expected int16 to be <= 2^15-1`,min:-32768,minError:`Invalid value: Expected int16 to be >= -2^15`,needsBigInt:!1},int32:{max:2147483647,maxError:`Invalid value: Expected int32 to be <= 2^31-1`,min:-2147483648,minError:`Invalid value: Expected int32 to be >= -2^31`,needsBigInt:!1},int64:{max:`9223372036854775807`,maxError:`Invalid value: Expected int64 to be <= 2^63-1`,min:`-9223372036854775808`,minError:`Invalid value: Expected int64 to be >= -2^63`,needsBigInt:!0},int8:{max:127,maxError:`Invalid value: Expected int8 to be <= 2^7-1`,min:-128,minError:`Invalid value: Expected int8 to be >= -2^7`,needsBigInt:!1},uint16:{max:65535,maxError:`Invalid value: Expected uint16 to be <= 2^16-1`,min:0,minError:`Invalid value: Expected uint16 to be >= 0`,needsBigInt:!1},uint32:{max:4294967295,maxError:`Invalid value: Expected uint32 to be <= 2^32-1`,min:0,minError:`Invalid value: Expected uint32 to be >= 0`,needsBigInt:!1},uint64:{max:`18446744073709551615`,maxError:`Invalid value: Expected uint64 to be <= 2^64-1`,min:`0`,minError:`Invalid value: Expected uint64 to be >= 0`,needsBigInt:!0},uint8:{max:255,maxError:`Invalid value: Expected uint8 to be <= 2^8-1`,min:0,minError:`Invalid value: Expected uint8 to be >= 0`,needsBigInt:!1}},mf=e=>e!==void 0&&e in pf,hf=e=>mf(e)&&pf[e].needsBigInt,gf=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},_f=({_path:e,operation:t,plugin:n,state:r})=>{if(n.config.requests.enabled){let i=new Set,a={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let r in t.parameters.header){let a=t.parameters.header[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`headers`))}Object.keys(e).length&&(a.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let r in t.parameters.path){let a=t.parameters.path[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`path`))}Object.keys(e).length&&(a.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let r in t.parameters.query){let a=t.parameters.query[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`query`))}Object.keys(e).length&&(a.properties.query={properties:e,required:n,type:`object`})}}t.body&&(a.properties.body=t.body.schema,t.body.required&&i.add(`body`)),a.required=[...i],Q({_path:e,plugin:n,schema:a,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(e)},name:T({config:n.config.requests,name:t.id}),selector:n.api.getSelector(`data`,t.id)})})}if(n.config.responses.enabled&&t.responses){let{response:i}=Rn(t);if(i){let a=[...e,`responses`];Q({_path:a,plugin:n,schema:i,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(a)},name:T({config:n.config.responses,name:t.id}),selector:n.api.getSelector(`responses`,t.id)})})}}},vf=({_path:e,operation:t,plugin:n,state:r})=>{if(n.config.webhooks.enabled){let i=new Set,a={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let r in t.parameters.header){let a=t.parameters.header[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`headers`))}Object.keys(e).length&&(a.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let r in t.parameters.path){let a=t.parameters.path[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`path`))}Object.keys(e).length&&(a.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let r in t.parameters.query){let a=t.parameters.query[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`query`))}Object.keys(e).length&&(a.properties.query={properties:e,required:n,type:`object`})}}t.body&&(a.properties.body=t.body.schema,t.body.required&&i.add(`body`)),a.required=[...i],Q({_path:e,plugin:n,schema:a,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(e)},name:T({config:n.config.webhooks,name:t.id}),selector:n.api.getSelector(`webhook-request`,t.id)})})}},Z=({pipes:e,plugin:t})=>{if(e.length===1)return e[0];let n=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.methods.pipe}),parameters:e})},yf=({_path:e,plugin:t,schema:n,state:r})=>{let i=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),a=M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.array}),o=[];if(n.items){n=N({schema:n});let i=n.items.map((n,i)=>Z({pipes:Q({_path:[...e,`items`,i],plugin:t,schema:n,state:r}),plugin:t}));if(i.length===1){let e=M.callExpression({functionName:a,parameters:i});o.push(e)}else{n.logicalOperator;let r=M.callExpression({functionName:a,parameters:[kf({_path:e,plugin:t,schema:{type:`unknown`}})]});o.push(r)}}else{let n=M.callExpression({functionName:a,parameters:[kf({_path:e,plugin:t,schema:{type:`unknown`}})]});o.push(n)}if(n.minItems===n.maxItems&&n.minItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.length}),parameters:[M.valueToExpression({value:n.minItems})]});o.push(e)}else{if(n.minItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.minLength}),parameters:[M.valueToExpression({value:n.minItems})]});o.push(e)}if(n.maxItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.maxLength}),parameters:[M.valueToExpression({value:n.maxItems})]});o.push(e)}}return Z({pipes:o,plugin:t})},bf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return typeof t.const==`boolean`?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.literal}),parameters:[M.ots.boolean(t.const)]}):M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.boolean})})},xf=({_path:e,plugin:t,schema:n})=>{let r=[],i=!1;for(let e of n.items??[])e.type===`string`&&typeof e.const==`string`?r.push(M.stringLiteral({text:e.const})):(e.type===`null`||e.const===null)&&(i=!0);if(!r.length)return kf({_path:e,plugin:t,schema:{type:`unknown`}});let a=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),o=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:X.schemas.picklist}),parameters:[M.arrayLiteralExpression({elements:r,multiLine:!1})]});return i&&(o=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:X.schemas.nullable}),parameters:[o]})),o},Sf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.never})})},Cf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.null})})},wf=({plugin:e,schema:t})=>{let n=t.format,r=t.type===`integer`,i=hf(n),a=mf(n)?pf[n]:null,o=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));if(t.const!==void 0&&t.const!==null){let e=t.const,r;if(typeof e==`number`&&!n)r=M.ots.number(e);else if(typeof e==`number`&&n)r=i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(e.toString())]}):M.ots.number(e);else if(typeof e==`string`&&i){let t=e.endsWith(`n`)?e.slice(0,-1):e;r=M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(t)]})}else if(typeof e==`bigint`){let t=e.toString(),n=t.endsWith(`n`)?t.slice(0,-1):t;r=M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(n)]})}else r=M.valueToExpression({value:e});return M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.literal}),parameters:[r]})}let s=[];if(i){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.union}),parameters:[M.arrayLiteralExpression({elements:[M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.number})}),M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.string})}),M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.bigInt})})],multiLine:!1})]});s.push(e);let t=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.transform}),parameters:[M.arrowFunction({parameters:[{name:`x`}],statements:M.callExpression({functionName:`BigInt`,parameters:[M.identifier({text:`x`})]})})]});s.push(t)}else{let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.number})});s.push(e)}if(!i&&r){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.integer})});s.push(e)}if(a){let e=a.min,t=a.max,n=a.minError,r=a.maxError,c=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.minValue}),parameters:[i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(e.toString())]}):M.ots.number(e),M.ots.string(n)]});s.push(c);let l=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.maxValue}),parameters:[i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(t.toString())]}):M.ots.number(t),M.ots.string(r)]});s.push(l)}if(t.exclusiveMinimum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.gtValue}),parameters:[gf({isBigInt:i,value:t.exclusiveMinimum})]});s.push(e)}else if(t.minimum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.minValue}),parameters:[gf({isBigInt:i,value:t.minimum})]});s.push(e)}if(t.exclusiveMaximum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.ltValue}),parameters:[gf({isBigInt:i,value:t.exclusiveMaximum})]});s.push(e)}else if(t.maximum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.maxValue}),parameters:[gf({isBigInt:i,value:t.maximum})]});s.push(e)}return Z({pipes:s,plugin:e})},Tf=({_path:e,plugin:t,schema:n,state:r})=>{let i=[],o=n.required??[];for(let s in n.properties){let c=n.properties[s],l=o.includes(s),u=Q({_path:[...e,`properties`,s],optional:!l,plugin:t,schema:c,state:r});E.lastIndex=0;let d;d=E.test(s)?s.startsWith(`-`)?a.factory.createStringLiteral(s):a.factory.createNumericLiteral(s):s,(s.match(/^[0-9]/)&&s.match(/\D+/g)||s.match(/\W/g))&&!s.startsWith(`'`)&&!s.endsWith(`'`)&&(d=`'${s}'`),i.push(M.propertyAssignment({initializer:Z({pipes:u,plugin:t}),name:d}))}let s=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));if(n.additionalProperties&&n.additionalProperties.type===`object`&&!Object.keys(i).length){let i=Q({_path:[...e,`additionalProperties`],plugin:t,schema:n.additionalProperties,state:r});return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.string}),parameters:[]}),Z({pipes:i,plugin:t})]})}}let c=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.object}),parameters:[a.factory.createObjectLiteralExpression(i,!0)]});return{anyType:X.types.GenericSchema.text,expression:c}},Ef=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));if(typeof t.const==`string`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.literal}),parameters:[M.ots.string(t.const)]});let r=[],i=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.string})});if(r.push(i),t.format)switch(t.format){case`date`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.isoDate})}));break;case`date-time`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.isoTimestamp})}));break;case`ipv4`:case`ipv6`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.ip})}));break;case`uri`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.url})}));break;case`email`:case`time`:case`uuid`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:M.identifier({text:t.format})})}));break}if(t.minLength===t.maxLength&&t.minLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.length}),parameters:[M.valueToExpression({value:t.minLength})]});r.push(e)}else{if(t.minLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.minLength}),parameters:[M.valueToExpression({value:t.minLength})]});r.push(e)}if(t.maxLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.maxLength}),parameters:[M.valueToExpression({value:t.maxLength})]});r.push(e)}}if(t.pattern){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]});r.push(e)}return Z({pipes:r,plugin:e})},Df=({_path:e,plugin:t,schema:n,state:r})=>{let i=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));if(n.const&&Array.isArray(n.const)){let e=n.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.literal}),parameters:[M.valueToExpression({value:e})]}));return M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]})}if(n.items){let a=n.items.map((n,i)=>Z({pipes:Q({_path:[...e,`items`,i],plugin:t,schema:n,state:r}),plugin:t}));return M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]})}return kf({_path:e,plugin:t,schema:{type:`unknown`}})},Of=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.undefined})})},kf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.unknown})})},Af=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.void})})},jf=({_path:e,plugin:t,schema:n,state:r})=>{switch(n.type){case`array`:return{expression:yf({_path:e,plugin:t,schema:n,state:r})};case`boolean`:return{expression:bf({_path:e,plugin:t,schema:n})};case`enum`:return{expression:xf({_path:e,plugin:t,schema:n})};case`integer`:case`number`:return{expression:wf({_path:e,plugin:t,schema:n})};case`never`:return{expression:Sf({_path:e,plugin:t,schema:n})};case`null`:return{expression:Cf({_path:e,plugin:t,schema:n})};case`object`:return Tf({_path:e,plugin:t,schema:n,state:r});case`string`:return n.format===`int64`||n.format===`uint64`?{expression:wf({_path:e,plugin:t,schema:n})}:{expression:Ef({_path:e,plugin:t,schema:n})};case`tuple`:return{expression:Df({_path:e,plugin:t,schema:n,state:r})};case`undefined`:return{expression:Of({_path:e,plugin:t,schema:n})};case`unknown`:return{expression:kf({_path:e,plugin:t,schema:n})};case`void`:return{expression:Af({_path:e,plugin:t,schema:n})}}},Q=({$ref:e,_path:t=[],optional:n,plugin:r,schema:i,state:a,symbol:o})=>{let s,c=[];if(e&&(a.circularReferenceTracker.add(e),!o)){let t=r.api.getSelector(`ref`,e);r.getSymbol(t)||(o=r.referenceSymbol(t))}let l=r.referenceSymbol(r.api.getSelector(`import`,`valibot`));if(i.$ref){let e=a.circularReferenceTracker.has(i.$ref),t=r.api.getSelector(`ref`,i.$ref),n=r.getSymbol(t);if(!n){let e=r.context.resolveIrRef(i.$ref),o=Q({$ref:i.$ref,_path:Zn(i.$ref),plugin:r,schema:e,state:a});c.push(...o),n=r.getSymbol(t)}if(n){let t=M.identifier({text:n.placeholder});if(e){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:t})]})]});c.push(e),a.hasCircularReference=!0}else c.push(t)}}else if(i.type){let e=jf({_path:t,plugin:r,schema:i,state:a});if(s=e.anyType,c.push(e.expression),r.config.metadata&&i.description){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.actions.metadata}),parameters:[M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:i.description})}]})]});c.push(e)}}else if(i.items)if(i=N({schema:i}),i.items){let e=i.items.map((e,n)=>Z({pipes:Q({_path:[...t,`items`,n],plugin:r,schema:e,state:a}),plugin:r}));if(i.logicalOperator===`and`){let t=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.intersect}),parameters:[M.arrayLiteralExpression({elements:e})]});c.push(t)}else{let t=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.union}),parameters:[M.arrayLiteralExpression({elements:e})]});c.push(t)}}else{let e=Q({_path:t,plugin:r,schema:i,state:a});c.push(...e)}else{let e=jf({_path:t,plugin:r,schema:{type:`unknown`},state:a});s=e.anyType,c.push(e.expression)}if(e&&a.circularReferenceTracker.delete(e),c.length&&i.accessScope===`read`){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.actions.readonly})});c.push(e)}if(c.length){let e;i.default!==void 0&&(e=gf({isBigInt:i.type===`integer`&&i.format===`int64`,value:i.default}),e&&(c=[M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.optional}),parameters:[Z({pipes:c,plugin:r}),e]})])),n&&!e&&(c=[M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.optional}),parameters:[Z({pipes:c,plugin:r})]})])}if(o){e&&(o=r.registerSymbol({exported:!0,meta:{resourceType:ff(t)},name:T({config:{case:a.nameCase,name:a.nameTransformer},name:I(e)}),selector:r.api.getSelector(`ref`,e)}));let n=M.constVariable({comment:r.config.comments?Nu({schema:i}):void 0,exportConst:o.exported,expression:Z({pipes:c,plugin:r}),name:o.placeholder,typeName:a.hasCircularReference?M.propertyAccessExpression({expression:l.placeholder,name:s||X.types.GenericSchema.text}):void 0});return r.setSymbolValue(o,n),[]}return c},Mf={api:new df({name:`valibot`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1,metadata:!1},handler:({plugin:e})=>{e.registerSymbol({external:`valibot`,meta:{importKind:`namespace`},name:`v`,selector:e.api.getSelector(`import`,`valibot`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{let n={circularReferenceTracker:new Set,hasCircularReference:!1,nameCase:e.config.definitions.case,nameTransformer:e.config.definitions.name};switch(t.type){case`operation`:_f({_path:t._path,operation:t.operation,plugin:e,state:n});break;case`parameter`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.parameter.schema,state:n});break;case`requestBody`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.requestBody.schema,state:n});break;case`schema`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.schema,state:n});break;case`webhook`:vf({_path:t._path,operation:t.operation,plugin:e,state:n});break}})},name:`valibot`,resolveConfig:(e,t)=>{e.config.definitions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.definitions}),e.config.requests=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}Data`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.requests}),e.config.responses=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}Response`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.responses}),e.config.webhooks=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}WebhookRequest`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.webhooks})},tags:[`validator`]},$={ZodMiniOptional:M.identifier({text:`ZodMiniOptional`}),ZodOptional:M.identifier({text:`ZodOptional`}),_default:M.identifier({text:`_default`}),and:M.identifier({text:`and`}),array:M.identifier({text:`array`}),bigint:M.identifier({text:`bigint`}),boolean:M.identifier({text:`boolean`}),check:M.identifier({text:`check`}),coerce:M.identifier({text:`coerce`}),date:M.identifier({text:`date`}),datetime:M.identifier({text:`datetime`}),default:M.identifier({text:`default`}),describe:M.identifier({text:`describe`}),email:M.identifier({text:`email`}),enum:M.identifier({text:`enum`}),globalRegistry:M.identifier({text:`globalRegistry`}),gt:M.identifier({text:`gt`}),gte:M.identifier({text:`gte`}),infer:M.identifier({text:`infer`}),int:M.identifier({text:`int`}),intersection:M.identifier({text:`intersection`}),ip:M.identifier({text:`ip`}),ipv4:M.identifier({text:`ipv4`}),ipv6:M.identifier({text:`ipv6`}),iso:M.identifier({text:`iso`}),lazy:M.identifier({text:`lazy`}),length:M.identifier({text:`length`}),literal:M.identifier({text:`literal`}),lt:M.identifier({text:`lt`}),lte:M.identifier({text:`lte`}),max:M.identifier({text:`max`}),maxLength:M.identifier({text:`maxLength`}),min:M.identifier({text:`min`}),minLength:M.identifier({text:`minLength`}),never:M.identifier({text:`never`}),null:M.identifier({text:`null`}),nullable:M.identifier({text:`nullable`}),number:M.identifier({text:`number`}),object:M.identifier({text:`object`}),optional:M.identifier({text:`optional`}),parseAsync:M.identifier({text:`parseAsync`}),readonly:M.identifier({text:`readonly`}),record:M.identifier({text:`record`}),regex:M.identifier({text:`regex`}),register:M.identifier({text:`register`}),string:M.identifier({text:`string`}),time:M.identifier({text:`time`}),tuple:M.identifier({text:`tuple`}),undefined:M.identifier({text:`undefined`}),union:M.identifier({text:`union`}),unknown:M.identifier({text:`unknown`}),url:M.identifier({text:`url`}),uuid:M.identifier({text:`uuid`}),void:M.identifier({text:`void`})};var Nf=class{constructor(e){this.meta=e}createRequestValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`data`,e.id));if(!n)return;let r=`data`;return M.arrowFunction({async:!0,parameters:[{name:r}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.parseAsync}),parameters:[M.identifier({text:r})]})})})]})}createResponseValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`responses`,e.id));if(!n)return;let r=`data`;return M.arrowFunction({async:!0,parameters:[{name:r}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.parseAsync}),parameters:[M.identifier({text:r})]})})})]})}getSelector(...e){return[this.meta.name,...e]}};const Pf=({plugin:e,schema:t,symbol:n,typeInferSymbol:r,zodSchema:i})=>{let a=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),o=M.constVariable({comment:e.config.comments?Nu({schema:t}):void 0,exportConst:n.exported,expression:i.expression,name:n.placeholder,typeName:i.typeName?M.propertyAccessExpression({expression:a.placeholder,name:i.typeName}):void 0});if(e.setSymbolValue(n,o),r){let t=M.typeAliasDeclaration({exportType:r.exported,name:r.placeholder,type:M.typeReferenceNode({typeArguments:[M.typeOfExpression({text:n.placeholder})],typeName:M.propertyAccessExpression({expression:a.placeholder,name:$.infer})})});e.setSymbolValue(r,t)}},Ff=({plugin:e})=>{let t=e.package.getVersion(`zod`);if(t&&e.package.satisfies(t,`<4.0.0`))switch(e.config.compatibilityVersion){case 3:default:return`zod`;case 4:return`zod/v4`;case`mini`:return`zod/v4-mini`}switch(e.config.compatibilityVersion){case 3:return`zod/v3`;case 4:default:return`zod`;case`mini`:return`zod/mini`}},If=({getZodSchema:e,operation:t,plugin:n})=>{if(n.config.requests.enabled){let r=new Set,i={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let i in t.parameters.header){let a=t.parameters.header[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`headers`))}Object.keys(e).length&&(i.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let i in t.parameters.path){let a=t.parameters.path[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`path`))}Object.keys(e).length&&(i.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let i in t.parameters.query){let a=t.parameters.query[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`query`))}Object.keys(e).length&&(i.properties.query={properties:e,required:n,type:`object`})}}t.body&&(i.properties.body=t.body.schema,t.body.required&&r.add(`body`)),i.required=[...r];let a=e(i);Pf({plugin:n,schema:i,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.requests,name:t.id}),selector:n.api.getSelector(`data`,t.id)}),typeInferSymbol:n.config.requests.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.requests.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-data`,t.id)}):void 0,zodSchema:a})}if(n.config.responses.enabled&&t.responses){let{response:r}=Rn(t);if(r){let i=e(r);Pf({plugin:n,schema:r,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.responses,name:t.id}),selector:n.api.getSelector(`responses`,t.id)}),typeInferSymbol:n.config.responses.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.responses.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-responses`,t.id)}):void 0,zodSchema:i})}}},Lf=({getZodSchema:e,operation:t,plugin:n})=>{if(n.config.webhooks.enabled){let r=new Set,i={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let i in t.parameters.header){let a=t.parameters.header[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`headers`))}Object.keys(e).length&&(i.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let i in t.parameters.path){let a=t.parameters.path[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`path`))}Object.keys(e).length&&(i.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let i in t.parameters.query){let a=t.parameters.query[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`query`))}Object.keys(e).length&&(i.properties.query={properties:e,required:n,type:`object`})}}t.body&&(i.properties.body=t.body.schema,t.body.required&&r.add(`body`)),i.required=[...r];let a=e(i);Pf({plugin:n,schema:i,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.webhooks,name:t.id}),selector:n.api.getSelector(`webhook-request`,t.id)}),typeInferSymbol:n.config.webhooks.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.webhooks.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-webhook-request`,t.id)}):void 0,zodSchema:a})}},Rf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={},a=M.propertyAccessExpression({expression:r.placeholder,name:$.array});if(!t.items)i.expression=M.callExpression({functionName:a,parameters:[Yf({plugin:e,schema:{type:`unknown`}}).expression]});else{t=N({schema:t});let o=t.items.map(t=>{let r=Qf({plugin:e,schema:t,state:n});return r.hasCircularReference&&(i.hasCircularReference=!0),r.expression});if(o.length===1)i.expression=M.callExpression({functionName:a,parameters:o});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:o});else{n=o[0];for(let e=1;e<o.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:[n,o[e]]})}i.expression=M.callExpression({functionName:a,parameters:[n]})}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:o})]})]})}let o=[];return t.minItems===t.maxItems&&t.minItems!==void 0?o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]})):(t.minItems!==void 0&&o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.minLength}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.maxLength}),parameters:[M.valueToExpression({value:t.maxItems})]}))),o.length&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.check}),parameters:o})),i},zf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={};return typeof t.const==`boolean`?(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}),r):(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.boolean})}),r)},Bf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={},i=[],a=[],o=!1,s=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});i.push(t),a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){s=!1;let t=M.ots.number(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){s=!1;let t=M.ots.boolean(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(o=!0);return a.length?(s&&i.length>0?r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:!1})]}):a.length===1?r.expression=a[0]:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:a,multiLine:a.length>3})]}),o&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.nullable}),parameters:[r.expression]})),r):Yf({plugin:e,schema:{type:`unknown`}})},Vf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.never})}),n},Hf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.null})}),n},Uf=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},Wf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={},i=t.type===`integer`&&t.format===`int64`;if(typeof t.const==`number`)return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]}),r;r.expression=M.callExpression({functionName:i?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:n.placeholder,name:$.number})}),!i&&t.type===`integer`&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.int})}));let a=[];return t.exclusiveMinimum===void 0?t.minimum!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.gte}),parameters:[Uf({isBigInt:i,value:t.minimum})]})):a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.gt}),parameters:[Uf({isBigInt:i,value:t.exclusiveMinimum})]})),t.exclusiveMaximum===void 0?t.maximum!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.lte}),parameters:[Uf({isBigInt:i,value:t.maximum})]})):a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.lt}),parameters:[Uf({isBigInt:i,value:t.exclusiveMaximum})]})),a.length&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.check}),parameters:a})),r},Gf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={},o=[],s=t.required??[];for(let c in t.properties){let l=t.properties[c],u=Qf({optional:!s.includes(c),plugin:e,schema:l,state:n});u.hasCircularReference&&(i.hasCircularReference=!0),E.lastIndex=0;let d;d=E.test(c)?c.startsWith(`-`)?a.factory.createStringLiteral(c):a.factory.createNumericLiteral(c):c,(c.match(/^[0-9]/)&&c.match(/\D+/g)||c.match(/\W/g))&&!c.startsWith(`'`)&&!c.endsWith(`'`)&&(d=`'${c}'`),u.hasCircularReference?o.push(M.getAccessorDeclaration({name:d,returnType:u.typeName?M.propertyAccessExpression({expression:r.placeholder,name:u.typeName}):void 0,statements:[M.returnStatement({expression:u.expression})]})):o.push(M.propertyAssignment({initializer:u.expression,name:d}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let a=Qf({plugin:e,schema:t.additionalProperties,state:n});return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.string}),parameters:[]}),a.expression]}),a.hasCircularReference&&(i.hasCircularReference=!0),i}return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(o,!0)]}),i},Kf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={};if(typeof t.const==`string`)return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]}),r;r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.string})});let i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.date})});break;case`date-time`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.email})});break;case`ipv4`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.ipv4})});break;case`ipv6`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.ipv6})});break;case`time`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.time})});break;case`uri`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.url})});break;case`uuid`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.uuid})});break}let a=[];return t.minLength===t.maxLength&&t.minLength!==void 0?a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]})):(t.minLength!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.minLength}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.maxLength}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),a.length&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.check}),parameters:a})),r},qf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={};if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),i}let a=[];for(let r of t.items??[]){let t=Qf({plugin:e,schema:r,state:n});a.push(t.expression),t.hasCircularReference&&(i.hasCircularReference=!0)}return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),i},Jf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.undefined})}),n},Yf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.unknown})}),n},Xf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.void})}),n},Zf=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return Rf({plugin:e,schema:t,state:n});case`boolean`:return zf({plugin:e,schema:t});case`enum`:return Bf({plugin:e,schema:t});case`integer`:case`number`:return Wf({plugin:e,schema:t});case`never`:return Vf({plugin:e,schema:t});case`null`:return Hf({plugin:e,schema:t});case`object`:return Gf({plugin:e,schema:t,state:n});case`string`:return Kf({plugin:e,schema:t});case`tuple`:return qf({plugin:e,schema:t,state:n});case`undefined`:return Jf({plugin:e,schema:t});case`unknown`:return Yf({plugin:e,schema:t});case`void`:return Xf({plugin:e,schema:t})}},Qf=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref),o=r.currentReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let s=t.api.getSelector(`ref`,n.$ref),c=t.getSymbol(s);if(e)c||=t.referenceSymbol(s),o?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({returnType:M.keywordTypeNode({keyword:`any`}),statements:[M.returnStatement({expression:M.identifier({text:c.placeholder})})]})]}):i.expression=M.identifier({text:c.placeholder}),i.hasCircularReference=n.circular;else{if(c)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);$f({id:n.$ref,plugin:t,schema:e,state:r})}let e=t.referenceSymbol(s);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=Zf({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.register}),parameters:[M.propertyAccessExpression({expression:a.placeholder,name:$.globalRegistry}),M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:n.description})}]})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>Qf({plugin:t,schema:e,state:r}));if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e.map(e=>e.expression)}):(i.expression=e[0].expression,e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:[i.expression,e.hasCircularReference?M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:e.expression})]})]}):e.expression]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e.map(e=>e.expression)})]})}else i=Qf({plugin:t,schema:n,state:r});else i.expression=Zf({plugin:t,schema:{type:`unknown`},state:r}).expression;if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.readonly}),parameters:[i.expression]})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.optional}),parameters:[i.expression]}),i.typeName=$.ZodMiniOptional),n.default!==void 0)){let e=Uf({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$._default}),parameters:[i.expression,e]}))}return i},$f=({id:e,plugin:t,schema:n,state:r})=>{let i={circularReferenceTracker:[e],hasCircularReference:!1,...r,currentReferenceTracker:[e]},a=t.api.getSelector(`ref`,e),o=t.getSymbol(a);if(o&&!t.getSymbolValue(o))return;let s=Qf({plugin:t,schema:n,state:i}),c=I(e);o=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:c}),selector:a});let l=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:c}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:o,typeInferSymbol:l,zodSchema:s})},ep=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),meta:{importKind:`namespace`},name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>Qf({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:$f({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:$f({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:$f({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>Qf({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},tp=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=M.propertyAccessExpression({expression:r.placeholder,name:$.array}),a,o=!1;if(!t.items)a=M.callExpression({functionName:i,parameters:[fp({plugin:e,schema:{type:`unknown`}})]});else{t=N({schema:t});let s=t.items.map(t=>{let r=hp({plugin:e,schema:t,state:n});return r.hasCircularReference&&(o=!0),r.expression});if(s.length===1)a=M.callExpression({functionName:i,parameters:s});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:s});else{n=s[0];for(let e=1;e<s.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:n,name:$.and}),parameters:[s[e]]})}a=M.callExpression({functionName:i,parameters:[n]})}else a=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:s})]})]})}return t.minItems===t.maxItems&&t.minItems!==void 0?a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]}):(t.minItems!==void 0&&(a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.min}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&(a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.max}),parameters:[M.valueToExpression({value:t.maxItems})]}))),{expression:a,hasCircularReference:o}},np=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`boolean`?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}):M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.boolean})})},rp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r=[],i=[],a=!1,o=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});r.push(t),i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){o=!1;let t=M.ots.number(e.const);i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){o=!1;let t=M.ots.boolean(e.const);i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(a=!0);if(!i.length)return fp({plugin:e,schema:{type:`unknown`}});let s;return s=o&&r.length>0?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:r,multiLine:!1})]}):i.length===1?i[0]:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:i.length>3})]}),a&&(s=M.callExpression({functionName:M.propertyAccessExpression({expression:s,name:$.nullable})})),s},ip=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.never})})},ap=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.null})})},op=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},sp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r=t.type===`integer`&&t.format===`int64`;if(typeof t.const==`number`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]});let i=M.callExpression({functionName:r?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:n.placeholder,name:$.number})});return!r&&t.type===`integer`&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.int})})),t.exclusiveMinimum===void 0?t.minimum!==void 0&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.gte}),parameters:[op({isBigInt:r,value:t.minimum})]})):i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.gt}),parameters:[op({isBigInt:r,value:t.exclusiveMinimum})]}),t.exclusiveMaximum===void 0?t.maximum!==void 0&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.lte}),parameters:[op({isBigInt:r,value:t.maximum})]})):i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.lt}),parameters:[op({isBigInt:r,value:t.exclusiveMaximum})]}),i},cp=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=!1,o=[],s=t.required??[];for(let r in t.properties){let c=t.properties[r],l=hp({optional:!s.includes(r),plugin:e,schema:c,state:n});l.hasCircularReference&&(i=!0),E.lastIndex=0;let u;u=E.test(r)?r.startsWith(`-`)?a.factory.createStringLiteral(r):a.factory.createNumericLiteral(r):r,(r.match(/^[0-9]/)&&r.match(/\D+/g)||r.match(/\W/g))&&!r.startsWith(`'`)&&!r.endsWith(`'`)&&(u=`'${r}'`),o.push(M.propertyAssignment({initializer:l.expression,name:u}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let i=hp({plugin:e,schema:t.additionalProperties,state:n});return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.record}),parameters:[i.expression]}),hasCircularReference:i.hasCircularReference}}return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(o,!0)]}),hasCircularReference:i}},lp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(typeof t.const==`string`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]});let r=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.string})}),i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.date})});break;case`date-time`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.email})});break;case`ipv4`:case`ipv6`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.ip})});break;case`time`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.time})});break;case`uri`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.url})});break;case`uuid`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.uuid})});break}return t.minLength===t.maxLength&&t.minLength!==void 0?r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]}):(t.minLength!==void 0&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.min}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.max}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),r},up=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=!1;if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return{expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),hasCircularReference:i}}let a=[];for(let r of t.items??[]){let t=hp({plugin:e,schema:r,state:n});t.hasCircularReference&&(i=!0),a.push(t.expression)}return{expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),hasCircularReference:i}},dp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.undefined})})},fp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.unknown})})},pp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.void})})},mp=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return tp({plugin:e,schema:t,state:n});case`boolean`:return{expression:np({plugin:e,schema:t})};case`enum`:return{expression:rp({plugin:e,schema:t})};case`integer`:case`number`:return{expression:sp({plugin:e,schema:t})};case`never`:return{expression:ip({plugin:e,schema:t})};case`null`:return{expression:ap({plugin:e,schema:t})};case`object`:return cp({plugin:e,schema:t,state:n});case`string`:return{expression:lp({plugin:e,schema:t})};case`tuple`:return up({plugin:e,schema:t,state:n});case`undefined`:return{expression:dp({plugin:e,schema:t})};case`unknown`:return{expression:fp({plugin:e,schema:t})};case`void`:return{expression:pp({plugin:e,schema:t})}}},hp=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let o=t.api.getSelector(`ref`,n.$ref),s=t.getSymbol(o);if(e)s||=t.referenceSymbol(o),i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:M.identifier({text:s.placeholder})})]})]}),i.hasCircularReference=n.circular;else{if(s)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);gp({id:n.$ref,plugin:t,schema:e,state:{...r,currentReferenceTracker:[n.$ref]}})}let e=t.referenceSymbol(o);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=mp({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,i.typeName=e.anyType,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.describe}),parameters:[M.stringLiteral({text:n.description})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>{let n=hp({plugin:t,schema:e,state:r});return n.hasCircularReference&&(i.hasCircularReference=!0),n.expression});if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e}):(i.expression=e[0],e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.and}),parameters:[e]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e})]})}else i=hp({plugin:t,schema:n,state:r});else{let e=mp({plugin:t,schema:{type:`unknown`},state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,i.typeName=e.anyType}if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.readonly})})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.optional})})),n.default!==void 0)){let e=op({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.default}),parameters:[e]}))}return i.hasCircularReference?i.typeName||=`ZodTypeAny`:i.typeName&&=void 0,i},gp=({id:e,plugin:t,schema:n,state:r})=>{r||={circularReferenceTracker:[e],currentReferenceTracker:[e],hasCircularReference:!1};let i=t.api.getSelector(`ref`,e),a=t.getSymbol(i);if(a)return;let o=hp({plugin:t,schema:n,state:r}),s=I(e);a=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:s}),selector:i});let c=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:s}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:a,typeInferSymbol:c,zodSchema:o})},_p=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>hp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:gp({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:gp({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:gp({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>hp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},vp=({plugin:e,schema:t,state:n})=>{let r={},i=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),a=M.propertyAccessExpression({expression:i.placeholder,name:$.array});if(!t.items)r.expression=M.callExpression({functionName:a,parameters:[kp({plugin:e,schema:{type:`unknown`}}).expression]});else{t=N({schema:t});let o=t.items.map(t=>{let i=Mp({plugin:e,schema:t,state:n});return i.hasCircularReference&&(r.hasCircularReference=!0),i.expression});if(o.length===1)r.expression=M.callExpression({functionName:a,parameters:o});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.intersection}),parameters:o});else{n=o[0];for(let e=1;e<o.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:n,name:$.and}),parameters:[o[e]]})}r.expression=M.callExpression({functionName:a,parameters:[n]})}else r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:o})]})]})}return t.minItems===t.maxItems&&t.minItems!==void 0?r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]}):(t.minItems!==void 0&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.min}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.max}),parameters:[M.valueToExpression({value:t.maxItems})]}))),r},yp=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`boolean`?(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}),n):(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.boolean})}),n)},bp=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=[],a=[],o=!1,s=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});i.push(t),a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){s=!1;let t=M.ots.number(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){s=!1;let t=M.ots.boolean(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(o=!0);return a.length?(s&&i.length>0?n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:!1})]}):a.length===1?n.expression=a[0]:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:a,multiLine:a.length>3})]}),o&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.nullable}),parameters:[n.expression]})),n):kp({plugin:e,schema:{type:`unknown`}})},xp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.never})}),t},Sp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.null})}),t},Cp=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},wp=({plugin:e,schema:t})=>{let n={},r=t.type===`integer`&&t.format===`int64`,i=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`number`?(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]}),n):(n.expression=M.callExpression({functionName:r?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:i.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:i.placeholder,name:$.number})}),!r&&t.type===`integer`&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.int})})),t.exclusiveMinimum===void 0?t.minimum!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.gte}),parameters:[Cp({isBigInt:r,value:t.minimum})]})):n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.gt}),parameters:[Cp({isBigInt:r,value:t.exclusiveMinimum})]}),t.exclusiveMaximum===void 0?t.maximum!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.lte}),parameters:[Cp({isBigInt:r,value:t.maximum})]})):n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.lt}),parameters:[Cp({isBigInt:r,value:t.exclusiveMaximum})]}),n)},Tp=({plugin:e,schema:t,state:n})=>{let r={},i=[],o=t.required??[],s=e.referenceSymbol(e.api.getSelector(`import`,`zod`));for(let c in t.properties){let l=t.properties[c],u=Mp({optional:!o.includes(c),plugin:e,schema:l,state:n});u.hasCircularReference&&(r.hasCircularReference=!0),E.lastIndex=0;let d;d=E.test(c)?c.startsWith(`-`)?a.factory.createStringLiteral(c):a.factory.createNumericLiteral(c):c,(c.match(/^[0-9]/)&&c.match(/\D+/g)||c.match(/\W/g))&&!c.startsWith(`'`)&&!c.endsWith(`'`)&&(d=`'${c}'`),u.hasCircularReference?i.push(M.getAccessorDeclaration({name:d,returnType:u.typeName?M.propertyAccessExpression({expression:s.placeholder,name:u.typeName}):void 0,statements:[M.returnStatement({expression:u.expression})]})):i.push(M.propertyAssignment({initializer:u.expression,name:d}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let i=Mp({plugin:e,schema:t.additionalProperties,state:n});return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.string}),parameters:[]}),i.expression]}),i.hasCircularReference&&(r.hasCircularReference=!0),r.hasCircularReference?{...r,typeName:`ZodType`}:r}return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(i,!0)]}),r.hasCircularReference?{...r,typeName:`ZodType`}:r},Ep=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(typeof t.const==`string`)return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]}),n;n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.string})});let i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.date})});break;case`date-time`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.email})});break;case`ipv4`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.ipv4})});break;case`ipv6`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.ipv6})});break;case`time`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.time})});break;case`uri`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.url})});break;case`uuid`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.uuid})});break}return t.minLength===t.maxLength&&t.minLength!==void 0?n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]}):(t.minLength!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.min}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.max}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),n},Dp=({plugin:e,schema:t,state:n})=>{let r={},i=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),r}let a=[];for(let i of t.items??[]){let t=Mp({plugin:e,schema:i,state:n});a.push(t.expression),t.hasCircularReference&&(r.hasCircularReference=!0)}return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),r},Op=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.undefined})}),t},kp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.unknown})}),t},Ap=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.void})}),t},jp=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return vp({plugin:e,schema:t,state:n});case`boolean`:return yp({plugin:e,schema:t});case`enum`:return bp({plugin:e,schema:t});case`integer`:case`number`:return wp({plugin:e,schema:t});case`never`:return xp({plugin:e,schema:t});case`null`:return Sp({plugin:e,schema:t});case`object`:return Tp({plugin:e,schema:t,state:n});case`string`:return Ep({plugin:e,schema:t});case`tuple`:return Dp({plugin:e,schema:t,state:n});case`undefined`:return Op({plugin:e,schema:t});case`unknown`:return kp({plugin:e,schema:t});case`void`:return Ap({plugin:e,schema:t})}},Mp=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref),o=r.currentReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let s=t.api.getSelector(`ref`,n.$ref),c=t.getSymbol(s);if(e)c||=t.referenceSymbol(s),o?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({returnType:M.keywordTypeNode({keyword:`any`}),statements:[M.returnStatement({expression:M.identifier({text:c.placeholder})})]})]}):i.expression=M.identifier({text:c.placeholder}),i.hasCircularReference=n.circular;else{if(c)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);Np({id:n.$ref,plugin:t,schema:e,state:r})}let e=t.referenceSymbol(s);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=jp({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.register}),parameters:[M.propertyAccessExpression({expression:a.placeholder,name:$.globalRegistry}),M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:n.description})}]})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>Mp({plugin:t,schema:e,state:r}));if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e.map(e=>e.expression)}):(i.expression=e[0].expression,e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.and}),parameters:[e.hasCircularReference?M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:e.expression})]})]}):e.expression]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e.map(e=>e.expression)})]})}else i=Mp({plugin:t,schema:n,state:r});else i.expression=jp({plugin:t,schema:{type:`unknown`},state:r}).expression;if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.readonly})})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.optional}),parameters:[i.expression]}),i.typeName=$.ZodOptional),n.default!==void 0)){let e=Cp({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.default}),parameters:[e]}))}return i},Np=({id:e,plugin:t,schema:n,state:r})=>{let i={circularReferenceTracker:[e],hasCircularReference:!1,...r,currentReferenceTracker:[e]},a=t.api.getSelector(`ref`,e),o=t.getSymbol(a);if(o&&!t.getSymbolValue(o))return;let s=Mp({plugin:t,schema:n,state:i}),c=I(e);o=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:c}),selector:a});let l=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:c}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:o,typeInferSymbol:l,zodSchema:s})},Pp=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>Mp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:Np({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:Np({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:Np({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>Mp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},Fp={api:new Nf({name:`zod`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1,metadata:!1},handler:e=>{let{plugin:t}=e;switch(t.config.compatibilityVersion){case 3:return _p(e);case 4:return Pp(e);case`mini`:return ep(e);default:return Pp(e)}},name:`zod`,resolveConfig:(e,n)=>{let r=n.package.getVersion(`zod`),i=()=>r&&(r.major===4||r.major===3)?r.major:4,a=e=>{if(!e)return i();if(!r)return e;if((e===4||e===3||e===`mini`)&&!n.package.satisfies(r,`>=3.25.0 <5.0.0`)){let n=i();return console.warn(`🔌 ${t.yellow(`Warning:`)} Installed ${t.cyan(`zod`)} ${t.cyan(`v${r.version}`)} does not support compatibility version ${t.yellow(String(e))}, using ${t.yellow(String(n))}.`),n}return e};e.config.compatibilityVersion=a(e.config.compatibilityVersion),e.config.dates=n.valueToObject({defaultValue:{local:!1,offset:!1},value:e.config.dates}),e.config.types=n.valueToObject({defaultValue:{infer:{case:`PascalCase`,enabled:!1}},mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.config.types}),e.config.definitions=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}ZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.definitions}),e.config.requests=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}Data`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}DataZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.requests}),e.config.responses=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}Response`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}ResponseZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.responses}),e.config.webhooks=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}WebhookRequest`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}WebhookRequestZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.webhooks})},tags:[`validator`]},Ip={"@angular/common":Wc,"@hey-api/client-angular":ol,"@hey-api/client-axios":cl,"@hey-api/client-fetch":ul,"@hey-api/client-next":fl,"@hey-api/client-nuxt":ml,"@hey-api/client-ofetch":gl,"@hey-api/schemas":Il,"@hey-api/sdk":iu,"@hey-api/transformers":ju,"@hey-api/typescript":ed,"@pinia/colada":_d,"@tanstack/angular-query-experimental":nf,"@tanstack/react-query":rf,"@tanstack/solid-query":af,"@tanstack/svelte-query":of,"@tanstack/vue-query":sf,fastify:uf,"legacy/angular":_l,"legacy/axios":vl,"legacy/fetch":yl,"legacy/node":bl,"legacy/xhr":xl,valibot:Mf,zod:Fp},Lp=[`@hey-api/typescript`,`@hey-api/sdk`],Rp=({dependencies:e,userPlugins:t,userPluginsConfig:n})=>{let r=new Set,i=new Set,a={},o=s=>{if(r.has(s))throw Error(`Circular reference detected at '${s}'`);if(i.has(s))return;r.add(s);let c=Ip[s],l=n[s];if(!c&&!l)throw Error(`unknown plugin dependency "${s}" - do you need to register a custom plugin with this name?`);let u={...c,...l,config:{...c?.config,...l?.config},dependencies:new Set([...c?.dependencies||[],...l?.dependencies||[]])};if(u.resolveConfig){let r={package:Bn(e),pluginByTag:(e,r={})=>{let{defaultPlugin:i,errorMessage:a}=r;for(let r of t){let t=Ip[r]||n[r];if(t&&t.tags?.includes(e)&&r!==s)return r}if(i){let t=Ip[i]||n[i];if(t&&t.tags?.includes(e)&&i!==s)return i}throw Error(a||`missing plugin - no plugin with tag "${e}" found`)},valueToObject:Re};u.resolveConfig(u,r)}for(let e of u.dependencies)o(e);r.delete(s),i.add(s),a[s]=u};for(let e of t)o(e);return{pluginOrder:Array.from(i),plugins:a}},zp=e=>typeof e==`string`?e.startsWith(`@hey-api/client`)||e.startsWith(`legacy/`):e.name.startsWith(`@hey-api/client`)||e.name.startsWith(`legacy/`)||e.tags&&e.tags.includes(`client`),Bp=({dependencies:e,userConfig:t})=>{let n={},r=Lp;return t.plugins&&(t.plugins=t.plugins.filter(e=>typeof e==`string`&&e||typeof e!=`string`&&e.name),r=t.plugins.length===1&&zp(t.plugins[0])?[...Lp,...t.plugins]:t.plugins),Rp({dependencies:e,userPlugins:r.map(e=>{if(typeof e==`string`)return e;let t=e.name;return t&&(e.handler?n[t]=e:(n[t]={config:{...e}},delete n[t].config.name)),t}).filter(Boolean),userPluginsConfig:n})},Vp=()=>!!(process.stdin.isTTY&&process.stdout.isTTY&&!process.env.CI&&!process.env.NO_INTERACTIVE&&!process.env.NO_INTERACTION),Hp=async({logger:e,userConfigs:n})=>{let i=[],a={},o=e.timeEvent(`load`);for(let r of n){let n;if(r?.configFile){let e=r.configFile.split(`.`);n=e.slice(0,e.length-1).join(`.`)}let o=e.timeEvent(`c12`),{loadConfig:s}=await import(`c12`),{config:c,configFile:l}=await s({configFile:n,name:`openapi-ts`});o.timeEnd(),Object.keys(a).length||(a=Be(Object.keys(c).length?l:void 0));let u=c instanceof Array?c.map(e=>Fe(e,r)):[Fe(c,r)];for(let e of u){let n=Me(e);if(e.output instanceof Array){let r=n.length,a=e.output.length;if(a>1)if(r!==a){console.warn(`⚙️ ${t.yellow(`Warning:`)} You provided ${t.cyan(String(r))} ${t.cyan(r===1?`input`:`inputs`)} and ${t.yellow(String(a))} ${t.yellow(`outputs`)}. This is probably not what you want as it will produce identical output in multiple locations. You most likely want to provide a single output or the same number of outputs as inputs.`);for(let t of e.output)i.push({...e,input:n,output:t})}else e.output.forEach((t,r)=>{i.push({...e,input:n[r],output:t})});else i.push({...e,input:n,output:e.output[0]??``})}else i.push({...e,input:n})}}o.timeEnd();let s=[],c=e.timeEvent(`build`);for(let e of i){let{base:n,configFile:i=``,dryRun:o=!1,experimentalParser:c=!0,exportCore:l=!0,name:u,request:d,useOptions:f=!0}=e,p=e.interactive===void 0?Vp():e.interactive,m=Ne(e),h=Me(e),g=ze(e),_=He(e),v=[];h.length||v.push(new ne(`missing input - which OpenAPI specification should we use to generate your output?`)),g.path||v.push(new ne(`missing output - where should we generate your output?`)),!f&&m.level!==`silent`&&console.warn(`❗️ Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.dev/openapi-ts/migrating.html#v0-27-38`),g.path=r.resolve(process.cwd(),g.path);let y;try{y=Bp({dependencies:a,userConfig:e})}catch(e){v.push(e),y={pluginOrder:[],plugins:{}}}let b=fe({...y,base:n,configFile:i,dryRun:o,experimentalParser:c,exportCore:!1,input:h,interactive:p,logs:m,name:u,output:g,parser:_,request:d,useOptions:f});b.exportCore=C(b)?l:!1;let ee=s.length;if(m.level===`debug`){let e=t.gray(`[Job ${ee+1}] `);console.warn(`${e}${t.cyan(`config:`)}`,b)}s.push({config:b,errors:v,jobIndex:ee})}return c.timeEnd(),{dependencies:a,results:s}};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});const Up=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},Wp=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},Gp=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},Kp=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(Wp(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=Up(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):qp({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},qp=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},Jp=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=Gp(r),s=Object.entries(i).map(([t,i])=>qp({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},Yp=({allowReserved:e,array:t,object:n}={})=>r=>{let i=[];if(r&&typeof r==`object`)for(let a in r){let o=r[a];if(o!=null)if(Array.isArray(o)){let n=Kp({allowReserved:e,explode:!0,name:a,style:`form`,value:o,...t});n&&i.push(n)}else if(typeof o==`object`){let t=Jp({allowReserved:e,explode:!0,name:a,style:`deepObject`,value:o,...n});t&&i.push(t)}else{let t=qp({allowReserved:e,name:a,value:o});t&&i.push(t)}}return i.join(`&`)},Xp=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},Zp=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?Xp(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t};Yp({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}});const Qp=async({fetchOptions:e,inputPath:t,timeout:n,watch:r})=>{let i=f({pathOrUrlOrSchema:t}),a,o,s;if(i.type===`url`){if(r.lastValue&&r.isHeadMethodSupported!==!1){try{let t=await p({fetchOptions:{method:`HEAD`,...e,headers:Zp(e?.headers,r.headers)},timeout:n,url:i.path});if(t.response.status>=300)return{error:`not-ok`,response:t.response};s=t.response}catch(e){return{error:`not-ok`,response:new Response(e.message)}}if(!s.ok&&r.isHeadMethodSupported)return{error:`not-ok`,response:s};if(r.isHeadMethodSupported===void 0&&(r.isHeadMethodSupported=s.ok),s.status===304)return{error:`not-modified`,response:s};if(o===void 0){let e=s.headers.get(`ETag`);e&&(o=e!==r.headers.get(`If-None-Match`),o&&r.headers.set(`If-None-Match`,e))}if(o===void 0){let e=s.headers.get(`Last-Modified`);e&&(o=e!==r.headers.get(`If-Modified-Since`),o&&r.headers.set(`If-Modified-Since`,e))}if(o===!1)return{error:`not-modified`,response:s}}try{let t=await p({fetchOptions:{method:`GET`,...e},timeout:n,url:i.path});if(t.response.status>=300)return{error:`not-ok`,response:t.response};s=t.response}catch(e){return{error:`not-ok`,response:new Response(e.message)}}if(!s.ok)return{error:`not-ok`,response:s};if(a=s.body?await s.arrayBuffer():new ArrayBuffer(0),o===void 0){let e=new TextDecoder().decode(a);o=e!==r.lastValue,r.lastValue=e}}else r.lastValue?o=!1:r.lastValue=i.type;return o===!1?{error:`not-modified`,response:s}:{arrayBuffer:a,resolvedInput:i}};export{ne as ConfigError,re as ConfigValidationError,Ml as GeneratedFile,ie as JobError,Gc as clientDefaultConfig,Kc as clientDefaultMeta,il as clientPluginHandler,An as compiler,Ve as defaultPaginationKeywords,Lp as defaultPlugins,Ue as definePluginConfig,b as ensureDirSync,el as generateClientBundle,x as getClientPlugin,S as getConfig,Ne as getLogs,Qp as getSpec,Hp as initConfigs,C as isLegacyClient,pe as legacyNameFromConfig,_ as loadPackageJson,oe as logCrashReport,se as openGitHubIssueWithCrashReport,mc as parseLegacy,hc as parseOpenApiSpec,ce as printCrashReport,ee as removeDirSync,rr as sanitizeNamespaceIdentifier,le as shouldReportCrash,ns as sort,is as sortByName,w as stringCase,Io as transformClassName,M as tsc,Ko as unique};
24
- //# sourceMappingURL=getSpec-CZ8YOkGf.js.map
23
+ `}),g):p.nodes.push(g),p.methods.add(s.methodName),i.set(d.id,p)})});let s=e.registerSymbol({exported:!1,name:`_HeyApiClient`}),c=t=>{if(a.has(t.id))return;if(t.classes.size)for(let n of t.classes){let r=i.get(n);c(r),t.nodes.push(M.propertyDeclaration({initializer:e.config.instance?M.newExpression({argumentsArray:e.config.instance?[M.objectExpression({multiLine:!1,obj:[{key:`client`,value:M.propertyAccessExpression({expression:M.this(),name:`_client`})}]})]:[],expression:M.identifier({text:e.referenceSymbol(r.id).placeholder})}):M.identifier({text:e.referenceSymbol(r.id).placeholder}),modifier:e.config.instance?void 0:`static`,name:w({case:`camelCase`,value:r.className})}))}let r=e.registerSymbol({exported:!0,name:t.className,selector:e.api.getSelector(`class`,t.className)}),o=M.classDeclaration({decorator:t.root&&n?{args:[{providedIn:`root`}],name:e.referenceSymbol(e.api.getSelector(`Injectable`)).placeholder}:void 0,exportClass:r.exported,extendedClasses:e.config.instance?[s.placeholder]:void 0,name:r.placeholder,nodes:t.nodes});e.setSymbolValue(r,o),a.add(r.id)};if(o.length){let t=M.classDeclaration({exportClass:s.exported,name:s.placeholder,nodes:o});e.setSymbolValue(s,t)}for(let e of i.values())c(e)},ru=({plugin:e})=>{let t=x(e.context.config),n=t.name===`@hey-api/client-nuxt`;e.forEach(`operation`,({operation:r})=>{let i=Ac({context:e.context,operation:r}),a=e.getPluginOrThrow(`@hey-api/typescript`),o=n?e.getSymbol(a.api.getSelector(`response`,r.id)):void 0,s=Dc({isRequiredOptions:i,operation:r,plugin:e}),c=kc({isRequiredOptions:i,opParameters:s,operation:r,plugin:e}),l=e.registerSymbol({name:Xl({config:e.context.config,handleIllegal:!0,id:r.id,operation:r}),selector:e.api.getSelector(`function`,r.id)}),u=M.constVariable({comment:e.api.createOperationComment({operation:r}),exportConst:!0,expression:M.arrowFunction({parameters:s.parameters,returnType:void 0,statements:c,types:n?[{default:M.ots.string(`$fetch`),extends:M.typeNode(e.referenceSymbol(e.api.getSelector(`Composable`)).placeholder),name:vc},{default:o?M.typeReferenceNode({typeName:o.placeholder}):M.typeNode(`undefined`),extends:o?M.typeReferenceNode({typeName:o.placeholder}):void 0,name:yc}]:[{default:(`throwOnError`in t.config?t.config.throwOnError:!1)??!1,extends:`boolean`,name:`ThrowOnError`}]}),name:l.placeholder});e.setSymbolValue(l,u)})},iu={api:new Rl({name:`@hey-api/sdk`}),config:{asClass:!1,auth:!0,classNameBuilder:`{{name}}`,classStructure:`auto`,client:!0,exportFromIndex:!0,instance:!1,operationId:!0,params_EXPERIMENTAL:`default`,response:`body`,responseStyle:`fields`,transformer:!1,validator:!1},dependencies:[`@hey-api/typescript`],handler:({plugin:e})=>{let t=Xc(e.context.config);e.registerSymbol({external:t,name:`formDataBodySerializer`,selector:e.api.getSelector(`formDataBodySerializer`)}),e.registerSymbol({external:t,name:`urlSearchParamsBodySerializer`,selector:e.api.getSelector(`urlSearchParamsBodySerializer`)}),e.registerSymbol({external:t,name:`buildClientParams`,selector:e.api.getSelector(`buildClientParams`)});let n=x(e.context.config),r=n.name===`@hey-api/client-angular`;n.name===`@hey-api/client-nuxt`&&e.registerSymbol({external:t,meta:{kind:`type`},name:`Composable`,selector:e.api.getSelector(`Composable`)}),r&&e.config.asClass&&e.registerSymbol({external:`@angular/core`,name:`Injectable`,selector:e.api.getSelector(`Injectable`)}),eu({plugin:e}),e.config.asClass?nu({plugin:e}):ru({plugin:e})},handlerLegacy:$l,name:`@hey-api/sdk`,resolveConfig:(e,t)=>{e.config.client?(typeof e.config.client==`boolean`&&(e.config.client=t.pluginByTag(`client`,{defaultPlugin:`@hey-api/client-fetch`})),e.dependencies.add(e.config.client)):e.config.client=!1,e.config.transformer?(typeof e.config.transformer==`boolean`&&(e.config.transformer=t.pluginByTag(`transformer`)),e.dependencies.add(e.config.transformer)):e.config.transformer=!1,typeof e.config.validator!=`object`&&(e.config.validator={request:e.config.validator,response:e.config.validator}),e.config.validator.request?(typeof e.config.validator.request==`boolean`&&(e.config.validator.request=t.pluginByTag(`validator`)),e.dependencies.add(e.config.validator.request)):e.config.validator.request=!1,e.config.validator.response?(typeof e.config.validator.response==`boolean`&&(e.config.validator.response=t.pluginByTag(`validator`)),e.dependencies.add(e.config.validator.response)):e.config.validator.response=!1,e.config.instance?(typeof e.config.instance!=`string`&&(e.config.instance=`Sdk`),e.config.asClass=!0):e.config.instance=!1,e.config.classNameBuilder===`{{name}}`&&e.config.client===`@hey-api/client-angular`&&(e.config.classNameBuilder=`{{name}}Service`)}};var au=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const ou=({dataExpression:e,schema:t})=>{if(t.type!==`integer`||t.format!==`int64`)return;let n=e===void 0?void 0:M.callExpression({functionName:`BigInt`,parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:e,name:`toString`})})]});if(n){if(typeof e==`string`)return[n];if(e)return[M.assignment({left:e,right:n})]}},su=({dataExpression:e,schema:t})=>{if(t.type!==`string`||!(t.format===`date`||t.format===`date-time`))return;let n=M.identifier({text:`Date`});if(typeof e==`string`)return[M.newExpression({argumentsArray:[M.identifier({text:e})],expression:n})];if(e)return[M.assignment({left:e,right:M.newExpression({argumentsArray:[e],expression:n})})]},cu=`data`,lu=e=>e.map(e=>a.isStatement(e)?e:M.expressionToStatement({expression:e})),uu=({node:e})=>e.kind===a.SyntaxKind.ReturnStatement,du=({plugin:e,schema:t})=>{let n=M.identifier({text:cu}),r=fu({dataExpression:n,plugin:e,schema:t});return r.length&&!uu({node:r[r.length-1]})&&r.push(M.returnStatement({expression:n})),r},fu=({dataExpression:e,plugin:t,schema:n})=>{if(n.$ref){let r=t.api.getSelector(`response-ref`,n.$ref);if(!t.getSymbol(r)){let e=t.registerSymbol({name:T({config:{case:`camelCase`,name:`{{name}}SchemaResponseTransformer`},name:I(n.$ref)}),selector:r}),i=du({plugin:t,schema:t.context.resolveIrRef(n.$ref)});if(i.length){let n=M.constVariable({expression:M.arrowFunction({async:!1,multiLine:!0,parameters:[{name:cu,type:M.keywordTypeNode({keyword:`any`})}],statements:lu(i)}),name:e.placeholder});t.setSymbolValue(e,n)}else t.setSymbolValue(e,null)}let i=t.referenceSymbol(r);if(t.getSymbolValue(i)!==null){let t=M.callExpression({functionName:i.placeholder,parameters:[e]});if(e)return typeof e==`string`&&e===`item`?[M.returnStatement({expression:t})]:[typeof e==`string`?t:M.assignment({left:e,right:t})]}return[]}if(n.type===`array`){if(!e||typeof e==`string`)return[];let r=n.items?fu({dataExpression:`item`,plugin:t,schema:n.items?.[0]?n.items[0]:{...n,type:void 0}}):[];if(!r.length)return[];let i=lu(r);return i.some(e=>uu({node:e}))||i.push(M.returnStatement({expression:M.identifier({text:`item`})})),[M.assignment({left:e,right:M.callExpression({functionName:M.propertyAccessExpression({expression:e,name:`map`}),parameters:[M.arrowFunction({multiLine:!0,parameters:[{name:`item`,type:`any`}],statements:i})]})})]}if(n.type===`object`){let r=[],i=n.required??[];for(let a in n.properties){let o=n.properties[a],s=M.propertyAccessExpression({expression:e||cu,name:a}),c=fu({dataExpression:s,plugin:t,schema:o});if(!c.length)continue;let l=!o.items?.find(e=>e.type===`null`);i.includes(a)&&l?r=r.concat(c):r.push(M.ifStatement({expression:s,thenStatement:M.block({statements:lu(c)})}))}return r}if(n.items){if(n.items.length===1)return fu({dataExpression:`item`,plugin:t,schema:n.items[0]});let r=[];if(n.logicalOperator===`and`||n.items.length===2&&n.items.find(e=>e.type===`null`||e.type===`void`)){for(let i of n.items){let n=fu({dataExpression:e||`item`,plugin:t,schema:i});if(n.length)if(e)r=r.concat(n);else{let e=M.identifier({text:`item`});r.push(M.ifStatement({expression:e,thenStatement:M.block({statements:lu(n)})}),M.returnStatement({expression:e}))}}return r}n.type!==`enum`&&((n.items??[]).every(e=>[`boolean`,`integer`,`null`,`number`,`string`].includes(e.type))||console.warn(`❗️ Transformers warning: schema ${JSON.stringify(n)} is too complex and won't be currently processed. This will likely produce an incomplete transformer which is not what you want. Please open an issue if you'd like this improved https://github.com/hey-api/openapi-ts/issues`))}for(let r of t.config.transformers){let i=r({config:t.config,dataExpression:e,schema:n});if(i)return i}return[]},pu=({plugin:e})=>{e.forEach(`operation`,({operation:t})=>{let{response:n}=Rn(t);if(!n)return;if(n.items&&n.items.length>1){e.context.config.logs.level===`debug`&&console.warn(`❗️ Transformers warning: route ${F(t)} has ${n.items.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);return}let r=e.getPluginOrThrow(`@hey-api/typescript`),i=e.getSymbol(r.api.getSelector(`response`,t.id));if(!i)return;let a=e.registerSymbol({exported:!0,name:T({config:{case:`camelCase`,name:`{{name}}ResponseTransformer`},name:t.id}),selector:e.api.getSelector(`response`,t.id)}),o=du({plugin:e,schema:n});if(o.length){let t=M.constVariable({exportConst:a.exported,expression:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:cu,type:M.keywordTypeNode({keyword:`any`})}],returnType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:i.placeholder})],typeName:`Promise`}),statements:lu(o)}),name:a.placeholder});e.setSymbolValue(a,t)}else e.setSymbolValue(a,null)})},J={$refs:[],base:``,description:null,enum:[],enums:[],export:`interface`,imports:[],in:``,isDefinition:!1,isNullable:!1,isReadOnly:!1,isRequired:!1,link:null,name:``,properties:[],template:null,type:``},mu=({comments:e,leadingComment:t,meta:n,obj:r,onNode:i,...a})=>{if(!n)return;let{created:o,name:s}=bs({create:!0,meta:n,...a});if(o){let n=S().plugins[`@hey-api/typescript`];i(M.enumDeclaration({asConst:typeof n?.config.enums==`object`&&n.config.enums.mode===`typescript-const`,comments:e,leadingComment:t,name:s,obj:r}))}},hu=({comment:e,meta:t,onCreated:n,onNode:r,type:i,...a})=>{if(!t)return{created:!1,name:``};let o=bs({create:!0,meta:t,...a}),{created:s,name:c}=o;return s&&(r(M.typeAliasDeclaration({comment:e,exportType:!0,name:c,type:i})),n?.(c)),o},gu=e=>{let t=[];yu(e),e.model.enums.forEach(n=>vu({...e,model:n,onNode:e=>{t.push(e)}})),t.length&&e.onNode(M.namespaceDeclaration({name:e.model.name,statements:t}))},_u=({client:e,model:t,onNode:n})=>{let r=S(),i={},a={};t.enum.forEach(e=>{let{key:t,value:n}=cs(e);i[t]=n;let r=e.customDescription||e.description;r&&(a[t]=[D(r)])});let o=[t.description&&D(t.description),t.deprecated&&`@deprecated`],s=r.plugins[`@hey-api/typescript`];if(s?.config&&typeof s.config.enums==`object`&&s.config.enums.enabled&&(s.config.enums.mode===`typescript`||s.config.enums.mode===`typescript-const`)){mu({asConst:s.config.enums.mode===`typescript-const`,client:e,comments:a,leadingComment:o,meta:t.meta,obj:i,onNode:n});return}hu({client:e,comment:o,meta:t.meta,onCreated:e=>{let t=r.plugins[`@hey-api/typescript`];if(t?.config&&typeof t.config.enums==`object`&&t.config.enums.enabled&&t.config.enums.mode===`javascript`){let t=M.objectExpression({multiLine:!0,obj:Object.entries(i).map(([e,t])=>({comments:a[e],key:e,value:t})),unescape:!0});n(M.constVariable({assertion:`const`,comment:o,exportConst:!0,expression:t,name:e}))}},onNode:n,type:os(t.enum)})},vu=({model:e,onNode:t})=>{let n={},r={};e.enum.forEach(e=>{let{key:t,value:i}=cs(e);n[t]=i;let a=e.customDescription||e.description;a&&(r[t]=[D(a)])});let i=S().plugins[`@hey-api/typescript`];t(M.enumDeclaration({asConst:typeof i?.config.enums==`object`&&i.config.enums.mode===`typescript-const`,comments:r,leadingComment:[e.description&&D(e.description),e.deprecated&&`@deprecated`],name:e.meta?.name||e.name,obj:n}))},yu=({client:e,model:t,onNode:n})=>{hu({client:e,comment:[t.description&&D(t.description),t.deprecated&&`@deprecated`],meta:t.meta,onNode:n,type:G(t)})},bu=e=>{switch(e.model.export){case`all-of`:case`any-of`:case`one-of`:case`interface`:return gu(e);case`enum`:return _u(e);default:return yu(e)}},xu=({client:e,onNode:t})=>{let n={},r=S();if(!r.plugins[`@hey-api/sdk`]&&!r.plugins[`@hey-api/typescript`]?.config.tree)return;let i=C(r);for(let r of e.services)for(let a of r.operations){if(!a.parameters.length&&!a.responses.length)continue;n[a.path]||(n[a.path]={});let r=n[a.path];r[a.method]||(r[a.method]={});let o=r[a.method];if(o.$ref=a.name,a.responses.length>0){if(o.res||={},Array.isArray(o.res))continue;a.responses.forEach(e=>{o.res[e.code]=e})}if(a.parameters.length>0){let n={mediaType:null,...J,in:`body`,name:`body`,prop:`body`},r=a.parameters.filter(e=>e.in===`body`);r.length||(r=a.parameters.filter(e=>e.in===`formData`)),r.length===1?n={...J,...r[0],in:`body`,isRequired:r[0].isRequired,name:`body`,prop:`body`}:r.length>1&&(n={...J,in:`body`,isRequired:r.some(e=>e.isRequired),mediaType:`multipart/form-data`,name:`body`,prop:`body`,properties:r});let s={...J,in:`header`,isRequired:ws(a.parameters.filter(e=>e.in===`header`)),mediaType:null,name:i?`header`:`headers`,prop:i?`header`:`headers`,properties:a.parameters.filter(e=>e.in===`header`).sort(rs)},c={...J,in:`path`,isRequired:ws(a.parameters.filter(e=>e.in===`path`)),mediaType:null,name:`path`,prop:`path`,properties:a.parameters.filter(e=>e.in===`path`).sort(rs)},l={...J,in:`query`,isRequired:ws(a.parameters.filter(e=>e.in===`query`)),mediaType:null,name:`query`,prop:`query`,properties:a.parameters.filter(e=>e.in===`query`).sort(rs)},u=i?is([...a.parameters]):[n,s,c,l].filter(e=>e.properties.length||e.$refs.length||e.mediaType);o.req=u,hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Vl,onNode:t,type:G({...J,isRequired:!0,properties:u})})}let s=a.responses.filter(e=>e.responseTypes.includes(`success`));if(s.length>0){hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Wl,onNode:t,type:G({...J,export:`any-of`,isRequired:!0,properties:s})});let n=a.responses.filter(e=>e.responseTypes.includes(`error`));i||hu({client:e,meta:{$ref:a.name,name:a.name},nameTransformer:Hl,onNode:t,type:G(n.length?{...J,export:`one-of`,isRequired:!0,properties:n}:{...J,base:`unknown`,isRequired:!0,type:`unknown`})})}}let a=Object.entries(n).map(([t,n])=>{let r=Object.entries(n).map(([t,n])=>{let r=t,i=[];if(n.req){let t=n.$ref,{name:r}=bs({client:e,meta:{$ref:t,name:t},nameTransformer:Vl}),a={...J,base:r,export:`reference`,isRequired:!0,name:`req`,properties:[],type:r};i=[...i,a]}if(n.res){let e=Object.entries(n.res).map(([e,t])=>({...J,...t,isRequired:!0,name:String(e)})),t={...J,isRequired:!0,name:`res`,properties:e};i=[...i,t]}return{...J,isRequired:!0,name:r.toLocaleLowerCase(),properties:i}}).filter(Boolean);return{...J,isRequired:!0,name:`'${t}'`,properties:r}});r.plugins[`@hey-api/typescript`]?.config.tree&&hu({client:e,meta:{$ref:`@hey-api/openapi-ts`,name:`$OpenApiTs`},onNode:t,type:G({...J,properties:a})})},Su=({client:e,files:t,plugin:n})=>{t.types=new Ml({dir:S().output.path,exportFromIndex:n.config.exportFromIndex,id:`types`,name:`types.ts`});let r=e=>{t.types?.add(e)};for(let t of e.models)bu({client:e,model:t,onNode:r});xu({client:e,onNode:r})},Cu=`data`,wu=e=>e.base===`unknown`&&e.export===`generic`&&e.type===`unknown`,Tu=({client:e,model:t})=>t.$refs.map(t=>{let n=e.models.find(e=>e.meta?.$ref===t);if(!n)throw Error(`Ref ${t} could not be found. Transformers cannot be generated without having access to all refs.`);return n}),Eu=e=>{let t=e.model.meta.name,{name:n}=hu({...e,meta:{$ref:`transformers/${t}`,name:t},nameTransformer:Bl,onCreated:n=>{let r=ku({...e,meta:{$ref:`transformers/${t}`,name:n},path:[Cu]});Au({...e,async:!1,name:n,statements:r})},type:`(${Cu}: any) => ${t}`});return{created:!!e.client.types[n],name:n}},Du=e=>{let{model:t}=e,n=Tu(e);if(n.length===1){let{created:t,name:r}=Eu({...e,model:n[0]});return t?[M.transformArrayMutation({path:e.path,transformerName:r})]:[]}return fs(t)||t.link&&!Array.isArray(t.link)&&t.link.export===`any-of`&&t.link.properties.find(e=>fs(e))?[M.transformArrayMap({path:e.path,transformExpression:M.conditionalExpression({condition:M.identifier({text:`item`}),whenFalse:M.identifier({text:`item`}),whenTrue:M.transformNewDate({parameterName:`item`})})})]:[]},Ou=e=>{let{model:t}=e,n=[...e.path,t.name];return t.type===`string`&&t.export!==`array`&&fs(t)?[M.transformDateMutation({path:n})]:ku({...e,model:t,path:n})},ku=e=>{let{model:t}=e;switch(t.export){case`array`:return Du(e);case`interface`:return t.properties.flatMap(t=>Ou({...e,model:t}));case`reference`:{if(t.$refs.length!==1)return[];let n=Tu(e),{created:r,name:i}=Eu({...e,model:n[0]});return r?t.in===`response`?[M.expressionToStatement({expression:M.callExpression({functionName:i,parameters:[Cu]})})]:M.transformFunctionMutation({path:e.path,transformerName:i}):[]}default:return[]}},Au=({async:e,client:t,name:n,onNode:r,onRemoveNode:i,statements:a})=>{let o={created:!1,name:n};if(!a.length)return xs({client:t,name:n}),i?.(),o;let s=M.arrowFunction({async:e,multiLine:!0,parameters:[{name:Cu}],statements:[...a,M.returnVariable({expression:Cu})]});return r(M.constVariable({exportConst:!0,expression:s,name:n,typeName:n})),{created:!0,name:n}},ju={api:new au({name:`@hey-api/transformers`}),config:{bigInt:!0,dates:!0,exportFromIndex:!1,transformers:[],typeTransformers:[]},dependencies:[`@hey-api/typescript`],handler:pu,handlerLegacy:({client:e,files:t})=>{let n=S(),r=e=>{t.types?.add(e)},i=()=>{t.types?.removeNode_LEGACY()};for(let t of e.services)for(let a of t.operations){let t=a.responses.filter(e=>e.responseTypes.includes(`success`));if(!t.length)continue;let o=t.filter(e=>!wu(e));if(!o.length)continue;if(o.length>1){n.logs.level===`debug`&&console.warn(`❗️ Transformers warning: route ${F(a)} has ${o.length} non-void success responses. This is currently not handled and we will not generate a response transformer. Please open an issue if you'd like this feature https://github.com/hey-api/openapi-ts/issues`);continue}let s=Wl(a.name);hu({client:e,meta:{$ref:`transformers/${s}`,name:s},nameTransformer:Ul,onCreated:n=>{Au({async:!0,client:e,name:n,onNode:r,onRemoveNode:i,statements:t.length>1?t.flatMap(t=>{let n=ku({client:e,meta:{$ref:`transformers/${s}`,name:s},model:t,onNode:r,onRemoveNode:i,path:[Cu]});return n.length?[M.ifStatement({expression:M.safeAccessExpression([`data`]),thenStatement:M.block({statements:n})})]:[]}):ku({client:e,meta:{$ref:`transformers/${s}`,name:s},model:t[0],onNode:r,onRemoveNode:i,path:[Cu]})})},onNode:r,type:`(${Cu}: any) => Promise<${s}>`})}},name:`@hey-api/transformers`,resolveConfig:e=>{e.config.transformers||(e.config.transformers=[]),e.config.dates&&(e.config.transformers=[...e.config.transformers,su]),e.config.bigInt&&(e.config.transformers=[...e.config.transformers,ou])},tags:[`transformer`]},Mu=({context:e,name:t})=>(E.lastIndex=0,E.test(t)?t.startsWith(`-`)?a.factory.createStringLiteral(t):a.factory.createNumericLiteral(t):w({case:e.config.output.case,value:t})),Nu=({schema:e})=>{let t=[];return e.title&&t.push(D(e.title)),e.description&&(t.length&&t.push(``),t.push(D(e.description))),e.deprecated&&(t.length&&t.push(``),t.push(`@deprecated`)),t.length?t:void 0},Pu=M.keywordTypeNode({keyword:`string`}),Fu=({server:e})=>{let t=ea(e.url);return t.protocol&&t.host?M.literalTypeNode({literal:M.stringLiteral({text:e.url})}):M.templateLiteralType({value:[t.protocol||Pu,`://`,t.host||Pu,t.port?`:${t.port}`:``,t.path||``]})},Iu=({plugin:e,servers:t,symbolClientOptions:n})=>{let r=x(e.context.config),i=t.map(e=>Fu({server:e}));t.length?`strictBaseUrl`in r.config&&r.config.strictBaseUrl||i.push(M.typeIntersectionNode({types:[Pu,a.factory.createTypeLiteralNode([])]})):i.push(Pu);let o=M.typeInterfaceNode({properties:[{name:ue(e.context.config),type:M.typeUnionNode({types:i})}],useLegacyResolution:!1}),s=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:o});e.setSymbolValue(n,s)},Lu=({plugin:e,schema:t})=>{let n=[];return{obj:(t.items??[]).map((t,r)=>{let i=typeof t.const;n.includes(i)||n.push(i);let a;return a=t.title?t.title:i===`number`||i===`string`?`${t.const}`:i===`boolean`?t.const?`true`:`false`:t.const===null?`null`:`${r}`,a&&(a=w({case:e.config.enums.case,stripLeadingSeparators:!1,value:a}),E.lastIndex=0,E.test(a)&&e.config.enums.enabled&&(e.config.enums.mode===`typescript`||e.config.enums.mode===`typescript-const`)&&(a=`_${a}`)),{comments:Nu({schema:t}),key:a,value:t.const}}),typeofItems:n}},Ru=({plugin:e,schema:t,symbol:n,type:r})=>{if(t.type===`enum`&&e.config.enums.enabled){let r=Lu({plugin:e,schema:t});if(e.config.enums.mode===`javascript`){e.config.enums.constantsIgnoreNull&&r.typeofItems.includes(`object`)&&(r.obj=r.obj.filter(e=>e.value!==null));let i=M.constVariable({assertion:`const`,comment:Nu({schema:t}),exportConst:!0,expression:M.objectExpression({multiLine:!0,obj:r.obj}),name:n.placeholder}),a=M.typeOfExpression({text:n.placeholder}),o=M.typeAliasDeclaration({comment:Nu({schema:t}),exportType:!0,name:n.placeholder,type:M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:a}),objectType:a})});e.setSymbolValue(n,[i,o]);return}else if((e.config.enums.mode===`typescript`||e.config.enums.mode===`typescript-const`)&&!r.typeofItems.some(e=>e!==`number`&&e!==`string`)){let i=M.enumDeclaration({asConst:e.config.enums.mode===`typescript-const`,leadingComment:Nu({schema:t}),name:n.placeholder,obj:r.obj});e.setSymbolValue(n,i);return}}let i=M.typeAliasDeclaration({comment:Nu({schema:t}),exportType:n.exported,name:n.placeholder,type:r});e.setSymbolValue(n,i)},zu=({parameters:e})=>{let t={type:`object`};if(e){let n={},r=[];for(let t in e){let i=e[t];n[i.name]=N({detectFormat:!1,schema:i.schema}),i.required&&r.push(i.name)}t.properties=n,r.length&&(t.required=r)}return t},Bu=({operation:e,plugin:t})=>{let n={type:`object`},r=[];n.properties||={},e.body?(n.properties.body=e.body.schema,e.body.required&&r.push(`body`)):n.properties.body={type:`never`},e.parameters?.header&&(n.properties.headers=zu({parameters:e.parameters.header}),n.properties.headers.required&&r.push(`headers`)),e.parameters?.path?(n.properties.path=zu({parameters:e.parameters.path}),n.properties.path.required&&r.push(`path`)):n.properties.path={type:`never`},e.parameters?.query?(n.properties.query=zu({parameters:e.parameters.query}),n.properties.query.required&&r.push(`query`)):n.properties.query={type:`never`},n.properties.url={const:e.path,type:`string`},r.push(`url`),n.required=r;let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.requests,name:e.id}),selector:t.api.getSelector(`data`,e.id)}),a=Y({plugin:t,schema:n}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});t.setSymbolValue(i,o)},Vu=({operation:e,plugin:t})=>{Bu({operation:e,plugin:t});let{error:n,errors:r,response:i,responses:a}=Rn(e);if(r){let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.errors,name:e.id}),selector:t.api.getSelector(`errors`,e.id)}),a=Y({plugin:t,schema:r}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});if(t.setSymbolValue(i,o),n){let n=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.errors.case,name:t.config.errors.error},name:e.id}),selector:t.api.getSelector(`error`,e.id)}),r=M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:M.typeReferenceNode({typeName:i.placeholder})}),objectType:M.typeReferenceNode({typeName:i.placeholder})}),a=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:r});t.setSymbolValue(n,a)}}if(a){let n=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.responses,name:e.id}),selector:t.api.getSelector(`responses`,e.id)}),r=Y({plugin:t,schema:a}),o=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:r});if(t.setSymbolValue(n,o),i){let r=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.responses.case,name:t.config.responses.response},name:e.id}),selector:t.api.getSelector(`response`,e.id)}),i=M.indexedAccessTypeNode({indexType:M.typeOperatorNode({operator:`keyof`,type:M.typeReferenceNode({typeName:n.placeholder})}),objectType:M.typeReferenceNode({typeName:n.placeholder})}),a=M.typeAliasDeclaration({exportType:r.exported,name:r.placeholder,type:i});t.setSymbolValue(r,a)}}},Hu=({operation:e,plugin:t})=>{let n={type:`object`},r=[];if(n.properties||={},e.body){let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:t.config.webhooks.case,name:t.config.webhooks.payload},name:e.id}),selector:t.api.getSelector(`webhook-payload`,e.id)}),a=Y({plugin:t,schema:e.body.schema}),o=M.typeAliasDeclaration({comment:Nu({schema:e.body.schema}),exportType:i.exported,name:i.placeholder,type:a});t.setSymbolValue(i,o),t.registerSymbol({exported:!0,meta:{kind:`type`},name:i.name,placeholder:i.placeholder,selector:t.api.getSelector(`ref`,i.placeholder)}),n.properties.body={$ref:i.placeholder},r.push(`body`)}else n.properties.body={type:`never`};n.properties.key={const:e.path,type:`string`},r.push(`key`),n.properties.path={type:`never`},n.properties.query={type:`never`},n.required=r;let i=t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.webhooks,name:e.id}),selector:t.api.getSelector(`webhook-request`,e.id)}),a=Y({plugin:t,schema:n}),o=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:a});return t.setSymbolValue(i,o),i.placeholder},Uu=({operation:e,plugin:t})=>Hu({operation:e,plugin:t}),Wu=({plugin:e,symbolWebhooks:t,webhookNames:n})=>{if(!n.length)return;let r=M.typeUnionNode({types:n.map(e=>M.typeReferenceNode({typeName:e}))}),i=M.typeAliasDeclaration({exportType:t.exported,name:t.placeholder,type:r});e.setSymbolValue(t,i)},Gu=({plugin:e,schema:t})=>{if(!t.items)return M.typeArrayNode(M.keywordTypeNode({keyword:e.config.topType}));t=N({detectFormat:!0,schema:t});let n=[];for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return n.length===1?M.typeArrayNode(n[0]):t.logicalOperator===`and`?M.typeArrayNode(M.typeIntersectionNode({types:n})):M.typeArrayNode(M.typeUnionNode({types:n}))},Ku=({schema:e})=>e.const===void 0?M.keywordTypeNode({keyword:`boolean`}):M.literalTypeNode({literal:M.ots.boolean(e.const)}),qu=({plugin:e,schema:t})=>Y({plugin:e,schema:{...t,type:void 0}}),Ju=({plugin:e,schema:t})=>t.const===void 0?t.type===`integer`&&t.format===`int64`&&e.getPlugin(`@hey-api/transformers`)?.config.bigInt?M.typeReferenceNode({typeName:`bigint`}):M.keywordTypeNode({keyword:`number`}):M.literalTypeNode({literal:M.ots.number(t.const)}),Yu=({plugin:e,schema:t})=>{let n,r,i=[],a=[],o=t.required??[],s=!1;for(let n in t.properties){let r=t.properties[n],c=Y({plugin:e,schema:r}),l=o.includes(n);i.push({comment:Nu({schema:r}),isReadOnly:r.accessScope===`read`,isRequired:l,name:Mu({context:e.context,name:n}),type:c}),a.push(r),l||(s=!0)}if(t.patternProperties)for(let e in t.patternProperties){let n=t.patternProperties[e];a.unshift(n)}let c=!!t.patternProperties&&Object.keys(t.patternProperties).length>0,l=t.additionalProperties,u=l!==!1&&l?l:void 0;if(c||u&&(u.type!==`never`||!a.length)){let i=u;i&&i.type!==`never`?a.unshift(i):!c&&!a.length&&i&&i.type===`never`&&(a=[i]),s&&a.push({type:`undefined`}),r={isRequired:!t.propertyNames,name:`key`,type:a.length===1?Y({plugin:e,schema:a[0]}):Y({plugin:e,schema:{items:a,logicalOperator:`or`}})},t.propertyNames?.$ref&&(n=Y({plugin:e,schema:{$ref:t.propertyNames.$ref}}))}return M.typeInterfaceNode({indexKey:n,indexProperty:r,properties:i,useLegacyResolution:!1})},Xu=({plugin:e,schema:t})=>{if(t.const!==void 0)return M.literalTypeNode({literal:M.stringLiteral({text:t.const})});if(t.format){if(t.format===`binary`)return M.typeUnionNode({types:[M.typeReferenceNode({typeName:`Blob`}),M.typeReferenceNode({typeName:`File`})]});if((t.format===`date-time`||t.format===`date`)&&e.getPlugin(`@hey-api/transformers`)?.config.dates)return M.typeReferenceNode({typeName:`Date`});if(t.format===`typeid`&&typeof t.example==`string`){let n=String(t.example).split(`_`);n.pop();let r=n.join(`_`),i=e.api.getSelector(`TypeID`,r);if(!e.getSymbol(i)){let t=e.api.getSelector(`TypeID`);if(!e.getSymbol(t)){let n=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`TypeID`,selector:t}),r=M.typeAliasDeclaration({exportType:n.exported,name:n.placeholder,type:M.templateLiteralType({value:[M.typeReferenceNode({typeName:`T`}),`_`,M.keywordTypeNode({keyword:`string`})]}),typeParameters:[M.typeParameterDeclaration({constraint:M.keywordTypeNode({keyword:`string`}),name:`T`})]});e.setSymbolValue(n,r)}let n=e.referenceSymbol(t),a=e.registerSymbol({exported:!0,meta:{kind:`type`},name:w({case:e.config.case,value:`${r}_id`}),selector:i}),o=M.typeAliasDeclaration({exportType:a.exported,name:a.placeholder,type:M.typeReferenceNode({typeArguments:[M.literalTypeNode({literal:M.stringLiteral({text:r})})],typeName:n.placeholder})});e.setSymbolValue(a,o)}let a=e.referenceSymbol(i);return M.typeReferenceNode({typeName:a.placeholder})}}return M.keywordTypeNode({keyword:`string`})},Zu=({plugin:e,schema:t})=>{let n=[];if(t.const&&Array.isArray(t.const))n=t.const.map(t=>M.valueToExpression({value:t})??M.identifier({text:e.config.topType}));else if(t.items)for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return M.typeTupleNode({types:n})},Qu=({plugin:e,schema:t})=>{let n=e.getPlugin(`@hey-api/transformers`);if(n?.config.typeTransformers)for(let e of n.config.typeTransformers){let n=e({schema:t});if(n)return n}switch(t.type){case`array`:return Gu({plugin:e,schema:t});case`boolean`:return Ku({schema:t});case`enum`:return qu({plugin:e,schema:t});case`integer`:case`number`:return Ju({plugin:e,schema:t});case`never`:return M.keywordTypeNode({keyword:`never`});case`null`:return M.literalTypeNode({literal:M.null()});case`object`:return Yu({plugin:e,schema:t});case`string`:return Xu({plugin:e,schema:t});case`tuple`:return Zu({plugin:e,schema:t});case`undefined`:return M.keywordTypeNode({keyword:`undefined`});case`unknown`:return M.keywordTypeNode({keyword:e.config.topType});case`void`:return M.keywordTypeNode({keyword:`void`})}},Y=({plugin:e,schema:t})=>{if(t.$ref){let n=e.referenceSymbol(e.api.getSelector(`ref`,t.$ref));return M.typeReferenceNode({typeName:n.placeholder})}if(t.type)return Qu({plugin:e,schema:t});if(t.items){if(t=N({detectFormat:!1,schema:t}),t.items){let n=[];for(let r of t.items){let t=Y({plugin:e,schema:r});n.push(t)}return t.logicalOperator===`and`?M.typeIntersectionNode({types:n}):M.typeUnionNode({types:n})}return Y({plugin:e,schema:t})}return Qu({plugin:e,schema:{type:`unknown`}})},$u=({id:e,plugin:t,schema:n})=>{let r=Y({plugin:t,schema:n}),i=n.type===`enum`&&t.config.enums.enabled;Ru({plugin:t,schema:n,symbol:t.registerSymbol({exported:!0,meta:{kind:i?void 0:`type`},name:T({config:t.config.definitions,name:I(e)}),selector:t.api.getSelector(`ref`,e)}),type:r})},ed={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}schemaToType(e){return Y(e)}}({name:`@hey-api/typescript`}),config:{case:`PascalCase`,exportFromIndex:!0,style:`preserve`,topType:`unknown`,tree:!1},handler:({plugin:e})=>{let t=e.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:e.config.case},name:`ClientOptions`}),selector:e.api.getSelector(`ClientOptions`)}),n=e.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:{case:e.config.case},name:`Webhooks`}),selector:e.api.getSelector(`Webhooks`)}),r=[],i=[];e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`server`,`webhook`,t=>{switch(t.type){case`operation`:Vu({operation:t.operation,plugin:e});break;case`parameter`:$u({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:$u({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:$u({id:t.$ref,plugin:e,schema:t.schema});break;case`server`:r.push(t.server);break;case`webhook`:i.push(Uu({operation:t.operation,plugin:e}));break}}),Iu({plugin:e,servers:r,symbolClientOptions:t}),Wu({plugin:e,symbolWebhooks:n,webhookNames:i})},handlerLegacy:Su,name:`@hey-api/typescript`,resolveConfig:(e,t)=>{e.config.definitions=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.definitions}),e.config.enums=t.valueToObject({defaultValue:{case:`SCREAMING_SNAKE_CASE`,constantsIgnoreNull:!1,enabled:!!e.config.enums,mode:`javascript`},mappers:{boolean:e=>({enabled:e}),string:e=>({mode:e})},value:e.config.enums}),e.config.errors=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,error:`{{name}}Error`,name:`{{name}}Errors`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.errors}),e.config.requests=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}Data`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.requests}),e.config.responses=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}Responses`,response:`{{name}}Response`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.responses}),e.config.webhooks=t.valueToObject({defaultValue:{case:e.config.case??`PascalCase`,name:`{{name}}WebhookRequest`,payload:`{{name}}WebhookPayload`},mappers:{function:e=>({name:e}),string:e=>({name:e})},value:e.config.webhooks})}};var td=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const nd=(e,t,n)=>{let r=e.config[n].meta;if(!r)return;let i=r(t);if(Object.keys(i).length)return M.valueToExpression({value:i})},rd=({operation:e,plugin:t})=>Ec({operation:e,plugin:t.getPluginOrThrow(`@hey-api/sdk`)}),id=({operation:e,plugin:t})=>{let n=x(t.context.config),r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`error`,e.id))?.placeholder;return i||=`Error`,n.name===`@hey-api/client-axios`&&(i=`${t.referenceSymbol(t.api.getSelector(`AxiosError`)).placeholder}<${i}>`),i},ad=({operation:e,plugin:t})=>{let n=t.getPluginOrThrow(`@hey-api/typescript`);return t.getSymbol(n.api.getSelector(`response`,e.id))?.placeholder||`unknown`},od=({plugin:e,typeData:t})=>{let n=x(e.context.config).name===`@hey-api/client-nuxt`;return{isNuxtClient:n,strippedTypeData:n?`Omit<${t}, 'composable'>`:t}},sd=({operation:e,plugin:t,queryFn:n})=>{let r=t.referenceSymbol(t.api.getSelector(`UseMutationOptions`)),i=rd({operation:e,plugin:t}),a=id({operation:e,plugin:t}),o=ad({operation:e,plugin:t}),{isNuxtClient:s,strippedTypeData:c}=od({plugin:t,typeData:i}),l=s?`${r.placeholder}<${o}, ${c}, ${a}>`:`${r.placeholder}<${o}, ${i}, ${a}>`,u=`fnOptions`,d=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:u},{key:`throwOnError`,value:!0}]})]})}),f=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?f.push(M.returnVariable({expression:d})):f.push(M.constVariable({destructure:!0,expression:d,name:`data`}),M.returnVariable({expression:`data`}));let p=[{key:`mutation`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[s?{name:u,type:`Partial<${c}>`}:{name:u}],statements:f})}],m=nd(t,e,`mutationOptions`);m&&p.push({key:`meta`,value:m});let h=t.getPluginOrThrow(`@hey-api/sdk`),g=t.registerSymbol({exported:!0,name:T({config:t.config.mutationOptions,name:e.id})}),_=M.constVariable({comment:t.config.comments?h.api.createOperationComment({operation:e}):void 0,exportConst:g.exported,expression:M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${c}>`}],returnType:l,statements:[M.returnStatement({expression:M.objectExpression({obj:p})})]}),name:g.placeholder});t.setSymbolValue(g.id,_)},cd=`TOptions`,ld=M.identifier({text:`options`}),ud=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createQueryKey`}),selector:e.api.getSelector(`createQueryKey`)}),n=e.referenceSymbol(e.api.getSelector(`QueryKey`)),r=e.referenceSymbol(e.api.getSelector(`_JSONValue`)),i=M.indexedAccessTypeNode({indexType:M.literalTypeNode({literal:M.ots.number(0)}),objectType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:cd})],typeName:n.placeholder})}),a=ue(e.context.config),o=e.getPluginOrThrow(`@hey-api/sdk`),s=e.referenceSymbol(o.api.getSelector(`Options`)),c=x(e.context.config),l=c.api&&`getSelector`in c.api?e.getSymbol(c.api.getSelector(`client`)):void 0,u=Xc(e.context.config),d=e.registerSymbol({external:u,name:`serializeQueryKeyValue`}),f=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeReferenceNode({typeName:`string`})},{isRequired:!1,name:`options`,type:M.typeReferenceNode({typeName:cd})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],returnType:M.typeTupleNode({types:[i]}),statements:[M.constVariable({assertion:i,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:a,value:M.identifier({text:`options?.${a} || (options?.client ?? ${l?.placeholder}).getConfig().${a}`})}]}),name:`params`,typeName:i}),M.ifStatement({expression:M.identifier({text:`tags`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`tags`}),right:M.asExpression({expression:M.asExpression({expression:M.identifier({text:`tags`}),type:M.keywordTypeNode({keyword:`unknown`})}),type:M.typeReferenceNode({typeName:r.placeholder})})})})]})}),M.ifStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`body`})}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.constVariable({expression:M.callExpression({functionName:d.placeholder,parameters:[M.propertyAccessExpression({expression:`options`,name:`body`})]}),name:`normalizedBody`}),M.ifStatement({expression:M.binaryExpression({left:M.identifier({text:`normalizedBody`}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.identifier({text:`normalizedBody`})})})]})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:ld,isOptional:!0,name:M.identifier({text:`query`})}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.constVariable({expression:M.callExpression({functionName:d.placeholder,parameters:[M.propertyAccessExpression({expression:`options`,name:`query`})]}),name:`normalizedQuery`}),M.ifStatement({expression:M.binaryExpression({left:M.identifier({text:`normalizedQuery`}),operator:`!==`,right:`undefined`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.identifier({text:`normalizedQuery`})})})]})})]})}),M.returnStatement({expression:M.arrayLiteralExpression({elements:[M.identifier({text:`params`})]})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:s.placeholder})}),name:cd}]}),name:t.placeholder});e.setSymbolValue(t,f)},dd=({id:e,operation:t,plugin:n})=>{let r=n.config.queryKeys,i;r.tags&&t.tags&&t.tags.length>0&&(i=M.arrayLiteralExpression({elements:t.tags.map(e=>M.stringLiteral({text:e}))}));let a=n.referenceSymbol(n.api.getSelector(`createQueryKey`));return M.callExpression({functionName:a.placeholder,parameters:[M.ots.string(e),`options`,i]})},fd=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`_JSONValue`)),n=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:ue(e.context.config),type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`body`,type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`query`,type:M.typeReferenceNode({typeName:t.placeholder})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:t.placeholder})}],r=e.getPluginOrThrow(`@hey-api/sdk`),i=e.referenceSymbol(r.api.getSelector(`Options`)),a=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`QueryKey`,selector:e.api.getSelector(`QueryKey`)}),o=M.typeAliasDeclaration({exportType:a.exported,name:a.placeholder,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${cd}, 'path'>`}),M.typeInterfaceNode({properties:n,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:i.placeholder})}),name:cd}]});e.setSymbolValue(a,o)},pd=({operation:e,plugin:t,symbol:n})=>{let{strippedTypeData:r}=od({plugin:t,typeData:rd({operation:e,plugin:t})});return M.constVariable({exportConst:n.exported,expression:M.arrowFunction({parameters:[{isRequired:Fn(e),name:`options`,type:r}],statements:dd({id:e.id,operation:e,plugin:t})}),name:n.placeholder})},md=`options`,hd=`context`,gd=({operation:e,plugin:t,queryFn:n})=>{if(jc({operation:e}))return;let r=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(fd({plugin:t}),ud({plugin:t}));let i;if(t.config.queryKeys.enabled){let n=t.registerSymbol({exported:!0,name:T({config:t.config.queryKeys,name:e.id})}),r=pd({operation:e,plugin:t,symbol:n});t.setSymbolValue(n,r),i=M.callExpression({functionName:n.placeholder,parameters:[md]})}else{let n=t.referenceSymbol(t.api.getSelector(`createQueryKey`)),r;t.config.queryKeys.tags&&e.tags&&e.tags.length>0&&(r=M.arrayLiteralExpression({elements:e.tags.map(e=>M.stringLiteral({text:e}))})),i=M.callExpression({functionName:n.placeholder,parameters:[M.ots.string(e.id),md,r]})}let{strippedTypeData:a}=od({plugin:t,typeData:rd({operation:e,plugin:t})}),o=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:md},{spread:hd},{key:`throwOnError`,value:!0}]})]})}),s=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?s.push(M.returnVariable({expression:o})):s.push(M.constVariable({destructure:!0,expression:o,name:`data`}),M.returnVariable({expression:`data`}));let c=[{key:`key`,value:i},{key:`query`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:hd}],statements:s})}],l=nd(t,e,`queryOptions`);l&&c.push({key:`meta`,value:l});let u=t.getPluginOrThrow(`@hey-api/sdk`),d=t.registerSymbol({exported:!0,name:T({config:t.config.queryOptions,name:e.id}),selector:t.api.getSelector(`queryOptionsFn`,e.id)}),f=t.registerSymbol({external:t.name,name:`defineQueryOptions`,selector:t.api.getSelector(`defineQueryOptions`)}),p=M.constVariable({comment:t.config.comments?u.api.createOperationComment({operation:e}):void 0,exportConst:d.exported,expression:M.callExpression({functionName:f.placeholder,parameters:[M.arrowFunction({parameters:[{isRequired:r,name:md,type:a}],statements:M.objectExpression({obj:c})})]}),name:d.placeholder});t.setSymbolValue(d,p)},_d={api:new td({name:`@pinia/colada`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/typescript`,`@hey-api/sdk`],handler:({plugin:e})=>{e.registerSymbol({external:e.name,meta:{kind:`type`},name:`UseMutationOptions`,selector:e.api.getSelector(`UseMutationOptions`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`UseQueryOptions`,selector:e.api.getSelector(`UseQueryOptions`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`_JSONValue`,selector:e.api.getSelector(`_JSONValue`)}),e.registerSymbol({external:`axios`,meta:{kind:`type`},name:`AxiosError`,selector:e.api.getSelector(`AxiosError`)});let t=e.getPluginOrThrow(`@hey-api/sdk`);e.forEach(`operation`,({operation:n})=>{let r=t.config.asClass?Tc({context:e.context,operation:n,plugin:t}):void 0,i=r?r.values().next().value:void 0,a=i?[e.referenceSymbol(t.api.getSelector(`class`,i.path[0])).placeholder,...i.path.slice(1).map(e=>w({case:`camelCase`,value:e})),i.methodName].filter(Boolean).join(`.`):e.referenceSymbol(t.api.getSelector(`function`,n.id)).placeholder;e.hooks.operation.isQuery(n)&&e.config.queryOptions.enabled&&gd({operation:n,plugin:e,queryFn:a}),e.hooks.operation.isMutation(n)&&e.config.mutationOptions.enabled&&sd({operation:n,plugin:e,queryFn:a})})},name:`@pinia/colada`,resolveConfig:(e,t)=>{e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Query`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},vd=(e,t,n)=>{let r=e.config[n].meta;if(!r)return;let i=r(t);if(Object.keys(i).length)return M.valueToExpression({value:i})},yd=({operation:e,plugin:t})=>Ec({operation:e,plugin:t.getPluginOrThrow(`@hey-api/sdk`)}),bd=({operation:e,plugin:t})=>{let n=x(t.context.config),r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`error`,e.id))?.placeholder;return i||=t.referenceSymbol(t.api.getSelector(`DefaultError`)).placeholder,n.name===`@hey-api/client-axios`&&(i=`${t.referenceSymbol(t.api.getSelector(`AxiosError`)).placeholder}<${i}>`),i},xd=({operation:e,plugin:t})=>{let n=t.getPluginOrThrow(`@hey-api/typescript`);return t.getSymbol(n.api.getSelector(`response`,e.id))?.placeholder||`unknown`},Sd=`TOptions`,Cd=M.identifier({text:`infinite`}),wd=M.identifier({text:`options`}),Td=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createQueryKey`}),selector:e.api.getSelector(`createQueryKey`)}),n=e.referenceSymbol(e.api.getSelector(`QueryKey`)),r=M.indexedAccessTypeNode({indexType:M.literalTypeNode({literal:M.ots.number(0)}),objectType:M.typeReferenceNode({typeArguments:[M.typeReferenceNode({typeName:Sd})],typeName:n.placeholder})}),i=ue(e.context.config),a=x(e.context.config),o=a.api&&`getSelector`in a.api?e.getSymbol(a.api.getSelector(`client`)):void 0,s=e.getPluginOrThrow(`@hey-api/sdk`),c=e.referenceSymbol(s.api.getSelector(`Options`)),l=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeReferenceNode({typeName:`string`})},{isRequired:!1,name:`options`,type:M.typeReferenceNode({typeName:Sd})},{isRequired:!1,name:`infinite`,type:M.typeReferenceNode({typeName:`boolean`})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],returnType:M.typeTupleNode({types:[r]}),statements:[M.constVariable({assertion:r,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:i,value:M.identifier({text:`options?.${i} || (options?.client ?? ${o?.placeholder}).getConfig().${i}`})}]}),name:`params`,typeName:r}),M.ifStatement({expression:Cd,thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`_infinite`}),right:Cd})})]})}),M.ifStatement({expression:M.identifier({text:`tags`}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`tags`}),right:M.identifier({text:`tags`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.propertyAccessExpression({expression:`options`,name:`body`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.propertyAccessExpression({expression:`options`,name:`headers`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:wd,isOptional:!0,name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.propertyAccessExpression({expression:`options`,name:`query`})})})]})}),M.returnStatement({expression:M.arrayLiteralExpression({elements:[M.identifier({text:`params`})]})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:c.placeholder})}),name:Sd}]}),name:t.placeholder});e.setSymbolValue(t,l)},Ed=({id:e,isInfinite:t,operation:n,plugin:r})=>{let i=t?r.config.infiniteQueryKeys:r.config.queryKeys,a;i.tags&&n.tags&&n.tags.length>0&&(a=M.arrayLiteralExpression({elements:n.tags.map(e=>M.stringLiteral({text:e}))}));let o=r.referenceSymbol(r.api.getSelector(`createQueryKey`));return M.callExpression({functionName:o.placeholder,parameters:[M.ots.string(e),`options`,t||a?M.ots.boolean(!!t):void 0,a]})},Dd=({plugin:e})=>{let t=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:`_infinite`,type:M.keywordTypeNode({keyword:`boolean`})},{isRequired:!1,name:`tags`,type:M.typeReferenceNode({typeName:`ReadonlyArray<string>`})}],n=e.getPluginOrThrow(`@hey-api/sdk`),r=e.referenceSymbol(n.api.getSelector(`Options`)),i=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`QueryKey`,selector:e.api.getSelector(`QueryKey`)}),a=M.typeAliasDeclaration({exportType:i.exported,name:i.placeholder,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${Sd}, '${ue(e.context.config)}' | 'body' | 'headers' | 'path' | 'query'>`}),M.typeInterfaceNode({properties:t,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:r.placeholder})}),name:Sd}]});e.setSymbolValue(i,a)},Od=({isInfinite:e,operation:t,plugin:n,symbol:r,typeQueryKey:i})=>{let a=yd({operation:t,plugin:n});return M.constVariable({exportConst:r.exported,expression:M.arrowFunction({parameters:[{isRequired:Fn(t),name:`options`,type:a}],returnType:e?i:void 0,statements:Ed({id:t.id,isInfinite:e,operation:t,plugin:n})}),name:r.placeholder})},kd=({plugin:e})=>{let t=e.registerSymbol({name:T({config:{case:e.config.case},name:`createInfiniteParams`}),selector:e.api.getSelector(`createInfiniteParams`)}),n=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`queryKey`,type:M.typeReferenceNode({typeName:`QueryKey<Options>`})},{name:`page`,type:M.typeReferenceNode({typeName:`K`})}],statements:[M.constVariable({expression:M.objectExpression({obj:[{spread:M.propertyAccessExpression({expression:`queryKey`,name:0})}]}),name:`params`}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].body`},{assertion:`any`,spread:`page.body`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].headers`},{spread:`page.headers`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].path`},{assertion:`any`,spread:`page.path`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].query`},{assertion:`any`,spread:`page.query`}]})})})]})}),M.returnVariable({expression:M.asExpression({expression:M.asExpression({expression:M.identifier({text:`params`}),type:M.keywordTypeNode({keyword:`unknown`})}),type:a.factory.createTypeQueryNode(M.identifier({text:`page`}))})})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>`})}),name:`K`}]}),name:t.placeholder});e.setSymbolValue(t,n)},Ad=({operation:e,plugin:t,queryFn:n})=>{let r=In({context:t.context,operation:e});if(!r)return;let i=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(Dd({plugin:t}),Td({plugin:t})),t.getSymbol(t.api.getSelector(`createInfiniteParams`))||kd({plugin:t});let a=t.referenceSymbol(t.api.getSelector(`infiniteQueryOptions`)),o=t.referenceSymbol(t.api.getSelector(`InfiniteData`)),s=yd({operation:e,plugin:t}),c=bd({operation:e,plugin:t}),l=xd({operation:e,plugin:t}),u=`${t.referenceSymbol(t.api.getSelector(`QueryKey`)).placeholder}<${s}>`,d=`Pick<${u}[0], 'body' | 'headers' | 'path' | 'query'>`,f=t.getPluginOrThrow(`@hey-api/typescript`),p=`${ft({node:f.api.schemaToType({plugin:f,schema:r.schema}),unescape:!0})} | ${d}`,m=t.registerSymbol({exported:!0,name:T({config:t.config.infiniteQueryKeys,name:e.id})}),h=Od({isInfinite:!0,operation:e,plugin:t,symbol:m,typeQueryKey:u});t.setSymbolValue(m,h);let g=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`params`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),_=t.referenceSymbol(t.api.getSelector(`createInfiniteParams`)),v=[M.constVariable({comment:[{jsdoc:!1,lines:[`@ts-ignore`]}],expression:M.conditionalExpression({condition:M.binaryExpression({left:M.typeOfExpression({text:`pageParam`}),operator:`===`,right:M.ots.string(`object`)}),whenFalse:M.objectExpression({multiLine:!0,obj:[{key:r.in,value:M.objectExpression({multiLine:!0,obj:[{key:r.name,value:M.identifier({text:`pageParam`})}]})}]}),whenTrue:M.identifier({text:`pageParam`})}),name:`page`,typeName:d}),M.constVariable({expression:M.callExpression({functionName:_.placeholder,parameters:[`queryKey`,`page`]}),name:`params`})];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?v.push(M.returnVariable({expression:g})):v.push(M.constVariable({destructure:!0,expression:g,name:`data`}),M.returnVariable({expression:`data`}));let y=[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`pageParam`},{name:`queryKey`},{name:`signal`}]}],statements:v})},{key:`queryKey`,value:M.callExpression({functionName:m.placeholder,parameters:[`options`]})}],b=vd(t,e,`infiniteQueryOptions`);b&&y.push({key:`meta`,value:b});let ee=t.getPluginOrThrow(`@hey-api/sdk`),te=t.registerSymbol({exported:!0,name:T({config:t.config.infiniteQueryOptions,name:e.id})}),ne=M.constVariable({comment:t.config.comments?ee.api.createOperationComment({operation:e}):void 0,exportConst:te.exported,expression:M.arrowFunction({parameters:[{isRequired:i,name:`options`,type:s}],statements:[M.returnFunctionCall({args:[M.objectExpression({comments:[{jsdoc:!1,lines:[`@ts-ignore`]}],obj:y})],name:a.placeholder,types:[l,c||`unknown`,`${o.placeholder}<${l}>`,u,p]})]}),name:te.placeholder});t.setSymbolValue(te,ne)},jd=({operation:e,plugin:t,queryFn:n})=>{let r=t.referenceSymbol(t.api.getSelector(`MutationOptions`)),i=yd({operation:e,plugin:t}),a=bd({operation:e,plugin:t}),o=xd({operation:e,plugin:t}),s=`${r.placeholder}<${o}, ${a}, ${i}>`,c=`fnOptions`,l=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:c},{key:`throwOnError`,value:!0}]})]})}),u=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?u.push(M.returnVariable({expression:l})):u.push(M.constVariable({destructure:!0,expression:l,name:`data`}),M.returnVariable({expression:`data`}));let d=[{key:`mutationFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:c}],statements:u})}],f=vd(t,e,`mutationOptions`);f&&d.push({key:`meta`,value:f});let p=t.getPluginOrThrow(`@hey-api/sdk`),m=`mutationOptions`,h=M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${i}>`}],returnType:s,statements:[M.constVariable({expression:M.objectExpression({obj:d}),name:m,typeName:s}),M.returnVariable({expression:m})]}),g=t.registerSymbol({exported:!0,name:T({config:t.config.mutationOptions,name:e.id})}),_=M.constVariable({comment:t.config.comments?p.api.createOperationComment({operation:e}):void 0,exportConst:g.exported,expression:h,name:g.placeholder});t.setSymbolValue(g,_)},Md=`options`,Nd=({operation:e,plugin:t,queryFn:n})=>{if(jc({operation:e}))return;let r=Ac({context:t.context,operation:e});t.getSymbol(t.api.getSelector(`createQueryKey`))||(Dd({plugin:t}),Td({plugin:t}));let i=t.referenceSymbol(t.api.getSelector(`queryOptions`)),a=t.registerSymbol({exported:!0,name:T({config:t.config.queryKeys,name:e.id})}),o=Od({isInfinite:!1,operation:e,plugin:t,symbol:a});t.setSymbolValue(a,o);let s=yd({operation:e,plugin:t}),c=M.awaitExpression({expression:M.callExpression({functionName:n,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:Md},{spread:`queryKey[0]`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),l=[];t.getPluginOrThrow(`@hey-api/sdk`).config.responseStyle===`data`?l.push(M.returnVariable({expression:c})):l.push(M.constVariable({destructure:!0,expression:c,name:`data`}),M.returnVariable({expression:`data`}));let u=[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`queryKey`},{name:`signal`}]}],statements:l})},{key:`queryKey`,value:M.callExpression({functionName:a.placeholder,parameters:[Md]})}],d=vd(t,e,`queryOptions`);d&&u.push({key:`meta`,value:d});let f=t.getPluginOrThrow(`@hey-api/sdk`),p=t.registerSymbol({exported:t.config.queryOptions.exported,name:T({config:t.config.queryOptions,name:e.id}),selector:t.api.getSelector(`queryOptionsFn`,e.id)}),m=M.constVariable({comment:t.config.comments?f.api.createOperationComment({operation:e}):void 0,exportConst:p.exported,expression:M.arrowFunction({parameters:[{isRequired:r,name:Md,type:s}],statements:[M.returnFunctionCall({args:[M.objectExpression({obj:u})],name:i.placeholder})]}),name:p.placeholder});t.setSymbolValue(p,m)},Pd=`options`,Fd=({operation:e,plugin:t})=>{if(jc({operation:e})||!(`useQuery`in t.config))return;let n=t.getPluginOrThrow(`@hey-api/sdk`),r=t.registerSymbol({exported:!0,name:T({config:t.config.useQuery,name:e.id})}),i=t.referenceSymbol(t.api.getSelector(`useQuery`)),a=Ac({context:t.context,operation:e}),o=yd({operation:e,plugin:t}),s=t.referenceSymbol(t.api.getSelector(`queryOptionsFn`,e.id)),c=M.constVariable({comment:t.config.comments?n.api.createOperationComment({operation:e}):void 0,exportConst:r.exported,expression:M.arrowFunction({parameters:[{isRequired:a,name:Pd,type:o}],statements:[M.returnStatement({expression:M.callExpression({functionName:i.placeholder,parameters:[M.callExpression({functionName:s.placeholder,parameters:[Pd]})]})})]}),name:r.placeholder});t.setSymbolValue(r,c)},Id=({plugin:e})=>{e.registerSymbol({external:e.name,meta:{kind:`type`},name:`DefaultError`,selector:e.api.getSelector(`DefaultError`)}),e.registerSymbol({external:e.name,meta:{kind:`type`},name:`InfiniteData`,selector:e.api.getSelector(`InfiniteData`)});let t=e.name===`@tanstack/angular-query-experimental`||e.name===`@tanstack/svelte-query`||e.name===`@tanstack/solid-query`?`MutationOptions`:`UseMutationOptions`;e.registerSymbol({external:e.name,meta:{kind:`type`},name:t,selector:e.api.getSelector(`MutationOptions`)}),e.registerSymbol({external:e.name,name:`infiniteQueryOptions`,selector:e.api.getSelector(`infiniteQueryOptions`)}),e.registerSymbol({external:e.name,name:`queryOptions`,selector:e.api.getSelector(`queryOptions`)}),e.registerSymbol({external:e.name,name:`useQuery`,selector:e.api.getSelector(`useQuery`)}),e.registerSymbol({external:`axios`,meta:{kind:`type`},name:`AxiosError`,selector:e.api.getSelector(`AxiosError`)});let n=e.getPluginOrThrow(`@hey-api/sdk`);e.forEach(`operation`,({operation:t})=>{let r=n.config.asClass?Tc({context:e.context,operation:t,plugin:n}):void 0,i=r?r.values().next().value:void 0,a=i?[e.referenceSymbol(n.api.getSelector(`class`,i.path[0])).placeholder,...i.path.slice(1).map(e=>w({case:`camelCase`,value:e})),i.methodName].filter(Boolean).join(`.`):e.referenceSymbol(n.api.getSelector(`function`,t.id)).placeholder;e.hooks.operation.isQuery(t)&&(e.config.queryOptions.enabled&&Nd({operation:t,plugin:e,queryFn:a}),e.config.infiniteQueryOptions.enabled&&Ad({operation:t,plugin:e,queryFn:a}),`useQuery`in e.config&&e.config.useQuery.enabled&&Fd({operation:t,plugin:e})),e.hooks.operation.isMutation(t)&&e.config.mutationOptions.enabled&&jd({operation:t,plugin:e,queryFn:a})})},Ld=e=>`${Xl({config:S(),id:e.name,operation:e})}InfiniteOptions`,Rd=e=>`${Xl({config:S(),id:e.name,operation:e})}Mutation`,zd=({config:e,id:t,operation:n})=>`${Xl({config:e,id:t,operation:n})}Options`,Bd=({config:e,id:t,isInfinite:n,operation:r})=>`${Xl({config:e,id:t,operation:r})}${n?`Infinite`:``}QueryKey`,Vd=e=>{switch(e.in){case`formData`:return`body`;case`header`:return`headers`;default:return e.in}},Hd=`createQueryKey`,Ud=`infiniteQueryOptions`,Wd=`mutationOptions`,Gd=`QueryKey`,Kd=`queryOptions`,qd=`TOptions`,Jd=({file:e})=>{let t=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`queryKey`,type:M.typeNode(`QueryKey<OptionsLegacyParser>`)},{name:`page`,type:M.typeNode(`K`)}],statements:[M.constVariable({expression:M.identifier({text:`queryKey[0]`}),name:`params`}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.objectExpression({multiLine:!0,obj:[{assertion:`any`,spread:`queryKey[0].body`},{assertion:`any`,spread:`page.body`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].headers`},{spread:`page.headers`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].path`},{spread:`page.path`}]})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`page`}),name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.objectExpression({multiLine:!0,obj:[{spread:`queryKey[0].query`},{spread:`page.query`}]})})})]})}),M.returnVariable({expression:a.factory.createAsExpression(a.factory.createAsExpression(M.identifier({text:`params`}),a.factory.createKeywordTypeNode(a.SyntaxKind.UnknownKeyword)),a.factory.createTypeQueryNode(M.identifier({text:`page`})))})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`Pick<QueryKey<OptionsLegacyParser>[0], 'body' | 'headers' | 'path' | 'query'>`})}),name:`K`}]}),name:`createInfiniteParams`});e.add(t)},Yd=({file:e})=>{let t=M.indexedAccessTypeNode({indexType:M.typeNode(0),objectType:M.typeNode(Gd,[M.typeNode(qd)])}),n=M.identifier({text:`infinite`}),r=ue(S()),i=M.constVariable({expression:M.arrowFunction({multiLine:!0,parameters:[{name:`id`,type:M.typeNode(`string`)},{isRequired:!1,name:`options`,type:M.typeNode(qd)},{isRequired:!1,name:`infinite`,type:M.typeNode(`boolean`)}],returnType:t,statements:[M.constVariable({assertion:t,expression:M.objectExpression({multiLine:!1,obj:[{key:`_id`,value:M.identifier({text:`id`})},{key:r,value:M.identifier({text:`options?.${r} || (options?.client ?? _heyApiClient).getConfig().${r}`})}]}),name:`params`,typeName:t}),M.ifStatement({expression:n,thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`_infinite`}),right:n})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`body`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`body`}),right:M.propertyAccessExpression({expression:`options`,name:`body`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`headers`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`headers`}),right:M.propertyAccessExpression({expression:`options`,name:`headers`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`path`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`path`}),right:M.propertyAccessExpression({expression:`options`,name:`path`})})})]})}),M.ifStatement({expression:M.propertyAccessExpression({expression:M.identifier({text:`options`}),isOptional:!0,name:M.identifier({text:`query`})}),thenStatement:M.block({statements:[M.expressionToStatement({expression:M.binaryExpression({left:M.propertyAccessExpression({expression:`params`,name:`query`}),right:M.propertyAccessExpression({expression:`options`,name:`query`})})})]})}),M.returnVariable({expression:`params`})],types:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`OptionsLegacyParser`})}),name:qd}]}),name:Hd});e.add(i)},Xd=({file:e})=>{let t=[{name:`_id`,type:M.keywordTypeNode({keyword:`string`})},{isRequired:!1,name:`_infinite`,type:M.keywordTypeNode({keyword:`boolean`})}],n=M.typeAliasDeclaration({name:Gd,type:M.typeTupleNode({types:[M.typeIntersectionNode({types:[M.typeReferenceNode({typeName:`Pick<${qd}, '${ue(S())}' | 'body' | 'headers' | 'path' | 'query'>`}),M.typeInterfaceNode({properties:t,useLegacyResolution:!0})]})]}),typeParameters:[{extends:M.typeReferenceNode({typeName:M.identifier({text:`OptionsLegacyParser`})}),name:qd}]});e.add(n)},Zd=({client:e,file:t,operation:n,typesModulePath:r})=>{let{name:i}=zl({client:e,meta:n.parameters.length?{$ref:n.name,name:n.name}:void 0,nameTransformer:Vl,onImport:e=>{t.import({asType:!0,module:r,name:e})}});return{typeData:Gl({importedType:i})}},Qd=({client:e,file:t,operation:n,pluginName:r,typesModulePath:i})=>{let a=S(),{name:o}=zl({client:e,meta:{$ref:n.name,name:n.name},nameTransformer:Hl,onImport:e=>{t.import({asType:!0,module:i,name:e})}}),s={asType:!0,name:o};if(s.name||(s=t.import({asType:!0,module:r,name:`DefaultError`})),x(a).name===`@hey-api/client-axios`){let e=t.import({asType:!0,module:`axios`,name:`AxiosError`});s={...e,name:`${e.name}<${s.name}>`}}return{typeError:s}},$d=({client:e,file:t,operation:n,typesModulePath:r})=>{let{name:i}=zl({client:e,meta:{$ref:n.name,name:n.name},nameTransformer:Wl,onImport:e=>{t.import({asType:!0,module:r,name:e})}});return{typeResponse:i||`void`}},ef=({id:e,isInfinite:t})=>M.arrayLiteralExpression({elements:[M.callExpression({functionName:Hd,parameters:[M.ots.string(e),`options`,t?M.ots.boolean(!0):void 0]})],multiLine:!1}),tf=({client:e,files:t,plugin:n})=>{let r=S();if(C(r))throw Error(`TanStack Query plugin does not support legacy clients`);let i=t[n.name];i.import({asType:!0,module:Yc({config:r,sourceOutput:n.output}),name:`OptionsLegacyParser`});let a=te({moduleOutput:t.types.nameWithoutExtension(),sourceOutput:n.output}),o=n.name===`@tanstack/angular-query-experimental`||n.name===`@tanstack/svelte-query`||n.name===`@tanstack/solid-query`?`MutationOptions`:`UseMutationOptions`,s,c=!1,l=!1,u=!1,d=!1,f=!1,p=new Map;for(let m of e.services)for(let h of m.operations){let g=F(h);if(p.has(g))continue;p.set(g,!0);let _=[r.plugins[`@hey-api/sdk`]?.config.asClass&&Io({config:r,name:m.name}),Xl({config:r,handleIllegal:!r.plugins[`@hey-api/sdk`]?.config.asClass,id:h.name,operation:h})].filter(Boolean).join(`.`),v=!1;if(n.config.queryOptions.enabled&&[`GET`,`POST`].includes(h.method)){f||(f=!0,l||=(Xd({file:i}),Yd({file:i}),!0),i.import({module:n.name,name:Kd})),v=!0;let{typeData:t}=Zd({client:e,file:i,operation:h,typesModulePath:a}),o=ws(h.parameters),s=M.constVariable({exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:o,name:`options`,type:t}],statements:ef({id:h.name})}),name:Bd({config:r,id:h.name,operation:h})});i.add(s);let c=M.constVariable({comment:[],exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:o,name:`options`,type:t}],statements:[M.returnFunctionCall({args:[M.objectExpression({obj:[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`queryKey`},{name:`signal`}]}],statements:[M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`queryKey[0]`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})},{key:`queryKey`,value:M.callExpression({functionName:Bd({config:r,id:h.name,operation:h}),parameters:[`options`]})}]})],name:Kd})]}),name:zd({config:r,id:h.name,operation:h})});i.add(c)}if(n.config.infiniteQueryOptions&&[`GET`,`POST`].includes(h.method)){let t,o=h.parameters.find(n=>{if(Ci(r.parser.pagination).test(n.name))return t=n,!0;if(n.in===`body`){if(n.export===`reference`){let i=n.$refs[0];return e.models.find(e=>e.meta?.$ref===i)?.properties.find(e=>{if(Ci(r.parser.pagination).test(e.name))return t=e,!0})}return n.properties.find(e=>{if(Ci(r.parser.pagination).test(e.name))return t=e,!0})}});if(o&&t){u||(u=!0,l||=(Xd({file:i}),Yd({file:i}),!0),c||=(Jd({file:i}),!0),i.import({module:n.name,name:Ud}),s=i.import({asType:!0,module:n.name,name:`InfiniteData`})),v=!0;let{typeData:d}=Zd({client:e,file:i,operation:h,typesModulePath:a}),{typeError:f}=Qd({client:e,file:i,operation:h,pluginName:n.name,typesModulePath:a}),{typeResponse:p}=$d({client:e,file:i,operation:h,typesModulePath:a}),m=ws(h.parameters),g=`${Gd}<${d}>`,y=`Pick<${g}[0], 'body' | 'headers' | 'path' | 'query'>`,b=`${t.base} | ${y}`,ee=M.constVariable({exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:m,name:`options`,type:d}],returnType:g,statements:ef({id:h.name,isInfinite:!0})}),name:Bd({config:r,id:h.name,isInfinite:!0,operation:h})});i.add(ee);let te=M.constVariable({comment:[],exportConst:!0,expression:M.arrowFunction({parameters:[{isRequired:m,name:`options`,type:d}],statements:[M.returnFunctionCall({args:[M.objectExpression({comments:[{jsdoc:!1,lines:[`@ts-ignore`]}],obj:[{key:`queryFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{destructure:[{name:`pageParam`},{name:`queryKey`},{name:`signal`}]}],statements:[M.constVariable({comment:[{jsdoc:!1,lines:[`@ts-ignore`]}],expression:M.conditionalExpression({condition:M.binaryExpression({left:M.typeOfExpression({text:`pageParam`}),operator:`===`,right:M.ots.string(`object`)}),whenFalse:M.objectExpression({multiLine:!0,obj:[{key:Vd(o),value:M.objectExpression({multiLine:!0,obj:[{key:t.name,value:M.identifier({text:`pageParam`})}]})}]}),whenTrue:M.identifier({text:`pageParam`})}),name:`page`,typeName:y}),M.constVariable({expression:M.callExpression({functionName:`createInfiniteParams`,parameters:[`queryKey`,`page`]}),name:`params`}),M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:`params`},{key:`signal`,shorthand:!0,value:M.identifier({text:`signal`})},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})},{key:`queryKey`,value:M.callExpression({functionName:Bd({config:r,id:h.name,isInfinite:!0,operation:h}),parameters:[`options`]})}]})],name:Ud,types:[p,f.name,`${typeof s==`string`?s:s.name}<${p}>`,g,b]})]}),name:Ld(h)});i.add(te)}}if(n.config.mutationOptions&&[`DELETE`,`PATCH`,`POST`,`PUT`].includes(h.method)){d||(d=!0,i.import({asType:!0,module:n.name,name:o})),v=!0;let{typeData:t}=Zd({client:e,file:i,operation:h,typesModulePath:a}),{typeError:r}=Qd({client:e,file:i,operation:h,pluginName:n.name,typesModulePath:a}),{typeResponse:s}=$d({client:e,file:i,operation:h,typesModulePath:a}),c=`fnOptions`,l=M.arrowFunction({parameters:[{isRequired:!1,name:`options`,type:`Partial<${t}>`}],statements:[M.constVariable({expression:M.objectExpression({obj:[{key:`mutationFn`,value:M.arrowFunction({async:!0,multiLine:!0,parameters:[{name:c}],statements:[M.constVariable({destructure:!0,expression:M.awaitExpression({expression:M.callExpression({functionName:_,parameters:[M.objectExpression({multiLine:!0,obj:[{spread:`options`},{spread:c},{key:`throwOnError`,value:!0}]})]})}),name:`data`}),M.returnVariable({expression:`data`})]})}]}),name:Wd,typeName:`${o}<${s}, ${r.name}, ${t}>`}),M.returnVariable({expression:Wd})]}),u=M.constVariable({comment:[],exportConst:!0,expression:l,name:Rd(h)});i.add(u)}(f||u)&&i.import({alias:`_heyApiClient`,module:te({moduleOutput:t.client.nameWithoutExtension(),sourceOutput:n.output}),name:`client`}),v&&i.import({module:te({moduleOutput:t.sdk.nameWithoutExtension(),sourceOutput:n.output}),name:_.split(`.`)[0]})}},nf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/angular-query-experimental`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/angular-query-experimental`,output:`@tanstack/angular-query-experimental`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},rf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/react-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/react-query`,output:`@tanstack/react-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions}),e.config.useQuery=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!1,name:`use{{name}}Query`},mappers:{boolean:e=>({enabled:e}),function:e=>({enabled:!0,name:e}),object:e=>({enabled:!0,...e}),string:e=>({enabled:!0,name:e})},value:e.config.useQuery}),e.config.useQuery.enabled&&(e.config.queryOptions.enabled||(e.config.queryOptions.enabled=!0,e.config.queryOptions.exported=!1))}},af={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/solid-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/solid-query`,output:`@tanstack/solid-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},of={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/svelte-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/svelte-query`,output:`@tanstack/svelte-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}},sf={api:new class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}}({name:`@tanstack/vue-query`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1},dependencies:[`@hey-api/sdk`,`@hey-api/typescript`],handler:Id,handlerLegacy:tf,name:`@tanstack/vue-query`,output:`@tanstack/vue-query`,resolveConfig:(e,t)=>{e.config.infiniteQueryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteQueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryKeys}),e.config.infiniteQueryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}InfiniteOptions`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.infiniteQueryOptions}),e.config.mutationOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}Mutation`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.mutationOptions}),e.config.queryKeys=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`{{name}}QueryKey`,tags:!1},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryKeys}),e.config.queryOptions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,exported:!0,name:`{{name}}Options`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.queryOptions})}};var cf=class{constructor(e){this.meta=e}getSelector(...e){return[this.meta.name,...e]}};const lf=({operation:e,plugin:t})=>{let n=[],r=t.getPluginOrThrow(`@hey-api/typescript`),i=t.getSymbol(r.api.getSelector(`data`,e.id));i&&(e.body&&n.push({isRequired:e.body.required,name:`Body`,type:`${i.placeholder}['body']`}),e.parameters&&(e.parameters.header&&n.push({isRequired:Mn(e.parameters.header),name:`Headers`,type:`${i.placeholder}['headers']`}),e.parameters.path&&n.push({isRequired:Mn(e.parameters.path),name:`Params`,type:`${i.placeholder}['path']`}),e.parameters.query&&n.push({isRequired:Mn(e.parameters.query),name:`Querystring`,type:`${i.placeholder}['query']`})));let{errors:a,responses:o}=Rn(e),s,c=t.getSymbol(r.api.getSelector(`errors`,e.id));if(c&&a&&a.properties){let e=Object.keys(a.properties);if(e.length){if(!e.includes(`default`))s=M.typeReferenceNode({typeName:c.placeholder});else if(e.length>1){let e=M.typeReferenceNode({typeName:c.placeholder}),t=M.literalTypeNode({literal:M.stringLiteral({text:`default`})});s=M.typeReferenceNode({typeArguments:[e,t],typeName:`Omit`})}}}let l,u=t.getSymbol(r.api.getSelector(`responses`,e.id));if(u&&o&&o.properties){let e=Object.keys(o.properties);if(e.length){if(!e.includes(`default`))l=M.typeReferenceNode({typeName:u.placeholder});else if(e.length>1){let e=M.typeReferenceNode({typeName:u.placeholder}),t=M.literalTypeNode({literal:M.stringLiteral({text:`default`})});l=M.typeReferenceNode({typeArguments:[e,t],typeName:`Omit`})}}}let d=[s,l].filter(Boolean);if(d.length&&n.push({name:`Reply`,type:M.typeIntersectionNode({types:d})}),!n.length)return;let f=t.referenceSymbol(t.api.getSelector(`RouteHandler`));return{name:e.id,type:M.typeReferenceNode({typeArguments:[M.typeInterfaceNode({properties:n,useLegacyResolution:!1})],typeName:f.placeholder})}},uf={api:new cf({name:`fastify`}),config:{exportFromIndex:!1},dependencies:[`@hey-api/typescript`],handler:({plugin:e})=>{e.registerSymbol({external:`fastify`,meta:{kind:`type`},name:`RouteHandler`,selector:e.api.getSelector(`RouteHandler`)});let t=e.registerSymbol({exported:!0,meta:{kind:`type`},name:`RouteHandlers`}),n=[];e.forEach(`operation`,({operation:t})=>{let r=lf({operation:t,plugin:e});r&&n.push(r)});let r=M.typeAliasDeclaration({exportType:t.exported,name:t.placeholder,type:M.typeInterfaceNode({properties:n,useLegacyResolution:!1})});e.setSymbolValue(t,r)},name:`fastify`},X={actions:{args:M.identifier({text:`args`}),base64:M.identifier({text:`base64`}),bic:M.identifier({text:`bic`}),brand:M.identifier({text:`brand`}),bytes:M.identifier({text:`bytes`}),check:M.identifier({text:`check`}),checkItems:M.identifier({text:`checkItems`}),creditCard:M.identifier({text:`creditCard`}),cuid2:M.identifier({text:`cuid2`}),decimal:M.identifier({text:`decimal`}),description:M.identifier({text:`description`}),digits:M.identifier({text:`digits`}),email:M.identifier({text:`email`}),emoji:M.identifier({text:`emoji`}),empty:M.identifier({text:`empty`}),endsWith:M.identifier({text:`endsWith`}),entries:M.identifier({text:`entries`}),everyItem:M.identifier({text:`everyItem`}),excludes:M.identifier({text:`excludes`}),filterItems:M.identifier({text:`filterItems`}),findItem:M.identifier({text:`findItem`}),finite:M.identifier({text:`finite`}),flavor:M.identifier({text:`flavor`}),graphemes:M.identifier({text:`graphemes`}),gtValue:M.identifier({text:`gtValue`}),hash:M.identifier({text:`hash`}),hexColor:M.identifier({text:`hexColor`}),hexadecimal:M.identifier({text:`hexadecimal`}),imei:M.identifier({text:`imei`}),includes:M.identifier({text:`includes`}),integer:M.identifier({text:`integer`}),ip:M.identifier({text:`ip`}),ipv4:M.identifier({text:`ipv4`}),ipv6:M.identifier({text:`ipv6`}),isoDate:M.identifier({text:`isoDate`}),isoDateTime:M.identifier({text:`isoDateTime`}),isoTime:M.identifier({text:`isoTime`}),isoTimeSecond:M.identifier({text:`isoTimeSecond`}),isoTimestamp:M.identifier({text:`isoTimestamp`}),isoWeek:M.identifier({text:`isoWeek`}),length:M.identifier({text:`length`}),ltValue:M.identifier({text:`ltValue`}),mac:M.identifier({text:`mac`}),mac48:M.identifier({text:`mac48`}),mac64:M.identifier({text:`mac64`}),mapItems:M.identifier({text:`mapItems`}),maxBytes:M.identifier({text:`maxBytes`}),maxEntries:M.identifier({text:`maxEntries`}),maxGraphemes:M.identifier({text:`maxGraphemes`}),maxLength:M.identifier({text:`maxLength`}),maxSize:M.identifier({text:`maxSize`}),maxValue:M.identifier({text:`maxValue`}),maxWords:M.identifier({text:`maxWords`}),metadata:M.identifier({text:`metadata`}),mimeType:M.identifier({text:`mimeType`}),minBytes:M.identifier({text:`minBytes`}),minEntries:M.identifier({text:`minEntries`}),minGraphemes:M.identifier({text:`minGraphemes`}),minLength:M.identifier({text:`minLength`}),minSize:M.identifier({text:`minSize`}),minValue:M.identifier({text:`minValue`}),minWords:M.identifier({text:`minWords`}),multipleOf:M.identifier({text:`multipleOf`}),nanoid:M.identifier({text:`nanoid`}),nonEmpty:M.identifier({text:`nonEmpty`}),normalize:M.identifier({text:`normalize`}),notBytes:M.identifier({text:`notBytes`}),notEntries:M.identifier({text:`notEntries`}),notGraphemes:M.identifier({text:`notGraphemes`}),notLength:M.identifier({text:`notLength`}),notSize:M.identifier({text:`notSize`}),notValue:M.identifier({text:`notValue`}),notValues:M.identifier({text:`notValues`}),notWords:M.identifier({text:`notWords`}),octal:M.identifier({text:`octal`}),parseJson:M.identifier({text:`parseJson`}),partialCheck:M.identifier({text:`partialCheck`}),rawCheck:M.identifier({text:`rawCheck`}),rawTransform:M.identifier({text:`rawTransform`}),readonly:M.identifier({text:`readonly`}),reduceItems:M.identifier({text:`reduceItems`}),regex:M.identifier({text:`regex`}),returns:M.identifier({text:`returns`}),rfcEmail:M.identifier({text:`rfcEmail`}),safeInteger:M.identifier({text:`safeInteger`}),size:M.identifier({text:`size`}),slug:M.identifier({text:`slug`}),someItem:M.identifier({text:`someItem`}),sortItems:M.identifier({text:`sortItems`}),startsWith:M.identifier({text:`startsWith`}),stringifyJson:M.identifier({text:`stringifyJson`}),title:M.identifier({text:`title`}),toLowerCase:M.identifier({text:`toLowerCase`}),toMaxValue:M.identifier({text:`toMaxValue`}),toMinValue:M.identifier({text:`toMinValue`}),toUpperCase:M.identifier({text:`toUpperCase`}),transform:M.identifier({text:`transform`}),trim:M.identifier({text:`trim`}),trimEnd:M.identifier({text:`trimEnd`}),trimStart:M.identifier({text:`trimStart`}),ulid:M.identifier({text:`ulid`}),url:M.identifier({text:`url`}),uuid:M.identifier({text:`uuid`}),value:M.identifier({text:`value`}),values:M.identifier({text:`values`}),words:M.identifier({text:`words`})},async:{argsAsync:M.identifier({text:`argsAsync`}),arrayAsync:M.identifier({text:`arrayAsync`}),awaitAsync:M.identifier({text:`awaitAsync`}),checkAsync:M.identifier({text:`checkAsync`}),checkItemsAsync:M.identifier({text:`checkItemsAsync`}),customAsync:M.identifier({text:`customAsync`}),exactOptionalAsync:M.identifier({text:`exactOptionalAsync`}),fallbackAsync:M.identifier({text:`fallbackAsync`}),forwardAsync:M.identifier({text:`forwardAsync`}),getDefaultsAsync:M.identifier({text:`getDefaultsAsync`}),getFallbacksAsync:M.identifier({text:`getFallbacksAsync`}),intersectAsync:M.identifier({text:`intersectAsync`}),lazyAsync:M.identifier({text:`lazyAsync`}),looseObjectAsync:M.identifier({text:`looseObjectAsync`}),looseTupleAsync:M.identifier({text:`looseTupleAsync`}),mapAsync:M.identifier({text:`mapAsync`}),nonNullableAsync:M.identifier({text:`nonNullableAsync`}),nonNullishAsync:M.identifier({text:`nonNullishAsync`}),nonOptionalAsync:M.identifier({text:`nonOptionalAsync`}),nullableAsync:M.identifier({text:`nullableAsync`}),nullishAsync:M.identifier({text:`nullishAsync`}),objectAsync:M.identifier({text:`objectAsync`}),objectWithRestAsync:M.identifier({text:`objectWithRestAsync`}),optionalAsync:M.identifier({text:`optionalAsync`}),parseAsync:M.identifier({text:`parseAsync`}),parserAsync:M.identifier({text:`parserAsync`}),partialAsync:M.identifier({text:`partialAsync`}),partialCheckAsync:M.identifier({text:`partialCheckAsync`}),pipeAsync:M.identifier({text:`pipeAsync`}),rawCheckAsync:M.identifier({text:`rawCheckAsync`}),rawTransformAsync:M.identifier({text:`rawTransformAsync`}),recordAsync:M.identifier({text:`recordAsync`}),requiredAsync:M.identifier({text:`requiredAsync`}),returnsAsync:M.identifier({text:`returnsAsync`}),safeParseAsync:M.identifier({text:`safeParseAsync`}),safeParserAsync:M.identifier({text:`safeParserAsync`}),setAsync:M.identifier({text:`setAsync`}),strictObjectAsync:M.identifier({text:`strictObjectAsync`}),strictTupleAsync:M.identifier({text:`strictTupleAsync`}),transformAsync:M.identifier({text:`transformAsync`}),tupleAsync:M.identifier({text:`tupleAsync`}),tupleWithRestAsync:M.identifier({text:`tupleWithRestAsync`}),undefinedableAsync:M.identifier({text:`undefinedableAsync`}),unionAsync:M.identifier({text:`unionAsync`}),variantAsync:M.identifier({text:`variantAsync`})},methods:{assert:M.identifier({text:`assert`}),config:M.identifier({text:`config`}),fallback:M.identifier({text:`fallback`}),flatten:M.identifier({text:`flatten`}),forward:M.identifier({text:`forward`}),getDefault:M.identifier({text:`getDefault`}),getDefaults:M.identifier({text:`getDefaults`}),getDescription:M.identifier({text:`getDescription`}),getFallback:M.identifier({text:`getFallback`}),getFallbacks:M.identifier({text:`getFallbacks`}),getMetadata:M.identifier({text:`getMetadata`}),getTitle:M.identifier({text:`getTitle`}),is:M.identifier({text:`is`}),keyof:M.identifier({text:`keyof`}),message:M.identifier({text:`message`}),omit:M.identifier({text:`omit`}),parse:M.identifier({text:`parse`}),parser:M.identifier({text:`parser`}),partial:M.identifier({text:`partial`}),pick:M.identifier({text:`pick`}),pipe:M.identifier({text:`pipe`}),required:M.identifier({text:`required`}),safeParse:M.identifier({text:`safeParse`}),safeParser:M.identifier({text:`safeParser`}),summarize:M.identifier({text:`summarize`}),unwrap:M.identifier({text:`unwrap`})},schemas:{any:M.identifier({text:`any`}),array:M.identifier({text:`array`}),bigInt:M.identifier({text:`bigint`}),blob:M.identifier({text:`blob`}),boolean:M.identifier({text:`boolean`}),custom:M.identifier({text:`custom`}),date:M.identifier({text:`date`}),enum:M.identifier({text:`enum`}),exactOptional:M.identifier({text:`exactOptional`}),file:M.identifier({text:`file`}),function:M.identifier({text:`function`}),instance:M.identifier({text:`instance`}),intersect:M.identifier({text:`intersect`}),lazy:M.identifier({text:`lazy`}),literal:M.identifier({text:`literal`}),looseObject:M.identifier({text:`looseObject`}),looseTuple:M.identifier({text:`looseTuple`}),map:M.identifier({text:`map`}),nan:M.identifier({text:`nan`}),never:M.identifier({text:`never`}),nonNullable:M.identifier({text:`nonNullable`}),nonNullish:M.identifier({text:`nonNullish`}),nonOptional:M.identifier({text:`nonOptional`}),null:M.identifier({text:`null`}),nullable:M.identifier({text:`nullable`}),nullish:M.identifier({text:`nullish`}),number:M.identifier({text:`number`}),object:M.identifier({text:`object`}),objectWithRest:M.identifier({text:`objectWithRest`}),optional:M.identifier({text:`optional`}),picklist:M.identifier({text:`picklist`}),promise:M.identifier({text:`promise`}),record:M.identifier({text:`record`}),set:M.identifier({text:`set`}),strictObject:M.identifier({text:`strictObject`}),strictTuple:M.identifier({text:`strictTuple`}),string:M.identifier({text:`string`}),symbol:M.identifier({text:`symbol`}),tuple:M.identifier({text:`tuple`}),tupleWithRest:M.identifier({text:`tupleWithRest`}),undefined:M.identifier({text:`undefined`}),undefinedable:M.identifier({text:`undefinedable`}),union:M.identifier({text:`union`}),unknown:M.identifier({text:`unknown`}),variant:M.identifier({text:`variant`}),void:M.identifier({text:`void`})},storages:{},types:{GenericSchema:M.identifier({text:`GenericSchema`})},utils:{}};var df=class{constructor(e){this.meta=e}createRequestValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`data`,e.id));if(!n)return;let r=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),i=`data`;return M.arrowFunction({async:!0,parameters:[{name:i}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:X.async.parseAsync}),parameters:[M.identifier({text:n.placeholder}),M.identifier({text:i})]})})})]})}createResponseValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`responses`,e.id));if(!n)return;let r=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),i=`data`;return M.arrowFunction({async:!0,parameters:[{name:i}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:X.async.parseAsync}),parameters:[M.identifier({text:n.placeholder}),M.identifier({text:i})]})})})]})}getSelector(...e){return[this.meta.name,...e]}};const ff=e=>{if(e.length>=2){if(e[0]===`components`){if(e[1]===`schemas`)return`schema`;if(e[1]===`parameters`)return`parameter`;if(e[1]===`requestBodies`)return`requestBody`}if(e[0]===`paths`)return`operation`;if(e[0]===`servers`)return`server`;if(e[0]===`webhooks`)return`webhook`}},pf={int16:{max:32767,maxError:`Invalid value: Expected int16 to be <= 2^15-1`,min:-32768,minError:`Invalid value: Expected int16 to be >= -2^15`,needsBigInt:!1},int32:{max:2147483647,maxError:`Invalid value: Expected int32 to be <= 2^31-1`,min:-2147483648,minError:`Invalid value: Expected int32 to be >= -2^31`,needsBigInt:!1},int64:{max:`9223372036854775807`,maxError:`Invalid value: Expected int64 to be <= 2^63-1`,min:`-9223372036854775808`,minError:`Invalid value: Expected int64 to be >= -2^63`,needsBigInt:!0},int8:{max:127,maxError:`Invalid value: Expected int8 to be <= 2^7-1`,min:-128,minError:`Invalid value: Expected int8 to be >= -2^7`,needsBigInt:!1},uint16:{max:65535,maxError:`Invalid value: Expected uint16 to be <= 2^16-1`,min:0,minError:`Invalid value: Expected uint16 to be >= 0`,needsBigInt:!1},uint32:{max:4294967295,maxError:`Invalid value: Expected uint32 to be <= 2^32-1`,min:0,minError:`Invalid value: Expected uint32 to be >= 0`,needsBigInt:!1},uint64:{max:`18446744073709551615`,maxError:`Invalid value: Expected uint64 to be <= 2^64-1`,min:`0`,minError:`Invalid value: Expected uint64 to be >= 0`,needsBigInt:!0},uint8:{max:255,maxError:`Invalid value: Expected uint8 to be <= 2^8-1`,min:0,minError:`Invalid value: Expected uint8 to be >= 0`,needsBigInt:!1}},mf=e=>e!==void 0&&e in pf,hf=e=>mf(e)&&pf[e].needsBigInt,gf=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},_f=({_path:e,operation:t,plugin:n,state:r})=>{if(n.config.requests.enabled){let i=new Set,a={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let r in t.parameters.header){let a=t.parameters.header[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`headers`))}Object.keys(e).length&&(a.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let r in t.parameters.path){let a=t.parameters.path[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`path`))}Object.keys(e).length&&(a.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let r in t.parameters.query){let a=t.parameters.query[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`query`))}Object.keys(e).length&&(a.properties.query={properties:e,required:n,type:`object`})}}t.body&&(a.properties.body=t.body.schema,t.body.required&&i.add(`body`)),a.required=[...i],Q({_path:e,plugin:n,schema:a,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(e)},name:T({config:n.config.requests,name:t.id}),selector:n.api.getSelector(`data`,t.id)})})}if(n.config.responses.enabled&&t.responses){let{response:i}=Rn(t);if(i){let a=[...e,`responses`];Q({_path:a,plugin:n,schema:i,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(a)},name:T({config:n.config.responses,name:t.id}),selector:n.api.getSelector(`responses`,t.id)})})}}},vf=({_path:e,operation:t,plugin:n,state:r})=>{if(n.config.webhooks.enabled){let i=new Set,a={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let r in t.parameters.header){let a=t.parameters.header[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`headers`))}Object.keys(e).length&&(a.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let r in t.parameters.path){let a=t.parameters.path[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`path`))}Object.keys(e).length&&(a.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let r in t.parameters.query){let a=t.parameters.query[r];e[a.name]=a.schema,a.required&&(n.push(a.name),i.add(`query`))}Object.keys(e).length&&(a.properties.query={properties:e,required:n,type:`object`})}}t.body&&(a.properties.body=t.body.schema,t.body.required&&i.add(`body`)),a.required=[...i],Q({_path:e,plugin:n,schema:a,state:r,symbol:n.registerSymbol({exported:!0,meta:{resourceType:ff(e)},name:T({config:n.config.webhooks,name:t.id}),selector:n.api.getSelector(`webhook-request`,t.id)})})}},Z=({pipes:e,plugin:t})=>{if(e.length===1)return e[0];let n=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.methods.pipe}),parameters:e})},yf=({_path:e,plugin:t,schema:n,state:r})=>{let i=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),a=M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.array}),o=[];if(n.items){n=N({schema:n});let i=n.items.map((n,i)=>Z({pipes:Q({_path:[...e,`items`,i],plugin:t,schema:n,state:r}),plugin:t}));if(i.length===1){let e=M.callExpression({functionName:a,parameters:i});o.push(e)}else{n.logicalOperator;let r=M.callExpression({functionName:a,parameters:[kf({_path:e,plugin:t,schema:{type:`unknown`}})]});o.push(r)}}else{let n=M.callExpression({functionName:a,parameters:[kf({_path:e,plugin:t,schema:{type:`unknown`}})]});o.push(n)}if(n.minItems===n.maxItems&&n.minItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.length}),parameters:[M.valueToExpression({value:n.minItems})]});o.push(e)}else{if(n.minItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.minLength}),parameters:[M.valueToExpression({value:n.minItems})]});o.push(e)}if(n.maxItems!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.actions.maxLength}),parameters:[M.valueToExpression({value:n.maxItems})]});o.push(e)}}return Z({pipes:o,plugin:t})},bf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return typeof t.const==`boolean`?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.literal}),parameters:[M.ots.boolean(t.const)]}):M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.boolean})})},xf=({_path:e,plugin:t,schema:n})=>{let r=[],i=!1;for(let e of n.items??[])e.type===`string`&&typeof e.const==`string`?r.push(M.stringLiteral({text:e.const})):(e.type===`null`||e.const===null)&&(i=!0);if(!r.length)return kf({_path:e,plugin:t,schema:{type:`unknown`}});let a=t.referenceSymbol(t.api.getSelector(`import`,`valibot`)),o=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:X.schemas.picklist}),parameters:[M.arrayLiteralExpression({elements:r,multiLine:!1})]});return i&&(o=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:X.schemas.nullable}),parameters:[o]})),o},Sf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.never})})},Cf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.null})})},wf=({plugin:e,schema:t})=>{let n=t.format,r=t.type===`integer`,i=hf(n),a=mf(n)?pf[n]:null,o=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));if(t.const!==void 0&&t.const!==null){let e=t.const,r;if(typeof e==`number`&&!n)r=M.ots.number(e);else if(typeof e==`number`&&n)r=i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(e.toString())]}):M.ots.number(e);else if(typeof e==`string`&&i){let t=e.endsWith(`n`)?e.slice(0,-1):e;r=M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(t)]})}else if(typeof e==`bigint`){let t=e.toString(),n=t.endsWith(`n`)?t.slice(0,-1):t;r=M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(n)]})}else r=M.valueToExpression({value:e});return M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.literal}),parameters:[r]})}let s=[];if(i){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.union}),parameters:[M.arrayLiteralExpression({elements:[M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.number})}),M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.string})}),M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.bigInt})})],multiLine:!1})]});s.push(e);let t=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.transform}),parameters:[M.arrowFunction({parameters:[{name:`x`}],statements:M.callExpression({functionName:`BigInt`,parameters:[M.identifier({text:`x`})]})})]});s.push(t)}else{let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.schemas.number})});s.push(e)}if(!i&&r){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.integer})});s.push(e)}if(a){let e=a.min,t=a.max,n=a.minError,r=a.maxError,c=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.minValue}),parameters:[i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(e.toString())]}):M.ots.number(e),M.ots.string(n)]});s.push(c);let l=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.maxValue}),parameters:[i?M.callExpression({functionName:`BigInt`,parameters:[M.ots.string(t.toString())]}):M.ots.number(t),M.ots.string(r)]});s.push(l)}if(t.exclusiveMinimum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.gtValue}),parameters:[gf({isBigInt:i,value:t.exclusiveMinimum})]});s.push(e)}else if(t.minimum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.minValue}),parameters:[gf({isBigInt:i,value:t.minimum})]});s.push(e)}if(t.exclusiveMaximum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.ltValue}),parameters:[gf({isBigInt:i,value:t.exclusiveMaximum})]});s.push(e)}else if(t.maximum!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:o.placeholder,name:X.actions.maxValue}),parameters:[gf({isBigInt:i,value:t.maximum})]});s.push(e)}return Z({pipes:s,plugin:e})},Tf=({_path:e,plugin:t,schema:n,state:r})=>{let i=[],o=n.required??[];for(let s in n.properties){let c=n.properties[s],l=o.includes(s),u=Q({_path:[...e,`properties`,s],optional:!l,plugin:t,schema:c,state:r});E.lastIndex=0;let d;d=E.test(s)?s.startsWith(`-`)?a.factory.createStringLiteral(s):a.factory.createNumericLiteral(s):s,(s.match(/^[0-9]/)&&s.match(/\D+/g)||s.match(/\W/g))&&!s.startsWith(`'`)&&!s.endsWith(`'`)&&(d=`'${s}'`),i.push(M.propertyAssignment({initializer:Z({pipes:u,plugin:t}),name:d}))}let s=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));if(n.additionalProperties&&n.additionalProperties.type===`object`&&!Object.keys(i).length){let i=Q({_path:[...e,`additionalProperties`],plugin:t,schema:n.additionalProperties,state:r});return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.string}),parameters:[]}),Z({pipes:i,plugin:t})]})}}let c=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:X.schemas.object}),parameters:[a.factory.createObjectLiteralExpression(i,!0)]});return{anyType:X.types.GenericSchema.text,expression:c}},Ef=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));if(typeof t.const==`string`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.literal}),parameters:[M.ots.string(t.const)]});let r=[],i=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.schemas.string})});if(r.push(i),t.format)switch(t.format){case`date`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.isoDate})}));break;case`date-time`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.isoTimestamp})}));break;case`ipv4`:case`ipv6`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.ip})}));break;case`uri`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.url})}));break;case`email`:case`time`:case`uuid`:r.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:M.identifier({text:t.format})})}));break}if(t.minLength===t.maxLength&&t.minLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.length}),parameters:[M.valueToExpression({value:t.minLength})]});r.push(e)}else{if(t.minLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.minLength}),parameters:[M.valueToExpression({value:t.minLength})]});r.push(e)}if(t.maxLength!==void 0){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.maxLength}),parameters:[M.valueToExpression({value:t.maxLength})]});r.push(e)}}if(t.pattern){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:X.actions.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]});r.push(e)}return Z({pipes:r,plugin:e})},Df=({_path:e,plugin:t,schema:n,state:r})=>{let i=t.referenceSymbol(t.api.getSelector(`import`,`valibot`));if(n.const&&Array.isArray(n.const)){let e=n.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.literal}),parameters:[M.valueToExpression({value:e})]}));return M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]})}if(n.items){let a=n.items.map((n,i)=>Z({pipes:Q({_path:[...e,`items`,i],plugin:t,schema:n,state:r}),plugin:t}));return M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:X.schemas.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]})}return kf({_path:e,plugin:t,schema:{type:`unknown`}})},Of=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.undefined})})},kf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.unknown})})},Af=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`valibot`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:X.schemas.void})})},jf=({_path:e,plugin:t,schema:n,state:r})=>{switch(n.type){case`array`:return{expression:yf({_path:e,plugin:t,schema:n,state:r})};case`boolean`:return{expression:bf({_path:e,plugin:t,schema:n})};case`enum`:return{expression:xf({_path:e,plugin:t,schema:n})};case`integer`:case`number`:return{expression:wf({_path:e,plugin:t,schema:n})};case`never`:return{expression:Sf({_path:e,plugin:t,schema:n})};case`null`:return{expression:Cf({_path:e,plugin:t,schema:n})};case`object`:return Tf({_path:e,plugin:t,schema:n,state:r});case`string`:return n.format===`int64`||n.format===`uint64`?{expression:wf({_path:e,plugin:t,schema:n})}:{expression:Ef({_path:e,plugin:t,schema:n})};case`tuple`:return{expression:Df({_path:e,plugin:t,schema:n,state:r})};case`undefined`:return{expression:Of({_path:e,plugin:t,schema:n})};case`unknown`:return{expression:kf({_path:e,plugin:t,schema:n})};case`void`:return{expression:Af({_path:e,plugin:t,schema:n})}}},Q=({$ref:e,_path:t=[],optional:n,plugin:r,schema:i,state:a,symbol:o})=>{let s,c=[];if(e&&(a.circularReferenceTracker.add(e),!o)){let t=r.api.getSelector(`ref`,e);r.getSymbol(t)||(o=r.referenceSymbol(t))}let l=r.referenceSymbol(r.api.getSelector(`import`,`valibot`));if(i.$ref){let e=a.circularReferenceTracker.has(i.$ref),t=r.api.getSelector(`ref`,i.$ref),n=r.getSymbol(t);if(!n){let e=r.context.resolveIrRef(i.$ref),o=Q({$ref:i.$ref,_path:Zn(i.$ref),plugin:r,schema:e,state:a});c.push(...o),n=r.getSymbol(t)}if(n){let t=M.identifier({text:n.placeholder});if(e){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:t})]})]});c.push(e),a.hasCircularReference=!0}else c.push(t)}}else if(i.type){let e=jf({_path:t,plugin:r,schema:i,state:a});if(s=e.anyType,c.push(e.expression),r.config.metadata&&i.description){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.actions.metadata}),parameters:[M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:i.description})}]})]});c.push(e)}}else if(i.items)if(i=N({schema:i}),i.items){let e=i.items.map((e,n)=>Z({pipes:Q({_path:[...t,`items`,n],plugin:r,schema:e,state:a}),plugin:r}));if(i.logicalOperator===`and`){let t=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.intersect}),parameters:[M.arrayLiteralExpression({elements:e})]});c.push(t)}else{let t=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.union}),parameters:[M.arrayLiteralExpression({elements:e})]});c.push(t)}}else{let e=Q({_path:t,plugin:r,schema:i,state:a});c.push(...e)}else{let e=jf({_path:t,plugin:r,schema:{type:`unknown`},state:a});s=e.anyType,c.push(e.expression)}if(e&&a.circularReferenceTracker.delete(e),c.length&&i.accessScope===`read`){let e=M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.actions.readonly})});c.push(e)}if(c.length){let e;i.default!==void 0&&(e=gf({isBigInt:i.type===`integer`&&i.format===`int64`,value:i.default}),e&&(c=[M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.optional}),parameters:[Z({pipes:c,plugin:r}),e]})])),n&&!e&&(c=[M.callExpression({functionName:M.propertyAccessExpression({expression:l.placeholder,name:X.schemas.optional}),parameters:[Z({pipes:c,plugin:r})]})])}if(o){e&&(o=r.registerSymbol({exported:!0,meta:{resourceType:ff(t)},name:T({config:{case:a.nameCase,name:a.nameTransformer},name:I(e)}),selector:r.api.getSelector(`ref`,e)}));let n=M.constVariable({comment:r.config.comments?Nu({schema:i}):void 0,exportConst:o.exported,expression:Z({pipes:c,plugin:r}),name:o.placeholder,typeName:a.hasCircularReference?M.propertyAccessExpression({expression:l.placeholder,name:s||X.types.GenericSchema.text}):void 0});return r.setSymbolValue(o,n),[]}return c},Mf={api:new df({name:`valibot`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1,metadata:!1},handler:({plugin:e})=>{e.registerSymbol({external:`valibot`,meta:{importKind:`namespace`},name:`v`,selector:e.api.getSelector(`import`,`valibot`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{let n={circularReferenceTracker:new Set,hasCircularReference:!1,nameCase:e.config.definitions.case,nameTransformer:e.config.definitions.name};switch(t.type){case`operation`:_f({_path:t._path,operation:t.operation,plugin:e,state:n});break;case`parameter`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.parameter.schema,state:n});break;case`requestBody`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.requestBody.schema,state:n});break;case`schema`:Q({$ref:t.$ref,_path:t._path,plugin:e,schema:t.schema,state:n});break;case`webhook`:vf({_path:t._path,operation:t.operation,plugin:e,state:n});break}})},name:`valibot`,resolveConfig:(e,t)=>{e.config.definitions=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.definitions}),e.config.requests=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}Data`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.requests}),e.config.responses=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}Response`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.responses}),e.config.webhooks=t.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`v{{name}}WebhookRequest`},mappers:{boolean:e=>({enabled:e}),function:e=>({name:e}),string:e=>({name:e})},value:e.config.webhooks})},tags:[`validator`]},$={ZodMiniOptional:M.identifier({text:`ZodMiniOptional`}),ZodOptional:M.identifier({text:`ZodOptional`}),_default:M.identifier({text:`_default`}),and:M.identifier({text:`and`}),array:M.identifier({text:`array`}),bigint:M.identifier({text:`bigint`}),boolean:M.identifier({text:`boolean`}),check:M.identifier({text:`check`}),coerce:M.identifier({text:`coerce`}),date:M.identifier({text:`date`}),datetime:M.identifier({text:`datetime`}),default:M.identifier({text:`default`}),describe:M.identifier({text:`describe`}),email:M.identifier({text:`email`}),enum:M.identifier({text:`enum`}),globalRegistry:M.identifier({text:`globalRegistry`}),gt:M.identifier({text:`gt`}),gte:M.identifier({text:`gte`}),infer:M.identifier({text:`infer`}),int:M.identifier({text:`int`}),intersection:M.identifier({text:`intersection`}),ip:M.identifier({text:`ip`}),ipv4:M.identifier({text:`ipv4`}),ipv6:M.identifier({text:`ipv6`}),iso:M.identifier({text:`iso`}),lazy:M.identifier({text:`lazy`}),length:M.identifier({text:`length`}),literal:M.identifier({text:`literal`}),lt:M.identifier({text:`lt`}),lte:M.identifier({text:`lte`}),max:M.identifier({text:`max`}),maxLength:M.identifier({text:`maxLength`}),min:M.identifier({text:`min`}),minLength:M.identifier({text:`minLength`}),never:M.identifier({text:`never`}),null:M.identifier({text:`null`}),nullable:M.identifier({text:`nullable`}),number:M.identifier({text:`number`}),object:M.identifier({text:`object`}),optional:M.identifier({text:`optional`}),parseAsync:M.identifier({text:`parseAsync`}),readonly:M.identifier({text:`readonly`}),record:M.identifier({text:`record`}),regex:M.identifier({text:`regex`}),register:M.identifier({text:`register`}),string:M.identifier({text:`string`}),time:M.identifier({text:`time`}),tuple:M.identifier({text:`tuple`}),undefined:M.identifier({text:`undefined`}),union:M.identifier({text:`union`}),unknown:M.identifier({text:`unknown`}),url:M.identifier({text:`url`}),uuid:M.identifier({text:`uuid`}),void:M.identifier({text:`void`})};var Nf=class{constructor(e){this.meta=e}createRequestValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`data`,e.id));if(!n)return;let r=`data`;return M.arrowFunction({async:!0,parameters:[{name:r}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.parseAsync}),parameters:[M.identifier({text:r})]})})})]})}createResponseValidator({operation:e,plugin:t}){let n=t.getSymbol(t.api.getSelector(`responses`,e.id));if(!n)return;let r=`data`;return M.arrowFunction({async:!0,parameters:[{name:r}],statements:[M.returnStatement({expression:M.awaitExpression({expression:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.parseAsync}),parameters:[M.identifier({text:r})]})})})]})}getSelector(...e){return[this.meta.name,...e]}};const Pf=({plugin:e,schema:t,symbol:n,typeInferSymbol:r,zodSchema:i})=>{let a=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),o=M.constVariable({comment:e.config.comments?Nu({schema:t}):void 0,exportConst:n.exported,expression:i.expression,name:n.placeholder,typeName:i.typeName?M.propertyAccessExpression({expression:a.placeholder,name:i.typeName}):void 0});if(e.setSymbolValue(n,o),r){let t=M.typeAliasDeclaration({exportType:r.exported,name:r.placeholder,type:M.typeReferenceNode({typeArguments:[M.typeOfExpression({text:n.placeholder})],typeName:M.propertyAccessExpression({expression:a.placeholder,name:$.infer})})});e.setSymbolValue(r,t)}},Ff=({plugin:e})=>{let t=e.package.getVersion(`zod`);if(t&&e.package.satisfies(t,`<4.0.0`))switch(e.config.compatibilityVersion){case 3:default:return`zod`;case 4:return`zod/v4`;case`mini`:return`zod/v4-mini`}switch(e.config.compatibilityVersion){case 3:return`zod/v3`;case 4:default:return`zod`;case`mini`:return`zod/mini`}},If=({getZodSchema:e,operation:t,plugin:n})=>{if(n.config.requests.enabled){let r=new Set,i={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let i in t.parameters.header){let a=t.parameters.header[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`headers`))}Object.keys(e).length&&(i.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let i in t.parameters.path){let a=t.parameters.path[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`path`))}Object.keys(e).length&&(i.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let i in t.parameters.query){let a=t.parameters.query[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`query`))}Object.keys(e).length&&(i.properties.query={properties:e,required:n,type:`object`})}}t.body&&(i.properties.body=t.body.schema,t.body.required&&r.add(`body`)),i.required=[...r];let a=e(i);Pf({plugin:n,schema:i,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.requests,name:t.id}),selector:n.api.getSelector(`data`,t.id)}),typeInferSymbol:n.config.requests.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.requests.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-data`,t.id)}):void 0,zodSchema:a})}if(n.config.responses.enabled&&t.responses){let{response:r}=Rn(t);if(r){let i=e(r);Pf({plugin:n,schema:r,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.responses,name:t.id}),selector:n.api.getSelector(`responses`,t.id)}),typeInferSymbol:n.config.responses.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.responses.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-responses`,t.id)}):void 0,zodSchema:i})}}},Lf=({getZodSchema:e,operation:t,plugin:n})=>{if(n.config.webhooks.enabled){let r=new Set,i={properties:{body:{type:`never`},path:{type:`never`},query:{type:`never`}},type:`object`};if(t.parameters){if(t.parameters.header){let e={},n=[];for(let i in t.parameters.header){let a=t.parameters.header[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`headers`))}Object.keys(e).length&&(i.properties.headers={properties:e,required:n,type:`object`})}if(t.parameters.path){let e={},n=[];for(let i in t.parameters.path){let a=t.parameters.path[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`path`))}Object.keys(e).length&&(i.properties.path={properties:e,required:n,type:`object`})}if(t.parameters.query){let e={},n=[];for(let i in t.parameters.query){let a=t.parameters.query[i];e[a.name]=a.schema,a.required&&(n.push(a.name),r.add(`query`))}Object.keys(e).length&&(i.properties.query={properties:e,required:n,type:`object`})}}t.body&&(i.properties.body=t.body.schema,t.body.required&&r.add(`body`)),i.required=[...r];let a=e(i);Pf({plugin:n,schema:i,symbol:n.registerSymbol({exported:!0,name:T({config:n.config.webhooks,name:t.id}),selector:n.api.getSelector(`webhook-request`,t.id)}),typeInferSymbol:n.config.webhooks.types.infer.enabled?n.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:n.config.webhooks.types.infer,name:t.id}),selector:n.api.getSelector(`type-infer-webhook-request`,t.id)}):void 0,zodSchema:a})}},Rf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={},a=M.propertyAccessExpression({expression:r.placeholder,name:$.array});if(!t.items)i.expression=M.callExpression({functionName:a,parameters:[Yf({plugin:e,schema:{type:`unknown`}}).expression]});else{t=N({schema:t});let o=t.items.map(t=>{let r=Qf({plugin:e,schema:t,state:n});return r.hasCircularReference&&(i.hasCircularReference=!0),r.expression});if(o.length===1)i.expression=M.callExpression({functionName:a,parameters:o});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:o});else{n=o[0];for(let e=1;e<o.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:[n,o[e]]})}i.expression=M.callExpression({functionName:a,parameters:[n]})}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:o})]})]})}let o=[];return t.minItems===t.maxItems&&t.minItems!==void 0?o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]})):(t.minItems!==void 0&&o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.minLength}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&o.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.maxLength}),parameters:[M.valueToExpression({value:t.maxItems})]}))),o.length&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.check}),parameters:o})),i},zf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={};return typeof t.const==`boolean`?(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}),r):(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.boolean})}),r)},Bf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={},i=[],a=[],o=!1,s=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});i.push(t),a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){s=!1;let t=M.ots.number(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){s=!1;let t=M.ots.boolean(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(o=!0);return a.length?(s&&i.length>0?r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:!1})]}):a.length===1?r.expression=a[0]:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:a,multiLine:a.length>3})]}),o&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.nullable}),parameters:[r.expression]})),r):Yf({plugin:e,schema:{type:`unknown`}})},Vf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.never})}),n},Hf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.null})}),n},Uf=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},Wf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={},i=t.type===`integer`&&t.format===`int64`;if(typeof t.const==`number`)return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]}),r;r.expression=M.callExpression({functionName:i?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:n.placeholder,name:$.number})}),!i&&t.type===`integer`&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.int})}));let a=[];return t.exclusiveMinimum===void 0?t.minimum!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.gte}),parameters:[Uf({isBigInt:i,value:t.minimum})]})):a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.gt}),parameters:[Uf({isBigInt:i,value:t.exclusiveMinimum})]})),t.exclusiveMaximum===void 0?t.maximum!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.lte}),parameters:[Uf({isBigInt:i,value:t.maximum})]})):a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.lt}),parameters:[Uf({isBigInt:i,value:t.exclusiveMaximum})]})),a.length&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.check}),parameters:a})),r},Gf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={},o=[],s=t.required??[];for(let c in t.properties){let l=t.properties[c],u=Qf({optional:!s.includes(c),plugin:e,schema:l,state:n});u.hasCircularReference&&(i.hasCircularReference=!0),E.lastIndex=0;let d;d=E.test(c)?c.startsWith(`-`)?a.factory.createStringLiteral(c):a.factory.createNumericLiteral(c):c,(c.match(/^[0-9]/)&&c.match(/\D+/g)||c.match(/\W/g))&&!c.startsWith(`'`)&&!c.endsWith(`'`)&&(d=`'${c}'`),u.hasCircularReference?o.push(M.getAccessorDeclaration({name:d,returnType:u.typeName?M.propertyAccessExpression({expression:r.placeholder,name:u.typeName}):void 0,statements:[M.returnStatement({expression:u.expression})]})):o.push(M.propertyAssignment({initializer:u.expression,name:d}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let a=Qf({plugin:e,schema:t.additionalProperties,state:n});return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.string}),parameters:[]}),a.expression]}),a.hasCircularReference&&(i.hasCircularReference=!0),i}return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(o,!0)]}),i},Kf=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r={};if(typeof t.const==`string`)return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]}),r;r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.string})});let i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.date})});break;case`date-time`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.email})});break;case`ipv4`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.ipv4})});break;case`ipv6`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.ipv6})});break;case`time`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.iso}),name:$.time})});break;case`uri`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.url})});break;case`uuid`:r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.uuid})});break}let a=[];return t.minLength===t.maxLength&&t.minLength!==void 0?a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]})):(t.minLength!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.minLength}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.maxLength}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),a.length&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.check}),parameters:a})),r},qf=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i={};if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),i}let a=[];for(let r of t.items??[]){let t=Qf({plugin:e,schema:r,state:n});a.push(t.expression),t.hasCircularReference&&(i.hasCircularReference=!0)}return i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),i},Jf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.undefined})}),n},Yf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.unknown})}),n},Xf=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),n={};return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.void})}),n},Zf=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return Rf({plugin:e,schema:t,state:n});case`boolean`:return zf({plugin:e,schema:t});case`enum`:return Bf({plugin:e,schema:t});case`integer`:case`number`:return Wf({plugin:e,schema:t});case`never`:return Vf({plugin:e,schema:t});case`null`:return Hf({plugin:e,schema:t});case`object`:return Gf({plugin:e,schema:t,state:n});case`string`:return Kf({plugin:e,schema:t});case`tuple`:return qf({plugin:e,schema:t,state:n});case`undefined`:return Jf({plugin:e,schema:t});case`unknown`:return Yf({plugin:e,schema:t});case`void`:return Xf({plugin:e,schema:t})}},Qf=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref),o=r.currentReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let s=t.api.getSelector(`ref`,n.$ref),c=t.getSymbol(s);if(e)c||=t.referenceSymbol(s),o?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({returnType:M.keywordTypeNode({keyword:`any`}),statements:[M.returnStatement({expression:M.identifier({text:c.placeholder})})]})]}):i.expression=M.identifier({text:c.placeholder}),i.hasCircularReference=n.circular;else{if(c)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);$f({id:n.$ref,plugin:t,schema:e,state:r})}let e=t.referenceSymbol(s);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=Zf({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.register}),parameters:[M.propertyAccessExpression({expression:a.placeholder,name:$.globalRegistry}),M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:n.description})}]})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>Qf({plugin:t,schema:e,state:r}));if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e.map(e=>e.expression)}):(i.expression=e[0].expression,e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:[i.expression,e.hasCircularReference?M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:e.expression})]})]}):e.expression]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e.map(e=>e.expression)})]})}else i=Qf({plugin:t,schema:n,state:r});else i.expression=Zf({plugin:t,schema:{type:`unknown`},state:r}).expression;if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.readonly}),parameters:[i.expression]})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.optional}),parameters:[i.expression]}),i.typeName=$.ZodMiniOptional),n.default!==void 0)){let e=Uf({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$._default}),parameters:[i.expression,e]}))}return i},$f=({id:e,plugin:t,schema:n,state:r})=>{let i={circularReferenceTracker:[e],hasCircularReference:!1,...r,currentReferenceTracker:[e]},a=t.api.getSelector(`ref`,e),o=t.getSymbol(a);if(o&&!t.getSymbolValue(o))return;let s=Qf({plugin:t,schema:n,state:i}),c=I(e);o=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:c}),selector:a});let l=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:c}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:o,typeInferSymbol:l,zodSchema:s})},ep=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),meta:{importKind:`namespace`},name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>Qf({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:$f({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:$f({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:$f({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>Qf({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},tp=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=M.propertyAccessExpression({expression:r.placeholder,name:$.array}),a,o=!1;if(!t.items)a=M.callExpression({functionName:i,parameters:[fp({plugin:e,schema:{type:`unknown`}})]});else{t=N({schema:t});let s=t.items.map(t=>{let r=hp({plugin:e,schema:t,state:n});return r.hasCircularReference&&(o=!0),r.expression});if(s.length===1)a=M.callExpression({functionName:i,parameters:s});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.intersection}),parameters:s});else{n=s[0];for(let e=1;e<s.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:n,name:$.and}),parameters:[s[e]]})}a=M.callExpression({functionName:i,parameters:[n]})}else a=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:s})]})]})}return t.minItems===t.maxItems&&t.minItems!==void 0?a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]}):(t.minItems!==void 0&&(a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.min}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&(a=M.callExpression({functionName:M.propertyAccessExpression({expression:a,name:$.max}),parameters:[M.valueToExpression({value:t.maxItems})]}))),{expression:a,hasCircularReference:o}},np=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`boolean`?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}):M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.boolean})})},rp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r=[],i=[],a=!1,o=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});r.push(t),i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){o=!1;let t=M.ots.number(e.const);i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){o=!1;let t=M.ots.boolean(e.const);i.push(M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(a=!0);if(!i.length)return fp({plugin:e,schema:{type:`unknown`}});let s;return s=o&&r.length>0?M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:r,multiLine:!1})]}):i.length===1?i[0]:M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:i.length>3})]}),a&&(s=M.callExpression({functionName:M.propertyAccessExpression({expression:s,name:$.nullable})})),s},ip=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.never})})},ap=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.null})})},op=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},sp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),r=t.type===`integer`&&t.format===`int64`;if(typeof t.const==`number`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]});let i=M.callExpression({functionName:r?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:n.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:n.placeholder,name:$.number})});return!r&&t.type===`integer`&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.int})})),t.exclusiveMinimum===void 0?t.minimum!==void 0&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.gte}),parameters:[op({isBigInt:r,value:t.minimum})]})):i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.gt}),parameters:[op({isBigInt:r,value:t.exclusiveMinimum})]}),t.exclusiveMaximum===void 0?t.maximum!==void 0&&(i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.lte}),parameters:[op({isBigInt:r,value:t.maximum})]})):i=M.callExpression({functionName:M.propertyAccessExpression({expression:i,name:$.lt}),parameters:[op({isBigInt:r,value:t.exclusiveMaximum})]}),i},cp=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=!1,o=[],s=t.required??[];for(let r in t.properties){let c=t.properties[r],l=hp({optional:!s.includes(r),plugin:e,schema:c,state:n});l.hasCircularReference&&(i=!0),E.lastIndex=0;let u;u=E.test(r)?r.startsWith(`-`)?a.factory.createStringLiteral(r):a.factory.createNumericLiteral(r):r,(r.match(/^[0-9]/)&&r.match(/\D+/g)||r.match(/\W/g))&&!r.startsWith(`'`)&&!r.endsWith(`'`)&&(u=`'${r}'`),o.push(M.propertyAssignment({initializer:l.expression,name:u}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let i=hp({plugin:e,schema:t.additionalProperties,state:n});return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.record}),parameters:[i.expression]}),hasCircularReference:i.hasCircularReference}}return{anyType:`AnyZodObject`,expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(o,!0)]}),hasCircularReference:i}},lp=({plugin:e,schema:t})=>{let n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(typeof t.const==`string`)return M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]});let r=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.string})}),i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.date})});break;case`date-time`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.email})});break;case`ipv4`:case`ipv6`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.ip})});break;case`time`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.time})});break;case`uri`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.url})});break;case`uuid`:r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.uuid})});break}return t.minLength===t.maxLength&&t.minLength!==void 0?r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]}):(t.minLength!==void 0&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.min}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.max}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&(r=M.callExpression({functionName:M.propertyAccessExpression({expression:r,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),r},up=({plugin:e,schema:t,state:n})=>{let r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=!1;if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return{expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),hasCircularReference:i}}let a=[];for(let r of t.items??[]){let t=hp({plugin:e,schema:r,state:n});t.hasCircularReference&&(i=!0),a.push(t.expression)}return{expression:M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),hasCircularReference:i}},dp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.undefined})})},fp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.unknown})})},pp=({plugin:e})=>{let t=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return M.callExpression({functionName:M.propertyAccessExpression({expression:t.placeholder,name:$.void})})},mp=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return tp({plugin:e,schema:t,state:n});case`boolean`:return{expression:np({plugin:e,schema:t})};case`enum`:return{expression:rp({plugin:e,schema:t})};case`integer`:case`number`:return{expression:sp({plugin:e,schema:t})};case`never`:return{expression:ip({plugin:e,schema:t})};case`null`:return{expression:ap({plugin:e,schema:t})};case`object`:return cp({plugin:e,schema:t,state:n});case`string`:return{expression:lp({plugin:e,schema:t})};case`tuple`:return up({plugin:e,schema:t,state:n});case`undefined`:return{expression:dp({plugin:e,schema:t})};case`unknown`:return{expression:fp({plugin:e,schema:t})};case`void`:return{expression:pp({plugin:e,schema:t})}}},hp=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let o=t.api.getSelector(`ref`,n.$ref),s=t.getSymbol(o);if(e)s||=t.referenceSymbol(o),i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:M.identifier({text:s.placeholder})})]})]}),i.hasCircularReference=n.circular;else{if(s)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);gp({id:n.$ref,plugin:t,schema:e,state:{...r,currentReferenceTracker:[n.$ref]}})}let e=t.referenceSymbol(o);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=mp({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,i.typeName=e.anyType,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.describe}),parameters:[M.stringLiteral({text:n.description})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>{let n=hp({plugin:t,schema:e,state:r});return n.hasCircularReference&&(i.hasCircularReference=!0),n.expression});if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e}):(i.expression=e[0],e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.and}),parameters:[e]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e})]})}else i=hp({plugin:t,schema:n,state:r});else{let e=mp({plugin:t,schema:{type:`unknown`},state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,i.typeName=e.anyType}if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.readonly})})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.optional})})),n.default!==void 0)){let e=op({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.default}),parameters:[e]}))}return i.hasCircularReference?i.typeName||=`ZodTypeAny`:i.typeName&&=void 0,i},gp=({id:e,plugin:t,schema:n,state:r})=>{r||={circularReferenceTracker:[e],currentReferenceTracker:[e],hasCircularReference:!1};let i=t.api.getSelector(`ref`,e),a=t.getSymbol(i);if(a)return;let o=hp({plugin:t,schema:n,state:r}),s=I(e);a=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:s}),selector:i});let c=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:s}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:a,typeInferSymbol:c,zodSchema:o})},_p=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>hp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:gp({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:gp({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:gp({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>hp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},vp=({plugin:e,schema:t,state:n})=>{let r={},i=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),a=M.propertyAccessExpression({expression:i.placeholder,name:$.array});if(!t.items)r.expression=M.callExpression({functionName:a,parameters:[kp({plugin:e,schema:{type:`unknown`}}).expression]});else{t=N({schema:t});let o=t.items.map(t=>{let i=Mp({plugin:e,schema:t,state:n});return i.hasCircularReference&&(r.hasCircularReference=!0),i.expression});if(o.length===1)r.expression=M.callExpression({functionName:a,parameters:o});else if(t.logicalOperator===`and`){let e=t.items[0],n;if(e.logicalOperator===`or`||e.type&&e.type!==`object`)n=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.intersection}),parameters:o});else{n=o[0];for(let e=1;e<o.length;e++)n=M.callExpression({functionName:M.propertyAccessExpression({expression:n,name:$.and}),parameters:[o[e]]})}r.expression=M.callExpression({functionName:a,parameters:[n]})}else r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.array}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:o})]})]})}return t.minItems===t.maxItems&&t.minItems!==void 0?r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.length}),parameters:[M.valueToExpression({value:t.minItems})]}):(t.minItems!==void 0&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.min}),parameters:[M.valueToExpression({value:t.minItems})]})),t.maxItems!==void 0&&(r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.expression,name:$.max}),parameters:[M.valueToExpression({value:t.maxItems})]}))),r},yp=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`boolean`?(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.ots.boolean(t.const)]}),n):(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.boolean})}),n)},bp=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`)),i=[],a=[],o=!1,s=!0;for(let e of t.items??[])if(e.type===`string`&&typeof e.const==`string`){let t=M.stringLiteral({text:e.const});i.push(t),a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else if((e.type===`number`||e.type===`integer`)&&typeof e.const==`number`){s=!1;let t=M.ots.number(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else if(e.type===`boolean`&&typeof e.const==`boolean`){s=!1;let t=M.ots.boolean(e.const);a.push(M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[t]}))}else (e.type===`null`||e.const===null)&&(o=!0);return a.length?(s&&i.length>0?n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.enum}),parameters:[M.arrayLiteralExpression({elements:i,multiLine:!1})]}):a.length===1?n.expression=a[0]:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:a,multiLine:a.length>3})]}),o&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.nullable}),parameters:[n.expression]})),n):kp({plugin:e,schema:{type:`unknown`}})},xp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.never})}),t},Sp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.null})}),t},Cp=({isBigInt:e,value:t})=>{let n=M.valueToExpression({value:t});return e&&(typeof t==`bigint`||typeof t==`number`||typeof t==`string`||typeof t==`boolean`)?M.callExpression({functionName:`BigInt`,parameters:[n]}):n},wp=({plugin:e,schema:t})=>{let n={},r=t.type===`integer`&&t.format===`int64`,i=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return typeof t.const==`number`?(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.literal}),parameters:[M.ots.number(t.const)]}),n):(n.expression=M.callExpression({functionName:r?M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:i.placeholder,name:$.coerce}),name:$.bigint}):M.propertyAccessExpression({expression:i.placeholder,name:$.number})}),!r&&t.type===`integer`&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.int})})),t.exclusiveMinimum===void 0?t.minimum!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.gte}),parameters:[Cp({isBigInt:r,value:t.minimum})]})):n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.gt}),parameters:[Cp({isBigInt:r,value:t.exclusiveMinimum})]}),t.exclusiveMaximum===void 0?t.maximum!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.lte}),parameters:[Cp({isBigInt:r,value:t.maximum})]})):n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.lt}),parameters:[Cp({isBigInt:r,value:t.exclusiveMaximum})]}),n)},Tp=({plugin:e,schema:t,state:n})=>{let r={},i=[],o=t.required??[],s=e.referenceSymbol(e.api.getSelector(`import`,`zod`));for(let c in t.properties){let l=t.properties[c],u=Mp({optional:!o.includes(c),plugin:e,schema:l,state:n});u.hasCircularReference&&(r.hasCircularReference=!0),E.lastIndex=0;let d;d=E.test(c)?c.startsWith(`-`)?a.factory.createStringLiteral(c):a.factory.createNumericLiteral(c):c,(c.match(/^[0-9]/)&&c.match(/\D+/g)||c.match(/\W/g))&&!c.startsWith(`'`)&&!c.endsWith(`'`)&&(d=`'${c}'`),u.hasCircularReference?i.push(M.getAccessorDeclaration({name:d,returnType:u.typeName?M.propertyAccessExpression({expression:s.placeholder,name:u.typeName}):void 0,statements:[M.returnStatement({expression:u.expression})]})):i.push(M.propertyAssignment({initializer:u.expression,name:d}))}if(t.additionalProperties&&(!t.properties||!Object.keys(t.properties).length)){let i=Mp({plugin:e,schema:t.additionalProperties,state:n});return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.record}),parameters:[M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.string}),parameters:[]}),i.expression]}),i.hasCircularReference&&(r.hasCircularReference=!0),r.hasCircularReference?{...r,typeName:`ZodType`}:r}return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:s.placeholder,name:$.object}),parameters:[a.factory.createObjectLiteralExpression(i,!0)]}),r.hasCircularReference?{...r,typeName:`ZodType`}:r},Ep=({plugin:e,schema:t})=>{let n={},r=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(typeof t.const==`string`)return n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.literal}),parameters:[M.ots.string(t.const)]}),n;n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.string})});let i=[];if(e.config.dates.offset&&i.push({key:`offset`,value:!0}),e.config.dates.local&&i.push({key:`local`,value:!0}),t.format)switch(t.format){case`date`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.date})});break;case`date-time`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.datetime}),parameters:i.length>0?[M.objectExpression({obj:i})]:[]});break;case`email`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.email})});break;case`ipv4`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.ipv4})});break;case`ipv6`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.ipv6})});break;case`time`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:M.propertyAccessExpression({expression:r.placeholder,name:$.iso}),name:$.time})});break;case`uri`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.url})});break;case`uuid`:n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:r.placeholder,name:$.uuid})});break}return t.minLength===t.maxLength&&t.minLength!==void 0?n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.length}),parameters:[M.valueToExpression({value:t.minLength})]}):(t.minLength!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.min}),parameters:[M.valueToExpression({value:t.minLength})]})),t.maxLength!==void 0&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.max}),parameters:[M.valueToExpression({value:t.maxLength})]}))),t.pattern&&(n.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.expression,name:$.regex}),parameters:[M.regularExpressionLiteral({text:t.pattern})]})),n},Dp=({plugin:e,schema:t,state:n})=>{let r={},i=e.referenceSymbol(e.api.getSelector(`import`,`zod`));if(t.const&&Array.isArray(t.const)){let e=t.const.map(e=>M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.literal}),parameters:[M.valueToExpression({value:e})]}));return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:e})]}),r}let a=[];for(let i of t.items??[]){let t=Mp({plugin:e,schema:i,state:n});a.push(t.expression),t.hasCircularReference&&(r.hasCircularReference=!0)}return r.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.placeholder,name:$.tuple}),parameters:[M.arrayLiteralExpression({elements:a})]}),r},Op=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.undefined})}),t},kp=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.unknown})}),t},Ap=({plugin:e})=>{let t={},n=e.referenceSymbol(e.api.getSelector(`import`,`zod`));return t.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:n.placeholder,name:$.void})}),t},jp=({plugin:e,schema:t,state:n})=>{switch(t.type){case`array`:return vp({plugin:e,schema:t,state:n});case`boolean`:return yp({plugin:e,schema:t});case`enum`:return bp({plugin:e,schema:t});case`integer`:case`number`:return wp({plugin:e,schema:t});case`never`:return xp({plugin:e,schema:t});case`null`:return Sp({plugin:e,schema:t});case`object`:return Tp({plugin:e,schema:t,state:n});case`string`:return Ep({plugin:e,schema:t});case`tuple`:return Dp({plugin:e,schema:t,state:n});case`undefined`:return Op({plugin:e,schema:t});case`unknown`:return kp({plugin:e,schema:t});case`void`:return Ap({plugin:e,schema:t})}},Mp=({optional:e,plugin:t,schema:n,state:r})=>{let i={},a=t.referenceSymbol(t.api.getSelector(`import`,`zod`));if(n.$ref){let e=r.circularReferenceTracker.includes(n.$ref),o=r.currentReferenceTracker.includes(n.$ref);r.circularReferenceTracker.push(n.$ref),r.currentReferenceTracker.push(n.$ref);let s=t.api.getSelector(`ref`,n.$ref),c=t.getSymbol(s);if(e)c||=t.referenceSymbol(s),o?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({returnType:M.keywordTypeNode({keyword:`any`}),statements:[M.returnStatement({expression:M.identifier({text:c.placeholder})})]})]}):i.expression=M.identifier({text:c.placeholder}),i.hasCircularReference=n.circular;else{if(c)i.hasCircularReference=n.circular;else{let e=t.context.resolveIrRef(n.$ref);Np({id:n.$ref,plugin:t,schema:e,state:r})}let e=t.referenceSymbol(s);i.expression=M.identifier({text:e.placeholder})}r.circularReferenceTracker.pop(),r.currentReferenceTracker.pop()}else if(n.type){let e=jp({plugin:t,schema:n,state:r});i.expression=e.expression,i.hasCircularReference=e.hasCircularReference,t.config.metadata&&n.description&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.register}),parameters:[M.propertyAccessExpression({expression:a.placeholder,name:$.globalRegistry}),M.objectExpression({obj:[{key:`description`,value:M.stringLiteral({text:n.description})}]})]}))}else if(n.items)if(n=N({schema:n}),n.items){let e=n.items.map(e=>Mp({plugin:t,schema:e,state:r}));if(n.logicalOperator===`and`){let t=n.items[0];t.logicalOperator===`or`||t.type&&t.type!==`object`?i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.intersection}),parameters:e.map(e=>e.expression)}):(i.expression=e[0].expression,e.slice(1).forEach(e=>{i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.and}),parameters:[e.hasCircularReference?M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.lazy}),parameters:[M.arrowFunction({statements:[M.returnStatement({expression:e.expression})]})]}):e.expression]})}))}else i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.union}),parameters:[M.arrayLiteralExpression({elements:e.map(e=>e.expression)})]})}else i=Mp({plugin:t,schema:n,state:r});else i.expression=jp({plugin:t,schema:{type:`unknown`},state:r}).expression;if(i.expression&&(n.accessScope===`read`&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.readonly})})),e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:a.placeholder,name:$.optional}),parameters:[i.expression]}),i.typeName=$.ZodOptional),n.default!==void 0)){let e=Cp({isBigInt:n.type===`integer`&&n.format===`int64`,value:n.default});e&&(i.expression=M.callExpression({functionName:M.propertyAccessExpression({expression:i.expression,name:$.default}),parameters:[e]}))}return i},Np=({id:e,plugin:t,schema:n,state:r})=>{let i={circularReferenceTracker:[e],hasCircularReference:!1,...r,currentReferenceTracker:[e]},a=t.api.getSelector(`ref`,e),o=t.getSymbol(a);if(o&&!t.getSymbolValue(o))return;let s=Mp({plugin:t,schema:n,state:i}),c=I(e);o=t.registerSymbol({exported:!0,name:T({config:t.config.definitions,name:c}),selector:a});let l=t.config.definitions.types.infer.enabled?t.registerSymbol({exported:!0,meta:{kind:`type`},name:T({config:t.config.definitions.types.infer,name:c}),selector:t.api.getSelector(`type-infer-ref`,e)}):void 0;Pf({plugin:t,schema:n,symbol:o,typeInferSymbol:l,zodSchema:s})},Pp=({plugin:e})=>{e.registerSymbol({external:Ff({plugin:e}),name:`z`,selector:e.api.getSelector(`import`,`zod`)}),e.forEach(`operation`,`parameter`,`requestBody`,`schema`,`webhook`,t=>{switch(t.type){case`operation`:If({getZodSchema:t=>Mp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break;case`parameter`:Np({id:t.$ref,plugin:e,schema:t.parameter.schema});break;case`requestBody`:Np({id:t.$ref,plugin:e,schema:t.requestBody.schema});break;case`schema`:Np({id:t.$ref,plugin:e,schema:t.schema});break;case`webhook`:Lf({getZodSchema:t=>Mp({plugin:e,schema:t,state:{circularReferenceTracker:[],currentReferenceTracker:[],hasCircularReference:!1}}),operation:t.operation,plugin:e});break}})},Fp={api:new Nf({name:`zod`}),config:{case:`camelCase`,comments:!0,exportFromIndex:!1,metadata:!1},handler:e=>{let{plugin:t}=e;switch(t.config.compatibilityVersion){case 3:return _p(e);case 4:return Pp(e);case`mini`:return ep(e);default:return Pp(e)}},name:`zod`,resolveConfig:(e,n)=>{let r=n.package.getVersion(`zod`),i=()=>r&&(r.major===4||r.major===3)?r.major:4,a=e=>{if(!e)return i();if(!r)return e;if((e===4||e===3||e===`mini`)&&!n.package.satisfies(r,`>=3.25.0 <5.0.0`)){let n=i();return console.warn(`🔌 ${t.yellow(`Warning:`)} Installed ${t.cyan(`zod`)} ${t.cyan(`v${r.version}`)} does not support compatibility version ${t.yellow(String(e))}, using ${t.yellow(String(n))}.`),n}return e};e.config.compatibilityVersion=a(e.config.compatibilityVersion),e.config.dates=n.valueToObject({defaultValue:{local:!1,offset:!1},value:e.config.dates}),e.config.types=n.valueToObject({defaultValue:{infer:{case:`PascalCase`,enabled:!1}},mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.config.types}),e.config.definitions=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}ZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.definitions}),e.config.requests=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}Data`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}DataZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.requests}),e.config.responses=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}Response`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}ResponseZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.responses}),e.config.webhooks=n.valueToObject({defaultValue:{case:e.config.case??`camelCase`,enabled:!0,name:`z{{name}}WebhookRequest`,types:{...e.config.types,infer:{...e.config.types.infer,name:`{{name}}WebhookRequestZodType`}}},mappers:{...We,object:(e,t)=>({...e,types:n.valueToObject({defaultValue:t.types,mappers:{object:(e,t)=>({...e,infer:n.valueToObject({defaultValue:{...t.infer,enabled:e.infer===void 0?t.infer.enabled:!!e.infer},mappers:We,value:e.infer})})},value:e.types})})},value:e.config.webhooks})},tags:[`validator`]},Ip={"@angular/common":Wc,"@hey-api/client-angular":ol,"@hey-api/client-axios":cl,"@hey-api/client-fetch":ul,"@hey-api/client-next":fl,"@hey-api/client-nuxt":ml,"@hey-api/client-ofetch":gl,"@hey-api/schemas":Il,"@hey-api/sdk":iu,"@hey-api/transformers":ju,"@hey-api/typescript":ed,"@pinia/colada":_d,"@tanstack/angular-query-experimental":nf,"@tanstack/react-query":rf,"@tanstack/solid-query":af,"@tanstack/svelte-query":of,"@tanstack/vue-query":sf,fastify:uf,"legacy/angular":_l,"legacy/axios":vl,"legacy/fetch":yl,"legacy/node":bl,"legacy/xhr":xl,valibot:Mf,zod:Fp},Lp=[`@hey-api/typescript`,`@hey-api/sdk`],Rp=({dependencies:e,userPlugins:t,userPluginsConfig:n})=>{let r=new Set,i=new Set,a={},o=s=>{if(r.has(s))throw Error(`Circular reference detected at '${s}'`);if(i.has(s))return;r.add(s);let c=Ip[s],l=n[s];if(!c&&!l)throw Error(`unknown plugin dependency "${s}" - do you need to register a custom plugin with this name?`);let u={...c,...l,config:{...c?.config,...l?.config},dependencies:new Set([...c?.dependencies||[],...l?.dependencies||[]])};if(u.resolveConfig){let r={package:Bn(e),pluginByTag:(e,r={})=>{let{defaultPlugin:i,errorMessage:a}=r;for(let r of t){let t=Ip[r]||n[r];if(t&&t.tags?.includes(e)&&r!==s)return r}if(i){let t=Ip[i]||n[i];if(t&&t.tags?.includes(e)&&i!==s)return i}throw Error(a||`missing plugin - no plugin with tag "${e}" found`)},valueToObject:Re};u.resolveConfig(u,r)}for(let e of u.dependencies)o(e);r.delete(s),i.add(s),a[s]=u};for(let e of t)o(e);return{pluginOrder:Array.from(i),plugins:a}},zp=e=>typeof e==`string`?e.startsWith(`@hey-api/client`)||e.startsWith(`legacy/`):e.name.startsWith(`@hey-api/client`)||e.name.startsWith(`legacy/`)||e.tags&&e.tags.includes(`client`),Bp=({dependencies:e,userConfig:t})=>{let n={},r=Lp;return t.plugins&&(t.plugins=t.plugins.filter(e=>typeof e==`string`&&e||typeof e!=`string`&&e.name),r=t.plugins.length===1&&zp(t.plugins[0])?[...Lp,...t.plugins]:t.plugins),Rp({dependencies:e,userPlugins:r.map(e=>{if(typeof e==`string`)return e;let t=e.name;return t&&(e.handler?n[t]=e:(n[t]={config:{...e}},delete n[t].config.name)),t}).filter(Boolean),userPluginsConfig:n})},Vp=()=>!!(process.stdin.isTTY&&process.stdout.isTTY&&!process.env.CI&&!process.env.NO_INTERACTIVE&&!process.env.NO_INTERACTION),Hp=async({logger:e,userConfigs:n})=>{let i=[],a={},o=e.timeEvent(`load`);for(let r of n){let n;if(r?.configFile){let e=r.configFile.split(`.`);n=e.slice(0,e.length-1).join(`.`)}let o=e.timeEvent(`c12`),{loadConfig:s}=await import(`c12`),{config:c,configFile:l}=await s({configFile:n,name:`openapi-ts`});o.timeEnd(),Object.keys(a).length||(a=Be(Object.keys(c).length?l:void 0));let u=c instanceof Array?c.map(e=>Fe(e,r)):[Fe(c,r)];for(let e of u){let n=Me(e);if(e.output instanceof Array){let r=n.length,a=e.output.length;if(a>1)if(r!==a){console.warn(`⚙️ ${t.yellow(`Warning:`)} You provided ${t.cyan(String(r))} ${t.cyan(r===1?`input`:`inputs`)} and ${t.yellow(String(a))} ${t.yellow(`outputs`)}. This is probably not what you want as it will produce identical output in multiple locations. You most likely want to provide a single output or the same number of outputs as inputs.`);for(let t of e.output)i.push({...e,input:n,output:t})}else e.output.forEach((t,r)=>{i.push({...e,input:n[r],output:t})});else i.push({...e,input:n,output:e.output[0]??``})}else i.push({...e,input:n})}}o.timeEnd();let s=[],c=e.timeEvent(`build`);for(let e of i){let{base:n,configFile:i=``,dryRun:o=!1,experimentalParser:c=!0,exportCore:l=!0,name:u,request:d,useOptions:f=!0}=e,p=e.interactive===void 0?Vp():e.interactive,m=Ne(e),h=Me(e),g=ze(e),_=He(e),v=[];h.length||v.push(new ne(`missing input - which OpenAPI specification should we use to generate your output?`)),g.path||v.push(new ne(`missing output - where should we generate your output?`)),!f&&m.level!==`silent`&&console.warn(`❗️ Deprecation warning: useOptions set to false. This setting will be removed in future versions. Please migrate useOptions to true https://heyapi.dev/openapi-ts/migrating.html#v0-27-38`),g.path=r.resolve(process.cwd(),g.path);let y;try{y=Bp({dependencies:a,userConfig:e})}catch(e){v.push(e),y={pluginOrder:[],plugins:{}}}let b=fe({...y,base:n,configFile:i,dryRun:o,experimentalParser:c,exportCore:!1,input:h,interactive:p,logs:m,name:u,output:g,parser:_,request:d,useOptions:f});b.exportCore=C(b)?l:!1;let ee=s.length;if(m.level===`debug`){let e=t.gray(`[Job ${ee+1}] `);console.warn(`${e}${t.cyan(`config:`)}`,b)}s.push({config:b,errors:v,jobIndex:ee})}return c.timeEnd(),{dependencies:a,results:s}};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});const Up=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},Wp=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},Gp=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},Kp=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(Wp(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=Up(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):qp({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},qp=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},Jp=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=Gp(r),s=Object.entries(i).map(([t,i])=>qp({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},Yp=({allowReserved:e,array:t,object:n}={})=>r=>{let i=[];if(r&&typeof r==`object`)for(let a in r){let o=r[a];if(o!=null)if(Array.isArray(o)){let n=Kp({allowReserved:e,explode:!0,name:a,style:`form`,value:o,...t});n&&i.push(n)}else if(typeof o==`object`){let t=Jp({allowReserved:e,explode:!0,name:a,style:`deepObject`,value:o,...n});t&&i.push(t)}else{let t=qp({allowReserved:e,name:a,value:o});t&&i.push(t)}}return i.join(`&`)},Xp=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},Zp=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?Xp(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t};Yp({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}});const Qp=async({fetchOptions:e,inputPath:t,timeout:n,watch:r})=>{let i=f({pathOrUrlOrSchema:t}),a,o,s;if(i.type===`url`){if(r.lastValue&&r.isHeadMethodSupported!==!1){try{let t=await p({fetchOptions:{method:`HEAD`,...e,headers:Zp(e?.headers,r.headers)},timeout:n,url:i.path});if(t.response.status>=300)return{error:`not-ok`,response:t.response};s=t.response}catch(e){return{error:`not-ok`,response:new Response(e.message)}}if(!s.ok&&r.isHeadMethodSupported)return{error:`not-ok`,response:s};if(r.isHeadMethodSupported===void 0&&(r.isHeadMethodSupported=s.ok),s.status===304)return{error:`not-modified`,response:s};if(o===void 0){let e=s.headers.get(`ETag`);e&&(o=e!==r.headers.get(`If-None-Match`),o&&r.headers.set(`If-None-Match`,e))}if(o===void 0){let e=s.headers.get(`Last-Modified`);e&&(o=e!==r.headers.get(`If-Modified-Since`),o&&r.headers.set(`If-Modified-Since`,e))}if(o===!1)return{error:`not-modified`,response:s}}try{let t=await p({fetchOptions:{method:`GET`,...e},timeout:n,url:i.path});if(t.response.status>=300)return{error:`not-ok`,response:t.response};s=t.response}catch(e){return{error:`not-ok`,response:new Response(e.message)}}if(!s.ok)return{error:`not-ok`,response:s};if(a=s.body?await s.arrayBuffer():new ArrayBuffer(0),o===void 0){let e=new TextDecoder().decode(a);o=e!==r.lastValue,r.lastValue=e}}else r.lastValue?o=!1:r.lastValue=i.type;return o===!1?{error:`not-modified`,response:s}:{arrayBuffer:a,resolvedInput:i}};export{se as A,C,re as D,ne as E,_ as F,le as M,b as N,ie as O,ee as P,S,x as T,M as _,il as a,Ve as b,Kc as c,ns as d,is as f,An as g,rr as h,Ml as i,ce as j,oe as k,mc as l,Io as m,Hp as n,el as o,Ko as p,Lp as r,Gc as s,Qp as t,hc as u,w as v,pe as w,Ne as x,Ue as y};
24
+ //# sourceMappingURL=getSpec-BlRTbnm6.js.map