openapi-sync 5.0.4 → 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,376 +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)=>{let i=r.replace(/\/\*\*?[\s\S]*?\*\//g,e=>e.replace(/^\/\*\*?\s*/,"").replace(/\s*\*\/$/,"").split(`
6
- `).map(t=>t.replace(/^\s*\*\s?/,"").trim()).filter(t=>t.length>0).map(t=>`// ${t}`).join(`
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
7
  `));return `
8
8
  \`\`\`typescript
9
- ${" ".repeat(o)} ${i.split(`
9
+ ${" ".repeat(o)} ${p.split(`
10
10
  `).filter(e=>e.trim()!=="").join(`
11
11
  ${" ".repeat(o)} `)}
12
- \`\`\``};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(`
13
- `,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(`
14
- `).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"}
15
- // This section will be preserved during regeneration
16
- `:"";return `// ${"=".repeat(60)}
17
- // \u{1F512} ${o} START
18
- ${e}// ${"=".repeat(60)}
19
-
20
- // \u{1F512} ${o} END
21
- // ${"=".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(`
22
- `)};});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,T;if((u=e==null?void 0:e.folderSplit)!=null&&u.customFolder){let $=e.folderSplit.customFolder(s);if($)return $}return (T=e==null?void 0:e.folderSplit)!=null&&T.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 T=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},T);if(g)return `${q}${g}`}return `${q}${T}`},v=(s,u,T,$,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,Te,ye,ge,ve,he;let W="";!((Te=(oe=e==null?void 0:e.types)==null?void 0:oe.doc)!=null&&Te.disable)&&((ge=(ye=u.properties)==null?void 0:ye[z])!=null&&ge.description)&&(W=" * "+((ve=u.properties)==null?void 0:ve[z].description.split(`
23
- `).filter(Me=>Me.trim()!=="").join(`
24
- *${" ".repeat(1)}`))),L+=(W?`/**
25
- ${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}
26
28
  */
27
- `:"")+`${v(s,(he=u.properties)==null?void 0:he[z],z,M.includes(z),d,g+1)}`;}),L.length>0?h+=`{
28
- ${" ".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||T;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?`;
29
- `:""}`:""},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(`,
30
- `);C.length>0?d+=`{
31
- ${C}
32
- }`: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="",w="",b={},Y=[],F=(s,u)=>{let T={},$={};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=T,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(T).forEach(g=>{var A,J,p,Z;let m=E(g),C=T[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(`
33
- `).filter(O=>O.trim()!=="").join(`
34
- *${" ".repeat(1)}`)),b[g]=((Z=b[g])!=null?Z:"")+(h?`/**
35
- ${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}
36
55
  */
37
- `:"")+"export type "+m+" = "+(typeof C=="string"?C:exports.JSONStringify(C))+`;
38
- `;});};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 T=Object.keys(s.content);T[0]&&s.content[T[0]].schema&&(u+=`${v(n,s.content[T[0]].schema,"")}`);}return u},K=(s,u,T=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,T)}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,T+1)).join(", ")}])`:u==="yup"?`yup.mixed().oneOf([${$.map(C=>K(C,u,T+1)).join(", ")}])`:`Joi.alternatives().try(${$.map(m=>K(m,u,T+1)).join(", ")})`}if(s.allOf)if(u==="zod"){let $=s.allOf.map(g=>K(g,u,T+1)),d=$[0];for(let g=1;g<$.length;g++)d=`${d}.merge(${$[g]})`;return d}else return K(s.allOf[0],u,T+1);if(s.items){let $=K(s.items,u,T+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(T+1),g=Object.entries(s.properties).map(([m,C])=>{let h=$.includes(m),A=K(C,u,T+1);return h||(A+=".optional()"),`${d}${m}: ${A}`}).join(`,
39
- `);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({
40
59
  ${g}
41
- ${" ".repeat(T)}})`:u==="yup"?`yup.object({
60
+ ${" ".repeat(C)}})`:a==="yup"?`yup.object({
42
61
  ${g}
43
- ${" ".repeat(T)}})`:`Joi.object({
62
+ ${" ".repeat(C)}})`:`Joi.object({
44
63
  ${g}
45
- ${" ".repeat(T)}})`}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,T,$,d,g;if((T=(u=e==null?void 0:e.endpoints)==null?void 0:u.value)!=null&&T.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,T=[])=>{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?T.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&&T.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,Tt,wt,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=`{
46
- ${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};
47
- `;e!=null&&e.folderSplit?c[h].types+=R:w+=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((wt=(Tt=e==null?void 0:e.validations)==null?void 0:Tt.name)==null?void 0:wt.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(`,
48
- `),de=`export const ${B} = ${I==="joi"?"Joi.object":I==="yup"?"yup.object":"z.object"}({
49
- ${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}
50
70
  });
51
71
 
52
- `;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};
53
- `;e!=null&&e.folderSplit?c[h].types+=x:w+=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};
54
-
55
- `;e!=null&&e.folderSplit||c[h]||(c[h]={endpoints:"",types:"",validation:""}),c[h].validation+=U;}}}let W={},oe="",Te="";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};
56
- `;e!=null&&e.folderSplit?c[h].types+=te:w+=te,W[R]=U;let de=parseInt(R);de>=200&&de<300&&(Te=U);}});}let ye=I=>!I||!I.length?"":I.map(x=>Object.entries(x).map(([G,_])=>{let N=G,B="";return Array.isArray(_)&&_.length&&(B=`
57
- - Scopes: [\`${_.join("`, `")}\`]`,N=`**${N}**`),`
58
- - ${N}${B}`}).join("")).join(`
59
- `),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+=`
60
- --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
+ \`\`\``:`
61
86
  \`\`\`bash
62
- ${curlGenerator.CurlGenerator({url:S+s,method:d.toUpperCase(),headers:_,body:R})}${G}
63
- \`\`\``;}ve=`/**${p!=null&&p.description?`
64
- * ${p==null?void 0:p.description} `:""}
65
- * **Method**: \`${d.toUpperCase()}\`
66
- * **Summary**: ${(p==null?void 0:p.summary)||""}
67
- * **Tags**: [${((Vt=p==null?void 0:p.tags)==null?void 0:Vt.join(", "))||""}]
68
- * **OperationId**: ${(p==null?void 0:p.operationId)||""} ${Z?`
69
- * **Query**: ${exports.renderTypeRefMD(Z)} `:""}${L?`
70
- * **DTO**: ${exports.renderTypeRefMD(L)} `:""}${oe?`
71
- * **Response**: ${Object.entries(W).map(([x,R])=>`
72
- - **${x}**: ${exports.renderTypeRefMD(R,2)} `).join("")}`:""}${ge?`
73
- * **Security**: ${ge}
74
- `:""}${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}
75
107
  */
76
- `;}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};
77
- `;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:Te||void 0};Y.push(jn);});}),e!=null&&e.folderSplit){for(let[s,u]of Object.entries(c))if(u.endpoints||u.types){let T=D__default.default.join(y,s);if(u.endpoints){let $=D__default.default.join(fe,T,"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,T,"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";
78
-
79
- ${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,T,"validations.ts");yield le__default.default.promises.mkdir(D__default.default.dirname(g),{recursive:true}),yield $e(g,`${d}
80
-
81
- ${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(`
82
- `),e);}if(w.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";
83
-
84
- `:""}${w}`,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";',T=Object.values(c).map($=>$.validation).filter($=>$.length>0).join("");if(T){let $=D__default.default.join(fe,y,"validations.ts");yield le__default.default.promises.mkdir(D__default.default.dirname($),{recursive:true}),yield $e($,`${u}
85
-
86
- ${T}`,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
87
- `;t+=`// This file was auto-generated. Add custom code in the marked sections.
88
-
89
- `,t+=`import type {
90
- `;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},
91
- `;}),t+=`} from '../types';
92
-
93
- `,t+=`import {
94
- `,r.forEach(c=>{t+=` ${c.name} as ${c.name}_endpoint,
95
- `;}),t+=`} from '../endpoints';
96
-
97
- `,t+=`export interface ApiConfig {
98
- `,t+=` baseURL?: string;
99
- `,t+=` headers?: Record<string, string>;
100
- `,t+=`}
101
-
102
- `,t+=`let globalConfig: ApiConfig = {
103
- `,t+=` baseURL: "${e}",
104
- `,t+=`};
105
-
106
- `,t+=`export const setApiConfig = (config: Partial<ApiConfig>) => {
107
- `,t+=` globalConfig = { ...globalConfig, ...config };
108
- `,t+=`};
109
-
110
- `,(n=o.errorHandling)!=null&&n.generateErrorClasses&&(t+=`export class ApiError extends Error {
111
- `,t+=` constructor(
112
- `,t+=` message: string,
113
- `,t+=` public statusCode: number,
114
- `,t+=` public response?: any
115
- `,t+=` ) {
116
- `,t+=` super(message);
117
- `,t+=` this.name = 'ApiError';
118
- `,t+=` }
119
- `,t+=`}
120
-
121
- `),t+=`async function fetchAPI<T>(
122
- `,t+=` url: string,
123
- `,t+=` options: RequestInit = {}
124
- `,t+=`): Promise<T> {
125
- `,t+=` const headers: Record<string, string> = {
126
- `,t+=` 'Content-Type': 'application/json',
127
- `,t+=` ...globalConfig.headers,
128
- `,t+=` ...(options.headers as Record<string, string>),
129
- `,t+=` };
130
-
131
- `,t+=" const response = await fetch(`${globalConfig.baseURL}${url}`, {\n",t+=` ...options,
132
- `,t+=` headers,
133
- `,t+=` });
134
-
135
- `,t+=` if (!response.ok) {
136
- `,(y=o.errorHandling)!=null&&y.generateErrorClasses?(t+=` const errorData = await response.json().catch(() => ({}));
137
- `,t+=` throw new ApiError(
138
- `,t+=` errorData.message || response.statusText,
139
- `,t+=` response.status,
140
- `,t+=` errorData
141
- `,t+=` );
142
- `):t+=" throw new Error(`HTTP error! status: ${response.status}`);\n",t+=` }
143
-
144
- `,t+=` return response.json();
145
- `,t+=`}
146
-
147
- `,r.forEach(c=>{var H,w;let f=c.name,S=((H=c.parameters)==null?void 0:H.filter(b=>b.in==="path"))||[],q=((w=c.parameters)==null?void 0:w.filter(b=>b.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!c.requestBody,j=c.responseType||"any";if(t+=`/**
148
- `,c.summary&&(t+=` * ${c.summary}
149
- `),t+=` * @method ${c.method.toUpperCase()}
150
- `,t+=` * @path ${c.path}
151
- `,c.tags&&c.tags.length>0&&(t+=` * @tags ${c.tags.join(", ")}
152
- `),t+=` */
153
- `,t+=`export async function ${f}(`,(P||E||v)&&(t+=`params: {
154
- `,P&&(t+=` url: {
155
- `,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};
156
- `;}),t+=` };
157
- `),E&&(t+=` query: ${c.queryType||"Record<string, any>"};
158
- `),v&&(t+=` data: ${c.dtoType||"any"};
159
- `),t+=`}
160
- `),t+=`): Promise<${j}> {
161
- `,P||E||v){let b=[];P&&b.push("url"),E&&b.push("query"),v&&b.push("data"),t+=` const { ${b.join(", ")} } = params;
162
- `;}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();
163
- `,q.forEach(b=>{b.required?t+=` queryParams.append('${b.name}', String(query.${b.name}));
164
- `:(t+=` if (query.${b.name} !== undefined) {
165
- `,t+=` queryParams.append('${b.name}', String(query.${b.name}));
166
- `,t+=` }
167
- `);}),t+=` const _url = \`\${${k}}?\${queryParams.toString()}\`;
168
- `):t+=` const _url = ${k};
169
- `,t+=` return fetchAPI<${j}>(_url, {
170
- `,t+=` method: '${c.method.toUpperCase()}',
171
- `,v&&(t+=` body: JSON.stringify(data),
172
- `),t+=` });
173
- `,t+=`}
174
-
175
- `;}),i&&(t+=`// Export all functions as a default object
176
- `,t+=`const apiClient = {
177
- `,t+=` setApiConfig,
178
- `,r.forEach(c=>{t+=` ${c.name},
179
- `;}),t+=`};
180
-
181
- `,t+=`export default apiClient;
182
- `),t},Ce=(r,o,i=false)=>{var n,y;let e=o.baseURL||"";o.auth;let t=`// Generated Axios API Client
183
- `;t+=`// This file was auto-generated. Add custom code in the marked sections.
184
-
185
- `,t+=`import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
186
-
187
- `,t+=`import type {
188
- `;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},
189
- `;}),t+=`} from '../types';
190
-
191
- `,t+=`import {
192
- `,r.forEach(c=>{t+=` ${c.name},
193
- `;}),t+=`} from '../endpoints';
194
-
195
- `,t+=`export interface ApiConfig {
196
- `,t+=` baseURL?: string;
197
- `,t+=` headers?: Record<string, string>;
198
- `,t+=` timeout?: number;
199
- `,t+=`}
200
-
201
- `,(n=o.errorHandling)!=null&&n.generateErrorClasses&&(t+=`export class ApiError extends Error {
202
- `,t+=` constructor(
203
- `,t+=` message: string,
204
- `,t+=` public statusCode: number,
205
- `,t+=` public response?: any
206
- `,t+=` ) {
207
- `,t+=` super(message);
208
- `,t+=` this.name = 'ApiError';
209
- `,t+=` }
210
- `,t+=`}
211
-
212
- `),t+=`class ApiClient {
213
- `,t+=` private client: AxiosInstance;
214
-
215
- `,t+=` constructor(config: ApiConfig = {}) {
216
- `,t+=` this.client = axios.create({
217
- `,t+=` baseURL: config.baseURL || "${e}",
218
- `,t+=` timeout: config.timeout || 30000,
219
- `,t+=` headers: {
220
- `,t+=` 'Content-Type': 'application/json',
221
- `,t+=` ...config.headers,
222
- `,t+=` },
223
- `,t+=` });
224
-
225
- `,t+=` // Response interceptor for error handling
226
- `,t+=` this.client.interceptors.response.use(
227
- `,t+=` (response) => response,
228
- `,t+=` (error) => {
229
- `,(y=o.errorHandling)!=null&&y.generateErrorClasses?(t+=` const message = error.response?.data?.message || error.message;
230
- `,t+=` const statusCode = error.response?.status || 500;
231
- `,t+=` throw new ApiError(message, statusCode, error.response?.data);
232
- `):t+=` return Promise.reject(error);
233
- `,t+=` }
234
- `,t+=` );
235
- `,t+=` }
236
-
237
- `,t+=` updateConfig(config: Partial<ApiConfig>) {
238
- `,t+=` Object.assign(this.client.defaults, config);
239
- `,t+=` }
240
-
241
- `,r.forEach(c=>{var k,H;let f=c.name,S=((k=c.parameters)==null?void 0:k.filter(w=>w.in==="path"))||[],q=((H=c.parameters)==null?void 0:H.filter(w=>w.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!c.requestBody,j=c.responseType||"any";if(t+=` /**
242
- `,c.summary&&(t+=` * ${c.summary}
243
- `),t+=` * @method ${c.method.toUpperCase()}
244
- `,t+=` * @path ${c.path}
245
- `,c.tags&&c.tags.length>0&&(t+=` * @tags ${c.tags.join(", ")}
246
- `),t+=` */
247
- `,t+=` async ${f}(`,(P||E||v)&&(t+=`params: {
248
- `,P&&(t+=` url: {
249
- `,S.forEach(w=>{let Y={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[w.type||"string"]||"any",F=w.required?"":"?";t+=` ${w.name}${F}: ${Y};
250
- `;}),t+=` };
251
- `),E&&(t+=` query: ${c.queryType||"Record<string, any>"};
252
- `),v&&(t+=` data: ${c.dtoType||"any"};
253
- `),t+=" }"),t+=`): Promise<${j}> {
254
- `,P||E||v){let w=[];P&&w.push("url"),E&&w.push("query"),v&&w.push("data"),t+=` const { ${w.join(", ")} } = params;
255
- `;}if(P){let w=S.map(b=>`url.${b.name}`).join(", ");t+=` const _url = ${c.name}(${w});
256
- `;}else t+=` const _url = ${c.name};
257
- `;t+=` const config: AxiosRequestConfig = {};
258
- `,E&&(t+=` config.params = { ...query };
259
- `),t+=` const response = await this.client.${c.method.toLowerCase()}<${j}>(
260
- `,t+=` _url,
261
- `,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,
262
337
  config
263
- `:t+=` config
264
- `,t+=` );
265
- `,t+=` return response.data;
266
- `,t+=` }
338
+ `:n+=` config
339
+ `,n+=` );
340
+ `,n+=` return response.data;
341
+ `,n+=` }
267
342
 
268
- `;}),t+=`}
343
+ `;}),n+=`}
269
344
 
270
- `,i?t+=`export default ApiClient;
271
- `:(t+=`export const apiClient = new ApiClient();
272
- `,t+=`export default apiClient;
273
- `),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
274
- `;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.
275
350
 
276
- `;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';
277
352
  `:`import { useQuery, UseQueryOptions } from '@tanstack/react-query';
