openapi-sync 4.0.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,84 +1,777 @@
1
- import U from'fs';import M from'path';import*as ae from'js-yaml';import Kt from'lodash.isequal';import xe from'lodash.get';import Wt from'axios';import Dt from'axios-retry';import Qt from'@apidevtools/swagger-parser';import {CurlGenerator}from'curl-generator';var re=(u=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(u,{get:(d,e)=>(typeof require!="undefined"?require:d)[e]}):u)(function(u){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+u+'" is not supported')});var ne=(u,d,e)=>new Promise((j,b)=>{var v=O=>{try{y(e.next(O));}catch(E){b(E);}},m=O=>{try{y(e.throw(O));}catch(E){b(E);}},y=O=>O.done?j(O.value):Promise.resolve(O.value).then(v,m);y((e=e.apply(u,d)).next());});var Xt=/^[A-Za-z_$][A-Za-z0-9_$]*$/,Et=/[A-Za-z0-9_$]/;var ct=u=>["object"].includes(typeof u)&&!(u instanceof Blob),Gt=u=>{try{return ae.load(u),!0}catch(d){let e=d;if(e instanceof ae.YAMLException)return false;throw e}},Tt=u=>{if(Gt(u)){let d=ae.load(u),e=JSON.stringify(d,null,2);return JSON.parse(e)}},K=u=>u.substring(0,1).toUpperCase()+u.substring(1),St=(u,d)=>{let e=u.split("/"),j=`${K(d)}`,b=[];return e.forEach(v=>{if(v[0]==="{"&&v[v.length-1]==="}"){let y=v.replace(/{/,"").replace(/}/,"");b.push(y),v=`$${y}`;}else if(v[0]==="<"&&v[v.length-1]===">"){let y=v.replace(/</,"").replace(/>/,"");b.push(y),v=`$${y}`;}else if(v[0]===":"){let y=v.replace(/:/,"");b.push(y),v=`$${y}`;}let m="";v.split("").forEach(y=>{let O=y;Et.test(y)||(O="/"),m+=O;}),m.split("/").forEach(y=>{j+=K(y);});}),{name:j,variables:b,pathParts:e}},se=(u,d=1)=>{let e="{",j=Object.keys(u);for(let b=0;b<j.length;b++){let v=j[b],m=u[v];if(e+=`
2
- `+" ".repeat(d)+v+": ",Array.isArray(m)){e+="[";for(let y=0;y<m.length;y++){let O=m[y];typeof O=="object"&&O!==null?e+=se(O,d+1):e+=typeof O=="string"?`"${O}"`:O,y<m.length-1&&(e+=", ");}e+="]";}else typeof m=="object"&&m!==null?e+=""+se(m,d+1):e+=m.split(`
3
- `).filter(y=>y.trim()!=="").join(`
4
- ${" ".repeat(d)}`);b<j.length-1&&(e+=", ");}return e+=`
5
- ${" ".repeat(d-1)}}`,e},ue=(u,d=1)=>`
1
+ import {c,d,a,b}from'./chunk-PUWCZVB7.mjs';import se from'fs';import D from'path';import*as Te from'js-yaml';import cn from'lodash.isequal';import Ge from'lodash.get';import yn from'axios';import fn from'axios-retry';import hn from'@apidevtools/swagger-parser';import {CurlGenerator}from'curl-generator';var xn=/^[A-Za-z_$][A-Za-z0-9_$]*$/,Dt=/[A-Za-z0-9_$]/;var Wt=u=>["object"].includes(typeof u)&&!(u instanceof Blob),pn=u=>{try{return Te.load(u),!0}catch(i){let n=i;if(n instanceof Te.YAMLException)return false;throw n}},Ht=u=>{if(pn(u)){let i=Te.load(u),n=JSON.stringify(i,null,2);return JSON.parse(n)}},ue=u=>u.substring(0,1).toUpperCase()+u.substring(1),Kt=(u,i)=>{let n=u.split("/"),e=`${ue(i)}`,s=[];return n.forEach(t=>{if(t[0]==="{"&&t[t.length-1]==="}"){let r=t.replace(/{/,"").replace(/}/,"");s.push(r),t=`$${r}`;}else if(t[0]==="<"&&t[t.length-1]===">"){let r=t.replace(/</,"").replace(/>/,"");s.push(r),t=`$${r}`;}else if(t[0]===":"){let r=t.replace(/:/,"");s.push(r),t=`$${r}`;}let o="";t.split("").forEach(r=>{let f=r;Dt.test(r)||(f="/"),o+=f;}),o.split("/").forEach(r=>{e+=ue(r);});}),{name:e,variables:s,pathParts:n}},Ee=(u,i=1)=>{let n="{",e=Object.keys(u);for(let s=0;s<e.length;s++){let t=e[s],o=u[t];if(n+=`
2
+ `+" ".repeat(i)+t+": ",Array.isArray(o)){n+="[";for(let r=0;r<o.length;r++){let f=o[r];typeof f=="object"&&f!==null?n+=Ee(f,i+1):n+=typeof f=="string"?`"${f}"`:f,r<o.length-1&&(n+=", ");}n+="]";}else typeof o=="object"&&o!==null?n+=""+Ee(o,i+1):n+=o.split(`
3
+ `).filter(r=>r.trim()!=="").join(`
4
+ ${" ".repeat(i)}`);s<e.length-1&&(n+=", ");}return n+=`
5
+ ${" ".repeat(i-1)}}`,n},ve=(u,i=1)=>`
6
6
  \`\`\`typescript
7
- ${" ".repeat(d)} ${u.split(`
8
- `).filter(e=>e.trim()!=="").join(`
9
- ${" ".repeat(d)} `)}
10
- \`\`\``;function er(u,d){return d.split(".").reduce((j,b)=>j&&j[b]!==void 0?j[b]:void 0,u)}var Ut=(u,d="CUSTOM CODE")=>{let e=`// \u{1F512} ${d} START`,j=`// \u{1F512} ${d} END`,b={beforeGenerated:"",afterGenerated:""},v=0,m=[];for(;v<u.length;){let y=u.indexOf(e,v);if(y===-1)break;let O=u.indexOf(j,y);if(O===-1)break;let E=O+j.length,P=u.substring(E,E+100),B=P.match(/^\s*\n\s*(\/\/ =+)/);if(B){let ie=P.indexOf(`
11
- `,B.index+1);ie!==-1?E+=ie+1:E+=B[0].length;}let _=y,L=u.substring(Math.max(0,y-200),y).lastIndexOf("// ==========");L!==-1&&(_=Math.max(0,y-200)+L);let V=u.substring(_,E);m.push({start:_,end:E,content:V}),v=E;}return m.length>0&&(u.substring(0,m[0].start).split(`
12
- `).filter(E=>{let P=E.trim();return P.length>0&&!P.startsWith("//")}).join("").length===0?(b.beforeGenerated=m[0].content,m.length>1&&(b.afterGenerated=m[1].content)):(b.afterGenerated=m[0].content,m.length>1&&!b.beforeGenerated&&(b.beforeGenerated=m[1].content))),b},At=(u,d="CUSTOM CODE",e=true)=>{let j=e?`// ${u==="top"?"Add your custom code below this line":"Add your custom code above this line"}
7
+ ${" ".repeat(i)} ${u.split(`
8
+ `).filter(n=>n.trim()!=="").join(`
9
+ ${" ".repeat(i)} `)}
10
+ \`\`\``;function wn(u,i){return i.split(".").reduce((e,s)=>e&&e[s]!==void 0?e[s]:void 0,u)}var mn=(u,i="CUSTOM CODE")=>{let n=`// \u{1F512} ${i} START`,e=`// \u{1F512} ${i} END`,s={beforeGenerated:"",afterGenerated:""},t=0,o=[];for(;t<u.length;){let r=u.indexOf(n,t);if(r===-1)break;let f=u.indexOf(e,r);if(f===-1)break;let m=f+e.length,y=u.substring(m,m+100),A=y.match(/^\s*\n\s*(\/\/ =+)/);if(A){let G=y.indexOf(`
11
+ `,A.index+1);G!==-1?m+=G+1:m+=A[0].length;}let S=r,x=u.substring(Math.max(0,r-200),r).lastIndexOf("// ==========");x!==-1&&(S=Math.max(0,r-200)+x);let v=u.substring(S,m);o.push({start:S,end:m,content:v}),t=m;}return o.length>0&&(u.substring(0,o[0].start).split(`
12
+ `).filter(m=>{let y=m.trim();return y.length>0&&!y.startsWith("//")}).join("").length===0?(s.beforeGenerated=o[0].content,o.length>1&&(s.afterGenerated=o[1].content)):(s.afterGenerated=o[0].content,o.length>1&&!s.beforeGenerated&&(s.beforeGenerated=o[1].content))),s},Jt=(u,i="CUSTOM CODE",n=true)=>{let e=n?`// ${u==="top"?"Add your custom code below this line":"Add your custom code above this line"}
13
13
  // This section will be preserved during regeneration
14
14
  `:"";return `// ${"=".repeat(60)}
15
- // \u{1F512} ${d} START
16
- ${j}// ${"=".repeat(60)}
17
-
18
- // \u{1F512} ${d} END
19
- // ${"=".repeat(60)}`},wt=(u,d,e={})=>{let{position:j="bottom",markerText:b="CUSTOM CODE",includeInstructions:v=true}=e,m={beforeGenerated:"",afterGenerated:""};d&&(m=Ut(d,b)),!m.beforeGenerated&&!m.afterGenerated&&((j==="top"||j==="both")&&(m.beforeGenerated=At("top",b,v)),(j==="bottom"||j==="both")&&(m.afterGenerated=At("bottom",b,v)));let y=[];return m.beforeGenerated&&(y.push(m.beforeGenerated),y.push("")),y.push(u),m.afterGenerated&&(y.push(""),y.push(m.afterGenerated)),y.join(`
20
- `)};var me=M.join(__dirname,"../","../db.json");U.existsSync(me)||U.writeFileSync(me,"{}");var $e={};try{$e=re(me);}catch(u){$e={};}var oe=$e||{},zt=u=>{U.writeFileSync(me,JSON.stringify(u));},Nt=(u,d)=>{oe[u]=d,zt(oe);},kt=u=>oe[u],Rt=()=>{oe={},zt(oe);};var Y=process.cwd(),Oe={},Jt=Wt.create({timeout:6e4});Dt(Jt,{retries:20,retryCondition:u=>u.code==="ECONNABORTED"||u.message.includes("Network Error"),retryDelay:u=>u*1e3});var Z=(u,d,e)=>ne(null,null,function*(){var m,y,O,E;if(!(((m=e==null?void 0:e.customCode)==null?void 0:m.enabled)!==false)){yield U.promises.writeFile(u,d);return}let b=null;try{b=yield U.promises.readFile(u,"utf-8");}catch(P){}let v=wt(d,b,{position:((y=e==null?void 0:e.customCode)==null?void 0:y.position)||"bottom",markerText:(O=e==null?void 0:e.customCode)==null?void 0:O.markerText,includeInstructions:(E=e==null?void 0:e.customCode)==null?void 0:E.includeInstructions});yield U.promises.writeFile(u,v);}),Mt=(u,d,e,j)=>ne(null,null,function*(){var je,ve,Ce,Ee,Ae,ce,Te,Se,we,ze;let b=yield Jt.get(u),v=ct(b.data)?b.data:Tt(b.data),m;try{m=yield Qt.parse(v);}catch(t){let r=t instanceof Error?t.message:String(t);throw new Error(`Failed to parse OpenAPI spec for ${d}: ${r}`)}let y=M.join((e==null?void 0:e.folder)||"",d),O={},E=t=>{var r,f;if((r=e==null?void 0:e.folderSplit)!=null&&r.customFolder){let l=e.folderSplit.customFolder(t);if(l)return l}return (f=e==null?void 0:e.folderSplit)!=null&&f.byTags&&t.tags&&t.tags.length>0?t.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},P=typeof(e==null?void 0:e.server)=="string"?e==null?void 0:e.server:((ve=(je=m==null?void 0:m.servers)==null?void 0:je[(e==null?void 0:e.server)||0])==null?void 0:ve.url)||"",B=typeof((Ee=(Ce=e==null?void 0:e.types)==null?void 0:Ce.name)==null?void 0:Ee.prefix)=="string"?e==null?void 0:e.types.name.prefix:"I",_=typeof((ce=(Ae=e==null?void 0:e.endpoints)==null?void 0:Ae.name)==null?void 0:ce.prefix)=="string"?e==null?void 0:e.endpoints.name.prefix:"",de=(t,r)=>{var l,a;let f=K(t);if((a=(l=e==null?void 0:e.types)==null?void 0:l.name)!=null&&a.format){let o=e==null?void 0:e.types.name.format("shared",{name:t},f);if(o)return `${B}${o}`}return `${B}${f}`},L=(t,r,f,l,a,o=0)=>{let s="",p="",i="";if(r)if(r.$ref)if(r.$ref[0]==="#"){let $=(r.$ref||"").split("/");$.shift(),[...$].pop();let k=xe(t,$,null);if(k){k!=null&&k.name&&(s=k.name),p=$[$.length-1];let R=de(p);R.includes(".")&&(R=R.split(".").map((W,Q)=>Q===0?W:`["${W}"]`).join("")),i+=`${a!=null&&a.noSharedImport?"":"Shared."}${R}`;}}else i+="";else if(r.anyOf)i+=`(${r.anyOf.map($=>L(t,$,"",l,a)).filter($=>!!$).join("|")})`;else if(r.oneOf)i+=`(${r.oneOf.map($=>L(t,$,"",l,a)).filter($=>!!$).join("|")})`;else if(r.allOf)i+=`(${r.allOf.map($=>L(t,$,"",l,a)).filter($=>!!$).join("&")})`;else if(r.items)i+=`${L(t,r.items,"",false,a)}[]`;else if(r.properties){let $=Object.keys(r.properties),C=r.required||[],N="";$.forEach(k=>{var ee,W,Q,X,le,te;let R="";!((W=(ee=e==null?void 0:e.types)==null?void 0:ee.doc)!=null&&W.disable)&&((X=(Q=r.properties)==null?void 0:Q[k])!=null&&X.description)&&(R=" * "+((le=r.properties)==null?void 0:le[k].description.split(`
21
- `).filter(pe=>pe.trim()!=="").join(`
22
- *${" ".repeat(1)}`))),N+=(R?`/**
23
- ${R}
15
+ // \u{1F512} ${i} START
16
+ ${e}// ${"=".repeat(60)}
17
+
18
+ // \u{1F512} ${i} END
19
+ // ${"=".repeat(60)}`},qe=(u,i,n={})=>{let{position:e="bottom",markerText:s="CUSTOM CODE",includeInstructions:t=true}=n,o={beforeGenerated:"",afterGenerated:""};i&&(o=mn(i,s)),!o.beforeGenerated&&!o.afterGenerated&&((e==="top"||e==="both")&&(o.beforeGenerated=Jt("top",s,t)),(e==="bottom"||e==="both")&&(o.afterGenerated=Jt("bottom",s,t)));let r=[];return o.beforeGenerated&&(r.push(o.beforeGenerated),r.push("")),r.push(u),o.afterGenerated&&(r.push(""),r.push(o.afterGenerated)),r.join(`
20
+ `)};var je=D.join(__dirname,"../","../db.json");se.existsSync(je)||se.writeFileSync(je,"{}");var Ue={};try{Ue=c(je);}catch(u){Ue={};}var we=Ue||{},_t=u=>{se.writeFileSync(je,JSON.stringify(u));},Vt=(u,i)=>{we[u]=i,_t(we);},Yt=u=>we[u],Me=()=>{we={},_t(we);};var Zt={},Xt=(u,i)=>{Zt[u]=i;},en=u=>Zt[u]||[];var ce=process.cwd(),Ne={},tn=yn.create({timeout:6e4});fn(tn,{retries:20,retryCondition:u=>u.code==="ECONNABORTED"||u.message.includes("Network Error"),retryDelay:u=>u*1e3});var ye=(u,i,n)=>d(null,null,function*(){var o,r,f,m;if(!(((o=n==null?void 0:n.customCode)==null?void 0:o.enabled)!==false)){yield se.promises.writeFile(u,i);return}let s=null;try{s=yield se.promises.readFile(u,"utf-8");}catch(y){}let t=qe(i,s,{position:((r=n==null?void 0:n.customCode)==null?void 0:r.position)||"bottom",markerText:(f=n==null?void 0:n.customCode)==null?void 0:f.markerText,includeInstructions:(m=n==null?void 0:n.customCode)==null?void 0:m.includeInstructions});yield se.promises.writeFile(u,t);}),nn=(u,i,n,e)=>d(null,null,function*(){var oe,te,ie,ge,he,Pe,De,Je,We,He;let s=yield tn.get(u),t=Wt(s.data)?s.data:Ht(s.data),o;try{o=yield hn.parse(t);}catch(a){let p=a instanceof Error?a.message:String(a);throw new Error(`Failed to parse OpenAPI spec for ${i}: ${p}`)}let r=D.join((n==null?void 0:n.folder)||"",i),f={},m=a=>{var p,w;if((p=n==null?void 0:n.folderSplit)!=null&&p.customFolder){let g=n.folderSplit.customFolder(a);if(g)return g}return (w=n==null?void 0:n.folderSplit)!=null&&w.byTags&&a.tags&&a.tags.length>0?a.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},y=typeof(n==null?void 0:n.server)=="string"?n==null?void 0:n.server:((te=(oe=o==null?void 0:o.servers)==null?void 0:oe[(n==null?void 0:n.server)||0])==null?void 0:te.url)||"",A=typeof((ge=(ie=n==null?void 0:n.types)==null?void 0:ie.name)==null?void 0:ge.prefix)=="string"?n==null?void 0:n.types.name.prefix:"I",S=typeof((Pe=(he=n==null?void 0:n.endpoints)==null?void 0:he.name)==null?void 0:Pe.prefix)=="string"?n==null?void 0:n.endpoints.name.prefix:"",j=(a,p)=>{var g,c;let w=ue(a);if((c=(g=n==null?void 0:n.types)==null?void 0:g.name)!=null&&c.format){let h=n==null?void 0:n.types.name.format("shared",{name:a},w);if(h)return `${A}${h}`}return `${A}${w}`},x=(a,p,w,g,c,h=0)=>{let d="",C="",$="";if(p)if(p.$ref)if(p.$ref[0]==="#"){let q=(p.$ref||"").split("/");q.shift(),[...q].pop();let L=Ge(a,q,null);if(L){L!=null&&L.name&&(d=L.name),C=q[q.length-1];let H=j(C);H.includes(".")&&(H=H.split(".").map((pe,$e)=>$e===0?pe:`["${pe}"]`).join("")),$+=`${c!=null&&c.noSharedImport?"":"Shared."}${H}`;}}else $+="";else if(p.anyOf)$+=`(${p.anyOf.map(q=>x(a,q,"",g,c)).filter(q=>!!q).join("|")})`;else if(p.oneOf)$+=`(${p.oneOf.map(q=>x(a,q,"",g,c)).filter(q=>!!q).join("|")})`;else if(p.allOf)$+=`(${p.allOf.map(q=>x(a,q,"",g,c)).filter(q=>!!q).join("&")})`;else if(p.items)$+=`${x(a,p.items,"",false,c)}[]`;else if(p.properties){let q=Object.keys(p.properties),N=p.required||[],Q="";q.forEach(L=>{var le,pe,$e,Ce,be,de;let H="";!((pe=(le=n==null?void 0:n.types)==null?void 0:le.doc)!=null&&pe.disable)&&((Ce=($e=p.properties)==null?void 0:$e[L])!=null&&Ce.description)&&(H=" * "+((be=p.properties)==null?void 0:be[L].description.split(`
21
+ `).filter(Re=>Re.trim()!=="").join(`
22
+ *${" ".repeat(1)}`))),Q+=(H?`/**
23
+ ${H}
24
24
  */
25
- `:"")+`${L(t,(te=r.properties)==null?void 0:te[k],k,C.includes(k),a,o+1)}`;}),N.length>0?i+=`{
26
- ${" ".repeat(o)}${N}${" ".repeat(o)}}`:i+="{[k: string]: any}";}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(i+="("),r.enum.map($=>JSON.stringify($)).filter($=>!!$).forEach(($,C)=>{i+=`${C===0?"":"|"}${$}`;}),r.enum.length>1&&(i+=")");else if(r.type){let $=C=>{let N="";if(typeof C=="string")["string","integer","number","array","boolean","null"].includes(C)?["integer","number"].includes(C)?N+="number":C==="array"?N+="any[]":N+=C:C==="object"&&(r.additionalProperties?N+=`{[k: string]: ${L(t,r.additionalProperties,"",true,a)||"any"}}`:N+="{[k: string]: any}");else if(Array.isArray(C)){let k=C.map(R=>$(R));k.filter(R=>R!==""),k.length>1&&(N+="("+k.join("|")+")");}else N+="any";return N};i=$(r.type);}else i+="any";else i="string";let h=s||f;a!=null&&a.useComponentName&&!h&&(h=p);let z=h?` "${h}"${l?"":"?"}: `:"",n=r!=null&&r.nullable?" | null":"";return i.length>0?`${z}${i}${n}${h?`;
27
- `:""}`:""},V=(t,r)=>{let a="";if(r)if(r.$ref)if(r.$ref[0]==="#"){let o=(r.$ref||"").split("/");o.shift();let p=xe(t,o,null);p&&(p!=null&&p.name&&(p.name),o[o.length-1],a+=V(t,p));}else a+="";else if(r.anyOf)a+=V(t,r.anyOf[0]);else if(r.oneOf)a+=V(t,r.oneOf[0]);else if(r.allOf)a+=`{${r.allOf.map(o=>`...(${V(t,o)})`).join(",")}}`;else if(r.items)a+=`[${V(t,r.items)}]`;else if(r.properties){let p=Object.keys(r.properties).map(i=>{var h;return ` "${i}": ${V(t,(h=r.properties)==null?void 0:h[i])}`}).join(`,
28
- `);p.length>0?a+=`{
29
- ${p}
30
- }`:a+="{}";}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(a+=r.enum[0]);else if(r.type)if(r.example)a+=JSON.stringify(r.example);else {let o=s=>{let p="";if(typeof s=="string")["string","integer","number","array","boolean","null"].includes(s)?["integer","number"].includes(s)?p+="123":s==="array"?p+="[]":s==="boolean"?p+="true":s==="null"?p+="null":p+=`"${s}"`:s==="object"&&(p+="{}");else if(Array.isArray(s)){let i=s.map(h=>o(h));i.filter(h=>h!==""),i.length>1&&(p+=i.join("|"));}else p+="any";return p};a=o(r.type);}else a+="any";else a="string";return a};j&&!isNaN(j)&&j>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(Oe[d]&&clearTimeout(Oe[d]),Oe[d]=setTimeout(()=>Mt(u,d,e,j),j)));let ie=kt(d);if(Kt(ie,m))return;Nt(d,m);let ye="",g="",H={};m.components&&Object.keys(m.components).forEach(t=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(t)){let r=m.components[t],f={},l={};Object.keys(r).forEach(o=>{var i;let s=(i=r[o])!=null&&i.schema?r[o].schema:r[o],p=`${L(m,s,"",true,{noSharedImport:true,useComponentName:["parameters"].includes(t)})}`;if(p){let h=o.split("."),z=f,n=l;for(let $=0;$<h.length;$++){let C=h[$];$<h.length-1?(C in z||(z[C]={},n[C]={}),z=z[C],n=n[C]):(z[C]=p,n[C]=s);}}}),Object.keys(f).forEach(o=>{var h,z,n,$;let s=de(o),p=f[o],i="";!((z=(h=e==null?void 0:e.types)==null?void 0:h.doc)!=null&&z.disable)&&o in r&&((n=r[o])!=null&&n.description)&&(i=" * "+r[o].description.split(`
31
- `).filter(C=>C.trim()!=="").join(`
32
- *${" ".repeat(1)}`)),H[o]=(($=H[o])!=null?$:"")+(i?`/**
33
- ${i}
25
+ `:"")+`${x(a,(de=p.properties)==null?void 0:de[L],L,N.includes(L),c,h+1)}`;}),Q.length>0?$+=`{
26
+ ${" ".repeat(h)}${Q}${" ".repeat(h)}}`:$+="{[k: string]: any}";}else if(p.enum&&p.enum.length>0){let q=p.enum.includes(null),N=p.enum.filter(L=>L!==null).map(L=>JSON.stringify(L)).filter(L=>L!==void 0),Q=N.length>1||N.length>0&&q;Q&&($+="("),N.forEach((L,H)=>{$+=`${H===0?"":"|"}${L}`;}),q&&($+=`${N.length>0?"|":""}null`),Q&&($+=")");}else if(p.type){let q=N=>{let Q="";if(typeof N=="string")["string","integer","number","array","boolean","null"].includes(N)?["integer","number"].includes(N)?Q+="number":N==="array"?Q+="any[]":Q+=N:N==="object"&&(p.additionalProperties?Q+=`{[k: string]: ${x(a,p.additionalProperties,"",true,c)||"any"}}`:Q+="{[k: string]: any}");else if(Array.isArray(N)){let L=N.map(H=>q(H));L.filter(H=>H!==""),L.length>1&&(Q+="("+L.join("|")+")");}else Q+="any";return Q};$=q(p.type);}else $+="any";else $="string";let P=d||w;c!=null&&c.useComponentName&&!P&&(P=C);let W=P?` "${P}"${g?"":"?"}: `:"",l=(p==null?void 0:p.enum)&&p.enum.includes(null),V=p!=null&&p.nullable&&!l?" | null":"";return $.length>0?`${W}${$}${V}${P?`;
27
+ `:""}`:""},v=(a,p)=>{let c="";if(p)if(p.$ref)if(p.$ref[0]==="#"){let h=(p.$ref||"").split("/");h.shift();let C=Ge(a,h,null);C&&(C!=null&&C.name&&(C.name),h[h.length-1],c+=v(a,C));}else c+="";else if(p.anyOf)c+=v(a,p.anyOf[0]);else if(p.oneOf)c+=v(a,p.oneOf[0]);else if(p.allOf)c+=`{${p.allOf.map(h=>`...(${v(a,h)})`).join(",")}}`;else if(p.items)c+=`[${v(a,p.items)}]`;else if(p.properties){let C=Object.keys(p.properties).map($=>{var P;return ` "${$}": ${v(a,(P=p.properties)==null?void 0:P[$])}`}).join(`,
28
+ `);C.length>0?c+=`{
29
+ ${C}
30
+ }`:c+="{}";}else if(p.enum&&p.enum.length>0)p.enum.length>1&&(c+=p.enum[0]);else if(p.type)if(p.example)c+=JSON.stringify(p.example);else {let h=d=>{let C="";if(typeof d=="string")["string","integer","number","array","boolean","null"].includes(d)?["integer","number"].includes(d)?C+="123":d==="array"?C+="[]":d==="boolean"?C+="true":d==="null"?C+="null":C+=`"${d}"`:d==="object"&&(C+="{}");else if(Array.isArray(d)){let $=d.map(P=>h(P));$.filter(P=>P!==""),$.length>1&&(C+=$.join("|"));}else C+="any";return C};c=h(p.type);}else c+="any";else c="string";return c};e&&!isNaN(e)&&e>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(Ne[i]&&clearTimeout(Ne[i]),Ne[i]=setTimeout(()=>nn(u,i,n,e),e)));let G=Yt(i);if(cn(G,o))return;Vt(i,o);let R="",J="",T={},I=[];o.components&&Object.keys(o.components).forEach(a=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(a)){let p=o.components[a],w={},g={};Object.keys(p).forEach(h=>{var $;let d=($=p[h])!=null&&$.schema?p[h].schema:p[h],C=`${x(o,d,"",true,{noSharedImport:true,useComponentName:["parameters"].includes(a)})}`;if(C){let P=h.split("."),W=w,l=g;for(let V=0;V<P.length;V++){let q=P[V];V<P.length-1?(q in W||(W[q]={},l[q]={}),W=W[q],l=l[q]):(W[q]=C,l[q]=d);}}}),Object.keys(w).forEach(h=>{var P,W,l,V;let d=j(h),C=w[h],$="";!((W=(P=n==null?void 0:n.types)==null?void 0:P.doc)!=null&&W.disable)&&h in p&&((l=p[h])!=null&&l.description)&&($=" * "+p[h].description.split(`
31
+ `).filter(q=>q.trim()!=="").join(`
32
+ *${" ".repeat(1)}`)),T[h]=((V=T[h])!=null?V:"")+($?`/**
33
+ ${$}
34
34
  */
35
- `:"")+"export type "+s+" = "+(typeof p=="string"?p:se(p))+`;
36
- `;});}});let be=t=>{let r="";if(t.content){let f=Object.keys(t.content);f[0]&&t.content[f[0]].schema&&(r+=`${L(m,t.content[f[0]].schema,"")}`);}return r},G=(t,r,f=0)=>{if(!t)return r==="joi"?"Joi.any()":r==="yup"?"yup.mixed()":"z.any()";if(t.$ref){if(t.$ref[0]==="#"){let l=t.$ref.split("/");l.shift();let a=l.join("."),o=xe(m,a);if(o)return G(o,r,f)}return r==="joi"?"Joi.any()":r==="yup"?"yup.mixed()":"z.any()"}if(t.anyOf||t.oneOf){let l=t.anyOf||t.oneOf;if(l.every(o=>o.enum!==void 0&&Array.isArray(o.enum))){let o=[],s=false;if(l.forEach(p=>{p.enum&&p.enum.forEach(i=>{i===null?s=true:o.includes(i)||o.push(i);});}),o.length>0){let p=o.map(i=>JSON.stringify(i)).join(", ");if(r==="zod"){let i=`z.enum([${p}])`;return s&&(i+=".nullable()"),i}else if(r==="yup"){let i=`yup.mixed().oneOf([${p}])`;return s&&(i+=".nullable()"),i}else return s?`Joi.valid(${p}, null)`:`Joi.valid(${p})`}else if(s)return r==="zod"?"z.null()":r==="yup"?"yup.mixed().nullable()":"Joi.valid(null)"}return r==="zod"?`z.union([${l.map(p=>G(p,r,f+1)).join(", ")}])`:r==="yup"?`yup.mixed().oneOf([${l.map(p=>G(p,r,f+1)).join(", ")}])`:`Joi.alternatives().try(${l.map(s=>G(s,r,f+1)).join(", ")})`}if(t.allOf)if(r==="zod"){let l=t.allOf.map(o=>G(o,r,f+1)),a=l[0];for(let o=1;o<l.length;o++)a=`${a}.merge(${l[o]})`;return a}else return G(t.allOf[0],r,f+1);if(t.items){let l=G(t.items,r,f+1);if(r==="zod"){let a=`z.array(${l})`;return t.minItems!==void 0&&(a+=`.min(${t.minItems})`),t.maxItems!==void 0&&(a+=`.max(${t.maxItems})`),a}else if(r==="yup"){let a=`yup.array().of(${l})`;return t.minItems!==void 0&&(a+=`.min(${t.minItems})`),t.maxItems!==void 0&&(a+=`.max(${t.maxItems})`),a}else {let a=`Joi.array().items(${l})`;return t.minItems!==void 0&&(a+=`.min(${t.minItems})`),t.maxItems!==void 0&&(a+=`.max(${t.maxItems})`),a}}if(t.properties){let l=t.required||[],a=" ".repeat(f+1),o=Object.entries(t.properties).map(([s,p])=>{let i=l.includes(s),h=G(p,r,f+1);return i||(h+=".optional()"),`${a}${s}: ${h}`}).join(`,
37
- `);return r==="zod"?`z.object({
38
- ${o}
39
- ${" ".repeat(f)}})`:r==="yup"?`yup.object({
40
- ${o}
41
- ${" ".repeat(f)}})`:`Joi.object({
42
- ${o}
43
- ${" ".repeat(f)}})`}if(t.enum&&t.enum.length>0){let l=[],a=false;t.enum.forEach(s=>{s===null?a=true:l.includes(s)||l.push(s);});let o=l.map(s=>JSON.stringify(s)).join(", ");if(r==="zod"){let s=`z.enum([${o}])`;return a&&(s+=".nullable()"),s}else if(r==="yup"){let s=`yup.mixed().oneOf([${o}])`;return a&&(s+=".nullable()"),s}else {let s=`Joi.valid(${o})`;return a&&(s+=".allow(null)"),s}}if(t.type){let a=(o=>{switch(o){case "string":if(r==="zod"){let s="z.string()";return t.format==="email"?s+=".email()":t.format==="uuid"?s+=".uuid()":t.format==="url"||t.format==="uri"?s+=".url()":t.format==="date-time"?s+=".datetime()":t.format==="date"&&(s+=".date()"),t.minLength&&(s+=`.min(${t.minLength})`),t.maxLength&&(s+=`.max(${t.maxLength})`),t.pattern&&(s+=`.regex(/${t.pattern}/)`),s}else if(r==="yup"){let s="yup.string()";return t.format==="email"?s+=".email()":(t.format==="url"||t.format==="uri")&&(s+=".url()"),t.minLength&&(s+=`.min(${t.minLength})`),t.maxLength&&(s+=`.max(${t.maxLength})`),t.pattern&&(s+=`.matches(/${t.pattern}/)`),s}else {let s="Joi.string()";return t.format==="email"?s+=".email()":t.format==="url"||t.format==="uri"?s+=".uri()":t.format==="uuid"?s+=".guid({ version: 'uuidv4' })":t.format==="date-time"&&(s+=".isoDate()"),t.minLength&&(s+=`.min(${t.minLength})`),t.maxLength&&(s+=`.max(${t.maxLength})`),t.pattern&&(s+=`.pattern(/${t.pattern}/)`),s}case "integer":case "number":if(r==="zod"){let s="z.number()";return o==="integer"&&(s+=".int()"),t.minimum!==void 0&&(t.exclusiveMinimum?s+=`.gt(${t.minimum})`:s+=`.min(${t.minimum})`),t.maximum!==void 0&&(t.exclusiveMaximum?s+=`.lt(${t.maximum})`:s+=`.max(${t.maximum})`),s}else if(r==="yup"){let s="yup.number()";return o==="integer"&&(s+=".integer()"),t.minimum!==void 0&&(s+=`.min(${t.minimum})`),t.maximum!==void 0&&(s+=`.max(${t.maximum})`),s}else {let s="Joi.number()";return o==="integer"&&(s+=".integer()"),t.minimum!==void 0&&(t.exclusiveMinimum?s+=`.greater(${t.minimum})`:s+=`.min(${t.minimum})`),t.maximum!==void 0&&(t.exclusiveMaximum?s+=`.less(${t.maximum})`:s+=`.max(${t.maximum})`),s}case "boolean":return r==="joi"?"Joi.boolean()":r==="yup"?"yup.boolean()":"z.boolean()";case "null":return r==="joi"?"Joi.any().allow(null)":r==="yup"?"yup.mixed().nullable()":"z.null()";default:return r==="joi"?"Joi.any()":r==="yup"?"yup.mixed()":"z.any()"}})(typeof t.type=="string"?t.type:t.type[0]);return t.nullable&&r!=="joi"?a+=".nullable()":t.nullable&&r==="joi"&&(a+=".allow(null)"),a}return r==="joi"?"Joi.any()":r==="yup"?"yup.mixed()":"z.any()"},Bt=t=>{var r,f,l,a,o;if((f=(r=e==null?void 0:e.endpoints)==null?void 0:r.value)!=null&&f.replaceWords&&Array.isArray(e==null?void 0:e.endpoints.value.replaceWords)){let s=t;return (o=(a=(l=e==null?void 0:e.endpoints)==null?void 0:l.value)==null?void 0:a.replaceWords)==null||o.forEach((p,i)=>{let h=new RegExp(p.replace,"g");s=s.replace(h,p.with||"");}),s}else return t},Pt=(t,r,f=[])=>{var o,s;let l=(o=e==null?void 0:e.endpoints)==null?void 0:o.exclude,a=(s=e==null?void 0:e.endpoints)==null?void 0:s.include;if(a){let p=a.tags&&a.tags.length>0?f.some(h=>a.tags.includes(h)):true,i=a.endpoints&&a.endpoints.length>0?a.endpoints.some(h=>{let z=!h.method||h.method.toLowerCase()===r.toLowerCase();return h.path?t===h.path&&z:h.regex?new RegExp(h.regex).test(t)&&z:false}):true;if(!p||!i)return true}return !!(l&&(l.tags&&l.tags.length>0&&f.some(i=>l.tags.includes(i))||l.endpoints&&l.endpoints.length>0&&l.endpoints.some(i=>{let h=!i.method||i.method.toLowerCase()===r.toLowerCase();return i.path?t===i.path&&h:i.regex?new RegExp(i.regex).test(t)&&h:false})))};if(Object.keys(m.paths||{}).forEach(t=>{let r=m.paths[t];Object.keys(r).forEach(l=>{var pe,Ne,ke,Re,Je,Me,qe,Be,Pe,Le,Fe,Ge,Ue,Ve,Ke,We,De,Qe,Ye,Ze,He,Xe,_e,ge,et,tt,rt,nt,st,at,ot,it,lt,pt,ut,mt,dt,yt,ft,$t,xt,Ot,It,ht,bt,jt,vt,Ct;let a=l,o=St(t,a),s=((pe=r[a])==null?void 0:pe.tags)||[];if(Pt(t,a,s))return;let p=r[a],i=E({method:a,path:t,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId,tags:s,parameters:p==null?void 0:p.parameters,requestBody:p==null?void 0:p.requestBody,responses:p==null?void 0:p.responses});O[i]||(O[i]={endpoints:"",types:"",validation:""});let h=((ke=(Ne=e==null?void 0:e.endpoints)==null?void 0:Ne.value)!=null&&ke.includeServer?P:"")+o.pathParts.map(x=>(x[0]==="{"&&x[x.length-1]==="}"?x=`\${${x.replace(/{/,"").replace(/}/,"")}}`:x[0]==="<"&&x[x.length-1]===">"?x=`\${${x.replace(/</,"").replace(/>/,"")}}`:x[0]===":"&&(x=`\${${x.replace(/:/,"")}}`),x)).join("/"),z=`"${h}"`;o.variables.length>0&&(z=`(${o.variables.map(I=>`${I}:string`).join(",")})=> \`${h}\``),z=Bt(z);let n=r[a],$="";if(n!=null&&n.parameters&&((n==null?void 0:n.parameters).forEach((I,A)=>{(I.$ref||I.in==="query"&&I.name)&&($+=`${L(m,I.$ref?I:I.schema,I.name||"",I.required)}`);}),$)){$=`{
44
- ${$}}`;let I=`${o.name}Query`;if((Je=(Re=e==null?void 0:e.types)==null?void 0:Re.name)!=null&&Je.useOperationId&&(n!=null&&n.operationId)&&(I=`${n.operationId}Query`),I=K(`${B}${I}`),(qe=(Me=e==null?void 0:e.types)==null?void 0:Me.name)!=null&&qe.format){let S=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"query",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},I);S&&(I=`${B}${S}`);}let A=`export type ${I} = ${$};
45
- `;e!=null&&e.folderSplit?O[i].types+=A:g+=A;}if(((Be=e==null?void 0:e.validations)==null?void 0:Be.disable)!==true&&((Le=(Pe=e==null?void 0:e.validations)==null?void 0:Pe.generate)==null?void 0:Le.query)!==false&&(n!=null&&n.parameters)){let x=((Fe=e.validations)==null?void 0:Fe.library)||"zod",A=n.parameters.filter(S=>!S.$ref&&S.in==="query"&&S.name);if(A.length>0){let S=((Ge=e==null?void 0:e.validations)==null?void 0:Ge.name)||((Ue=e==null?void 0:e.types)==null?void 0:Ue.name),J=typeof(S==null?void 0:S.prefix)=="string"?S.prefix:"I",c=typeof((Ke=(Ve=e==null?void 0:e.validations)==null?void 0:Ve.name)==null?void 0:Ke.suffix)=="string"?e.validations.name.suffix:"Schema",w=`${o.name}Query`;if(S!=null&&S.useOperationId&&(n!=null&&n.operationId)&&(w=`${n.operationId}Query`),w=K(`${J}${w}${c}`),(De=(We=e==null?void 0:e.validations)==null?void 0:We.name)!=null&&De.format){let F=e.validations.name.format({code:"",type:"query",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},w);F&&(w=`${J}${F}${c}`);}else if((Ye=(Qe=e==null?void 0:e.types)==null?void 0:Qe.name)!=null&&Ye.format){let F=e.types.name.format("endpoint",{code:"",type:"query",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},w);F&&(w=`${J}${F}${c}`);}let T=A.map(F=>{let Lt=F!=null&&F.schema?G(F.schema,x):x==="joi"?"Joi.string()":x==="yup"?"yup.string()":"z.string()",Ft=F.required?"":".optional()";return ` ${F.name}: ${Lt}${Ft}`}).join(`,
46
- `),D=`export const ${w} = ${x==="joi"?"Joi.object":x==="yup"?"yup.object":"z.object"}({
47
- ${T}
35
+ `:"")+"export type "+d+" = "+(typeof C=="string"?C:Ee(C))+`;
36
+ `;});}});let _=a=>{let p="";if(a.content){let w=Object.keys(a.content);w[0]&&a.content[w[0]].schema&&(p+=`${x(o,a.content[w[0]].schema,"")}`);}return p},O=(a,p,w=0)=>{if(!a)return p==="joi"?"Joi.any()":p==="yup"?"yup.mixed()":"z.any()";if(a.$ref){if(a.$ref[0]==="#"){let g=a.$ref.split("/");g.shift();let c=g.join("."),h=Ge(o,c);if(h)return O(h,p,w)}return p==="joi"?"Joi.any()":p==="yup"?"yup.mixed()":"z.any()"}if(a.anyOf||a.oneOf){let g=a.anyOf||a.oneOf;if(g.every(h=>h.enum!==void 0&&Array.isArray(h.enum))){let h=[],d=false;if(g.forEach(C=>{C.enum&&C.enum.forEach($=>{$===null?d=true:h.includes($)||h.push($);});}),h.length>0){let C=h.map($=>JSON.stringify($)).join(", ");if(p==="zod"){let $=`z.enum([${C}])`;return d&&($+=".nullable()"),$}else if(p==="yup"){let $=`yup.mixed().oneOf([${C}])`;return d&&($+=".nullable()"),$}else return d?`Joi.valid(${C}, null)`:`Joi.valid(${C})`}else if(d)return p==="zod"?"z.null()":p==="yup"?"yup.mixed().nullable()":"Joi.valid(null)"}return p==="zod"?`z.union([${g.map(C=>O(C,p,w+1)).join(", ")}])`:p==="yup"?`yup.mixed().oneOf([${g.map(C=>O(C,p,w+1)).join(", ")}])`:`Joi.alternatives().try(${g.map(d=>O(d,p,w+1)).join(", ")})`}if(a.allOf)if(p==="zod"){let g=a.allOf.map(h=>O(h,p,w+1)),c=g[0];for(let h=1;h<g.length;h++)c=`${c}.merge(${g[h]})`;return c}else return O(a.allOf[0],p,w+1);if(a.items){let g=O(a.items,p,w+1);if(p==="zod"){let c=`z.array(${g})`;return a.minItems!==void 0&&(c+=`.min(${a.minItems})`),a.maxItems!==void 0&&(c+=`.max(${a.maxItems})`),c}else if(p==="yup"){let c=`yup.array().of(${g})`;return a.minItems!==void 0&&(c+=`.min(${a.minItems})`),a.maxItems!==void 0&&(c+=`.max(${a.maxItems})`),c}else {let c=`Joi.array().items(${g})`;return a.minItems!==void 0&&(c+=`.min(${a.minItems})`),a.maxItems!==void 0&&(c+=`.max(${a.maxItems})`),c}}if(a.properties){let g=a.required||[],c=" ".repeat(w+1),h=Object.entries(a.properties).map(([d,C])=>{let $=g.includes(d),P=O(C,p,w+1);return $||(P+=".optional()"),`${c}${d}: ${P}`}).join(`,
37
+ `);return p==="zod"?`z.object({
38
+ ${h}
39
+ ${" ".repeat(w)}})`:p==="yup"?`yup.object({
40
+ ${h}
41
+ ${" ".repeat(w)}})`:`Joi.object({
42
+ ${h}
43
+ ${" ".repeat(w)}})`}if(a.enum&&a.enum.length>0){let g=[],c=false;a.enum.forEach(d=>{d===null?c=true:g.includes(d)||g.push(d);});let h=g.map(d=>JSON.stringify(d)).join(", ");if(p==="zod"){let d=`z.enum([${h}])`;return c&&(d+=".nullable()"),d}else if(p==="yup"){let d=`yup.mixed().oneOf([${h}])`;return c&&(d+=".nullable()"),d}else {let d=`Joi.valid(${h})`;return c&&(d+=".allow(null)"),d}}if(a.type){let c=(h=>{switch(h){case "string":if(p==="zod"){let d="z.string()";return a.format==="email"?d+=".email()":a.format==="uuid"?d+=".uuid()":a.format==="url"||a.format==="uri"?d+=".url()":a.format==="date-time"?d+=".datetime()":a.format==="date"&&(d+=".date()"),a.minLength&&(d+=`.min(${a.minLength})`),a.maxLength&&(d+=`.max(${a.maxLength})`),a.pattern&&(d+=`.regex(/${a.pattern}/)`),d}else if(p==="yup"){let d="yup.string()";return a.format==="email"?d+=".email()":(a.format==="url"||a.format==="uri")&&(d+=".url()"),a.minLength&&(d+=`.min(${a.minLength})`),a.maxLength&&(d+=`.max(${a.maxLength})`),a.pattern&&(d+=`.matches(/${a.pattern}/)`),d}else {let d="Joi.string()";return a.format==="email"?d+=".email()":a.format==="url"||a.format==="uri"?d+=".uri()":a.format==="uuid"?d+=".guid({ version: 'uuidv4' })":a.format==="date-time"&&(d+=".isoDate()"),a.minLength&&(d+=`.min(${a.minLength})`),a.maxLength&&(d+=`.max(${a.maxLength})`),a.pattern&&(d+=`.pattern(/${a.pattern}/)`),d}case "integer":case "number":if(p==="zod"){let d="z.number()";return h==="integer"&&(d+=".int()"),a.minimum!==void 0&&(a.exclusiveMinimum?d+=`.gt(${a.minimum})`:d+=`.min(${a.minimum})`),a.maximum!==void 0&&(a.exclusiveMaximum?d+=`.lt(${a.maximum})`:d+=`.max(${a.maximum})`),d}else if(p==="yup"){let d="yup.number()";return h==="integer"&&(d+=".integer()"),a.minimum!==void 0&&(d+=`.min(${a.minimum})`),a.maximum!==void 0&&(d+=`.max(${a.maximum})`),d}else {let d="Joi.number()";return h==="integer"&&(d+=".integer()"),a.minimum!==void 0&&(a.exclusiveMinimum?d+=`.greater(${a.minimum})`:d+=`.min(${a.minimum})`),a.maximum!==void 0&&(a.exclusiveMaximum?d+=`.less(${a.maximum})`:d+=`.max(${a.maximum})`),d}case "boolean":return p==="joi"?"Joi.boolean()":p==="yup"?"yup.boolean()":"z.boolean()";case "null":return p==="joi"?"Joi.any().allow(null)":p==="yup"?"yup.mixed().nullable()":"z.null()";default:return p==="joi"?"Joi.any()":p==="yup"?"yup.mixed()":"z.any()"}})(typeof a.type=="string"?a.type:a.type[0]);return a.nullable&&p!=="joi"?c+=".nullable()":a.nullable&&p==="joi"&&(c+=".allow(null)"),c}return p==="joi"?"Joi.any()":p==="yup"?"yup.mixed()":"z.any()"},z=a=>{var p,w,g,c,h;if((w=(p=n==null?void 0:n.endpoints)==null?void 0:p.value)!=null&&w.replaceWords&&Array.isArray(n==null?void 0:n.endpoints.value.replaceWords)){let d=a;return (h=(c=(g=n==null?void 0:n.endpoints)==null?void 0:g.value)==null?void 0:c.replaceWords)==null||h.forEach((C,$)=>{let P=new RegExp(C.replace,"g");d=d.replace(P,C.with||"");}),d}else return a},ae=(a,p,w=[])=>{var h,d;let g=(h=n==null?void 0:n.endpoints)==null?void 0:h.exclude,c=(d=n==null?void 0:n.endpoints)==null?void 0:d.include;if(c){let C=c.tags&&c.tags.length>0?w.some(P=>c.tags.includes(P)):true,$=c.endpoints&&c.endpoints.length>0?c.endpoints.some(P=>{let W=!P.method||P.method.toLowerCase()===p.toLowerCase();return P.path?a===P.path&&W:P.regex?new RegExp(P.regex).test(a)&&W:false}):true;if(!C||!$)return true}return !!(g&&(g.tags&&g.tags.length>0&&w.some($=>g.tags.includes($))||g.endpoints&&g.endpoints.length>0&&g.endpoints.some($=>{let P=!$.method||$.method.toLowerCase()===p.toLowerCase();return $.path?a===$.path&&P:$.regex?new RegExp($.regex).test(a)&&P:false})))};if(Object.keys(o.paths||{}).forEach(a=>{let p=o.paths[a];Object.keys(p).forEach(g=>{var _e,Ve,Ye,Ze,Xe,et,tt,nt,rt,st,at,ot,it,lt,ut,pt,mt,dt,ct,yt,ft,ht,$t,gt,Ct,bt,It,xt,Et,Tt,wt,At,Pt,vt,qt,jt,Ot,kt,Rt,St,Ut,Mt,Gt,Nt,Lt,Ft,Qt,Bt,zt;let c=g,h=Kt(a,c),d=((_e=p[c])==null?void 0:_e.tags)||[];if(ae(a,c,d))return;let C=p[c],$=m({method:c,path:a,summary:C==null?void 0:C.summary,operationId:C==null?void 0:C.operationId,tags:d,parameters:C==null?void 0:C.parameters,requestBody:C==null?void 0:C.requestBody,responses:C==null?void 0:C.responses});f[$]||(f[$]={endpoints:"",types:"",validation:""});let P=((Ye=(Ve=n==null?void 0:n.endpoints)==null?void 0:Ve.value)!=null&&Ye.includeServer?y:"")+h.pathParts.map(b=>(b[0]==="{"&&b[b.length-1]==="}"?b=`\${${b.replace(/{/,"").replace(/}/,"")}}`:b[0]==="<"&&b[b.length-1]===">"?b=`\${${b.replace(/</,"").replace(/>/,"")}}`:b[0]===":"&&(b=`\${${b.replace(/:/,"")}}`),b)).join("/"),W=`"${P}"`;h.variables.length>0&&(W=`(${h.variables.map(E=>`${E}:string`).join(",")})=> \`${P}\``),W=z(W);let l=p[c],V="",q;if(l!=null&&l.parameters&&((l==null?void 0:l.parameters).forEach((E,k)=>{(E.$ref||E.in==="query"&&E.name)&&(V+=`${x(o,E.$ref?E:E.schema,E.name||"",E.required)}`);}),V)){V=`{
44
+ ${V}}`;let E=`${h.name}Query`;if((Xe=(Ze=n==null?void 0:n.types)==null?void 0:Ze.name)!=null&&Xe.useOperationId&&(l!=null&&l.operationId)&&(E=`${l.operationId}Query`),E=ue(`${A}${E}`),(tt=(et=n==null?void 0:n.types)==null?void 0:et.name)!=null&&tt.format){let F=n==null?void 0:n.types.name.format("endpoint",{code:"",type:"query",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},E);F&&(E=`${A}${F}`);}q=E;let k=`export type ${E} = ${V};
45
+ `;n!=null&&n.folderSplit?f[$].types+=k:J+=k;}if(((nt=n==null?void 0:n.validations)==null?void 0:nt.disable)!==true&&((st=(rt=n==null?void 0:n.validations)==null?void 0:rt.generate)==null?void 0:st.query)!==false&&(l!=null&&l.parameters)){let b=((at=n.validations)==null?void 0:at.library)||"zod",k=l.parameters.filter(F=>!F.$ref&&F.in==="query"&&F.name);if(k.length>0){let F=((ot=n==null?void 0:n.validations)==null?void 0:ot.name)||((it=n==null?void 0:n.types)==null?void 0:it.name),K=typeof(F==null?void 0:F.prefix)=="string"?F.prefix:"I",M=typeof((ut=(lt=n==null?void 0:n.validations)==null?void 0:lt.name)==null?void 0:ut.suffix)=="string"?n.validations.name.suffix:"Schema",B=`${h.name}Query`;if(F!=null&&F.useOperationId&&(l!=null&&l.operationId)&&(B=`${l.operationId}Query`),B=ue(`${K}${B}${M}`),(mt=(pt=n==null?void 0:n.validations)==null?void 0:pt.name)!=null&&mt.format){let ee=n.validations.name.format({code:"",type:"query",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},B);ee&&(B=`${K}${ee}${M}`);}else if((ct=(dt=n==null?void 0:n.types)==null?void 0:dt.name)!=null&&ct.format){let ee=n.types.name.format("endpoint",{code:"",type:"query",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},B);ee&&(B=`${K}${ee}${M}`);}let U=k.map(ee=>{let ln=ee!=null&&ee.schema?O(ee.schema,b):b==="joi"?"Joi.string()":b==="yup"?"yup.string()":"z.string()",un=ee.required?"":".optional()";return ` ${ee.name}: ${ln}${un}`}).join(`,
46
+ `),me=`export const ${B} = ${b==="joi"?"Joi.object":b==="yup"?"yup.object":"z.object"}({
47
+ ${U}
48
48
  });
49
49
 
50
- `;e!=null&&e.folderSplit||O[i]||(O[i]={endpoints:"",types:"",validation:""}),O[i].validation+=D;}}let C=n==null?void 0:n.requestBody,N="";if(C&&(N=be(C),N)){let x=`${o.name}DTO`;if((He=(Ze=e==null?void 0:e.types)==null?void 0:Ze.name)!=null&&He.useOperationId&&(n!=null&&n.operationId)&&(x=`${n.operationId}DTO`),x=K(`${B}${x}`),(_e=(Xe=e==null?void 0:e.types)==null?void 0:Xe.name)!=null&&_e.format){let A=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"dto",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},x);A&&(x=`${B}${A}`);}let I=`export type ${x} = ${N};
51
- `;e!=null&&e.folderSplit?O[i].types+=I:g+=I;}if(((ge=e==null?void 0:e.validations)==null?void 0:ge.disable)!==true&&((tt=(et=e==null?void 0:e.validations)==null?void 0:et.generate)==null?void 0:tt.dto)!==false&&C){let x=((rt=e.validations)==null?void 0:rt.library)||"zod";if(C.content){let I=Object.keys(C.content);if(I[0]&&C.content[I[0]].schema){let A=((nt=e==null?void 0:e.validations)==null?void 0:nt.name)||((st=e==null?void 0:e.types)==null?void 0:st.name),S=typeof(A==null?void 0:A.prefix)=="string"?A.prefix:"I",J=typeof((ot=(at=e==null?void 0:e.validations)==null?void 0:at.name)==null?void 0:ot.suffix)=="string"?e.validations.name.suffix:"Schema",c=`${o.name}DTO`;if(A!=null&&A.useOperationId&&(n!=null&&n.operationId)&&(c=`${n.operationId}DTO`),c=K(`${S}${c}${J}`),(lt=(it=e==null?void 0:e.validations)==null?void 0:it.name)!=null&&lt.format){let q=e.validations.name.format({code:"",type:"dto",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},c);q&&(c=`${S}${q}${J}`);}else if((ut=(pt=e==null?void 0:e.types)==null?void 0:pt.name)!=null&&ut.format){let q=e.types.name.format("endpoint",{code:"",type:"dto",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},c);q&&(c=`${S}${q}${J}`);}let w=G(C.content[I[0]].schema,x),T=`export const ${c} = ${w};
50
+ `;n!=null&&n.folderSplit||f[$]||(f[$]={endpoints:"",types:"",validation:""}),f[$].validation+=me;}}let N=l==null?void 0:l.requestBody,Q="",L;if(N&&(Q=_(N),Q)){let b=`${h.name}DTO`;if((ft=(yt=n==null?void 0:n.types)==null?void 0:yt.name)!=null&&ft.useOperationId&&(l!=null&&l.operationId)&&(b=`${l.operationId}DTO`),b=ue(`${A}${b}`),($t=(ht=n==null?void 0:n.types)==null?void 0:ht.name)!=null&&$t.format){let k=n==null?void 0:n.types.name.format("endpoint",{code:"",type:"dto",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},b);k&&(b=`${A}${k}`);}L=b;let E=`export type ${b} = ${Q};
51
+ `;n!=null&&n.folderSplit?f[$].types+=E:J+=E;}if(((gt=n==null?void 0:n.validations)==null?void 0:gt.disable)!==true&&((bt=(Ct=n==null?void 0:n.validations)==null?void 0:Ct.generate)==null?void 0:bt.dto)!==false&&N){let b=((It=n.validations)==null?void 0:It.library)||"zod";if(N.content){let E=Object.keys(N.content);if(E[0]&&N.content[E[0]].schema){let k=((xt=n==null?void 0:n.validations)==null?void 0:xt.name)||((Et=n==null?void 0:n.types)==null?void 0:Et.name),F=typeof(k==null?void 0:k.prefix)=="string"?k.prefix:"I",K=typeof((wt=(Tt=n==null?void 0:n.validations)==null?void 0:Tt.name)==null?void 0:wt.suffix)=="string"?n.validations.name.suffix:"Schema",M=`${h.name}DTO`;if(k!=null&&k.useOperationId&&(l!=null&&l.operationId)&&(M=`${l.operationId}DTO`),M=ue(`${F}${M}${K}`),(Pt=(At=n==null?void 0:n.validations)==null?void 0:At.name)!=null&&Pt.format){let X=n.validations.name.format({code:"",type:"dto",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},M);X&&(M=`${F}${X}${K}`);}else if((qt=(vt=n==null?void 0:n.types)==null?void 0:vt.name)!=null&&qt.format){let X=n.types.name.format("endpoint",{code:"",type:"dto",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},M);X&&(M=`${F}${X}${K}`);}let B=O(N.content[E[0]].schema,b),U=`export const ${M} = ${B};
52
52
 
53
- `;e!=null&&e.folderSplit||O[i]||(O[i]={endpoints:"",types:"",validation:""}),O[i].validation+=T;}}}let k={},R="";if(n!=null&&n.responses){let x=n==null?void 0:n.responses;Object.keys(x).forEach(A=>{var S,J,c,w;if(R=be(x[A]),k[A]=R,R){let T=`${o.name}${A}Response`;if((J=(S=e==null?void 0:e.types)==null?void 0:S.name)!=null&&J.useOperationId&&(n!=null&&n.operationId)&&(T=`${n.operationId}${A}Response`),T=K(`${B}${T}`),(w=(c=e==null?void 0:e.types)==null?void 0:c.name)!=null&&w.format){let D=e==null?void 0:e.types.name.format("endpoint",{code:A,type:"response",method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},T);D&&(T=`${B}${D}`);}let q=`export type ${T} = ${R};
54
- `;e!=null&&e.folderSplit?O[i].types+=q:g+=q;}});}let ee=x=>!x||!x.length?"":x.map(I=>Object.entries(I).map(([S,J])=>{let c=S,w="";return Array.isArray(J)&&J.length&&(w=`
55
- - Scopes: [\`${J.join("`, `")}\`]`,c=`**${c}**`),`
56
- - ${c}${w}`}).join("")).join(`
57
- `),W=n!=null&&n.security?ee(n.security):"",Q="";if(!((dt=(mt=e==null?void 0:e.endpoints)==null?void 0:mt.doc)!=null&&dt.disable)){let x="";if((ft=(yt=e==null?void 0:e.endpoints)==null?void 0:yt.doc)!=null&&ft.showCurl){let I={},A="",S="";($t=n.requestBody)!=null&&$t.content&&Object.keys(n.requestBody.content).forEach(w=>{let T=n.requestBody.content[w].schema;if(T){Array.isArray(I["Content-type"])?I["Content-type"].push(w):I["Content-type"]=[w];let q=V(m,T);q&&(A=q);}}),n!=null&&n.security&&n.security.forEach(c=>{Object.keys(c).forEach(w=>{var q,D;let T=(D=(q=m.components)==null?void 0:q.securitySchemes)==null?void 0:D[w];T&&(T.type==="mutualTLS"?S+=`
58
- --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:T.type==="apiKey"?I[(T==null?void 0:T.name)||"X-API-KEY"]="{API_KEY_VALUE}":I.Authorization=`${(T==null?void 0:T.scheme)==="basic"?"Basic":"Bearer"} {${(T==null?void 0:T.scheme)==="basic"?"VALUE":"TOKEN"}}`);});});let J={};Object.keys(I).forEach(c=>{Array.isArray(I[c])?J[c]=I[c].join("; "):J[c]=I[c];}),x=`
53
+ `;n!=null&&n.folderSplit||f[$]||(f[$]={endpoints:"",types:"",validation:""}),f[$].validation+=U;}}}let H={},le="",pe="";if(l!=null&&l.responses){let b=l==null?void 0:l.responses;Object.keys(b).forEach(k=>{var F,K,M,B;if(le=_(b[k]),H[k]=le,le){let U=`${h.name}${k}Response`;if((K=(F=n==null?void 0:n.types)==null?void 0:F.name)!=null&&K.useOperationId&&(l!=null&&l.operationId)&&(U=`${l.operationId}${k}Response`),U=ue(`${A}${U}`),(B=(M=n==null?void 0:n.types)==null?void 0:M.name)!=null&&B.format){let ee=n==null?void 0:n.types.name.format("endpoint",{code:k,type:"response",method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},U);ee&&(U=`${A}${ee}`);}let X=`export type ${U} = ${le};
54
+ `;n!=null&&n.folderSplit?f[$].types+=X:J+=X,H[k]=U;let me=parseInt(k);me>=200&&me<300&&(pe=U);}});}let $e=b=>!b||!b.length?"":b.map(E=>Object.entries(E).map(([F,K])=>{let M=F,B="";return Array.isArray(K)&&K.length&&(B=`
55
+ - Scopes: [\`${K.join("`, `")}\`]`,M=`**${M}**`),`
56
+ - ${M}${B}`}).join("")).join(`
57
+ `),Ce=l!=null&&l.security?$e(l.security):"",be="";if(!((Ot=(jt=n==null?void 0:n.endpoints)==null?void 0:jt.doc)!=null&&Ot.disable)){let b="";if((Rt=(kt=n==null?void 0:n.endpoints)==null?void 0:kt.doc)!=null&&Rt.showCurl){let E={},k="",F="";(St=l.requestBody)!=null&&St.content&&Object.keys(l.requestBody.content).forEach(B=>{let U=l.requestBody.content[B].schema;if(U){Array.isArray(E["Content-type"])?E["Content-type"].push(B):E["Content-type"]=[B];let X=v(o,U);X&&(k=X);}}),l!=null&&l.security&&l.security.forEach(M=>{Object.keys(M).forEach(B=>{var X,me;let U=(me=(X=o.components)==null?void 0:X.securitySchemes)==null?void 0:me[B];U&&(U.type==="mutualTLS"?F+=`
58
+ --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:U.type==="apiKey"?E[(U==null?void 0:U.name)||"X-API-KEY"]="{API_KEY_VALUE}":E.Authorization=`${(U==null?void 0:U.scheme)==="basic"?"Basic":"Bearer"} {${(U==null?void 0:U.scheme)==="basic"?"VALUE":"TOKEN"}}`);});});let K={};Object.keys(E).forEach(M=>{Array.isArray(E[M])?K[M]=E[M].join("; "):K[M]=E[M];}),b=`
59
59
  \`\`\`bash
60
- ${CurlGenerator({url:P+t,method:a.toUpperCase(),headers:J,body:A})}${S}
61
- \`\`\``;}Q=`/**${n!=null&&n.description?`
62
- * ${n==null?void 0:n.description} `:""}
63
- * **Method**: \`${a.toUpperCase()}\`
64
- * **Summary**: ${(n==null?void 0:n.summary)||""}
65
- * **Tags**: [${((xt=n==null?void 0:n.tags)==null?void 0:xt.join(", "))||""}]
66
- * **OperationId**: ${(n==null?void 0:n.operationId)||""} ${$?`
67
- * **Query**: ${ue($)} `:""}${N?`
68
- * **DTO**: ${ue(N)} `:""}${R?`
69
- * **Response**: ${Object.entries(k).map(([I,A])=>`
70
- - **${I}**: ${ue(A,2)} `).join("")}`:""}${W?`
71
- * **Security**: ${W}
72
- `:""}${x}
60
+ ${CurlGenerator({url:y+a,method:c.toUpperCase(),headers:K,body:k})}${F}
61
+ \`\`\``;}be=`/**${l!=null&&l.description?`
62
+ * ${l==null?void 0:l.description} `:""}
63
+ * **Method**: \`${c.toUpperCase()}\`
64
+ * **Summary**: ${(l==null?void 0:l.summary)||""}
65
+ * **Tags**: [${((Ut=l==null?void 0:l.tags)==null?void 0:Ut.join(", "))||""}]
66
+ * **OperationId**: ${(l==null?void 0:l.operationId)||""} ${V?`
67
+ * **Query**: ${ve(V)} `:""}${Q?`
68
+ * **DTO**: ${ve(Q)} `:""}${le?`
69
+ * **Response**: ${Object.entries(H).map(([E,k])=>`
70
+ - **${E}**: ${ve(k,2)} `).join("")}`:""}${Ce?`
71
+ * **Security**: ${Ce}
72
+ `:""}${b}
73
73
  */
74
- `;}let X=(It=(Ot=e==null?void 0:e.endpoints)==null?void 0:Ot.name)!=null&&It.useOperationId&&((ht=n==null?void 0:n.operationId)==null?void 0:ht.length)>0?n.operationId:`${o.name}`;if((jt=(bt=e==null?void 0:e.endpoints)==null?void 0:bt.name)!=null&&jt.format){let x=e==null?void 0:e.endpoints.name.format({method:a,path:t,summary:n==null?void 0:n.summary,operationId:n==null?void 0:n.operationId},X);x&&(X=x);}let le={method:`"${a}"`,operationId:`"${n==null?void 0:n.operationId}"`,url:z,tags:(n==null?void 0:n.tags)||[]},te=`${Q}export const ${_}${X} = ${((Ct=(vt=e==null?void 0:e.endpoints)==null?void 0:vt.value)==null?void 0:Ct.type)==="object"?se(le):z};
75
- `;e!=null&&e.folderSplit?O[i].endpoints+=te:ye+=te;});}),e!=null&&e.folderSplit){for(let[t,r]of Object.entries(O))if(r.endpoints||r.types){let f=M.join(y,t);if(r.endpoints){let l=M.join(Y,f,"endpoints.ts");yield U.promises.mkdir(M.dirname(l),{recursive:true}),yield Z(l,r.endpoints,e);}if(r.types){let l=M.join(Y,f,"types.ts");yield U.promises.mkdir(M.dirname(l),{recursive:true});let a=Object.values(H).length>0?`import * as Shared from "../shared";
74
+ `;}let de=(Gt=(Mt=n==null?void 0:n.endpoints)==null?void 0:Mt.name)!=null&&Gt.useOperationId&&((Nt=l==null?void 0:l.operationId)==null?void 0:Nt.length)>0?l.operationId:`${h.name}`;if((Ft=(Lt=n==null?void 0:n.endpoints)==null?void 0:Lt.name)!=null&&Ft.format){let b=n==null?void 0:n.endpoints.name.format({method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},de);b&&(de=b);}let Re={method:`"${c}"`,operationId:`"${l==null?void 0:l.operationId}"`,url:W,tags:(l==null?void 0:l.tags)||[]},Ke=`${be}export const ${S}${de} = ${((Bt=(Qt=n==null?void 0:n.endpoints)==null?void 0:Qt.value)==null?void 0:Bt.type)==="object"?Ee(Re):W};
75
+ `;n!=null&&n.folderSplit?f[$].endpoints+=Ke:R+=Ke;let on={name:`${S}${de}`,method:c,path:a,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId,tags:d,parameters:(zt=l==null?void 0:l.parameters)==null?void 0:zt.filter(b=>!b.$ref&&b.in&&b.name).map(b=>{var E;return {name:b.name,in:b.in,required:b.required,type:((E=b.schema)==null?void 0:E.type)||"string"}}),requestBody:N?{type:Q,required:N.required}:void 0,responses:H?Object.entries(H).reduce((b,[E,k])=>(b[E]={type:k},b),{}):void 0,queryType:q,dtoType:L,responseType:pe||void 0};I.push(on);});}),n!=null&&n.folderSplit){for(let[a,p]of Object.entries(f))if(p.endpoints||p.types){let w=D.join(r,a);if(p.endpoints){let g=D.join(ce,w,"endpoints.ts");yield se.promises.mkdir(D.dirname(g),{recursive:true}),yield ye(g,p.endpoints,n);}if(p.types){let g=D.join(ce,w,"types.ts");yield se.promises.mkdir(D.dirname(g),{recursive:true});let c=Object.values(T).length>0?`import * as Shared from "../shared";
76
+
77
+ ${p.types}`:p.types;yield ye(g,c,n);}if(((De=n==null?void 0:n.validations)==null?void 0:De.disable)!==true&&p.validation){let g=((Je=n.validations)==null?void 0:Je.library)||"zod",c=g==="joi"?'import Joi from "joi";':g==="yup"?'import * as yup from "yup";':'import { z } from "zod";',h=D.join(ce,w,"validations.ts");yield se.promises.mkdir(D.dirname(h),{recursive:true}),yield ye(h,`${c}
78
+
79
+ ${p.validation}`,n);}}}if(R.length>0){let a=D.join(ce,r,"endpoints.ts");yield se.promises.mkdir(D.dirname(a),{recursive:true}),yield ye(a,R,n);}if(Object.values(T).length>0){let a=D.join(ce,r,n!=null&&n.folderSplit?"":"types","shared.ts");yield se.promises.mkdir(D.dirname(a),{recursive:true}),yield ye(a,Object.values(T).join(`
80
+ `),n);}if(J.length>0){let a=D.join(ce,r,"types","index.ts");yield se.promises.mkdir(D.dirname(a),{recursive:true}),yield ye(a,`${Object.values(T).length>0?`import * as Shared from "./shared";
81
+
82
+ `:""}${J}`,n);}if(((We=n==null?void 0:n.validations)==null?void 0:We.disable)!==true&&!(n!=null&&n.folderSplit)){let a=((He=n.validations)==null?void 0:He.library)||"zod",p=a==="joi"?'import Joi from "joi";':a==="yup"?'import * as yup from "yup";':'import { z } from "zod";',w=Object.values(f).map(g=>g.validation).filter(g=>g.length>0).join("");if(w){let g=D.join(ce,r,"validations.ts");yield se.promises.mkdir(D.dirname(g),{recursive:true}),yield ye(g,`${p}
83
+
84
+ ${w}`,n);}}Xt(i,I);}),Le=nn;var rn=(u,i)=>{let n=u;return i.tags&&i.tags.length>0&&(n=n.filter(e=>!e.tags||e.tags.length===0?false:e.tags.some(s=>i.tags.includes(s)))),i.endpoints&&i.endpoints.length>0&&(n=n.filter(e=>i.endpoints.includes(e.name))),n};var Fe=(u,i,n=false)=>{var r,f;let e=i.baseURL||"";i.auth;let t=`// Generated Fetch API Client
85
+ `;t+=`// This file was auto-generated. Add custom code in the marked sections.
86
+
87
+ `,t+=`import type {
88
+ `;let o=new Set;return u.forEach(m=>{m.queryType&&o.add(m.queryType),m.dtoType&&o.add(m.dtoType),m.responseType&&o.add(m.responseType);}),o.forEach(m=>{t+=` ${m},
89
+ `;}),t+=`} from '../types';
90
+
91
+ `,t+=`import {
92
+ `,u.forEach(m=>{t+=` ${m.name} as ${m.name}_endpoint,
93
+ `;}),t+=`} from '../endpoints';
94
+
95
+ `,t+=`export interface ApiConfig {
96
+ `,t+=` baseURL?: string;
97
+ `,t+=` headers?: Record<string, string>;
98
+ `,t+=`}
99
+
100
+ `,t+=`let globalConfig: ApiConfig = {
101
+ `,t+=` baseURL: "${e}",
102
+ `,t+=`};
103
+
104
+ `,t+=`export const setApiConfig = (config: Partial<ApiConfig>) => {
105
+ `,t+=` globalConfig = { ...globalConfig, ...config };
106
+ `,t+=`};
107
+
108
+ `,(r=i.errorHandling)!=null&&r.generateErrorClasses&&(t+=`export class ApiError extends Error {
109
+ `,t+=` constructor(
110
+ `,t+=` message: string,
111
+ `,t+=` public statusCode: number,
112
+ `,t+=` public response?: any
113
+ `,t+=` ) {
114
+ `,t+=` super(message);
115
+ `,t+=` this.name = 'ApiError';
116
+ `,t+=` }
117
+ `,t+=`}
118
+
119
+ `),t+=`async function fetchAPI<T>(
120
+ `,t+=` url: string,
121
+ `,t+=` options: RequestInit = {}
122
+ `,t+=`): Promise<T> {
123
+ `,t+=` const headers: Record<string, string> = {
124
+ `,t+=` 'Content-Type': 'application/json',
125
+ `,t+=` ...globalConfig.headers,
126
+ `,t+=` ...(options.headers as Record<string, string>),
127
+ `,t+=` };
128
+
129
+ `,t+=" const response = await fetch(`${globalConfig.baseURL}${url}`, {\n",t+=` ...options,
130
+ `,t+=` headers,
131
+ `,t+=` });
132
+
133
+ `,t+=` if (!response.ok) {
134
+ `,(f=i.errorHandling)!=null&&f.generateErrorClasses?(t+=` const errorData = await response.json().catch(() => ({}));
135
+ `,t+=` throw new ApiError(
136
+ `,t+=` errorData.message || response.statusText,
137
+ `,t+=` response.status,
138
+ `,t+=` errorData
139
+ `,t+=` );
140
+ `):t+=" throw new Error(`HTTP error! status: ${response.status}`);\n",t+=` }
141
+
142
+ `,t+=` return response.json();
143
+ `,t+=`}
144
+
145
+ `,u.forEach(m=>{var J,T;let y=m.name,A=((J=m.parameters)==null?void 0:J.filter(I=>I.in==="path"))||[],S=((T=m.parameters)==null?void 0:T.filter(I=>I.in==="query"))||[],j=A.length>0,x=S.length>0,v=!!m.requestBody,G=m.responseType||"any";if(t+=`/**
146
+ `,m.summary&&(t+=` * ${m.summary}
147
+ `),t+=` * @method ${m.method.toUpperCase()}
148
+ `,t+=` * @path ${m.path}
149
+ `,m.tags&&m.tags.length>0&&(t+=` * @tags ${m.tags.join(", ")}
150
+ `),t+=` */
151
+ `,t+=`export async function ${y}(`,(j||x||v)&&(t+=`params: {
152
+ `,j&&(t+=` url: {
153
+ `,A.forEach(I=>{let O={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[I.type||"string"]||"any",z=I.required?"":"?";t+=` ${I.name}${z}: ${O};
154
+ `;}),t+=` };
155
+ `),x&&(t+=` query: ${m.queryType||"Record<string, any>"};
156
+ `),v&&(t+=` data: ${m.dtoType||"any"};
157
+ `),t+=`}
158
+ `),t+=`): Promise<${G}> {
159
+ `,j||x||v){let I=[];j&&I.push("url"),x&&I.push("query"),v&&I.push("data"),t+=` const { ${I.join(", ")} } = params;
160
+ `;}let R;if(j){let I=A.map(_=>`url.${_.name}`).join(", ");R=`${m.name}_endpoint(${I})`;}else R=`${m.name}_endpoint`;x?(t+=` const queryParams = new URLSearchParams();
161
+ `,S.forEach(I=>{I.required?t+=` queryParams.append('${I.name}', String(query.${I.name}));
162
+ `:(t+=` if (query.${I.name} !== undefined) {
163
+ `,t+=` queryParams.append('${I.name}', String(query.${I.name}));
164
+ `,t+=` }
165
+ `);}),t+=` const _url = \`\${${R}}?\${queryParams.toString()}\`;
166
+ `):t+=` const _url = ${R};
167
+ `,t+=` return fetchAPI<${G}>(_url, {
168
+ `,t+=` method: '${m.method.toUpperCase()}',
169
+ `,v&&(t+=` body: JSON.stringify(data),
170
+ `),t+=` });
171
+ `,t+=`}
172
+
173
+ `;}),n&&(t+=`// Export all functions as a default object
174
+ `,t+=`const apiClient = {
175
+ `,t+=` setApiConfig,
176
+ `,u.forEach(m=>{t+=` ${m.name},
177
+ `;}),t+=`};
178
+
179
+ `,t+=`export default apiClient;
180
+ `),t},fe=(u,i,n=false)=>{var r,f;let e=i.baseURL||"";i.auth;let t=`// Generated Axios API Client
181
+ `;t+=`// This file was auto-generated. Add custom code in the marked sections.
182
+
183
+ `,t+=`import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
184
+
185
+ `,t+=`import type {
186
+ `;let o=new Set;return u.forEach(m=>{m.queryType&&o.add(m.queryType),m.dtoType&&o.add(m.dtoType),m.responseType&&o.add(m.responseType);}),o.forEach(m=>{t+=` ${m},
187
+ `;}),t+=`} from '../types';
188
+
189
+ `,t+=`import {
190
+ `,u.forEach(m=>{t+=` ${m.name},
191
+ `;}),t+=`} from '../endpoints';
192
+
193
+ `,t+=`export interface ApiConfig {
194
+ `,t+=` baseURL?: string;
195
+ `,t+=` headers?: Record<string, string>;
196
+ `,t+=` timeout?: number;
197
+ `,t+=`}
198
+
199
+ `,(r=i.errorHandling)!=null&&r.generateErrorClasses&&(t+=`export class ApiError extends Error {
200
+ `,t+=` constructor(
201
+ `,t+=` message: string,
202
+ `,t+=` public statusCode: number,
203
+ `,t+=` public response?: any
204
+ `,t+=` ) {
205
+ `,t+=` super(message);
206
+ `,t+=` this.name = 'ApiError';
207
+ `,t+=` }
208
+ `,t+=`}
209
+
210
+ `),t+=`class ApiClient {
211
+ `,t+=` private client: AxiosInstance;
212
+
213
+ `,t+=` constructor(config: ApiConfig = {}) {
214
+ `,t+=` this.client = axios.create({
215
+ `,t+=` baseURL: config.baseURL || "${e}",
216
+ `,t+=` timeout: config.timeout || 30000,
217
+ `,t+=` headers: {
218
+ `,t+=` 'Content-Type': 'application/json',
219
+ `,t+=` ...config.headers,
220
+ `,t+=` },
221
+ `,t+=` });
222
+
223
+ `,t+=` // Response interceptor for error handling
224
+ `,t+=` this.client.interceptors.response.use(
225
+ `,t+=` (response) => response,
226
+ `,t+=` (error) => {
227
+ `,(f=i.errorHandling)!=null&&f.generateErrorClasses?(t+=` const message = error.response?.data?.message || error.message;
228
+ `,t+=` const statusCode = error.response?.status || 500;
229
+ `,t+=` throw new ApiError(message, statusCode, error.response?.data);
230
+ `):t+=` return Promise.reject(error);
231
+ `,t+=` }
232
+ `,t+=` );
233
+ `,t+=` }
234
+
235
+ `,t+=` updateConfig(config: Partial<ApiConfig>) {
236
+ `,t+=` Object.assign(this.client.defaults, config);
237
+ `,t+=` }
238
+
239
+ `,u.forEach(m=>{var R,J;let y=m.name,A=((R=m.parameters)==null?void 0:R.filter(T=>T.in==="path"))||[],S=((J=m.parameters)==null?void 0:J.filter(T=>T.in==="query"))||[],j=A.length>0,x=S.length>0,v=!!m.requestBody,G=m.responseType||"any";if(t+=` /**
240
+ `,m.summary&&(t+=` * ${m.summary}
241
+ `),t+=` * @method ${m.method.toUpperCase()}
242
+ `,t+=` * @path ${m.path}
243
+ `,m.tags&&m.tags.length>0&&(t+=` * @tags ${m.tags.join(", ")}
244
+ `),t+=` */
245
+ `,t+=` async ${y}(`,(j||x||v)&&(t+=`params: {
246
+ `,j&&(t+=` url: {
247
+ `,A.forEach(T=>{let _={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[T.type||"string"]||"any",O=T.required?"":"?";t+=` ${T.name}${O}: ${_};
248
+ `;}),t+=` };
249
+ `),x&&(t+=` query: ${m.queryType||"Record<string, any>"};
250
+ `),v&&(t+=` data: ${m.dtoType||"any"};
251
+ `),t+=" }"),t+=`): Promise<${G}> {
252
+ `,j||x||v){let T=[];j&&T.push("url"),x&&T.push("query"),v&&T.push("data"),t+=` const { ${T.join(", ")} } = params;
253
+ `;}if(j){let T=A.map(I=>`url.${I.name}`).join(", ");t+=` const _url = ${m.name}(${T});
254
+ `;}else t+=` const _url = ${m.name};
255
+ `;t+=` const config: AxiosRequestConfig = {};
256
+ `,x&&(t+=` config.params = { ...query };
257
+ `),t+=` const response = await this.client.${m.method.toLowerCase()}<${G}>(
258
+ `,t+=` _url,
259
+ `,v?t+=` data,
260
+ config
261
+ `:t+=` config
262
+ `,t+=` );
263
+ `,t+=` return response.data;
264
+ `,t+=` }
265
+
266
+ `;}),t+=`}
267
+
268
+ `,n?t+=`export default ApiClient;
269
+ `:(t+=`export const apiClient = new ApiClient();
270
+ `,t+=`export default apiClient;
271
+ `),t},Qe=(u,i)=>{var f,m;let n=((f=i.reactQuery)==null?void 0:f.version)||5,e=((m=i.reactQuery)==null?void 0:m.mutations)!==false,s=!!(i.reactQuery&&i.reactQuery.infiniteQueries&&!i.reactQuery.infiniteQueries.disable),t=`// Generated React Query Hooks
272
+ `;t+=`// This file was auto-generated. Add custom code in the marked sections.
273
+
274
+ `;let o=e&&u.some(y=>["POST","PUT","PATCH","DELETE"].includes(y.method.toUpperCase()));if(n===5){let y=o?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
275
+ `:`import { useQuery, UseQueryOptions } from '@tanstack/react-query';
276
+ `;s&&(y=y.replace("@tanstack/react-query';\\n",`@tanstack/react-query';
277
+ import { useInfiniteQuery, UseInfiniteQueryOptions } from '@tanstack/react-query';
278
+ `)),t+=y;}else {let y=o?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from 'react-query';
279
+ `:`import { useQuery, UseQueryOptions } from 'react-query';
280
+ `;s&&(y=y.replace("react-query';\\n",`react-query';
281
+ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
282
+ `)),t+=y;}t+=`
283
+ `,t+=`import apiClient from './client';
284
+ `,t+=`import type {
285
+ `;let r=new Set;return u.forEach(y=>{y.queryType&&r.add(y.queryType),y.dtoType&&r.add(y.dtoType),y.responseType&&r.add(y.responseType);}),r.forEach(y=>{t+=` ${y},
286
+ `;}),t+=`} from '../types';
287
+
288
+ `,u.forEach(y=>{var I,_;let A=y.method.toUpperCase(),S=A==="GET",j=["POST","PUT","PATCH","DELETE"].includes(A),x=((I=y.parameters)==null?void 0:I.filter(O=>O.in==="path"))||[],v=((_=y.parameters)==null?void 0:_.filter(O=>O.in==="query"))||[],G=x.length>0,R=v.length>0,J=!!y.requestBody,T=y.responseType||"any";if(S){let O=v.map(te=>te.name.toLowerCase()),ae=(O.includes("page")||O.includes("cursor")||O.includes("cursorid")||O.includes("after")||O.includes("before"))&&s,oe=`use${y.name.charAt(0).toUpperCase()+y.name.slice(1)}`;if(t+=`/**
289
+ `,y.summary&&(t+=` * ${y.summary}
290
+ `),t+=` * @method ${A}
291
+ `,t+=` * @path ${y.path}
292
+ `,y.tags&&y.tags.length>0&&(t+=` * @tags ${y.tags.join(", ")}
293
+ `),t+=` */
294
+ `,G||R?(t+=`export function ${oe}(
295
+ `,t+=` params: {
296
+ `,G&&(t+=` url: {
297
+ `,x.forEach(te=>{let ge={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[te.type||"string"]||"any",he=te.required?"":"?";t+=` ${te.name}${he}: ${ge};
298
+ `;}),t+=` };
299
+ `),R&&(t+=` query: ${y.queryType||"Record<string, any>"};
300
+ `),t+=` },
301
+ `,t+=` options?: Omit<UseQueryOptions<${T}>, 'queryKey' | 'queryFn'>
302
+ `,t+=`) {
303
+ `,t+=` return useQuery({
304
+ `,t+=` queryKey: ['${y.name}', params],
305
+ `,t+=` queryFn: () => apiClient.${y.name}(params),
306
+ `,t+=` ...options,
307
+ `,t+=` });
308
+ `,t+=`}
309
+
310
+ `):(t+=`export function ${oe}(
311
+ `,t+=` options?: Omit<UseQueryOptions<${T}>, 'queryKey' | 'queryFn'>
312
+ `,t+=`) {
313
+ `,t+=` return useQuery({
314
+ `,t+=` queryKey: ['${y.name}'],
315
+ `,t+=` queryFn: () => apiClient.${y.name}(),
316
+ `,t+=` ...options,
317
+ `,t+=` });
318
+ `,t+=`}
319
+
320
+ `),ae){let te=`${oe}Infinite`;G||R?(t+=`export function ${te}(
321
+ `,t+=` params: {
322
+ `,G&&(t+=` url: {
323
+ `,x.forEach(ie=>{let he={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ie.type||"string"]||"any",Pe=ie.required?"":"?";t+=` ${ie.name}${Pe}: ${he};
324
+ `;}),t+=` };
325
+ `),R&&(t+=` query: ${y.queryType||"Record<string, any>"};
326
+ `),t+=` },
327
+ `,t+=` options?: Omit<UseInfiniteQueryOptions<${T}, Error, ${T}>, 'queryKey' | 'queryFn'>
328
+ `,t+=`) {
329
+ `,t+=` return useInfiniteQuery({
330
+ `,t+=` queryKey: ['${y.name}', params],
331
+ `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${y.name}({ ...params, query: { ...(params.query || {}), page: pageParam } }),
332
+ `,t+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
333
+ `,t+=` ...options,
334
+ `,t+=` });
335
+ `,t+=`}
336
+
337
+ `):(t+=`export function ${te}(
338
+ `,t+=` options?: Omit<UseInfiniteQueryOptions<${T}, Error, ${T}>, 'queryKey' | 'queryFn'>
339
+ `,t+=`) {
340
+ `,t+=` return useInfiniteQuery({
341
+ `,t+=` queryKey: ['${y.name}'],
342
+ `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${y.name}({ query: { page: pageParam } }),
343
+ `,t+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
344
+ `,t+=` ...options,
345
+ `,t+=` });
346
+ `,t+=`}
347
+
348
+ `);}}else if(j&&e){let O=`use${y.name.charAt(0).toUpperCase()+y.name.slice(1)}`;t+=`/**
349
+ `,y.summary&&(t+=` * ${y.summary}
350
+ `),t+=` * @method ${A}
351
+ `,t+=` * @path ${y.path}
352
+ `,y.tags&&y.tags.length>0&&(t+=` * @tags ${y.tags.join(", ")}
353
+ `),t+=` */
354
+ `;let z="void";(G||R||J)&&(z=`{
355
+ `,G&&(z+=` url: {
356
+ `,x.forEach(ae=>{let te={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ae.type||"string"]||"any",ie=ae.required?"":"?";z+=` ${ae.name}${ie}: ${te};
357
+ `;}),z+=` };
358
+ `),R&&(z+=` query: ${y.queryType||"Record<string, any>"};
359
+ `),J&&(z+=` data: ${y.dtoType||"any"};
360
+ `),z+=" }"),t+=`export function ${O}(
361
+ `,t+=` options?: Omit<UseMutationOptions<${T}, Error, ${z}>, 'mutationFn'>
362
+ `,t+=`) {
363
+ `,t+=` return useMutation({
364
+ `,t+=" mutationFn: (",z!=="void"&&(t+=`variables: ${z}`),t+=`) => {
365
+ `,t+=` return apiClient.${y.name}(${z!=="void"?"variables":""});
366
+ `,t+=` },
367
+ `,t+=` ...options,
368
+ `,t+=` });
369
+ `,t+=`}
370
+
371
+ `;}}),t},Be=(u,i)=>{var o;let n=((o=i.swr)==null?void 0:o.mutations)!==false,e=`// Generated SWR Hooks
372
+ `;e+=`// This file was auto-generated. Add custom code in the marked sections.
373
+
374
+ `,e+=`/**
375
+ `,e+=` * SWR Hooks - Complete Usage Guide
376
+ `,e+=` *
377
+ `,e+=` * This file contains type-safe SWR hooks generated from your OpenAPI specification.
378
+ `,e+=` *
379
+ `,e+=` * ## Quick Start
380
+ `,e+=` *
381
+ `,e+=` * 1. Configure SWR globally:
382
+ `,e+=` *
383
+ `,e+=" * ```typescript\n",e+=` * // app/providers.tsx
384
+ `,e+=` * import { SWRConfig } from 'swr';
385
+ `,e+=` *
386
+ `,e+=` * export function Providers({ children }) {
387
+ `,e+=` * return (
388
+ `,e+=` * <SWRConfig value={{
389
+ `,e+=` * revalidateOnFocus: false,
390
+ `,e+=` * shouldRetryOnError: true,
391
+ `,e+=` * errorRetryCount: 3,
392
+ `,e+=` * }}>
393
+ `,e+=` * {children}
394
+ `,e+=` * </SWRConfig>
395
+ `,e+=` * );
396
+ `,e+=` * }
397
+ `,e+=" * ```\n",e+=` *
398
+ `,e+=` * 2. Use the hooks in your components:
399
+ `,e+=` *
400
+ `,e+=` * ### Reading Data (GET)
401
+ `,e+=` *
402
+ `,e+=" * ```typescript\n",e+=` * import { useGetItems } from './hooks';
403
+ `,e+=` *
404
+ `,e+=` * function ItemList() {
405
+ `,e+=` * const { data, error, isLoading, mutate } = useGetItems();
406
+ `,e+=` *
407
+ `,e+=` * if (isLoading) return <div>Loading...</div>;
408
+ `,e+=` * if (error) return <div>Error: {error.message}</div>;
409
+ `,e+=` *
410
+ `,e+=` * return (
411
+ `,e+=` * <div>
412
+ `,e+=` * {data?.map(item => <div key={item.id}>{item.name}</div>)}
413
+ `,e+=` * <button onClick={() => mutate()}>Refresh</button>
414
+ `,e+=` * </div>
415
+ `,e+=` * );
416
+ `,e+=` * }
417
+ `,e+=" * ```\n",e+=` *
418
+ `,e+=` * ### With Path Parameters
419
+ `,e+=` *
420
+ `,e+=" * ```typescript\n",e+=` * function ItemDetail({ id }: { id: string }) {
421
+ `,e+=` * const { data } = useGetItemById({ url: { id } });
422
+ `,e+=` * return <div>{data?.name}</div>;
423
+ `,e+=` * }
424
+ `,e+=" * ```\n",e+=` *
425
+ `,e+=` * ### Creating Data (POST)
426
+ `,e+=` *
427
+ `,e+=" * ```typescript\n",e+=` * import { useCreateItem, useGetItems } from './hooks';
428
+ `,e+=` *
429
+ `,e+=` * function CreateItem() {
430
+ `,e+=` * const { trigger, isMutating, error } = useCreateItem();
431
+ `,e+=` * const { mutate: revalidateList } = useGetItems();
432
+ `,e+=` *
433
+ `,e+=` * const handleSubmit = async (name: string) => {
434
+ `,e+=` * try {
435
+ `,e+=` * const result = await trigger({
436
+ `,e+=` * arg: { data: { name } }
437
+ `,e+=` * });
438
+ `,e+=` * await revalidateList(); // Refresh the list
439
+ `,e+=` * alert('Created!');
440
+ `,e+=` * } catch (err) {
441
+ `,e+=` * console.error('Failed:', err);
442
+ `,e+=` * }
443
+ `,e+=` * };
444
+ `,e+=` *
445
+ `,e+=` * return (
446
+ `,e+=` * <button onClick={() => handleSubmit('New Item')} disabled={isMutating}>
447
+ `,e+=` * {isMutating ? 'Creating...' : 'Create'}
448
+ `,e+=` * </button>
449
+ `,e+=` * );
450
+ `,e+=` * }
451
+ `,e+=" * ```\n",e+=` *
452
+ `,e+=` * ### Updating Data (PUT/PATCH)
453
+ `,e+=` *
454
+ `,e+=" * ```typescript\n",e+=` * function UpdateItem({ id }: { id: string }) {
455
+ `,e+=` * const { data, mutate: revalidate } = useGetItemById({ url: { id } });
456
+ `,e+=` * const { trigger } = useUpdateItem();
457
+ `,e+=` *
458
+ `,e+=` * const handleUpdate = async (newName: string) => {
459
+ `,e+=` * await trigger({
460
+ `,e+=` * arg: {
461
+ `,e+=` * url: { id },
462
+ `,e+=` * data: { name: newName }
463
+ `,e+=` * }
464
+ `,e+=` * });
465
+ `,e+=` * await revalidate(); // Refresh the detail view
466
+ `,e+=` * };
467
+ `,e+=` *
468
+ `,e+=` * return <button onClick={() => handleUpdate('Updated')}>Update</button>;
469
+ `,e+=` * }
470
+ `,e+=" * ```\n",e+=` *
471
+ `,e+=` * ### Deleting Data (DELETE)
472
+ `,e+=` *
473
+ `,e+=" * ```typescript\n",e+=` * function DeleteItem({ id }: { id: string }) {
474
+ `,e+=` * const { trigger, isMutating } = useDeleteItem();
475
+ `,e+=` * const { mutate: revalidateList } = useGetItems();
476
+ `,e+=` *
477
+ `,e+=` * const handleDelete = async () => {
478
+ `,e+=` * if (confirm('Delete?')) {
479
+ `,e+=` * await trigger({ arg: { url: { id } } });
480
+ `,e+=` * await revalidateList();
481
+ `,e+=` * }
482
+ `,e+=` * };
483
+ `,e+=` *
484
+ `,e+=` * return (
485
+ `,e+=` * <button onClick={handleDelete} disabled={isMutating}>
486
+ `,e+=` * {isMutating ? 'Deleting...' : 'Delete'}
487
+ `,e+=` * </button>
488
+ `,e+=` * );
489
+ `,e+=` * }
490
+ `,e+=" * ```\n",e+=` *
491
+ `,e+=` * ## Advanced Patterns
492
+ `,e+=` *
493
+ `,e+=` * ### Optimistic Updates
494
+ `,e+=` *
495
+ `,e+=" * ```typescript\n",e+=` * function OptimisticUpdate({ id }: { id: string }) {
496
+ `,e+=` * const { data, mutate: revalidate } = useGetItemById({ url: { id } });
497
+ `,e+=` * const { trigger } = useUpdateItem();
498
+ `,e+=` *
499
+ `,e+=` * const handleUpdate = async (newName: string) => {
500
+ `,e+=` * // Update UI immediately
501
+ `,e+=` * revalidate({ ...data!, name: newName }, false);
502
+ `,e+=` *
503
+ `,e+=` * try {
504
+ `,e+=` * await trigger({ arg: { url: { id }, data: { name: newName } } });
505
+ `,e+=` * await revalidate(); // Sync with server
506
+ `,e+=` * } catch (err) {
507
+ `,e+=` * await revalidate(); // Rollback on error
508
+ `,e+=` * }
509
+ `,e+=` * };
510
+ `,e+=` *
511
+ `,e+=` * return <button onClick={() => handleUpdate('New')}>Update</button>;
512
+ `,e+=` * }
513
+ `,e+=" * ```\n",e+=` *
514
+ `,e+=` * ### Conditional Fetching
515
+ `,e+=` *
516
+ `,e+=" * ```typescript\n",e+=` * function ConditionalFetch({ id, enabled }: { id: string; enabled: boolean }) {
517
+ `,e+=` * // Only fetch when enabled is true
518
+ `,e+=` * const { data } = useGetItemById(enabled ? { url: { id } } : null);
519
+ `,e+=` * return <div>{data?.name || 'Not loaded'}</div>;
520
+ `,e+=` * }
521
+ `,e+=" * ```\n",e+=` *
522
+ `,e+=` * ### Pagination
523
+ `,e+=` *
524
+ `,e+=" * ```typescript\n",e+=` * function PaginatedList() {
525
+ `,e+=` * const [page, setPage] = useState(1);
526
+ `,e+=` * const { data, isLoading } = useGetItems({ query: { page, limit: 10 } });
527
+ `,e+=` *
528
+ `,e+=` * return (
529
+ `,e+=` * <div>
530
+ `,e+=` * {data?.items.map(item => <div key={item.id}>{item.name}</div>)}
531
+ `,e+=` * <button onClick={() => setPage(p => p - 1)} disabled={page === 1}>
532
+ `,e+=` * Previous
533
+ `,e+=` * </button>
534
+ `,e+=` * <button onClick={() => setPage(p => p + 1)}>Next</button>
535
+ `,e+=` * </div>
536
+ `,e+=` * );
537
+ `,e+=` * }
538
+ `,e+=" * ```\n",e+=` *
539
+ `,e+=` * ### Custom Configuration
540
+ `,e+=` *
541
+ `,e+=" * ```typescript\n",e+=` * function CustomConfig({ id }: { id: string }) {
542
+ `,e+=` * const { data } = useGetItemById(
543
+ `,e+=` * { url: { id } },
544
+ `,e+=` * {
545
+ `,e+=` * refreshInterval: 5000, // Refresh every 5s
546
+ `,e+=` * revalidateOnFocus: true, // Refresh on window focus
547
+ `,e+=` * dedupingInterval: 2000, // Dedupe within 2s
548
+ `,e+=` * onError: (err) => console.error(err),
549
+ `,e+=` * onSuccess: (data) => console.log('Loaded:', data),
550
+ `,e+=` * }
551
+ `,e+=` * );
552
+ `,e+=` * return <div>{data?.name}</div>;
553
+ `,e+=` * }
554
+ `,e+=" * ```\n",e+=` *
555
+ `,e+=` * ## Hook Return Values
556
+ `,e+=` *
557
+ `,e+=` * ### Query Hooks (GET)
558
+ `,e+=" * - `data`: The response data (undefined while loading)\n",e+=" * - `error`: Error object if request failed\n",e+=" * - `isLoading`: True during initial load\n",e+=" * - `isValidating`: True during revalidation\n",e+=" * - `mutate()`: Manually trigger revalidation\n",e+=` *
559
+ `,e+=` * ### Mutation Hooks (POST/PUT/DELETE)
560
+ `,e+=" * - `trigger()`: Execute the mutation\n",e+=" * - `data`: The response data from the mutation\n",e+=" * - `error`: Error object if mutation failed\n",e+=" * - `isMutating`: True while mutation is in progress\n",e+=" * - `reset()`: Reset the mutation state\n",e+=` *
561
+ `,e+=` * @see https://swr.vercel.app/docs/getting-started
562
+ `,e+=` * @see https://swr.vercel.app/docs/mutation
563
+ `,e+=` */
564
+
565
+ `,e+=`import useSWR, { SWRConfiguration } from 'swr';
566
+ `,n&&u.some(r=>["POST","PUT","PATCH","DELETE"].includes(r.method.toUpperCase()))&&(e+=`import useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation';
567
+ `),e+=`
568
+ `,e+=`import apiClient from './client';
569
+ `,e+=`import type {
570
+ `;let t=new Set;return u.forEach(r=>{r.queryType&&t.add(r.queryType),r.dtoType&&t.add(r.dtoType),r.responseType&&t.add(r.responseType);}),t.forEach(r=>{e+=` ${r},
571
+ `;}),e+=`} from '../types';
572
+
573
+ `,u.forEach(r=>{var R,J;let f=r.method.toUpperCase(),m=f==="GET",y=["POST","PUT","PATCH","DELETE"].includes(f),A=((R=r.parameters)==null?void 0:R.filter(T=>T.in==="path"))||[],S=((J=r.parameters)==null?void 0:J.filter(T=>T.in==="query"))||[],j=A.length>0,x=S.length>0,v=!!r.requestBody,G=r.responseType||"any";if(m){let T=`use${r.name.charAt(0).toUpperCase()+r.name.slice(1)}`;e+=`/**
574
+ `,r.summary&&(e+=` * ${r.summary}
575
+ `),e+=` * @method ${f}
576
+ `,e+=` * @path ${r.path}
577
+ `,r.tags&&r.tags.length>0&&(e+=` * @tags ${r.tags.join(", ")}
578
+ `),e+=` */
579
+ `,j||x?(e+=`export function ${T}(
580
+ `,e+=` params: {
581
+ `,j&&(e+=` url: {
582
+ `,A.forEach(I=>{let O={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[I.type||"string"]||"any",z=I.required?"":"?";e+=` ${I.name}${z}: ${O};
583
+ `;}),e+=` };
584
+ `),x&&(e+=` query: ${r.queryType||"Record<string, any>"};
585
+ `),e+=` },
586
+ `,e+=` config?: SWRConfiguration<${G}>
587
+ `,e+=`) {
588
+ `,e+=` return useSWR(
589
+ `,e+=` ['${r.name}', params],
590
+ `,e+=` () => apiClient.${r.name}(params),
591
+ `,e+=` config
592
+ `,e+=` );
593
+ `):(e+=`export function ${T}(
594
+ `,e+=` config?: SWRConfiguration<${G}>
595
+ `,e+=`) {
596
+ `,e+=` return useSWR(
597
+ `,e+=` '${r.name}',
598
+ `,e+=` () => apiClient.${r.name}(),
599
+ `,e+=` config
600
+ `,e+=` );
601
+ `),e+=`}
602
+
603
+ `;}else if(y&&n){let T=`use${r.name.charAt(0).toUpperCase()+r.name.slice(1)}`;e+=`/**
604
+ `,r.summary&&(e+=` * ${r.summary}
605
+ `),e+=` * @method ${f}
606
+ `,e+=` * @path ${r.path}
607
+ `,r.tags&&r.tags.length>0&&(e+=` * @tags ${r.tags.join(", ")}
608
+ `),e+=` */
609
+ `;let I="void",_="void";(j||x||v)&&(I=`{
610
+ `,j&&(I+=` url: {
611
+ `,A.forEach(O=>{let ae={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[O.type||"string"]||"any",oe=O.required?"":"?";I+=` ${O.name}${oe}: ${ae};
612
+ `;}),I+=` };
613
+ `),x&&(I+=` query: ${r.queryType||"Record<string, any>"};
614
+ `),v&&(I+=` data: ${r.dtoType||"any"};
615
+ `),I+=" }",_=`{ arg: ${I} }`),e+=`export function ${T}(
616
+ `,e+=` config?: SWRMutationConfiguration<${G}, Error, string, ${I}>
617
+ `,e+=`) {
618
+ `,e+=` return useSWRMutation(
619
+ `,e+=` '${r.name}',
620
+ `,e+=" async (_, ",I!=="void"&&(e+=`{ arg }: ${_}`),e+=`) => {
621
+ `,e+=` return apiClient.${r.name}(${I!=="void"?"arg":""});
622
+ `,e+=` },
623
+ `,e+=` config
624
+ `,e+=` );
625
+ `,e+=`}
626
+
627
+ `;}}),e},ze=(u,i)=>{var o;let n=((o=i.rtkQuery)==null?void 0:o.apiName)||"api",e=i.baseURL||"",s=`// Generated RTK Query API Slice
628
+ `;s+=`// This file was auto-generated. Add custom code in the marked sections.
629
+
630
+ `,s+=`import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
631
+
632
+ `,s+=`import type {
633
+ `;let t=new Set;return u.forEach(r=>{r.queryType&&t.add(r.queryType),r.dtoType&&t.add(r.dtoType),r.responseType&&t.add(r.responseType);}),t.forEach(r=>{s+=` ${r},
634
+ `;}),s+=`} from '../types';
635
+
636
+ `,s+=`import {
637
+ `,u.forEach(r=>{s+=` ${r.name},
638
+ `;}),s+=`} from '../endpoints';
639
+
640
+ `,s+=`const ${n}Api = createApi({
641
+ `,s+=` reducerPath: '${n}Api',
642
+ `,s+=` baseQuery: fetchBaseQuery({
643
+ `,s+=` baseUrl: '${e}',
644
+ `,i.auth&&(s+=` prepareHeaders: (headers, { getState }) => {
645
+ `,s+=` // Get token from your auth state
646
+ `,s+=` // const token = (getState() as RootState).auth.token;
647
+ `,s+=` // if (token) {
648
+ `,i.auth.type==="bearer"?s+=" // headers.set('Authorization', `Bearer ${token}`);\n":i.auth.type==="apiKey"&&i.auth.in==="header"&&(s+=` // headers.set('${i.auth.name||"X-API-Key"}', token);
649
+ `),s+=` // }
650
+ `,s+=` return headers;
651
+ `,s+=` },
652
+ `),s+=` }),
653
+ `,s+=` tagTypes: [${[...new Set(u.flatMap(r=>r.tags||[]))].map(r=>`'${r}'`).join(", ")}],
654
+ `,s+=` endpoints: (builder) => ({
655
+ `,u.forEach((r,f)=>{var J,T;let m=r.method.toUpperCase(),y=m==="GET",A=((J=r.parameters)==null?void 0:J.filter(I=>I.in==="path"))||[],S=((T=r.parameters)==null?void 0:T.filter(I=>I.in==="query"))||[],j=A.length>0,x=S.length>0,v=!!r.requestBody,G=r.responseType||"any";s+=` ${r.name}: builder.${y?"query":"mutation"}<
656
+ `,s+=` ${G},
657
+ `;let R="void";if((j||x||v)&&(R=`{
658
+ `,j&&(R+=` url: {
659
+ `,A.forEach(I=>{let O={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[I.type||"string"]||"any",z=I.required?"":"?";R+=` ${I.name}${z}: ${O};
660
+ `;}),R+=` };
661
+ `),x&&(R+=` query: ${r.queryType||"Record<string, any>"};
662
+ `),v&&(R+=` data: ${r.dtoType||"any"};
663
+ `),R+=" }"),s+=` ${R}
664
+ `,s+=` >({
665
+ `,s+=" query: (",R!=="void"&&(s+="arg"),s+=`) => {
666
+ `,j){let I=A.map(_=>`arg.url.${_.name}`).join(", ");s+=` const url = ${r.name}(${I});
667
+ `;}else s+=` const url = ${r.name};
668
+ `;s+=` return {
669
+ `,s+=` url,
670
+ `,s+=` method: '${m}',
671
+ `,x&&(s+=` params: arg.query,
672
+ `),v&&(s+=` body: arg.data,
673
+ `),s+=` };
674
+ `,s+=` },
675
+ `,r.tags&&r.tags.length>0&&(y?s+=` providesTags: ['${r.tags[0]}'],
676
+ `:s+=` invalidatesTags: ['${r.tags[0]}'],
677
+ `),s+=` })${f<u.length-1?",":""}
678
+ `;}),s+=` }),
679
+ `,s+=`});
680
+
681
+ `,s+=`export default ${n}Api;
682
+
683
+ `,s};var gn=(u,i)=>{var n,e;if((n=i==null?void 0:i.folderSplit)!=null&&n.customFolder){let s=i.folderSplit.customFolder({method:u.method,path:u.path,tags:u.tags,operationId:u.operationId,summary:u.summary});if(s)return s}return (e=i==null?void 0:i.folderSplit)!=null&&e.byTags&&u.tags&&u.tags.length>0?u.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},sn=(u,i,n,e,s)=>d(null,null,function*(){let t=rn(u,n);if(t.length===0)return;let o=n.type||"fetch";n.outputDir||D.join(s,e,"client");let f=!!(i!=null&&i.folderSplit&&(i.folderSplit.byTags||i.folderSplit.customFolder));if(`${o}${t.length}`,f){let y={};t.forEach(j=>{let x=gn(j,i);y[x]||(y[x]=[]),y[x].push(j);});let A=Object.keys(y);for(let[j,x]of Object.entries(y)){let v=D.join(s,e,j);yield se.promises.mkdir(v,{recursive:true}),`${o}${j}${x.length}`,yield Cn(x,i,n,v,o,j,true);}let S=D.join(s,e);yield bn(S,A,o,i);return}let m=D.join(s,e);switch(yield se.promises.mkdir(m,{recursive:true}),o){case "fetch":let y=Fe(t,n);y=y.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield Y(D.join(m,"clients.ts"),y,i);break;case "axios":let A=fe(t,n,false);A=A.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield Y(D.join(m,"clients.ts"),A,i);break;case "react-query":let S=fe(t,n,false);S=S.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield Y(D.join(m,"clients.ts"),S,i);let j=Qe(t,n);j=j.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield Y(D.join(m,"hooks.ts"),j,i);break;case "swr":let x=fe(t,n,false);x=x.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield Y(D.join(m,"clients.ts"),x,i);let v=Be(t,n);v=v.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield Y(D.join(m,"hooks.ts"),v,i);break;case "rtk-query":let G=ze(t,n);G=G.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield Y(D.join(m,"api.ts"),G,i);break;default:throw new Error(`Unknown client type: ${o}`)}}),Y=(u,i,n)=>d(null,null,function*(){var o,r,f,m;if(!(((o=n==null?void 0:n.customCode)==null?void 0:o.enabled)!==false)){yield se.promises.writeFile(u,i);return}let s=null;try{s=yield se.promises.readFile(u,"utf-8");}catch(y){}let t=qe(i,s,{position:((r=n==null?void 0:n.customCode)==null?void 0:r.position)||"bottom",markerText:(f=n==null?void 0:n.customCode)==null?void 0:f.markerText,includeInstructions:(m=n==null?void 0:n.customCode)==null?void 0:m.includeInstructions});yield se.promises.writeFile(u,t);});var Cn=(u,i,n,e,s,t,o=false)=>d(null,null,function*(){let r="",f="",m=o?"./types":"../types",y=o?"./endpoints":"../endpoints";switch(s){case "fetch":r=Fe(u,n,o),r=r.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),yield Y(D.join(e,"client.ts"),r,i);break;case "axios":r=fe(u,n,o),r=r.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),yield Y(D.join(e,"client.ts"),r,i);break;case "react-query":if(r=fe(u,n,o),r=r.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),yield Y(D.join(e,"client.ts"),r,i),f=Qe(u,n),f=f.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),o){let S=t.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${S}Client as apiClient } from '../clients';`);}yield Y(D.join(e,"hooks.ts"),f,i);break;case "swr":if(r=fe(u,n,o),r=r.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),yield Y(D.join(e,"client.ts"),r,i),f=Be(u,n),f=f.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),o){let S=t.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${S}Client as apiClient } from '../clients';`);}yield Y(D.join(e,"hooks.ts"),f,i);break;case "rtk-query":let A=o?b(a({},n),{rtkQuery:b(a({},n.rtkQuery),{apiName:t.replace(/-/g,"_")})}):n;f=ze(u,A),f=f.replace("} from '../types';",`} from '${m}';`).replace("} from '../endpoints';",`} from '${y}';`),yield Y(D.join(e,"api.ts"),f,i);break;default:throw new Error(`Unknown client type: ${s}`)}}),bn=(u,i,n,e)=>d(null,null,function*(){var t;if(n==="rtk-query"){let o=`// Generated RTK Query APIs
684
+ `;o+=`// This file was auto-generated.
685
+ `,o+=`// Aggregates all API slices for easy Redux store setup
686
+
687
+ `,i.forEach(r=>{let f=r.replace(/-/g,"_");o+=`import ${f}Api from './${r}/api';
688
+ `;}),o+=`
689
+ // Export all API slices
690
+ `,i.forEach(r=>{let f=r.replace(/-/g,"_");o+=`export { default as ${f}Api } from './${r}/api';
691
+ `;}),o+=`
692
+ /**
693
+ `,o+=` * Configure Redux store with all API slices
694
+ `,o+=` *
695
+ `,o+=` * @example
696
+ `,o+=` * import { configureStore } from '@reduxjs/toolkit';
697
+ `,o+=` * import { setupApiStore } from './apis';
698
+ `,o+=` *
699
+ `,o+=` * export const store = configureStore({
700
+ `,o+=` * reducer: setupApiStore.reducer,
701
+ `,o+=` * middleware: (getDefaultMiddleware) =>
702
+ `,o+=` * getDefaultMiddleware().concat(setupApiStore.middleware),
703
+ `,o+=` * });
704
+ `,o+=` */
705
+ `,o+=`export const setupApiStore = {
706
+ `,o+=` reducer: {
707
+ `,i.forEach(r=>{let f=r.replace(/-/g,"_");o+=` [${f}Api.reducerPath]: ${f}Api.reducer,
708
+ `;}),o+=` },
709
+ `,o+=` middleware: [
710
+ `,i.forEach(r=>{let f=r.replace(/-/g,"_");o+=` ${f}Api.middleware,
711
+ `;}),o+=` ],
712
+ `,o+=`};
713
+ `,yield Y(D.join(u,"apis.ts"),o,e);return}let s=`// Generated API Clients
714
+ `;if(s+=`// This file was auto-generated.
715
+ `,s+=`// Centralized client instances and configuration
716
+
717
+ `,n==="fetch"?i.forEach(o=>{let r=o.replace(/-/g,"_");s+=`export { default as ${r}Client } from './${o}/client';
718
+ `;}):(i.forEach(o=>{let r=o.replace(/-/g,"_"),f=`${r.charAt(0).toUpperCase()+r.slice(1)}ApiClient`;s+=`import ${f} from './${o}/client';
719
+ `;}),s+=`
720
+ // Create client instances
721
+ `,i.forEach(o=>{let r=o.replace(/-/g,"_"),f=`${r.charAt(0).toUpperCase()+r.slice(1)}ApiClient`;s+=`export const ${r}Client = new ${f}();
722
+ `;})),n==="fetch"&&(s+=`
723
+ // Import clients for aggregation
724
+ `,i.forEach(o=>{let r=o.replace(/-/g,"_");s+=`import ${r}_client from './${o}/client';
725
+ `;})),s+=`
726
+ // Aggregate all client instances
727
+ `,s+=`export const clients = {
728
+ `,i.forEach(o=>{let r=o.replace(/-/g,"_");n==="fetch"?s+=` ${r}: ${r}_client,
729
+ `:s+=` ${r}: ${r}Client,
730
+ `;}),s+=`};
76
731
 
77
- ${r.types}`:r.types;yield Z(l,a,e);}if(((Te=e==null?void 0:e.validations)==null?void 0:Te.disable)!==true&&r.validation){let l=((Se=e.validations)==null?void 0:Se.library)||"zod",a=l==="joi"?'import Joi from "joi";':l==="yup"?'import * as yup from "yup";':'import { z } from "zod";',o=M.join(Y,f,"validations.ts");yield U.promises.mkdir(M.dirname(o),{recursive:true}),yield Z(o,`${a}
732
+ `,n==="axios"?(s+=`
733
+ /**
734
+ `,s+=` * Configure all API clients at once
735
+ `,s+=` * @param config - Configuration to apply to all clients
736
+ `,s+=` */
737
+ `,s+=`export const configureAllClients = (config: {
738
+ `,s+=` baseURL?: string;
739
+ `,s+=` headers?: Record<string, string>;
740
+ `,s+=` timeout?: number;
741
+ `,s+=`}) => {
742
+ `,i.forEach(o=>{let r=o.replace(/-/g,"_");s+=` ${r}Client.updateConfig(config);
743
+ `;}),s+=`};
78
744
 
79
- ${r.validation}`,e);}}}if(ye.length>0){let t=M.join(Y,y,"endpoints.ts");yield U.promises.mkdir(M.dirname(t),{recursive:true}),yield Z(t,ye,e);}if(Object.values(H).length>0){let t=M.join(Y,y,e!=null&&e.folderSplit?"":"types","shared.ts");yield U.promises.mkdir(M.dirname(t),{recursive:true}),yield Z(t,Object.values(H).join(`
80
- `),e);}if(g.length>0){let t=M.join(Y,y,"types","index.ts");yield U.promises.mkdir(M.dirname(t),{recursive:true}),yield Z(t,`${Object.values(H).length>0?`import * as Shared from "./shared";
745
+ `):n==="fetch"&&(s+=`
746
+ /**
747
+ `,s+=` * Configure all API clients at once
748
+ `,s+=` * @param config - Configuration to apply to all clients
749
+ `,s+=` */
750
+ `,s+=`export const configureAllClients = (config: {
751
+ `,s+=` baseURL?: string;
752
+ `,s+=` headers?: Record<string, string>;
753
+ `,s+=` auth?: { token?: string };
754
+ `,s+=`}) => {
755
+ `,i.forEach(o=>{let r=o.replace(/-/g,"_");s+=` ${r}_client.setApiConfig(config);
756
+ `;}),s+=`};
81
757
 
82
- `:""}${g}`,e);}if(((we=e==null?void 0:e.validations)==null?void 0:we.disable)!==true){let t=((ze=e.validations)==null?void 0:ze.library)||"zod",r=t==="joi"?'import Joi from "joi";':t==="yup"?'import * as yup from "yup";':'import { z } from "zod";',f=Object.values(O).map(l=>l.validation).filter(l=>l.length>0).join("");if(f){let l=M.join(Y,y,"validations.ts");yield U.promises.mkdir(M.dirname(l),{recursive:true}),yield Z(l,`${r}
758
+ `),s+=`// Example usage:
759
+ `,s+=`// import { configureAllClients, clients } from './clients';
760
+ `,s+=`//
761
+ `,s+=`// // Configure all clients at once
762
+ `,s+=`// configureAllClients({
763
+ `,s+=`// baseURL: 'https://api.example.com',
764
+ `,s+=`// timeout: 10000,
765
+ `,s+=`// });
766
+ `,s+=`//
767
+ `,s+=`// // Use specific client
768
+ `,s+=`// const data = await clients.${(t=i[0])==null?void 0:t.replace(/-/g,"_")}.someMethod(...);
769
+ `,yield Y(D.join(u,"clients.ts"),s,e),n==="react-query"||n==="swr"){let o=`// Generated Hooks Aggregator
770
+ `;o+=`// This file was auto-generated.
771
+ `,o+=`// Aggregates all folder-split hooks
83
772
 
84
- ${f}`,e);}}}),qt=Mt;var he=process.cwd(),Cr=u=>ne(null,null,function*(){let d;try{re("esbuild-register");}catch(E){throw E}let e=M.join(he,"openapi.sync.js"),j=M.join(he,"openapi.sync.ts"),b=M.join(he,"openapi.sync.json"),v=[e,j,b];try{for(let E of v)U.existsSync(E)&&(d=re(E),Object.keys(d).length===1&&d.default&&(d=d.default));}catch(E){}typeof d=="function"&&(d=d());let m=d;if(!m)throw new Error("No config found");let y=Object.keys(m.api),O=u&&"refetchInterval"in u&&!isNaN(u==null?void 0:u.refetchInterval)?u.refetchInterval:m.refetchInterval;Rt();for(let E=0;E<y.length;E+=1){let P=y[E],B=m.api[P];qt(B,P,m,O);}});export{Cr as Init,se as JSONStringify,K as capitalize,At as createCustomCodeMarker,Ut as extractCustomCode,St as getEndpointDetails,er as getNestedValue,ct as isJson,Gt as isYamlString,wt as mergeCustomCode,ue as renderTypeRefMD,Xt as variableName,Et as variableNameChar,Tt as yamlStringToJson};
773
+ `,i.forEach(r=>{o+=`export * from './${r}/hooks';
774
+ `;}),o+=`
775
+ // Example usage:
776
+ `,o+=`// import { useGetSomething } from './hooks';
777
+ `,yield Y(D.join(u,"hooks.ts"),o,e);}});var ke=process.cwd(),an=()=>{let u;try{c("esbuild-register");}catch(o){throw o}let i=D.join(ke,"openapi.sync.js"),n=D.join(ke,"openapi.sync.ts"),e=D.join(ke,"openapi.sync.json"),s=[i,n,e];try{for(let o of s)se.existsSync(o)&&(u=c(o),Object.keys(u).length===1&&u.default&&(u=u.default));}catch(o){}typeof u=="function"&&(u=u());let t=u;if(!t)throw new Error("No config found");return t},lr=u=>d(null,null,function*(){let i=an(),n=Object.keys(i.api),e=u&&"refetchInterval"in u&&!isNaN(u==null?void 0:u.refetchInterval)?u.refetchInterval:i.refetchInterval;Me();for(let s=0;s<n.length;s+=1){let t=n[s],o=i.api[t];yield Le(o,t,i,e);}}),ur=u=>d(null,null,function*(){let i=an(),n=u.apiName?[u.apiName]:Object.keys(i.api);for(let s of n)if(!i.api[s])throw new Error(`API "${s}" not found in configuration. Available APIs: ${Object.keys(i.api).join(", ")}`);Me();for(let s of n){let t=i.api[s];yield Le(t,s,i);}let e=(i==null?void 0:i.folder)||"api";for(let s of n){let t=en(s);if(t.length===0){continue}`${t.length}${s}`;let o=a(a(a(a(b(a({enabled:true},i.clientGeneration||{}),{type:u.type}),u.outputDir&&{outputDir:u.outputDir}),u.baseURL&&{baseURL:u.baseURL}),u.tags&&{tags:u.tags}),u.endpoints&&{endpoints:u.endpoints});yield sn(t,i,o,s,D.join(ke,e));}}),pr=()=>d(null,null,function*(){let{interactiveInit:u}=yield import('./interactive-init-B7AFNUFL.mjs');yield u();});export{ur as GenerateClient,lr as Init,pr as InteractiveInit,Ee as JSONStringify,ue as capitalize,Jt as createCustomCodeMarker,mn as extractCustomCode,Kt as getEndpointDetails,wn as getNestedValue,Wt as isJson,pn as isYamlString,qe as mergeCustomCode,ve as renderTypeRefMD,xn as variableName,Dt as variableNameChar,Ht as yamlStringToJson};