@hey-api/openapi-ts 0.80.8 → 0.80.10

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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {b,a,c,v,J,q,i,k,l,j,h,K,o,p as p$1,E,D,n,z,g,e,d as d$1,m,x,t,w,A,B,C as C$1,f,y}from'./chunk-F4DKDLSY.js';export{F as clientDefaultConfig,G as clientDefaultMeta,H as clientPluginHandler,u as compiler,r as defaultPaginationKeywords,I as defaultPlugins,s as definePluginConfig,t as tsc}from'./chunk-F4DKDLSY.js';import C from'ansi-colors';import cr from'color-support';import R from'node:path';import v$1 from'node:fs';import At from'typescript';import p from'handlebars';createRequire(import.meta.url);
1
+ import {createRequire}from'module';import {b,a,c,v,J,q,i,k,l,j,h,K,o,p as p$1,E,D,n,z,g,e,d as d$1,m,x,t,w,A,B,C as C$1,f,y}from'./chunk-7LYLA6HT.js';export{F as clientDefaultConfig,G as clientDefaultMeta,H as clientPluginHandler,u as compiler,r as defaultPaginationKeywords,I as defaultPlugins,s as definePluginConfig,t as tsc}from'./chunk-7LYLA6HT.js';import C from'ansi-colors';import cr from'color-support';import R from'node:path';import v$1 from'node:fs';import At from'typescript';import p from'handlebars';createRequire(import.meta.url);
2
2
  var De=b((eo,He)=>{He.exports=Se;Se.sync=kt;var Oe=a("fs");function Tt(e,n){var o=n.pathExt!==void 0?n.pathExt:process.env.PATHEXT;if(!o||(o=o.split(";"),o.indexOf("")!==-1))return true;for(var r=0;r<o.length;r++){var t=o[r].toLowerCase();if(t&&e.substr(-t.length).toLowerCase()===t)return true}return false}function Ee(e,n,o){return !e.isSymbolicLink()&&!e.isFile()?false:Tt(n,o)}function Se(e,n,o){Oe.stat(e,function(r,t){o(r,r?false:Ee(t,e,n));});}function kt(e,n){return Ee(Oe.statSync(e),e,n)}});var Ne=b((no,$e)=>{$e.exports=Be;Be.sync=wt;var Ie=a("fs");function Be(e,n,o){Ie.stat(e,function(r,t){o(r,r?false:je(t,n));});}function wt(e,n){return je(Ie.statSync(e),n)}function je(e,n){return e.isFile()&&Ot(e,n)}function Ot(e,n){var o=e.mode,r=e.uid,t=e.gid,s=n.uid!==void 0?n.uid:process.getuid&&process.getuid(),a=n.gid!==void 0?n.gid:process.getgid&&process.getgid(),i=parseInt("100",8),u=parseInt("010",8),l=parseInt("001",8),c=i|u,f=o&l||o&u&&t===a||o&i&&r===s||o&c&&s===0;return f}});var _e=b((ro,Fe)=>{a("fs");var _;process.platform==="win32"||global.TESTING_WINDOWS?_=De():_=Ne();Fe.exports=G;G.sync=Et;function G(e,n,o){if(typeof n=="function"&&(o=n,n={}),!o){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,t){G(e,n||{},function(s,a){s?t(s):r(a);});})}_(e,n||{},function(r,t){r&&(r.code==="EACCES"||n&&n.ignoreErrors)&&(r=null,t=false),o(r,t);});}function Et(e,n){try{return _.sync(e,n||{})}catch(o){if(n&&n.ignoreErrors||o.code==="EACCES")return false;throw o}}});var ze=b((oo,Ge)=>{var O=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Le=a("path"),St=O?";":":",Me=_e(),We=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Ue=(e,n)=>{let o=n.colon||St,r=e.match(/\//)||O&&e.match(/\\/)?[""]:[...O?[process.cwd()]:[],...(n.path||process.env.PATH||"").split(o)],t=O?n.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=O?t.split(o):[""];return O&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:r,pathExt:s,pathExtExe:t}},Ve=(e,n,o)=>{typeof n=="function"&&(o=n,n={}),n||(n={});let{pathEnv:r,pathExt:t,pathExtExe:s}=Ue(e,n),a=[],i=l=>new Promise((c,f)=>{if(l===r.length)return n.all&&a.length?c(a):f(We(e));let m=r[l],A=/^".*"$/.test(m)?m.slice(1,-1):m,q=Le.join(A,e),k=!A&&/^\.[\\\/]/.test(e)?e.slice(0,2)+q:q;c(u(k,l,0));}),u=(l,c,f)=>new Promise((m,A)=>{if(f===t.length)return m(i(c+1));let q=t[f];Me(l+q,{pathExt:s},(k,H)=>{if(!k&&H)if(n.all)a.push(l+q);else return m(l+q);return m(u(l,c,f+1))});});return o?i(0).then(l=>o(null,l),o):i(0)},Ht=(e,n)=>{n=n||{};let{pathEnv:o,pathExt:r,pathExtExe:t}=Ue(e,n),s=[];for(let a=0;a<o.length;a++){let i=o[a],u=/^".*"$/.test(i)?i.slice(1,-1):i,l=Le.join(u,e),c=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;for(let f=0;f<r.length;f++){let m=c+r[f];try{if(Me.sync(m,{pathExt:t}))if(n.all)s.push(m);else return m}catch{}}}if(n.all&&s.length)return s;if(n.nothrow)return null;throw We(e)};Ge.exports=Ve;Ve.sync=Ht;});var Xe=b((so,z)=>{var Ke=(e={})=>{let n=e.env||process.env;return (e.platform||process.platform)!=="win32"?"PATH":Object.keys(n).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};z.exports=Ke;z.exports.default=Ke;});var Ze=b((io,Ye)=>{var Qe=a("path"),Dt=ze(),It=Xe();function Je(e,n){let o=e.options.env||process.env,r=process.cwd(),t=e.options.cwd!=null,s=t&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd);}catch{}let a;try{a=Dt.sync(e.command,{path:o[It({env:o})],pathExt:n?Qe.delimiter:void 0});}catch{}finally{s&&process.chdir(r);}return a&&(a=Qe.resolve(t?e.options.cwd:"",a)),a}function Bt(e){return Je(e)||Je(e,true)}Ye.exports=Bt;});var en=b((ao,X)=>{var K=/([()\][%!^"`<>&|;, *?])/g;function jt(e){return e=e.replace(K,"^$1"),e}function $t(e,n){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(K,"^$1"),n&&(e=e.replace(K,"^$1")),e}X.exports.command=jt;X.exports.argument=$t;});var tn=b((lo,nn)=>{nn.exports=/^#!(.*)/;});var on=b((uo,rn)=>{var Nt=tn();rn.exports=(e="")=>{let n=e.match(Nt);if(!n)return null;let[o,r]=n[0].replace(/#! ?/,"").split(" "),t=o.split("/").pop();return t==="env"?r:r?`${t} ${r}`:t};});var an=b((po,sn)=>{var Q=a("fs"),Ft=on();function _t(e){let o=Buffer.alloc(150),r;try{r=Q.openSync(e,"r"),Q.readSync(r,o,0,150,0),Q.closeSync(r);}catch{}return Ft(o.toString())}sn.exports=_t;});var cn=b((co,pn)=>{var Lt=a("path"),ln=Ze(),un=en(),Mt=an(),Wt=process.platform==="win32",Ut=/\.(?:com|exe)$/i,Vt=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Gt(e){e.file=ln(e);let n=e.file&&Mt(e.file);return n?(e.args.unshift(e.file),e.command=n,ln(e)):e.file}function zt(e){if(!Wt)return e;let n=Gt(e),o=!Ut.test(n);if(e.options.forceShell||o){let r=Vt.test(n);e.command=Lt.normalize(e.command),e.command=un.command(e.command),e.args=e.args.map(s=>un.argument(s,r));let t=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${t}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=true;}return e}function Kt(e,n,o){n&&!Array.isArray(n)&&(o=n,n=null),n=n?n.slice(0):[],o=Object.assign({},o);let r={command:e,args:n,options:o,file:void 0,original:{command:e,args:n}};return o.shell?r:zt(r)}pn.exports=Kt;});var dn=b((fo,mn)=>{var J=process.platform==="win32";function Y(e,n){return Object.assign(new Error(`${n} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${n} ${e.command}`,path:e.command,spawnargs:e.args})}function Xt(e,n){if(!J)return;let o=e.emit;e.emit=function(r,t){if(r==="exit"){let s=fn(t,n);if(s)return o.call(e,"error",s)}return o.apply(e,arguments)};}function fn(e,n){return J&&e===1&&!n.file?Y(n.original,"spawn"):null}function Qt(e,n){return J&&e===1&&!n.file?Y(n.original,"spawnSync"):null}mn.exports={hookChildProcess:Xt,verifyENOENT:fn,verifyENOENTSync:Qt,notFoundError:Y};});var hn=b((mo,E)=>{var gn=a("child_process"),Z=cn(),ee=dn();function yn(e,n,o){let r=Z(e,n,o),t=gn.spawn(r.command,r.args,r.options);return ee.hookChildProcess(t,r),t}function Jt(e,n,o){let r=Z(e,n,o),t=gn.spawnSync(r.command,r.args,r.options);return t.error=t.error||ee.verifyENOENTSync(t.status,r),t}E.exports=yn;E.exports.spawn=yn;E.exports.sync=Jt;E.exports._parse=Z;E.exports._enoent=ee;});var Ce=()=>{if(typeof Bun<"u"){let[e]=Bun.version.split(".").map(Number);if(e<1)throw new h(`Unsupported Bun version ${Bun.version}. Please use Bun 1.0.0 or newer.`)}else if(typeof process<"u"&&process.versions?.node){let[e]=process.versions.node.split(".").map(Number);if(e<18)throw new h(`Unsupported Node version ${process.versions.node}. Please use Node 18 or newer.`)}};var F=e=>{switch(e){case "legacy/angular":return "AngularHttpRequest";case "legacy/axios":return "AxiosHttpRequest";case "legacy/fetch":return "FetchHttpRequest";case "legacy/node":return "NodeHttpRequest";case "legacy/xhr":return "XHRHttpRequest";default:return ""}};var be=async(e,n$1,o,r)=>{let t=n(),s=m(t),a=r.client({$config:t,...o,httpRequest:F(s.name),models:C$1(o.models),services:C$1(o.services)});p$1(t)&&(f(n$1),v$1.writeFileSync(R.resolve(n$1,`${p$1(t)}.ts`),a));};var qe=async(e,n$1,o)=>{let r=n();if(r.exportCore){let t=m(r),s={httpRequest:F(t.name),server:r.base!==void 0?r.base:n$1.server,version:n$1.version};if(v$1.rmSync(R.resolve(e),{force:true,recursive:true}),v$1.mkdirSync(R.resolve(e),{recursive:true}),await v$1.writeFileSync(R.resolve(e,"OpenAPI.ts"),o.core.settings({$config:r,...s})),await v$1.writeFileSync(R.resolve(e,"ApiError.ts"),o.core.apiError({$config:r,...s})),await v$1.writeFileSync(R.resolve(e,"ApiRequestOptions.ts"),o.core.apiRequestOptions({$config:r,...s})),await v$1.writeFileSync(R.resolve(e,"ApiResult.ts"),o.core.apiResult({$config:r,...s})),t.name!=="legacy/angular"&&await v$1.writeFileSync(R.resolve(e,"CancelablePromise.ts"),o.core.cancelablePromise({$config:r,...s})),await v$1.writeFileSync(R.resolve(e,"request.ts"),o.core.request({$config:r,...s})),p$1(r)&&(await v$1.writeFileSync(R.resolve(e,"BaseHttpRequest.ts"),o.core.baseHttpRequest({$config:r,...s})),await v$1.writeFileSync(R.resolve(e,`${s.httpRequest}.ts`),o.core.httpRequest({$config:r,...s}))),r.request){let a=R.resolve(process.cwd(),r.request);if(!await v$1.existsSync(a))throw new Error(`Custom request file "${a}" does not exists`);await v$1.copyFileSync(a,R.resolve(e,"request.ts"));}}};var Ae=({files:e})=>{let n$1=n();e.index=new w({dir:n$1.output.path,id:"index",name:"index.ts"}),p$1(n$1)&&e.index.add(t.exportNamedDeclaration({exports:p$1(n$1),module:`./${p$1(n$1)}`})),n$1.exportCore&&(e.index.add(t.exportNamedDeclaration({exports:"ApiError",module:"./core/ApiError"})),n$1.plugins["@hey-api/sdk"]?.config.response==="response"&&e.index.add(t.exportNamedDeclaration({exports:{asType:true,name:"ApiResult"},module:"./core/ApiResult"})),p$1(n$1)&&e.index.add(t.exportNamedDeclaration({exports:"BaseHttpRequest",module:"./core/BaseHttpRequest"})),m(n$1).name!=="legacy/angular"&&e.index.add(t.exportNamedDeclaration({exports:["CancelablePromise","CancelError"],module:"./core/CancelablePromise"})),e.index.add(t.exportNamedDeclaration({exports:["OpenAPI",{asType:true,name:"OpenAPIConfig"}],module:"./core/OpenAPI"}))),Object.keys(e).sort().forEach(o=>{let r=e[o];o==="index"||r.isEmpty()||r.exportFromIndex&&e.index.add(t.exportAllDeclaration({module:`./${r.nameWithoutExtension()}`}));});};var Te=async({client:e$1,openApi:n$1,templates:o$1})=>{let r=n(),t=n$1;if(e$1){if(r.plugins["@hey-api/sdk"]?.config.include&&r.plugins["@hey-api/sdk"].config.asClass){let l=new RegExp(r.plugins["@hey-api/sdk"].config.include);e$1.services=e$1.services.filter(c=>l.test(c.name));}if(r.plugins["@hey-api/typescript"]?.config.include){let l=new RegExp(r.plugins["@hey-api/typescript"].config.include);e$1.models=e$1.models.filter(c=>l.test(c.name));}}let s=R.resolve(r.output.path);r.output.clean&&g(s);let a=e(d$1(r.output.tsConfigPath)),i=m(r);!o(r)&&"bundle"in i.config&&i.config.bundle&&x({legacy:true,outputPath:s,plugin:i,tsConfig:a}),await be(t,s,e$1,o$1),await qe(R.resolve(r.output.path,"core"),e$1,o$1);let u={};for(let l of r.pluginOrder){let c=r.plugins[l],f=(c.output??"").split("/"),m=R.resolve(r.output.path,...f.slice(0,f.length-1));u[c.name]=new w({dir:m,id:`legacy-unused-${c.name}`,name:`${f[f.length-1]}.ts`}),c.handlerLegacy?.({client:e$1,files:u,openApi:t,plugin:c});}Ae({files:u}),Object.entries(u).forEach(([l,c])=>{r.dryRun||(l==="index"?c.write(`
3
3
  `,a):c.write(`
4
4
 
package/dist/internal.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
  `));let o=r?.options.moduleResolution===b__default.default.ModuleResolutionKind.NodeNext,i=[];for(let[a,p]of this._imports.entries()){let c=Array.from(p.values()),m=a;o&&(m.startsWith("./")||m.startsWith("../"))&&(m==="./client"?m="./client/index.js":m=`${m}.js`);let f=n.namedImportDeclarations({imports:c,module:m});i.push(Ce({node:f}));}return i.length&&s.push(i.join(`
5
5
  `)),s=s.concat(this._items.map(a=>typeof a=="string"?a:Ce({node:a,unescape:true}))),s.join(t)}updateNode(t,r){let s=dt({base:he(r.name),components:Object.values(this.names)});this.names[t]=s;let o=n.typeReferenceNode({typeName:s});return this.nodes[t]?Object.assign(this.nodes[t].node,o):this.nodes[t]={node:o},r.exported!==void 0&&(this.nodes[t].exported=r.exported),this.nodes[t]}updateNodeReferences(t,r){if(!this.nodeReferences[t])return;let s=dt({base:he(r),components:Object.values(this.names)});this.names[t]=s;for(let o of this.nodeReferences[t]){let i=o.factory(s);Object.assign(o.node,i);}}write(t=`
6
6
  `,r=null){if(this.isEmpty()){this.remove({force:true});return}let s=this._path;if(typeof this._path=="string"){let o=this._path.split(sr__default.default.sep);s=o.slice(0,o.length-1).join(sr__default.default.sep);}Zr(s),oo__default.default.writeFileSync(this._path,this._toString(t,r));}},li=e=>{let t=e,r=[],s=t.split("/"),o=s[s.length-1]||"",i=s.indexOf("properties");if(i!==-1)for(t=s.slice(0,i).join("/"),o=s[i-1]||"";i+1<s.length;){let a=s[i+1];if(!a)throw new Error(`Invalid $ref: ${e}`);r.push(a),i+=2;}return {name:o,properties:r,ref:t}},ic=(e,t,r)=>{if(typeof t=="function")return t(e);let s=r==="preserve"?"":"-";return t.replace("{{name}}",`${s}${e}${s}`)},Ts=({$ref:e,case:t,count:r=1,create:s=false,identifiers:o,nameTransformer:i,namespace:a})=>{let{name:p,properties:c,ref:m}=li(e);if(!p)return {created:false,name:""};let f=E({case:t,value:i?ic(p,i,t):p});r>1&&(f=`${f}${r}`);let l=f.toLocaleLowerCase();o[l]||(o[l]={});let d=o[l];if(a==="enum"&&(d.type||d.value)||a!=="enum"&&d.enum)return Ts({$ref:m,case:t,count:r+1,create:s,identifiers:o,nameTransformer:i,namespace:a});d[a]||(d[a]={});let y=d[a],h=y[m];if(h){let S=h.name;return c.length&&(S+=c.map(O=>`['${O}']`).join("")),{created:false,name:S}}let x=y[f];return x?x.$ref===m?{created:false,name:x.name}:Ts({$ref:m,case:t,count:r+1,create:s,identifiers:o,nameTransformer:i,namespace:a}):s?(x={$ref:m,name:he(f)},y[f]=x,y[x.$ref]=x,{created:true,name:x.name}):(delete d[a],{created:false,name:""})},an=e=>{let t=e.match(/\.[0-9a-z]+$/i),r=t?t[0].slice(1):"",s=e.slice(0,e.length-(r?r.length+1:0));return {extension:r,name:s}};var pc=url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('internal.cjs', document.baseURI).href)));sr__default.default.dirname(pc);var cc=e=>{let t=e.split(sr__default.default.sep);return t.slice(0,t.length-1).join(sr__default.default.sep)},Q=({config:e,sourceOutput:t})=>{let r=j(e);if("bundle"in r.config&&r.config.bundle)return Ut({moduleOutput:"client",sourceOutput:t});if(sr__default.default.isAbsolute(r.name)){let s=cc(r.name),o=sr__default.default.resolve(e.output.path);return sr__default.default.relative(o,s).replace(/\\/g,"/")}return r.name},z={Options:{asType:true,name:"Options"},OptionsLegacyParser:{asType:true,name:"OptionsLegacyParser"}};var cn=e=>({getVersion:t=>{let r=e[t];try{if(r)return pn__namespace.parse(r)||void 0}catch{}},isInstalled:t=>!!e[t],satisfies:(t,r,s)=>{let o=typeof t=="string"?e[t]:t;return o?pn__namespace.satisfies(o,r,s):false}});var mn=class{api;config;context;dependencies=[];handler;name;output;package;constructor(t){this.api=t.api??{},this.config=t.config,this.context=t.context,this.dependencies=t.dependencies,this.handler=t.handler,this.name=t.name,this.output=t.output,this.package=t.context.package;}createFile(t){return this.context.createFile({exportFromIndex:this.config.exportFromIndex,...t})}forEach(...t){let r=t.slice(0,-1),s=t[t.length-1],o=new Set(r.length?r:["operation","parameter","requestBody","schema","server"]);if(o.has("server")&&this.context.ir.servers)for(let i of this.context.ir.servers){let a={server:i,type:"server"};try{s(a);}catch(p){this.forEachError(p,a);}}if(o.has("schema")&&this.context.ir.components?.schemas)for(let i in this.context.ir.components.schemas){let a={$ref:`#/components/schemas/${i}`,name:i,schema:this.context.ir.components.schemas[i],type:"schema"};try{s(a);}catch(p){this.forEachError(p,a);}}if(o.has("parameter")&&this.context.ir.components?.parameters)for(let i in this.context.ir.components.parameters){let a={$ref:`#/components/parameters/${i}`,name:i,parameter:this.context.ir.components.parameters[i],type:"parameter"};try{s(a);}catch(p){this.forEachError(p,a);}}if(o.has("requestBody")&&this.context.ir.components?.requestBodies)for(let i in this.context.ir.components.requestBodies){let a={$ref:`#/components/requestBodies/${i}`,name:i,requestBody:this.context.ir.components.requestBodies[i],type:"requestBody"};try{s(a);}catch(p){this.forEachError(p,a);}}if(o.has("operation")&&this.context.ir.paths)for(let i in this.context.ir.paths){let a=this.context.ir.paths[i];for(let p in a){let c=p,m={method:c,operation:a[c],path:i,type:"operation"};try{s(m);}catch(f){this.forEachError(f,m);}}}}forEachError(t,r){let s=t instanceof Error?t:new Error(String(t));throw new Ur({args:[r],error:s,event:r.type,name:"Error",pluginName:this.name})}getPlugin(t){return this.context.plugins[t]}async run(){await this.handler({plugin:this});}};var mc=/~1/g,fc=/~0/g,D=e=>{let t=Le(e),r=t[t.length-1];return decodeURI(r)},lc=e=>String(e).replace(/~/g,"~0").replace(/\//g,"~1"),Le=e=>{let t=e.trim();return t.startsWith("#")&&(t=t.slice(1)),t.startsWith("/")&&(t=t.slice(1)),t?t.split("/").map(r=>r.replace(mc,"/").replace(fc,"~")):[]},ui=e=>{let t=e.trim();return t.startsWith("#")||(t=`#${t}`),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t=t.replace(/\/+/g,"/"),t},di=e=>{let t=e.map(lc).join("/");return "#"+(t?`/${t}`:"")},Rs=({$ref:e,spec:t})=>{let r=Le(decodeURI(e)),s=t;for(let o of r){let i=o;if(s[i]===void 0)throw new Error(`Reference not found: ${e}`);s=s[i];}return s};var fn=class{config;files={};ir={};package;plugins={};spec;constructor({config:t,dependencies:r,spec:s}){this.config=t,this.package=cn(r),this.spec=s;}createFile(t){let r=t.path.split("/"),s=sr__default.default.resolve(this.config.output.path,...r.slice(0,r.length-1)),o=new Fe({case:t.case,dir:s,exportFromIndex:t.exportFromIndex,id:t.id,name:`${r[r.length-1]}.ts`});return this.files[t.id]=o,o}dereference(t){let r=this.resolveRef(t.$ref),s={...t,...r};return delete s.$ref,s}file({id:t}){return this.files[t]}registerPlugin(t){let r=this.config.plugins[t],s=new mn({api:r.api,config:r.config,context:this,dependencies:r.dependencies??[],handler:r.handler,name:r.name,output:r.output});return this.plugins[s.name]=s,s}registerPlugins(){return this.config.pluginOrder.map(t=>this.registerPlugin(t))}resolveIrRef(t){return Rs({$ref:t,spec:this.ir})}resolveRef(t){return Rs({$ref:t,spec:this.spec})}};var Mt=e=>{let t=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_");return Xt.lastIndex=0,Xt.test(t)?`_${t}`:t},yt=e=>e.replace(/^[^\p{ID_Start}]+/u,"").replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"-").replace(/[$+]/g,"-"),As=e=>{let t=e.replace("[]","Array");return yt(t)};var te=["delete","get","head","options","patch","post","put","trace"],Ft=({context:e,count:t=1,id:r,method:s,path:o,state:i})=>{let a,{output:p}=e.config,c=(p!==void 0&&typeof p=="object"&&"case"in p?p.case:void 0)??"camelCase";if(r&&(!e.config.plugins["@hey-api/sdk"]||e.config.plugins["@hey-api/sdk"].config.operationId))a=E({case:c,value:yt(r)});else {let m=o.replace(/{(.*?)}/g,"by-$1").replace(/[/:+]/g,"-");a=E({case:c,value:`${s}-${m}`});}return t>1&&(a=`${a}${t}`),i.ids.has(a)?Ft({context:e,count:t+1,id:r,method:s,path:o,state:i}):(i.ids.set(a,q({method:s,path:o})),a)};var yi="/",P=(e,t="")=>`${e}${yi}${t}`,Y=e=>{let t=e.indexOf(yi);return {name:e.slice(t+1),namespace:e.slice(0,t)}},gi=e=>{switch(e){case "parameters":return "parameter";case "requestBodies":return "body";case "responses":return "response";case "definitions":case "schemas":return "schema";default:return "unknown"}},De=(e,t)=>{let r=[],s=[];if(t)for(let o of t)o.startsWith("/")&&o.endsWith("/")?s.push(new RegExp(o.slice(1,o.length-1))):r.push(P(e,o));return {regexps:s,set:new Set(r)}},dc=({excludeOperations:e,excludeSchemas:t,includeOperations:r,includeSchemas:s,spec:o})=>{if((e.regexps.length||r.regexps.length)&&o.paths)for(let i of Object.entries(o.paths)){let a=i[0],p=i[1];for(let c of te){if(!p[c])continue;let f=q({method:c,path:a});e.regexps.some(l=>l.test(f))&&e.set.add(P("operation",f)),r.regexps.some(l=>l.test(f))&&r.set.add(P("operation",f));}}if(o.definitions&&(t.regexps.length||s.regexps.length))for(let i of Object.keys(o.definitions))t.regexps.some(a=>a.test(i))&&t.set.add(P("schema",i)),s.regexps.some(a=>a.test(i))&&s.set.add(P("schema",i));},yc=({excludeOperations:e,excludeParameters:t,excludeRequestBodies:r,excludeResponses:s,excludeSchemas:o,includeOperations:i,includeParameters:a,includeRequestBodies:p,includeResponses:c,includeSchemas:m,spec:f})=>{if((e.regexps.length||i.regexps.length)&&f.paths)for(let l of Object.entries(f.paths)){let d=l[0],y=l[1];for(let h of te){if(!y[h])continue;let S=q({method:h,path:d});e.regexps.some(O=>O.test(S))&&e.set.add(P("operation",S)),i.regexps.some(O=>O.test(S))&&i.set.add(P("operation",S));}}if(f.components){if((t.regexps.length||a.regexps.length)&&f.components.parameters)for(let l of Object.keys(f.components.parameters))t.regexps.some(d=>d.test(l))&&t.set.add(P("parameter",l)),a.regexps.some(d=>d.test(l))&&a.set.add(P("parameter",l));if((r.regexps.length||p.regexps.length)&&f.components.requestBodies)for(let l of Object.keys(f.components.requestBodies))r.regexps.some(d=>d.test(l))&&r.set.add(P("body",l)),p.regexps.some(d=>d.test(l))&&p.set.add(P("body",l));if((s.regexps.length||c.regexps.length)&&f.components.responses)for(let l of Object.keys(f.components.responses))s.regexps.some(d=>d.test(l))&&s.set.add(P("response",l)),c.regexps.some(d=>d.test(l))&&c.set.add(P("response",l));if((o.regexps.length||m.regexps.length)&&f.components.schemas)for(let l of Object.keys(f.components.schemas))o.regexps.some(d=>d.test(l))&&o.set.add(P("schema",l)),m.regexps.some(d=>d.test(l))&&m.set.add(P("schema",l));}},gc=({spec:e,...t})=>{"swagger"in e?dc({...t,spec:e}):yc({...t,spec:e});},ir=(e,t)=>{let r=De("operation",e?.operations?.exclude),s=De("operation",e?.operations?.include),o=De("parameter",e?.parameters?.exclude),i=De("parameter",e?.parameters?.include),a=De("body",e?.requestBodies?.exclude),p=De("body",e?.requestBodies?.include),c=De("response",e?.responses?.exclude),m=De("response",e?.responses?.include),f=De("schema",e?.schemas?.exclude),l=De("schema",e?.schemas?.include);return gc({excludeOperations:r,excludeParameters:o,excludeRequestBodies:a,excludeResponses:c,excludeSchemas:f,includeOperations:s,includeParameters:i,includeRequestBodies:p,includeResponses:m,includeSchemas:l,spec:t}),{deprecated:e?.deprecated??true,operations:{exclude:r.set,include:s.set},orphans:e?.orphans??false,parameters:{exclude:o.set,include:i.set},preserveOrder:e?.preserveOrder??false,requestBodies:{exclude:a.set,include:p.set},responses:{exclude:c.set,include:m.set},schemas:{exclude:f.set,include:l.set},tags:{exclude:new Set(e?.tags?.exclude),include:new Set(e?.tags?.include)}}},ar=e=>e?e.orphans===false||e.deprecated===false?true:!!(e.operations?.exclude?.length||e.operations?.include?.length||e.parameters?.exclude?.length||e.parameters?.include?.length||e.requestBodies?.exclude?.length||e.requestBodies?.include?.length||e.responses?.exclude?.length||e.responses?.include?.length||e.schemas?.exclude?.length||e.schemas?.include?.length||e.tags?.exclude?.length||e.tags?.include?.length):false,hc=({filters:e,parameters:t,requestBodies:r,resourceMetadata:s,responses:o,schemas:i})=>{let a=new Set,c=[...e.operations.include.size?e.operations.include:new Set(s.operations.keys())];for(;c.length;){let m=c.pop();if(e.operations.exclude.has(m)||a.has(m))continue;let f=s.operations.get(m);f&&(!e.deprecated&&f.deprecated||e.tags.exclude.size&&f.tags.size&&[...e.tags.exclude].some(l=>f.tags.has(l))||e.tags.include.size&&!new Set([...e.tags.include].filter(l=>f.tags.has(l))).size||[...f.dependencies].some(l=>{let{namespace:d}=Y(l);switch(d){case "body":return !r.has(l);case "parameter":return !t.has(l);case "response":return !o.has(l);case "schema":return !i.has(l);default:return false}})||a.add(m));}return {operations:a}},xc=({filters:e,resourceMetadata:t,schemas:r})=>{let s=new Set,i=[...e.parameters.include.size?e.parameters.include:new Set(t.parameters.keys())];for(;i.length;){let a=i.pop();if(e.parameters.exclude.has(a)||s.has(a))continue;let p=t.parameters.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(s.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:m}=Y(c);switch(m){case "body":{e.requestBodies.exclude.has(c)?s.delete(a):s.has(c)||i.push(c);break}case "schema":{e.schemas.exclude.has(c)?s.delete(a):r.has(c)||r.add(c);break}}}}return {parameters:s}},bc=({filters:e,resourceMetadata:t,schemas:r})=>{let s=new Set,i=[...e.requestBodies.include.size?e.requestBodies.include:new Set(t.requestBodies.keys())];for(;i.length;){let a=i.pop();if(e.requestBodies.exclude.has(a)||s.has(a))continue;let p=t.requestBodies.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(s.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:m}=Y(c);switch(m){case "body":{e.requestBodies.exclude.has(c)?s.delete(a):s.has(c)||i.push(c);break}case "schema":{e.schemas.exclude.has(c)?s.delete(a):r.has(c)||r.add(c);break}}}}return {requestBodies:s}},Oc=({filters:e,resourceMetadata:t,schemas:r})=>{let s=new Set,i=[...e.responses.include.size?e.responses.include:new Set(t.responses.keys())];for(;i.length;){let a=i.pop();if(e.responses.exclude.has(a)||s.has(a))continue;let p=t.responses.get(a);if(p&&!(!e.deprecated&&p.deprecated)&&(s.add(a),!!p.dependencies.size))for(let c of p.dependencies){let{namespace:m}=Y(c);switch(m){case "body":{e.requestBodies.exclude.has(c)?s.delete(a):s.has(c)||i.push(c);break}case "schema":{e.schemas.exclude.has(c)?s.delete(a):r.has(c)||r.add(c);break}}}}return {responses:s}},Sc=({filters:e,resourceMetadata:t})=>{let r=new Set,o=[...e.schemas.include.size?e.schemas.include:new Set(t.schemas.keys())];for(;o.length;){let i=o.pop();if(e.schemas.exclude.has(i)||r.has(i))continue;let a=t.schemas.get(i);if(a&&!(!e.deprecated&&a.deprecated)&&(r.add(i),!!a.dependencies.size))for(let p of a.dependencies){let{namespace:c}=Y(p);switch(c){case "schema":{!r.has(p)&&!e.schemas.exclude.has(p)&&o.push(p);break}}}}return {schemas:r}},Tc=({filters:e,parameters:t,resourceMetadata:r})=>{if(e.parameters.exclude.size)for(let s of t){let o=r.parameters.get(s);if(o?.dependencies.size){for(let i of e.parameters.exclude)if(o.dependencies.has(i)){t.delete(s);break}}}},Rc=({filters:e,requestBodies:t,resourceMetadata:r})=>{if(e.requestBodies.exclude.size)for(let s of t){let o=r.requestBodies.get(s);if(o?.dependencies.size){for(let i of e.requestBodies.exclude)if(o.dependencies.has(i)){t.delete(s);break}}}},Ac=({filters:e,resourceMetadata:t,responses:r})=>{if(e.responses.exclude.size)for(let s of r){let o=t.responses.get(s);if(o?.dependencies.size){for(let i of e.responses.exclude)if(o.dependencies.has(i)){r.delete(s);break}}}},Ic=({filters:e,resourceMetadata:t,schemas:r})=>{if(e.schemas.exclude.size)for(let s of r){let o=t.schemas.get(s);if(o?.dependencies.size){for(let i of e.schemas.exclude)if(o.dependencies.has(i)){r.delete(s);break}}}},Pc=({operationDependencies:e,parameters:t,requestBodies:r,responses:s,schemas:o})=>{for(let i of o)e.has(i)||o.delete(i);for(let i of t)e.has(i)||t.delete(i);for(let i of r)e.has(i)||r.delete(i);for(let i of s)e.has(i)||s.delete(i);},Ec=({operations:e,resourceMetadata:t})=>{let r=new Set,o=[...new Set([...e].flatMap(i=>[...t.operations.get(i)?.dependencies??[]]))];for(;o.length;){let i=o.pop();if(r.has(i))continue;r.add(i);let{namespace:a}=Y(i),p;if(a==="body"?p=t.requestBodies.get(i)?.dependencies:a==="operation"?p=t.operations.get(i)?.dependencies:a==="parameter"?p=t.parameters.get(i)?.dependencies:a==="response"?p=t.responses.get(i)?.dependencies:a==="schema"&&(p=t.schemas.get(i)?.dependencies),!!p?.size)for(let c of p)r.has(c)||o.push(c);}return {operationDependencies:r}},pr=({filters:e,resourceMetadata:t})=>{let{schemas:r}=Sc({filters:e,resourceMetadata:t}),{parameters:s}=xc({filters:e,resourceMetadata:t,schemas:r}),{requestBodies:o}=bc({filters:e,resourceMetadata:t,schemas:r}),{responses:i}=Oc({filters:e,resourceMetadata:t,schemas:r});Ic({filters:e,resourceMetadata:t,schemas:r}),Tc({filters:e,parameters:s,resourceMetadata:t}),Rc({filters:e,requestBodies:o,resourceMetadata:t}),Ac({filters:e,resourceMetadata:t,responses:i});let{operations:a}=hc({filters:e,parameters:s,requestBodies:o,resourceMetadata:t,responses:i,schemas:r});if(!e.orphans&&a.size){let{operationDependencies:p}=Ec({operations:a,resourceMetadata:t});Pc({operationDependencies:p,parameters:s,requestBodies:o,responses:i,schemas:r});}return {operations:a,parameters:s,requestBodies:o,responses:i,schemas:r}};var cr=e=>{let t={operations:new Map,parameters:new Map,requestBodies:new Map,responses:new Map,schemas:new Map},r=s=>{let o=new Set,i=e.allDependencies.get(s);if(i?.size)for(let a of i){let p=Le(a),c=p[p.length-2],m=p[p.length-1];if(c&&m){let f=gi(c);f==="unknown"&&console.warn(`unsupported type: ${c}`),o.add(P(f,m));}}return o};for(let[s,o]of e.nodes){let i=Le(s);if(i[0]==="components"){if(i.length===3){if(i[1]==="schemas"){let a=i[i.length-1];t.schemas.set(P("schema",a),{dependencies:r(s),deprecated:o.deprecated??false});}else if(i[1]==="parameters"){let a=i[i.length-1];t.parameters.set(P("parameter",a),{dependencies:r(s),deprecated:o.deprecated??false});}else if(i[1]==="requestBodies"){let a=i[i.length-1];t.requestBodies.set(P("body",a),{dependencies:r(s),deprecated:o.deprecated??false});}else if(i[1]==="responses"){let a=i[i.length-1];t.responses.set(P("response",a),{dependencies:r(s),deprecated:o.deprecated??false});}}continue}if(i[0]==="paths"){if(i.length===3&&te.includes(i[2])){let a=i[i.length-1],p=i.slice(1,-1).join("/"),c=q({method:a,path:p});t.operations.set(P("operation",c),{dependencies:r(s),deprecated:o.deprecated??false,tags:o.tags??new Set});}continue}if(i[0]==="definitions"){if(i.length===2){let a=i[i.length-1];t.schemas.set(P("schema",a),{dependencies:r(s),deprecated:o.deprecated??false});}continue}}return {resourceMetadata:t}};var v=({config:e,name:t})=>{if(typeof e.name=="function")t=e.name(t);else if(e.name){let r=e.case==="preserve"?"":"-";t=e.name.replace("{{name}}",`${r}${t}${r}`);}return E({case:e.case,value:t})};var gt=[["additionalProperties","single"],["allOf","array"],["anyOf","array"],["contains","single"],["dependentSchemas","objectMap"],["else","single"],["if","single"],["items","singleOrArray"],["oneOf","array"],["patternProperties","objectMap"],["properties","objectMap"],["propertyNames","single"],["then","single"]];var kr=e=>{if(ln(e))return e.components.schemas;if(un(e))return e.definitions},ln=e=>typeof e=="object"&&e!==null&&"components"in e&&typeof e.components=="object"&&e.components!==null&&"schemas"in e.components&&typeof e.components.schemas=="object"&&e.components.schemas!==null,un=e=>typeof e=="object"&&e!==null&&"definitions"in e&&typeof e.definitions=="object"&&e.definitions!==null;var Is=e=>{if(!e||typeof e!="object"||!("enum"in e)||!(e.enum instanceof Array))return;let t=("type"in e?e.type:void 0)||"",r=[...e.enum].sort();return JSON.stringify({type:t,values:r})},Ps=({key:e,node:t,parent:r,path:s,visitor:o})=>{if(!t||typeof t!="object"||t instanceof Array)return;let i=t;("type"in i||"enum"in i||gt.some(([a])=>a in i))&&o({key:e,node:t,parent:r,path:s});for(let[a,p]of Object.entries(i))typeof p=="object"&&p!==null&&(p instanceof Array?p.forEach((c,m)=>Ps({key:m,node:c,parent:p,path:[...s,a,m],visitor:o})):Ps({key:a,node:p,parent:t,path:[...s,a],visitor:o}));},jc=({spec:e})=>{let t=kr(e);if(!t)return;let r=nr(e),s={};for(let[i,a]of Object.entries(t))Is(a)&&(s[`${r}${i}`]=a);let o=i=>{if(i instanceof Array)i.forEach(o);else if(i&&typeof i=="object")for(let[a,p]of Object.entries(i))a==="$ref"&&typeof p=="string"&&p in s?(Object.assign(i,Cr(s[p])),delete i.$ref):o(p);};o(e);for(let i of Object.keys(s)){let a=Le(i),p=a[a.length-1];p&&delete t[p];}},Nc=({config:e,spec:t})=>{let r=kr(t);if(!r)return;let s={};for(let[c,m]of Object.entries(r)){let f=Is(m);f&&(s[f]=c);}let o=[];Ps({key:null,node:t,parent:null,path:[],visitor:c=>{if(!on(c.path)){let m=Is(c.node);m&&o.push({...c,signature:m});}}});let i={},a={};for(let{key:c,node:m,signature:f}of o){if(f in i)continue;if(f in s){i[f]=s[f];continue}let l=v({config:e,name:typeof m=="object"&&m&&"title"in m&&typeof m.title=="string"?m.title:String(c)}),d=dt({base:l,components:r,extraComponents:Object.values(i)});i[f]=d,a[f]=m;}for(let[c,m]of Object.entries(i)){let f=a[c];m&&!(m in r)&&f&&typeof f=="object"&&(r[m]=f);}let p=nr(t);for(let{key:c,parent:m,signature:f}of o){let l=i[f];l&&c!=null&&m&&typeof m=="object"&&(m[c]={$ref:`${p}${l}`});}},hi=({config:e,spec:t})=>{if(e.mode==="inline"){jc({spec:t});return}if(e.mode==="root"){Nc({config:e,spec:t});return}};var Cc=e=>{for(let[,t]of e)if(!t.scopes&&t.parentPointer){let r=e.get(t.parentPointer);r?.scopes&&(t.scopes=new Set(r.scopes));}},js=({graph:e,pointer:t,visited:r})=>{if(r.has(t))return new Set;if(r.add(t),!e.nodes.get(t))return new Set;let o=new Set,i=e.dependencies.get(t);if(i)for(let a of i){o.add(a);let p=js({graph:e,pointer:a,visited:r});for(let c of p)o.add(c);}for(let[a,p]of e.nodes)if(p.parentPointer===t){let c=js({graph:e,pointer:a,visited:r});for(let m of c)o.add(m);}return o},kc=e=>{let t=new Set(Array.from(e.nodes.entries()).filter(([,o])=>o.scopes&&o.scopes.size>0).map(([o])=>o)),r=(o,i,a)=>{i.parentPointer&&t.add(i.parentPointer);let p=e.reverseDependencies.get(o);if(p)for(let c of p)t.add(c);if(a){let c=a.match(/(.*)\/(allOf|anyOf|oneOf)\/\d+$/);if(c){let m=c[1];m&&t.add(m);}}},s=(o,i,a)=>{if(!i?.scopes)return;let p=e.nodes.get(a);if(!p?.scopes)return;Es(p,i)&&r(o,i,a);};for(;t.size>0;){let o=t.values().next().value;t.delete(o);let i=e.nodes.get(o);if(!i)continue;i.scopes||(i.scopes=new Set);let a=i.node;for(let[c,m]of gt){if(!a||typeof a!="object"||!(c in a))continue;let f=a[c];if(m==="array"&&f instanceof Array)for(let l=0;l<f.length;l++){let d=`${o}/${c}/${l}`;s(o,i,d);}else if(m==="objectMap"&&typeof f=="object"&&f!==null&&!(f instanceof Array))for(let l of Object.keys(f)){let d=`${o}/${c}/${l}`;s(o,i,d);}else if(m==="single"&&typeof f=="object"&&f!==null){let l=`${o}/${c}`;s(o,i,l);}else if(m==="singleOrArray"){if(f instanceof Array)for(let l=0;l<f.length;l++){let d=`${o}/${c}/${l}`;s(o,i,d);}else if(typeof f=="object"&&f!==null){let l=`${o}/${c}`;s(o,i,l);}}}let p=e.dependencies.get(o);if(p)for(let c of p){let m=e.nodes.get(c);m?.scopes&&Es(m,i)&&r(o,i);}if(i.parentPointer){let c=e.nodes.get(i.parentPointer);c&&Es(i,c)&&r(i.parentPointer,c);}}},Es=(e,t)=>{if(!e.scopes)return false;t.scopes||(t.scopes=new Set);let r=false;for(let s of e.scopes)t.scopes.has(s)||(t.scopes.add(s),r=true);return r},vc=e=>{for(let[t,r]of e){let{node:s}=r;typeof s!="object"||s===null||s instanceof Array||("readOnly"in s&&s.readOnly===true?r.scopes=new Set(["read"]):"writeOnly"in s&&s.writeOnly===true?r.scopes=new Set(["write"]):t.match(/\/properties\/[^/]+$/)&&(r.scopes=new Set(["normal"])));}},ht=e=>{let t={allDependencies:new Map,dependencies:new Map,nodes:new Map,reverseDependencies:new Map},r=({key:s,node:o,parentPointer:i,path:a})=>{if(typeof o!="object"||o===null)return;let p=di(a),c,m;if(typeof o=="object"&&o!==null){if("deprecated"in o&&typeof o.deprecated=="boolean"&&(c=!!o.deprecated),"$ref"in o&&typeof o.$ref=="string"){let f=ui(o.$ref);t.dependencies.has(p)||t.dependencies.set(p,new Set),t.dependencies.get(p).add(f);}"tags"in o&&o.tags instanceof Array&&(m=new Set(o.tags.filter(f=>typeof f=="string")));}if(t.nodes.set(p,{deprecated:c,key:s,node:o,parentPointer:i,tags:m}),o instanceof Array)o.forEach((f,l)=>r({key:l,node:f,parentPointer:p,path:[...a,l]}));else for(let[f,l]of Object.entries(o))r({key:f,node:l,parentPointer:p,path:[...a,f]});};r({key:null,node:e,parentPointer:null,path:[]});for(let[s,o]of t.dependencies)for(let i of o)t.reverseDependencies.has(i)||t.reverseDependencies.set(i,new Set),t.reverseDependencies.get(i).add(s);vc(t.nodes),kc(t),Cc(t.nodes);for(let s of t.nodes.keys()){let o=js({graph:t,pointer:s,visited:new Set});t.allDependencies.set(s,o);}return {graph:t}};var wc=new Set(["additionalProperties","allOf","anyOf","items","not","oneOf","patternProperties","properties","schema"]),qc=e=>{if(e.length===3&&e[0]==="components"){let t=e[1];if(t==="parameters"||t==="requestBodies")return "write";if(t==="responses"||t==="headers")return "read"}if(e.length===2){let t=e[0];if(t==="parameters")return "write";if(t==="responses")return "read"}},$c=e=>{let t={};if(ln(e))for(let[r,s]of Object.entries(e.components.schemas))t[`#/components/schemas/${r}`]=s;else if(un(e))for(let[r,s]of Object.entries(e.definitions))t[`#/definitions/${r}`]=s;return t},Mc=(e,t)=>{ln(e)?Object.assign(e.components.schemas,t.schemas):un(e)&&Object.assign(e.definitions,t.schemas);},Lt=(e,t,r)=>{if(t&&typeof t=="object"){if("$ref"in t&&typeof t.$ref=="string"){let s=t.$ref,o=e.nodes.get(s);if(o?.scopes&&(r==="writeOnly"&&o.scopes.size===1&&o.scopes.has("write")||r==="readOnly"&&o.scopes.size===1&&o.scopes.has("read"))&&(delete t.$ref,!gt.some(([i])=>i in t)))return true}for(let[s,o]of gt){if(!(s in t))continue;let i=t[s];if(o==="array"&&i instanceof Array){for(let a=i.length-1;a>=0;a--){let p=i[a];(p&&typeof p=="object"&&p[r]===true||Lt(e,p,r))&&i.splice(a,1);}i.length||delete t[s];}else if(o==="objectMap"&&typeof i=="object"&&i!==null&&!(i instanceof Array)){let a=i;for(let p of Object.keys(a)){let c=a[p];(c&&typeof c=="object"&&c[r]===true||Lt(e,c,r))&&delete a[p];}Object.keys(a).length||delete t[s];}else if(o==="single"&&typeof i=="object"&&i!==null)(i[r]===true||Lt(e,i,r))&&delete t[s];else if(o==="singleOrArray")if(i instanceof Array){for(let a=i.length-1;a>=0;a--){let p=i[a];(p&&typeof p=="object"&&p[r]===true||Lt(e,p,r))&&i.splice(a,1);}i.length||delete t[s];}else typeof i=="object"&&i!==null&&(i[r]===true||Lt(e,i,r))&&delete t[s];}if(t.type==="object"&&!gt.some(([s])=>s in t))return true}return false},Fc=({originalSchemas:e,spec:t,split:r})=>{let s=kr(t);for(let o of Object.keys(r.mapping)){let i=Le(o),a=i[i.length-1];typeof a=="string"&&s&&Object.prototype.hasOwnProperty.call(s,a)&&s[a]===e[o]&&delete s[a];}},Lc=({config:e,graph:t,spec:r})=>{let s=new Set,o={mapping:{},reverseMapping:{},schemas:{}},i=nr(r),a=i.split("/").length-1,p=c=>{if(c.startsWith(i)){let m=Le(c);if(m.length===a)return m[a-1]||""}return ""};for(let c of t.nodes.keys()){let m=p(c);m&&s.add(m);}for(let[c,m]of t.nodes){let f=p(c);if(!f||!(m.scopes?.has("read")&&m.scopes?.has("write")))continue;let l=Cr(m.node);Lt(t,l,"writeOnly");let d=v({config:e.responses,name:f}),y=d===f?d:dt({base:d,components:s});s.add(y),o.schemas[y]=l;let h=`${i}${y}`,x=Cr(m.node);Lt(t,x,"readOnly");let S=v({config:e.requests,name:f}),O=S===f&&S!==y?S:dt({base:S,components:s});s.add(O),o.schemas[O]=x;let k=`${i}${O}`;o.mapping[c]={read:h,write:k},o.reverseMapping[h]=c,o.reverseMapping[k]=c;}return o},Dc=(e,t)=>{let r=nr(e),s=({context:o,currentPointer:i,inSchema:a,node:p,path:c})=>{if(p instanceof Array)p.forEach((m,f)=>s({context:o,currentPointer:i,inSchema:a,node:m,path:[...c,f]}));else if(p&&typeof p=="object"){let m=i,f=o;if(on(c)){m=`${r}${c[2]}`;let d=t.reverseMapping[m];if(d){let y=t.mapping[d];y?.read===m?f="read":y?.write===m&&(f="write");}}let l=qc(c);if(l!==void 0){for(let d in p)Object.prototype.hasOwnProperty.call(p,d)&&s({context:l,currentPointer:m,inSchema:false,node:p[d],path:[...c,d]});return}for(let d in p){if(!Object.prototype.hasOwnProperty.call(p,d))continue;let y=p[d];if(!a){if(d==="requestBody"){s({context:"write",currentPointer:m,inSchema:false,node:y,path:[...c,d]});continue}if(d==="responses"){s({context:"read",currentPointer:m,inSchema:false,node:y,path:[...c,d]});continue}if(d==="parameters"&&Array.isArray(y)){y.forEach((h,x)=>{h&&typeof h=="object"&&"schema"in h&&s({context:"write",currentPointer:m,inSchema:true,node:h.schema,path:[...c,d,x,"schema"]}),h&&typeof h=="object"&&"content"in h&&s({context:"write",currentPointer:m,inSchema:false,node:h.content,path:[...c,d,x,"content"]});});continue}if(d==="headers"&&typeof y=="object"&&y!==null){for(let h in y)Object.prototype.hasOwnProperty.call(y,h)&&s({context:"read",currentPointer:m,inSchema:false,node:y[h],path:[...c,d,h]});continue}}if(wc.has(d))s({context:f,currentPointer:m,inSchema:true,node:y,path:[...c,d]});else if(d==="$ref"&&typeof y=="string"){let h=t.mapping[y];f==="read"&&h?.read?p[d]=h.read:f==="write"&&h?.write&&(p[d]=h.write);}else s({context:f,currentPointer:m,inSchema:a,node:y,path:[...c,d]});}}};s({context:null,currentPointer:null,inSchema:false,node:e,path:[]});},xi=({config:e,spec:t})=>{let{graph:r}=ht(t),s=$c(t),o=Lc({config:e,graph:r,spec:t});Mc(t,o),Dc(t,o),Fc({originalSchemas:s,spec:t,split:o});};var mr=({context:e})=>{e.config.parser.transforms.enums.enabled&&hi({config:e.config.parser.transforms.enums,spec:e.spec}),e.config.parser.transforms.readWrite.enabled&&xi({config:e.config.parser.transforms.readWrite,spec:e.spec});};var M=({source:e,target:t})=>{let r={...t};if(e&&(e.cookie&&(r.cookie?r.cookie={...r.cookie,...e.cookie}:r.cookie=e.cookie),e.header&&(r.header?r.header={...r.header,...e.header}:r.header=e.header),e.path&&(r.path?r.path={...r.path,...e.path}:r.path=e.path),e.query&&(r.query?r.query={...r.query,...e.query}:r.query=e.query)),!!Object.keys(r).length)return r};var Vc=e=>/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e),_c=e=>e.map((t,r)=>typeof t=="number"?`[${t}]`:r===0?t:Vc(t)?`.${t}`:`['${t.replace(/"/g,"\\'")}']`).join(""),Bc=e=>{let t=_c(e.path),r=e.severity==="error"?Hr__default.default.bold.red:Hr__default.default.bold.yellow,s=e.message.replace(/`([^`]+)`/g,(o,i)=>Hr__default.default.yellow(`\`${i}\``));return `${r(`[${e.severity.toUpperCase()}]`)} ${Hr__default.default.cyan(t)}: ${s}`},zc=({context:e,issue:t})=>e.config.logs.level==="silent"?false:t.severity==="error"?e.config.logs.level!=="warn":true,fr=({context:e,result:t})=>{for(let r of t.issues)zc({context:e,issue:r})&&console.log(Bc(r));t.valid||process.exit(1);};var bi=({operations:e,preserveOrder:t,schemas:r,spec:s})=>{if(s.definitions){let o={};if(t)for(let[i,a]of Object.entries(s.definitions))r.has(P("schema",i))&&(o[i]=a);else for(let i of r){let{name:a}=Y(i),p=s.definitions[a];p&&(o[a]=p);}s.definitions=o;}if(s.paths)for(let o of Object.entries(s.paths)){let i=o[0],a=o[1];for(let p of te){if(!a[p])continue;let m=P("operation",q({method:p,path:i}));e.has(m)||delete a[p];}Object.keys(a).length||delete s.paths[i];}};var Oi=/^(application\/(pdf|rtf|msword|vnd\.(ms-|openxmlformats-officedocument\.)|zip|x-(7z|tar|rar|zip|iso)|octet-stream|gzip|x-msdownload|json\+download|xml|x-yaml|x-7z-compressed|x-tar)|text\/(yaml|css|javascript)|audio\/(mpeg|wav)|video\/(mp4|x-matroska)|image\/(vnd\.adobe\.photoshop|svg\+xml))(; ?charset=[^;]+)?$/i,Si=/^application\/(.*\+)?json(;.*)?$/i,Ti=/^multipart\/form-data(;.*)?$/i,Ri=/^text\/[a-z0-9.+-]+(;.*)?$/i,Ai=/^application\/x-www-form-urlencoded(;.*)?$/i,Ii=/^application\/octet-stream(;.*)?$/i,tt=({mediaType:e})=>(Oi.lastIndex=0,Oi.test(e)),lr=({mediaType:e})=>{if(Si.lastIndex=0,Si.test(e))return "json";if(Ti.lastIndex=0,Ti.test(e))return "form-data";if(Ri.lastIndex=0,Ri.test(e))return "text";if(Ai.lastIndex=0,Ai.test(e))return "url-search-params";if(Ii.lastIndex=0,Ii.test(e))return "octet-stream"};var Pi=({content:e})=>{let{mediaType:t,schema:r}=e;return r&&"$ref"in r?{allOf:[{...r}]}:r?r.type==="string"&&!r.format&&tt({mediaType:t})?{...r,format:"binary"}:r:tt({mediaType:t})?{format:"binary",type:"string"}:void 0},Ns=({mimeTypes:e,response:t})=>{let r=[];for(let s of e??[])r.push({mediaType:s,schema:t.schema,type:lr({mediaType:s})});return r};function fe(e){let t=`^(${e.keywords.join("|")})$`;return new RegExp(t)}var Ve=(e,t)=>{let r=[];for(let s in t)t[s]===e&&r.push(s);return r.length?r:[D(e)]};var vr=({schema:e})=>{if(e.type)return e.type;if(e.properties)return "object"},Kc=({irSchema:e,schema:t})=>{t.example&&(e.example=t.example),t.description&&(e.description=t.description),t.title&&(e.title=t.title);},yn=({irSchema:e,schema:t,state:r})=>{t.default!==void 0&&(e.default=t.default),t.exclusiveMaximum?t.maximum!==void 0&&(e.exclusiveMaximum=t.maximum):t.maximum!==void 0&&(e.maximum=t.maximum),t.exclusiveMinimum?t.minimum!==void 0&&(e.exclusiveMinimum=t.minimum):t.minimum!==void 0&&(e.minimum=t.minimum),t.format&&(e.format=t.format),t.maxItems!==void 0&&(e.maxItems=t.maxItems),t.maxLength!==void 0&&(e.maxLength=t.maxLength),t.minItems!==void 0&&(e.minItems=t.minItems),t.minLength!==void 0&&(e.minLength=t.minLength),t.pattern&&(e.pattern=t.pattern),t.readOnly?(e.accessScope="read",e.accessScopes=C(e.accessScopes,["read"])):r.isProperty&&(e.accessScopes=C(e.accessScopes,["both"]));},Wc=({context:e,irSchema:t={},schema:r,state:s})=>{r.maxItems&&r.maxItems===r.minItems?t.type="tuple":t.type="array";let o=[];if(r.items){let i=xe({context:e,schema:r.items,state:s});if(t.accessScopes=C(t.accessScopes,i.accessScopes),!o.length&&r.maxItems&&r.maxItems===r.minItems)o=Array(r.maxItems).fill(i);else if("$ref"in r.items)o.push(i);else {let a=r.items.allOf;a&&a.length>1&&!r.items["x-nullable"]?t={...t,...i}:o.push(i);}}return t=V({items:o,schema:t}),t},Hc=({irSchema:e={}})=>(e.type="boolean",e),Zc=({irSchema:e={},schema:t})=>(e.type=t.type,e),Uc=({context:e,irSchema:t={},schema:r,state:s})=>{t.type="object";let o={};for(let i in r.properties){let a=r.properties[i];if(typeof a!="boolean"){let p=xe({context:e,schema:a,state:{...s,isProperty:true}});t.accessScopes=C(t.accessScopes,p.accessScopes),o[i]=p;}}if(Object.keys(o).length&&(t.properties=o),r.additionalProperties===void 0)t.properties||(t.additionalProperties={type:"unknown"});else if(typeof r.additionalProperties=="boolean")s.inAllOf&&r.additionalProperties===false&&(!r.properties||Object.keys(r.properties).length===0)||(t.additionalProperties={type:r.additionalProperties?"unknown":"never"});else {let i=xe({context:e,schema:r.additionalProperties,state:s});t.additionalProperties=i;}return r.required&&(t.required=r.required),t},Qc=({irSchema:e={}})=>(e.type="string",e),ur=({schema:e})=>{let t={};return Kc({irSchema:t,schema:e}),t},Xc=({context:e,schema:t,state:r})=>{let s=ur({schema:t}),o=[],i=vr({schema:t}),a=t.allOf;for(let p of a){let m="$ref"in p?r:{...r,inAllOf:true},f=xe({context:e,schema:p,state:m});if(s.accessScopes=C(s.accessScopes,f.accessScopes),t.required&&(f.required?f.required=[...f.required,...t.required]:f.required=t.required),o.push(f),p.$ref){let l=e.resolveRef(p.$ref);if(l.discriminator&&r.$ref){let y=Ve(r.$ref).map(x=>({const:x,type:"string"})),h={properties:{[l.discriminator]:y.length>1?{items:y,logicalOperator:"or"}:y[0]},type:"object"};l.required?.includes(l.discriminator)&&(h.required=[l.discriminator]),o.push(h);}if(!r.circularReferenceTracker.has(p.$ref)){let d=xe({context:e,schema:l,state:{...r,$ref:p.$ref}});s.accessScopes=C(s.accessScopes,d.accessScopes);}}}if(i==="object"){let p=wr({context:e,schema:{...t,type:"object"},state:r});if(s.accessScopes=C(s.accessScopes,p.accessScopes),p.properties){for(let c of p.required??[])if(!p.properties[c])for(let m of a){let f=m.$ref?e.resolveRef(m.$ref):m;if(vr({schema:f})==="object"){let l=wr({context:e,schema:{...f,type:"object"},state:r});if(s.accessScopes=C(s.accessScopes,l.accessScopes),l.properties?.[c]){p.properties[c]=l.properties[c];break}}}o.push(p);}}if(s=V({items:o,logicalOperator:"and",mutateSchemaOneItem:true,schema:s}),t["x-nullable"]){let p=[{type:"null"}];o.length&&p.unshift(s),s={items:p,logicalOperator:"or"},p[0].deprecated&&(s.deprecated=p[0].deprecated),p[0].description&&(s.description=p[0].description);}return s},Gc=({context:e,schema:t,state:r})=>{let s=ur({schema:t});s.type="enum";let o=[];for(let[i,a]of t.enum.entries()){let p=typeof a,c;if(p==="string"||p==="number"||p==="boolean"?c=p:p==="object"&&Array.isArray(a)?c="array":a===null?t["x-nullable"]&&(c="null"):console.warn("\u{1F6A8}",`unhandled "${p}" typeof value "${a}" for enum`,t.enum),!c)continue;let m=wr({context:e,schema:{description:t["x-enum-descriptions"]?.[i],title:t["x-enum-varnames"]?.[i]??t["x-enumNames"]?.[i],type:c==="null"?"string":c},state:r});m.const=a,c==="null"&&(m.type=c),m.type==="array"&&(m.type="tuple"),s.accessScopes=C(s.accessScopes,m.accessScopes),o.push(m);}return s=V({items:o,schema:s}),s},Jc=({context:e,schema:t,state:r})=>{let s={};if(s.$ref=decodeURI(t.$ref),s.$ref=s.$ref.replace(/#\/definitions\/([^/]+)/g,"#/components/schemas/$1"),!r.circularReferenceTracker.has(t.$ref)){let o=e.resolveRef(t.$ref),i=xe({context:e,schema:o,state:{...r,$ref:t.$ref,isProperty:false}});s.accessScopes=C(s.accessScopes,i.accessScopes);}return s},Yc=({context:e,irSchema:t,schema:r,state:s})=>{t||(t=ur({schema:r}));let o={};yn({irSchema:o,schema:r,state:s}),o.default===null&&delete o.default;let i=[wr({context:e,irSchema:o,schema:r,state:s}),{type:"null"}];return t=V({items:i,schema:t}),t},em=({context:e,schema:t,state:r})=>{let s=ur({schema:t});yn({irSchema:s,schema:t,state:r});let o=vr({schema:t});return o?t["x-nullable"]?Yc({context:e,irSchema:s,schema:{...t,type:o},state:r}):wr({context:e,irSchema:s,schema:{...t,type:o},state:r}):s},wr=({context:e,irSchema:t,schema:r,state:s})=>{switch(t||(t=ur({schema:r}),yn({irSchema:t,schema:r,state:s})),r.type){case "array":return Wc({context:e,irSchema:t,schema:r,state:s});case "boolean":return Hc({irSchema:t});case "integer":case "number":return Zc({irSchema:t,schema:r});case "object":return Uc({context:e,irSchema:t,schema:r,state:s});case "string":return Qc({irSchema:t});default:return Ei({irSchema:t,schema:r,state:s})}},Ei=({irSchema:e,schema:t,state:r})=>(e||(e=ur({schema:t})),e.type="unknown",yn({irSchema:e,schema:t,state:r}),e),xe=({context:e,schema:t,state:r})=>(r||(r={circularReferenceTracker:new Set}),r.$ref&&r.circularReferenceTracker.add(r.$ref),t.$ref?Jc({context:e,schema:t,state:r}):t.enum?Gc({context:e,schema:t,state:r}):t.allOf?Xc({context:e,schema:t,state:r}):t.type||t.properties?em({context:e,schema:t,state:r}):Ei({schema:t,state:r})),ji=({$ref:e,context:t,schema:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.schemas||(t.ir.components.schemas={}),t.ir.components.schemas[D(e)]=xe({context:t,schema:r,state:{$ref:e,circularReferenceTracker:new Set}});};var tm=e=>e==="boolean"||e==="integer"||e==="number"||e==="string",xt=({context:e,name:t,schema:r})=>{if(fe(e.config.parser.pagination).test(t))return true;if("$ref"in r){let o=e.resolveRef(r.$ref??"");if("in"in o&&o.in){let i="schema"in o?o.schema:{...o,in:void 0};return xt({context:e,name:t,schema:i})}return xt({context:e,name:t,schema:o})}if("in"in r){if(!r.in)return false;let o="schema"in r?r.schema:{...r,in:void 0};return xt({context:e,name:t,schema:o})}for(let o in r.properties)if(fe(e.config.parser.pagination).test(o)){let a=r.properties[o];if(typeof a!="boolean"&&!("$ref"in a)){let p=vr({schema:a});if(tm(p))return o}}for(let o of r.allOf??[]){let i=xt({context:e,name:t,schema:o});if(i)return i}return false};var rm=({irOperation:e,operation:t})=>{t.deprecated!==void 0&&(e.deprecated=t.deprecated),t.description&&(e.description=t.description),t.summary&&(e.summary=t.summary),t.tags?.length&&(e.tags=t.tags);},nm=({context:e,method:t,operation:r,path:s,state:o})=>{let i={id:Ft({context:e,id:r.operationId,method:t,path:s,state:o}),method:t,path:s};return r.operationId&&(i.operationId=r.operationId),rm({irOperation:i,operation:r}),i},sm=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{let a=nm({context:e,method:t,operation:r,path:s,state:i});r.parameters&&(a.parameters=r.parameters);let p=false,c={mediaType:"",schema:{properties:{},required:[],type:"object"}},m=[];for(let f of r.requestBody??[]){let l="$ref"in f?e.resolveRef(f.$ref):f,d=l.in==="body"?l.schema:{...l,format:l.type==="file"?"binary":l.format,required:void 0,type:l.type==="file"?"string":l.type},y=Ns({mimeTypes:r.consumes,response:{schema:d}}),h=y.find(x=>x.type==="json")||y[0];if(h){let x=xt({context:e,name:"",schema:h.schema&&"$ref"in h.schema?{allOf:[{...h.schema}],description:l.description}:{description:l.description,...h.schema}}),S=xe({context:e,schema:"$ref"in l?{allOf:[{...l,$ref:l.$ref,required:[],type:"string"}],description:l.description}:h.schema&&"$ref"in h.schema?{allOf:[{...h.schema}],description:l.description}:{description:l.description,...h.schema},state:void 0});c.mediaType=h.mediaType,l.in==="body"?c.schema=S:(c.schema.properties[l.name]=S,l.required&&m.push(l.name)),x&&(c.pagination=x),h.type&&(c.type=h.type);}l.required&&(p=true);}c.mediaType&&(m.length&&(c.schema.required=m),a.body=c,p&&(a.body.required=p));for(let f in r.responses){a.responses||(a.responses={});let l=r.responses[f],d="$ref"in l?e.resolveRef(l.$ref):l,y=Ns({mimeTypes:r.produces?r.produces:["application/json"],response:d}),h=y.find(x=>x.type==="json")||y[0];h?a.responses[f]={mediaType:h.mediaType,schema:xe({context:e,schema:{description:d.description,...Pi({content:h})},state:void 0})}:a.responses[f]={schema:{description:d.description,type:f==="204"?"void":"unknown"}};}if(r.security){let f=[];for(let l of r.security)for(let d in l){let y=o.get(d);if(!y)continue;let h;if(y.type==="apiKey"&&(h=y),y.type==="basic"&&(h={description:y.description,scheme:"basic",type:"http"}),y.type==="oauth2")switch(h={description:y.description,flows:{},type:"oauth2"},y.flow){case "accessCode":h.flows.authorizationCode={authorizationUrl:y.authorizationUrl,scopes:y.scopes,tokenUrl:y.tokenUrl};break;case "application":h.flows.clientCredentials={scopes:y.scopes,tokenUrl:y.tokenUrl};break;case "implicit":h.flows.implicit={authorizationUrl:y.authorizationUrl,scopes:y.scopes};break;case "password":h.flows.password={scopes:y.scopes,tokenUrl:y.tokenUrl};break}h&&f.push(h);}f.length&&(a.security=f);}return a},bt=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{e.ir.paths||(e.ir.paths={}),e.ir.paths[s]||(e.ir.paths[s]={}),e.ir.paths[s][t]=sm({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i});};var om=e=>{switch(e){case "multi":return true;case "csv":case "pipes":case "ssv":case "tsv":default:return false}},im=e=>{switch(e){case "header":case "path":return "simple";case "query":default:return "form"}},rt=({context:e,operation:t,parameters:r})=>{if(!r||!Object.keys(r).length)return;let s={};for(let o of r){let i="$ref"in o?e.dereference(o):o;if(i.in==="body"||i.in==="formData"){t.requestBody||(t.requestBody=[]),t.requestBody.push(i);continue}s[i.in]||(s[i.in]={}),s[i.in][i.name.toLocaleLowerCase()]=am({context:e,parameter:i});}return s},am=({context:e,parameter:t})=>{let r=t,s=r&&"$ref"in r?{allOf:[{...r,$ref:r.$ref,required:Array.isArray(r.required)?r.required:[],type:r.type}],description:t.description}:{description:t.description,...r,required:Array.isArray(r.required)?r.required:[],type:r.type},o=xt({context:e,name:t.name,schema:s}),i=im(t.in),c={allowReserved:false,explode:om(t.collectionFormat),location:t.in,name:t.name,schema:xe({context:e,schema:s,state:void 0}),style:i};return t.description&&(c.description=t.description),o&&(c.pagination=o),t.required&&(c.required=t.required),c};var Ni=/^(([^:/?#]+):)?((\/\/)?([^:/?#]*)(:?([^/?#]*)))?([^?#]*)(\?([^#]*))?(#(.*))?/,_e=e=>{let t={host:"",path:"",port:"",protocol:""};Ni.lastIndex=0;let r=e.match(Ni);if(!r)return t;let s=r[5]||"";if(s==="."||s==="..")return t;let o=r[8]||"",i=r[2]||"";return i.length===1?t:{host:s,path:o==="/"?"":o,port:r[7]||"",protocol:i}};var Ci=({context:e})=>{let t=e.spec.schemes??[],r=e.spec.host??"",s=e.spec.basePath??"";if(typeof e.config.input.path=="string"){let i=_e(e.config.input.path);t.length||i.protocol&&(t=[i.protocol]),r||(r=`${i.host}${i.port?`:${i.port}`:""}`);}t.length||(t=[""]);let o=t.map(i=>`${i?`${i}://`:""}${r}${s}`).filter(Boolean);o.length&&(e.ir.servers=o.map(i=>({url:i})));};var ki=e=>{let t=[],r=new Map;if(e.paths)for(let s of Object.entries(e.paths)){let o=s[0],i=s[1];for(let a of te){if(a==="trace")continue;let p=i[a];if(!p)continue;let c=q({method:a,path:o});p.operationId&&(r.has(p.operationId)?t.push({code:"duplicate_key",context:{key:"operationId",value:p.operationId},message:"Duplicate `operationId` found. Each `operationId` must be unique.",path:["paths",o,a,"operationId"],severity:"error"}):r.set(p.operationId,c));}}return {issues:t,valid:!t.some(s=>s.severity==="error")}};var Cs=e=>{if(e.config.parser.validate_EXPERIMENTAL){let o=ki(e.spec);fr({context:e,result:o});}if(ar(e.config.parser.filters)){let o=ir(e.config.parser.filters,e.spec),{graph:i}=ht(e.spec),{resourceMetadata:a}=cr(i),p=pr({filters:o,resourceMetadata:a});bi({...p,preserveOrder:o.preserveOrder,spec:e.spec});}mr({context:e});let r={ids:new Map},s=new Map;for(let o in e.spec.securityDefinitions){let i=e.spec.securityDefinitions[o];s.set(o,i);}if(e.spec.definitions)for(let o in e.spec.definitions){let i=`#/definitions/${o}`,a=e.spec.definitions[o];ji({$ref:i,context:e,schema:a});}Ci({context:e});for(let o in e.spec.paths){if(o.startsWith("x-"))continue;let i=e.spec.paths[o],a=i.$ref?{...e.resolveRef(i.$ref),...i}:i,p={consumes:e.spec.consumes,produces:e.spec.produces,responses:{},security:e.spec.security},c={context:e,operation:{...p,parameters:rt({context:e,operation:p,parameters:a.parameters})},path:o,securitySchemesMap:s,state:r};if(a.delete){let m=M({source:rt({context:e,operation:a.delete,parameters:a.delete.parameters}),target:c.operation.parameters});bt({...c,method:"delete",operation:{...c.operation,...a.delete,parameters:m}});}if(a.get){let m=M({source:rt({context:e,operation:a.get,parameters:a.get.parameters}),target:c.operation.parameters});bt({...c,method:"get",operation:{...c.operation,...a.get,parameters:m}});}if(a.head){let m=M({source:rt({context:e,operation:a.head,parameters:a.head.parameters}),target:c.operation.parameters});bt({...c,method:"head",operation:{...c.operation,...a.head,parameters:m}});}if(a.options){let m=M({source:rt({context:e,operation:a.options,parameters:a.options.parameters}),target:c.operation.parameters});bt({...c,method:"options",operation:{...c.operation,...a.options,parameters:m}});}if(a.patch){let m=M({source:rt({context:e,operation:a.patch,parameters:a.patch.parameters}),target:c.operation.parameters});bt({...c,method:"patch",operation:{...c.operation,...a.patch,parameters:m}});}if(a.post){let m=M({source:rt({context:e,operation:a.post,parameters:a.post.parameters}),target:c.operation.parameters});bt({...c,method:"post",operation:{...c.operation,...a.post,parameters:m}});}if(a.put){let m=M({source:rt({context:e,operation:a.put,parameters:a.put.parameters}),target:c.operation.parameters});bt({...c,method:"put",operation:{...c.operation,...a.put,parameters:m}});}}};var vi=({operations:e,parameters:t,preserveOrder:r,requestBodies:s,responses:o,schemas:i,spec:a})=>{if(a.components){if(a.components.parameters){let p={};if(r)for(let[c,m]of Object.entries(a.components.parameters))t.has(P("parameter",c))&&(p[c]=m);else for(let c of t){let{name:m}=Y(c),f=a.components.parameters[m];f&&(p[m]=f);}a.components.parameters=p;}if(a.components.requestBodies){let p={};if(r)for(let[c,m]of Object.entries(a.components.requestBodies))s.has(P("body",c))&&(p[c]=m);else for(let c of s){let{name:m}=Y(c),f=a.components.requestBodies[m];f&&(p[m]=f);}a.components.requestBodies=p;}if(a.components.responses){let p={};if(r)for(let[c,m]of Object.entries(a.components.responses))o.has(P("response",c))&&(p[c]=m);else for(let c of o){let{name:m}=Y(c),f=a.components.responses[m];f&&(p[m]=f);}a.components.responses=p;}if(a.components.schemas){let p={};if(r)for(let[c,m]of Object.entries(a.components.schemas))i.has(P("schema",c))&&(p[c]=m);else for(let c of i){let{name:m}=Y(c),f=a.components.schemas[m];f&&(p[m]=f);}a.components.schemas=p;}}if(a.paths)for(let p of Object.entries(a.paths)){let c=p[0],m=p[1];for(let f of te){if(!m[f])continue;let d=P("operation",q({method:f,path:c}));e.has(d)||delete m[f];}Object.keys(m).length||delete a.paths[c];}};var wi=({content:e})=>{let{mediaType:t,schema:r}=e;return r&&"$ref"in r?{allOf:[{...r}]}:r?r.type==="string"&&!r.format&&tt({mediaType:t})?{...r,format:"binary"}:r:tt({mediaType:t})?{format:"binary",type:"string"}:void 0},nt=({content:e})=>{let t=[];for(let r in e)t.push({mediaType:r,schema:e[r].schema,type:lr({mediaType:r})});return t};var Dt=({schema:e})=>{if(e.type)return e.type;if(e.properties)return "object"},pm=({irSchema:e,schema:t})=>{t.deprecated!==void 0&&(e.deprecated=t.deprecated),t.example&&(e.example=t.example),t.description&&(e.description=t.description),t.title&&(e.title=t.title);},gn=({irSchema:e,schema:t,state:r})=>{t.default!==void 0&&(e.default=t.default),t.exclusiveMaximum?t.maximum!==void 0&&(e.exclusiveMaximum=t.maximum):t.maximum!==void 0&&(e.maximum=t.maximum),t.exclusiveMinimum?t.minimum!==void 0&&(e.exclusiveMinimum=t.minimum):t.minimum!==void 0&&(e.minimum=t.minimum),t.format&&(e.format=t.format),t.maxItems!==void 0&&(e.maxItems=t.maxItems),t.maxLength!==void 0&&(e.maxLength=t.maxLength),t.minItems!==void 0&&(e.minItems=t.minItems),t.minLength!==void 0&&(e.minLength=t.minLength),t.pattern&&(e.pattern=t.pattern),t.readOnly?(e.accessScope="read",e.accessScopes=C(e.accessScopes,["read"])):t.writeOnly?(e.accessScope="write",e.accessScopes=C(e.accessScopes,["write"])):r.isProperty&&(e.accessScopes=C(e.accessScopes,["both"]));},cm=({context:e,irSchema:t={},schema:r,state:s})=>{r.maxItems&&r.maxItems===r.minItems?t.type="tuple":t.type="array";let o=[];if(r.items){let i=se({context:e,schema:r.items,state:s});if(t.accessScopes=C(t.accessScopes,i.accessScopes),!o.length&&r.maxItems&&r.maxItems===r.minItems)o=Array(r.maxItems).fill(i);else if("$ref"in r.items)o.push(i);else {let a=r.items.allOf||r.items.anyOf||r.items.oneOf;a&&a.length>1&&!r.items.nullable?t={...t,...i}:o.push(i);}}return t=V({items:o,schema:t}),t},mm=({irSchema:e={}})=>(e.type="boolean",e),fm=({irSchema:e={},schema:t})=>(e.type=t.type,e),lm=({context:e,irSchema:t={},schema:r,state:s})=>{t.type="object";let o={};for(let i in r.properties){let a=r.properties[i];if(typeof a!="boolean"){let p=se({context:e,schema:a,state:{...s,isProperty:true}});t.accessScopes=C(t.accessScopes,p.accessScopes),o[i]=p;}}if(Object.keys(o).length&&(t.properties=o),r.additionalProperties===void 0)t.properties||(t.additionalProperties={type:"unknown"});else if(typeof r.additionalProperties=="boolean")s.inAllOf&&r.additionalProperties===false&&(!r.properties||Object.keys(r.properties).length===0)||(t.additionalProperties={type:r.additionalProperties?"unknown":"never"});else {let i=se({context:e,schema:r.additionalProperties,state:s});t.additionalProperties=i;}return r.required&&(t.required=r.required),t},um=({irSchema:e={}})=>(e.type="string",e),Ot=({schema:e})=>{let t={};return pm({irSchema:t,schema:e}),t},dm=({context:e,schema:t,state:r})=>{let s=Ot({schema:t}),o=[],i=Dt({schema:t}),a=t.allOf;for(let p of a){let m="$ref"in p?r:{...r,inAllOf:true},f=se({context:e,schema:p,state:m});if(s.accessScopes=C(s.accessScopes,f.accessScopes),t.required&&(f.required?f.required=[...f.required,...t.required]:f.required=t.required),o.push(f),"$ref"in p){let l=e.resolveRef(p.$ref);if(l.discriminator&&r.$ref){let y=Ve(r.$ref,l.discriminator.mapping).map(x=>({const:x,type:"string"})),h={properties:{[l.discriminator.propertyName]:y.length>1?{items:y,logicalOperator:"or"}:y[0]},type:"object"};l.required?.includes(l.discriminator.propertyName)&&(h.required=[l.discriminator.propertyName]),o.push(h);}if(!r.circularReferenceTracker.has(p.$ref)){let d=se({context:e,schema:l,state:{...r,$ref:p.$ref}});s.accessScopes=C(s.accessScopes,d.accessScopes);}}}if(i==="object"){let p=Vt({context:e,schema:{...t,type:"object"},state:r});if(s.accessScopes=C(s.accessScopes,p.accessScopes),p.properties){for(let c of p.required??[])if(!p.properties[c])for(let m of a){let f="$ref"in m?e.resolveRef(m.$ref):m;if(Dt({schema:f})==="object"){let l=Vt({context:e,schema:{...f,type:"object"},state:r});if(s.accessScopes=C(s.accessScopes,l.accessScopes),l.properties?.[c]){p.properties[c]=l.properties[c];break}}}o.push(p);}}if(s=V({items:o,logicalOperator:"and",mutateSchemaOneItem:true,schema:s}),t.nullable){let p=[{type:"null"}];o.length&&p.unshift(s),s={items:p,logicalOperator:"or"},p[0].deprecated&&(s.deprecated=p[0].deprecated),p[0].description&&(s.description=p[0].description);}return s},ym=({context:e,schema:t,state:r})=>{let s=Ot({schema:t}),o=[],i=Dt({schema:t}),a=t.anyOf;for(let p of a){let c=se({context:e,schema:p,state:r});if(s.accessScopes=C(s.accessScopes,c.accessScopes),t.discriminator&&"$ref"in p){let f=Ve(p.$ref,t.discriminator.mapping).map(d=>({const:d,type:"string"}));c={items:[{properties:{[t.discriminator.propertyName]:f.length>1?{items:f,logicalOperator:"or"}:f[0]},type:"object"},c],logicalOperator:"and"};}o.push(c);}if(t.nullable&&o.push({type:"null"}),s=V({items:o,mutateSchemaOneItem:true,schema:s}),i==="object"){let p=Vt({context:e,schema:{...t,type:"object"},state:r});s.accessScopes=C(s.accessScopes,p.accessScopes),p.properties&&(s={items:[s,p],logicalOperator:"and"});}return s},gm=({context:e,schema:t,state:r})=>{let s=Ot({schema:t});s.type="enum";let o=[];for(let[i,a]of t.enum.entries()){let p=typeof a,c;if(p==="string"||p==="number"||p==="boolean"?c=p:p==="object"&&Array.isArray(a)?c="array":a===null?t.nullable&&(c="null"):console.warn("\u{1F6A8}",`unhandled "${p}" typeof value "${a}" for enum`,t.enum),!c)continue;let m=Vt({context:e,schema:{description:t["x-enum-descriptions"]?.[i],title:t["x-enum-varnames"]?.[i]??t["x-enumNames"]?.[i],type:c==="null"?"string":c},state:r});m.const=a,c==="null"&&(m.type=c),m.type==="array"&&(m.type="tuple"),s.accessScopes=C(s.accessScopes,m.accessScopes),o.push(m);}return s=V({items:o,schema:s}),s},hm=({context:e,schema:t,state:r})=>{let s=Ot({schema:t}),o=[],i=Dt({schema:t}),a=t.oneOf;for(let p of a){let c=se({context:e,schema:p,state:r});if(s.accessScopes=C(s.accessScopes,c.accessScopes),t.discriminator&&"$ref"in p){let f=Ve(p.$ref,t.discriminator.mapping).map(d=>({const:d,type:"string"}));c={items:[{properties:{[t.discriminator.propertyName]:f.length>1?{items:f,logicalOperator:"or"}:f[0]},required:[t.discriminator.propertyName],type:"object"},c],logicalOperator:"and"};}c.logicalOperator==="or"&&c.type!=="array"&&c.items?o=o.concat(c.items):o.push(c);}if(t.nullable&&o.push({type:"null"}),s=V({items:o,mutateSchemaOneItem:true,schema:s}),i==="object"){let p=Vt({context:e,schema:{...t,type:"object"},state:r});s.accessScopes=C(s.accessScopes,p.accessScopes),p.properties&&(s={items:[s,p],logicalOperator:"and"});}return s},xm=({context:e,schema:t,state:r})=>{let s={};if(s.$ref=decodeURI(t.$ref),!r.circularReferenceTracker.has(t.$ref)){let o=e.resolveRef(t.$ref),i=se({context:e,schema:o,state:{...r,$ref:t.$ref,isProperty:false}});s.accessScopes=C(s.accessScopes,i.accessScopes);}return s},bm=({context:e,irSchema:t,schema:r,state:s})=>{t||(t=Ot({schema:r}));let o={};gn({irSchema:o,schema:r,state:s}),o.default===null&&delete o.default;let i=[Vt({context:e,irSchema:o,schema:r,state:s}),{type:"null"}];return t=V({items:i,schema:t}),t},Om=({context:e,schema:t,state:r})=>{let s=Ot({schema:t});gn({irSchema:s,schema:t,state:r});let o=Dt({schema:t});return o?t.nullable?bm({context:e,irSchema:s,schema:{...t,type:o},state:r}):Vt({context:e,irSchema:s,schema:{...t,type:o},state:r}):s},Vt=({context:e,irSchema:t,schema:r,state:s})=>{switch(t||(t=Ot({schema:r}),gn({irSchema:t,schema:r,state:s})),r.type){case "array":return cm({context:e,irSchema:t,schema:r,state:s});case "boolean":return mm({irSchema:t});case "integer":case "number":return fm({irSchema:t,schema:r});case "object":return lm({context:e,irSchema:t,schema:r,state:s});case "string":return um({irSchema:t});default:return qi({irSchema:t,schema:r,state:s})}},qi=({irSchema:e,schema:t,state:r})=>(e||(e=Ot({schema:t})),e.type="unknown",gn({irSchema:e,schema:t,state:r}),e),se=({context:e,schema:t,state:r})=>(r||(r={circularReferenceTracker:new Set}),r.$ref&&r.circularReferenceTracker.add(r.$ref),"$ref"in t?xm({context:e,schema:t,state:r}):t.enum?gm({context:e,schema:t,state:r}):t.allOf?dm({context:e,schema:t,state:r}):t.anyOf?ym({context:e,schema:t,state:r}):t.oneOf?hm({context:e,schema:t,state:r}):t.type||t.properties?Om({context:e,schema:t,state:r}):qi({schema:t,state:r})),$i=({$ref:e,context:t,schema:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.schemas||(t.ir.components.schemas={}),t.ir.components.schemas[D(e)]=se({context:t,schema:r,state:{$ref:e,circularReferenceTracker:new Set}});};var Sm=e=>e==="boolean"||e==="integer"||e==="number"||e==="string",_t=({context:e,name:t,schema:r})=>{if(fe(e.config.parser.pagination).test(t))return true;if("$ref"in r){let o=e.resolveRef(r.$ref);if("content"in o||"in"in o){let i;if("in"in o&&(i=o.schema),!i){let a=nt({content:o.content}),p=a.find(c=>c.type==="json")||a[0];p?.schema&&(i=p.schema);}return i?_t({context:e,name:t,schema:i}):false}return _t({context:e,name:t,schema:o})}for(let o in r.properties)if(fe(e.config.parser.pagination).test(o)){let a=r.properties[o];if(typeof a!="boolean"&&!("$ref"in a)){let p=Dt({schema:a});if(Sm(p))return o}}for(let o of r.allOf??[]){let i=_t({context:e,name:t,schema:o});if(i)return i}return false};var Tm=({irOperation:e,operation:t})=>{t.deprecated!==void 0&&(e.deprecated=t.deprecated),t.description&&(e.description=t.description),t.summary&&(e.summary=t.summary),t.tags?.length&&(e.tags=t.tags);},Rm=({context:e,method:t,operation:r,path:s,state:o})=>{let i={id:Ft({context:e,id:r.operationId,method:t,path:s,state:o}),method:t,path:s};return r.operationId&&(i.operationId=r.operationId),Tm({irOperation:i,operation:r}),i},Am=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{let a=Rm({context:e,method:t,operation:r,path:s,state:i});if(r.parameters&&(a.parameters=r.parameters),r.requestBody){let p="$ref"in r.requestBody?e.resolveRef(r.requestBody.$ref):r.requestBody,c=nt({content:p.content}),m=c.find(f=>f.type==="json")||c[0];if(m){let f=_t({context:e,name:"",schema:m.schema&&"$ref"in m.schema?{allOf:[{...m.schema}],description:p.description}:{description:p.description,...m.schema}});a.body={mediaType:m.mediaType,schema:se({context:e,schema:"$ref"in r.requestBody?{allOf:[{...r.requestBody}],description:p.description}:m.schema&&"$ref"in m.schema?{allOf:[{...m.schema}],description:p.description}:{description:p.description,...m.schema},state:void 0})},f&&(a.body.pagination=f),p.required&&(a.body.required=p.required),m.type&&(a.body.type=m.type);}}for(let p in r.responses){a.responses||(a.responses={});let c=r.responses[p],m="$ref"in c?e.resolveRef(c.$ref):c,f=nt({content:m.content}),l=f.find(d=>d.type==="json")||f[0];l?a.responses[p]={mediaType:l.mediaType,schema:se({context:e,schema:{description:m.description,...wi({content:l})},state:void 0})}:a.responses[p]={schema:{description:m.description,type:p==="204"?"void":"unknown"}};}if(r.security){let p=[];for(let c of r.security)for(let m in c){let f=o.get(m);f&&p.push(f);}p.length&&(a.security=p);}return a},st=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{e.ir.paths||(e.ir.paths={}),e.ir.paths[s]||(e.ir.paths[s]={}),r.servers&&(e.ir.servers=[...e.ir.servers??[],...r.servers]),e.ir.paths[s][t]=Am({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i});};var Im=e=>{switch(e){case "query":return false;default:return}},Pm=e=>{switch(e){case "deepObject":case "form":return true;default:return false}},Em=e=>{switch(e){case "header":case "path":return "simple";case "cookie":case "query":return "form"}},Be=({context:e,parameters:t})=>{if(!t||!Object.keys(t).length)return;let r={};for(let s of t){let o="$ref"in s?e.dereference(s):s;r[o.in]||(r[o.in]={}),r[o.in][o.name.toLocaleLowerCase()]=Mi({context:e,parameter:o});}return r},Mi=({context:e,parameter:t})=>{let r=t.schema;if(!r){let m=nt({content:t.content}),f=m.find(l=>l.type==="json")||m[0];f&&(r=f.schema);}let s=r&&"$ref"in r?{allOf:[{...r}],deprecated:t.deprecated,description:t.description}:{deprecated:t.deprecated,description:t.description,...r},o=_t({context:e,name:t.name,schema:s}),i=t.style||Em(t.in),a=t.explode!==void 0?t.explode:Pm(i),c={allowReserved:t.allowReserved!==void 0?t.allowReserved:Im(t.in),explode:a,location:t.in,name:t.name,schema:se({context:e,schema:s,state:void 0}),style:i};return t.deprecated&&(c.deprecated=t.deprecated),t.description&&(c.description=t.description),o&&(c.pagination=o),t.required&&(c.required=t.required),c},Fi=({$ref:e,context:t,parameter:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.parameters||(t.ir.components.parameters={}),t.ir.components.parameters[D(e)]=Mi({context:t,parameter:r});};var jm=({context:e,requestBody:t})=>{let r=nt({content:t.content}),s=r.find(p=>p.type==="json")||r[0],o=s?s.schema:void 0,i={description:t.description,...o},a={schema:se({context:e,schema:i,state:void 0})};return t.description&&(a.description=t.description),t.required&&(a.required=t.required),a},Li=({$ref:e,context:t,requestBody:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.requestBodies||(t.ir.components.requestBodies={}),t.ir.components.requestBodies[D(e)]=jm({context:t,requestBody:r});};var Di=({context:e})=>{if(e.spec.servers){e.ir.servers=e.spec.servers;return}if(typeof e.config.input.path=="string"){let t=_e(e.config.input.path);e.ir.servers=[{url:`${t.protocol?`${t.protocol}://`:""}${t.host}${t.port?`:${t.port}`:""}`}];}e.ir.servers||(e.ir.servers=[{url:"/"}]);};var Vi=e=>{let t=[],r=new Map;if(e.paths)for(let s of Object.entries(e.paths)){let o=s[0],i=s[1];for(let a of te){let p=i[a];if(!p)continue;let c=q({method:a,path:o});p.operationId&&(r.has(p.operationId)?t.push({code:"duplicate_key",context:{key:"operationId",value:p.operationId},message:"Duplicate `operationId` found. Each `operationId` must be unique.",path:["paths",o,a,"operationId"],severity:"error"}):r.set(p.operationId,c));}}if(e.servers){(typeof e.servers!="object"||!Array.isArray(e.servers))&&t.push({code:"invalid_type",message:"`servers` must be an array.",path:[],severity:"error"});for(let s=0;s<e.servers.length;s++){let o=e.servers[s];!o||typeof o!="object"?t.push({code:"invalid_type",context:{actual:typeof o,expected:"object"},message:"Each entry in `servers` must be an object.",path:["servers",s],severity:"error"}):o.url||t.push({code:"missing_required_field",context:{field:"url"},message:"Missing required field `url` in server object.",path:["servers",s],severity:"error"});}}return {issues:t,valid:!t.some(s=>s.severity==="error")}};var ks=e=>{if(e.config.parser.validate_EXPERIMENTAL){let o=Vi(e.spec);fr({context:e,result:o});}if(ar(e.config.parser.filters)){let o=ir(e.config.parser.filters,e.spec),{graph:i}=ht(e.spec),{resourceMetadata:a}=cr(i),p=pr({filters:o,resourceMetadata:a});vi({...p,preserveOrder:o.preserveOrder,spec:e.spec});}mr({context:e});let r={ids:new Map},s=new Map;if(e.spec.components){for(let o in e.spec.components.securitySchemes){let i=e.spec.components.securitySchemes[o],a="$ref"in i?e.resolveRef(i.$ref):i;s.set(o,a);}for(let o in e.spec.components.parameters){let i=`#/components/parameters/${o}`,a=e.spec.components.parameters[o],p="$ref"in a?e.resolveRef(a.$ref):a;Fi({$ref:i,context:e,parameter:p});}for(let o in e.spec.components.requestBodies){let i=`#/components/requestBodies/${o}`,a=e.spec.components.requestBodies[o],p="$ref"in a?e.resolveRef(a.$ref):a;Li({$ref:i,context:e,requestBody:p});}for(let o in e.spec.components.schemas){let i=`#/components/schemas/${o}`,a=e.spec.components.schemas[o];$i({$ref:i,context:e,schema:a});}}Di({context:e});for(let o in e.spec.paths){let i=e.spec.paths[o],a=i.$ref?{...e.resolveRef(i.$ref),...i}:i,p={context:e,operation:{description:a.description,parameters:Be({context:e,parameters:a.parameters}),security:e.spec.security,servers:a.servers,summary:a.summary},path:o,securitySchemesMap:s,state:r};a.delete&&st({...p,method:"delete",operation:{...p.operation,...a.delete,parameters:M({source:Be({context:e,parameters:a.delete.parameters}),target:p.operation.parameters})}}),a.get&&st({...p,method:"get",operation:{...p.operation,...a.get,parameters:M({source:Be({context:e,parameters:a.get.parameters}),target:p.operation.parameters})}}),a.head&&st({...p,method:"head",operation:{...p.operation,...a.head,parameters:M({source:Be({context:e,parameters:a.head.parameters}),target:p.operation.parameters})}}),a.options&&st({...p,method:"options",operation:{...p.operation,...a.options,parameters:M({source:Be({context:e,parameters:a.options.parameters}),target:p.operation.parameters})}}),a.patch&&st({...p,method:"patch",operation:{...p.operation,...a.patch,parameters:M({source:Be({context:e,parameters:a.patch.parameters}),target:p.operation.parameters})}}),a.post&&st({...p,method:"post",operation:{...p.operation,...a.post,parameters:M({source:Be({context:e,parameters:a.post.parameters}),target:p.operation.parameters})}}),a.put&&st({...p,method:"put",operation:{...p.operation,...a.put,parameters:M({source:Be({context:e,parameters:a.put.parameters}),target:p.operation.parameters})}}),a.trace&&st({...p,method:"trace",operation:{...p.operation,...a.trace,parameters:M({source:Be({context:e,parameters:a.trace.parameters}),target:p.operation.parameters})}});}};var _i=({operations:e,parameters:t,preserveOrder:r,requestBodies:s,responses:o,schemas:i,spec:a})=>{if(a.components){if(a.components.parameters){let p={};if(r)for(let[c,m]of Object.entries(a.components.parameters))t.has(P("parameter",c))&&(p[c]=m);else for(let c of t){let{name:m}=Y(c),f=a.components.parameters[m];f&&(p[m]=f);}a.components.parameters=p;}if(a.components.requestBodies){let p={};if(r)for(let[c,m]of Object.entries(a.components.requestBodies))s.has(P("body",c))&&(p[c]=m);else for(let c of s){let{name:m}=Y(c),f=a.components.requestBodies[m];f&&(p[m]=f);}a.components.requestBodies=p;}if(a.components.responses){let p={};if(r)for(let[c,m]of Object.entries(a.components.responses))o.has(P("response",c))&&(p[c]=m);else for(let c of o){let{name:m}=Y(c),f=a.components.responses[m];f&&(p[m]=f);}a.components.responses=p;}if(a.components.schemas){let p={};if(r)for(let[c,m]of Object.entries(a.components.schemas))i.has(P("schema",c))&&(p[c]=m);else for(let c of i){let{name:m}=Y(c),f=a.components.schemas[m];f&&(p[m]=f);}a.components.schemas=p;}}if(a.paths)for(let p of Object.entries(a.paths)){let c=p[0],m=p[1];for(let f of te){if(!m[f])continue;let d=P("operation",q({method:f,path:c}));e.has(d)||delete m[f];}Object.keys(m).length||delete a.paths[c];}};var Bi=({content:e})=>{let{mediaType:t,schema:r}=e;return r?r.type==="string"&&!r.format&&tt({mediaType:t})?{...r,format:"binary"}:r:tt({mediaType:t})?{format:"binary",type:"string"}:void 0},ot=({content:e})=>{let t=[];for(let r in e)t.push({mediaType:r,schema:e[r].schema,type:lr({mediaType:r})});return t};var ze=({schema:e})=>typeof e.type=="string"?[e.type]:e.type?e.type:e.properties?["object"]:[],Nm=({irSchema:e,schema:t})=>{t.deprecated!==void 0&&(e.deprecated=t.deprecated),t.example&&(e.example=t.example),t.description&&(e.description=t.description),t.title&&(e.title=t.title);},hn=({irSchema:e,schema:t})=>{if(t.const!==void 0&&(e.const=t.const,!t.type))if(t.const===null)e.type="null";else switch(typeof t.const){case "bigint":case "number":e.type="number";break;case "boolean":e.type="boolean";break;case "string":e.type="string";break}t.default!==void 0&&(e.default=t.default),t.exclusiveMaximum!==void 0&&(e.exclusiveMaximum=t.exclusiveMaximum),t.exclusiveMinimum!==void 0&&(e.exclusiveMinimum=t.exclusiveMinimum),t.format&&(e.format=t.format),t.maximum!==void 0&&(e.maximum=t.maximum),t.maxItems!==void 0&&(e.maxItems=t.maxItems),t.maxLength!==void 0&&(e.maxLength=t.maxLength),t.minimum!==void 0&&(e.minimum=t.minimum),t.minItems!==void 0&&(e.minItems=t.minItems),t.minLength!==void 0&&(e.minLength=t.minLength),t.pattern&&(e.pattern=t.pattern),t.readOnly?e.accessScope="read":t.writeOnly&&(e.accessScope="write");},Cm=({context:e,irSchema:t={},schema:r,state:s})=>{r.prefixItems&&r.prefixItems.length||r.maxItems&&r.maxItems===r.minItems||r.const!==void 0?t.type="tuple":t.type="array";let o=[];for(let i of r.prefixItems??[]){let a=ee({context:e,schema:i,state:s});o.push(a);}if(r.items){let i=ee({context:e,schema:r.items,state:s});if(!o.length&&r.maxItems&&r.maxItems===r.minItems)o=Array(r.maxItems).fill(i);else {let a=r.items.allOf||r.items.anyOf||r.items.oneOf;a&&a.length>1&&!ze({schema:r.items}).includes("null")?t={...t,...i}:o.push(i);}}return t=V({items:o,schema:t}),t},km=({irSchema:e={}})=>(e.type="boolean",e),vm=({irSchema:e={}})=>(e.type="null",e),wm=({irSchema:e={},schema:t})=>(e.type=t.type,e),qm=({context:e,irSchema:t={},schema:r,state:s})=>{t.type="object";let o={};for(let i in r.properties){let a=r.properties[i];if(typeof a!="boolean"){let p=ee({context:e,schema:a,state:{...s,isProperty:true}});o[i]=p;}}if(Object.keys(o).length&&(t.properties=o),r.additionalProperties===void 0)t.properties||(t.additionalProperties={type:"unknown"});else if(typeof r.additionalProperties=="boolean")s.inAllOf&&r.additionalProperties===false&&(!r.properties||Object.keys(r.properties).length===0)||(t.additionalProperties={type:r.additionalProperties?"unknown":"never"});else {let i=ee({context:e,schema:r.additionalProperties,state:s});t.additionalProperties=i;}return r.propertyNames&&(t.propertyNames=ee({context:e,schema:r.propertyNames,state:s})),r.required&&(t.required=r.required),t},$m=({irSchema:e={}})=>(e.type="string",e),it=({schema:e})=>{let t={};return Nm({irSchema:t,schema:e}),t},Mm=({context:e,schema:t,state:r})=>{let s=it({schema:t}),o=[],i=ze({schema:t}),a=t.allOf;for(let p of a){let m="$ref"in p?r:{...r,inAllOf:true},f=ee({context:e,schema:p,state:m});if(t.required&&(f.required?f.required=[...f.required,...t.required]:f.required=t.required),o.push(f),p.$ref){let l=e.resolveRef(p.$ref);if(l.discriminator&&r.$ref){let y=Ve(r.$ref,l.discriminator.mapping).map(x=>({const:x,type:"string"})),h={properties:{[l.discriminator.propertyName]:y.length>1?{items:y,logicalOperator:"or"}:y[0]},type:"object"};l.required?.includes(l.discriminator.propertyName)&&(h.required=[l.discriminator.propertyName]),o.push(h);}r.circularReferenceTracker.has(p.$ref)||ee({context:e,schema:l,state:{...r,$ref:p.$ref}});}}if(i.includes("object")){let p=Bt({context:e,schema:{...t,type:"object"},state:r});if(p.properties){for(let c of p.required??[])if(!p.properties[c])for(let m of a){let f=m.$ref?e.resolveRef(m.$ref):m;if(ze({schema:f}).includes("object")){let l=Bt({context:e,schema:{...f,type:"object"},state:r});if(l.properties?.[c]){p.properties[c]=l.properties[c];break}}}o.push(p);}}if(s=V({items:o,logicalOperator:"and",mutateSchemaOneItem:true,schema:s}),i.includes("null")){let p=[{type:"null"}];o.length&&p.unshift(s),s={items:p,logicalOperator:"or"};}return s},Fm=({context:e,schema:t,state:r})=>{let s=it({schema:t}),o=[],i=ze({schema:t}),a=t.anyOf;for(let p of a){let c=ee({context:e,schema:p,state:r});if(t.discriminator&&p.$ref){let f=Ve(p.$ref,t.discriminator.mapping).map(d=>({const:d,type:"string"}));c={items:[{properties:{[t.discriminator.propertyName]:f.length>1?{items:f,logicalOperator:"or"}:f[0]},type:"object"},c],logicalOperator:"and"};}o.push(c);}if(i.includes("null")&&o.push({type:"null"}),s=V({items:o,mutateSchemaOneItem:true,schema:s}),i.includes("object")){let p=Bt({context:e,schema:{...t,type:"object"},state:r});p.properties&&(s={items:[s,p],logicalOperator:"and"});}return s},Lm=({context:e,schema:t,state:r})=>{let s=it({schema:t});s.type="enum";let o=[],i=ze({schema:t});for(let[a,p]of t.enum.entries()){let c=typeof p,m;if(c==="string"||c==="number"||c==="boolean"?m=c:c==="object"&&Array.isArray(p)?m="array":p===null?i.includes("null")&&(m="null"):console.warn("\u{1F6A8}",`unhandled "${c}" typeof value "${p}" for enum`,t.enum),!m)continue;let f=Bt({context:e,schema:{const:p,description:t["x-enum-descriptions"]?.[a],title:t["x-enum-varnames"]?.[a]??t["x-enumNames"]?.[a],type:m},state:r});o.push(f);}return s=V({items:o,schema:s}),s},Dm=({context:e,schema:t,state:r})=>{let s=it({schema:t}),o=[],i=ze({schema:t}),a=t.oneOf;for(let p of a){let c=ee({context:e,schema:p,state:r});if(t.discriminator&&p.$ref){let f=Ve(p.$ref,t.discriminator.mapping).map(d=>({const:d,type:"string"}));c={items:[{properties:{[t.discriminator.propertyName]:f.length>1?{items:f,logicalOperator:"or"}:f[0]},required:[t.discriminator.propertyName],type:"object"},c],logicalOperator:"and"};}c.logicalOperator==="or"&&c.type!=="array"&&c.items?o=o.concat(c.items):o.push(c);}if(i.includes("null")&&o.push({type:"null"}),s=V({items:o,mutateSchemaOneItem:true,schema:s}),i.includes("object")){let p=Bt({context:e,schema:{...t,type:"object"},state:r});p.properties&&(s={items:[s,p],logicalOperator:"and"});}return s},Vm=({context:e,schema:t,state:r})=>{let s=it({schema:t}),o={};if(o.$ref=decodeURI(t.$ref),!r.circularReferenceTracker.has(t.$ref)){let a=e.resolveRef(t.$ref);ee({context:e,schema:a,state:{...r,$ref:t.$ref,isProperty:false}});}let i=[];return i.push(o),t.type&&typeof t.type!="string"&&t.type.includes("null")&&i.push({type:"null"}),s=V({items:i,mutateSchemaOneItem:true,schema:s}),s},Bt=({context:e,irSchema:t,schema:r,state:s})=>{switch(t||(t=it({schema:r}),hn({irSchema:t,schema:r})),r.type){case "array":return Cm({context:e,irSchema:t,schema:r,state:s});case "boolean":return km({irSchema:t});case "integer":case "number":return wm({irSchema:t,schema:r});case "null":return vm({irSchema:t});case "object":return qm({context:e,irSchema:t,schema:r,state:s});case "string":return $m({irSchema:t});default:return zi({irSchema:t,schema:r})}},_m=({context:e,irSchema:t,schema:r,state:s})=>{t||(t=it({schema:r}));let o={};hn({irSchema:o,schema:r}),r.type.includes("null")&&o.default===null&&delete o.default;let i=[];for(let a of r.type)if(a==="null")i.push({type:"null"});else {let p=Bt({context:e,irSchema:o,schema:{...r,type:a},state:s});i.push(p);}return t=V({items:i,schema:t}),t},Bm=({context:e,schema:t,state:r})=>{let s=it({schema:t});hn({irSchema:s,schema:t});let o=ze({schema:t});return o.length===1?Bt({context:e,irSchema:s,schema:{...t,type:o[0]},state:r}):_m({context:e,irSchema:s,schema:{...t,type:o},state:r})},zi=({irSchema:e,schema:t})=>(e||(e=it({schema:t})),e.type="unknown",hn({irSchema:e,schema:t}),e),ee=({context:e,schema:t,state:r})=>(r||(r={circularReferenceTracker:new Set}),r.$ref&&r.circularReferenceTracker.add(r.$ref),t.$ref?Vm({context:e,schema:t,state:r}):t.enum?Lm({context:e,schema:t,state:r}):t.allOf?Mm({context:e,schema:t,state:r}):t.anyOf?Fm({context:e,schema:t,state:r}):t.oneOf?Dm({context:e,schema:t,state:r}):t.type||t.properties?Bm({context:e,schema:t,state:r}):zi({schema:t})),Ki=({$ref:e,context:t,schema:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.schemas||(t.ir.components.schemas={}),t.ir.components.schemas[D(e)]=ee({context:t,schema:r,state:{$ref:e,circularReferenceTracker:new Set}});};var Wi=e=>e.includes("boolean")||e.includes("integer")||e.includes("number")||e.includes("string"),zt=({context:e,name:t,schema:r})=>{if(fe(e.config.parser.pagination).test(t))return true;if(r.$ref){let o=e.resolveRef(r.$ref);if("content"in o||"in"in o){let i;if("in"in o&&(i=o.schema),!i){let a=ot({content:o.content}),p=a.find(c=>c.type==="json")||a[0];p?.schema&&(i=p.schema);}return i?zt({context:e,name:t,schema:i}):false}return zt({context:e,name:t,schema:o})}for(let o in r.properties)if(fe(e.config.parser.pagination).test(o)){let a=r.properties[o];if(typeof a!="boolean"){let p=ze({schema:a});if(!p.length){let m=(a.anyOf??a.oneOf??[]).filter(f=>f.type!=="null");if(m.length===1){let f=ze({schema:m[0]});if(Wi(f))return o}}if(Wi(p))return o}}for(let o of r.allOf??[]){let i=zt({context:e,name:t,schema:o});if(i)return i}return false};var zm=({irOperation:e,operation:t})=>{t.deprecated!==void 0&&(e.deprecated=t.deprecated),t.description&&(e.description=t.description),t.summary&&(e.summary=t.summary),t.tags?.length&&(e.tags=t.tags);},Km=({context:e,method:t,operation:r,path:s,state:o})=>{let i={id:Ft({context:e,id:r.operationId,method:t,path:s,state:o}),method:t,path:s};return r.operationId&&(i.operationId=r.operationId),zm({irOperation:i,operation:r}),i},Wm=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{let a=Km({context:e,method:t,operation:r,path:s,state:i});if(r.parameters&&(a.parameters=r.parameters),r.requestBody){let p="$ref"in r.requestBody?e.resolveRef(r.requestBody.$ref):r.requestBody,c=ot({content:p.content}),m=c.find(f=>f.type==="json")||c[0];if(m){let f=zt({context:e,name:"",schema:{description:p.description,...m.schema}});a.body={mediaType:m.mediaType,schema:ee({context:e,schema:{description:p.description,..."$ref"in r.requestBody?r.requestBody:m.schema},state:void 0})},f&&(a.body.pagination=f),p.required&&(a.body.required=p.required),m.type&&(a.body.type=m.type);}}for(let p in r.responses){a.responses||(a.responses={});let c=r.responses[p],m="$ref"in c?e.resolveRef(c.$ref):c,f=ot({content:m.content}),l=f.find(d=>d.type==="json")||f[0];l?a.responses[p]={mediaType:l.mediaType,schema:ee({context:e,schema:{description:m.description,...Bi({content:l})},state:void 0})}:a.responses[p]={schema:{description:m.description,type:p==="204"?"void":"unknown"}};}if(r.security){let p=[];for(let c of r.security)for(let m in c){let f=o.get(m);f&&p.push(f);}p.length&&(a.security=p);}return a},at=({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i})=>{e.ir.paths||(e.ir.paths={}),e.ir.paths[s]||(e.ir.paths[s]={}),r.servers&&(e.ir.servers=[...e.ir.servers??[],...r.servers]),e.ir.paths[s][t]=Wm({context:e,method:t,operation:r,path:s,securitySchemesMap:o,state:i});};var Hm=e=>{switch(e){case "query":return false;default:return}},Zm=e=>{switch(e){case "deepObject":case "form":return true;default:return false}},Um=e=>{switch(e){case "header":case "path":return "simple";case "cookie":case "query":return "form"}},Ke=({context:e,parameters:t})=>{if(!t||!Object.keys(t).length)return;let r={};for(let s of t){let o="$ref"in s?e.dereference(s):s;r[o.in]||(r[o.in]={}),r[o.in][o.name.toLocaleLowerCase()]=Hi({context:e,parameter:o});}return r},Hi=({context:e,parameter:t})=>{let r=t.schema;if(!r){let m=ot({content:t.content}),f=m.find(l=>l.type==="json")||m[0];f&&(r=f.schema);}let s={deprecated:t.deprecated,description:t.description,...r},o=zt({context:e,name:t.name,schema:s}),i=t.style||Um(t.in),a=t.explode!==void 0?t.explode:Zm(i),c={allowReserved:t.allowReserved!==void 0?t.allowReserved:Hm(t.in),explode:a,location:t.in,name:t.name,schema:ee({context:e,schema:s,state:void 0}),style:i};return t.deprecated&&(c.deprecated=t.deprecated),t.description&&(c.description=t.description),o&&(c.pagination=o),t.required&&(c.required=t.required),c},Zi=({$ref:e,context:t,parameter:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.parameters||(t.ir.components.parameters={}),t.ir.components.parameters[D(e)]=Hi({context:t,parameter:r});};var Qm=({context:e,requestBody:t})=>{let r=ot({content:t.content}),s=r.find(p=>p.type==="json")||r[0],o=s?s.schema:void 0,i={description:t.description,...o},a={schema:ee({context:e,schema:i,state:void 0})};return t.description&&(a.description=t.description),t.required&&(a.required=t.required),a},Ui=({$ref:e,context:t,requestBody:r})=>{t.ir.components||(t.ir.components={}),t.ir.components.requestBodies||(t.ir.components.requestBodies={}),t.ir.components.requestBodies[D(e)]=Qm({context:t,requestBody:r});};var Qi=({context:e})=>{if(e.spec.servers){e.ir.servers=e.spec.servers;return}if(typeof e.config.input.path=="string"){let t=_e(e.config.input.path);e.ir.servers=[{url:`${t.protocol?`${t.protocol}://`:""}${t.host}${t.port?`:${t.port}`:""}`}];}e.ir.servers||(e.ir.servers=[{url:"/"}]);};var Xi=e=>{let t=[],r=new Map;if(e.paths)for(let s of Object.entries(e.paths)){let o=s[0],i=s[1];for(let a of te){let p=i[a];if(!p)continue;let c=q({method:a,path:o});p.operationId&&(r.has(p.operationId)?t.push({code:"duplicate_key",context:{key:"operationId",value:p.operationId},message:"Duplicate `operationId` found. Each `operationId` must be unique.",path:["paths",o,a,"operationId"],severity:"error"}):r.set(p.operationId,c));}}if(e.servers){(typeof e.servers!="object"||!Array.isArray(e.servers))&&t.push({code:"invalid_type",message:"`servers` must be an array.",path:[],severity:"error"});for(let s=0;s<e.servers.length;s++){let o=e.servers[s];!o||typeof o!="object"?t.push({code:"invalid_type",context:{actual:typeof o,expected:"object"},message:"Each entry in `servers` must be an object.",path:["servers",s],severity:"error"}):o.url||t.push({code:"missing_required_field",context:{field:"url"},message:"Missing required field `url` in server object.",path:["servers",s],severity:"error"});}}return {issues:t,valid:!t.some(s=>s.severity==="error")}};var vs=e=>{if(e.config.parser.validate_EXPERIMENTAL){let o=Xi(e.spec);fr({context:e,result:o});}if(ar(e.config.parser.filters)){let o=ir(e.config.parser.filters,e.spec),{graph:i}=ht(e.spec),{resourceMetadata:a}=cr(i),p=pr({filters:o,resourceMetadata:a});_i({...p,preserveOrder:o.preserveOrder,spec:e.spec});}mr({context:e});let r={ids:new Map},s=new Map;if(e.spec.components){for(let o in e.spec.components.securitySchemes){let i=e.spec.components.securitySchemes[o],a="$ref"in i?e.resolveRef(i.$ref):i;s.set(o,a);}for(let o in e.spec.components.parameters){let i=`#/components/parameters/${o}`,a=e.spec.components.parameters[o],p="$ref"in a?e.resolveRef(a.$ref):a;Zi({$ref:i,context:e,parameter:p});}for(let o in e.spec.components.requestBodies){let i=`#/components/requestBodies/${o}`,a=e.spec.components.requestBodies[o],p="$ref"in a?e.resolveRef(a.$ref):a;Ui({$ref:i,context:e,requestBody:p});}for(let o in e.spec.components.schemas){let i=`#/components/schemas/${o}`,a=e.spec.components.schemas[o];Ki({$ref:i,context:e,schema:a});}}Qi({context:e});for(let o in e.spec.paths){let i=e.spec.paths[o],a=i.$ref?{...e.resolveRef(i.$ref),...i}:i,p={context:e,operation:{description:a.description,parameters:Ke({context:e,parameters:a.parameters}),security:e.spec.security,servers:a.servers,summary:a.summary},path:o,securitySchemesMap:s,state:r};a.delete&&at({...p,method:"delete",operation:{...p.operation,...a.delete,parameters:M({source:Ke({context:e,parameters:a.delete.parameters}),target:p.operation.parameters})}}),a.get&&at({...p,method:"get",operation:{...p.operation,...a.get,parameters:M({source:Ke({context:e,parameters:a.get.parameters}),target:p.operation.parameters})}}),a.head&&at({...p,method:"head",operation:{...p.operation,...a.head,parameters:M({source:Ke({context:e,parameters:a.head.parameters}),target:p.operation.parameters})}}),a.options&&at({...p,method:"options",operation:{...p.operation,...a.options,parameters:M({source:Ke({context:e,parameters:a.options.parameters}),target:p.operation.parameters})}}),a.patch&&at({...p,method:"patch",operation:{...p.operation,...a.patch,parameters:M({source:Ke({context:e,parameters:a.patch.parameters}),target:p.operation.parameters})}}),a.post&&at({...p,method:"post",operation:{...p.operation,...a.post,parameters:M({source:Ke({context:e,parameters:a.post.parameters}),target:p.operation.parameters})}}),a.put&&at({...p,method:"put",operation:{...p.operation,...a.put,parameters:M({source:Ke({context:e,parameters:a.put.parameters}),target:p.operation.parameters})}}),a.trace&&at({...p,method:"trace",operation:{...p.operation,...a.trace,parameters:M({source:Ke({context:e,parameters:a.trace.parameters}),target:p.operation.parameters})}});}};var xn="#/components/schemas/";var dr=({config:e,name:t})=>{let r=e.plugins["@hey-api/sdk"];if(r?.config.classNameBuilder){let s="";return typeof r.config.classNameBuilder=="function"?s=r.config.classNameBuilder(t):s=r.config.classNameBuilder.replace("{{name}}",t),s}return t},Gi=e=>I().plugins["@hey-api/typescript"]?.config.style==="PascalCase"?E({case:"PascalCase",value:e}):e,Ji=e=>{let t=Gi(e);return Mt(t).replace(ue,"_$1")};function St(e,t,r){return r.indexOf(e)===t}function ra(e,t){let r=e.toLocaleLowerCase(),s=t.toLocaleLowerCase();return r.localeCompare(s,"en")}var qr=(e,t)=>ra(e.name,t.name);function na(e){return e.sort(qr)}var Jm=(e,t)=>{if(t)return t;if(typeof e=="number")return `'_${e}'`;let r="";return typeof e=="string"&&(r=e.replace(/[^$\u200c\u200d\p{ID_Continue}]/gu,"_").replace(/^([^$_\p{ID_Start}])/u,"_$1").replace(/(\p{Lowercase})(\p{Uppercase}+)/gu,"$1_$2")),r=r.trim(),r||(r="empty_string"),r.toUpperCase()},sa=e=>e.map(t=>bn(t.value,true)).filter(St).join(" | "),bn=(e,t=false)=>typeof e=="string"?e.includes("'")&&t?`"${e}"`:`'${e}'`:e,ws=e=>{let t=Jm(e.value,e.customName),r=bn(e.value);return {key:t,value:r}};var qs=e=>{let t=Ji(e);return {$ref:xn+e,name:t}};var $r=e=>e.format==="date"||e.format==="date-time",$s=e=>{let t=I();return e.base==="binary"?n.typeUnionNode({types:["Blob","File"]}):t.plugins["@hey-api/transformers"]?.config.dates&&$r(e)?n.typeNode("Date"):n.typeNode(e.base)},Ym=e=>{let t=e.base==="null"?false:e.isNullable,r=$s(e);if(e.export==="reference"&&e.$refs.length===1&&e.$refs[0].startsWith(xn)){let o=qs(e.base);r=n.typeNode(o.name);}return n.typeUnionNode({isNullable:t,types:[r]})},ef=e=>{if(e.link){if(Array.isArray(e.link)){let t=e.link.map(s=>Oe(s));return n.typeTupleNode({isNullable:e.isNullable,types:t})}if(e.export==="array"&&e.maxItems&&e.minItems&&e.maxItems===e.minItems&&e.maxItems<=100){let t=Array(e.maxItems).fill(Oe(e.link));return n.typeTupleNode({isNullable:e.isNullable,types:t})}return n.typeArrayNode([Oe(e.link)],e.isNullable)}return n.typeArrayNode([$s(e)],e.isNullable)},tf=e=>{let t=e.enum.map(r=>bn(r.value));return n.typeUnionNode({isNullable:e.isNullable,types:t})},rf=e=>{let t=e.link&&!Array.isArray(e.link)?Oe(e.link):$s(e);return n.typeRecordNode(["string"],[t],e.isNullable,true)},oa=({model:e,style:t})=>{let r=e.properties.map(o=>n.nodeToString({node:Oe(o),unescape:true})).filter(St),s=t==="union"?n.typeUnionNode({isNullable:e.isNullable&&!e.properties.find(o=>o.isNullable),types:r}):n.typeIntersectionNode({isNullable:e.isNullable,types:r});return e.meta?s:n.typeParenthesizedNode({type:s})},nf=e=>{if(!e.properties.length)return n.typeNode("unknown");let t=I(),r=X(t),s=e.properties.map(o=>{let i=o.isRequired?"":"?",a=Oe(o),p=r?/^\dXX$/.test(o.name)?et(o.name):o.name:et(Rr(aa(o.name)));return o.name==="[key: string]"&&(p=o.name,i&&(i="",a=n.typeUnionNode({types:[a,"undefined"]}))),{comment:[o.description&&B(o.description),o.deprecated&&"@deprecated"],isReadOnly:o.isReadOnly,isRequired:i==="",name:p,type:a}});return n.typeInterfaceNode({isNullable:e.isNullable,properties:s,useLegacyResolution:true})},Oe=e=>{switch(e.export){case "all-of":return oa({model:e,style:"intersection"});case "any-of":case "one-of":return oa({model:e,style:"union"});case "array":return ef(e);case "dictionary":return rf(e);case "enum":return tf(e);case "interface":return nf(e);case "const":case "generic":case "reference":default:return Ym(e)}},Se=({client:e,count:t=1,create:r=false,meta:s,nameTransformer:o})=>{let i={created:false,name:""},a=s.name;o&&(a=o(a)),t>1&&(a=`${a}${t}`);let p=e.types[a];return p?p.$ref===s.$ref?i={created:false,name:a}:i=Se({client:e,count:t+1,create:r,meta:s,nameTransformer:o}):r&&(e.types[a]=s,i={created:true,name:a}),i},ia=({client:e,name:t})=>{let r={deleted:false,name:""};return e.types[t]&&(delete e.types[t],r={deleted:true,name:t}),r},aa=e=>{let t=I();return X(t)?E({case:"camelCase",value:As(e)}).replace(ue,"_$1"):e};var He=e=>e.some(r=>r.isRequired);var Rf=({config:e,dependencies:t,spec:r})=>{let s=new fn({config:e,dependencies:t,spec:r});if("swagger"in s.spec)return Cs(s),s;switch(s.spec.openapi){case "3.0.0":case "3.0.1":case "3.0.2":case "3.0.3":case "3.0.4":return ks(s),s;case "3.1.0":case "3.1.1":return vs(s),s;}throw new Error("Unsupported OpenAPI specification")};var T="types";var ca=({dataExpression:e,schema:t})=>{if(t.type!=="integer"||t.format!=="int64")return;let r=e!==void 0?n.callExpression({functionName:"BigInt",parameters:[n.callExpression({functionName:n.propertyAccessExpression({expression:e,name:"toString"})})]}):void 0;if(r){if(typeof e=="string")return [r];if(e)return [n.assignment({left:e,right:r})]}},ma=({dataExpression:e,schema:t})=>{if(t.type!=="string"||!(t.format==="date"||t.format==="date-time"))return;let r=n.identifier({text:"Date"});if(typeof e=="string")return [n.newExpression({argumentsArray:[n.identifier({text:e})],expression:r})];if(e)return [n.assignment({left:e,right:n.newExpression({argumentsArray:[e],expression:r})})]};var On=({id:e,type:t})=>{let r="";switch(t){case "data":r="DataResponseTransformer";break;case "error":r="ErrorResponseTransformer";break;case "response":r="ResponseTransformer";break}return `#/ir/${E({case:"camelCase",value:e})}${r}`},Af=({$ref:e,type:t})=>{let r="";switch(t){case "response":r="SchemaResponseTransformer";break}let s=e.split("/");return `${s.slice(0,s.length-1).join("/")}/${E({case:"camelCase",value:s[s.length-1]})}${r}`},fa=({$ref:e})=>Af({$ref:e,type:"response"}),Lr="transformers",Sn="data",Mr=e=>e.map(t=>b__default.default.isStatement(t)?t:n.expressionToStatement({expression:t})),ua=({node:e})=>e.kind===b__default.default.SyntaxKind.ReturnStatement,da=({plugin:e,schema:t})=>{let r=n.identifier({text:Sn}),s=Fr({dataExpression:r,plugin:e,schema:t});return s.length&&!ua({node:s[s.length-1]})&&s.push(n.returnStatement({expression:r})),s},Fr=({dataExpression:e,plugin:t,schema:r})=>{let s=t.context.file({id:Lr});if(r.$ref){let o=s.identifier({$ref:fa({$ref:r.$ref}),create:true,namespace:"value"});if(o.created&&o.name){let i=t.context.resolveIrRef(r.$ref),a=da({plugin:t,schema:i});if(a.length){let p=n.constVariable({expression:n.arrowFunction({async:false,multiLine:true,parameters:[{name:Sn,type:n.keywordTypeNode({keyword:"any"})}],statements:Mr(a)}),name:o.name});s.add(p);}else o=s.blockIdentifier({$ref:fa({$ref:r.$ref}),namespace:"value"});}if(o.name){let i=n.callExpression({functionName:o.name,parameters:[e]});if(e)return typeof e=="string"&&e==="item"?[n.returnStatement({expression:i})]:[typeof e=="string"?i:n.assignment({left:e,right:i})]}return []}if(r.type==="array"){if(!e||typeof e=="string")return [];let o=r.items?Fr({dataExpression:"item",plugin:t,schema:r.items?.[0]?r.items[0]:{...r,type:void 0}}):[];if(!o.length)return [];let i=Mr(o);return i.some(p=>ua({node:p}))||i.push(n.returnStatement({expression:n.identifier({text:"item"})})),[n.assignment({left:e,right:n.callExpression({functionName:n.propertyAccessExpression({expression:e,name:"map"}),parameters:[n.arrowFunction({multiLine:true,parameters:[{name:"item",type:"any"}],statements:i})]})})]}if(r.type==="object"){let o=[],i=r.required??[];for(let a in r.properties){let p=r.properties[a],c=n.propertyAccessExpression({expression:e||Sn,name:a}),m=Fr({dataExpression:c,plugin:t,schema:p});if(!m.length)continue;let f=!p.items?.find(d=>d.type==="null");i.includes(a)&&f?o=o.concat(m):o.push(n.ifStatement({expression:c,thenStatement:n.block({statements:Mr(m)})}));}return o}if(r.items){if(r.items.length===1)return Fr({dataExpression:"item",plugin:t,schema:r.items[0]});let o=[];if(r.logicalOperator==="and"||r.items.length===2&&r.items.find(i=>i.type==="null"||i.type==="void")){for(let i of r.items){let a=Fr({dataExpression:e||"item",plugin:t,schema:i});if(a.length)if(e)o=o.concat(a);else {let p=n.identifier({text:"item"});o.push(n.ifStatement({expression:p,thenStatement:n.block({statements:Mr(a)})}),n.returnStatement({expression:p}));}}return o}r.type!=="enum"&&((r.items??[]).every(i=>["boolean","integer","null","number","string"].includes(i.type))||console.warn(`\u2757\uFE0F Transformers warning: schema ${JSON.stringify(r)} 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 o of t.config.transformers??[]){let i=o({config:t.config,dataExpression:e,file:s,schema:r});if(i)return i}return []},ya=({plugin:e})=>{let t=e.createFile({id:Lr,path:e.output});e.config.dates&&(e.config.transformers=[...e.config.transformers??[],ma]),e.config.bigInt&&(e.config.transformers=[...e.config.transformers??[],ca]),e.forEach("operation",({operation:r})=>{let{response:s}=qe(r);if(!s)return;if(s.items&&s.items.length>1){e.context.config.logs.level==="debug"&&console.warn(`\u2757\uFE0F Transformers warning: route ${q(r)} has ${s.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 o=e.getPlugin("@hey-api/typescript"),a=e.context.file({id:T}).getName(o.api.getId({operation:r,type:"response"}));if(!a)return;let p=t.identifier({$ref:On({id:r.id,type:"response"}),create:true,namespace:"value"});if(!p.name)return;let c=da({plugin:e,schema:s});if(c.length){t.import({asType:true,module:t.relativePathToFile({context:e.context,id:T}),name:a});let m=n.constVariable({exportConst:true,expression:n.arrowFunction({async:true,multiLine:true,parameters:[{name:Sn,type:n.keywordTypeNode({keyword:"any"})}],returnType:n.typeReferenceNode({typeArguments:[n.typeReferenceNode({typeName:a})],typeName:"Promise"}),statements:Mr(c)}),name:p.name});t.add(m);}else p=t.blockIdentifier({$ref:On({id:r.id,type:"response"}),namespace:"value"});});};var If=({securitySchemeObject:e})=>{if(e.type==="openIdConnect")return {scheme:"bearer",type:"http"};if(e.type==="oauth2")return e.flows.password||e.flows.authorizationCode||e.flows.clientCredentials||e.flows.implicit?{scheme:"bearer",type:"http"}:void 0;if(e.type==="apiKey")return e.in==="header"?{name:e.name,type:"apiKey"}:e.in==="query"||e.in=="cookie"?{in:e.in,name:e.name,type:"apiKey"}:void 0;if(e.type==="http"){let t=e.scheme.toLowerCase();return t==="bearer"||t==="basic"?{scheme:t,type:"http"}:void 0}},ga=({operation:e,plugin:t})=>{if(!e.security||!t.config.auth)return [];let r=[];for(let s of e.security){let o=If({securitySchemeObject:s});o?r.push(o):console.warn(`\u2757\uFE0F SDK warning: unsupported security scheme. Please open an issue if you'd like it added https://github.com/hey-api/openapi-ts/issues
7
- ${JSON.stringify(s,null,2)}`);}return r};var ha=({operation:e,plugin:t})=>{if(!t.config.validator.request)return;let r=t.getPlugin(t.config.validator.request);if(!(!r||!r.api.createRequestValidator))return r.api.createRequestValidator({file:t.context.file({id:J}),operation:e,plugin:r})},xa=({operation:e,plugin:t})=>{if(!t.config.validator.response)return;let r=t.getPlugin(t.config.validator.response);if(!(!r||!r.api.createResponseValidator))return r.api.createResponseValidator({file:t.context.file({id:J}),operation:e,plugin:r})};var ba=({context:e,value:t})=>{let r=E({case:"PascalCase",value:yt(t)});return dr({config:e.config,name:r})},Pf=({operation:e,plugin:t})=>t.config.methodNameBuilder?t.config.methodNameBuilder(e):!t.config.asClass&&e.id.match(ue)?`${e.id}_`:e.id,Kt=({context:e,operation:t,plugin:r})=>{let s=new Map,o,i,a=[];if(r.config.classStructure==="auto"&&t.operationId&&(a=t.operationId.split(/[./]/).filter(Boolean),a.length>1)){let c=a.pop();i=E({case:"camelCase",value:yt(c)}),o=a.pop();}let p=r.config.instance?[r.config.instance]:t.tags??["default"];for(let c of p){let m=ba({context:e,value:o||c});s.set(c,{className:m,methodName:i||Pf({operation:t,plugin:r}),path:(o?[c,...a,o]:[c]).map(f=>ba({context:e,value:f}))});}return s},Ls=({file:e,operation:t,plugin:r,throwOnError:s})=>{let i=j(r.context.config).name==="@hey-api/client-nuxt",a=r.getPlugin("@hey-api/typescript"),p=r.context.file({id:T}),c=e.import({asType:true,module:e.relativePathToFile({context:r.context,id:T}),name:p.getName(a.api.getId({operation:t,type:"data"}))}),m=z.Options.name;if(i){let f=e.import({asType:true,module:e.relativePathToFile({context:r.context,id:T}),name:p.getName(a.api.getId({operation:t,type:i?"response":"responses"}))});return `${m}<${rr}, ${c.name||"unknown"}, ${f.name||"unknown"}, ${Me}>`}return s?`${m}<${c.name||"unknown"}, ${s}>`:c.name?`${m}<${c.name}>`:m},Ds=({file:e,isRequiredOptions:t,operation:r,plugin:s})=>{let o={argNames:[],fields:[],parameters:[]},i=s.getPlugin("@hey-api/typescript"),a={usedTypeIDs:new Set},c=j(s.context.config).name==="@hey-api/client-nuxt";if(s.config.params_EXPERIMENTAL==="experiment"){let m=s.context.file({id:T});if(r.parameters?.path)for(let f in r.parameters.path){let l=r.parameters.path[f],d=he(l.name);o.argNames.push(d),o.fields.push({in:"path",key:d}),o.parameters.push({isRequired:l.required,name:d,type:i.api.schemaToType({onRef:y=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(y)});},plugin:i,schema:l.schema,state:a})});}if(r.parameters?.query)for(let f in r.parameters.query){let l=r.parameters.query[f],d=he(l.name);o.argNames.push(d),o.fields.push({in:"path",key:d}),o.parameters.push({isRequired:l.required,name:d,type:i.api.schemaToType({onRef:y=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(y)});},plugin:i,schema:l.schema,state:a})});}if(r.body){let f="body";o.argNames.push(f),o.fields.push({in:"body"}),o.parameters.push({isRequired:r.body.required,name:f,type:i.api.schemaToType({onRef:l=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(l)});},plugin:i,schema:r.body.schema,state:a})});}}return o.parameters.push({isRequired:t,name:"options",type:Ls({file:e,operation:r,plugin:s,throwOnError:c?void 0:"ThrowOnError"})}),o},Ef=e=>{if(!e)return;let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},Vs=({isRequiredOptions:e,opParameters:t,operation:r,plugin:s})=>{let o=s.context.file({id:J}),i=o.nameWithoutExtension(),a=j(s.context.config),p=a.name==="@hey-api/client-nuxt",c=s.getPlugin("@hey-api/typescript"),m=s.context.file({id:T}),f=o.import({asType:true,module:o.relativePathToFile({context:s.context,id:T}),name:m.getName(c.api.getId({operation:r,type:p?"response":"responses"}))}),l=o.import({asType:true,module:o.relativePathToFile({context:s.context,id:T}),name:m.getName(c.api.getId({operation:r,type:p?"error":"errors"}))}),d=[];if(r.body)switch(r.body.type){case "form-data":{let N=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"formDataBodySerializer"});d.push({spread:N.name});break}case "json":break;case "text":case "octet-stream":d.push({key:"bodySerializer",value:null});break;case "url-search-params":{let N=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"urlSearchParamsBodySerializer"});d.push({spread:N.name});break}}for(let N in r.parameters?.query){let Z=r.parameters.query[N];if((Z.schema.type==="array"||Z.schema.type==="tuple")&&(Z.style!=="form"||!Z.explode)){d.push({key:"querySerializer",value:[{key:"array",value:[{key:"explode",value:false},{key:"style",value:"form"}]}]});break}}let y=ha({operation:r,plugin:s});if(y&&d.push({key:"requestValidator",value:y}),s.config.transformer==="@hey-api/transformers"){let N=s.context.file({id:Lr}).identifier({$ref:On({id:r.id,type:"response"}),namespace:"value"});N.name&&(o.import({module:o.relativePathToFile({context:s.context,id:Lr}),name:N.name}),d.push({key:"responseTransformer",value:N.name}));}if(a.name==="@hey-api/client-axios"){for(let N in r.responses)if(Os({statusCode:N})==="2XX"){let Z=r.responses[N],Te=Ef(Z?.mediaType);if(Te){d.push({key:"responseType",value:Te});break}}}let h=xa({operation:r,plugin:s});h&&d.push({key:"responseValidator",value:h}),s.config.responseStyle==="data"&&d.push({key:"responseStyle",value:s.config.responseStyle});let x=ga({context:s.context,operation:r,plugin:s});x.length&&d.push({key:"security",value:n.arrayLiteralExpression({elements:x})}),d.push({key:"url",value:r.path}),d.push({spread:"options"});let S=[],O=t.argNames.length;if(O){let N=[],Z=[];for(let je of t.argNames)N.push(n.identifier({text:je}));for(let je of t.fields){let Zt=[];"in"in je&&(Zt.push({key:"in",value:je.in}),je.key&&Zt.push({key:"key",value:je.key}),je.map&&Zt.push({key:"map",value:je.map})),Z.push(n.objectExpression({obj:Zt}));}let Te=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"buildClientParams"});S.push(n.constVariable({expression:n.callExpression({functionName:Te.name,parameters:[n.arrayLiteralExpression({elements:N}),n.arrayLiteralExpression({elements:Z})]}),name:"params"})),d.push({spread:"params"});}if(r.body){let N=r.parameters?.header?.["content-type"];if(!!!N?.required){let Te=[{key:N?.name??"Content-Type",value:r.body.type==="form-data"?null:r.body.mediaType},{spread:n.propertyAccessExpression({expression:n.identifier({text:"options"}),isOptional:!e,name:"headers"})}];O&&Te.push({spread:n.propertyAccessExpression({expression:n.identifier({text:"params"}),name:"headers"})}),d.push({key:"headers",value:Te});}}let k=f.name||"unknown",_=l.name||"unknown",$=s.config.client?o.import({alias:"_heyApiClient",module:o.relativePathToFile({context:s.context,id:Ne}),name:"client"}):void 0,F=n.propertyAccessExpression({expression:n.identifier({text:"options"}),isOptional:!e,name:"client"}),W;s.config.instance?W=n.binaryExpression({left:F,operator:"??",right:n.propertyAccessExpression({expression:n.this(),name:"_client"})}):$?.name?W=n.binaryExpression({left:F,operator:"??",right:n.identifier({text:$.name})}):W=F;let L=[];return p?L.push(rr,`${k} | ${Me}`,_,Me):L.push(k,_,"ThrowOnError"),s.config.responseStyle==="data"&&L.push(n.stringLiteral({text:s.config.responseStyle})),S.push(n.returnFunctionCall({args:[n.objectExpression({identifiers:["responseTransformer"],obj:d})],name:n.propertyAccessExpression({expression:W,name:n.identifier({text:r.method})}),types:L})),S};var Wt=({meta:e,onImport:t,...r})=>{if(!e)return {created:false,name:""};let{created:s,name:o}=Se({meta:e,...r});return o&&t(o),{created:s,name:o}},Aa=e=>`${e}ModelResponseTransformer`,Ht=e=>`${E({case:"PascalCase",value:e})}Data`,yr=e=>`${E({case:"PascalCase",value:e})}Error`,_s=e=>`${e}Transformer`,Ze=e=>`${E({case:"PascalCase",value:e})}Response`,Bs=({importedType:e,throwOnError:t})=>{let r=z.OptionsLegacyParser.name;return t?`${r}<${e||"unknown"}, ${t}>`:e?`${r}<${e}>`:r},Oa=(e,t)=>{let r=I(),{name:s}=Se({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Ht}),o=He(t.parameters);if(!X(r))return [{isRequired:o,name:"options",type:Bs({importedType:s,throwOnError:"ThrowOnError"})}];if(!t.parameters.length)return [];let i=a=>{if(a.default!==void 0)return JSON.stringify(a.default,null,4)};return r.useOptions?[{default:o?void 0:{},name:"data",type:s}]:t.parameters.map(a=>{let p=`${s}['${a.name}']`;return {default:a?.default,isRequired:(!a.isRequired&&!i(a)?"?":"")=="",name:a.name,type:p}})},Sa=(e,t)=>{let r=I(),s=n.typeNode("void");if(t.responses.filter(a=>a.responseTypes.includes("success")).length){let{name:a}=Se({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Ze});s=n.typeUnionNode({types:[a]});}return r.useOptions&&r.plugins["@hey-api/sdk"]?.config.response==="response"&&(s=n.typeNode("ApiResult",[s])),j(r).name==="legacy/angular"?s=n.typeNode("Observable",[s]):s=n.typeNode("CancelablePromise",[s]),s},Ta=e=>{let t=I();if(!X(t))return [e.deprecated&&"@deprecated",e.summary&&B(e.summary),e.description&&B(e.description)];let r=[];e.parameters.length&&(t.useOptions?r=["@param data The data for the request.",...e.parameters.map(i=>`@param data.${i.name} ${i.description?B(i.description):""}`)]:r=e.parameters.map(i=>`@param ${i.name} ${i.description?B(i.description):""}`));let s=e.responses.filter(i=>i.responseTypes.includes("success"));return [e.deprecated&&"@deprecated",e.summary&&B(e.summary),e.description&&B(e.description),...r,...s.map(i=>`@returns ${i.type} ${i.description?B(i.description):""}`),"@throws ApiError"]},jf=({client:e,onClientImport:t,onImport:r,operation:s})=>{let o=I(),i=Ze(s.name),{name:a}=Se({client:e,meta:{$ref:`transformers/${i}`,name:i},nameTransformer:_s});if(a&&r(a),!X(o)){let f=[{spread:"options"}],d=s.parameters.filter(y=>y.in==="body"||y.in==="formData").map(y=>y.mediaType||(y.in==="formData"?"multipart/form-data":void 0)).filter(Boolean).filter(St);return d.length===1&&(d[0]==="multipart/form-data"&&(f=[...f,{spread:"formDataBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:null},{spread:"options?.headers"}]}],t?.("formDataBodySerializer")),d[0]==="application/x-www-form-urlencoded"&&(f=[...f,{spread:"urlSearchParamsBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:d[0]},{spread:"options?.headers"}]}],t?.("urlSearchParamsBodySerializer"))),f=[...f,{key:"url",value:s.path}],a&&(f=[...f,{key:"responseTransformer",value:a}]),n.objectExpression({identifiers:["responseTransformer"],obj:f})}let p=f=>f.reduce((l,d)=>{let y=d.prop,h=o.useOptions?`data.${d.name}`:d.name;return y===h?l[y]=y:et(y)===y?l[y]=h:l[`'${y}'`]=h,l},{}),c={method:s.method,url:s.path};s.parametersPath.length&&(c.path=p(s.parametersPath)),s.parametersCookie.length&&(c.cookies=p(s.parametersCookie)),s.parametersHeader.length&&(c.headers=p(s.parametersHeader)),s.parametersQuery.length&&(c.query=p(s.parametersQuery)),s.parametersForm.length&&(c.formData=p(s.parametersForm)),s.parametersBody&&(s.parametersBody.in==="formData"&&(o.useOptions?c.formData=`data.${s.parametersBody.name}`:c.formData=s.parametersBody.name),s.parametersBody.in==="body"&&(o.useOptions?c.body=`data.${s.parametersBody.name}`:c.body=s.parametersBody.name)),s.parametersBody?.mediaType&&(c.mediaType=s.parametersBody?.mediaType),s.responseHeader&&(c.responseHeader=s.responseHeader),a&&(c.responseTransformer=a);let m=s.responses.filter(f=>f.responseTypes.includes("error"));if(m.length>0){let f={};m.forEach(l=>{f[l.code]=l.description??"";}),c.errors=f;}return n.objectExpression({identifiers:["body","cookies","formData","headers","path","query","responseTransformer"],obj:c,shorthand:true})},pe=({config:e,handleIllegal:t,id:r,operation:s})=>e.plugins["@hey-api/sdk"]?.config.methodNameBuilder?e.plugins["@hey-api/sdk"].config.methodNameBuilder(s):t&&r.match(ue)?`${r}_`:r,Ra=({client:e,onClientImport:t,onImport:r,operation:s})=>{let o=I(),i=jf({client:e,onClientImport:t,onImport:r,operation:s});if(!X(o)){let p=Se({client:e,meta:{$ref:s.name,name:s.name},nameTransformer:yr}).name,m=s.responses.filter(f=>f.responseTypes.includes("success")).length?Se({client:e,meta:{$ref:s.name,name:s.name},nameTransformer:Ze}).name:"void";return [n.returnFunctionCall({args:[i],name:`(options?.client ?? client).${s.method.toLocaleLowerCase()}`,types:p&&m?[m,p,"ThrowOnError"]:p?["unknown",p,"ThrowOnError"]:m?[m,"unknown","ThrowOnError"]:[]})]}return Nt(o)?[n.returnFunctionCall({args:[i],name:"this.httpRequest.request"})]:j(o).name==="legacy/angular"?[n.returnFunctionCall({args:["OpenAPI","this.http",i],name:"__request"})]:[n.returnFunctionCall({args:["OpenAPI",i],name:"__request"})]},Nf=({client:e,onClientImport:t,onImport:r,onNode:s,service:o})=>{let i=I(),a=j(i),p=X(i);for(let d of o.operations)d.parameters.length&&Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:Ht,onImport:r}),p||Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:yr,onImport:r}),d.responses.filter(h=>h.responseTypes.includes("success")).length&&Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:Ze,onImport:r});let c={default:("throwOnError"in a.config?a.config.throwOnError:false)??false,extends:"boolean",name:"ThrowOnError"};if(!i.plugins["@hey-api/sdk"]?.config.asClass&&!Nt(i)){for(let d of o.operations){let y={parameters:Oa(e,d),returnType:p?Sa(e,d):void 0,statements:Ra({client:e,onClientImport:t,onImport:r,operation:d}),types:p?void 0:[c]},h=a.name==="legacy/angular"?n.anonymousFunction(y):n.arrowFunction(y),x=n.constVariable({comment:Ta(d),exportConst:true,expression:h,name:pe({config:i,handleIllegal:true,id:d.name,operation:d})});s(x);}return}let m=o.operations.map(d=>n.methodDeclaration({accessLevel:"public",comment:Ta(d),isStatic:Nt(i)===void 0&&a.name!=="legacy/angular",name:pe({config:i,id:d.name,operation:d}),parameters:Oa(e,d),returnType:p?Sa(e,d):void 0,statements:Ra({client:e,onClientImport:t,onImport:r,operation:d}),types:p?void 0:[c]}));if(!m.length)return;Nt(i)?m=[n.constructorDeclaration({multiLine:false,parameters:[{accessLevel:"public",isReadOnly:true,name:"httpRequest",type:"BaseHttpRequest"}]}),...m]:a.name==="legacy/angular"&&(m=[n.constructorDeclaration({multiLine:false,parameters:[{accessLevel:"public",isReadOnly:true,name:"http",type:"HttpClient"}]}),...m]);let f=[];m.forEach((d,y)=>{y&&f.push(n.identifier({text:`
7
+ ${JSON.stringify(s,null,2)}`);}return r};var ha=({operation:e,plugin:t})=>{if(!t.config.validator.request)return;let r=t.getPlugin(t.config.validator.request);if(!(!r||!r.api.createRequestValidator))return r.api.createRequestValidator({file:t.context.file({id:J}),operation:e,plugin:r})},xa=({operation:e,plugin:t})=>{if(!t.config.validator.response)return;let r=t.getPlugin(t.config.validator.response);if(!(!r||!r.api.createResponseValidator))return r.api.createResponseValidator({file:t.context.file({id:J}),operation:e,plugin:r})};var ba=({context:e,value:t})=>{let r=E({case:"PascalCase",value:yt(t)});return dr({config:e.config,name:r})},Pf=({operation:e,plugin:t})=>t.config.methodNameBuilder?t.config.methodNameBuilder(e):!t.config.asClass&&e.id.match(ue)?`${e.id}_`:e.id,Kt=({context:e,operation:t,plugin:r})=>{let s=new Map,o,i,a=[];if(r.config.classStructure==="auto"&&t.operationId&&(a=t.operationId.split(/[./]/).filter(Boolean),a.length>1)){let c=a.pop();i=E({case:"camelCase",value:yt(c)}),o=a.pop();}let p=r.config.instance?[r.config.instance]:t.tags??["default"];for(let c of p){let m=ba({context:e,value:o||c}),f=[c];o&&(a.includes(c)||c===o?f=[...a,o]:f=[c,...a,o]),s.set(c,{className:m,methodName:i||Pf({operation:t,plugin:r}),path:f.map(l=>ba({context:e,value:l}))});}return s},Ls=({file:e,operation:t,plugin:r,throwOnError:s})=>{let i=j(r.context.config).name==="@hey-api/client-nuxt",a=r.getPlugin("@hey-api/typescript"),p=r.context.file({id:T}),c=e.import({asType:true,module:e.relativePathToFile({context:r.context,id:T}),name:p.getName(a.api.getId({operation:t,type:"data"}))}),m=z.Options.name;if(i){let f=e.import({asType:true,module:e.relativePathToFile({context:r.context,id:T}),name:p.getName(a.api.getId({operation:t,type:i?"response":"responses"}))});return `${m}<${rr}, ${c.name||"unknown"}, ${f.name||"unknown"}, ${Me}>`}return s?`${m}<${c.name||"unknown"}, ${s}>`:c.name?`${m}<${c.name}>`:m},Ds=({file:e,isRequiredOptions:t,operation:r,plugin:s})=>{let o={argNames:[],fields:[],parameters:[]},i=s.getPlugin("@hey-api/typescript"),a={usedTypeIDs:new Set},c=j(s.context.config).name==="@hey-api/client-nuxt";if(s.config.params_EXPERIMENTAL==="experiment"){let m=s.context.file({id:T});if(r.parameters?.path)for(let f in r.parameters.path){let l=r.parameters.path[f],d=he(l.name);o.argNames.push(d),o.fields.push({in:"path",key:d}),o.parameters.push({isRequired:l.required,name:d,type:i.api.schemaToType({onRef:y=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(y)});},plugin:i,schema:l.schema,state:a})});}if(r.parameters?.query)for(let f in r.parameters.query){let l=r.parameters.query[f],d=he(l.name);o.argNames.push(d),o.fields.push({in:"path",key:d}),o.parameters.push({isRequired:l.required,name:d,type:i.api.schemaToType({onRef:y=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(y)});},plugin:i,schema:l.schema,state:a})});}if(r.body){let f="body";o.argNames.push(f),o.fields.push({in:"body"}),o.parameters.push({isRequired:r.body.required,name:f,type:i.api.schemaToType({onRef:l=>{e.import({asType:true,module:e.relativePathToFile({context:s.context,id:T}),name:m.getName(l)});},plugin:i,schema:r.body.schema,state:a})});}}return o.parameters.push({isRequired:t,name:"options",type:Ls({file:e,operation:r,plugin:s,throwOnError:c?void 0:"ThrowOnError"})}),o},Ef=e=>{if(!e)return;let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},Vs=({isRequiredOptions:e,opParameters:t,operation:r,plugin:s})=>{let o=s.context.file({id:J}),i=o.nameWithoutExtension(),a=j(s.context.config),p=a.name==="@hey-api/client-nuxt",c=s.getPlugin("@hey-api/typescript"),m=s.context.file({id:T}),f=o.import({asType:true,module:o.relativePathToFile({context:s.context,id:T}),name:m.getName(c.api.getId({operation:r,type:p?"response":"responses"}))}),l=o.import({asType:true,module:o.relativePathToFile({context:s.context,id:T}),name:m.getName(c.api.getId({operation:r,type:p?"error":"errors"}))}),d=[];if(r.body)switch(r.body.type){case "form-data":{let N=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"formDataBodySerializer"});d.push({spread:N.name});break}case "json":break;case "text":case "octet-stream":d.push({key:"bodySerializer",value:null});break;case "url-search-params":{let N=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"urlSearchParamsBodySerializer"});d.push({spread:N.name});break}}for(let N in r.parameters?.query){let Z=r.parameters.query[N];if((Z.schema.type==="array"||Z.schema.type==="tuple")&&(Z.style!=="form"||!Z.explode)){d.push({key:"querySerializer",value:[{key:"array",value:[{key:"explode",value:false},{key:"style",value:"form"}]}]});break}}let y=ha({operation:r,plugin:s});if(y&&d.push({key:"requestValidator",value:y}),s.config.transformer==="@hey-api/transformers"){let N=s.context.file({id:Lr}).identifier({$ref:On({id:r.id,type:"response"}),namespace:"value"});N.name&&(o.import({module:o.relativePathToFile({context:s.context,id:Lr}),name:N.name}),d.push({key:"responseTransformer",value:N.name}));}if(a.name==="@hey-api/client-axios"){for(let N in r.responses)if(Os({statusCode:N})==="2XX"){let Z=r.responses[N],Te=Ef(Z?.mediaType);if(Te){d.push({key:"responseType",value:Te});break}}}let h=xa({operation:r,plugin:s});h&&d.push({key:"responseValidator",value:h}),s.config.responseStyle==="data"&&d.push({key:"responseStyle",value:s.config.responseStyle});let x=ga({context:s.context,operation:r,plugin:s});x.length&&d.push({key:"security",value:n.arrayLiteralExpression({elements:x})}),d.push({key:"url",value:r.path}),d.push({spread:"options"});let S=[],O=t.argNames.length;if(O){let N=[],Z=[];for(let je of t.argNames)N.push(n.identifier({text:je}));for(let je of t.fields){let Zt=[];"in"in je&&(Zt.push({key:"in",value:je.in}),je.key&&Zt.push({key:"key",value:je.key}),je.map&&Zt.push({key:"map",value:je.map})),Z.push(n.objectExpression({obj:Zt}));}let Te=o.import({module:Q({config:s.context.config,sourceOutput:i}),name:"buildClientParams"});S.push(n.constVariable({expression:n.callExpression({functionName:Te.name,parameters:[n.arrayLiteralExpression({elements:N}),n.arrayLiteralExpression({elements:Z})]}),name:"params"})),d.push({spread:"params"});}if(r.body){let N=r.parameters?.header?.["content-type"];if(!!!N?.required){let Te=[{key:N?.name??"Content-Type",value:r.body.type==="form-data"?null:r.body.mediaType},{spread:n.propertyAccessExpression({expression:n.identifier({text:"options"}),isOptional:!e,name:"headers"})}];O&&Te.push({spread:n.propertyAccessExpression({expression:n.identifier({text:"params"}),name:"headers"})}),d.push({key:"headers",value:Te});}}let k=f.name||"unknown",_=l.name||"unknown",$=s.config.client?o.import({alias:"_heyApiClient",module:o.relativePathToFile({context:s.context,id:Ne}),name:"client"}):void 0,F=n.propertyAccessExpression({expression:n.identifier({text:"options"}),isOptional:!e,name:"client"}),W;s.config.instance?W=n.binaryExpression({left:F,operator:"??",right:n.propertyAccessExpression({expression:n.this(),name:"_client"})}):$?.name?W=n.binaryExpression({left:F,operator:"??",right:n.identifier({text:$.name})}):W=F;let L=[];return p?L.push(rr,`${k} | ${Me}`,_,Me):L.push(k,_,"ThrowOnError"),s.config.responseStyle==="data"&&L.push(n.stringLiteral({text:s.config.responseStyle})),S.push(n.returnFunctionCall({args:[n.objectExpression({identifiers:["responseTransformer"],obj:d})],name:n.propertyAccessExpression({expression:W,name:n.identifier({text:r.method})}),types:L})),S};var Wt=({meta:e,onImport:t,...r})=>{if(!e)return {created:false,name:""};let{created:s,name:o}=Se({meta:e,...r});return o&&t(o),{created:s,name:o}},Aa=e=>`${e}ModelResponseTransformer`,Ht=e=>`${E({case:"PascalCase",value:e})}Data`,yr=e=>`${E({case:"PascalCase",value:e})}Error`,_s=e=>`${e}Transformer`,Ze=e=>`${E({case:"PascalCase",value:e})}Response`,Bs=({importedType:e,throwOnError:t})=>{let r=z.OptionsLegacyParser.name;return t?`${r}<${e||"unknown"}, ${t}>`:e?`${r}<${e}>`:r},Oa=(e,t)=>{let r=I(),{name:s}=Se({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Ht}),o=He(t.parameters);if(!X(r))return [{isRequired:o,name:"options",type:Bs({importedType:s,throwOnError:"ThrowOnError"})}];if(!t.parameters.length)return [];let i=a=>{if(a.default!==void 0)return JSON.stringify(a.default,null,4)};return r.useOptions?[{default:o?void 0:{},name:"data",type:s}]:t.parameters.map(a=>{let p=`${s}['${a.name}']`;return {default:a?.default,isRequired:(!a.isRequired&&!i(a)?"?":"")=="",name:a.name,type:p}})},Sa=(e,t)=>{let r=I(),s=n.typeNode("void");if(t.responses.filter(a=>a.responseTypes.includes("success")).length){let{name:a}=Se({client:e,meta:{$ref:t.name,name:t.name},nameTransformer:Ze});s=n.typeUnionNode({types:[a]});}return r.useOptions&&r.plugins["@hey-api/sdk"]?.config.response==="response"&&(s=n.typeNode("ApiResult",[s])),j(r).name==="legacy/angular"?s=n.typeNode("Observable",[s]):s=n.typeNode("CancelablePromise",[s]),s},Ta=e=>{let t=I();if(!X(t))return [e.deprecated&&"@deprecated",e.summary&&B(e.summary),e.description&&B(e.description)];let r=[];e.parameters.length&&(t.useOptions?r=["@param data The data for the request.",...e.parameters.map(i=>`@param data.${i.name} ${i.description?B(i.description):""}`)]:r=e.parameters.map(i=>`@param ${i.name} ${i.description?B(i.description):""}`));let s=e.responses.filter(i=>i.responseTypes.includes("success"));return [e.deprecated&&"@deprecated",e.summary&&B(e.summary),e.description&&B(e.description),...r,...s.map(i=>`@returns ${i.type} ${i.description?B(i.description):""}`),"@throws ApiError"]},jf=({client:e,onClientImport:t,onImport:r,operation:s})=>{let o=I(),i=Ze(s.name),{name:a}=Se({client:e,meta:{$ref:`transformers/${i}`,name:i},nameTransformer:_s});if(a&&r(a),!X(o)){let f=[{spread:"options"}],d=s.parameters.filter(y=>y.in==="body"||y.in==="formData").map(y=>y.mediaType||(y.in==="formData"?"multipart/form-data":void 0)).filter(Boolean).filter(St);return d.length===1&&(d[0]==="multipart/form-data"&&(f=[...f,{spread:"formDataBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:null},{spread:"options?.headers"}]}],t?.("formDataBodySerializer")),d[0]==="application/x-www-form-urlencoded"&&(f=[...f,{spread:"urlSearchParamsBodySerializer"},{key:"headers",value:[{key:"Content-Type",value:d[0]},{spread:"options?.headers"}]}],t?.("urlSearchParamsBodySerializer"))),f=[...f,{key:"url",value:s.path}],a&&(f=[...f,{key:"responseTransformer",value:a}]),n.objectExpression({identifiers:["responseTransformer"],obj:f})}let p=f=>f.reduce((l,d)=>{let y=d.prop,h=o.useOptions?`data.${d.name}`:d.name;return y===h?l[y]=y:et(y)===y?l[y]=h:l[`'${y}'`]=h,l},{}),c={method:s.method,url:s.path};s.parametersPath.length&&(c.path=p(s.parametersPath)),s.parametersCookie.length&&(c.cookies=p(s.parametersCookie)),s.parametersHeader.length&&(c.headers=p(s.parametersHeader)),s.parametersQuery.length&&(c.query=p(s.parametersQuery)),s.parametersForm.length&&(c.formData=p(s.parametersForm)),s.parametersBody&&(s.parametersBody.in==="formData"&&(o.useOptions?c.formData=`data.${s.parametersBody.name}`:c.formData=s.parametersBody.name),s.parametersBody.in==="body"&&(o.useOptions?c.body=`data.${s.parametersBody.name}`:c.body=s.parametersBody.name)),s.parametersBody?.mediaType&&(c.mediaType=s.parametersBody?.mediaType),s.responseHeader&&(c.responseHeader=s.responseHeader),a&&(c.responseTransformer=a);let m=s.responses.filter(f=>f.responseTypes.includes("error"));if(m.length>0){let f={};m.forEach(l=>{f[l.code]=l.description??"";}),c.errors=f;}return n.objectExpression({identifiers:["body","cookies","formData","headers","path","query","responseTransformer"],obj:c,shorthand:true})},pe=({config:e,handleIllegal:t,id:r,operation:s})=>e.plugins["@hey-api/sdk"]?.config.methodNameBuilder?e.plugins["@hey-api/sdk"].config.methodNameBuilder(s):t&&r.match(ue)?`${r}_`:r,Ra=({client:e,onClientImport:t,onImport:r,operation:s})=>{let o=I(),i=jf({client:e,onClientImport:t,onImport:r,operation:s});if(!X(o)){let p=Se({client:e,meta:{$ref:s.name,name:s.name},nameTransformer:yr}).name,m=s.responses.filter(f=>f.responseTypes.includes("success")).length?Se({client:e,meta:{$ref:s.name,name:s.name},nameTransformer:Ze}).name:"void";return [n.returnFunctionCall({args:[i],name:`(options?.client ?? client).${s.method.toLocaleLowerCase()}`,types:p&&m?[m,p,"ThrowOnError"]:p?["unknown",p,"ThrowOnError"]:m?[m,"unknown","ThrowOnError"]:[]})]}return Nt(o)?[n.returnFunctionCall({args:[i],name:"this.httpRequest.request"})]:j(o).name==="legacy/angular"?[n.returnFunctionCall({args:["OpenAPI","this.http",i],name:"__request"})]:[n.returnFunctionCall({args:["OpenAPI",i],name:"__request"})]},Nf=({client:e,onClientImport:t,onImport:r,onNode:s,service:o})=>{let i=I(),a=j(i),p=X(i);for(let d of o.operations)d.parameters.length&&Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:Ht,onImport:r}),p||Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:yr,onImport:r}),d.responses.filter(h=>h.responseTypes.includes("success")).length&&Wt({client:e,meta:{$ref:d.name,name:d.name},nameTransformer:Ze,onImport:r});let c={default:("throwOnError"in a.config?a.config.throwOnError:false)??false,extends:"boolean",name:"ThrowOnError"};if(!i.plugins["@hey-api/sdk"]?.config.asClass&&!Nt(i)){for(let d of o.operations){let y={parameters:Oa(e,d),returnType:p?Sa(e,d):void 0,statements:Ra({client:e,onClientImport:t,onImport:r,operation:d}),types:p?void 0:[c]},h=a.name==="legacy/angular"?n.anonymousFunction(y):n.arrowFunction(y),x=n.constVariable({comment:Ta(d),exportConst:true,expression:h,name:pe({config:i,handleIllegal:true,id:d.name,operation:d})});s(x);}return}let m=o.operations.map(d=>n.methodDeclaration({accessLevel:"public",comment:Ta(d),isStatic:Nt(i)===void 0&&a.name!=="legacy/angular",name:pe({config:i,id:d.name,operation:d}),parameters:Oa(e,d),returnType:p?Sa(e,d):void 0,statements:Ra({client:e,onClientImport:t,onImport:r,operation:d}),types:p?void 0:[c]}));if(!m.length)return;Nt(i)?m=[n.constructorDeclaration({multiLine:false,parameters:[{accessLevel:"public",isReadOnly:true,name:"httpRequest",type:"BaseHttpRequest"}]}),...m]:a.name==="legacy/angular"&&(m=[n.constructorDeclaration({multiLine:false,parameters:[{accessLevel:"public",isReadOnly:true,name:"http",type:"HttpClient"}]}),...m]);let f=[];m.forEach((d,y)=>{y&&f.push(n.identifier({text:`
8
8
  `})),f.push(d);});let l=n.classDeclaration({decorator:a.name==="legacy/angular"?{args:[{providedIn:"root"}],name:"Injectable"}:void 0,exportClass:true,name:dr({config:i,name:o.name}),nodes:f});s(l);},Ia=({client:e,files:t,plugin:r})=>{let s=I(),o=X(s),i="sdk";if(t.sdk=new Fe({dir:s.output.path,exportFromIndex:r.config.exportFromIndex,id:"sdk",name:`${i}.ts`}),!o)t.sdk.import({module:Q({config:s,sourceOutput:i}),name:"createClient"}),t.sdk.import({module:Q({config:s,sourceOutput:i}),name:"createConfig"}),t.sdk.import({...z.OptionsLegacyParser,module:Q({config:s,sourceOutput:i})});else if(j(s).name==="legacy/angular"?(t.sdk.import({module:"@angular/core",name:"Injectable"}),Nt(s)||t.sdk.import({module:"@angular/common/http",name:"HttpClient"}),t.sdk.import({asType:true,module:"rxjs",name:"Observable"})):t.sdk.import({asType:true,module:"./core/CancelablePromise",name:"CancelablePromise"}),s.plugins["@hey-api/sdk"]?.config.response==="response"&&t.sdk.import({asType:true,module:"./core/ApiResult",name:"ApiResult"}),Nt(s)){let p=j(s);t.sdk.import({asType:p.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(!o){let a=j(s),p=n.constVariable({exportConst:true,expression:n.callExpression({functionName:"createClient",parameters:[n.callExpression({functionName:"createConfig",parameters:["throwOnError"in a&&a.throwOnError?n.objectExpression({obj:[{key:"throwOnError",value:true}]}):void 0]})]}),name:"client"});t.sdk.add(p);}for(let a of e.services)Nf({client:e,onClientImport:p=>{t.sdk.import({module:Q({config:s,sourceOutput:i}),name:p});},onImport:p=>{t.sdk.import({asType:!p.endsWith("Transformer"),module:`./${t.types.nameWithoutExtension()}`,name:p});},onNode:p=>{t.sdk.add(p);},service:a});};var Pa=({plugin:e})=>{let t=e.getPlugin("@hey-api/sdk");if(!t)throw new Error("@hey-api/sdk plugin is required for @hey-api/angular-resource plugin");let r=e.createFile({id:e.name,path:e.output});e.config.asClass&&r.import({module:"@angular/core",name:"Injectable"}),r.import({module:"@angular/core",name:"resource"}),r.import({module:r.relativePathToFile({context:e.context,id:J}),name:"Options"}),e.config.asClass?Cf({file:r,plugin:e,sdkPlugin:t}):kf({file:r,plugin:e,sdkPlugin:t});},Cf=({file:e,plugin:t,sdkPlugin:r})=>{let s=new Map,o=new Set;t.forEach("operation",({operation:a})=>{let p=$e({context:t.context,operation:a}),c=Kt({context:t.context,operation:a,plugin:r});for(let m of c.values())m.path.forEach((f,l)=>{s.has(f)||s.set(f,{className:f,classes:new Set,methods:new Set,nodes:[],root:!l});let d=m.path[l-1];if(d&&d!==f){let O=s.get(d);O.classes.add(f),s.set(d,O);}if(!(m.path.length===l+1))return;let h=s.get(f),x=t.config.methodNameBuilder(a);if(h.methods.has(x))return;let S=vf({file:e,isRequiredOptions:p,methodName:x,operation:a,plugin:t,sdkPlugin:r});h.nodes.length?h.nodes.push(n.identifier({text:`
9
9
  `}),S):h.nodes.push(S),h.methods.add(x),s.set(f,h);});});let i=a=>{if(o.has(a.className))return;if(a.classes.size)for(let c of a.classes){let m=s.get(c);i(m),a.nodes.push(n.propertyDeclaration({initializer:n.newExpression({argumentsArray:[],expression:n.identifier({text:t.config.classNameBuilder(m.className)})}),name:E({case:"camelCase",value:m.className})}));}let p=n.classDeclaration({decorator:a.root?{args:[{providedIn:"root"}],name:"Injectable"}:void 0,exportClass:a.root,name:t.config.classNameBuilder(a.className),nodes:a.nodes});e.add(p),o.add(a.className);};for(let a of s.values())i(a);},kf=({file:e,plugin:t,sdkPlugin:r})=>{t.forEach("operation",({operation:s})=>{let o=$e({context:t.context,operation:s}),i=wf({file:e,functionName:t.config.methodNameBuilder(s),isRequiredOptions:o,operation:s,plugin:t,sdkPlugin:r});e.add(i);});},Ea=({file:e,operation:t,plugin:r,sdkPlugin:s})=>{let o;if(s.config.asClass){let i=Kt({context:r.context,operation:t,plugin:s}),a=Array.from(i.values())[0];if(a){let p=a.path[0],c=e.import({module:e.relativePathToFile({context:r.context,id:J}),name:p}),m=n.identifier({text:c.name});for(let f=1;f<a.path.length;f++){let l=a.path[f];l&&(m=n.propertyAccessExpression({expression:m,name:E({case:"camelCase",value:l})}));}m=n.propertyAccessExpression({expression:m,name:a.methodName}),o=n.callExpression({functionName:m,parameters:[n.identifier({text:"params"})]});}}else {let i=pe({config:r.context.config,handleIllegal:true,id:t.id,operation:t}),a=e.import({module:e.relativePathToFile({context:r.context,id:J}),name:i});o=n.callExpression({functionName:a.name,parameters:[n.identifier({text:"params"})]});}return n.callExpression({functionName:"resource",parameters:[n.objectExpression({obj:[{key:"loader",value:n.arrowFunction({async:true,parameters:[{destructure:[{name:"params"}],type:void 0}],statements:[n.returnStatement({expression:o})]})},{key:"params",value:n.arrowFunction({parameters:[],statements:[n.returnStatement({expression:n.identifier({text:"options"})})]})}]})]})},vf=({file:e,isRequiredOptions:t,methodName:r,operation:s,plugin:o,sdkPlugin:i})=>{let a=o.getPlugin("@hey-api/typescript"),p=o.context.file({id:T}),c=e.import({asType:true,module:e.relativePathToFile({context:o.context,id:T}),name:p.getName(a.api.getId({operation:s,type:"data"}))});return n.methodDeclaration({accessLevel:"public",comment:ge({operation:s}),name:r,parameters:[{isRequired:t,name:"options",type:`Options<${c.name||"unknown"}, ThrowOnError>`}],returnType:void 0,statements:[n.returnStatement({expression:Ea({file:e,operation:s,plugin:o,sdkPlugin:i})})],types:[{default:false,extends:"boolean",name:"ThrowOnError"}]})},wf=({file:e,functionName:t,isRequiredOptions:r,operation:s,plugin:o,sdkPlugin:i})=>{let a=o.getPlugin("@hey-api/typescript"),p=o.context.file({id:T}),c=e.import({asType:true,module:e.relativePathToFile({context:o.context,id:T}),name:p.getName(a.api.getId({operation:s,type:"data"}))});return n.constVariable({comment:ge({operation:s}),exportConst:true,expression:n.arrowFunction({parameters:[{isRequired:r,name:"options",type:`Options<${c.name||"unknown"}, ThrowOnError>`}],statements:[n.returnStatement({expression:Ea({file:e,operation:s,plugin:o,sdkPlugin:i})})],types:[{default:false,extends:"boolean",name:"ThrowOnError"}]}),name:t})};var Tn={config:{asClass:false,classNameBuilder(e){return e+"Resources"},methodNameBuilder(e){return String(e.id)+"Resource"}},dependencies:["@hey-api/client-angular","@hey-api/sdk","@hey-api/typescript"],handler:Pa,name:"@hey-api/angular-resource",output:"@hey-api/angular-resource"};var Ue={baseUrl:true,bundle:true,exportFromIndex:false},Qe={dependencies:["@hey-api/typescript"],output:"client",tags:["client"]};var $f=({plugin:e})=>{let{baseUrl:t}=e.config;if(t===false)return;if(typeof t=="string")return t;let{servers:r}=e.context.ir;if(r)return r[typeof t=="number"?t:0]?.url},ja=({plugin:e})=>{let t=e.context.file({id:Ne}),r=Q({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),s=t.import({module:r,name:"createClient"}),o=t.import({module:r,name:"createConfig"}),i=e.getPlugin("@hey-api/typescript"),a=e.context.file({id:T}),p=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:T}),name:a.getName(i.api.getId({type:"ClientOptions"}))}),c=e.config.runtimeConfigPath?t.import({module:t.relativePathToFile({context:e.context,id:e.config.runtimeConfigPath}),name:"createClientConfig"}):void 0,m=[],f=$f({plugin:e});if(f){let y=_e(f);if(y.protocol&&y.host&&!f.includes("{"))m.push({key:Re(e.context.config),value:f});else if(f!=="/"&&f.startsWith("/")){let h=f.endsWith("/")?f.slice(0,-1):f;m.push({key:Re(e.context.config),value:h});}}"throwOnError"in e.config&&e.config.throwOnError&&m.push({key:"throwOnError",value:true});let l=[n.callExpression({functionName:o.name,parameters:m.length?[n.objectExpression({obj:m})]:void 0,types:p.name?[n.typeReferenceNode({typeName:p.name})]:void 0})],d=n.constVariable({exportConst:true,expression:n.callExpression({functionName:s.name,parameters:c?[n.callExpression({functionName:c.name,parameters:l})]:l}),name:"client"});t.add(d);};var Na=({plugin:e})=>{let t=e.context.file({id:Ne}),r=Q({config:e.context.config,sourceOutput:t.nameWithoutExtension()}),s=e.getPlugin("@hey-api/typescript"),o=e.context.file({id:T}),i=t.import({asType:true,module:t.relativePathToFile({context:e.context,id:T}),name:o.getName(s.api.getId({type:"ClientOptions"}))}),a=t.import({asType:true,module:r,name:"Config"}),p=t.import({alias:"DefaultClientOptions",asType:true,module:r,name:"ClientOptions"}),c=n.typeReferenceNode({typeName:p.name}),m=n.typeReferenceNode({typeName:"T"}),f=n.typeAliasDeclaration({comment:["The `createClientConfig()` function will be called on client initialization","and the returned object will become the client's initial configuration.","","You may want to initialize your client this way instead of calling","`setConfig()`. This is useful for example if you're using Next.js","to ensure your client always has the correct values."],exportType:true,name:"CreateClientConfig",type:n.functionTypeNode({parameters:[n.parameterDeclaration({name:"override",required:false,type:n.typeReferenceNode({typeArguments:[n.typeIntersectionNode({types:[c,m]})],typeName:a.name})})],returnType:n.typeReferenceNode({typeArguments:[n.typeIntersectionNode({types:[n.typeReferenceNode({typeArguments:[c],typeName:"Required"}),m]})],typeName:a.name})}),typeParameters:[{default:i.name?n.typeReferenceNode({typeName:i.name}):void 0,extends:c,name:"T"}]});t.add(f);};var Xe=({plugin:e})=>{e.createFile({id:Ne,path:e.output}),Na({plugin:e}),ja({plugin:e});};var Rn={...Qe,config:{...Ue,throwOnError:false},handler:Xe,name:"@hey-api/client-angular"};var An={...Qe,config:{...Ue,throwOnError:false},handler:Xe,name:"@hey-api/client-axios"};var In={...Qe,config:{...Ue,throwOnError:false},handler:Xe,name:"@hey-api/client-fetch"};var Pn={...Qe,config:{...Ue,throwOnError:false},handler:Xe,name:"@hey-api/client-next"};var En={...Qe,config:Ue,handler:Xe,name:"@hey-api/client-nuxt"};var jn={config:{},handler:()=>{},name:"legacy/angular",output:"client",tags:["client"]};var Nn={config:{},handler:()=>{},name:"legacy/axios",output:"client",tags:["client"]};var Cn={config:{},handler:()=>{},name:"legacy/fetch",output:"client",tags:["client"]};var kn={config:{},handler:()=>{},name:"legacy/node",output:"client",tags:["client"]};var vn={config:{},handler:()=>{},name:"legacy/xhr",output:"client",tags:["client"]};var wn="schemas",zs=({plugin:e,schema:t})=>{e.config.type==="form"&&(t.description&&delete t.description,t["x-enum-descriptions"]&&delete t["x-enum-descriptions"],t["x-enum-varnames"]&&delete t["x-enum-varnames"],t["x-enumNames"]&&delete t["x-enumNames"],t.title&&delete t.title);},gr=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>gr({context:e,plugin:t,schema:o}));let s=structuredClone(r);if(s.$ref)return s.$ref=decodeURI(s.$ref),s;if(zs({plugin:t,schema:s}),s.additionalProperties&&typeof s.additionalProperties!="boolean"&&(s.additionalProperties=gr({context:e,plugin:t,schema:s.additionalProperties})),s.allOf&&(s.allOf=s.allOf.map(o=>gr({context:e,plugin:t,schema:o}))),s.items&&(s.items=gr({context:e,plugin:t,schema:s.items})),s.properties)for(let o in s.properties){let i=s.properties[o];typeof i!="boolean"&&(s.properties[o]=gr({context:e,plugin:t,schema:i}));}return s},Rt=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>Rt({context:e,plugin:t,schema:o}));let s=structuredClone(r);if("$ref"in s)return s.$ref=decodeURI(s.$ref),s;if(zs({plugin:t,schema:s}),s.additionalProperties&&typeof s.additionalProperties!="boolean"&&(s.additionalProperties=Rt({context:e,plugin:t,schema:s.additionalProperties})),s.allOf&&(s.allOf=s.allOf.map(o=>Rt({context:e,plugin:t,schema:o}))),s.anyOf&&(s.anyOf=s.anyOf.map(o=>Rt({context:e,plugin:t,schema:o}))),s.items&&(s.items=Rt({context:e,plugin:t,schema:s.items})),s.oneOf&&(s.oneOf=s.oneOf.map(o=>Rt({context:e,plugin:t,schema:o}))),s.properties)for(let o in s.properties){let i=s.properties[o];typeof i!="boolean"&&(s.properties[o]=Rt({context:e,plugin:t,schema:i}));}return s},pt=({context:e,plugin:t,schema:r})=>{if(Array.isArray(r))return r.map(o=>pt({context:e,plugin:t,schema:o}));let s=structuredClone(r);if(zs({plugin:t,schema:s}),s.$ref&&(s.$ref=decodeURI(s.$ref)),s.additionalProperties&&typeof s.additionalProperties!="boolean"&&(s.additionalProperties=pt({context:e,plugin:t,schema:s.additionalProperties})),s.allOf&&(s.allOf=s.allOf.map(o=>pt({context:e,plugin:t,schema:o}))),s.anyOf&&(s.anyOf=s.anyOf.map(o=>pt({context:e,plugin:t,schema:o}))),s.items&&(s.items=pt({context:e,plugin:t,schema:s.items})),s.oneOf&&(s.oneOf=s.oneOf.map(o=>pt({context:e,plugin:t,schema:o}))),s.prefixItems&&(s.prefixItems=s.prefixItems.map(o=>pt({context:e,plugin:t,schema:o}))),s.properties)for(let o in s.properties){let i=s.properties[o];typeof i!="boolean"&&(s.properties[o]=pt({context:e,plugin:t,schema:i}));}return s},Ks=({name:e,plugin:t,schema:r})=>{let s="";return t.config.nameBuilder&&(typeof t.config.nameBuilder=="function"?s=t.config.nameBuilder(e,r):s=t.config.nameBuilder.replace("{{name}}",e)),s||(s=`${e}Schema`),he(s)},Hf=({context:e,plugin:t})=>{if(e.spec.definitions)for(let r in e.spec.definitions){let s=e.spec.definitions[r],o=gr({context:e,plugin:t,schema:s}),i=n.constVariable({assertion:"const",exportConst:true,expression:n.objectExpression({obj:o}),name:Ks({name:r,plugin:t,schema:s})});e.file({id:wn}).add(i);}},Zf=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let s=e.spec.components.schemas[r],o=Rt({context:e,plugin:t,schema:s}),i=n.constVariable({assertion:"const",exportConst:true,expression:n.objectExpression({obj:o}),name:Ks({name:r,plugin:t,schema:s})});e.file({id:wn}).add(i);}},Uf=({context:e,plugin:t})=>{if(e.spec.components)for(let r in e.spec.components.schemas){let s=e.spec.components.schemas[r],o=pt({context:e,plugin:t,schema:s}),i=n.constVariable({assertion:"const",exportConst:true,expression:n.objectExpression({obj:o}),name:Ks({name:r,plugin:t,schema:s})});e.file({id:wn}).add(i);}},Ca=({plugin:e})=>{if(e.createFile({id:wn,path:e.output}),"swagger"in e.context.spec){Hf({context:e.context,plugin:e});return}switch(e.context.spec.openapi){case "3.0.0":case "3.0.1":case "3.0.2":case "3.0.3":case "3.0.4":Zf({context:e.context,plugin:e});break;case "3.1.0":case "3.1.1":Uf({context:e.context,plugin:e});break;default:throw new Error("Unsupported OpenAPI specification")}};var Ws=(e,t)=>{let r=I();if(Array.isArray(e))return e.map(o=>Ws(o));if(typeof e!="object"||e===null)return e;let s={...e};return Object.entries(s).forEach(([o,i])=>{if(r.plugins["@hey-api/schemas"]?.config.type==="form"&&["description","x-enum-descriptions","x-enum-varnames","x-enumNames","title"].includes(o)&&t!=="properties"){delete s[o];return}o==="$ref"&&typeof i=="string"&&(s[o]=decodeURIComponent(i)),i&&typeof i=="object"&&(s[o]=Ws(i,o));}),s},Qf=(e,t)=>{let r=I(),s=Mt(e),o=r.plugins["@hey-api/schemas"];return o?.config.nameBuilder?typeof o.config.nameBuilder=="function"?o.config.nameBuilder(s,t):o.config.nameBuilder.replace("{{name}}",s):`${s}Schema`},ka=({files:e,openApi:t,plugin:r})=>{let s=I();e.schemas=new Fe({dir:s.output.path,exportFromIndex:r.config.exportFromIndex,id:"schemas",name:"schemas.ts"});let o=(i,a)=>{let p=Ws(a),c=n.objectExpression({obj:p}),m=n.constVariable({assertion:"const",exportConst:true,expression:c,name:Qf(i,a)});e.schemas.add(m);};"swagger"in t&&Object.entries(t.definitions??{}).forEach(([i,a])=>{o(i,a);}),"openapi"in t&&Object.entries(t.components?.schemas??{}).forEach(([i,a])=>{o(i,a);});};var qn={config:{exportFromIndex:false,nameBuilder:e=>`${e}Schema`,type:"json"},handler:Ca,handlerLegacy:ka,name:"@hey-api/schemas",output:"schemas"};var va=({clientOptions:e,plugin:t})=>{let r=t.context.file({id:J}),o=j(t.context.config).name==="@hey-api/client-nuxt",i=Q({config:t.context.config,sourceOutput:r.nameWithoutExtension()}),a=r.import({asType:true,module:i,name:"TDataShape"}),p=r.import({asType:true,module:i,name:"Client"}),c=n.typeAliasDeclaration({exportType:true,name:"Options",type:n.typeIntersectionNode({types:[n.typeReferenceNode({typeArguments:o?[n.typeReferenceNode({typeName:"TComposable"}),n.typeReferenceNode({typeName:"TData"}),n.typeReferenceNode({typeName:Ss}),n.typeReferenceNode({typeName:Me})]:[n.typeReferenceNode({typeName:"TData"}),n.typeReferenceNode({typeName:"ThrowOnError"})],typeName:e.name}),n.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:!t.config.client,name:"client",type:n.typeReferenceNode({typeName:p.name})},{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:false,name:"meta",type:n.typeReferenceNode({typeArguments:[n.keywordTypeNode({keyword:"string"}),n.keywordTypeNode({keyword:"unknown"})],typeName:"Record"})}],useLegacyResolution:false})]}),typeParameters:o?[n.typeParameterDeclaration({constraint:n.typeReferenceNode({typeName:"Composable"}),name:"TComposable"}),n.typeParameterDeclaration({constraint:n.typeReferenceNode({typeName:a.name}),defaultType:n.typeReferenceNode({typeName:a.name}),name:"TData"}),n.typeParameterDeclaration({defaultType:n.keywordTypeNode({keyword:"unknown"}),name:Ss}),n.typeParameterDeclaration({defaultType:n.keywordTypeNode({keyword:"undefined"}),name:Me})]:[n.typeParameterDeclaration({constraint:n.typeReferenceNode({typeName:a.name}),defaultType:n.typeReferenceNode({typeName:a.name}),name:"TData"}),n.typeParameterDeclaration({constraint:n.keywordTypeNode({keyword:"boolean"}),defaultType:n.keywordTypeNode({keyword:"boolean"}),name:"ThrowOnError"})]});r.add(c);};var Jf=({plugin:e})=>{let t=n.expressionToStatement({expression:n.binaryExpression({left:n.propertyAccessExpression({expression:n.this(),name:"_client"}),operator:"=",right:n.propertyAccessExpression({expression:n.identifier({text:"args"}),name:"client"})})});return [n.propertyDeclaration({initializer:e.config.client?n.identifier({text:"_heyApiClient"}):void 0,modifier:"protected",name:"_client",type:b__default.default.factory.createTypeReferenceNode("Client")}),n.identifier({text:`
10
10
  `}),n.constructorDeclaration({multiLine:true,parameters:[{isRequired:!e.config.client,name:"args",type:n.typeInterfaceNode({properties:[{isRequired:!e.config.client,name:"client",type:"Client"}],useLegacyResolution:false})}],statements:[e.config.client?n.ifStatement({expression:n.propertyAccessExpression({expression:n.identifier({text:"args"}),isOptional:true,name:"client"}),thenStatement:n.block({statements:[t]})}):t]})]},Yf=({plugin:e})=>{let t=j(e.context.config),r=t.name==="@hey-api/client-angular",s=t.name==="@hey-api/client-nuxt",o=e.context.file({id:J}),i=new Map,a=new Set,p=e.config.instance?Jf({plugin:e}):[];e.forEach("operation",({operation:m})=>{let f=$e({context:e.context,operation:m}),l=e.getPlugin("@hey-api/typescript"),d=e.context.file({id:T}),y=o.import({asType:true,module:o.relativePathToFile({context:e.context,id:T}),name:s?d.getName(l.api.getId({operation:m,type:"response"})):void 0}),h=Kt({context:e.context,operation:m,plugin:e});for(let x of h.values())x.path.forEach((S,O)=>{i.has(S)||i.set(S,{className:S,classes:new Set,methods:new Set,nodes:[],root:!O});let k=x.path[O-1];if(k&&k!==S){let N=i.get(k);N.classes.add(S),i.set(k,N);}if(!(x.path.length===O+1))return;let $=i.get(S);if($.methods.has(x.methodName))return;let F=Ds({file:o,isRequiredOptions:f,operation:m,plugin:e}),W=Vs({isRequiredOptions:f,opParameters:F,operation:m,plugin:e}),L=n.methodDeclaration({accessLevel:"public",comment:ge({operation:m}),isStatic:!e.config.instance,name:x.methodName,parameters:F.parameters,returnType:void 0,statements:W,types:s?[{extends:n.typeNode("Composable"),name:rr},{default:y.name?n.typeReferenceNode({typeName:y.name}):n.typeNode("undefined"),extends:y.name?n.typeReferenceNode({typeName:y.name}):void 0,name:Me}]:[{default:("throwOnError"in t.config?t.config.throwOnError:false)??false,extends:"boolean",name:"ThrowOnError"}]});$.nodes.length?$.nodes.push(n.identifier({text:`