278
- `;a&&(f=f.replace("@tanstack/react-query';\\n",`@tanstack/react-query';
353
+ `;i&&(y=y.replace("@tanstack/react-query';\\n",`@tanstack/react-query';
279
354
  import { useInfiniteQuery, UseInfiniteQueryOptions } from '@tanstack/react-query';
280
- `)),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';
281
356
  `:`import { useQuery, UseQueryOptions } from 'react-query';
282
- `;a&&(f=f.replace("react-query';\\n",`react-query';
357
+ `;i&&(y=y.replace("react-query';\\n",`react-query';
283
358
  import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
284
- `)),t+=f;}t+=`
285
- `,t+=`import apiClient from './client';
286
- `,t+=`import type {
287
- `;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},
288
- `;}),t+=`} from '../types';
289
-
290
- `,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,w=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+=`/**
291
- `,f.summary&&(t+=` * ${f.summary}
292
- `),t+=` * @method ${S}
293
- `,t+=` * @path ${f.path}
294
- `,f.tags&&f.tags.length>0&&(t+=` * @tags ${f.tags.join(", ")}
295
- `),t+=` */
296
- `,j||k?(t+=`export function ${me}(
297
- `,t+=` params: {
298
- `,j&&(t+=` url: {
299
- `,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};
300
- `;}),t+=` };
301
- `),k&&(t+=` query: ${f.queryType||"Record<string, any>"};
302
- `),t+=` },
303
- `,t+=` options?: Omit<UseQueryOptions<${w}>, 'queryKey' | 'queryFn'>
304
- `,t+=`) {
305
- `,t+=` return useQuery({
306
- `,t+=` queryKey: ['${f.name}', params],
307
- `,t+=` queryFn: () => apiClient.${f.name}(params),
308
- `,t+=` ...options,
309
- `,t+=` });
310
- `,t+=`}
311
-
312
- `):(t+=`export function ${me}(
313
- `,t+=` options?: Omit<UseQueryOptions<${w}>, 'queryKey' | 'queryFn'>
314
- `,t+=`) {
315
- `,t+=` return useQuery({
316
- `,t+=` queryKey: ['${f.name}'],
317
- `,t+=` queryFn: () => apiClient.${f.name}(),
318
- `,t+=` ...options,
319
- `,t+=` });
320
- `,t+=`}
321
-
322
- `),K){let se=`${me}Infinite`;j||k?(t+=`export function ${se}(
323
- `,t+=` params: {
324
- `,j&&(t+=` url: {
325
- `,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};
326
- `;}),t+=` };
327
- `),k&&(t+=` query: ${f.queryType||"Record<string, any>"};
328
- `),t+=` },
329
- `,t+=` options?: Omit<UseInfiniteQueryOptions<${w}, Error, ${w}>, 'queryKey' | 'queryFn'>
330
- `,t+=`) {
331
- `,t+=` return useInfiniteQuery({
332
- `,t+=` queryKey: ['${f.name}', params],
333
- `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${f.name}({ ...params, query: { ...(params.query || {}), page: pageParam } }),
334
- `,t+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
335
- `,t+=` ...options,
336
- `,t+=` });
337
- `,t+=`}
338
-
339
- `):(t+=`export function ${se}(
340
- `,t+=` options?: Omit<UseInfiniteQueryOptions<${w}, Error, ${w}>, 'queryKey' | 'queryFn'>
341
- `,t+=`) {
342
- `,t+=` return useInfiniteQuery({
343
- `,t+=` queryKey: ['${f.name}'],
344
- `,t+=` queryFn: ({ pageParam = 1 }) => apiClient.${f.name}({ query: { page: pageParam } }),
345
- `,t+=` getNextPageParam: (lastPage) => lastPage?.nextPage ?? lastPage?.nextCursor ?? null,
346
- `,t+=` ...options,
347
- `,t+=` });
348
- `,t+=`}
349
-
350
- `);}}else if(P&&e){let F=`use${f.name.charAt(0).toUpperCase()+f.name.slice(1)}`;t+=`/**
351
- `,f.summary&&(t+=` * ${f.summary}
352
- `),t+=` * @method ${S}
353
- `,t+=` * @path ${f.path}
354
- `,f.tags&&f.tags.length>0&&(t+=` * @tags ${f.tags.join(", ")}
355
- `),t+=` */
356
- `;let Q="void";(j||k||H)&&(Q=`{
357
- `,j&&(Q+=` url: {
358
- `,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};
359
- `;}),Q+=` };
360
- `),k&&(Q+=` query: ${f.queryType||"Record<string, any>"};
361
- `),H&&(Q+=` data: ${f.dtoType||"any"};
362
- `),Q+=" }"),t+=`export function ${F}(
363
- `,t+=` options?: Omit<UseMutationOptions<${w}, Error, ${Q}>, 'mutationFn'>
364
- `,t+=`) {
365
- `,t+=` return useMutation({
366
- `,t+=" mutationFn: (",Q!=="void"&&(t+=`variables: ${Q}`),t+=`) => {
367
- `,t+=` return apiClient.${f.name}(${Q!=="void"?"variables":""});
368
- `,t+=` },
369
- `,t+=` ...options,
370
- `,t+=` });
371
- `,t+=`}
372
-
373
- `;}}),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
374
449
  `;e+=`// This file was auto-generated. Add custom code in the marked sections.
