openapi-sync 5.0.3 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,374 +1,451 @@
1
- 'use strict';var Oe=require('js-yaml'),D=require('path'),le=require('fs'),Bn=require('lodash.isequal'),Ve=require('lodash.get'),zn=require('axios'),Wn=require('axios-retry'),Dn=require('@apidevtools/swagger-parser'),curlGenerator=require('curl-generator'),vn=require('prompts');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Oe__namespace=/*#__PURE__*/_interopNamespace(Oe);var D__default=/*#__PURE__*/_interopDefault(D);var le__default=/*#__PURE__*/_interopDefault(le);var Bn__default=/*#__PURE__*/_interopDefault(Bn);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var zn__default=/*#__PURE__*/_interopDefault(zn);var Wn__default=/*#__PURE__*/_interopDefault(Wn);var Dn__default=/*#__PURE__*/_interopDefault(Dn);var vn__default=/*#__PURE__*/_interopDefault(vn);var ln=Object.defineProperty,Un=Object.defineProperties;var Nn=Object.getOwnPropertyDescriptors;var sn=Object.getOwnPropertySymbols;var Fn=Object.prototype.hasOwnProperty,Mn=Object.prototype.propertyIsEnumerable;var an=(r,o,i)=>o in r?ln(r,o,{enumerable:true,configurable:true,writable:true,value:i}):r[o]=i,ee=(r,o)=>{for(var i in o||(o={}))Fn.call(o,i)&&an(r,i,o[i]);if(sn)for(var i of sn(o))Mn.call(o,i)&&an(r,i,o[i]);return r},ie=(r,o)=>Un(r,Nn(o));var Ae=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(o,i)=>(typeof require!="undefined"?require:o)[i]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var pe=(r,o)=>()=>(r&&(o=r(r=0)),o);var pn=(r,o)=>{for(var i in o)ln(r,i,{get:o[i],enumerable:true});};var re=(r,o,i)=>new Promise((e,a)=>{var t=y=>{try{n(i.next(y));}catch(c){a(c);}},l=y=>{try{n(i.throw(y));}catch(c){a(c);}},n=y=>y.done?e(y.value):Promise.resolve(y.value).then(t,l);n((i=i.apply(r,o)).next());});exports.variableName=void 0;exports.variableNameChar=void 0;var Le=pe(()=>{exports.variableName=/^[A-Za-z_$][A-Za-z0-9_$]*$/,exports.variableNameChar=/[A-Za-z0-9_$]/;});function Ln(r,o){return o.split(".").reduce((e,a)=>e&&e[a]!==void 0?e[a]:void 0,r)}exports.isJson=void 0;exports.isYamlString=void 0;exports.yamlStringToJson=void 0;exports.capitalize=void 0;exports.getEndpointDetails=void 0;exports.JSONStringify=void 0;exports.renderTypeRefMD=void 0;exports.extractCustomCode=void 0;exports.createCustomCodeMarker=void 0;exports.mergeCustomCode=void 0;var ke=pe(()=>{Le();exports.isJson=r=>["object"].includes(typeof r)&&!(r instanceof Blob),exports.isYamlString=r=>{try{return Oe__namespace.load(r),!0}catch(o){let i=o;if(i instanceof Oe__namespace.YAMLException)return false;throw i}},exports.yamlStringToJson=r=>{if(exports.isYamlString(r)){let o=Oe__namespace.load(r),i=JSON.stringify(o,null,2);return JSON.parse(i)}},exports.capitalize=r=>r.substring(0,1).toUpperCase()+r.substring(1),exports.getEndpointDetails=(r,o)=>{let i=r.split("/"),e=`${exports.capitalize(o)}`,a=[];return i.forEach(t=>{if(t[0]==="{"&&t[t.length-1]==="}"){let n=t.replace(/{/,"").replace(/}/,"");a.push(n),t=`$${n}`;}else if(t[0]==="<"&&t[t.length-1]===">"){let n=t.replace(/</,"").replace(/>/,"");a.push(n),t=`$${n}`;}else if(t[0]===":"){let n=t.replace(/:/,"");a.push(n),t=`$${n}`;}let l="";t.split("").forEach(n=>{let y=n;exports.variableNameChar.test(n)||(y="/"),l+=y;}),l.split("/").forEach(n=>{e+=exports.capitalize(n);});}),{name:e,variables:a,pathParts:i}},exports.JSONStringify=(r,o=1)=>{let i="{",e=Object.keys(r);for(let a=0;a<e.length;a++){let t=e[a],l=r[t];if(i+=`
2
- `+" ".repeat(o)+t+": ",Array.isArray(l)){i+="[";for(let n=0;n<l.length;n++){let y=l[n];typeof y=="object"&&y!==null?i+=exports.JSONStringify(y,o+1):i+=typeof y=="string"?`"${y}"`:y,n<l.length-1&&(i+=", ");}i+="]";}else typeof l=="object"&&l!==null?i+=""+exports.JSONStringify(l,o+1):i+=l.split(`
3
- `).filter(n=>n.trim()!=="").join(`
4
- ${" ".repeat(o)}`);a<e.length-1&&(i+=", ");}return i+=`
5
- ${" ".repeat(o-1)}}`,i},exports.renderTypeRefMD=(r,o=1)=>`
1
+ 'use strict';var Pe=require('js-yaml'),V=require('path'),ce=require('fs'),Xt=require('lodash.isequal'),Le=require('lodash.get'),er=require('axios'),nr=require('axios-retry'),tr=require('@apidevtools/swagger-parser'),curlGenerator=require('curl-generator'),Ut=require('prompts');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Pe__namespace=/*#__PURE__*/_interopNamespace(Pe);var V__default=/*#__PURE__*/_interopDefault(V);var ce__default=/*#__PURE__*/_interopDefault(ce);var Xt__default=/*#__PURE__*/_interopDefault(Xt);var Le__default=/*#__PURE__*/_interopDefault(Le);var er__default=/*#__PURE__*/_interopDefault(er);var nr__default=/*#__PURE__*/_interopDefault(nr);var tr__default=/*#__PURE__*/_interopDefault(tr);var Ut__default=/*#__PURE__*/_interopDefault(Ut);var gt=Object.defineProperty,Jt=Object.defineProperties;var _t=Object.getOwnPropertyDescriptors;var ft=Object.getOwnPropertySymbols;var Ht=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var yt=(r,o,p)=>o in r?gt(r,o,{enumerable:true,configurable:true,writable:true,value:p}):r[o]=p,X=(r,o)=>{for(var p in o||(o={}))Ht.call(o,p)&&yt(r,p,o[p]);if(ft)for(var p of ft(o))Kt.call(o,p)&&yt(r,p,o[p]);return r},ae=(r,o)=>Jt(r,_t(o));var ve=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(o,p)=>(typeof require!="undefined"?require:o)[p]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var de=(r,o)=>()=>(r&&(o=r(r=0)),o);var ht=(r,o)=>{for(var p in o)gt(r,p,{get:o[p],enumerable:true});};var ie=(r,o,p)=>new Promise((e,i)=>{var n=f=>{try{t(p.next(f));}catch(c){i(c);}},u=f=>{try{t(p.throw(f));}catch(c){i(c);}},t=f=>f.done?e(f.value):Promise.resolve(f.value).then(n,u);t((p=p.apply(r,o)).next());});exports.variableName=void 0;exports.variableNameChar=void 0;var ze=de(()=>{exports.variableName=/^[A-Za-z_$][A-Za-z0-9_$]*$/,exports.variableNameChar=/[A-Za-z0-9_$]/;});function Yt(r,o){return o.split(".").reduce((e,i)=>e&&e[i]!==void 0?e[i]:void 0,r)}exports.isJson=void 0;exports.isYamlString=void 0;exports.yamlStringToJson=void 0;exports.capitalize=void 0;exports.getEndpointDetails=void 0;exports.JSONStringify=void 0;exports.renderTypeRefMD=void 0;exports.extractCustomCode=void 0;exports.createCustomCodeMarker=void 0;var $t;exports.mergeCustomCode=void 0;var Ne=de(()=>{ze();exports.isJson=r=>["object"].includes(typeof r)&&!(r instanceof Blob),exports.isYamlString=r=>{try{return Pe__namespace.load(r),!0}catch(o){let p=o;if(p instanceof Pe__namespace.YAMLException)return false;throw p}},exports.yamlStringToJson=r=>{if(exports.isYamlString(r)){let o=Pe__namespace.load(r),p=JSON.stringify(o,null,2);return JSON.parse(p)}},exports.capitalize=r=>r.substring(0,1).toUpperCase()+r.substring(1),exports.getEndpointDetails=(r,o)=>{let p=r.split("/"),e=`${exports.capitalize(o)}`,i=[];return p.forEach(n=>{if(n[0]==="{"&&n[n.length-1]==="}"){let t=n.replace(/{/,"").replace(/}/,"");i.push(t),n=`$${t}`;}else if(n[0]==="<"&&n[n.length-1]===">"){let t=n.replace(/</,"").replace(/>/,"");i.push(t),n=`$${t}`;}else if(n[0]===":"){let t=n.replace(/:/,"");i.push(t),n=`$${t}`;}let u="";n.split("").forEach(t=>{let f=t;exports.variableNameChar.test(t)||(f="/"),u+=f;}),u.split("/").forEach(t=>{e+=exports.capitalize(t);});}),{name:e,variables:i,pathParts:p}},exports.JSONStringify=(r,o=1)=>{let p="{",e=Object.keys(r);for(let i=0;i<e.length;i++){let n=e[i],u=r[n];if(p+=`
2
+ `+" ".repeat(o)+n+": ",Array.isArray(u)){p+="[";for(let t=0;t<u.length;t++){let f=u[t];typeof f=="object"&&f!==null?p+=exports.JSONStringify(f,o+1):p+=typeof f=="string"?`"${f}"`:f,t<u.length-1&&(p+=", ");}p+="]";}else typeof u=="object"&&u!==null?p+=""+exports.JSONStringify(u,o+1):p+=u.split(`
3
+ `).filter(t=>t.trim()!=="").join(`
4
+ ${" ".repeat(o)}`);i<e.length-1&&(p+=", ");}return p+=`
5
+ ${" ".repeat(o-1)}}`,p},exports.renderTypeRefMD=(r,o=1)=>{let p=r.replace(/\/\*\*?[\s\S]*?\*\//g,e=>e.replace(/^\/\*\*?\s*/,"").replace(/\s*\*\/$/,"").split(`
6
+ `).map(n=>n.replace(/^\s*\*\s?/,"").trim()).filter(n=>n.length>0).map(n=>`// ${n}`).join(`
7
+ `));return `
6
8
  \`\`\`typescript
7
- ${" ".repeat(o)} ${r.split(`
8
- `).filter(i=>i.trim()!=="").join(`
9
+ ${" ".repeat(o)} ${p.split(`
10
+ `).filter(e=>e.trim()!=="").join(`
9
11
  ${" ".repeat(o)} `)}
10
- \`\`\``;exports.extractCustomCode=(r,o="CUSTOM CODE")=>{let i=`// \u{1F512} ${o} START`,e=`// \u{1F512} ${o} END`,a={beforeGenerated:"",afterGenerated:""},t=0,l=[];for(;t<r.length;){let n=r.indexOf(i,t);if(n===-1)break;let y=r.indexOf(e,n);if(y===-1)break;let c=y+e.length,f=r.substring(c,c+100),S=f.match(/^\s*\n\s*(\/\/ =+)/);if(S){let j=f.indexOf(`
11
- `,S.index+1);j!==-1?c+=j+1:c+=S[0].length;}let q=n,E=r.substring(Math.max(0,n-200),n).lastIndexOf("// ==========");E!==-1&&(q=Math.max(0,n-200)+E);let v=r.substring(q,c);l.push({start:q,end:c,content:v}),t=c;}return l.length>0&&(r.substring(0,l[0].start).split(`
12
- `).filter(c=>{let f=c.trim();return f.length>0&&!f.startsWith("//")}).join("").length===0?(a.beforeGenerated=l[0].content,l.length>1&&(a.afterGenerated=l[1].content)):(a.afterGenerated=l[0].content,l.length>1&&!a.beforeGenerated&&(a.beforeGenerated=l[1].content))),a},exports.createCustomCodeMarker=(r,o="CUSTOM CODE",i=true)=>{let e=i?`// ${r==="top"?"Add your custom code below this line":"Add your custom code above this line"}
13
- // This section will be preserved during regeneration
14
- `:"";return `// ${"=".repeat(60)}
15
- // \u{1F512} ${o} START
16
- ${e}// ${"=".repeat(60)}
17
-
18
- // \u{1F512} ${o} END
19
- // ${"=".repeat(60)}`},exports.mergeCustomCode=(r,o,i={})=>{let{position:e="bottom",markerText:a="CUSTOM CODE",includeInstructions:t=true}=i,l={beforeGenerated:"",afterGenerated:""};o&&(l=exports.extractCustomCode(o,a)),!l.beforeGenerated&&!l.afterGenerated&&((e==="top"||e==="both")&&(l.beforeGenerated=exports.createCustomCodeMarker("top",a,t)),(e==="bottom"||e==="both")&&(l.afterGenerated=exports.createCustomCodeMarker("bottom",a,t)));let n=[];return l.beforeGenerated&&(n.push(l.beforeGenerated),n.push("")),n.push(r),l.afterGenerated&&(n.push(""),n.push(l.afterGenerated)),n.join(`
20
- `)};});var Ue,Je,Se,mn,dn,fn,He,Ke=pe(()=>{Ue=D__default.default.join(__dirname,"../","../db.json");le__default.default.existsSync(Ue)||le__default.default.writeFileSync(Ue,"{}");Je={};try{Je=Ae(Ue);}catch(r){Je={};}Se=Je||{},mn=r=>{le__default.default.writeFileSync(Ue,JSON.stringify(r));},dn=(r,o)=>{Se[r]=o,mn(Se);},fn=r=>Se[r],He=()=>{Se={},mn(Se);};});var yn,gn,hn,_e=pe(()=>{yn={},gn=(r,o)=>{yn[r]=o;},hn=r=>yn[r]||[];});var fe,Ye,$n,$e,Cn,Hn,Ze,bn=pe(()=>{ke();Ke();_e();fe=process.cwd(),Ye={},$n=zn__default.default.create({timeout:6e4});Wn__default.default($n,{retries:20,retryCondition:r=>r.code==="ECONNABORTED"||r.message.includes("Network Error"),retryDelay:r=>r*1e3});$e=(r,o,i)=>re(null,null,function*(){var l,n,y,c;if(!(((l=i==null?void 0:i.customCode)==null?void 0:l.enabled)!==false)){yield le__default.default.promises.writeFile(r,o);return}let a=null;try{a=yield le__default.default.promises.readFile(r,"utf-8");}catch(f){}let t=exports.mergeCustomCode(o,a,{position:((n=i==null?void 0:i.customCode)==null?void 0:n.position)||"bottom",markerText:(y=i==null?void 0:i.customCode)==null?void 0:y.markerText,includeInstructions:(c=i==null?void 0:i.customCode)==null?void 0:c.includeInstructions});yield le__default.default.promises.writeFile(r,t);}),Cn=(r,o,i,e)=>re(null,null,function*(){let a=yield Hn(r,o,i,e);return e&&!isNaN(e)&&e>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(Ye[o]&&clearTimeout(Ye[o]),Ye[o]=setTimeout(()=>{console.info(`\u{1F504} Auto syncing ${o}`),Cn(r,o,i,e);},e))),a}),Hn=(...r)=>re(null,null,function*(){var ce,Ee,xe,Re,rt,ot,st,at,it,lt;let[o,i,e]=r,a=s=>s.startsWith("http://")||s.startsWith("https://"),t;try{if(a(o))t=(yield $n.get(o)).data;else {let s=D__default.default.isAbsolute(o)?o:D__default.default.join(fe,o);`${s}`,t=yield le__default.default.promises.readFile(s,"utf-8");}}catch(s){console.error(`Failed to load OpenAPI spec for ${i}:`,s);return}if(!t)return;let l=exports.isJson(t)?t:exports.yamlStringToJson(t),n;try{n=yield Dn__default.default.parse(l);}catch(s){let u=s instanceof Error?s.message:String(s);throw new Error(`Failed to parse OpenAPI spec for ${i}: ${u}`)}let y=D__default.default.join((e==null?void 0:e.folder)||"",i),c={},f=s=>{var u,w;if((u=e==null?void 0:e.folderSplit)!=null&&u.customFolder){let $=e.folderSplit.customFolder(s);if($)return $}return (w=e==null?void 0:e.folderSplit)!=null&&w.byTags&&s.tags&&s.tags.length>0?s.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},S=typeof(e==null?void 0:e.server)=="string"?e==null?void 0:e.server:((Ee=(ce=n==null?void 0:n.servers)==null?void 0:ce[(e==null?void 0:e.server)||0])==null?void 0:Ee.url)||"",q=typeof((Re=(xe=e==null?void 0:e.types)==null?void 0:xe.name)==null?void 0:Re.prefix)=="string"?e==null?void 0:e.types.name.prefix:"I",P=typeof((ot=(rt=e==null?void 0:e.endpoints)==null?void 0:rt.name)==null?void 0:ot.prefix)=="string"?e==null?void 0:e.endpoints.name.prefix:"",E=(s,u)=>{var $,d;let w=exports.capitalize(s);if((d=($=e==null?void 0:e.types)==null?void 0:$.name)!=null&&d.format){let g=e==null?void 0:e.types.name.format("shared",{name:s},w);if(g)return `${q}${g}`}return `${q}${w}`},v=(s,u,w,$,d,g=0)=>{let m="",C="",h="";if(u)if(u.$ref)if(u.$ref[0]==="#"){let O=(u.$ref||"").split("/");O.shift();O[0]==="definitions";[...O].pop();let W=Ve__default.default(s,O,null);if(W){W!=null&&W.name&&(m=W.name),C=O[O.length-1];let oe=E(C);oe.includes(".")&&(oe=oe.split(".").map((ye,ge)=>ge===0?ye:`["${ye}"]`).join("")),h+=`${d!=null&&d.noSharedImport?"":"Shared."}${oe}`;}}else h+="";else if(u.anyOf)h+=`(${u.anyOf.map(O=>v(s,O,"",$,ie(ee({},d),{useComponentName:false}))).filter(O=>!!O).join("|")})`;else if(u.oneOf)h+=`(${u.oneOf.map(O=>v(s,O,"",$,ie(ee({},d),{useComponentName:false}))).filter(O=>!!O).join("|")})`;else if(u.allOf)h+=`(${u.allOf.map(O=>v(s,O,"",$,ie(ee({},d),{useComponentName:false}))).filter(O=>!!O).join("&")})`;else if(u.items)h+=`${v(s,u.items,"",false,ie(ee({},d),{useComponentName:false}))}[]`;else if(u.properties){let O=Object.keys(u.properties),M=u.required||[],L="";O.forEach(z=>{var oe,we,ye,ge,ve,he;let W="";!((we=(oe=e==null?void 0:e.types)==null?void 0:oe.doc)!=null&&we.disable)&&((ge=(ye=u.properties)==null?void 0:ye[z])!=null&&ge.description)&&(W=" * "+((ve=u.properties)==null?void 0:ve[z].description.split(`
21
- `).filter(Me=>Me.trim()!=="").join(`
22
- *${" ".repeat(1)}`))),L+=(W?`/**
23
- ${W}
12
+ \`\`\``};exports.extractCustomCode=(r,o="CUSTOM CODE")=>{let e=["//","#"].map(t=>({start:`${t} \u{1F512} ${o} START`,end:`${t} \u{1F512} ${o} END`})),i={beforeGenerated:"",afterGenerated:""},n=0,u=[];for(;n<r.length;){let t=null,f=-1;for(let P of e){let T=r.indexOf(P.start,n);T!==-1&&(f===-1||T<f)&&(f=T,t=P);}if(f===-1||!t)break;let c=r.indexOf(t.end,f);if(c===-1)break;let y=c+t.end.length,A=r.substring(y,y+100),L=A.match(/^\s*\n\s*((?:\/\/|#)\s*=+)/);if(L){let P=A.indexOf(`
13
+ `,L.index+1);P!==-1?y+=P+1:y+=L[0].length;}let q=f,O=r.substring(Math.max(0,f-200),f),U=/(^|\n)\s*(?:\/\/|#)\s*=+/g,F,R=-1;for(;(F=U.exec(O))!==null;)R=F.index+F[1].length;R!==-1&&(q=Math.max(0,f-200)+R);let B=r.substring(q,y);u.push({start:q,end:y,content:B}),n=y;}return u.length>0&&(r.substring(0,u[0].start).split(`
14
+ `).filter(c=>{let y=c.trim();return y.length>0&&!y.startsWith("//")&&!y.startsWith("#")}).join("").length===0?(i.beforeGenerated=u[0].content,u.length>1&&(i.afterGenerated=u[1].content)):(i.afterGenerated=u[0].content,u.length>1&&!i.beforeGenerated&&(i.beforeGenerated=u[1].content))),i},exports.createCustomCodeMarker=(r,o="CUSTOM CODE",p=true,e="//")=>{let i=p?`${e} ${r==="top"?"Add your custom code below this line":"Add your custom code above this line"}
15
+ ${e} This section will be preserved during regeneration
16
+ `:"";return `${e} ${"=".repeat(60)}
17
+ ${e} \u{1F512} ${o} START
18
+ ${i}${e} ${"=".repeat(60)}
19
+
20
+ ${e} \u{1F512} ${o} END
21
+ ${e} ${"=".repeat(60)}`},$t=(r,o,p)=>{if(!r)return r;let e=new RegExp(`^\\s*//\\s*(?:={3,}|\u{1F512}\\s+${o}\\s+(?:START|END)|Add your custom code (?:below|above) this line|This section will be preserved during regeneration)\\s*$`);return r.split(`
22
+ `).map(i=>e.test(i)?i.replace(/^\s*\/\//,p):i).join(`
23
+ `)},exports.mergeCustomCode=(r,o,p={})=>{let{position:e="bottom",markerText:i="CUSTOM CODE",includeInstructions:n=true,commentPrefix:u="//"}=p,t={beforeGenerated:"",afterGenerated:""};o&&(t=exports.extractCustomCode(o,i),t.beforeGenerated=$t(t.beforeGenerated,i,u),t.afterGenerated=$t(t.afterGenerated,i,u)),!t.beforeGenerated&&!t.afterGenerated&&((e==="top"||e==="both")&&(t.beforeGenerated=exports.createCustomCodeMarker("top",i,n,u)),(e==="bottom"||e==="both")&&(t.afterGenerated=exports.createCustomCodeMarker("bottom",i,n,u)));let f=[];return t.beforeGenerated&&(f.push(t.beforeGenerated),f.push("")),f.push(r),t.afterGenerated&&(f.push(""),f.push(t.afterGenerated)),f.join(`
24
+ `)};});var Fe,Ke,qe,It,xt,Tt,Ve,Ye=de(()=>{Fe=V__default.default.join(__dirname,"../","../db.json");ce__default.default.existsSync(Fe)||ce__default.default.writeFileSync(Fe,"{}");Ke={};try{Ke=ve(Fe);}catch(r){Ke={};}qe=Ke||{},It=r=>{ce__default.default.writeFileSync(Fe,JSON.stringify(r));},xt=(r,o)=>{qe[r]=o,It(qe);},Tt=r=>qe[r],Ve=()=>{qe={},It(qe);};});var Et,wt,At,Ze=de(()=>{Et={},wt=(r,o)=>{Et[r]=o;},At=r=>Et[r]||[];});var be,Xe,Ot,Ie,vt,sr,en,Pt=de(()=>{Ne();Ye();Ze();be=process.cwd(),Xe={},Ot=er__default.default.create({timeout:6e4});nr__default.default(Ot,{retries:20,retryCondition:r=>r.code==="ECONNABORTED"||r.message.includes("Network Error"),retryDelay:r=>r*1e3});Ie=(r,o,p)=>ie(null,null,function*(){var t,f,c,y;if(!(((t=p==null?void 0:p.customCode)==null?void 0:t.enabled)!==false)){yield ce__default.default.promises.writeFile(r,o);return}let i=null;try{i=yield ce__default.default.promises.readFile(r,"utf-8");}catch(A){}let n=r.endsWith(".py")?"#":"//",u=exports.mergeCustomCode(o,i,{position:((f=p==null?void 0:p.customCode)==null?void 0:f.position)||"bottom",markerText:(c=p==null?void 0:p.customCode)==null?void 0:c.markerText,includeInstructions:(y=p==null?void 0:p.customCode)==null?void 0:y.includeInstructions,commentPrefix:n});yield ce__default.default.promises.writeFile(r,u);}),vt=(r,o,p,e)=>ie(null,null,function*(){let i=yield sr(r,o,p,e);return e&&!isNaN(e)&&e>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(Xe[o]&&clearTimeout(Xe[o]),Xe[o]=setTimeout(()=>{console.info(`\u{1F504} Auto syncing ${o}`),vt(r,o,p,e);},e))),i}),sr=(...r)=>ie(null,null,function*(){var an,ln,pn,un,cn,mn,dn,fn,yn,gn;let[o,p,e]=r,i=s=>s.startsWith("http://")||s.startsWith("https://"),n;try{if(i(o))n=(yield Ot.get(o)).data;else {let s=V__default.default.isAbsolute(o)?o:V__default.default.join(be,o);`${s}`,n=yield ce__default.default.promises.readFile(s,"utf-8");}}catch(s){throw process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||console.error(`Failed to load OpenAPI spec for ${p}:`,s),s}if(!n)return;let u=exports.isJson(n)?n:exports.yamlStringToJson(n),t;try{t=yield tr__default.default.parse(u);}catch(s){let a=s instanceof Error?s.message:String(s);throw new Error(`Failed to parse OpenAPI spec for ${p}: ${a}`)}let f=V__default.default.join((e==null?void 0:e.folder)||"",p),c=(e==null?void 0:e.language)==="python",y=c?"py":"ts",A={},L=s=>{var a,C;if((a=e==null?void 0:e.folderSplit)!=null&&a.customFolder){let b=e.folderSplit.customFolder(s);if(b)return b}return (C=e==null?void 0:e.folderSplit)!=null&&C.byTags&&s.tags&&s.tags.length>0?s.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},q=typeof(e==null?void 0:e.server)=="string"?e==null?void 0:e.server:((ln=(an=t==null?void 0:t.servers)==null?void 0:an[(e==null?void 0:e.server)||0])==null?void 0:ln.url)||"",O=typeof((un=(pn=e==null?void 0:e.types)==null?void 0:pn.name)==null?void 0:un.prefix)=="string"?e==null?void 0:e.types.name.prefix:"I",U=typeof((mn=(cn=e==null?void 0:e.endpoints)==null?void 0:cn.name)==null?void 0:mn.prefix)=="string"?e==null?void 0:e.endpoints.name.prefix:"",F=(s,a)=>{var b,m;let C=exports.capitalize(s);if((m=(b=e==null?void 0:e.types)==null?void 0:b.name)!=null&&m.format){let g=e==null?void 0:e.types.name.format("shared",{name:s},C);if(g)return `${O}${g}`}return `${O}${C}`},R=(s,a,C,b,m,g=0)=>{let d="",$="",h="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let x=(a.$ref||"").split("/");x.shift();x[0]==="definitions";[...x].pop();let k=Le__default.default(s,x,null);if(k){k!=null&&k.name&&(d=k.name),$=x[x.length-1];let W=F($);W.includes(".")&&(W=W.split(".").map((Ce,ye)=>ye===0?Ce:`["${Ce}"]`).join("")),h+=`${m!=null&&m.noSharedImport?"":"Shared."}${W}`;}}else h+="";else if(a.anyOf)h+=`(${a.anyOf.map(x=>R(s,x,"",b,ae(X({},m),{useComponentName:false}))).filter(x=>!!x).join("|")})`;else if(a.oneOf)h+=`(${a.oneOf.map(x=>R(s,x,"",b,ae(X({},m),{useComponentName:false}))).filter(x=>!!x).join("|")})`;else if(a.allOf)h+=`(${a.allOf.map(x=>R(s,x,"",b,ae(X({},m),{useComponentName:false}))).filter(x=>!!x).join("&")})`;else if(a.items)h+=`${R(s,a.items,"",false,ae(X({},m),{useComponentName:false}))}[]`;else if(a.properties){let x=Object.keys(a.properties),v=a.required||[],j="";x.forEach(N=>{var W,Ae,Ce,ye,he,$e;let k="";!((Ae=(W=e==null?void 0:e.types)==null?void 0:W.doc)!=null&&Ae.disable)&&((ye=(Ce=a.properties)==null?void 0:Ce[N])!=null&&ye.description)&&(k=" * "+((he=a.properties)==null?void 0:he[N].description.split(`
25
+ `).filter(Qe=>Qe.trim()!=="").join(`
26
+ *${" ".repeat(1)}`))),j+=(k?`/**
27
+ ${k}
24
28
  */
25
- `:"")+`${v(s,(he=u.properties)==null?void 0:he[z],z,M.includes(z),d,g+1)}`;}),L.length>0?h+=`{
26
- ${" ".repeat(g)}${L}${" ".repeat(g)}}`:h+="{[k: string]: any}";}else if(u.enum&&u.enum.length>0){let O=u.enum.includes(null),M=u.enum.filter(z=>z!==null).map(z=>JSON.stringify(z)).filter(z=>z!==void 0),L=M.length>1||M.length>0&&O;L&&(h+="("),M.forEach((z,W)=>{h+=`${W===0?"":"|"}${z}`;}),O&&(h+=`${M.length>0?"|":""}null`),L&&(h+=")");}else if(u.type){let O=M=>{let L="";if(typeof M=="string")["string","integer","number","array","boolean","null"].includes(M)?["integer","number"].includes(M)?L+="number":M==="array"?L+="any[]":L+=M:M==="object"&&(u.additionalProperties?L+=`{[k: string]: ${v(s,u.additionalProperties,"",true,ie(ee({},d),{useComponentName:false}))||"any"}}`:L+="{[k: string]: any}");else if(Array.isArray(M)){let z=M.map(W=>O(W));z.filter(W=>W!==""),z.length>1&&(L+="("+z.join("|")+")");}else L+="any";return L};h=O(u.type);}else h+="any";else h="string";let A=m||w;d!=null&&d.useComponentName&&!A&&(A=C);let J=A?` "${A}"${$?"":"?"}: `:"",p=(u==null?void 0:u.enum)&&u.enum.includes(null),Z=u!=null&&u.nullable&&!p?" | null":"";return h.length>0?`${J}${h}${Z}${A?`;
27
- `:""}`:""},j=(s,u)=>{let d="";if(u)if(u.$ref)if(u.$ref[0]==="#"){let g=(u.$ref||"").split("/");g.shift();let C=Ve__default.default(s,g,null);C&&(C!=null&&C.name&&(C.name),g[g.length-1],d+=j(s,C));}else d+="";else if(u.anyOf)d+=j(s,u.anyOf[0]);else if(u.oneOf)d+=j(s,u.oneOf[0]);else if(u.allOf)d+=`{${u.allOf.map(g=>`...(${j(s,g)})`).join(",")}}`;else if(u.items)d+=`[${j(s,u.items)}]`;else if(u.properties){let C=Object.keys(u.properties).map(h=>{var A;return ` "${h}": ${j(s,(A=u.properties)==null?void 0:A[h])}`}).join(`,
28
- `);C.length>0?d+=`{
29
- ${C}
30
- }`:d+="{}";}else if(u.enum&&u.enum.length>0)u.enum.length>1&&(d+=u.enum[0]);else if(u.type)if(u.example)d+=JSON.stringify(u.example);else {let g=m=>{let C="";if(typeof m=="string")["string","integer","number","array","boolean","null"].includes(m)?["integer","number"].includes(m)?C+="123":m==="array"?C+="[]":m==="boolean"?C+="true":m==="null"?C+="null":C+=`"${m}"`:m==="object"&&(C+="{}");else if(Array.isArray(m)){let h=m.map(A=>g(A));h.filter(A=>A!==""),h.length>1&&(C+=h.join("|"));}else C+="any";return C};d=g(u.type);}else d+="any";else d="string";return d},k=fn(i);if(Bn__default.default(k,n))return;dn(i,n);let H="",T="",b={},Y=[],F=(s,u)=>{let w={},$={};Object.keys(s).forEach(g=>{var h;let m=(h=s[g])!=null&&h.schema?s[g].schema:s[g],C=`${v(n,m,"",true,{noSharedImport:true,useComponentName:false})}`;if(C){let A=g.split("."),J=w,p=$;for(let Z=0;Z<A.length;Z++){let O=A[Z];Z<A.length-1?(O in J||(J[O]={},p[O]={}),J=J[O],p=p[O]):(J[O]=C,p[O]=m);}}}),Object.keys(w).forEach(g=>{var A,J,p,Z;let m=E(g),C=w[g],h="";!((J=(A=e==null?void 0:e.types)==null?void 0:A.doc)!=null&&J.disable)&&g in s&&((p=s[g])!=null&&p.description)&&(h=" * "+s[g].description.split(`
31
- `).filter(O=>O.trim()!=="").join(`
32
- *${" ".repeat(1)}`)),b[g]=((Z=b[g])!=null?Z:"")+(h?`/**
33
- ${h}
29
+ `:"")+`${R(s,($e=a.properties)==null?void 0:$e[N],N,v.includes(N),m,g+1)}`;}),j.length>0?h+=`{
30
+ ${" ".repeat(g)}${j}${" ".repeat(g)}}`:h+="{[k: string]: any}";}else if(a.enum&&a.enum.length>0){let x=a.enum.includes(null),v=a.enum.filter(N=>N!==null).map(N=>JSON.stringify(N)).filter(N=>N!==void 0),j=v.length>1||v.length>0&&x;j&&(h+="("),v.forEach((N,k)=>{h+=`${k===0?"":"|"}${N}`;}),x&&(h+=`${v.length>0?"|":""}null`),j&&(h+=")");}else if(a.type){let x=v=>{let j="";if(typeof v=="string")["string","integer","number","array","boolean","null"].includes(v)?["integer","number"].includes(v)?j+="number":v==="array"?j+="any[]":j+=v:v==="object"&&(a.additionalProperties?j+=`{[k: string]: ${R(s,a.additionalProperties,"",true,ae(X({},m),{useComponentName:false}))||"any"}}`:j+="{[k: string]: any}");else if(Array.isArray(v)){let N=v.map(k=>x(k));N.filter(k=>k!==""),N.length>1&&(j+="("+N.join("|")+")");}else j+="any";return j};h=x(a.type);}else h+="any";else h="string";let S=d||C;m!=null&&m.useComponentName&&!S&&(S=$);let Q=S?` "${S}"${b?"":"?"}: `:"",l=(a==null?void 0:a.enum)&&a.enum.includes(null),z=a!=null&&a.nullable&&!l?" | null":"";return h.length>0?`${Q}${h}${z}${S?`;
31
+ `:""}`:""},B=(s,a,C,b,m,g=0)=>{let d="",$="",h="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let x=(a.$ref||"").split("/");x.shift();x[0]==="definitions";[...x].pop();let k=Le__default.default(s,x,null);if(k){k!=null&&k.name&&(d=k.name),$=x[x.length-1];let W=F($);W.includes(".")&&(W=W.split(".").join("_")),h+=`${m!=null&&m.noSharedImport?"":"Shared."}${W}`;}}else h+="Any";else if(a.anyOf)h+=`Union[${a.anyOf.map(x=>B(s,x,"",b,ae(X({},m),{useComponentName:false}))).filter(x=>!!x).join(", ")}]`;else if(a.oneOf)h+=`Union[${a.oneOf.map(x=>B(s,x,"",b,ae(X({},m),{useComponentName:false}))).filter(x=>!!x).join(", ")}]`;else if(a.allOf)h+="Dict[str, Any]";else if(a.items)h+=`List[${B(s,a.items,"",false,ae(X({},m),{useComponentName:false}))}]`;else if(a.properties){let x=Object.keys(a.properties),v=a.required||[],j="";x.forEach(N=>{var k;j+=B(s,(k=a.properties)==null?void 0:k[N],N,v.includes(N),m,g+1);}),j.length>0?C?h+="Dict[str, Any]":h+=`
32
+ ${j}`:h+="Dict[str, Any]";}else if(a.enum&&a.enum.length>0){let x=a.enum.filter(v=>v!==null).map(v=>JSON.stringify(v));x.length>0?h+=`Literal[${x.join(", ")}]`:h+="Any";}else if(a.type){let x=v=>{let j="";if(typeof v=="string")["integer","number"].includes(v)?j+=v==="number"?"float":"int":v==="string"?j+="str":v==="boolean"?j+="bool":v==="array"?j+="List[Any]":v==="object"?j+="Dict[str, Any]":v==="null"?j+="None":j+="Any";else if(Array.isArray(v)){let N=v.map(k=>x(k)).filter(k=>k!=="");N.length>1?j+=`Union[${N.join(", ")}]`:j+=N[0]||"Any";}else j+="Any";return j};h=x(a.type);}else h+="Any";else h="str";let S=d||C;m!=null&&m.useComponentName&&!S&&(S=$);let Q="";S&&(Q=` ${S.replace(/[^a-zA-Z0-9_]/g,"_")}: `);let l=h,z=!S&&h.includes(`
33
+ `);return a!=null&&a.nullable&&!z&&(h.startsWith("Union[")?l=h.replace("Union[","Union[None, "):l=`Optional[${h}]`),h.length>0?`${Q}${l}${S?`
34
+ `:""}`:""},P=s=>{let a=(s||"").replace(/^\n+/,"").trimEnd();if(!a)return ` pass
35
+ `;let C=a.split(`
36
+ `),b=/^[A-Za-z_][A-Za-z0-9_]*\s*:\s*.+$/,m=C.map($=>$.trim()).filter($=>!!$).filter($=>!$.startsWith('"""')&&!$.endsWith('"""'));return !m.some($=>b.test($))&&m.length===1?` value: ${m[0]}
37
+ `:`${a.split(`
38
+ `).map($=>$.trim()?/^\s/.test($)?$:` ${$}`:$).join(`
39
+ `)}
40
+ `},T=(s,a)=>`@dataclass
41
+ class ${s}:
42
+ ${P(a)}`,ee=s=>{let C=["Any","List","Dict","Union","Optional","Literal"].filter(b=>new RegExp(`\\b${b}\\b`).test(s));return C.length>0?`from typing import ${C.join(", ")}
43
+ `:""},M=(s,a=72)=>{let C=(s||"").replace(/\s+/g," ").trim().split(" ");if(!C[0])return [];let b=[],m="";return C.forEach(g=>{let d=m?`${m} ${g}`:g;d.length>a&&m?(b.push(m),m=g):m=d;}),m&&b.push(m),b},J=s=>{var m,g;if(!s||(g=(m=e==null?void 0:e.types)==null?void 0:m.doc)!=null&&g.disable)return "";let a=(s.description||"").trim(),C=Object.entries(s.properties||{}).map(([d,$])=>({name:d,desc:(($==null?void 0:$.description)||"").trim()})).filter(d=>d.desc.length>0);if(!a&&C.length===0)return "";let b=[' """'];return a&&M(a).forEach(d=>b.push(` ${d}`)),C.length>0&&(a&&b.push(""),b.push(" Attributes:"),C.forEach(d=>{let $=M(d.desc);$.length&&(b.push(` ${d.name}: ${$[0]}`),$.slice(1).forEach(h=>b.push(` ${h}`)));})),b.push(' """'),`${b.join(`
44
+ `)}
45
+ `},re=(s,a)=>{let m="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let g=(a.$ref||"").split("/");g.shift();let $=Le__default.default(s,g,null);$&&($!=null&&$.name&&($.name),g[g.length-1],m+=re(s,$));}else m+="";else if(a.anyOf)m+=re(s,a.anyOf[0]);else if(a.oneOf)m+=re(s,a.oneOf[0]);else if(a.allOf)m+=`{${a.allOf.map(g=>`...(${re(s,g)})`).join(",")}}`;else if(a.items)m+=`[${re(s,a.items)}]`;else if(a.properties){let $=Object.keys(a.properties).map(h=>{var S;return ` "${h}": ${re(s,(S=a.properties)==null?void 0:S[h])}`}).join(`,
46
+ `);$.length>0?m+=`{
47
+ ${$}
48
+ }`:m+="{}";}else if(a.enum&&a.enum.length>0)a.enum.length>1&&(m+=a.enum[0]);else if(a.type)if(a.example)m+=JSON.stringify(a.example);else {let g=d=>{let $="";if(typeof d=="string")["string","integer","number","array","boolean","null"].includes(d)?["integer","number"].includes(d)?$+="123":d==="array"?$+="[]":d==="boolean"?$+="true":d==="null"?$+="null":$+=`"${d}"`:d==="object"&&($+="{}");else if(Array.isArray(d)){let h=d.map(S=>g(S));h.filter(S=>S!==""),h.length>1&&($+=h.join("|"));}else $+="any";return $};m=g(a.type);}else m+="any";else m="string";return m},ge=Tt(p);if(Xt__default.default(ge,t))return;xt(p,t);let se="",le="",ue={},we=[],ke=(s,a)=>{let C={},b={};Object.keys(s).forEach(g=>{var h;let d=(h=s[g])!=null&&h.schema?s[g].schema:s[g],$=c?`${B(t,d,"",true,{noSharedImport:true,useComponentName:false})}`:`${R(t,d,"",true,{noSharedImport:true,useComponentName:false})}`;if($){let S=g.split("."),Q=C,l=b;for(let z=0;z<S.length;z++){let x=S[z];z<S.length-1?(x in Q||(Q[x]={},l[x]={}),Q=Q[x],l=l[x]):(Q[x]=$,l[x]=d);}}}),Object.keys(C).forEach(g=>{var z,x,v,j,N;let d=F(g),$=C[g],h=s[g],S=h!=null&&h.schema?h.schema:h,Q="",l="";!((x=(z=e==null?void 0:e.types)==null?void 0:z.doc)!=null&&x.disable)&&g in s&&((v=s[g])!=null&&v.description)&&(Q=" * "+s[g].description.split(`
49
+ `).filter(W=>W.trim()!=="").join(`
50
+ *${" ".repeat(1)}`)),l=J(S),c?ue[g]=((j=ue[g])!=null?j:"")+`@dataclass
51
+ class ${d}:
52
+ `+(l||"")+P(typeof $=="string"?$:"")+`
53
+ `:ue[g]=((N=ue[g])!=null?N:"")+(Q?`/**
54
+ ${Q}
34
55
  */
35
- `:"")+"export type "+m+" = "+(typeof C=="string"?C:exports.JSONStringify(C))+`;
36
- `;});};n.definitions&&F(n.definitions),n.components&&Object.keys(n.components).forEach(s=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(s)){let u=n.components[s];F(u);}});let Q=s=>{let u="";if(s.content){let w=Object.keys(s.content);w[0]&&s.content[w[0]].schema&&(u+=`${v(n,s.content[w[0]].schema,"")}`);}return u},K=(s,u,w=0)=>{if(!s)return u==="joi"?"Joi.any()":u==="yup"?"yup.mixed()":"z.any()";if(s.$ref){if(s.$ref[0]==="#"){let $=s.$ref.split("/");$.shift();let d=$.join("."),g=Ve__default.default(n,d);if(g)return K(g,u,w)}return u==="joi"?"Joi.any()":u==="yup"?"yup.mixed()":"z.any()"}if(s.anyOf||s.oneOf){let $=s.anyOf||s.oneOf;if($.every(g=>g.enum!==void 0&&Array.isArray(g.enum))){let g=[],m=false;if($.forEach(C=>{C.enum&&C.enum.forEach(h=>{h===null?m=true:g.includes(h)||g.push(h);});}),g.length>0){let C=g.map(h=>JSON.stringify(h)).join(", ");if(u==="zod"){let h=`z.enum([${C}])`;return m&&(h+=".nullable()"),h}else if(u==="yup"){let h=`yup.mixed().oneOf([${C}])`;return m&&(h+=".nullable()"),h}else return m?`Joi.valid(${C}, null)`:`Joi.valid(${C})`}else if(m)return u==="zod"?"z.null()":u==="yup"?"yup.mixed().nullable()":"Joi.valid(null)"}return u==="zod"?`z.union([${$.map(C=>K(C,u,w+1)).join(", ")}])`:u==="yup"?`yup.mixed().oneOf([${$.map(C=>K(C,u,w+1)).join(", ")}])`:`Joi.alternatives().try(${$.map(m=>K(m,u,w+1)).join(", ")})`}if(s.allOf)if(u==="zod"){let $=s.allOf.map(g=>K(g,u,w+1)),d=$[0];for(let g=1;g<$.length;g++)d=`${d}.merge(${$[g]})`;return d}else return K(s.allOf[0],u,w+1);if(s.items){let $=K(s.items,u,w+1);if(u==="zod"){let d=`z.array(${$})`;return s.minItems!==void 0&&(d+=`.min(${s.minItems})`),s.maxItems!==void 0&&(d+=`.max(${s.maxItems})`),d}else if(u==="yup"){let d=`yup.array().of(${$})`;return s.minItems!==void 0&&(d+=`.min(${s.minItems})`),s.maxItems!==void 0&&(d+=`.max(${s.maxItems})`),d}else {let d=`Joi.array().items(${$})`;return s.minItems!==void 0&&(d+=`.min(${s.minItems})`),s.maxItems!==void 0&&(d+=`.max(${s.maxItems})`),d}}if(s.properties){let $=s.required||[],d=" ".repeat(w+1),g=Object.entries(s.properties).map(([m,C])=>{let h=$.includes(m),A=K(C,u,w+1);return h||(A+=".optional()"),`${d}${m}: ${A}`}).join(`,
37
- `);return u==="zod"?`z.object({
56
+ `:"")+"export type "+d+" = "+(typeof $=="string"?$:exports.JSONStringify($))+`;
57
+ `;});};t.definitions&&ke(t.definitions),t.components&&Object.keys(t.components).forEach(s=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(s)){let a=t.components[s];ke(a);}});let on=s=>{let a="";if(s.content){let C=Object.keys(s.content);C[0]&&s.content[C[0]].schema&&(a+=c?`${B(t,s.content[C[0]].schema,"")}`:`${R(t,s.content[C[0]].schema,"")}`);}return a},me=(s,a,C=0)=>{if(!s)return a==="joi"?"Joi.any()":a==="yup"?"yup.mixed()":"z.any()";if(s.$ref){if(s.$ref[0]==="#"){let b=s.$ref.split("/");b.shift();let m=b.join("."),g=Le__default.default(t,m);if(g)return me(g,a,C)}return a==="joi"?"Joi.any()":a==="yup"?"yup.mixed()":"z.any()"}if(s.anyOf||s.oneOf){let b=s.anyOf||s.oneOf;if(b.every(g=>g.enum!==void 0&&Array.isArray(g.enum))){let g=[],d=false;if(b.forEach($=>{$.enum&&$.enum.forEach(h=>{h===null?d=true:g.includes(h)||g.push(h);});}),g.length>0){let $=g.map(h=>JSON.stringify(h)).join(", ");if(a==="zod"){let h=`z.enum([${$}])`;return d&&(h+=".nullable()"),h}else if(a==="yup"){let h=`yup.mixed().oneOf([${$}])`;return d&&(h+=".nullable()"),h}else return d?`Joi.valid(${$}, null)`:`Joi.valid(${$})`}else if(d)return a==="zod"?"z.null()":a==="yup"?"yup.mixed().nullable()":"Joi.valid(null)"}return a==="zod"?`z.union([${b.map($=>me($,a,C+1)).join(", ")}])`:a==="yup"?`yup.mixed().oneOf([${b.map($=>me($,a,C+1)).join(", ")}])`:`Joi.alternatives().try(${b.map(d=>me(d,a,C+1)).join(", ")})`}if(s.allOf)if(a==="zod"){let b=s.allOf.map(g=>me(g,a,C+1)),m=b[0];for(let g=1;g<b.length;g++)m=`${m}.merge(${b[g]})`;return m}else return me(s.allOf[0],a,C+1);if(s.items){let b=me(s.items,a,C+1);if(a==="zod"){let m=`z.array(${b})`;return s.minItems!==void 0&&(m+=`.min(${s.minItems})`),s.maxItems!==void 0&&(m+=`.max(${s.maxItems})`),m}else if(a==="yup"){let m=`yup.array().of(${b})`;return s.minItems!==void 0&&(m+=`.min(${s.minItems})`),s.maxItems!==void 0&&(m+=`.max(${s.maxItems})`),m}else {let m=`Joi.array().items(${b})`;return s.minItems!==void 0&&(m+=`.min(${s.minItems})`),s.maxItems!==void 0&&(m+=`.max(${s.maxItems})`),m}}if(s.properties){let b=s.required||[],m=" ".repeat(C+1),g=Object.entries(s.properties).map(([d,$])=>{let h=b.includes(d),S=me($,a,C+1);return h||(S+=".optional()"),`${m}${d}: ${S}`}).join(`,
58
+ `);return a==="zod"?`z.object({
38
59
  ${g}
39
- ${" ".repeat(w)}})`:u==="yup"?`yup.object({
60
+ ${" ".repeat(C)}})`:a==="yup"?`yup.object({
40
61
  ${g}
41
- ${" ".repeat(w)}})`:`Joi.object({
62
+ ${" ".repeat(C)}})`:`Joi.object({
42
63
  ${g}
43
- ${" ".repeat(w)}})`}if(s.enum&&s.enum.length>0){let $=[],d=false;s.enum.forEach(m=>{m===null?d=true:$.includes(m)||$.push(m);});let g=$.map(m=>JSON.stringify(m)).join(", ");if(u==="zod"){let m=`z.enum([${g}])`;return d&&(m+=".nullable()"),m}else if(u==="yup"){let m=`yup.mixed().oneOf([${g}])`;return d&&(m+=".nullable()"),m}else {let m=`Joi.valid(${g})`;return d&&(m+=".allow(null)"),m}}if(s.type){let d=(g=>{switch(g){case "string":if(u==="zod"){let m="z.string()";return s.format==="email"?m+=".email()":s.format==="uuid"?m+=".uuid()":s.format==="url"||s.format==="uri"?m+=".url()":s.format==="date-time"?m+=".datetime()":s.format==="date"&&(m+=".date()"),s.minLength&&(m+=`.min(${s.minLength})`),s.maxLength&&(m+=`.max(${s.maxLength})`),s.pattern&&(m+=`.regex(/${s.pattern}/)`),m}else if(u==="yup"){let m="yup.string()";return s.format==="email"?m+=".email()":(s.format==="url"||s.format==="uri")&&(m+=".url()"),s.minLength&&(m+=`.min(${s.minLength})`),s.maxLength&&(m+=`.max(${s.maxLength})`),s.pattern&&(m+=`.matches(/${s.pattern}/)`),m}else {let m="Joi.string()";return s.format==="email"?m+=".email()":s.format==="url"||s.format==="uri"?m+=".uri()":s.format==="uuid"?m+=".guid({ version: 'uuidv4' })":s.format==="date-time"&&(m+=".isoDate()"),s.minLength&&(m+=`.min(${s.minLength})`),s.maxLength&&(m+=`.max(${s.maxLength})`),s.pattern&&(m+=`.pattern(/${s.pattern}/)`),m}case "integer":case "number":if(u==="zod"){let m="z.number()";return g==="integer"&&(m+=".int()"),s.minimum!==void 0&&(s.exclusiveMinimum?m+=`.gt(${s.minimum})`:m+=`.min(${s.minimum})`),s.maximum!==void 0&&(s.exclusiveMaximum?m+=`.lt(${s.maximum})`:m+=`.max(${s.maximum})`),m}else if(u==="yup"){let m="yup.number()";return g==="integer"&&(m+=".integer()"),s.minimum!==void 0&&(m+=`.min(${s.minimum})`),s.maximum!==void 0&&(m+=`.max(${s.maximum})`),m}else {let m="Joi.number()";return g==="integer"&&(m+=".integer()"),s.minimum!==void 0&&(s.exclusiveMinimum?m+=`.greater(${s.minimum})`:m+=`.min(${s.minimum})`),s.maximum!==void 0&&(s.exclusiveMaximum?m+=`.less(${s.maximum})`:m+=`.max(${s.maximum})`),m}case "boolean":return u==="joi"?"Joi.boolean()":u==="yup"?"yup.boolean()":"z.boolean()";case "null":return u==="joi"?"Joi.any().allow(null)":u==="yup"?"yup.mixed().nullable()":"z.null()";default:return u==="joi"?"Joi.any()":u==="yup"?"yup.mixed()":"z.any()"}})(typeof s.type=="string"?s.type:s.type[0]);return s.nullable&&u!=="joi"?d+=".nullable()":s.nullable&&u==="joi"&&(d+=".allow(null)"),d}return u==="joi"?"Joi.any()":u==="yup"?"yup.mixed()":"z.any()"},me=s=>{var u,w,$,d,g;if((w=(u=e==null?void 0:e.endpoints)==null?void 0:u.value)!=null&&w.replaceWords&&Array.isArray(e==null?void 0:e.endpoints.value.replaceWords)){let m=s;return (g=(d=($=e==null?void 0:e.endpoints)==null?void 0:$.value)==null?void 0:d.replaceWords)==null||g.forEach((C,h)=>{let A=new RegExp(C.replace,"g");m=m.replace(A,C.with||"");}),m}else return s},se=(s,u,w=[])=>{var g,m;let $=(g=e==null?void 0:e.endpoints)==null?void 0:g.exclude,d=(m=e==null?void 0:e.endpoints)==null?void 0:m.include;if(d){let C=d.tags&&d.tags.length>0?w.some(A=>d.tags.includes(A)):true,h=d.endpoints&&d.endpoints.length>0?d.endpoints.some(A=>{let J=!A.method||A.method.toLowerCase()===u.toLowerCase();return A.path?s===A.path&&J:A.regex?new RegExp(A.regex).test(s)&&J:false}):true;if(!C||!h)return true}return !!($&&($.tags&&$.tags.length>0&&w.some(h=>$.tags.includes(h))||$.endpoints&&$.endpoints.length>0&&$.endpoints.some(h=>{let A=!h.method||h.method.toLowerCase()===u.toLowerCase();return h.path?s===h.path&&A:h.regex?new RegExp(h.regex).test(s)&&A:false})))};if(Object.keys(n.paths||{}).forEach(s=>{let u=n.paths[s];Object.keys(u).forEach($=>{var ut,ct,mt,dt,ft,yt,gt,ht,$t,Ct,bt,It,xt,wt,Tt,Et,vt,At,Ot,Pt,qt,St,jt,Rt,kt,Ut,Nt,Ft,Mt,Gt,Lt,Qt,Bt,zt,Wt,Dt,Jt,Ht,Kt,_t,Vt,Yt,Zt,Xt,en,tn,nn,rn,on;let d=$,g=exports.getEndpointDetails(s,d),m=((ut=u[d])==null?void 0:ut.tags)||[];if(se(s,d,m))return;let C=u[d],h=f({method:d,path:s,summary:C==null?void 0:C.summary,operationId:C==null?void 0:C.operationId,tags:m,parameters:C==null?void 0:C.parameters,requestBody:C==null?void 0:C.requestBody,responses:C==null?void 0:C.responses});c[h]||(c[h]={endpoints:"",types:"",validation:""});let A=((mt=(ct=e==null?void 0:e.endpoints)==null?void 0:ct.value)!=null&&mt.includeServer?S:"")+g.pathParts.map(I=>(I[0]==="{"&&I[I.length-1]==="}"?I=`\${${I.replace(/{/,"").replace(/}/,"")}}`:I[0]==="<"&&I[I.length-1]===">"?I=`\${${I.replace(/</,"").replace(/>/,"")}}`:I[0]===":"&&(I=`\${${I.replace(/:/,"")}}`),I)).join("/"),J=`"${A}"`;g.variables.length>0&&(J=`(${g.variables.map(x=>`${x}:string`).join(",")})=> \`${A}\``),J=me(J);let p=u[d],Z="",O;if(p!=null&&p.parameters&&((p==null?void 0:p.parameters).forEach((x,R)=>{(x.$ref||x.in==="query"&&x.name)&&(Z+=`${v(n,x.$ref?x:x.schema,x.name||"",x.required)}`);}),Z)){Z=`{
44
- ${Z}}`;let x=`${g.name}Query`;if((ft=(dt=e==null?void 0:e.types)==null?void 0:dt.name)!=null&&ft.useOperationId&&(p!=null&&p.operationId)&&(x=`${p.operationId}Query`),x=exports.capitalize(`${q}${x}`),(gt=(yt=e==null?void 0:e.types)==null?void 0:yt.name)!=null&&gt.format){let G=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"query",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},x);G&&(x=`${q}${G}`);}O=x;let R=`export type ${x} = ${Z};
45
- `;e!=null&&e.folderSplit?c[h].types+=R:T+=R;}if(((ht=e==null?void 0:e.validations)==null?void 0:ht.disable)!==true&&((Ct=($t=e==null?void 0:e.validations)==null?void 0:$t.generate)==null?void 0:Ct.query)!==false&&(p!=null&&p.parameters)){let I=((bt=e.validations)==null?void 0:bt.library)||"zod",R=p.parameters.filter(G=>!G.$ref&&G.in==="query"&&G.name);if(R.length>0){let G=((It=e==null?void 0:e.validations)==null?void 0:It.name)||((xt=e==null?void 0:e.types)==null?void 0:xt.name),_=typeof(G==null?void 0:G.prefix)=="string"?G.prefix:"I",N=typeof((Tt=(wt=e==null?void 0:e.validations)==null?void 0:wt.name)==null?void 0:Tt.suffix)=="string"?e.validations.name.suffix:"Schema",B=`${g.name}Query`;if(G!=null&&G.useOperationId&&(p!=null&&p.operationId)&&(B=`${p.operationId}Query`),B=exports.capitalize(`${_}${B}${N}`),(vt=(Et=e==null?void 0:e.validations)==null?void 0:Et.name)!=null&&vt.format){let ne=e.validations.name.format({code:"",type:"query",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},B);ne&&(B=`${_}${ne}${N}`);}else if((Ot=(At=e==null?void 0:e.types)==null?void 0:At.name)!=null&&Ot.format){let ne=e.types.name.format("endpoint",{code:"",type:"query",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},B);ne&&(B=`${_}${ne}${N}`);}let U=R.map(ne=>{let Rn=ne!=null&&ne.schema?K(ne.schema,I):I==="joi"?"Joi.string()":I==="yup"?"yup.string()":"z.string()",kn=ne.required?"":".optional()";return ` ${ne.name}: ${Rn}${kn}`}).join(`,
46
- `),de=`export const ${B} = ${I==="joi"?"Joi.object":I==="yup"?"yup.object":"z.object"}({
47
- ${U}
64
+ ${" ".repeat(C)}})`}if(s.enum&&s.enum.length>0){let b=[],m=false;s.enum.forEach(d=>{d===null?m=true:b.includes(d)||b.push(d);});let g=b.map(d=>JSON.stringify(d)).join(", ");if(a==="zod"){let d=`z.enum([${g}])`;return m&&(d+=".nullable()"),d}else if(a==="yup"){let d=`yup.mixed().oneOf([${g}])`;return m&&(d+=".nullable()"),d}else {let d=`Joi.valid(${g})`;return m&&(d+=".allow(null)"),d}}if(s.type){let m=(g=>{switch(g){case "string":if(a==="zod"){let d="z.string()";return s.format==="email"?d+=".email()":s.format==="uuid"?d+=".uuid()":s.format==="url"||s.format==="uri"?d+=".url()":s.format==="date-time"?d+=".datetime()":s.format==="date"&&(d+=".date()"),s.minLength&&(d+=`.min(${s.minLength})`),s.maxLength&&(d+=`.max(${s.maxLength})`),s.pattern&&(d+=`.regex(/${s.pattern}/)`),d}else if(a==="yup"){let d="yup.string()";return s.format==="email"?d+=".email()":(s.format==="url"||s.format==="uri")&&(d+=".url()"),s.minLength&&(d+=`.min(${s.minLength})`),s.maxLength&&(d+=`.max(${s.maxLength})`),s.pattern&&(d+=`.matches(/${s.pattern}/)`),d}else {let d="Joi.string()";return s.format==="email"?d+=".email()":s.format==="url"||s.format==="uri"?d+=".uri()":s.format==="uuid"?d+=".guid({ version: 'uuidv4' })":s.format==="date-time"&&(d+=".isoDate()"),s.minLength&&(d+=`.min(${s.minLength})`),s.maxLength&&(d+=`.max(${s.maxLength})`),s.pattern&&(d+=`.pattern(/${s.pattern}/)`),d}case "integer":case "number":if(a==="zod"){let d="z.number()";return g==="integer"&&(d+=".int()"),s.minimum!==void 0&&(s.exclusiveMinimum?d+=`.gt(${s.minimum})`:d+=`.min(${s.minimum})`),s.maximum!==void 0&&(s.exclusiveMaximum?d+=`.lt(${s.maximum})`:d+=`.max(${s.maximum})`),d}else if(a==="yup"){let d="yup.number()";return g==="integer"&&(d+=".integer()"),s.minimum!==void 0&&(d+=`.min(${s.minimum})`),s.maximum!==void 0&&(d+=`.max(${s.maximum})`),d}else {let d="Joi.number()";return g==="integer"&&(d+=".integer()"),s.minimum!==void 0&&(s.exclusiveMinimum?d+=`.greater(${s.minimum})`:d+=`.min(${s.minimum})`),s.maximum!==void 0&&(s.exclusiveMaximum?d+=`.less(${s.maximum})`:d+=`.max(${s.maximum})`),d}case "boolean":return a==="joi"?"Joi.boolean()":a==="yup"?"yup.boolean()":"z.boolean()";case "null":return a==="joi"?"Joi.any().allow(null)":a==="yup"?"yup.mixed().nullable()":"z.null()";default:return a==="joi"?"Joi.any()":a==="yup"?"yup.mixed()":"z.any()"}})(typeof s.type=="string"?s.type:s.type[0]);return s.nullable&&a!=="joi"?m+=".nullable()":s.nullable&&a==="joi"&&(m+=".allow(null)"),m}return a==="joi"?"Joi.any()":a==="yup"?"yup.mixed()":"z.any()"},Qt=s=>{var a,C,b,m,g;if((C=(a=e==null?void 0:e.endpoints)==null?void 0:a.value)!=null&&C.replaceWords&&Array.isArray(e==null?void 0:e.endpoints.value.replaceWords)){let d=s;return (g=(m=(b=e==null?void 0:e.endpoints)==null?void 0:b.value)==null?void 0:m.replaceWords)==null||g.forEach(($,h)=>{let S=new RegExp($.replace,"g");d=d.replace(S,$.with||"");}),d}else return s},Bt=(s,a,C=[])=>{var g,d;let b=(g=e==null?void 0:e.endpoints)==null?void 0:g.exclude,m=(d=e==null?void 0:e.endpoints)==null?void 0:d.include;if(m){let $=m.tags&&m.tags.length>0?C.some(S=>m.tags.includes(S)):true,h=m.endpoints&&m.endpoints.length>0?m.endpoints.some(S=>{let Q=!S.method||S.method.toLowerCase()===a.toLowerCase();return S.path?s===S.path&&Q:S.regex?new RegExp(S.regex).test(s)&&Q:false}):true;if(!$||!h)return true}return !!(b&&(b.tags&&b.tags.length>0&&C.some(h=>b.tags.includes(h))||b.endpoints&&b.endpoints.length>0&&b.endpoints.some(h=>{let S=!h.method||h.method.toLowerCase()===a.toLowerCase();return h.path?s===h.path&&S:h.regex?new RegExp(h.regex).test(s)&&S:false})))};if(Object.keys(t.paths||{}).forEach(s=>{let a=t.paths[s];Object.keys(a).forEach(b=>{var $n,bn,Cn,In,xn,Tn,En,wn,An,On,vn,Pn,jn,Sn,qn,Rn,kn,Un,Nn,Fn,Ln,Gn,Mn,Qn,Bn,zn,Dn,Wn,Jn,_n,Hn,Kn,Vn,Yn,Zn,Xn,et,nt,tt,rt,st,ot,it,at,lt,pt,ut,ct,mt,dt;let m=b,g=exports.getEndpointDetails(s,m),d=(($n=a[m])==null?void 0:$n.tags)||[];if(Bt(s,m,d))return;let $=a[m],h=L({method:m,path:s,summary:$==null?void 0:$.summary,operationId:$==null?void 0:$.operationId,tags:d,parameters:$==null?void 0:$.parameters,requestBody:$==null?void 0:$.requestBody,responses:$==null?void 0:$.responses});A[h]||(A[h]={endpoints:"",types:"",validation:""});let S=((Cn=(bn=e==null?void 0:e.endpoints)==null?void 0:bn.value)!=null&&Cn.includeServer?q:"")+g.pathParts.map(E=>(E[0]==="{"&&E[E.length-1]==="}"?E=`\${${E.replace(/{/,"").replace(/}/,"")}}`:E[0]==="<"&&E[E.length-1]===">"?E=`\${${E.replace(/</,"").replace(/>/,"")}}`:E[0]===":"&&(E=`\${${E.replace(/:/,"")}}`),E)).join("/"),Q=`"${S}"`;g.variables.length>0&&(Q=`(${g.variables.map(I=>`${I}:string`).join(",")})=> \`${S}\``),Q=Qt(Q);let l=a[m],z="",x;if(l!=null&&l.parameters&&((l==null?void 0:l.parameters).forEach((I,w)=>{(I.$ref||I.in==="query"&&I.name)&&(z+=c?`${B(t,I.$ref?I:I.schema,I.name||"",I.required)}`:`${R(t,I.$ref?I:I.schema,I.name||"",I.required)}`);}),z)){z=c?z:`{
65
+ ${z}}`;let w=`${g.name}Query`;if((xn=(In=e==null?void 0:e.types)==null?void 0:In.name)!=null&&xn.useOperationId&&(l!=null&&l.operationId)&&(w=`${l.operationId}Query`),w=exports.capitalize(`${O}${w}`),(En=(Tn=e==null?void 0:e.types)==null?void 0:Tn.name)!=null&&En.format){let _=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"query",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},w);_&&(w=`${O}${_}`);}x=w;let G=c?`${T(w,z)}
66
+ `:`export type ${w} = ${z};
67
+ `;e!=null&&e.folderSplit?A[h].types+=G:le+=G;}if(((wn=e==null?void 0:e.validations)==null?void 0:wn.disable)!==true&&((On=(An=e==null?void 0:e.validations)==null?void 0:An.generate)==null?void 0:On.query)!==false&&(l!=null&&l.parameters)){let E=((vn=e.validations)==null?void 0:vn.library)||"zod",w=l.parameters.filter(G=>!G.$ref&&G.in==="query"&&G.name);if(w.length>0){let G=((Pn=e==null?void 0:e.validations)==null?void 0:Pn.name)||((jn=e==null?void 0:e.types)==null?void 0:jn.name),_=typeof(G==null?void 0:G.prefix)=="string"?G.prefix:"I",Y=typeof((qn=(Sn=e==null?void 0:e.validations)==null?void 0:Sn.name)==null?void 0:qn.suffix)=="string"?e.validations.name.suffix:"Schema",Z=`${g.name}Query`;if(G!=null&&G.useOperationId&&(l!=null&&l.operationId)&&(Z=`${l.operationId}Query`),Z=exports.capitalize(`${_}${Z}${Y}`),(kn=(Rn=e==null?void 0:e.validations)==null?void 0:Rn.name)!=null&&kn.format){let K=e.validations.name.format({code:"",type:"query",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Z);K&&(Z=`${_}${K}${Y}`);}else if((Nn=(Un=e==null?void 0:e.types)==null?void 0:Un.name)!=null&&Nn.format){let K=e.types.name.format("endpoint",{code:"",type:"query",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Z);K&&(Z=`${_}${K}${Y}`);}let D=w.map(K=>{let Ue=K!=null&&K.schema?me(K.schema,E):E==="joi"?"Joi.string()":E==="yup"?"yup.string()":"z.string()",Wt=K.required?"":".optional()";return ` ${K.name}: ${Ue}${Wt}`}).join(`,
68
+ `),H=`export const ${Z} = ${E==="joi"?"Joi.object":E==="yup"?"yup.object":"z.object"}({
69
+ ${D}
48
70
  });
49
71
 
50
- `;e!=null&&e.folderSplit||c[h]||(c[h]={endpoints:"",types:"",validation:""}),c[h].validation+=de;}}let M=p==null?void 0:p.requestBody,L="",z;if(M&&(L=Q(M),L)){let I=`${g.name}DTO`;if((qt=(Pt=e==null?void 0:e.types)==null?void 0:Pt.name)!=null&&qt.useOperationId&&(p!=null&&p.operationId)&&(I=`${p.operationId}DTO`),I=exports.capitalize(`${q}${I}`),(jt=(St=e==null?void 0:e.types)==null?void 0:St.name)!=null&&jt.format){let R=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"dto",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},I);R&&(I=`${q}${R}`);}z=I;let x=`export type ${I} = ${L};
51
- `;e!=null&&e.folderSplit?c[h].types+=x:T+=x;}if(((Rt=e==null?void 0:e.validations)==null?void 0:Rt.disable)!==true&&((Ut=(kt=e==null?void 0:e.validations)==null?void 0:kt.generate)==null?void 0:Ut.dto)!==false&&M){let I=((Nt=e.validations)==null?void 0:Nt.library)||"zod";if(M.content){let x=Object.keys(M.content);if(x[0]&&M.content[x[0]].schema){let R=((Ft=e==null?void 0:e.validations)==null?void 0:Ft.name)||((Mt=e==null?void 0:e.types)==null?void 0:Mt.name),G=typeof(R==null?void 0:R.prefix)=="string"?R.prefix:"I",_=typeof((Lt=(Gt=e==null?void 0:e.validations)==null?void 0:Gt.name)==null?void 0:Lt.suffix)=="string"?e.validations.name.suffix:"Schema",N=`${g.name}DTO`;if(R!=null&&R.useOperationId&&(p!=null&&p.operationId)&&(N=`${p.operationId}DTO`),N=exports.capitalize(`${G}${N}${_}`),(Bt=(Qt=e==null?void 0:e.validations)==null?void 0:Qt.name)!=null&&Bt.format){let te=e.validations.name.format({code:"",type:"dto",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},N);te&&(N=`${G}${te}${_}`);}else if((Wt=(zt=e==null?void 0:e.types)==null?void 0:zt.name)!=null&&Wt.format){let te=e.types.name.format("endpoint",{code:"",type:"dto",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},N);te&&(N=`${G}${te}${_}`);}let B=K(M.content[x[0]].schema,I),U=`export const ${N} = ${B};
52
-
53
- `;e!=null&&e.folderSplit||c[h]||(c[h]={endpoints:"",types:"",validation:""}),c[h].validation+=U;}}}let W={},oe="",we="";if(p!=null&&p.responses){let I=p==null?void 0:p.responses;Object.keys(I).forEach(R=>{var G,_,N,B;if(oe=Q(I[R]),W[R]=oe,oe){let U=`${g.name}${R}Response`;if((_=(G=e==null?void 0:e.types)==null?void 0:G.name)!=null&&_.useOperationId&&(p!=null&&p.operationId)&&(U=`${p.operationId}${R}Response`),U=exports.capitalize(`${q}${U}`),(B=(N=e==null?void 0:e.types)==null?void 0:N.name)!=null&&B.format){let ne=e==null?void 0:e.types.name.format("endpoint",{code:R,type:"response",method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},U);ne&&(U=`${q}${ne}`);}let te=`export type ${U} = ${oe};
54
- `;e!=null&&e.folderSplit?c[h].types+=te:T+=te,W[R]=U;let de=parseInt(R);de>=200&&de<300&&(we=U);}});}let ye=I=>!I||!I.length?"":I.map(x=>Object.entries(x).map(([G,_])=>{let N=G,B="";return Array.isArray(_)&&_.length&&(B=`
55
- - Scopes: [\`${_.join("`, `")}\`]`,N=`**${N}**`),`
56
- - ${N}${B}`}).join("")).join(`
57
- `),ge=p!=null&&p.security?ye(p.security):"",ve="";if(!((Jt=(Dt=e==null?void 0:e.endpoints)==null?void 0:Dt.doc)!=null&&Jt.disable)){let I="";if((Kt=(Ht=e==null?void 0:e.endpoints)==null?void 0:Ht.doc)!=null&&Kt.showCurl){let x={},R="",G="";(_t=p.requestBody)!=null&&_t.content&&Object.keys(p.requestBody.content).forEach(B=>{let U=p.requestBody.content[B].schema;if(U){Array.isArray(x["Content-type"])?x["Content-type"].push(B):x["Content-type"]=[B];let te=j(n,U);te&&(R=te);}}),p!=null&&p.security&&p.security.forEach(N=>{Object.keys(N).forEach(B=>{var te,de;let U=(de=(te=n.components)==null?void 0:te.securitySchemes)==null?void 0:de[B];U&&(U.type==="mutualTLS"?G+=`
58
- --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:U.type==="apiKey"?x[(U==null?void 0:U.name)||"X-API-KEY"]="{API_KEY_VALUE}":x.Authorization=`${(U==null?void 0:U.scheme)==="basic"?"Basic":"Bearer"} {${(U==null?void 0:U.scheme)==="basic"?"VALUE":"TOKEN"}}`);});});let _={};Object.keys(x).forEach(N=>{Array.isArray(x[N])?_[N]=x[N].join("; "):_[N]=x[N];}),I=`
72
+ `;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=H;}}let v=l==null?void 0:l.requestBody,j="",N;if(v&&(j=on(v),j)){let E=`${g.name}DTO`;if((Ln=(Fn=e==null?void 0:e.types)==null?void 0:Fn.name)!=null&&Ln.useOperationId&&(l!=null&&l.operationId)&&(E=`${l.operationId}DTO`),E=exports.capitalize(`${O}${E}`),(Mn=(Gn=e==null?void 0:e.types)==null?void 0:Gn.name)!=null&&Mn.format){let w=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"dto",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},E);w&&(E=`${O}${w}`);}N=E;let I=c?`${T(E,j)}
73
+ `:`export type ${E} = ${j};
74
+ `;e!=null&&e.folderSplit?A[h].types+=I:le+=I;}if(((Qn=e==null?void 0:e.validations)==null?void 0:Qn.disable)!==true&&((zn=(Bn=e==null?void 0:e.validations)==null?void 0:Bn.generate)==null?void 0:zn.dto)!==false&&v){let E=((Dn=e.validations)==null?void 0:Dn.library)||"zod";if(v.content){let I=Object.keys(v.content);if(I[0]&&v.content[I[0]].schema){let w=((Wn=e==null?void 0:e.validations)==null?void 0:Wn.name)||((Jn=e==null?void 0:e.types)==null?void 0:Jn.name),G=typeof(w==null?void 0:w.prefix)=="string"?w.prefix:"I",_=typeof((Hn=(_n=e==null?void 0:e.validations)==null?void 0:_n.name)==null?void 0:Hn.suffix)=="string"?e.validations.name.suffix:"Schema",Y=`${g.name}DTO`;if(w!=null&&w.useOperationId&&(l!=null&&l.operationId)&&(Y=`${l.operationId}DTO`),Y=exports.capitalize(`${G}${Y}${_}`),(Vn=(Kn=e==null?void 0:e.validations)==null?void 0:Kn.name)!=null&&Vn.format){let oe=e.validations.name.format({code:"",type:"dto",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Y);oe&&(Y=`${G}${oe}${_}`);}else if((Zn=(Yn=e==null?void 0:e.types)==null?void 0:Yn.name)!=null&&Zn.format){let oe=e.types.name.format("endpoint",{code:"",type:"dto",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Y);oe&&(Y=`${G}${oe}${_}`);}let Z=me(v.content[I[0]].schema,E),D=`export const ${Y} = ${Z};
75
+
76
+ `;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=D;}}}let k={},W="",Ae="";if(l!=null&&l.responses){let E=l==null?void 0:l.responses;Object.keys(E).forEach(w=>{var G,_,Y,Z;if(W=on(E[w]),k[w]=W,W){let D=`${g.name}${w}Response`;if((_=(G=e==null?void 0:e.types)==null?void 0:G.name)!=null&&_.useOperationId&&(l!=null&&l.operationId)&&(D=`${l.operationId}${w}Response`),D=exports.capitalize(`${O}${D}`),(Z=(Y=e==null?void 0:e.types)==null?void 0:Y.name)!=null&&Z.format){let K=e==null?void 0:e.types.name.format("endpoint",{code:w,type:"response",method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},D);K&&(D=`${O}${K}`);}let oe=c?`${T(D,W)}
77
+ `:`export type ${D} = ${W};
78
+ `;e!=null&&e.folderSplit?A[h].types+=oe:le+=oe,k[w]=D;let H=parseInt(w);H>=200&&H<300&&(Ae=D);}});}let Ce=E=>!E||!E.length?"":E.map(I=>Object.entries(I).map(([G,_])=>{let Y=G,Z="";return Array.isArray(_)&&_.length&&(Z=`
79
+ - Scopes: [\`${_.join("`, `")}\`]`,Y=`**${Y}**`),`
80
+ - ${Y}${Z}`}).join("")).join(`
81
+ `),ye=l!=null&&l.security?Ce(l.security):"",he="";if(!((et=(Xn=e==null?void 0:e.endpoints)==null?void 0:Xn.doc)!=null&&et.disable)){let E="";if((tt=(nt=e==null?void 0:e.endpoints)==null?void 0:nt.doc)!=null&&tt.showCurl||c){let I={},w="",G="";(rt=l.requestBody)!=null&&rt.content&&Object.keys(l.requestBody.content).forEach(oe=>{let H=l.requestBody.content[oe].schema;if(H){Array.isArray(I["Content-type"])?I["Content-type"].push(oe):I["Content-type"]=[oe];let K=re(t,H);K&&(w=K);}}),l!=null&&l.security&&l.security.forEach(D=>{Object.keys(D).forEach(oe=>{var K,Ue;let H=(Ue=(K=t.components)==null?void 0:K.securitySchemes)==null?void 0:Ue[oe];H&&(H.type==="mutualTLS"?G+=`
82
+ --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:H.type==="apiKey"?I[(H==null?void 0:H.name)||"X-API-KEY"]="{API_KEY_VALUE}":I.Authorization=`${(H==null?void 0:H.scheme)==="basic"?"Basic":"Bearer"} {${(H==null?void 0:H.scheme)==="basic"?"VALUE":"TOKEN"}}`);});});let _={};Object.keys(I).forEach(D=>{Array.isArray(I[D])?_[D]=I[D].join("; "):_[D]=I[D];});let Z=`${curlGenerator.CurlGenerator({url:q+s,method:m.toUpperCase(),headers:_,body:w})||`curl ${q+s} -X ${m.toUpperCase()}`}${G}`;E=c?`
83
+ \`\`\`bash
84
+ ${Z}
85
+ \`\`\``:`
59
86
  \`\`\`bash
60
- ${curlGenerator.CurlGenerator({url:S+s,method:d.toUpperCase(),headers:_,body:R})}${G}
61
- \`\`\``;}ve=`/**${p!=null&&p.description?`
62
- * ${p==null?void 0:p.description} `:""}
63
- * **Method**: \`${d.toUpperCase()}\`
64
- * **Summary**: ${(p==null?void 0:p.summary)||""}
65
- * **Tags**: [${((Vt=p==null?void 0:p.tags)==null?void 0:Vt.join(", "))||""}]
66
- * **OperationId**: ${(p==null?void 0:p.operationId)||""} ${Z?`
67
- * **Query**: ${exports.renderTypeRefMD(Z)} `:""}${L?`
68
- * **DTO**: ${exports.renderTypeRefMD(L)} `:""}${oe?`
69
- * **Response**: ${Object.entries(W).map(([x,R])=>`
70
- - **${x}**: ${exports.renderTypeRefMD(R,2)} `).join("")}`:""}${ge?`
71
- * **Security**: ${ge}
72
- `:""}${I}
87
+ ${Z}
88
+ \`\`\``;}if(c){let I=[];l!=null&&l.description&&I.push(`* ${l.description}`),I.push(`* **Method**: ${m.toUpperCase()}`),I.push(`* **Summary**: ${(l==null?void 0:l.summary)||""}`),I.push(`* **Tags**: [${((st=l==null?void 0:l.tags)==null?void 0:st.join(", "))||""}]`),I.push(`* **OperationId**: ${(l==null?void 0:l.operationId)||""}`),z&&(I.push("* **Query**:"),I.push("```python"),z.split(`
89
+ `).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),j&&(I.push("* **DTO**:"),I.push("```python"),j.split(`
90
+ `).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),W&&(I.push("* **Response**:"),I.push("```python"),Object.entries(k).forEach(([w,G])=>{I.push(`${w}: ${String(G).replace(/\n/g," ")}`);}),I.push("```")),ye&&(I.push("* **Security**:"),ye.split(`
91
+ `).filter(w=>w.trim().length>0).forEach(w=>I.push(w.replace(/\*\*/g,"")))),he=`"""
92
+ ${I.join(`
93
+ `)}${E}
94
+ """
95
+ `;}else he=`/**${l!=null&&l.description?`
96
+ * ${l==null?void 0:l.description} `:""}
97
+ * **Method**: \`${m.toUpperCase()}\`
98
+ * **Summary**: ${(l==null?void 0:l.summary)||""}
99
+ * **Tags**: [${((ot=l==null?void 0:l.tags)==null?void 0:ot.join(", "))||""}]
100
+ * **OperationId**: ${(l==null?void 0:l.operationId)||""} ${z?`
101
+ * **Query**: ${exports.renderTypeRefMD(z)} `:""}${j?`
102
+ * **DTO**: ${exports.renderTypeRefMD(j)} `:""}${W?`
103
+ * **Response**: ${Object.entries(k).map(([I,w])=>`
104
+ - **${I}**: ${exports.renderTypeRefMD(w,2)} `).join("")}`:""}${ye?`
105
+ * **Security**: ${ye}
106
+ `:""}${E}
73
107
  */
74
- `;}let he=(Zt=(Yt=e==null?void 0:e.endpoints)==null?void 0:Yt.name)!=null&&Zt.useOperationId&&((Xt=p==null?void 0:p.operationId)==null?void 0:Xt.length)>0?p.operationId:`${g.name}`;if((tn=(en=e==null?void 0:e.endpoints)==null?void 0:en.name)!=null&&tn.format){let I=e==null?void 0:e.endpoints.name.format({method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId},he);I&&(he=I);}let Me={method:`"${d}"`,operationId:`"${p==null?void 0:p.operationId}"`,url:J,tags:(p==null?void 0:p.tags)||[]},pt=`${ve}export const ${P}${he} = ${((rn=(nn=e==null?void 0:e.endpoints)==null?void 0:nn.value)==null?void 0:rn.type)==="object"?exports.JSONStringify(Me):J};
75
- `;e!=null&&e.folderSplit?c[h].endpoints+=pt:H+=pt;let jn={name:`${P}${he}`,method:d,path:s,summary:p==null?void 0:p.summary,operationId:p==null?void 0:p.operationId,tags:m,parameters:(on=p==null?void 0:p.parameters)==null?void 0:on.filter(I=>!I.$ref&&I.in&&I.name).map(I=>{var x;return {name:I.name,in:I.in,required:I.required,type:((x=I.schema)==null?void 0:x.type)||"string"}}),requestBody:M?{type:L,required:M.required}:void 0,responses:W?Object.entries(W).reduce((I,[x,R])=>(I[x]={type:R},I),{}):void 0,queryType:O,dtoType:z,responseType:we||void 0};Y.push(jn);});}),e!=null&&e.folderSplit){for(let[s,u]of Object.entries(c))if(u.endpoints||u.types){let w=D__default.default.join(y,s);if(u.endpoints){let $=D__default.default.join(fe,w,"endpoints.ts");yield le__default.default.promises.mkdir(D__default.default.dirname($),{recursive:true}),yield $e($,u.endpoints,e);}if(u.types){let $=D__default.default.join(fe,w,"types.ts");yield le__default.default.promises.mkdir(D__default.default.dirname($),{recursive:true});let d=Object.values(b).length>0?`import * as Shared from "../shared";
76
-
77
- ${u.types}`:u.types;yield $e($,d,e);}if(((st=e==null?void 0:e.validations)==null?void 0:st.disable)!==true&&u.validation){let $=((at=e.validations)==null?void 0:at.library)||"zod",d=$==="joi"?'import Joi from "joi";':$==="yup"?'import * as yup from "yup";':'import { z } from "zod";',g=D__default.default.join(fe,w,"validations.ts");yield le__default.default.promises.mkdir(D__default.default.dirname(g),{recursive:true}),yield $e(g,`${d}
78
-
79
- ${u.validation}`,e);}}}if(H.length>0){let s=D__default.default.join(fe,y,"endpoints.ts");yield le__default.default.promises.mkdir(D__default.default.dirname(s),{recursive:true}),yield $e(s,H,e);}if(Object.values(b).length>0){let s=D__default.default.join(fe,y,e!=null&&e.folderSplit?"":"types","shared.ts");yield le__default.default.promises.mkdir(D__default.default.dirname(s),{recursive:true}),yield $e(s,Object.values(b).join(`
80
- `),e);}if(T.length>0){let s=D__default.default.join(fe,y,"types","index.ts");yield le__default.default.promises.mkdir(D__default.default.dirname(s),{recursive:true}),yield $e(s,`${Object.values(b).length>0?`import * as Shared from "./shared";
81
-
82
- `:""}${T}`,e);}if(((it=e==null?void 0:e.validations)==null?void 0:it.disable)!==true&&!(e!=null&&e.folderSplit)){let s=((lt=e.validations)==null?void 0:lt.library)||"zod",u=s==="joi"?'import Joi from "joi";':s==="yup"?'import * as yup from "yup";':'import { z } from "zod";',w=Object.values(c).map($=>$.validation).filter($=>$.length>0).join("");if(w){let $=D__default.default.join(fe,y,"validations.ts");yield le__default.default.promises.mkdir(D__default.default.dirname($),{recursive:true}),yield $e($,`${u}
83
-
84
- ${w}`,e);}}return gn(i,Y),console.info(`\u2705 Successfully synced ${i}`),{success:true}}),Ze=Cn;});var In,Xe,Ce,et,tt,nt,xn=pe(()=>{In=(r,o)=>{let i=r;return o.tags&&o.tags.length>0&&(i=i.filter(e=>!e.tags||e.tags.length===0?false:e.tags.some(a=>o.tags.includes(a)))),o.endpoints&&o.endpoints.length>0&&(i=i.filter(e=>o.endpoints.includes(e.name))),i},Xe=(r,o,i=false)=>{var n,y;let e=o.baseURL||"";o.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 l=new Set;return r.forEach(c=>{c.queryType&&l.add(c.queryType),c.dtoType&&l.add(c.dtoType),c.responseType&&l.add(c.responseType);}),l.forEach(c=>{t+=` ${c},
89
- `;}),t+=`} from '../types';
90
-
91
- `,t+=`import {
92
- `,r.forEach(c=>{t+=` ${c.name} as ${c.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
- `,(n=o.errorHandling)!=null&&n.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
- `,(y=o.errorHandling)!=null&&y.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
- `,r.forEach(c=>{var H,T;let f=c.name,S=((H=c.parameters)==null?void 0:H.filter(b=>b.in==="path"))||[],q=((T=c.parameters)==null?void 0:T.filter(b=>b.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!c.requestBody,j=c.responseType||"any";if(t+=`/**
146
- `,c.summary&&(t+=` * ${c.summary}
147
- `),t+=` * @method ${c.method.toUpperCase()}
148
- `,t+=` * @path ${c.path}
149
- `,c.tags&&c.tags.length>0&&(t+=` * @tags ${c.tags.join(", ")}
150
- `),t+=` */
151
- `,t+=`export async function ${f}(`,(P||E||v)&&(t+=`params: {
152
- `,P&&(t+=` url: {
153
- `,S.forEach(b=>{let F={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[b.type||"string"]||"any",Q=b.required?"":"?";t+=` ${b.name}${Q}: ${F};
154
- `;}),t+=` };
155
- `),E&&(t+=` query: ${c.queryType||"Record<string, any>"};
156
- `),v&&(t+=` data: ${c.dtoType||"any"};
157
- `),t+=`}
158
- `),t+=`): Promise<${j}> {
159
- `,P||E||v){let b=[];P&&b.push("url"),E&&b.push("query"),v&&b.push("data"),t+=` const { ${b.join(", ")} } = params;
160
- `;}let k;if(P){let b=S.map(Y=>`url.${Y.name}`).join(", ");k=`${c.name}_endpoint(${b})`;}else k=`${c.name}_endpoint`;E?(t+=` const queryParams = new URLSearchParams();
161
- `,q.forEach(b=>{b.required?t+=` queryParams.append('${b.name}', String(query.${b.name}));
162
- `:(t+=` if (query.${b.name} !== undefined) {
163
- `,t+=` queryParams.append('${b.name}', String(query.${b.name}));
164
- `,t+=` }
165
- `);}),t+=` const _url = \`\${${k}}?\${queryParams.toString()}\`;
166
- `):t+=` const _url = ${k};
167
- `,t+=` return fetchAPI<${j}>(_url, {
168
- `,t+=` method: '${c.method.toUpperCase()}',
169
- `,v&&(t+=` body: JSON.stringify(data),
170
- `),t+=` });
171
- `,t+=`}
172
-
173
- `;}),i&&(t+=`// Export all functions as a default object
174
- `,t+=`const apiClient = {
175
- `,t+=` setApiConfig,
176
- `,r.forEach(c=>{t+=` ${c.name},
177
- `;}),t+=`};
178
-
179
- `,t+=`export default apiClient;
180
- `),t},Ce=(r,o,i=false)=>{var n,y;let e=o.baseURL||"";o.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 l=new Set;return r.forEach(c=>{c.queryType&&l.add(c.queryType),c.dtoType&&l.add(c.dtoType),c.responseType&&l.add(c.responseType);}),l.forEach(c=>{t+=` ${c},
187
- `;}),t+=`} from '../types';
188
-
189
- `,t+=`import {
190
- `,r.forEach(c=>{t+=` ${c.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
- `,(n=o.errorHandling)!=null&&n.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
- `,(y=o.errorHandling)!=null&&y.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
- `,r.forEach(c=>{var k,H;let f=c.name,S=((k=c.parameters)==null?void 0:k.filter(T=>T.in==="path"))||[],q=((H=c.parameters)==null?void 0:H.filter(T=>T.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!c.requestBody,j=c.responseType||"any";if(t+=` /**
240
- `,c.summary&&(t+=` * ${c.summary}
241
- `),t+=` * @method ${c.method.toUpperCase()}
242
- `,t+=` * @path ${c.path}
243
- `,c.tags&&c.tags.length>0&&(t+=` * @tags ${c.tags.join(", ")}
244
- `),t+=` */
245
- `,t+=` async ${f}(`,(P||E||v)&&(t+=`params: {
246
- `,P&&(t+=` url: {
247
- `,S.forEach(T=>{let Y={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[T.type||"string"]||"any",F=T.required?"":"?";t+=` ${T.name}${F}: ${Y};
248
- `;}),t+=` };
249
- `),E&&(t+=` query: ${c.queryType||"Record<string, any>"};
250
- `),v&&(t+=` data: ${c.dtoType||"any"};
251
- `),t+=" }"),t+=`): Promise<${j}> {
252
- `,P||E||v){let T=[];P&&T.push("url"),E&&T.push("query"),v&&T.push("data"),t+=` const { ${T.join(", ")} } = params;
253
- `;}if(P){let T=S.map(b=>`url.${b.name}`).join(", ");t+=` const _url = ${c.name}(${T});
254
- `;}else t+=` const _url = ${c.name};
255
- `;t+=` const config: AxiosRequestConfig = {};
256
- `,E&&(t+=` config.params = { ...query };
257
- `),t+=` const response = await this.client.${c.method.toLowerCase()}<${j}>(
258
- `,t+=` _url,
259
- `,v?t+=` data,
108
+ `;}let $e=(at=(it=e==null?void 0:e.endpoints)==null?void 0:it.name)!=null&&at.useOperationId&&((lt=l==null?void 0:l.operationId)==null?void 0:lt.length)>0?l.operationId:`${g.name}`;if((ut=(pt=e==null?void 0:e.endpoints)==null?void 0:pt.name)!=null&&ut.format){let E=e==null?void 0:e.endpoints.name.format({method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},$e);E&&($e=E);}let Qe={method:`"${m}"`,operationId:`"${l==null?void 0:l.operationId}"`,url:Q,tags:(l==null?void 0:l.tags)||[]},zt=`Endpoint(
109
+ method="${m}",
110
+ operationId="${(l==null?void 0:l.operationId)||""}",
111
+ url=${Q},
112
+ tags=[${((l==null?void 0:l.tags)||[]).map(E=>`"${E}"`).join(", ")}]
113
+ )`,hn=c?`${U}${$e} = ${zt}
114
+ ${he?`${he}`:""}
115
+
116
+ `:`${he}export const ${U}${$e} = ${((mt=(ct=e==null?void 0:e.endpoints)==null?void 0:ct.value)==null?void 0:mt.type)==="object"?exports.JSONStringify(Qe):Q};
117
+ `;e!=null&&e.folderSplit?A[h].endpoints+=hn:se+=hn;let Dt={name:`${U}${$e}`,method:m,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId,tags:d,parameters:(dt=l==null?void 0:l.parameters)==null?void 0:dt.filter(E=>!E.$ref&&E.in&&E.name).map(E=>{var I;return {name:E.name,in:E.in,required:E.required,type:((I=E.schema)==null?void 0:I.type)||"string"}}),requestBody:v?{type:j,required:v.required}:void 0,responses:k?Object.entries(k).reduce((E,[I,w])=>(E[I]={type:w},E),{}):void 0,queryType:x,dtoType:N,responseType:Ae||void 0};we.push(Dt);});}),e!=null&&e.folderSplit){let s=`from dataclasses import dataclass
118
+ from typing import List
119
+
120
+ @dataclass
121
+ class Endpoint:
122
+ method: str
123
+ operationId: str
124
+ url: str
125
+ tags: List[str]
126
+
127
+
128
+
129
+ `;for(let[a,C]of Object.entries(A))if(C.endpoints||C.types){let b=V__default.default.join(f,a);if(C.endpoints){let m=V__default.default.join(be,b,`endpoints.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(m),{recursive:true}),yield Ie(m,c?`${s}${C.endpoints}`:C.endpoints,e);}if(C.types){let m=V__default.default.join(be,b,`types.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(m),{recursive:true});let g=Object.values(ue).length>0?c?`from __future__ import annotations
130
+ from dataclasses import dataclass
131
+ from . import shared as Shared
132
+ ${ee(C.types)}
133
+ ${C.types}`:`import * as Shared from "../shared";
134
+
135
+ ${C.types}`:C.types;yield Ie(m,g,e);}if(((dn=e==null?void 0:e.validations)==null?void 0:dn.disable)!==true&&C.validation&&!c){let m=((fn=e.validations)==null?void 0:fn.library)||"zod",g=m==="joi"?'import Joi from "joi";':m==="yup"?'import * as yup from "yup";':'import { z } from "zod";',d=V__default.default.join(be,b,"validations.ts");yield ce__default.default.promises.mkdir(V__default.default.dirname(d),{recursive:true}),yield Ie(d,`${g}
136
+
137
+ ${C.validation}`,e);}}}if(se.length>0){let s=`from dataclasses import dataclass
138
+ from typing import List
139
+
140
+ @dataclass
141
+ class Endpoint:
142
+ method: str
143
+ operationId: str
144
+ url: str
145
+ tags: List[str]
146
+
147
+
148
+
149
+ `,a=V__default.default.join(be,f,`endpoints.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(a),{recursive:true}),yield Ie(a,c?`${s}${se}`:se,e);}if(Object.values(ue).length>0){let s=Object.values(ue).join(`
150
+ `),a=V__default.default.join(be,f,e!=null&&e.folderSplit?"":"types",`shared.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(a),{recursive:true}),yield Ie(a,(c?`from __future__ import annotations
151
+ from dataclasses import dataclass
152
+ ${ee(s)}
153
+ `:"")+s,e);}if(le.length>0){let s=V__default.default.join(be,f,"types",`index.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(s),{recursive:true}),yield Ie(s,(Object.values(ue).length>0?c?`from __future__ import annotations
154
+ from dataclasses import dataclass
155
+ from . import shared as Shared
156
+ ${ee(le)}
157
+ `:`import * as Shared from "./shared";
158
+
159
+ `:"")+le,e);}if(((yn=e==null?void 0:e.validations)==null?void 0:yn.disable)!==true&&!(e!=null&&e.folderSplit)&&!c){let s=((gn=e.validations)==null?void 0:gn.library)||"zod",a=s==="joi"?'import Joi from "joi";':s==="yup"?'import * as yup from "yup";':'import { z } from "zod";',C=Object.values(A).map(b=>b.validation).filter(b=>b.length>0).join("");if(C){let b=V__default.default.join(be,f,"validations.ts");yield ce__default.default.promises.mkdir(V__default.default.dirname(b),{recursive:true}),yield Ie(b,`${a}
160
+
161
+ ${C}`,e);}}return wt(p,we),console.info(`\u2705 Successfully synced ${p}`),{success:true}}),en=vt;});var jt,nn,xe,tn,rn,sn,St=de(()=>{jt=(r,o)=>{let p=r;return o.tags&&o.tags.length>0&&(p=p.filter(e=>!e.tags||e.tags.length===0?false:e.tags.some(i=>o.tags.includes(i)))),o.endpoints&&o.endpoints.length>0&&(p=p.filter(e=>o.endpoints.includes(e.name))),p},nn=(r,o,p=false)=>{var t,f;let e=o.baseURL||"";o.auth;let n=`// Generated Fetch API Client
162
+ `;n+=`// This file was auto-generated. Add custom code in the marked sections.
163
+
164
+ `,n+=`import type {
165
+ `;let u=new Set;return r.forEach(c=>{c.queryType&&u.add(c.queryType),c.dtoType&&u.add(c.dtoType),c.responseType&&u.add(c.responseType);}),u.forEach(c=>{n+=` ${c},
166
+ `;}),n+=`} from '../types';
167
+
168
+ `,n+=`import {
169
+ `,r.forEach(c=>{n+=` ${c.name} as ${c.name}_endpoint,
170
+ `;}),n+=`} from '../endpoints';
171
+
172
+ `,n+=`export interface ApiConfig {
173
+ `,n+=` baseURL?: string;
174
+ `,n+=` headers?: Record<string, string>;
175
+ `,n+=`}
176
+
177
+ `,n+=`let globalConfig: ApiConfig = {
178
+ `,n+=` baseURL: "${e}",
179
+ `,n+=`};
180
+
181
+ `,n+=`export const setApiConfig = (config: Partial<ApiConfig>) => {
182
+ `,n+=` globalConfig = { ...globalConfig, ...config };
183
+ `,n+=`};
184
+
185
+ `,(t=o.errorHandling)!=null&&t.generateErrorClasses&&(n+=`export class ApiError extends Error {
186
+ `,n+=` constructor(
187
+ `,n+=` message: string,
188
+ `,n+=` public statusCode: number,
189
+ `,n+=` public response?: any
190
+ `,n+=` ) {
191
+ `,n+=` super(message);
192
+ `,n+=` this.name = 'ApiError';
193
+ `,n+=` }
194
+ `,n+=`}
195
+
196
+ `),n+=`async function fetchAPI<T>(
197
+ `,n+=` url: string,
198
+ `,n+=` options: RequestInit = {}
199
+ `,n+=`): Promise<T> {
200
+ `,n+=` const headers: Record<string, string> = {
201
+ `,n+=` 'Content-Type': 'application/json',
202
+ `,n+=` ...globalConfig.headers,
203
+ `,n+=` ...(options.headers as Record<string, string>),
204
+ `,n+=` };
205
+
206
+ `,n+=" const response = await fetch(`${globalConfig.baseURL}${url}`, {\n",n+=` ...options,
207
+ `,n+=` headers,
208
+ `,n+=` });
209
+
210
+ `,n+=` if (!response.ok) {
211
+ `,(f=o.errorHandling)!=null&&f.generateErrorClasses?(n+=` const errorData = await response.json().catch(() => ({}));
212
+ `,n+=` throw new ApiError(
213
+ `,n+=` errorData.message || response.statusText,
214
+ `,n+=` response.status,
215
+ `,n+=` errorData
216
+ `,n+=` );
217
+ `):n+=" throw new Error(`HTTP error! status: ${response.status}`);\n",n+=` }
218
+
219
+ `,n+=` return response.json();
220
+ `,n+=`}
221
+
222
+ `,r.forEach(c=>{var B,P;let y=c.name,A=((B=c.parameters)==null?void 0:B.filter(T=>T.in==="path"))||[],L=((P=c.parameters)==null?void 0:P.filter(T=>T.in==="query"))||[],q=A.length>0,O=L.length>0,U=!!c.requestBody,F=c.responseType||"any";if(n+=`/**
223
+ `,c.summary&&(n+=` * ${c.summary}
224
+ `),n+=` * @method ${c.method.toUpperCase()}
225
+ `,n+=` * @path ${c.path}
226
+ `,c.tags&&c.tags.length>0&&(n+=` * @tags ${c.tags.join(", ")}
227
+ `),n+=` */
228
+ `,n+=`export async function ${y}(`,(q||O||U)&&(n+=`params: {
229
+ `,q&&(n+=` url: {
230
+ `,A.forEach(T=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[T.type||"string"]||"any",J=T.required?"":"?";n+=` ${T.name}${J}: ${M};
231
+ `;}),n+=` };
232
+ `),O&&(n+=` query: ${c.queryType||"Record<string, any>"};
233
+ `),U&&(n+=` data: ${c.dtoType||"any"};
234
+ `),n+=`}
235
+ `),n+=`): Promise<${F}> {
236
+ `,q||O||U){let T=[];q&&T.push("url"),O&&T.push("query"),U&&T.push("data"),n+=` const { ${T.join(", ")} } = params;
237
+ `;}let R;if(q){let T=A.map(ee=>`url.${ee.name}`).join(", ");R=`${c.name}_endpoint(${T})`;}else R=`${c.name}_endpoint`;O?(n+=` const queryParams = new URLSearchParams();
238
+ `,L.forEach(T=>{T.required?n+=` queryParams.append('${T.name}', String(query.${T.name}));
239
+ `:(n+=` if (query.${T.name} !== undefined) {
240
+ `,n+=` queryParams.append('${T.name}', String(query.${T.name}));
241
+ `,n+=` }
242
+ `);}),n+=` const _url = \`\${${R}}?\${queryParams.toString()}\`;
243
+ `):n+=` const _url = ${R};
244
+ `,n+=` return fetchAPI<${F}>(_url, {
245
+ `,n+=` method: '${c.method.toUpperCase()}',
246
+ `,U&&(n+=` body: JSON.stringify(data),
247
+ `),n+=` });
248
+ `,n+=`}
249
+
250
+ `;}),p&&(n+=`// Export all functions as a default object
251
+ `,n+=`const apiClient = {
252
+ `,n+=` setApiConfig,
253
+ `,r.forEach(c=>{n+=` ${c.name},
254
+ `;}),n+=`};
255
+
256
+ `,n+=`export default apiClient;
257
+ `),n},xe=(r,o,p=false)=>{var t,f;let e=o.baseURL||"";o.auth;let n=`// Generated Axios API Client
258
+ `;n+=`// This file was auto-generated. Add custom code in the marked sections.
259
+
260
+ `,n+=`import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
261
+
262
+ `,n+=`import type {
263
+ `;let u=new Set;return r.forEach(c=>{c.queryType&&u.add(c.queryType),c.dtoType&&u.add(c.dtoType),c.responseType&&u.add(c.responseType);}),u.forEach(c=>{n+=` ${c},
264
+ `;}),n+=`} from '../types';
265
+
266
+ `,n+=`import {
267
+ `,r.forEach(c=>{n+=` ${c.name},
268
+ `;}),n+=`} from '../endpoints';
269
+
270
+ `,n+=`export interface ApiConfig {
271
+ `,n+=` baseURL?: string;
272
+ `,n+=` headers?: Record<string, string>;
273
+ `,n+=` timeout?: number;
274
+ `,n+=`}
275
+
276
+ `,(t=o.errorHandling)!=null&&t.generateErrorClasses&&(n+=`export class ApiError extends Error {
277
+ `,n+=` constructor(
278
+ `,n+=` message: string,
279
+ `,n+=` public statusCode: number,
280
+ `,n+=` public response?: any
281
+ `,n+=` ) {
282
+ `,n+=` super(message);
283
+ `,n+=` this.name = 'ApiError';
284
+ `,n+=` }
285
+ `,n+=`}
286
+
287
+ `),n+=`class ApiClient {
288
+ `,n+=` private client: AxiosInstance;
289
+
290
+ `,n+=` constructor(config: ApiConfig = {}) {
291
+ `,n+=` this.client = axios.create({
292
+ `,n+=` baseURL: config.baseURL || "${e}",
293
+ `,n+=` timeout: config.timeout || 30000,
294
+ `,n+=` headers: {
295
+ `,n+=` 'Content-Type': 'application/json',
296
+ `,n+=` ...config.headers,
297
+ `,n+=` },
298
+ `,n+=` });
299
+
300
+ `,n+=` // Response interceptor for error handling
301
+ `,n+=` this.client.interceptors.response.use(
302
+ `,n+=` (response) => response,
303
+ `,n+=` (error) => {
304
+ `,(f=o.errorHandling)!=null&&f.generateErrorClasses?(n+=` const message = error.response?.data?.message || error.message;
305
+ `,n+=` const statusCode = error.response?.status || 500;
306
+ `,n+=` throw new ApiError(message, statusCode, error.response?.data);
307
+ `):n+=` return Promise.reject(error);
308
+ `,n+=` }
309
+ `,n+=` );
310
+ `,n+=` }
311
+
312
+ `,n+=` updateConfig(config: Partial<ApiConfig>) {
313
+ `,n+=` Object.assign(this.client.defaults, config);
314
+ `,n+=` }
315
+
316
+ `,r.forEach(c=>{var R,B;let y=c.name,A=((R=c.parameters)==null?void 0:R.filter(P=>P.in==="path"))||[],L=((B=c.parameters)==null?void 0:B.filter(P=>P.in==="query"))||[],q=A.length>0,O=L.length>0,U=!!c.requestBody,F=c.responseType||"any";if(n+=` /**
317
+ `,c.summary&&(n+=` * ${c.summary}
318
+ `),n+=` * @method ${c.method.toUpperCase()}
319
+ `,n+=` * @path ${c.path}
320
+ `,c.tags&&c.tags.length>0&&(n+=` * @tags ${c.tags.join(", ")}
321
+ `),n+=` */
322
+ `,n+=` async ${y}(`,(q||O||U)&&(n+=`params: {
323
+ `,q&&(n+=` url: {
324
+ `,A.forEach(P=>{let ee={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[P.type||"string"]||"any",M=P.required?"":"?";n+=` ${P.name}${M}: ${ee};
325
+ `;}),n+=` };
326
+ `),O&&(n+=` query: ${c.queryType||"Record<string, any>"};
327
+ `),U&&(n+=` data: ${c.dtoType||"any"};
328
+ `),n+=" }"),n+=`): Promise<${F}> {
329
+ `,q||O||U){let P=[];q&&P.push("url"),O&&P.push("query"),U&&P.push("data"),n+=` const { ${P.join(", ")} } = params;
330
+ `;}if(q){let P=A.map(T=>`url.${T.name}`).join(", ");n+=` const _url = ${c.name}(${P});
331
+ `;}else n+=` const _url = ${c.name};
332
+ `;n+=` const config: AxiosRequestConfig = {};
333
+ `,O&&(n+=` config.params = { ...query };
334
+ `),n+=` const response = await this.client.${c.method.toLowerCase()}<${F}>(
335
+ `,n+=` _url,
336
+ `,U?n+=` data,
260
337
  config
261
- `:t+=` config
262
- `,t+=` );
263
- `,t+=` return response.data;
264
- `,t+=` }
338
+ `:n+=` config
339
+ `,n+=` );
340
+ `,n+=` return response.data;
341
+ `,n+=` }
265
342
 
266
- `;}),t+=`}
343
+ `;}),n+=`}
267
344
 
268
- `,i?t+=`export default ApiClient;
269
- `:(t+=`export const apiClient = new ApiClient();
270
- `,t+=`export default apiClient;
271
- `),t},et=(r,o)=>{var y,c;let i=((y=o.reactQuery)==null?void 0:y.version)||5,e=((c=o.reactQuery)==null?void 0:c.mutations)!==false,a=!!(o.reactQuery&&o.reactQuery.infiniteQueries&&!o.reactQuery.infiniteQueries.disable),t=`// Generated React Query Hooks
272
- `;t+=`// This file was auto-generated. Add custom code in the marked sections.
345
+ `,p?n+=`export default ApiClient;
346
+ `:(n+=`export const apiClient = new ApiClient();
347
+ `,n+=`export default apiClient;
348
+ `),n},tn=(r,o)=>{var f,c;let p=((f=o.reactQuery)==null?void 0:f.version)||5,e=((c=o.reactQuery)==null?void 0:c.mutations)!==false,i=!!(o.reactQuery&&o.reactQuery.infiniteQueries&&!o.reactQuery.infiniteQueries.disable),n=`// Generated React Query Hooks
349
+ `;n+=`// This file was auto-generated. Add custom code in the marked sections.
273
350
 
274
- `;let l=e&&r.some(f=>["POST","PUT","PATCH","DELETE"].includes(f.method.toUpperCase()));if(i===5){let f=l?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
351
+ `;let u=e&&r.some(y=>["POST","PUT","PATCH","DELETE"].includes(y.method.toUpperCase()));if(p===5){let y=u?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
275
352
  `:`import { useQuery, UseQueryOptions } from '@tanstack/react-query';
276
- `;a&&(f=f.replace("@tanstack/react-query';\\n",`@tanstack/react-query';
353
+ `;i&&(y=y.replace("@tanstack/react-query';\\n",`@tanstack/react-query';
277
354
  import { useInfiniteQuery, UseInfiniteQueryOptions } from '@tanstack/react-query';
278
- `)),t+=f;}else {let f=l?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from 'react-query';
355
+ `)),n+=y;}else {let y=u?`import { useQuery, useMutation, UseQueryOptions, UseMutationOptions } from 'react-query';
279
356
  `:`import { useQuery, UseQueryOptions } from 'react-query';
280
- `;a&&(f=f.replace("react-query';\\n",`react-query';
357
+ `;i&&(y=y.replace("react-query';\\n",`react-query';
281
358
  import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
282
- `)),t+=f;}t+=`
283
- `,t+=`import apiClient from './client';
284
- `,t+=`import type {
285
- `;let n=new Set;return r.forEach(f=>{f.queryType&&n.add(f.queryType),f.dtoType&&n.add(f.dtoType),f.responseType&&n.add(f.responseType);}),n.forEach(f=>{t+=` ${f},
286
- `;}),t+=`} from '../types';
287
-
288
- `,r.forEach(f=>{var b,Y;let S=f.method.toUpperCase(),q=S==="GET",P=["POST","PUT","PATCH","DELETE"].includes(S),E=((b=f.parameters)==null?void 0:b.filter(F=>F.in==="path"))||[],v=((Y=f.parameters)==null?void 0:Y.filter(F=>F.in==="query"))||[],j=E.length>0,k=v.length>0,H=!!f.requestBody,T=f.responseType||"any";if(q){let F=v.map(se=>se.name.toLowerCase()),K=(F.includes("page")||F.includes("cursor")||F.includes("cursorid")||F.includes("after")||F.includes("before"))&&a,me=`use${f.name.charAt(0).toUpperCase()+f.name.slice(1)}`;if(t+=`/**
289
- `,f.summary&&(t+=` * ${f.summary}
290
- `),t+=` * @method ${S}
291
- `,t+=` * @path ${f.path}
292
- `,f.tags&&f.tags.length>0&&(t+=` * @tags ${f.tags.join(", ")}
293
- `),t+=` */
294
- `,j||k?(t+=`export function ${me}(
295
- `,t+=` params: {
296
- `,j&&(t+=` url: {
297
- `,E.forEach(se=>{let Ee={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[se.type||"string"]||"any",xe=se.required?"":"?";t+=` ${se.name}${xe}: ${Ee};
298
- `;}),t+=` };
299
- `),k&&(t+=` query: ${f.queryType||"Record<string, any>"};
300
- `),t+=` },
301
- `,t+=` options?: Omit<UseQueryOptions<${T}>, 'queryKey' | 'queryFn'>
302
- `,t+=`) {
303
- `,t+=` return useQuery({
304
- `,t+=` queryKey: ['${f.name}', params],
305
- `,t+=` queryFn: () => apiClient.${f.name}(params),
306
- `,t+=` ...options,
307
- `,t+=` });
308
- `,t+=`}
309
-
310
- `):(t+=`export function ${me}(
311
- `,t+=` options?: Omit<UseQueryOptions<${T}>, 'queryKey' | 'queryFn'>
312
- `,t+=`) {
313
- `,t+=` return useQuery({
314
- `,t+=` queryKey: ['${f.name}'],
315
- `,t+=` queryFn: () => apiClient.${f.name}(),
316
- `,t+=` ...options,
317
- `,t+=` });
318
- `,t+=`}
319
-
320
- `),K){let se=`${me}Infinite`;j||k?(t+=`export function ${se}(
321
- `,t+=` params: {
322
- `,j&&(t+=` url: {
323
- `,E.forEach(ce=>{let xe={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ce.type||"string"]||"any",Re=ce.required?"":"?";t+=` ${ce.name}${Re}: ${xe};
324
- `;}),t+=` };
325
- `),k&&(t+=` query: ${f.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: ['${f.name}', params],
331
- `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${f.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 ${se}(
338
- `,t+=` options?: Omit<UseInfiniteQueryOptions<${T}, Error, ${T}>, 'queryKey' | 'queryFn'>
339
- `,t+=`) {
340
- `,t+=` return useInfiniteQuery({
341
- `,t+=` queryKey: ['${f.name}'],
342
- `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${f.name}({ query: { page: pageParam } }),
343
- `,t+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
344
- `,t+=` ...options,
345
- `,t+=` });
346
- `,t+=`}
347
-
348
- `);}}else if(P&&e){let F=`use${f.name.charAt(0).toUpperCase()+f.name.slice(1)}`;t+=`/**
349
- `,f.summary&&(t+=` * ${f.summary}
350
- `),t+=` * @method ${S}
351
- `,t+=` * @path ${f.path}
352
- `,f.tags&&f.tags.length>0&&(t+=` * @tags ${f.tags.join(", ")}
353
- `),t+=` */
354
- `;let Q="void";(j||k||H)&&(Q=`{
355
- `,j&&(Q+=` url: {
356
- `,E.forEach(K=>{let se={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[K.type||"string"]||"any",ce=K.required?"":"?";Q+=` ${K.name}${ce}: ${se};
357
- `;}),Q+=` };
358
- `),k&&(Q+=` query: ${f.queryType||"Record<string, any>"};
359
- `),H&&(Q+=` data: ${f.dtoType||"any"};
360
- `),Q+=" }"),t+=`export function ${F}(
361
- `,t+=` options?: Omit<UseMutationOptions<${T}, Error, ${Q}>, 'mutationFn'>
362
- `,t+=`) {
363
- `,t+=` return useMutation({
364
- `,t+=" mutationFn: (",Q!=="void"&&(t+=`variables: ${Q}`),t+=`) => {
365
- `,t+=` return apiClient.${f.name}(${Q!=="void"?"variables":""});
366
- `,t+=` },
367
- `,t+=` ...options,
368
- `,t+=` });
369
- `,t+=`}
370
-
371
- `;}}),t},tt=(r,o)=>{var l;let i=((l=o.swr)==null?void 0:l.mutations)!==false,e=`// Generated SWR Hooks
359
+ `)),n+=y;}n+=`
360
+ `,n+=`import apiClient from './client';
361
+ `,n+=`import type {
362
+ `;let t=new Set;return r.forEach(y=>{y.queryType&&t.add(y.queryType),y.dtoType&&t.add(y.dtoType),y.responseType&&t.add(y.responseType);}),t.forEach(y=>{n+=` ${y},
363
+ `;}),n+=`} from '../types';
364
+
365
+ `,r.forEach(y=>{var T,ee;let A=y.method.toUpperCase(),L=A==="GET",q=["POST","PUT","PATCH","DELETE"].includes(A),O=((T=y.parameters)==null?void 0:T.filter(M=>M.in==="path"))||[],U=((ee=y.parameters)==null?void 0:ee.filter(M=>M.in==="query"))||[],F=O.length>0,R=U.length>0,B=!!y.requestBody,P=y.responseType||"any";if(L){let M=U.map(se=>se.name.toLowerCase()),re=(M.includes("page")||M.includes("cursor")||M.includes("cursorid")||M.includes("after")||M.includes("before"))&&i,ge=`use${y.name.charAt(0).toUpperCase()+y.name.slice(1)}`;if(n+=`/**
366
+ `,y.summary&&(n+=` * ${y.summary}
367
+ `),n+=` * @method ${A}
368
+ `,n+=` * @path ${y.path}
369
+ `,y.tags&&y.tags.length>0&&(n+=` * @tags ${y.tags.join(", ")}
370
+ `),n+=` */
371
+ `,F||R?(n+=`export function ${ge}(
372
+ `,n+=` params: {
373
+ `,F&&(n+=` url: {
374
+ `,O.forEach(se=>{let ue={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[se.type||"string"]||"any",we=se.required?"":"?";n+=` ${se.name}${we}: ${ue};
375
+ `;}),n+=` };
376
+ `),R&&(n+=` query: ${y.queryType||"Record<string, any>"};
377
+ `),n+=` },
378
+ `,n+=` options?: Omit<UseQueryOptions<${P}>, 'queryKey' | 'queryFn'>
379
+ `,n+=`) {
380
+ `,n+=` return useQuery({
381
+ `,n+=` queryKey: ['${y.name}', params],
382
+ `,n+=` queryFn: () => apiClient.${y.name}(params),
383
+ `,n+=` ...options,
384
+ `,n+=` });
385
+ `,n+=`}
386
+
387
+ `):(n+=`export function ${ge}(
388
+ `,n+=` options?: Omit<UseQueryOptions<${P}>, 'queryKey' | 'queryFn'>
389
+ `,n+=`) {
390
+ `,n+=` return useQuery({
391
+ `,n+=` queryKey: ['${y.name}'],
392
+ `,n+=` queryFn: () => apiClient.${y.name}(),
393
+ `,n+=` ...options,
394
+ `,n+=` });
395
+ `,n+=`}
396
+
397
+ `),re){let se=`${ge}Infinite`;F||R?(n+=`export function ${se}(
398
+ `,n+=` params: {
399
+ `,F&&(n+=` url: {
400
+ `,O.forEach(le=>{let we={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[le.type||"string"]||"any",ke=le.required?"":"?";n+=` ${le.name}${ke}: ${we};
401
+ `;}),n+=` };
402
+ `),R&&(n+=` query: ${y.queryType||"Record<string, any>"};
403
+ `),n+=` },
404
+ `,n+=` options?: Omit<UseInfiniteQueryOptions<${P}, Error, ${P}>, 'queryKey' | 'queryFn'>
405
+ `,n+=`) {
406
+ `,n+=` return useInfiniteQuery({
407
+ `,n+=` queryKey: ['${y.name}', params],
408
+ `,n+=` queryFn: ({ pageParam = 1 }) => apiClient.${y.name}({ ...params, query: { ...(params.query || {}), page: pageParam } }),
409
+ `,n+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
410
+ `,n+=` ...options,
411
+ `,n+=` });
412
+ `,n+=`}
413
+
414
+ `):(n+=`export function ${se}(
415
+ `,n+=` options?: Omit<UseInfiniteQueryOptions<${P}, Error, ${P}>, 'queryKey' | 'queryFn'>
416
+ `,n+=`) {
417
+ `,n+=` return useInfiniteQuery({
418
+ `,n+=` queryKey: ['${y.name}'],
419
+ `,n+=` queryFn: ({ pageParam = 1 }) => apiClient.${y.name}({ query: { page: pageParam } }),
420
+ `,n+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
421
+ `,n+=` ...options,
422
+ `,n+=` });
423
+ `,n+=`}
424
+
425
+ `);}}else if(q&&e){let M=`use${y.name.charAt(0).toUpperCase()+y.name.slice(1)}`;n+=`/**
426
+ `,y.summary&&(n+=` * ${y.summary}
427
+ `),n+=` * @method ${A}
428
+ `,n+=` * @path ${y.path}
429
+ `,y.tags&&y.tags.length>0&&(n+=` * @tags ${y.tags.join(", ")}
430
+ `),n+=` */
431
+ `;let J="void";(F||R||B)&&(J=`{
432
+ `,F&&(J+=` url: {
433
+ `,O.forEach(re=>{let se={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[re.type||"string"]||"any",le=re.required?"":"?";J+=` ${re.name}${le}: ${se};
434
+ `;}),J+=` };
435
+ `),R&&(J+=` query: ${y.queryType||"Record<string, any>"};
436
+ `),B&&(J+=` data: ${y.dtoType||"any"};
437
+ `),J+=" }"),n+=`export function ${M}(
438
+ `,n+=` options?: Omit<UseMutationOptions<${P}, Error, ${J}>, 'mutationFn'>
439
+ `,n+=`) {
440
+ `,n+=` return useMutation({
441
+ `,n+=" mutationFn: (",J!=="void"&&(n+=`variables: ${J}`),n+=`) => {
442
+ `,n+=` return apiClient.${y.name}(${J!=="void"?"variables":""});
443
+ `,n+=` },
444
+ `,n+=` ...options,
445
+ `,n+=` });
446
+ `,n+=`}
447
+
448
+ `;}}),n},rn=(r,o)=>{var u;let p=((u=o.swr)==null?void 0:u.mutations)!==false,e=`// Generated SWR Hooks
372
449
  `;e+=`// This file was auto-generated. Add custom code in the marked sections.
373
450
 
374
451
  `,e+=`/**
@@ -563,226 +640,226 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
563
640
  `,e+=` */
564
641
 
565
642
  `,e+=`import useSWR, { SWRConfiguration } from 'swr';
566
- `,i&&r.some(n=>["POST","PUT","PATCH","DELETE"].includes(n.method.toUpperCase()))&&(e+=`import useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation';
643
+ `,p&&r.some(t=>["POST","PUT","PATCH","DELETE"].includes(t.method.toUpperCase()))&&(e+=`import useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation';
567
644
  `),e+=`
568
645
  `,e+=`import apiClient from './client';
569
646
  `,e+=`import type {
570
- `;let t=new Set;return r.forEach(n=>{n.queryType&&t.add(n.queryType),n.dtoType&&t.add(n.dtoType),n.responseType&&t.add(n.responseType);}),t.forEach(n=>{e+=` ${n},
647
+ `;let n=new Set;return r.forEach(t=>{t.queryType&&n.add(t.queryType),t.dtoType&&n.add(t.dtoType),t.responseType&&n.add(t.responseType);}),n.forEach(t=>{e+=` ${t},
571
648
  `;}),e+=`} from '../types';
572
649
 
573
- `,r.forEach(n=>{var k,H;let y=n.method.toUpperCase(),c=y==="GET",f=["POST","PUT","PATCH","DELETE"].includes(y),S=((k=n.parameters)==null?void 0:k.filter(T=>T.in==="path"))||[],q=((H=n.parameters)==null?void 0:H.filter(T=>T.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!n.requestBody,j=n.responseType||"any";if(c){let T=`use${n.name.charAt(0).toUpperCase()+n.name.slice(1)}`;e+=`/**
574
- `,n.summary&&(e+=` * ${n.summary}
575
- `),e+=` * @method ${y}
576
- `,e+=` * @path ${n.path}
577
- `,n.tags&&n.tags.length>0&&(e+=` * @tags ${n.tags.join(", ")}
650
+ `,r.forEach(t=>{var R,B;let f=t.method.toUpperCase(),c=f==="GET",y=["POST","PUT","PATCH","DELETE"].includes(f),A=((R=t.parameters)==null?void 0:R.filter(P=>P.in==="path"))||[],L=((B=t.parameters)==null?void 0:B.filter(P=>P.in==="query"))||[],q=A.length>0,O=L.length>0,U=!!t.requestBody,F=t.responseType||"any";if(c){let P=`use${t.name.charAt(0).toUpperCase()+t.name.slice(1)}`;e+=`/**
651
+ `,t.summary&&(e+=` * ${t.summary}
652
+ `),e+=` * @method ${f}
653
+ `,e+=` * @path ${t.path}
654
+ `,t.tags&&t.tags.length>0&&(e+=` * @tags ${t.tags.join(", ")}
578
655
  `),e+=` */
579
- `,P||E?(e+=`export function ${T}(
656
+ `,q||O?(e+=`export function ${P}(
580
657
  `,e+=` params: {
581
- `,P&&(e+=` url: {
582
- `,S.forEach(b=>{let F={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[b.type||"string"]||"any",Q=b.required?"":"?";e+=` ${b.name}${Q}: ${F};
658
+ `,q&&(e+=` url: {
659
+ `,A.forEach(T=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[T.type||"string"]||"any",J=T.required?"":"?";e+=` ${T.name}${J}: ${M};
583
660
  `;}),e+=` };
584
- `),E&&(e+=` query: ${n.queryType||"Record<string, any>"};
661
+ `),O&&(e+=` query: ${t.queryType||"Record<string, any>"};
585
662
  `),e+=` },
586
- `,e+=` config?: SWRConfiguration<${j}>
663
+ `,e+=` config?: SWRConfiguration<${F}>
587
664
  `,e+=`) {
588
665
  `,e+=` return useSWR(
589
- `,e+=` ['${n.name}', params],
590
- `,e+=` () => apiClient.${n.name}(params),
666
+ `,e+=` ['${t.name}', params],
667
+ `,e+=` () => apiClient.${t.name}(params),
591
668
  `,e+=` config
592
669
  `,e+=` );
593
- `):(e+=`export function ${T}(
594
- `,e+=` config?: SWRConfiguration<${j}>
670
+ `):(e+=`export function ${P}(
671
+ `,e+=` config?: SWRConfiguration<${F}>
595
672
  `,e+=`) {
596
673
  `,e+=` return useSWR(
597
- `,e+=` '${n.name}',
598
- `,e+=` () => apiClient.${n.name}(),
674
+ `,e+=` '${t.name}',
675
+ `,e+=` () => apiClient.${t.name}(),
599
676
  `,e+=` config
600
677
  `,e+=` );
601
678
  `),e+=`}
602
679
 
603
- `;}else if(f&&i){let T=`use${n.name.charAt(0).toUpperCase()+n.name.slice(1)}`;e+=`/**
604
- `,n.summary&&(e+=` * ${n.summary}
605
- `),e+=` * @method ${y}
606
- `,e+=` * @path ${n.path}
607
- `,n.tags&&n.tags.length>0&&(e+=` * @tags ${n.tags.join(", ")}
680
+ `;}else if(y&&p){let P=`use${t.name.charAt(0).toUpperCase()+t.name.slice(1)}`;e+=`/**
681
+ `,t.summary&&(e+=` * ${t.summary}
682
+ `),e+=` * @method ${f}
683
+ `,e+=` * @path ${t.path}
684
+ `,t.tags&&t.tags.length>0&&(e+=` * @tags ${t.tags.join(", ")}
608
685
  `),e+=` */
609
- `;let b="void",Y="void";(P||E||v)&&(b=`{
610
- `,P&&(b+=` url: {
611
- `,S.forEach(F=>{let K={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[F.type||"string"]||"any",me=F.required?"":"?";b+=` ${F.name}${me}: ${K};
612
- `;}),b+=` };
613
- `),E&&(b+=` query: ${n.queryType||"Record<string, any>"};
614
- `),v&&(b+=` data: ${n.dtoType||"any"};
615
- `),b+=" }",Y=`{ arg: ${b} }`),e+=`export function ${T}(
616
- `,e+=` config?: SWRMutationConfiguration<${j}, Error, string, ${b}>
686
+ `;let T="void",ee="void";(q||O||U)&&(T=`{
687
+ `,q&&(T+=` url: {
688
+ `,A.forEach(M=>{let re={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[M.type||"string"]||"any",ge=M.required?"":"?";T+=` ${M.name}${ge}: ${re};
689
+ `;}),T+=` };
690
+ `),O&&(T+=` query: ${t.queryType||"Record<string, any>"};
691
+ `),U&&(T+=` data: ${t.dtoType||"any"};
692
+ `),T+=" }",ee=`{ arg: ${T} }`),e+=`export function ${P}(
693
+ `,e+=` config?: SWRMutationConfiguration<${F}, Error, string, ${T}>
617
694
  `,e+=`) {
618
695
  `,e+=` return useSWRMutation(
619
- `,e+=` '${n.name}',
620
- `,e+=" async (_, ",b!=="void"&&(e+=`{ arg }: ${Y}`),e+=`) => {
621
- `,e+=` return apiClient.${n.name}(${b!=="void"?"arg":""});
696
+ `,e+=` '${t.name}',
697
+ `,e+=" async (_, ",T!=="void"&&(e+=`{ arg }: ${ee}`),e+=`) => {
698
+ `,e+=` return apiClient.${t.name}(${T!=="void"?"arg":""});
622
699
  `,e+=` },
623
700
  `,e+=` config
624
701
  `,e+=` );
625
702
  `,e+=`}
626
703
 
627
- `;}}),e},nt=(r,o)=>{var l;let i=((l=o.rtkQuery)==null?void 0:l.apiName)||"api",e=o.baseURL||"",a=`// Generated RTK Query API Slice
628
- `;a+=`// This file was auto-generated. Add custom code in the marked sections.
629
-
630
- `,a+=`import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
631
-
632
- `,a+=`import type {
633
- `;let t=new Set;return r.forEach(n=>{n.queryType&&t.add(n.queryType),n.dtoType&&t.add(n.dtoType),n.responseType&&t.add(n.responseType);}),t.forEach(n=>{a+=` ${n},
634
- `;}),a+=`} from '../types';
635
-
636
- `,a+=`import {
637
- `,r.forEach(n=>{a+=` ${n.name},
638
- `;}),a+=`} from '../endpoints';
639
-
640
- `,a+=`const ${i}Api = createApi({
641
- `,a+=` reducerPath: '${i}Api',
642
- `,a+=` baseQuery: fetchBaseQuery({
643
- `,a+=` baseUrl: '${e}',
644
- `,o.auth&&(a+=` prepareHeaders: (headers, { getState }) => {
645
- `,a+=` // Get token from your auth state
646
- `,a+=` // const token = (getState() as RootState).auth.token;
647
- `,a+=` // if (token) {
648
- `,o.auth.type==="bearer"?a+=" // headers.set('Authorization', `Bearer ${token}`);\n":o.auth.type==="apiKey"&&o.auth.in==="header"&&(a+=` // headers.set('${o.auth.name||"X-API-Key"}', token);
649
- `),a+=` // }
650
- `,a+=` return headers;
651
- `,a+=` },
652
- `),a+=` }),
653
- `,a+=` tagTypes: [${[...new Set(r.flatMap(n=>n.tags||[]))].map(n=>`'${n}'`).join(", ")}],
654
- `,a+=` endpoints: (builder) => ({
655
- `,r.forEach((n,y)=>{var H,T;let c=n.method.toUpperCase(),f=c==="GET",S=((H=n.parameters)==null?void 0:H.filter(b=>b.in==="path"))||[],q=((T=n.parameters)==null?void 0:T.filter(b=>b.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!n.requestBody,j=n.responseType||"any";a+=` ${n.name}: builder.${f?"query":"mutation"}<
656
- `,a+=` ${j},
657
- `;let k="void";if((P||E||v)&&(k=`{
658
- `,P&&(k+=` url: {
659
- `,S.forEach(b=>{let F={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[b.type||"string"]||"any",Q=b.required?"":"?";k+=` ${b.name}${Q}: ${F};
660
- `;}),k+=` };
661
- `),E&&(k+=` query: ${n.queryType||"Record<string, any>"};
662
- `),v&&(k+=` data: ${n.dtoType||"any"};
663
- `),k+=" }"),a+=` ${k}
664
- `,a+=` >({
665
- `,a+=" query: (",k!=="void"&&(a+="arg"),a+=`) => {
666
- `,P){let b=S.map(Y=>`arg.url.${Y.name}`).join(", ");a+=` const url = ${n.name}(${b});
667
- `;}else a+=` const url = ${n.name};
668
- `;a+=` return {
669
- `,a+=` url,
670
- `,a+=` method: '${c}',
671
- `,E&&(a+=` params: arg.query,
672
- `),v&&(a+=` body: arg.data,
673
- `),a+=` };
674
- `,a+=` },
675
- `,n.tags&&n.tags.length>0&&(f?a+=` providesTags: ['${n.tags[0]}'],
676
- `:a+=` invalidatesTags: ['${n.tags[0]}'],
677
- `),a+=` })${y<r.length-1?",":""}
678
- `;}),a+=` }),
679
- `,a+=`});
680
-
681
- `,a+=`export default ${i}Api;
682
-
683
- `,a};});var Kn,wn,X,_n,Vn,Tn=pe(()=>{xn();ke();Kn=(r,o)=>{var i,e;if((i=o==null?void 0:o.folderSplit)!=null&&i.customFolder){let a=o.folderSplit.customFolder({method:r.method,path:r.path,tags:r.tags,operationId:r.operationId,summary:r.summary});if(a)return a}return (e=o==null?void 0:o.folderSplit)!=null&&e.byTags&&r.tags&&r.tags.length>0?r.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},wn=(r,o,i,e,a)=>re(null,null,function*(){let t=In(r,i);if(t.length===0)return;let l=i.type||"fetch";i.outputDir||D__default.default.join(a,e,"client");let y=!!(o!=null&&o.folderSplit&&(o.folderSplit.byTags||o.folderSplit.customFolder));if(`${l}${t.length}`,y){let f={};t.forEach(P=>{let E=Kn(P,o);f[E]||(f[E]=[]),f[E].push(P);});let S=Object.keys(f);for(let[P,E]of Object.entries(f)){let v=D__default.default.join(a,e,P);yield le__default.default.promises.mkdir(v,{recursive:true}),`${l}${P}${E.length}`,yield _n(E,o,i,v,l,P,true);}let q=D__default.default.join(a,e);yield Vn(q,S,l,o);return}let c=D__default.default.join(a,e);switch(yield le__default.default.promises.mkdir(c,{recursive:true}),l){case "fetch":let f=Xe(t,i);f=f.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield X(D__default.default.join(c,"clients.ts"),f,o);break;case "axios":let S=Ce(t,i,false);S=S.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield X(D__default.default.join(c,"clients.ts"),S,o);break;case "react-query":let q=Ce(t,i,false);q=q.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield X(D__default.default.join(c,"clients.ts"),q,o);let P=et(t,i);P=P.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield X(D__default.default.join(c,"hooks.ts"),P,o);break;case "swr":let E=Ce(t,i,false);E=E.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield X(D__default.default.join(c,"clients.ts"),E,o);let v=tt(t,i);v=v.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield X(D__default.default.join(c,"hooks.ts"),v,o);break;case "rtk-query":let j=nt(t,i);j=j.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield X(D__default.default.join(c,"api.ts"),j,o);break;default:throw new Error(`Unknown client type: ${l}`)}}),X=(r,o,i)=>re(null,null,function*(){var l,n,y,c;if(!(((l=i==null?void 0:i.customCode)==null?void 0:l.enabled)!==false)){yield le__default.default.promises.writeFile(r,o);return}let a=null;try{a=yield le__default.default.promises.readFile(r,"utf-8");}catch(f){}let t=exports.mergeCustomCode(o,a,{position:((n=i==null?void 0:i.customCode)==null?void 0:n.position)||"bottom",markerText:(y=i==null?void 0:i.customCode)==null?void 0:y.markerText,includeInstructions:(c=i==null?void 0:i.customCode)==null?void 0:c.includeInstructions});yield le__default.default.promises.writeFile(r,t);}),_n=(r,o,i,e,a,t,l=false)=>re(null,null,function*(){let n="",y="",c=l?"./types":"../types",f=l?"./endpoints":"../endpoints";switch(a){case "fetch":n=Xe(r,i,l),n=n.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),yield X(D__default.default.join(e,"client.ts"),n,o);break;case "axios":n=Ce(r,i,l),n=n.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),yield X(D__default.default.join(e,"client.ts"),n,o);break;case "react-query":if(n=Ce(r,i,l),n=n.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),yield X(D__default.default.join(e,"client.ts"),n,o),y=et(r,i),y=y.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),l){let q=t.replace(/-/g,"_");y=y.replace("import apiClient from './client';",`import { ${q}Client as apiClient } from '../clients';`);}yield X(D__default.default.join(e,"hooks.ts"),y,o);break;case "swr":if(n=Ce(r,i,l),n=n.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),yield X(D__default.default.join(e,"client.ts"),n,o),y=tt(r,i),y=y.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),l){let q=t.replace(/-/g,"_");y=y.replace("import apiClient from './client';",`import { ${q}Client as apiClient } from '../clients';`);}yield X(D__default.default.join(e,"hooks.ts"),y,o);break;case "rtk-query":let S=l?ie(ee({},i),{rtkQuery:ie(ee({},i.rtkQuery),{apiName:t.replace(/-/g,"_")})}):i;y=nt(r,S),y=y.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${f}';`),yield X(D__default.default.join(e,"api.ts"),y,o);break;default:throw new Error(`Unknown client type: ${a}`)}}),Vn=(r,o,i,e)=>re(null,null,function*(){var t;if(i==="rtk-query"){let l=`// Generated RTK Query APIs
684
- `;l+=`// This file was auto-generated.
685
- `,l+=`// Aggregates all API slices for easy Redux store setup
686
-
687
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=`import ${y}Api from './${n}/api';
688
- `;}),l+=`
704
+ `;}}),e},sn=(r,o)=>{var u;let p=((u=o.rtkQuery)==null?void 0:u.apiName)||"api",e=o.baseURL||"",i=`// Generated RTK Query API Slice
705
+ `;i+=`// This file was auto-generated. Add custom code in the marked sections.
706
+
707
+ `,i+=`import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
708
+
709
+ `,i+=`import type {
710
+ `;let n=new Set;return r.forEach(t=>{t.queryType&&n.add(t.queryType),t.dtoType&&n.add(t.dtoType),t.responseType&&n.add(t.responseType);}),n.forEach(t=>{i+=` ${t},
711
+ `;}),i+=`} from '../types';
712
+
713
+ `,i+=`import {
714
+ `,r.forEach(t=>{i+=` ${t.name},
715
+ `;}),i+=`} from '../endpoints';
716
+
717
+ `,i+=`const ${p}Api = createApi({
718
+ `,i+=` reducerPath: '${p}Api',
719
+ `,i+=` baseQuery: fetchBaseQuery({
720
+ `,i+=` baseUrl: '${e}',
721
+ `,o.auth&&(i+=` prepareHeaders: (headers, { getState }) => {
722
+ `,i+=` // Get token from your auth state
723
+ `,i+=` // const token = (getState() as RootState).auth.token;
724
+ `,i+=` // if (token) {
725
+ `,o.auth.type==="bearer"?i+=" // headers.set('Authorization', `Bearer ${token}`);\n":o.auth.type==="apiKey"&&o.auth.in==="header"&&(i+=` // headers.set('${o.auth.name||"X-API-Key"}', token);
726
+ `),i+=` // }
727
+ `,i+=` return headers;
728
+ `,i+=` },
729
+ `),i+=` }),
730
+ `,i+=` tagTypes: [${[...new Set(r.flatMap(t=>t.tags||[]))].map(t=>`'${t}'`).join(", ")}],
731
+ `,i+=` endpoints: (builder) => ({
732
+ `,r.forEach((t,f)=>{var B,P;let c=t.method.toUpperCase(),y=c==="GET",A=((B=t.parameters)==null?void 0:B.filter(T=>T.in==="path"))||[],L=((P=t.parameters)==null?void 0:P.filter(T=>T.in==="query"))||[],q=A.length>0,O=L.length>0,U=!!t.requestBody,F=t.responseType||"any";i+=` ${t.name}: builder.${y?"query":"mutation"}<
733
+ `,i+=` ${F},
734
+ `;let R="void";if((q||O||U)&&(R=`{
735
+ `,q&&(R+=` url: {
736
+ `,A.forEach(T=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[T.type||"string"]||"any",J=T.required?"":"?";R+=` ${T.name}${J}: ${M};
737
+ `;}),R+=` };
738
+ `),O&&(R+=` query: ${t.queryType||"Record<string, any>"};
739
+ `),U&&(R+=` data: ${t.dtoType||"any"};
740
+ `),R+=" }"),i+=` ${R}
741
+ `,i+=` >({
742
+ `,i+=" query: (",R!=="void"&&(i+="arg"),i+=`) => {
743
+ `,q){let T=A.map(ee=>`arg.url.${ee.name}`).join(", ");i+=` const url = ${t.name}(${T});
744
+ `;}else i+=` const url = ${t.name};
745
+ `;i+=` return {
746
+ `,i+=` url,
747
+ `,i+=` method: '${c}',
748
+ `,O&&(i+=` params: arg.query,
749
+ `),U&&(i+=` body: arg.data,
750
+ `),i+=` };
751
+ `,i+=` },
752
+ `,t.tags&&t.tags.length>0&&(y?i+=` providesTags: ['${t.tags[0]}'],
753
+ `:i+=` invalidatesTags: ['${t.tags[0]}'],
754
+ `),i+=` })${f<r.length-1?",":""}
755
+ `;}),i+=` }),
756
+ `,i+=`});
757
+
758
+ `,i+=`export default ${p}Api;
759
+
760
+ `,i};});var or,qt,te,ir,ar,Rt=de(()=>{St();Ne();or=(r,o)=>{var p,e;if((p=o==null?void 0:o.folderSplit)!=null&&p.customFolder){let i=o.folderSplit.customFolder({method:r.method,path:r.path,tags:r.tags,operationId:r.operationId,summary:r.summary});if(i)return i}return (e=o==null?void 0:o.folderSplit)!=null&&e.byTags&&r.tags&&r.tags.length>0?r.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},qt=(r,o,p,e,i)=>ie(null,null,function*(){let n=jt(r,p);if(n.length===0)return;let u=p.type||"fetch";p.outputDir||V__default.default.join(i,e,"client");let f=!!(o!=null&&o.folderSplit&&(o.folderSplit.byTags||o.folderSplit.customFolder));if(`${u}${n.length}`,f){let y={};n.forEach(q=>{let O=or(q,o);y[O]||(y[O]=[]),y[O].push(q);});let A=Object.keys(y);for(let[q,O]of Object.entries(y)){let U=V__default.default.join(i,e,q);yield ce__default.default.promises.mkdir(U,{recursive:true}),`${u}${q}${O.length}`,yield ir(O,o,p,U,u,q,true);}let L=V__default.default.join(i,e);yield ar(L,A,u,o);return}let c=V__default.default.join(i,e);switch(yield ce__default.default.promises.mkdir(c,{recursive:true}),u){case "fetch":let y=nn(n,p);y=y.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(c,"clients.ts"),y,o);break;case "axios":let A=xe(n,p,false);A=A.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(c,"clients.ts"),A,o);break;case "react-query":let L=xe(n,p,false);L=L.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(c,"clients.ts"),L,o);let q=tn(n,p);q=q.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield te(V__default.default.join(c,"hooks.ts"),q,o);break;case "swr":let O=xe(n,p,false);O=O.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(c,"clients.ts"),O,o);let U=rn(n,p);U=U.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';").replace("import apiClient from './client';","import apiClient from './clients';"),yield te(V__default.default.join(c,"hooks.ts"),U,o);break;case "rtk-query":let F=sn(n,p);F=F.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(c,"api.ts"),F,o);break;default:throw new Error(`Unknown client type: ${u}`)}}),te=(r,o,p)=>ie(null,null,function*(){var u,t,f,c;if(!(((u=p==null?void 0:p.customCode)==null?void 0:u.enabled)!==false)){yield ce__default.default.promises.writeFile(r,o);return}let i=null;try{i=yield ce__default.default.promises.readFile(r,"utf-8");}catch(y){}let n=exports.mergeCustomCode(o,i,{position:((t=p==null?void 0:p.customCode)==null?void 0:t.position)||"bottom",markerText:(f=p==null?void 0:p.customCode)==null?void 0:f.markerText,includeInstructions:(c=p==null?void 0:p.customCode)==null?void 0:c.includeInstructions});yield ce__default.default.promises.writeFile(r,n);}),ir=(r,o,p,e,i,n,u=false)=>ie(null,null,function*(){let t="",f="",c=u?"./types":"../types",y=u?"./endpoints":"../endpoints";switch(i){case "fetch":t=nn(r,p,u),t=t.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o);break;case "axios":t=xe(r,p,u),t=t.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o);break;case "react-query":if(t=xe(r,p,u),t=t.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o),f=tn(r,p),f=f.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),u){let L=n.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${L}Client as apiClient } from '../clients';`);}yield te(V__default.default.join(e,"hooks.ts"),f,o);break;case "swr":if(t=xe(r,p,u),t=t.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o),f=rn(r,p),f=f.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),u){let L=n.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${L}Client as apiClient } from '../clients';`);}yield te(V__default.default.join(e,"hooks.ts"),f,o);break;case "rtk-query":let A=u?ae(X({},p),{rtkQuery:ae(X({},p.rtkQuery),{apiName:n.replace(/-/g,"_")})}):p;f=sn(r,A),f=f.replace("} from '../types';",`} from '${c}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"api.ts"),f,o);break;default:throw new Error(`Unknown client type: ${i}`)}}),ar=(r,o,p,e)=>ie(null,null,function*(){var n;if(p==="rtk-query"){let u=`// Generated RTK Query APIs
761
+ `;u+=`// This file was auto-generated.
762
+ `,u+=`// Aggregates all API slices for easy Redux store setup
763
+
764
+ `,o.forEach(t=>{let f=t.replace(/-/g,"_");u+=`import ${f}Api from './${t}/api';
765
+ `;}),u+=`
689
766
  // Export all API slices
690
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=`export { default as ${y}Api } from './${n}/api';
691
- `;}),l+=`
767
+ `,o.forEach(t=>{let f=t.replace(/-/g,"_");u+=`export { default as ${f}Api } from './${t}/api';
768
+ `;}),u+=`
692
769
  /**
693
- `,l+=` * Configure Redux store with all API slices
694
- `,l+=` *
695
- `,l+=` * @example
696
- `,l+=` * import { configureStore } from '@reduxjs/toolkit';
697
- `,l+=` * import { setupApiStore } from './apis';
698
- `,l+=` *
699
- `,l+=` * export const store = configureStore({
700
- `,l+=` * reducer: setupApiStore.reducer,
701
- `,l+=` * middleware: (getDefaultMiddleware) =>
702
- `,l+=` * getDefaultMiddleware().concat(setupApiStore.middleware),
703
- `,l+=` * });
704
- `,l+=` */
705
- `,l+=`export const setupApiStore = {
706
- `,l+=` reducer: {
707
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=` [${y}Api.reducerPath]: ${y}Api.reducer,
708
- `;}),l+=` },
709
- `,l+=` middleware: [
710
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=` ${y}Api.middleware,
711
- `;}),l+=` ],
712
- `,l+=`};
713
- `,yield X(D__default.default.join(r,"apis.ts"),l,e);return}let a=`// Generated API Clients
714
- `;if(a+=`// This file was auto-generated.
715
- `,a+=`// Centralized client instances and configuration
716
-
717
- `,i==="fetch"?o.forEach(l=>{let n=l.replace(/-/g,"_");a+=`export { default as ${n}Client } from './${l}/client';
718
- `;}):(o.forEach(l=>{let n=l.replace(/-/g,"_"),y=`${n.charAt(0).toUpperCase()+n.slice(1)}ApiClient`;a+=`import ${y} from './${l}/client';
719
- `;}),a+=`
770
+ `,u+=` * Configure Redux store with all API slices
771
+ `,u+=` *
772
+ `,u+=` * @example
773
+ `,u+=` * import { configureStore } from '@reduxjs/toolkit';
774
+ `,u+=` * import { setupApiStore } from './apis';
775
+ `,u+=` *
776
+ `,u+=` * export const store = configureStore({
777
+ `,u+=` * reducer: setupApiStore.reducer,
778
+ `,u+=` * middleware: (getDefaultMiddleware) =>
779
+ `,u+=` * getDefaultMiddleware().concat(setupApiStore.middleware),
780
+ `,u+=` * });
781
+ `,u+=` */
782
+ `,u+=`export const setupApiStore = {
783
+ `,u+=` reducer: {
784
+ `,o.forEach(t=>{let f=t.replace(/-/g,"_");u+=` [${f}Api.reducerPath]: ${f}Api.reducer,
785
+ `;}),u+=` },
786
+ `,u+=` middleware: [
787
+ `,o.forEach(t=>{let f=t.replace(/-/g,"_");u+=` ${f}Api.middleware,
788
+ `;}),u+=` ],
789
+ `,u+=`};
790
+ `,yield te(V__default.default.join(r,"apis.ts"),u,e);return}let i=`// Generated API Clients
791
+ `;if(i+=`// This file was auto-generated.
792
+ `,i+=`// Centralized client instances and configuration
793
+
794
+ `,p==="fetch"?o.forEach(u=>{let t=u.replace(/-/g,"_");i+=`export { default as ${t}Client } from './${u}/client';
795
+ `;}):(o.forEach(u=>{let t=u.replace(/-/g,"_"),f=`${t.charAt(0).toUpperCase()+t.slice(1)}ApiClient`;i+=`import ${f} from './${u}/client';
796
+ `;}),i+=`
720
797
  // Create client instances
721
- `,o.forEach(l=>{let n=l.replace(/-/g,"_"),y=`${n.charAt(0).toUpperCase()+n.slice(1)}ApiClient`;a+=`export const ${n}Client = new ${y}();
722
- `;})),i==="fetch"&&(a+=`
798
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_"),f=`${t.charAt(0).toUpperCase()+t.slice(1)}ApiClient`;i+=`export const ${t}Client = new ${f}();
799
+ `;})),p==="fetch"&&(i+=`
723
800
  // Import clients for aggregation
724
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=`import ${n}_client from './${l}/client';
725
- `;})),a+=`
801
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_");i+=`import ${t}_client from './${u}/client';
802
+ `;})),i+=`
726
803
  // Aggregate all client instances
727
- `,a+=`export const clients = {
728
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");i==="fetch"?a+=` ${n}: ${n}_client,
729
- `:a+=` ${n}: ${n}Client,
730
- `;}),a+=`};
804
+ `,i+=`export const clients = {
805
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_");p==="fetch"?i+=` ${t}: ${t}_client,
806
+ `:i+=` ${t}: ${t}Client,
807
+ `;}),i+=`};
731
808
 
732
- `,i==="axios"?(a+=`
809
+ `,p==="axios"?(i+=`
733
810
  /**
734
- `,a+=` * Configure all API clients at once
735
- `,a+=` * @param config - Configuration to apply to all clients
736
- `,a+=` */
737
- `,a+=`export const configureAllClients = (config: {
738
- `,a+=` baseURL?: string;
739
- `,a+=` headers?: Record<string, string>;
740
- `,a+=` timeout?: number;
741
- `,a+=`}) => {
742
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=` ${n}Client.updateConfig(config);
743
- `;}),a+=`};
744
-
745
- `):i==="fetch"&&(a+=`
811
+ `,i+=` * Configure all API clients at once
812
+ `,i+=` * @param config - Configuration to apply to all clients
813
+ `,i+=` */
814
+ `,i+=`export const configureAllClients = (config: {
815
+ `,i+=` baseURL?: string;
816
+ `,i+=` headers?: Record<string, string>;
817
+ `,i+=` timeout?: number;
818
+ `,i+=`}) => {
819
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_");i+=` ${t}Client.updateConfig(config);
820
+ `;}),i+=`};
821
+
822
+ `):p==="fetch"&&(i+=`
746
823
  /**
747
- `,a+=` * Configure all API clients at once
748
- `,a+=` * @param config - Configuration to apply to all clients
749
- `,a+=` */
750
- `,a+=`export const configureAllClients = (config: {
751
- `,a+=` baseURL?: string;
752
- `,a+=` headers?: Record<string, string>;
753
- `,a+=` auth?: { token?: string };
754
- `,a+=`}) => {
755
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=` ${n}_client.setApiConfig(config);
756
- `;}),a+=`};
757
-
758
- `),a+=`// Example usage:
759
- `,a+=`// import { configureAllClients, clients } from './clients';
760
- `,a+=`//
761
- `,a+=`// // Configure all clients at once
762
- `,a+=`// configureAllClients({
763
- `,a+=`// baseURL: 'https://api.example.com',
764
- `,a+=`// timeout: 10000,
765
- `,a+=`// });
766
- `,a+=`//
767
- `,a+=`// // Use specific client
768
- `,a+=`// const data = await clients.${(t=o[0])==null?void 0:t.replace(/-/g,"_")}.someMethod(...);
769
- `,yield X(D__default.default.join(r,"clients.ts"),a,e),i==="react-query"||i==="swr"){let l=`// Generated Hooks Aggregator
770
- `;l+=`// This file was auto-generated.
771
- `,l+=`// Aggregates all folder-split hooks
772
-
773
- `,o.forEach(n=>{l+=`export * from './${n}/hooks';
774
- `;}),l+=`
824
+ `,i+=` * Configure all API clients at once
825
+ `,i+=` * @param config - Configuration to apply to all clients
826
+ `,i+=` */
827
+ `,i+=`export const configureAllClients = (config: {
828
+ `,i+=` baseURL?: string;
829
+ `,i+=` headers?: Record<string, string>;
830
+ `,i+=` auth?: { token?: string };
831
+ `,i+=`}) => {
832
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_");i+=` ${t}_client.setApiConfig(config);
833
+ `;}),i+=`};
834
+
835
+ `),i+=`// Example usage:
836
+ `,i+=`// import { configureAllClients, clients } from './clients';
837
+ `,i+=`//
838
+ `,i+=`// // Configure all clients at once
839
+ `,i+=`// configureAllClients({
840
+ `,i+=`// baseURL: 'https://api.example.com',
841
+ `,i+=`// timeout: 10000,
842
+ `,i+=`// });
843
+ `,i+=`//
844
+ `,i+=`// // Use specific client
845
+ `,i+=`// const data = await clients.${(n=o[0])==null?void 0:n.replace(/-/g,"_")}.someMethod(...);
846
+ `,yield te(V__default.default.join(r,"clients.ts"),i,e),p==="react-query"||p==="swr"){let u=`// Generated Hooks Aggregator
847
+ `;u+=`// This file was auto-generated.
848
+ `,u+=`// Aggregates all folder-split hooks
849
+
850
+ `,o.forEach(t=>{u+=`export * from './${t}/hooks';
851
+ `;}),u+=`
775
852
  // Example usage:
776
- `,l+=`// import { useGetSomething } from './hooks';
777
- `,yield X(D__default.default.join(r,"hooks.ts"),l,e);}});});var En=pe(()=>{});var An={};pn(An,{interactiveInit:()=>Yn});function Yn(){return re(this,null,function*(){try{let r=yield vn__default.default([{type:"select",name:"configFormat",message:"What configuration format would you like to use?",choices:[{title:"TypeScript (openapi.sync.ts)",value:"typescript"},{title:"JSON (openapi.sync.json)",value:"json"},{title:"JavaScript (openapi.sync.js)",value:"javascript"}],initial:0},{type:"select",name:"apiSource",message:"Where is your OpenAPI specification?",choices:[{title:"URL (e.g., https://api.example.com/openapi.json)",value:"url"},{title:"Local file",value:"file"}],initial:0},{type:n=>n==="url"?"text":null,name:"apiUrl",message:"Enter the OpenAPI specification URL:",validate:n=>n.startsWith("http://")||n.startsWith("https://")?!0:"Please enter a valid URL starting with http:// or https://"},{type:(n,y)=>y.apiSource==="file"?"text":null,name:"apiFile",message:"Enter the path to your OpenAPI file:",validate:n=>n.trim()!==""?!0:"Please enter a valid file path"},{type:"text",name:"apiName",message:"What would you like to name this API?",initial:"myapi",validate:n=>/^[a-zA-Z0-9_-]+$/.test(n)?!0:"API name must contain only letters, numbers, hyphens, and underscores"},{type:"text",name:"outputFolder",message:"Where should generated files be saved?",initial:"./src/api",validate:n=>{if(!n||n.trim()==="")return "Output folder cannot be empty";let y=D__default.default.normalize(n);if(y==="/"||y==="C:\\"||y==="\\")return "Cannot use filesystem root directory. Please use a project subfolder like './src/api'";if(D__default.default.isAbsolute(n)){let c=process.cwd();if(!n.startsWith(c))return "\u26A0\uFE0F Warning: Using absolute path outside project directory. Recommended: use relative path like './src/api'"}return !0}},{type:"confirm",name:"enableFolderSplit",message:"Organize generated code into folders by OpenAPI tags?",initial:!1},{type:"confirm",name:"generateClient",message:"Generate API client code?",initial:!0},{type:n=>n?"select":null,name:"clientType",message:"Which client type would you like?",choices:[{title:"React Query (Recommended for React)",value:"react-query"},{title:"RTK Query (Redux Toolkit)",value:"rtk-query"},{title:"SWR",value:"swr"},{title:"Fetch API",value:"fetch"},{title:"Axios",value:"axios"}],initial:0},{type:"confirm",name:"enableValidation",message:"Enable runtime validation schemas?",initial:!0},{type:n=>n?"select":null,name:"validationLibrary",message:"Which validation library?",choices:[{title:"Zod (Recommended)",value:"zod"},{title:"Yup",value:"yup"},{title:"Joi",value:"joi"}],initial:0},{type:"confirm",name:"enableCustomCode",message:"Enable custom code preservation?",initial:!0},{type:"confirm",name:"typesUseOperationId",message:"Use operationId from OpenAPI spec for type names?",initial:!0},{type:"text",name:"typesPrefix",message:"Prefix for TypeScript interface names (leave empty for none):",initial:"I"},{type:"confirm",name:"excludeEndpointsByTags",message:"Exclude endpoints by tags (e.g., deprecated, internal)?",initial:!1},{type:n=>n?"text":null,name:"excludeTags",message:"Enter tags to exclude (comma-separated):",initial:"deprecated,internal"},{type:"confirm",name:"showCurlInDocs",message:"Include cURL examples in generated documentation?",initial:!0},{type:"number",name:"refetchInterval",message:"Refetch interval in milliseconds (0 to disable auto-refresh):",initial:5e3,min:0},{type:"confirm",name:"runSync",message:"Run initial sync after setup?",initial:!0}],{onCancel:()=>{throw ae||process.exit(0),new Error("Setup cancelled")}}),o={refetchInterval:r.refetchInterval||void 0,folder:r.outputFolder,api:{[r.apiName]:r.apiUrl||r.apiFile}};r.enableFolderSplit&&(o.folderSplit={byTags:!0}),o.types={name:{prefix:r.typesPrefix||"",useOperationId:r.typesUseOperationId}},o.endpoints={name:{useOperationId:r.typesUseOperationId},doc:{showCurl:r.showCurlInDocs}},r.excludeEndpointsByTags&&r.excludeTags&&(o.endpoints.exclude={tags:r.excludeTags.split(",").map(n=>n.trim())}),r.generateClient&&r.clientType&&(o.clientGeneration={enabled:!0,type:r.clientType,outputDir:D__default.default.join(r.outputFolder,r.apiName,"client")},r.clientType==="react-query"?o.clientGeneration.reactQuery={version:5,mutations:!0}:r.clientType==="swr"&&(o.clientGeneration.swr={mutations:!0})),r.enableValidation&&r.validationLibrary&&(o.validations={library:r.validationLibrary}),r.enableCustomCode&&(o.customCode={enabled:!0,position:"bottom"});let i,e;r.configFormat==="json"?(e="openapi.sync.json",i=JSON.stringify(o,null,2)):r.configFormat==="typescript"?(e="openapi.sync.ts",i=`import { IConfig } from "openapi-sync";
853
+ `,u+=`// import { useGetSomething } from './hooks';
854
+ `,yield te(V__default.default.join(r,"hooks.ts"),u,e);}});});var kt=de(()=>{});var Nt={};ht(Nt,{interactiveInit:()=>lr});function lr(){return ie(this,null,function*(){try{let r=yield Ut__default.default([{type:"select",name:"configFormat",message:"What configuration format would you like to use?",choices:[{title:"TypeScript (openapi.sync.ts)",value:"typescript"},{title:"JSON (openapi.sync.json)",value:"json"},{title:"JavaScript (openapi.sync.js)",value:"javascript"}],initial:0},{type:"select",name:"apiSource",message:"Where is your OpenAPI specification?",choices:[{title:"URL (e.g., https://api.example.com/openapi.json)",value:"url"},{title:"Local file",value:"file"}],initial:0},{type:t=>t==="url"?"text":null,name:"apiUrl",message:"Enter the OpenAPI specification URL:",validate:t=>t.startsWith("http://")||t.startsWith("https://")?!0:"Please enter a valid URL starting with http:// or https://"},{type:(t,f)=>f.apiSource==="file"?"text":null,name:"apiFile",message:"Enter the path to your OpenAPI file:",validate:t=>t.trim()!==""?!0:"Please enter a valid file path"},{type:"text",name:"apiName",message:"What would you like to name this API?",initial:"myapi",validate:t=>/^[a-zA-Z0-9_-]+$/.test(t)?!0:"API name must contain only letters, numbers, hyphens, and underscores"},{type:"text",name:"outputFolder",message:"Where should generated files be saved?",initial:"./src/api",validate:t=>{if(!t||t.trim()==="")return "Output folder cannot be empty";let f=V__default.default.normalize(t);if(f==="/"||f==="C:\\"||f==="\\")return "Cannot use filesystem root directory. Please use a project subfolder like './src/api'";if(V__default.default.isAbsolute(t)){let c=process.cwd();if(!t.startsWith(c))return "\u26A0\uFE0F Warning: Using absolute path outside project directory. Recommended: use relative path like './src/api'"}return !0}},{type:"confirm",name:"enableFolderSplit",message:"Organize generated code into folders by OpenAPI tags?",initial:!1},{type:"confirm",name:"generateClient",message:"Generate API client code?",initial:!0},{type:t=>t?"select":null,name:"clientType",message:"Which client type would you like?",choices:[{title:"React Query (Recommended for React)",value:"react-query"},{title:"RTK Query (Redux Toolkit)",value:"rtk-query"},{title:"SWR",value:"swr"},{title:"Fetch API",value:"fetch"},{title:"Axios",value:"axios"}],initial:0},{type:"confirm",name:"enableValidation",message:"Enable runtime validation schemas?",initial:!0},{type:t=>t?"select":null,name:"validationLibrary",message:"Which validation library?",choices:[{title:"Zod (Recommended)",value:"zod"},{title:"Yup",value:"yup"},{title:"Joi",value:"joi"}],initial:0},{type:"confirm",name:"enableCustomCode",message:"Enable custom code preservation?",initial:!0},{type:"confirm",name:"typesUseOperationId",message:"Use operationId from OpenAPI spec for type names?",initial:!0},{type:"text",name:"typesPrefix",message:"Prefix for TypeScript interface names (leave empty for none):",initial:"I"},{type:"confirm",name:"excludeEndpointsByTags",message:"Exclude endpoints by tags (e.g., deprecated, internal)?",initial:!1},{type:t=>t?"text":null,name:"excludeTags",message:"Enter tags to exclude (comma-separated):",initial:"deprecated,internal"},{type:"confirm",name:"showCurlInDocs",message:"Include cURL examples in generated documentation?",initial:!0},{type:"number",name:"refetchInterval",message:"Refetch interval in milliseconds (0 to disable auto-refresh):",initial:5e3,min:0},{type:"confirm",name:"runSync",message:"Run initial sync after setup?",initial:!0}],{onCancel:()=>{throw pe||process.exit(0),new Error("Setup cancelled")}}),o={refetchInterval:r.refetchInterval||void 0,folder:r.outputFolder,api:{[r.apiName]:r.apiUrl||r.apiFile}};r.enableFolderSplit&&(o.folderSplit={byTags:!0}),o.types={name:{prefix:r.typesPrefix||"",useOperationId:r.typesUseOperationId}},o.endpoints={name:{useOperationId:r.typesUseOperationId},doc:{showCurl:r.showCurlInDocs}},r.excludeEndpointsByTags&&r.excludeTags&&(o.endpoints.exclude={tags:r.excludeTags.split(",").map(t=>t.trim())}),r.generateClient&&r.clientType&&(o.clientGeneration={enabled:!0,type:r.clientType,outputDir:V__default.default.join(r.outputFolder,r.apiName,"client")},r.clientType==="react-query"?o.clientGeneration.reactQuery={version:5,mutations:!0}:r.clientType==="swr"&&(o.clientGeneration.swr={mutations:!0})),r.enableValidation&&r.validationLibrary&&(o.validations={library:r.validationLibrary}),r.enableCustomCode&&(o.customCode={enabled:!0,position:"bottom"});let p,e;r.configFormat==="json"?(e="openapi.sync.json",p=JSON.stringify(o,null,2)):r.configFormat==="typescript"?(e="openapi.sync.ts",p=`import { IConfig } from "openapi-sync";
778
855
 
779
856
  const config: IConfig = ${JSON.stringify(o,null,2)};
780
857
 
781
858
  export default config;
782
- `):(e="openapi.sync.js",i=`module.exports = ${JSON.stringify(o,null,2)};
783
- `);let a=D__default.default.join(process.cwd(),e);if(le__default.default.existsSync(a)&&!(yield vn__default.default({type:"confirm",name:"value",message:`${e} already exists. Overwrite?`,initial:!1})).value)throw ae||process.exit(0),new Error("Configuration file not created");le__default.default.writeFileSync(a,i,"utf-8"),ae||`${e}`;let t=D__default.default.isAbsolute(r.outputFolder)?r.outputFolder:D__default.default.join(process.cwd(),r.outputFolder);if(!le__default.default.existsSync(t))try{le__default.default.mkdirSync(t,{recursive:!0}),ae||`${r.outputFolder}`;}catch(n){ae||`${n.message}`;}let l=D__default.default.join(process.cwd(),".gitignore");if(le__default.default.existsSync(l)&&(le__default.default.readFileSync(l,"utf-8").includes(r.outputFolder)||le__default.default.appendFileSync(l,`
859
+ `):(e="openapi.sync.js",p=`module.exports = ${JSON.stringify(o,null,2)};
860
+ `);let i=V__default.default.join(process.cwd(),e);if(ce__default.default.existsSync(i)&&!(yield Ut__default.default({type:"confirm",name:"value",message:`${e} already exists. Overwrite?`,initial:!1})).value)throw pe||process.exit(0),new Error("Configuration file not created");ce__default.default.writeFileSync(i,p,"utf-8"),pe||`${e}`;let n=V__default.default.isAbsolute(r.outputFolder)?r.outputFolder:V__default.default.join(process.cwd(),r.outputFolder);if(!ce__default.default.existsSync(n))try{ce__default.default.mkdirSync(n,{recursive:!0}),pe||`${r.outputFolder}`;}catch(t){pe||`${t.message}`;}let u=V__default.default.join(process.cwd(),".gitignore");if(ce__default.default.existsSync(u)&&(ce__default.default.readFileSync(u,"utf-8").includes(r.outputFolder)||ce__default.default.appendFileSync(u,`
784
861
  # OpenAPI Sync generated files
785
862
  ${r.outputFolder}
786
- `)),ae||(`${e}`,r.generateClient&&r.clientType&&(r.clientType==="axios"||r.clientType==="react-query"||r.clientType==="swr"||r.clientType),r.enableValidation&&r.validationLibrary&&(r.generateClient,`${r.validationLibrary}`)),r.runSync&&!ae)try{let{Init:n,GenerateClient:y}=yield Promise.resolve().then(()=>(qn(),Pn));yield n({refetchInterval:r.refetchInterval}),r.generateClient&&r.clientType&&(yield y({type:r.clientType,apiName:r.apiName}));}catch(n){console.error(`
787
- \u274C Error during sync:`,n.message),n.stack&&process.env.DEBUG&&console.error(n.stack);}else ae||(r.generateClient||r.enableValidation,r.generateClient&&r.clientType&&(r.generateClient||r.enableValidation,`${r.clientType}`));ae||(`${r.outputFolder}${r.apiName}`,r.generateClient&&`${r.outputFolder}${r.apiName}`,r.generateClient&&r.clientType&&`${r.clientType}`);}catch(r){throw ae||(console.error(`
788
- \u274C Error during setup:`,r.message),process.exit(1)),r}})}var ae,On=pe(()=>{ae=process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0;});var Pn={};pn(Pn,{GenerateClient:()=>exports.GenerateClient,Init:()=>exports.Init,InteractiveInit:()=>exports.InteractiveInit,JSONStringify:()=>exports.JSONStringify,capitalize:()=>exports.capitalize,createCustomCodeMarker:()=>exports.createCustomCodeMarker,extractCustomCode:()=>exports.extractCustomCode,getEndpointDetails:()=>exports.getEndpointDetails,getNestedValue:()=>Ln,isJson:()=>exports.isJson,isYamlString:()=>exports.isYamlString,mergeCustomCode:()=>exports.mergeCustomCode,renderTypeRefMD:()=>exports.renderTypeRefMD,variableName:()=>exports.variableName,variableNameChar:()=>exports.variableNameChar,yamlStringToJson:()=>exports.yamlStringToJson});var Fe,Sn;exports.Init=void 0;exports.GenerateClient=void 0;exports.InteractiveInit=void 0;var qn=pe(()=>{bn();Ke();_e();Tn();En();ke();Le();Fe=process.cwd(),Sn=()=>{let r;try{Ae("esbuild-register");}catch(l){throw l}let o=D__default.default.join(Fe,"openapi.sync.js"),i=D__default.default.join(Fe,"openapi.sync.ts"),e=D__default.default.join(Fe,"openapi.sync.json"),a=[o,i,e];try{for(let l of a)le__default.default.existsSync(l)&&(r=Ae(l),Object.keys(r).length===1&&r.default&&(r=r.default));}catch(l){}typeof r=="function"&&(r=r());let t=r;if(!t)throw new Error("No config found");return t},exports.Init=r=>re(null,null,function*(){let o=Sn(),i=Object.keys(o.api),e=r&&"refetchInterval"in r&&!isNaN(r==null?void 0:r.refetchInterval)?r.refetchInterval:o.refetchInterval;He();for(let a=0;a<i.length;a+=1){let t=i[a],l=o.api[t];yield Ze(l,t,o,e);}}),exports.GenerateClient=r=>re(null,null,function*(){let o=Sn(),i=r.apiName?[r.apiName]:Object.keys(o.api);for(let a of i)if(!o.api[a])throw new Error(`API "${a}" not found in configuration. Available APIs: ${Object.keys(o.api).join(", ")}`);He();for(let a of i){let t=o.api[a];yield Ze(t,a,o);}let e=(o==null?void 0:o.folder)||"api";for(let a of i){let t=hn(a);if(t.length===0){continue}`${t.length}${a}`;let l=ee(ee(ee(ee(ie(ee({enabled:true},o.clientGeneration||{}),{type:r.type}),r.outputDir&&{outputDir:r.outputDir}),r.baseURL&&{baseURL:r.baseURL}),r.tags&&{tags:r.tags}),r.endpoints&&{endpoints:r.endpoints});yield wn(t,o,l,a,D__default.default.join(Fe,e));}}),exports.InteractiveInit=()=>re(null,null,function*(){let{interactiveInit:r}=yield Promise.resolve().then(()=>(On(),An));yield r();});});qn();exports.getNestedValue=Ln;
863
+ `)),pe||(`${e}`,r.generateClient&&r.clientType&&(r.clientType==="axios"||r.clientType==="react-query"||r.clientType==="swr"||r.clientType),r.enableValidation&&r.validationLibrary&&(r.generateClient,`${r.validationLibrary}`)),r.runSync&&!pe)try{let{Init:t,GenerateClient:f}=yield Promise.resolve().then(()=>(Gt(),Lt));yield t({refetchInterval:r.refetchInterval}),r.generateClient&&r.clientType&&(yield f({type:r.clientType,apiName:r.apiName}));}catch(t){console.error(`
864
+ \u274C Error during sync:`,t.message),t.stack&&process.env.DEBUG&&console.error(t.stack);}else pe||(r.generateClient||r.enableValidation,r.generateClient&&r.clientType&&(r.generateClient||r.enableValidation,`${r.clientType}`));pe||(`${r.outputFolder}${r.apiName}`,r.generateClient&&`${r.outputFolder}${r.apiName}`,r.generateClient&&r.clientType&&`${r.clientType}`);}catch(r){throw pe||(console.error(`
865
+ \u274C Error during setup:`,r.message),process.exit(1)),r}})}var pe,Ft=de(()=>{pe=process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0;});var Lt={};ht(Lt,{GenerateClient:()=>exports.GenerateClient,Init:()=>exports.Init,InteractiveInit:()=>exports.InteractiveInit,JSONStringify:()=>exports.JSONStringify,capitalize:()=>exports.capitalize,createCustomCodeMarker:()=>exports.createCustomCodeMarker,extractCustomCode:()=>exports.extractCustomCode,getEndpointDetails:()=>exports.getEndpointDetails,getNestedValue:()=>Yt,isJson:()=>exports.isJson,isYamlString:()=>exports.isYamlString,mergeCustomCode:()=>exports.mergeCustomCode,renderTypeRefMD:()=>exports.renderTypeRefMD,variableName:()=>exports.variableName,variableNameChar:()=>exports.variableNameChar,yamlStringToJson:()=>exports.yamlStringToJson});var Me,Mt;exports.Init=void 0;exports.GenerateClient=void 0;exports.InteractiveInit=void 0;var Gt=de(()=>{Pt();Ye();Ze();Rt();kt();Ne();ze();Me=process.cwd(),Mt=()=>{let r;try{ve("esbuild-register");}catch(u){throw u}let o=V__default.default.join(Me,"openapi.sync.js"),p=V__default.default.join(Me,"openapi.sync.ts"),e=V__default.default.join(Me,"openapi.sync.json"),i=[o,p,e];try{for(let u of i)ce__default.default.existsSync(u)&&(r=ve(u),Object.keys(r).length===1&&r.default&&(r=r.default));}catch(u){}typeof r=="function"&&(r=r());let n=r;if(!n)throw new Error("No config found");return n},exports.Init=r=>ie(null,null,function*(){let o=Mt(),p=Object.keys(o.api),e=r&&"refetchInterval"in r&&!isNaN(r==null?void 0:r.refetchInterval)?r.refetchInterval:o.refetchInterval;Ve();for(let i=0;i<p.length;i+=1){let n=p[i],u=o.api[n];yield en(u,n,o,e);}}),exports.GenerateClient=r=>ie(null,null,function*(){let o=Mt(),p=r.apiName?[r.apiName]:Object.keys(o.api);for(let i of p)if(!o.api[i])throw new Error(`API "${i}" not found in configuration. Available APIs: ${Object.keys(o.api).join(", ")}`);Ve();for(let i of p){let n=o.api[i];yield en(n,i,o);}let e=(o==null?void 0:o.folder)||"api";for(let i of p){let n=At(i);if(n.length===0){continue}`${n.length}${i}`;let u=X(X(X(X(ae(X({enabled:true},o.clientGeneration||{}),{type:r.type}),r.outputDir&&{outputDir:r.outputDir}),r.baseURL&&{baseURL:r.baseURL}),r.tags&&{tags:r.tags}),r.endpoints&&{endpoints:r.endpoints});yield qt(n,o,u,i,V__default.default.join(Me,e));}}),exports.InteractiveInit=()=>ie(null,null,function*(){let{interactiveInit:r}=yield Promise.resolve().then(()=>(Ft(),Nt));yield r();});});Gt();exports.getNestedValue=Yt;