375
450
 
376
451
  `,e+=`/**
@@ -565,226 +640,226 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
565
640
  `,e+=` */
566
641
 
567
642
  `,e+=`import useSWR, { SWRConfiguration } from 'swr';
568
- `,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';
569
644
  `),e+=`
570
645
  `,e+=`import apiClient from './client';
571
646
  `,e+=`import type {
572
- `;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},
573
648
  `;}),e+=`} from '../types';
574
649
 
575
- `,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(w=>w.in==="path"))||[],q=((H=n.parameters)==null?void 0:H.filter(w=>w.in==="query"))||[],P=S.length>0,E=q.length>0,v=!!n.requestBody,j=n.responseType||"any";if(c){let w=`use${n.name.charAt(0).toUpperCase()+n.name.slice(1)}`;e+=`/**
576
- `,n.summary&&(e+=` * ${n.summary}
577
- `),e+=` * @method ${y}
578
- `,e+=` * @path ${n.path}
579
- `,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(", ")}
580
655
  `),e+=` */
581
- `,P||E?(e+=`export function ${w}(
656
+ `,q||O?(e+=`export function ${P}(
582
657
  `,e+=` params: {
583
- `,P&&(e+=` url: {
584
- `,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};
585
660
  `;}),e+=` };
586
- `),E&&(e+=` query: ${n.queryType||"Record<string, any>"};
661
+ `),O&&(e+=` query: ${t.queryType||"Record<string, any>"};
587
662
  `),e+=` },
588
- `,e+=` config?: SWRConfiguration<${j}>
663
+ `,e+=` config?: SWRConfiguration<${F}>
589
664
  `,e+=`) {
590
665
  `,e+=` return useSWR(
591
- `,e+=` ['${n.name}', params],
592
- `,e+=` () => apiClient.${n.name}(params),
666
+ `,e+=` ['${t.name}', params],
667
+ `,e+=` () => apiClient.${t.name}(params),
593
668
  `,e+=` config
594
669
  `,e+=` );
595
- `):(e+=`export function ${w}(
596
- `,e+=` config?: SWRConfiguration<${j}>
670
+ `):(e+=`export function ${P}(
671
+ `,e+=` config?: SWRConfiguration<${F}>
597
672
  `,e+=`) {
598
673
  `,e+=` return useSWR(
599
- `,e+=` '${n.name}',
600
- `,e+=` () => apiClient.${n.name}(),
674
+ `,e+=` '${t.name}',
675
+ `,e+=` () => apiClient.${t.name}(),
601
676
  `,e+=` config
602
677
  `,e+=` );
603
678
  `),e+=`}
604
679
 
605
- `;}else if(f&&i){let w=`use${n.name.charAt(0).toUpperCase()+n.name.slice(1)}`;e+=`/**
606
- `,n.summary&&(e+=` * ${n.summary}
607
- `),e+=` * @method ${y}
608
- `,e+=` * @path ${n.path}
609
- `,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(", ")}
610
685
  `),e+=` */
611
- `;let b="void",Y="void";(P||E||v)&&(b=`{
612
- `,P&&(b+=` url: {
613
- `,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};
614
- `;}),b+=` };
615
- `),E&&(b+=` query: ${n.queryType||"Record<string, any>"};
616
- `),v&&(b+=` data: ${n.dtoType||"any"};
617
- `),b+=" }",Y=`{ arg: ${b} }`),e+=`export function ${w}(
618
- `,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}>
619
694
  `,e+=`) {
620
695
  `,e+=` return useSWRMutation(
621
- `,e+=` '${n.name}',
622
- `,e+=" async (_, ",b!=="void"&&(e+=`{ arg }: ${Y}`),e+=`) => {
623
- `,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":""});
624
699
  `,e+=` },
625
700
  `,e+=` config
626
701
  `,e+=` );
627
702
  `,e+=`}
628
703
 
629
- `;}}),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
630
- `;a+=`// This file was auto-generated. Add custom code in the marked sections.
631
-
632
- `,a+=`import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
633
-
634
- `,a+=`import type {
635
- `;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},
636
- `;}),a+=`} from '../types';
637
-
638
- `,a+=`import {
639
- `,r.forEach(n=>{a+=` ${n.name},
640
- `;}),a+=`} from '../endpoints';
641
-
642
- `,a+=`const ${i}Api = createApi({
643
- `,a+=` reducerPath: '${i}Api',
644
- `,a+=` baseQuery: fetchBaseQuery({
645
- `,a+=` baseUrl: '${e}',
646
- `,o.auth&&(a+=` prepareHeaders: (headers, { getState }) => {
647
- `,a+=` // Get token from your auth state
648
- `,a+=` // const token = (getState() as RootState).auth.token;
649
- `,a+=` // if (token) {
650
- `,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);
651
- `),a+=` // }
652
- `,a+=` return headers;
653
- `,a+=` },
654
- `),a+=` }),
655
- `,a+=` tagTypes: [${[...new Set(r.flatMap(n=>n.tags||[]))].map(n=>`'${n}'`).join(", ")}],
656
- `,a+=` endpoints: (builder) => ({
657
- `,r.forEach((n,y)=>{var H,w;let c=n.method.toUpperCase(),f=c==="GET",S=((H=n.parameters)==null?void 0:H.filter(b=>b.in==="path"))||[],q=((w=n.parameters)==null?void 0:w.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"}<
658
- `,a+=` ${j},
659
- `;let k="void";if((P||E||v)&&(k=`{
660
- `,P&&(k+=` url: {
661
- `,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};
662
- `;}),k+=` };
663
- `),E&&(k+=` query: ${n.queryType||"Record<string, any>"};
664
- `),v&&(k+=` data: ${n.dtoType||"any"};
665
- `),k+=" }"),a+=` ${k}
666
- `,a+=` >({
667
- `,a+=" query: (",k!=="void"&&(a+="arg"),a+=`) => {
668
- `,P){let b=S.map(Y=>`arg.url.${Y.name}`).join(", ");a+=` const url = ${n.name}(${b});
669
- `;}else a+=` const url = ${n.name};
670
- `;a+=` return {
671
- `,a+=` url,
672
- `,a+=` method: '${c}',
673
- `,E&&(a+=` params: arg.query,
674
- `),v&&(a+=` body: arg.data,
675
- `),a+=` };
676
- `,a+=` },
677
- `,n.tags&&n.tags.length>0&&(f?a+=` providesTags: ['${n.tags[0]}'],
678
- `:a+=` invalidatesTags: ['${n.tags[0]}'],
679
- `),a+=` })${y<r.length-1?",":""}
680
- `;}),a+=` }),
681
- `,a+=`});
682
-
683
- `,a+=`export default ${i}Api;
684
-
685
- `,a};});var Kn,Tn,X,_n,Vn,wn=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"},Tn=(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
686
- `;l+=`// This file was auto-generated.
687
- `,l+=`// Aggregates all API slices for easy Redux store setup
688
-
689
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=`import ${y}Api from './${n}/api';
690
- `;}),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+=`
691
766
  // Export all API slices
692
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=`export { default as ${y}Api } from './${n}/api';
693
- `;}),l+=`
767
+ `,o.forEach(t=>{let f=t.replace(/-/g,"_");u+=`export { default as ${f}Api } from './${t}/api';
768
+ `;}),u+=`
694
769
  /**
695
- `,l+=` * Configure Redux store with all API slices
696
- `,l+=` *
697
- `,l+=` * @example
698
- `,l+=` * import { configureStore } from '@reduxjs/toolkit';
699
- `,l+=` * import { setupApiStore } from './apis';
700
- `,l+=` *
701
- `,l+=` * export const store = configureStore({
702
- `,l+=` * reducer: setupApiStore.reducer,
703
- `,l+=` * middleware: (getDefaultMiddleware) =>
704
- `,l+=` * getDefaultMiddleware().concat(setupApiStore.middleware),
705
- `,l+=` * });
706
- `,l+=` */
707
- `,l+=`export const setupApiStore = {
708
- `,l+=` reducer: {
709
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=` [${y}Api.reducerPath]: ${y}Api.reducer,
710
- `;}),l+=` },
711
- `,l+=` middleware: [
712
- `,o.forEach(n=>{let y=n.replace(/-/g,"_");l+=` ${y}Api.middleware,
713
- `;}),l+=` ],
714
- `,l+=`};
715
- `,yield X(D__default.default.join(r,"apis.ts"),l,e);return}let a=`// Generated API Clients
716
- `;if(a+=`// This file was auto-generated.
717
- `,a+=`// Centralized client instances and configuration
718
-
719
- `,i==="fetch"?o.forEach(l=>{let n=l.replace(/-/g,"_");a+=`export { default as ${n}Client } from './${l}/client';
720
- `;}):(o.forEach(l=>{let n=l.replace(/-/g,"_"),y=`${n.charAt(0).toUpperCase()+n.slice(1)}ApiClient`;a+=`import ${y} from './${l}/client';
721
- `;}),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+=`
722
797
  // Create client instances
723
- `,o.forEach(l=>{let n=l.replace(/-/g,"_"),y=`${n.charAt(0).toUpperCase()+n.slice(1)}ApiClient`;a+=`export const ${n}Client = new ${y}();
724
- `;})),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+=`
725
800
  // Import clients for aggregation
726
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=`import ${n}_client from './${l}/client';
727
- `;})),a+=`
801
+ `,o.forEach(u=>{let t=u.replace(/-/g,"_");i+=`import ${t}_client from './${u}/client';
802
+ `;})),i+=`
728
803
  // Aggregate all client instances
729
- `,a+=`export const clients = {
730
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");i==="fetch"?a+=` ${n}: ${n}_client,
731
- `:a+=` ${n}: ${n}Client,
732
- `;}),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+=`};
733
808
 
734
- `,i==="axios"?(a+=`
809
+ `,p==="axios"?(i+=`
735
810
  /**
736
- `,a+=` * Configure all API clients at once
737
- `,a+=` * @param config - Configuration to apply to all clients
738
- `,a+=` */
739
- `,a+=`export const configureAllClients = (config: {
740
- `,a+=` baseURL?: string;
741
- `,a+=` headers?: Record<string, string>;
742
- `,a+=` timeout?: number;
743
- `,a+=`}) => {
744
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=` ${n}Client.updateConfig(config);
745
- `;}),a+=`};
746
-
747
- `):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+=`
748
823
  /**
749
- `,a+=` * Configure all API clients at once
750
- `,a+=` * @param config - Configuration to apply to all clients
751
- `,a+=` */
752
- `,a+=`export const configureAllClients = (config: {
753
- `,a+=` baseURL?: string;
754
- `,a+=` headers?: Record<string, string>;
755
- `,a+=` auth?: { token?: string };
756
- `,a+=`}) => {
757
- `,o.forEach(l=>{let n=l.replace(/-/g,"_");a+=` ${n}_client.setApiConfig(config);
758
- `;}),a+=`};
759
-
760
- `),a+=`// Example usage:
761
- `,a+=`// import { configureAllClients, clients } from './clients';
762
- `,a+=`//
763
- `,a+=`// // Configure all clients at once
764
- `,a+=`// configureAllClients({
765
- `,a+=`// baseURL: 'https://api.example.com',
766
- `,a+=`// timeout: 10000,
767
- `,a+=`// });
768
- `,a+=`//
769
- `,a+=`// // Use specific client
770
- `,a+=`// const data = await clients.${(t=o[0])==null?void 0:t.replace(/-/g,"_")}.someMethod(...);
771
- `,yield X(D__default.default.join(r,"clients.ts"),a,e),i==="react-query"||i==="swr"){let l=`// Generated Hooks Aggregator
772
- `;l+=`// This file was auto-generated.
773
- `,l+=`// Aggregates all folder-split hooks
774
-
775
- `,o.forEach(n=>{l+=`export * from './${n}/hooks';
776
- `;}),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+=`
777
852
  // Example usage:
778
- `,l+=`// import { useGetSomething } from './hooks';
779
- `,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";
780
855
 
781
856
  const config: IConfig = ${JSON.stringify(o,null,2)};
782
857
 
783
858
  export default config;
784
- `):(e="openapi.sync.js",i=`module.exports = ${JSON.stringify(o,null,2)};
785
- `);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,`
786
861
  # OpenAPI Sync generated files
787
862
  ${r.outputFolder}
788
- `)),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(`
789
- \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(`
790
- \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();wn();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 Tn(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;