openapi-sync 5.0.6 → 5.0.7
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/README.md +3 -0
- package/dist/index.js +150 -146
- package/dist/index.mjs +156 -152
- package/package.json +1 -1
- /package/dist/{interactive-init-OITE22SZ.mjs → interactive-init-DZKTNNQK.mjs} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var Pe=require('js-yaml'),V=require('path'),ce=require('fs'),
|
|
1
|
+
'use strict';var Pe=require('js-yaml'),V=require('path'),ce=require('fs'),er=require('lodash.isequal'),Fe=require('lodash.get'),nr=require('axios'),tr=require('axios-retry'),rr=require('@apidevtools/swagger-parser'),curlGenerator=require('curl-generator'),Nt=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 er__default=/*#__PURE__*/_interopDefault(er);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var nr__default=/*#__PURE__*/_interopDefault(nr);var tr__default=/*#__PURE__*/_interopDefault(tr);var rr__default=/*#__PURE__*/_interopDefault(rr);var Nt__default=/*#__PURE__*/_interopDefault(Nt);var ht=Object.defineProperty,_t=Object.defineProperties;var Ht=Object.getOwnPropertyDescriptors;var yt=Object.getOwnPropertySymbols;var Kt=Object.prototype.hasOwnProperty,Vt=Object.prototype.propertyIsEnumerable;var gt=(r,o,p)=>o in r?ht(r,o,{enumerable:true,configurable:true,writable:true,value:p}):r[o]=p,X=(r,o)=>{for(var p in o||(o={}))Kt.call(o,p)&>(r,p,o[p]);if(yt)for(var p of yt(o))Vt.call(o,p)&>(r,p,o[p]);return r},ie=(r,o)=>_t(r,Ht(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 $t=(r,o)=>{for(var p in o)ht(r,p,{get:o[p],enumerable:true});};var se=(r,o,p)=>new Promise((e,i)=>{var n=f=>{try{t(p.next(f));}catch(d){i(d);}},u=f=>{try{t(p.throw(f));}catch(d){i(d);}},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 Zt(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 bt;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
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
3
|
`).filter(t=>t.trim()!=="").join(`
|
|
4
4
|
${" ".repeat(o)}`);i<e.length-1&&(p+=", ");}return p+=`
|
|
@@ -9,112 +9,116 @@ ${" ".repeat(o-1)}}`,p},exports.renderTypeRefMD=(r,o=1)=>{let p=r.replace(/\/
|
|
|
9
9
|
${" ".repeat(o)} ${p.split(`
|
|
10
10
|
`).filter(e=>e.trim()!=="").join(`
|
|
11
11
|
${" ".repeat(o)} `)}
|
|
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
|
|
13
|
-
`,
|
|
14
|
-
`).filter(
|
|
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 E=r.indexOf(P.start,n);E!==-1&&(f===-1||E<f)&&(f=E,t=P);}if(f===-1||!t)break;let d=r.indexOf(t.end,f);if(d===-1)break;let y=d+t.end.length,A=r.substring(y,y+100),F=A.match(/^\s*\n\s*((?:\/\/|#)\s*=+)/);if(F){let P=A.indexOf(`
|
|
13
|
+
`,F.index+1);P!==-1?y+=P+1:y+=F[0].length;}let q=f,O=r.substring(Math.max(0,f-200),f),U=/(^|\n)\s*(?:\/\/|#)\s*=+/g,L,R=-1;for(;(L=U.exec(O))!==null;)R=L.index+L[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(d=>{let y=d.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
15
|
${e} This section will be preserved during regeneration
|
|
16
16
|
`:"";return `${e} ${"=".repeat(60)}
|
|
17
17
|
${e} \u{1F512} ${o} START
|
|
18
18
|
${i}${e} ${"=".repeat(60)}
|
|
19
19
|
|
|
20
20
|
${e} \u{1F512} ${o} END
|
|
21
|
-
${e} ${"=".repeat(60)}`}
|
|
21
|
+
${e} ${"=".repeat(60)}`},bt=(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
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
|
|
24
|
-
`)};});var
|
|
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=bt(t.beforeGenerated,i,u),t.afterGenerated=bt(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 Le,Ke,qe,xt,Tt,Et,Ve,Ye=de(()=>{Le=V__default.default.join(__dirname,"../","../db.json");ce__default.default.existsSync(Le)||ce__default.default.writeFileSync(Le,"{}");Ke={};try{Ke=ve(Le);}catch(r){Ke={};}qe=Ke||{},xt=r=>{ce__default.default.writeFileSync(Le,JSON.stringify(r));},Tt=(r,o)=>{qe[r]=o,xt(qe);},Et=r=>qe[r],Ve=()=>{qe={},xt(qe);};});var wt,At,Ot,Ze=de(()=>{wt={},At=(r,o)=>{wt[r]=o;},Ot=r=>wt[r]||[];});var Ce,Xe,vt,xe,Pt,or,en,St=de(()=>{Ne();Ye();Ze();Ce=process.cwd(),Xe={},vt=nr__default.default.create({timeout:6e4});tr__default.default(vt,{retries:20,retryCondition:r=>r.code==="ECONNABORTED"||r.message.includes("Network Error"),retryDelay:r=>r*1e3});xe=(r,o,p)=>se(null,null,function*(){var t,f,d,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:(d=p==null?void 0:p.customCode)==null?void 0:d.markerText,includeInstructions:(y=p==null?void 0:p.customCode)==null?void 0:y.includeInstructions,commentPrefix:n});yield ce__default.default.promises.writeFile(r,u);}),Pt=(r,o,p,e)=>se(null,null,function*(){let i=yield or(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}`),Pt(r,o,p,e);},e))),i}),or=(...r)=>se(null,null,function*(){var ln,pn,un,cn,mn,dn,fn,yn,gn,hn;let[o,p,e]=r,i=s=>s.startsWith("http://")||s.startsWith("https://"),n;try{if(i(o))n=(yield vt.get(o)).data;else {let s=V__default.default.isAbsolute(o)?o:V__default.default.join(Ce,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 rr__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),d=(e==null?void 0:e.language)==="python",y=d?"py":"ts",A={},F=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:((pn=(ln=t==null?void 0:t.servers)==null?void 0:ln[(e==null?void 0:e.server)||0])==null?void 0:pn.url)||"",O=typeof((cn=(un=e==null?void 0:e.types)==null?void 0:un.name)==null?void 0:cn.prefix)=="string"?e==null?void 0:e.types.name.prefix:"I",U=typeof((dn=(mn=e==null?void 0:e.endpoints)==null?void 0:mn.name)==null?void 0:dn.prefix)=="string"?e==null?void 0:e.endpoints.name.prefix:"",L=(s,a)=>{var b,c;let C=exports.capitalize(s);if((c=(b=e==null?void 0:e.types)==null?void 0:b.name)!=null&&c.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,c,g=0)=>{let m="",$="",h="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let x=(a.$ref||"").split("/");x.shift();x[0]==="definitions";[...x].pop();let k=Fe__default.default(s,x,null);if(k){k!=null&&k.name&&(m=k.name),$=x[x.length-1];let J=L($);J.includes(".")&&(J=J.split(".").map((Ie,he)=>he===0?Ie:`["${Ie}"]`).join("")),h+=`${c!=null&&c.noSharedImport?"":"Shared."}${J}`;}}else h+="";else if(a.anyOf)h+=`(${a.anyOf.map(x=>R(s,x,"",b,ie(X({},c),{useComponentName:false}))).filter(x=>!!x).join("|")})`;else if(a.oneOf)h+=`(${a.oneOf.map(x=>R(s,x,"",b,ie(X({},c),{useComponentName:false}))).filter(x=>!!x).join("|")})`;else if(a.allOf)h+=`(${a.allOf.map(x=>R(s,x,"",b,ie(X({},c),{useComponentName:false}))).filter(x=>!!x).join("&")})`;else if(a.items)h+=`${R(s,a.items,"",false,ie(X({},c),{useComponentName:false}))}[]`;else if(a.properties){let x=Object.keys(a.properties),v=a.required||[],S="";x.forEach(N=>{var J,Ae,Ie,he,$e,be;let k="";!((Ae=(J=e==null?void 0:e.types)==null?void 0:J.doc)!=null&&Ae.disable)&&((he=(Ie=a.properties)==null?void 0:Ie[N])!=null&&he.description)&&(k=" * "+(($e=a.properties)==null?void 0:$e[N].description.split(`
|
|
25
25
|
`).filter(Qe=>Qe.trim()!=="").join(`
|
|
26
|
-
*${" ".repeat(1)}`))),
|
|
26
|
+
*${" ".repeat(1)}`))),S+=(k?`/**
|
|
27
27
|
${k}
|
|
28
28
|
*/
|
|
29
|
-
`:"")+`${R(s,(
|
|
30
|
-
${" ".repeat(g)}${
|
|
31
|
-
`:""}`:""},B=(s,a,C,b,
|
|
32
|
-
${
|
|
33
|
-
`);return a!=null&&a.nullable&&!z&&(h.startsWith("Union[")?l=h.replace("Union[","Union[None, "):l=`Optional[${h}]`),h.length>0?`${Q}${l}${
|
|
29
|
+
`:"")+`${R(s,(be=a.properties)==null?void 0:be[N],N,v.includes(N),c,g+1)}`;}),S.length>0?h+=`{
|
|
30
|
+
${" ".repeat(g)}${S}${" ".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),S=v.length>1||v.length>0&&x;S&&(h+="("),v.forEach((N,k)=>{h+=`${k===0?"":"|"}${N}`;}),x&&(h+=`${v.length>0?"|":""}null`),S&&(h+=")");}else if(a.type){let x=v=>{let S="";if(typeof v=="string")["string","integer","number","array","boolean","null"].includes(v)?["integer","number"].includes(v)?S+="number":v==="array"?S+="any[]":S+=v:v==="object"&&(a.additionalProperties?S+=`{[k: string]: ${R(s,a.additionalProperties,"",true,ie(X({},c),{useComponentName:false}))||"any"}}`:S+="{[k: string]: any}");else if(Array.isArray(v)){let N=v.map(k=>x(k));N.filter(k=>k!==""),N.length>1&&(S+="("+N.join("|")+")");}else S+="any";return S};h=x(a.type);}else h+="any";else h="string";let j=m||C;c!=null&&c.useComponentName&&!j&&(j=$);let Q=j?` "${j}"${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}${j?`;
|
|
31
|
+
`:""}`:""},B=(s,a,C,b,c,g=0)=>{let m="",$="",h="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let x=(a.$ref||"").split("/");x.shift();x[0]==="definitions";[...x].pop();let k=Fe__default.default(s,x,null);if(k){k!=null&&k.name&&(m=k.name),$=x[x.length-1];let J=L($);J.includes(".")&&(J=J.split(".").join("_")),h+=`${c!=null&&c.noSharedImport?"":"Shared."}${J}`;}}else h+="Any";else if(a.anyOf)h+=`Union[${a.anyOf.map(x=>B(s,x,"",b,ie(X({},c),{useComponentName:false}))).filter(x=>!!x).join(", ")}]`;else if(a.oneOf)h+=`Union[${a.oneOf.map(x=>B(s,x,"",b,ie(X({},c),{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,ie(X({},c),{useComponentName:false}))}]`;else if(a.properties){let x=Object.keys(a.properties),v=a.required||[],S="";x.forEach(N=>{var k;S+=B(s,(k=a.properties)==null?void 0:k[N],N,v.includes(N),c,g+1);}),S.length>0?C?h+="Dict[str, Any]":h+=`
|
|
32
|
+
${S}`: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 S="";if(typeof v=="string")["integer","number"].includes(v)?S+=v==="number"?"float":"int":v==="string"?S+="str":v==="boolean"?S+="bool":v==="array"?S+="List[Any]":v==="object"?S+="Dict[str, Any]":v==="null"?S+="None":S+="Any";else if(Array.isArray(v)){let N=v.map(k=>x(k)).filter(k=>k!=="");N.length>1?S+=`Union[${N.join(", ")}]`:S+=N[0]||"Any";}else S+="Any";return S};h=x(a.type);}else h+="Any";else h="str";let j=m||C;c!=null&&c.useComponentName&&!j&&(j=$);let Q="";j&&(Q=` ${j.replace(/[^a-zA-Z0-9_]/g,"_")}: `);let l=h,z=!j&&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}${j?`
|
|
34
34
|
`:""}`:""},P=s=>{let a=(s||"").replace(/^\n+/,"").trimEnd();if(!a)return ` pass
|
|
35
35
|
`;let C=a.split(`
|
|
36
|
-
`),b=/^[A-Za-z_][A-Za-z0-9_]*\s*:\s*.+$/,
|
|
36
|
+
`),b=/^[A-Za-z_][A-Za-z0-9_]*\s*:\s*.+$/,c=C.map($=>$.trim()).filter($=>!!$).filter($=>!$.startsWith('"""')&&!$.endsWith('"""'));return !c.some($=>b.test($))&&c.length===1?` value: ${c[0]}
|
|
37
37
|
`:`${a.split(`
|
|
38
38
|
`).map($=>$.trim()?/^\s/.test($)?$:` ${$}`:$).join(`
|
|
39
39
|
`)}
|
|
40
|
-
`},
|
|
40
|
+
`},E=s=>{let a=(s||"").replace(/^\n+/,"").trimEnd();if(!a)return null;let C=a.split(`
|
|
41
|
+
`),b=/^[A-Za-z_][A-Za-z0-9_]*\s*:\s*.+$/,c=C.map(m=>m.trim()).filter(m=>!!m).filter(m=>!m.startsWith('"""')&&!m.endsWith('"""'));return !c.some(m=>b.test(m))&&c.length===1?c[0]:null},ee=(s,a,C)=>{let b=E(a);return (C==null?void 0:C.inheritSingleTypeExpression)===true&&!!b?`@dataclass
|
|
42
|
+
class ${s}(${b}):
|
|
43
|
+
pass
|
|
44
|
+
`:`@dataclass
|
|
41
45
|
class ${s}:
|
|
42
|
-
${P(a)}
|
|
43
|
-
`:""},
|
|
46
|
+
${P(a)}`},M=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(", ")}
|
|
47
|
+
`:""},W=(s,a=72)=>{let C=(s||"").replace(/\s+/g," ").trim().split(" ");if(!C[0])return [];let b=[],c="";return C.forEach(g=>{let m=c?`${c} ${g}`:g;m.length>a&&c?(b.push(c),c=g):c=m;}),c&&b.push(c),b},ye=s=>{var c,g;if(!s||(g=(c=e==null?void 0:e.types)==null?void 0:c.doc)!=null&&g.disable)return "";let a=(s.description||"").trim(),C=Object.entries(s.properties||{}).map(([m,$])=>({name:m,desc:(($==null?void 0:$.description)||"").trim()})).filter(m=>m.desc.length>0);if(!a&&C.length===0)return "";let b=[' """'];return a&&W(a).forEach(m=>b.push(` ${m}`)),C.length>0&&(a&&b.push(""),b.push(" Attributes:"),C.forEach(m=>{let $=W(m.desc);$.length&&(b.push(` ${m.name}: ${$[0]}`),$.slice(1).forEach(h=>b.push(` ${h}`)));})),b.push(' """'),`${b.join(`
|
|
44
48
|
`)}
|
|
45
|
-
`},
|
|
46
|
-
`);$.length>0?
|
|
49
|
+
`},oe=(s,a)=>{let c="";if(a)if(a.$ref)if(a.$ref[0]==="#"){let g=(a.$ref||"").split("/");g.shift();let $=Fe__default.default(s,g,null);$&&($!=null&&$.name&&($.name),g[g.length-1],c+=oe(s,$));}else c+="";else if(a.anyOf)c+=oe(s,a.anyOf[0]);else if(a.oneOf)c+=oe(s,a.oneOf[0]);else if(a.allOf)c+=`{${a.allOf.map(g=>`...(${oe(s,g)})`).join(",")}}`;else if(a.items)c+=`[${oe(s,a.items)}]`;else if(a.properties){let $=Object.keys(a.properties).map(h=>{var j;return ` "${h}": ${oe(s,(j=a.properties)==null?void 0:j[h])}`}).join(`,
|
|
50
|
+
`);$.length>0?c+=`{
|
|
47
51
|
${$}
|
|
48
|
-
}`:
|
|
49
|
-
`).filter(
|
|
50
|
-
*${" ".repeat(1)}`)),l=
|
|
51
|
-
class ${
|
|
52
|
+
}`:c+="{}";}else if(a.enum&&a.enum.length>0)a.enum.length>1&&(c+=a.enum[0]);else if(a.type)if(a.example)c+=JSON.stringify(a.example);else {let g=m=>{let $="";if(typeof m=="string")["string","integer","number","array","boolean","null"].includes(m)?["integer","number"].includes(m)?$+="123":m==="array"?$+="[]":m==="boolean"?$+="true":m==="null"?$+="null":$+=`"${m}"`:m==="object"&&($+="{}");else if(Array.isArray(m)){let h=m.map(j=>g(j));h.filter(j=>j!==""),h.length>1&&($+=h.join("|"));}else $+="any";return $};c=g(a.type);}else c+="any";else c="string";return c},ae=Et(p);if(er__default.default(ae,t))return;Tt(p,t);let ue="",ge="",le={},ke=[],on=(s,a)=>{let C={},b={};Object.keys(s).forEach(g=>{var h;let m=(h=s[g])!=null&&h.schema?s[g].schema:s[g],$=d?`${B(t,m,"",true,{noSharedImport:true,useComponentName:false})}`:`${R(t,m,"",true,{noSharedImport:true,useComponentName:false})}`;if($){let j=g.split("."),Q=C,l=b;for(let z=0;z<j.length;z++){let x=j[z];z<j.length-1?(x in Q||(Q[x]={},l[x]={}),Q=Q[x],l=l[x]):(Q[x]=$,l[x]=m);}}}),Object.keys(C).forEach(g=>{var z,x,v,S,N;let m=L(g),$=C[g],h=s[g],j=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(`
|
|
53
|
+
`).filter(J=>J.trim()!=="").join(`
|
|
54
|
+
*${" ".repeat(1)}`)),l=ye(j),d?le[g]=((S=le[g])!=null?S:"")+`@dataclass
|
|
55
|
+
class ${m}:
|
|
52
56
|
`+(l||"")+P(typeof $=="string"?$:"")+`
|
|
53
|
-
`:
|
|
57
|
+
`:le[g]=((N=le[g])!=null?N:"")+(Q?`/**
|
|
54
58
|
${Q}
|
|
55
59
|
*/
|
|
56
|
-
`:"")+"export type "+
|
|
57
|
-
`;});};t.definitions&&
|
|
60
|
+
`:"")+"export type "+m+" = "+(typeof $=="string"?$:exports.JSONStringify($))+`;
|
|
61
|
+
`;});};t.definitions&&on(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];on(a);}});let an=s=>{let a="";if(s.content){let C=Object.keys(s.content);C[0]&&s.content[C[0]].schema&&(a+=d?`${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 c=b.join("."),g=Fe__default.default(t,c);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=[],m=false;if(b.forEach($=>{$.enum&&$.enum.forEach(h=>{h===null?m=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 m&&(h+=".nullable()"),h}else if(a==="yup"){let h=`yup.mixed().oneOf([${$}])`;return m&&(h+=".nullable()"),h}else return m?`Joi.valid(${$}, null)`:`Joi.valid(${$})`}else if(m)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(m=>me(m,a,C+1)).join(", ")})`}if(s.allOf)if(a==="zod"){let b=s.allOf.map(g=>me(g,a,C+1)),c=b[0];for(let g=1;g<b.length;g++)c=`${c}.merge(${b[g]})`;return c}else return me(s.allOf[0],a,C+1);if(s.items){let b=me(s.items,a,C+1);if(a==="zod"){let c=`z.array(${b})`;return s.minItems!==void 0&&(c+=`.min(${s.minItems})`),s.maxItems!==void 0&&(c+=`.max(${s.maxItems})`),c}else if(a==="yup"){let c=`yup.array().of(${b})`;return s.minItems!==void 0&&(c+=`.min(${s.minItems})`),s.maxItems!==void 0&&(c+=`.max(${s.maxItems})`),c}else {let c=`Joi.array().items(${b})`;return s.minItems!==void 0&&(c+=`.min(${s.minItems})`),s.maxItems!==void 0&&(c+=`.max(${s.maxItems})`),c}}if(s.properties){let b=s.required||[],c=" ".repeat(C+1),g=Object.entries(s.properties).map(([m,$])=>{let h=b.includes(m),j=me($,a,C+1);return h||(j+=".optional()"),`${c}${m}: ${j}`}).join(`,
|
|
58
62
|
`);return a==="zod"?`z.object({
|
|
59
63
|
${g}
|
|
60
64
|
${" ".repeat(C)}})`:a==="yup"?`yup.object({
|
|
61
65
|
${g}
|
|
62
66
|
${" ".repeat(C)}})`:`Joi.object({
|
|
63
67
|
${g}
|
|
64
|
-
${" ".repeat(C)}})`}if(s.enum&&s.enum.length>0){let b=[],
|
|
65
|
-
${z}}`;let w=`${g.name}Query`;if((
|
|
68
|
+
${" ".repeat(C)}})`}if(s.enum&&s.enum.length>0){let b=[],c=false;s.enum.forEach(m=>{m===null?c=true:b.includes(m)||b.push(m);});let g=b.map(m=>JSON.stringify(m)).join(", ");if(a==="zod"){let m=`z.enum([${g}])`;return c&&(m+=".nullable()"),m}else if(a==="yup"){let m=`yup.mixed().oneOf([${g}])`;return c&&(m+=".nullable()"),m}else {let m=`Joi.valid(${g})`;return c&&(m+=".allow(null)"),m}}if(s.type){let c=(g=>{switch(g){case "string":if(a==="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(a==="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(a==="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(a==="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 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"?c+=".nullable()":s.nullable&&a==="joi"&&(c+=".allow(null)"),c}return a==="joi"?"Joi.any()":a==="yup"?"yup.mixed()":"z.any()"},Bt=s=>{var a,C,b,c,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 m=s;return (g=(c=(b=e==null?void 0:e.endpoints)==null?void 0:b.value)==null?void 0:c.replaceWords)==null||g.forEach(($,h)=>{let j=new RegExp($.replace,"g");m=m.replace(j,$.with||"");}),m}else return s},zt=(s,a,C=[])=>{var g,m;let b=(g=e==null?void 0:e.endpoints)==null?void 0:g.exclude,c=(m=e==null?void 0:e.endpoints)==null?void 0:m.include;if(c){let $=c.tags&&c.tags.length>0?C.some(j=>c.tags.includes(j)):true,h=c.endpoints&&c.endpoints.length>0?c.endpoints.some(j=>{let Q=!j.method||j.method.toLowerCase()===a.toLowerCase();return j.path?s===j.path&&Q:j.regex?new RegExp(j.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 j=!h.method||h.method.toLowerCase()===a.toLowerCase();return h.path?s===h.path&&j:h.regex?new RegExp(h.regex).test(s)&&j:false})))};if(Object.keys(t.paths||{}).forEach(s=>{let a=t.paths[s];Object.keys(a).forEach(b=>{var bn,Cn,In,xn,Tn,En,wn,An,On,vn,Pn,Sn,jn,qn,Rn,kn,Un,Nn,Ln,Fn,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,ft;let c=b,g=exports.getEndpointDetails(s,c),m=((bn=a[c])==null?void 0:bn.tags)||[];if(zt(s,c,m))return;let $=a[c],h=F({method:c,path:s,summary:$==null?void 0:$.summary,operationId:$==null?void 0:$.operationId,tags:m,parameters:$==null?void 0:$.parameters,requestBody:$==null?void 0:$.requestBody,responses:$==null?void 0:$.responses});A[h]||(A[h]={endpoints:"",types:"",validation:""});let j=((In=(Cn=e==null?void 0:e.endpoints)==null?void 0:Cn.value)!=null&&In.includeServer?q:"")+g.pathParts.map(T=>(T[0]==="{"&&T[T.length-1]==="}"?T=`\${${T.replace(/{/,"").replace(/}/,"")}}`:T[0]==="<"&&T[T.length-1]===">"?T=`\${${T.replace(/</,"").replace(/>/,"")}}`:T[0]===":"&&(T=`\${${T.replace(/:/,"")}}`),T)).join("/"),Q=`"${j}"`;g.variables.length>0&&(Q=`(${g.variables.map(I=>`${I}:string`).join(",")})=> \`${j}\``),Q=Bt(Q);let l=a[c],z="",x;if(l!=null&&l.parameters&&((l==null?void 0:l.parameters).forEach((I,w)=>{(I.$ref||I.in==="query"&&I.name)&&(z+=d?`${B(t,I.$ref?I:I.schema,I.name||"",I.required)}`:`${R(t,I.$ref?I:I.schema,I.name||"",I.required)}`);}),z)){z=d?z:`{
|
|
69
|
+
${z}}`;let w=`${g.name}Query`;if((Tn=(xn=e==null?void 0:e.types)==null?void 0:xn.name)!=null&&Tn.useOperationId&&(l!=null&&l.operationId)&&(w=`${l.operationId}Query`),w=exports.capitalize(`${O}${w}`),(wn=(En=e==null?void 0:e.types)==null?void 0:En.name)!=null&&wn.format){let _=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"query",method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},w);_&&(w=`${O}${_}`);}x=w;let G=d?`${ee(w,z)}
|
|
66
70
|
`:`export type ${w} = ${z};
|
|
67
|
-
`;e!=null&&e.folderSplit?A[h].types+=G:
|
|
68
|
-
`),H=`export const ${Z} = ${
|
|
71
|
+
`;e!=null&&e.folderSplit?A[h].types+=G:ge+=G;}if(((An=e==null?void 0:e.validations)==null?void 0:An.disable)!==true&&((vn=(On=e==null?void 0:e.validations)==null?void 0:On.generate)==null?void 0:vn.query)!==false&&(l!=null&&l.parameters)){let T=((Pn=e.validations)==null?void 0:Pn.library)||"zod",w=l.parameters.filter(G=>!G.$ref&&G.in==="query"&&G.name);if(w.length>0){let G=((Sn=e==null?void 0:e.validations)==null?void 0:Sn.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((Rn=(qn=e==null?void 0:e.validations)==null?void 0:qn.name)==null?void 0:Rn.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}`),(Un=(kn=e==null?void 0:e.validations)==null?void 0:kn.name)!=null&&Un.format){let K=e.validations.name.format({code:"",type:"query",method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Z);K&&(Z=`${_}${K}${Y}`);}else if((Ln=(Nn=e==null?void 0:e.types)==null?void 0:Nn.name)!=null&&Ln.format){let K=e.types.name.format("endpoint",{code:"",type:"query",method:c,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,T):T==="joi"?"Joi.string()":T==="yup"?"yup.string()":"z.string()",Jt=K.required?"":".optional()";return ` ${K.name}: ${Ue}${Jt}`}).join(`,
|
|
72
|
+
`),H=`export const ${Z} = ${T==="joi"?"Joi.object":T==="yup"?"yup.object":"z.object"}({
|
|
69
73
|
${D}
|
|
70
74
|
});
|
|
71
75
|
|
|
72
|
-
`;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=H;}}let v=l==null?void 0:l.requestBody,
|
|
73
|
-
`:`export type ${
|
|
74
|
-
`;e!=null&&e.folderSplit?A[h].types+=I:
|
|
76
|
+
`;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=H;}}let v=l==null?void 0:l.requestBody,S="",N;if(v&&(S=an(v),S)){let T=`${g.name}DTO`;if((Gn=(Fn=e==null?void 0:e.types)==null?void 0:Fn.name)!=null&&Gn.useOperationId&&(l!=null&&l.operationId)&&(T=`${l.operationId}DTO`),T=exports.capitalize(`${O}${T}`),(Qn=(Mn=e==null?void 0:e.types)==null?void 0:Mn.name)!=null&&Qn.format){let w=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"dto",method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},T);w&&(T=`${O}${w}`);}N=T;let I=d?`${ee(T,S,{inheritSingleTypeExpression:true})}
|
|
77
|
+
`:`export type ${T} = ${S};
|
|
78
|
+
`;e!=null&&e.folderSplit?A[h].types+=I:ge+=I;}if(((Bn=e==null?void 0:e.validations)==null?void 0:Bn.disable)!==true&&((Dn=(zn=e==null?void 0:e.validations)==null?void 0:zn.generate)==null?void 0:Dn.dto)!==false&&v){let T=((Wn=e.validations)==null?void 0:Wn.library)||"zod";if(v.content){let I=Object.keys(v.content);if(I[0]&&v.content[I[0]].schema){let w=((Jn=e==null?void 0:e.validations)==null?void 0:Jn.name)||((_n=e==null?void 0:e.types)==null?void 0:_n.name),G=typeof(w==null?void 0:w.prefix)=="string"?w.prefix:"I",_=typeof((Kn=(Hn=e==null?void 0:e.validations)==null?void 0:Hn.name)==null?void 0:Kn.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}${_}`),(Yn=(Vn=e==null?void 0:e.validations)==null?void 0:Vn.name)!=null&&Yn.format){let re=e.validations.name.format({code:"",type:"dto",method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Y);re&&(Y=`${G}${re}${_}`);}else if((Xn=(Zn=e==null?void 0:e.types)==null?void 0:Zn.name)!=null&&Xn.format){let re=e.types.name.format("endpoint",{code:"",type:"dto",method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},Y);re&&(Y=`${G}${re}${_}`);}let Z=me(v.content[I[0]].schema,T),D=`export const ${Y} = ${Z};
|
|
75
79
|
|
|
76
|
-
`;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=D;}}}let k={},
|
|
77
|
-
`:`export type ${D} = ${
|
|
78
|
-
`;e!=null&&e.folderSplit?A[h].types+=
|
|
80
|
+
`;e!=null&&e.folderSplit||A[h]||(A[h]={endpoints:"",types:"",validation:""}),A[h].validation+=D;}}}let k={},J="",Ae="";if(l!=null&&l.responses){let T=l==null?void 0:l.responses;Object.keys(T).forEach(w=>{var G,_,Y,Z;if(J=an(T[w]),k[w]=J,J){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:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},D);K&&(D=`${O}${K}`);}let re=d?`${ee(D,J,{inheritSingleTypeExpression:true})}
|
|
81
|
+
`:`export type ${D} = ${J};
|
|
82
|
+
`;e!=null&&e.folderSplit?A[h].types+=re:ge+=re,k[w]=D;let H=parseInt(w);H>=200&&H<300&&(Ae=D);}});}let Ie=T=>!T||!T.length?"":T.map(I=>Object.entries(I).map(([G,_])=>{let Y=G,Z="";return Array.isArray(_)&&_.length&&(Z=`
|
|
79
83
|
- Scopes: [\`${_.join("`, `")}\`]`,Y=`**${Y}**`),`
|
|
80
84
|
- ${Y}${Z}`}).join("")).join(`
|
|
81
|
-
`),
|
|
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:
|
|
85
|
+
`),he=l!=null&&l.security?Ie(l.security):"",$e="";if(!((nt=(et=e==null?void 0:e.endpoints)==null?void 0:et.doc)!=null&&nt.disable)){let T="";if((rt=(tt=e==null?void 0:e.endpoints)==null?void 0:tt.doc)!=null&&rt.showCurl||d){let I={},w="",G="";(st=l.requestBody)!=null&&st.content&&Object.keys(l.requestBody.content).forEach(re=>{let H=l.requestBody.content[re].schema;if(H){Array.isArray(I["Content-type"])?I["Content-type"].push(re):I["Content-type"]=[re];let K=oe(t,H);K&&(w=K);}}),l!=null&&l.security&&l.security.forEach(D=>{Object.keys(D).forEach(re=>{var K,Ue;let H=(Ue=(K=t.components)==null?void 0:K.securitySchemes)==null?void 0:Ue[re];H&&(H.type==="mutualTLS"?G+=`
|
|
86
|
+
--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:c.toUpperCase(),headers:_,body:w})||`curl ${q+s} -X ${c.toUpperCase()}`}${G}`;T=d?`
|
|
83
87
|
\`\`\`bash
|
|
84
88
|
${Z}
|
|
85
89
|
\`\`\``:`
|
|
86
90
|
\`\`\`bash
|
|
87
91
|
${Z}
|
|
88
|
-
\`\`\``;}if(
|
|
89
|
-
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),
|
|
90
|
-
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),
|
|
91
|
-
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w.replace(/\*\*/g,""))))
|
|
92
|
+
\`\`\``;}if(d){let I=[];l!=null&&l.description&&I.push(`* ${l.description}`),I.push(`* **Method**: ${c.toUpperCase()}`),I.push(`* **Summary**: ${(l==null?void 0:l.summary)||""}`),I.push(`* **Tags**: [${((ot=l==null?void 0:l.tags)==null?void 0:ot.join(", "))||""}]`),I.push(`* **OperationId**: ${(l==null?void 0:l.operationId)||""}`),z&&(I.push("* **Query**:"),I.push("```python"),z.split(`
|
|
93
|
+
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),S&&(I.push("* **DTO**:"),I.push("```python"),S.split(`
|
|
94
|
+
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w)),I.push("```")),J&&(I.push("* **Response**:"),I.push("```python"),Object.entries(k).forEach(([w,G])=>{I.push(`${w}: ${String(G).replace(/\n/g," ")}`);}),I.push("```")),he&&(I.push("* **Security**:"),he.split(`
|
|
95
|
+
`).filter(w=>w.trim().length>0).forEach(w=>I.push(w.replace(/\*\*/g,"")))),$e=`"""
|
|
92
96
|
${I.join(`
|
|
93
|
-
`)}${
|
|
97
|
+
`)}${T}
|
|
94
98
|
"""
|
|
95
|
-
`;}else
|
|
99
|
+
`;}else $e=`/**${l!=null&&l.description?`
|
|
96
100
|
* ${l==null?void 0:l.description} `:""}
|
|
97
|
-
* **Method**: \`${
|
|
101
|
+
* **Method**: \`${c.toUpperCase()}\`
|
|
98
102
|
* **Summary**: ${(l==null?void 0:l.summary)||""}
|
|
99
|
-
* **Tags**: [${((
|
|
103
|
+
* **Tags**: [${((it=l==null?void 0:l.tags)==null?void 0:it.join(", "))||""}]
|
|
100
104
|
* **OperationId**: ${(l==null?void 0:l.operationId)||""} ${z?`
|
|
101
|
-
* **Query**: ${exports.renderTypeRefMD(z)} `:""}${
|
|
102
|
-
* **DTO**: ${exports.renderTypeRefMD(
|
|
105
|
+
* **Query**: ${exports.renderTypeRefMD(z)} `:""}${S?`
|
|
106
|
+
* **DTO**: ${exports.renderTypeRefMD(S)} `:""}${J?`
|
|
103
107
|
* **Response**: ${Object.entries(k).map(([I,w])=>`
|
|
104
|
-
- **${I}**: ${exports.renderTypeRefMD(w,2)} `).join("")}`:""}${
|
|
105
|
-
* **Security**: ${
|
|
106
|
-
`:""}${
|
|
108
|
+
- **${I}**: ${exports.renderTypeRefMD(w,2)} `).join("")}`:""}${he?`
|
|
109
|
+
* **Security**: ${he}
|
|
110
|
+
`:""}${T}
|
|
107
111
|
*/
|
|
108
|
-
`;}let
|
|
109
|
-
method="${
|
|
112
|
+
`;}let be=(lt=(at=e==null?void 0:e.endpoints)==null?void 0:at.name)!=null&<.useOperationId&&((pt=l==null?void 0:l.operationId)==null?void 0:pt.length)>0?l.operationId:`${g.name}`;if((ct=(ut=e==null?void 0:e.endpoints)==null?void 0:ut.name)!=null&&ct.format){let T=e==null?void 0:e.endpoints.name.format({method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId},be);T&&(be=T);}let Qe={method:`"${c}"`,operationId:`"${l==null?void 0:l.operationId}"`,url:Q,tags:(l==null?void 0:l.tags)||[]},Dt=`Endpoint(
|
|
113
|
+
method="${c}",
|
|
110
114
|
operationId="${(l==null?void 0:l.operationId)||""}",
|
|
111
115
|
url=${Q},
|
|
112
|
-
tags=[${((l==null?void 0:l.tags)||[]).map(
|
|
113
|
-
)
|
|
114
|
-
${
|
|
116
|
+
tags=[${((l==null?void 0:l.tags)||[]).map(T=>`"${T}"`).join(", ")}]
|
|
117
|
+
)`,$n=d?`${U}${be} = ${Dt}
|
|
118
|
+
${$e?`${$e}`:""}
|
|
115
119
|
|
|
116
|
-
`:`${
|
|
117
|
-
`;e!=null&&e.folderSplit?A[h].endpoints
|
|
120
|
+
`:`${$e}export const ${U}${be} = ${((dt=(mt=e==null?void 0:e.endpoints)==null?void 0:mt.value)==null?void 0:dt.type)==="object"?exports.JSONStringify(Qe):Q};
|
|
121
|
+
`;e!=null&&e.folderSplit?A[h].endpoints+=$n:ue+=$n;let Wt={name:`${U}${be}`,method:c,path:s,summary:l==null?void 0:l.summary,operationId:l==null?void 0:l.operationId,tags:m,parameters:(ft=l==null?void 0:l.parameters)==null?void 0:ft.filter(T=>!T.$ref&&T.in&&T.name).map(T=>{var I;return {name:T.name,in:T.in,required:T.required,type:((I=T.schema)==null?void 0:I.type)||"string"}}),requestBody:v?{type:S,required:v.required}:void 0,responses:k?Object.entries(k).reduce((T,[I,w])=>(T[I]={type:w},T),{}):void 0,queryType:x,dtoType:N,responseType:Ae||void 0};ke.push(Wt);});}),e!=null&&e.folderSplit){let s=`from dataclasses import dataclass
|
|
118
122
|
from typing import List
|
|
119
123
|
|
|
120
124
|
@dataclass
|
|
@@ -126,15 +130,15 @@ class Endpoint:
|
|
|
126
130
|
|
|
127
131
|
|
|
128
132
|
|
|
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
|
|
133
|
+
`;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 c=V__default.default.join(Ce,b,`endpoints.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(c),{recursive:true}),yield xe(c,d?`${s}${C.endpoints}`:C.endpoints,e);}if(C.types){let c=V__default.default.join(Ce,b,`types.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(c),{recursive:true});let g=Object.values(le).length>0?d?`from __future__ import annotations
|
|
130
134
|
from dataclasses import dataclass
|
|
131
135
|
from . import shared as Shared
|
|
132
|
-
${
|
|
136
|
+
${M(C.types)}
|
|
133
137
|
${C.types}`:`import * as Shared from "../shared";
|
|
134
138
|
|
|
135
|
-
${C.types}`:C.types;yield
|
|
139
|
+
${C.types}`:C.types;yield xe(c,g,e);}if(((fn=e==null?void 0:e.validations)==null?void 0:fn.disable)!==true&&C.validation&&!d){let c=((yn=e.validations)==null?void 0:yn.library)||"zod",g=c==="joi"?'import Joi from "joi";':c==="yup"?'import * as yup from "yup";':'import { z } from "zod";',m=V__default.default.join(Ce,b,"validations.ts");yield ce__default.default.promises.mkdir(V__default.default.dirname(m),{recursive:true}),yield xe(m,`${g}
|
|
136
140
|
|
|
137
|
-
${C.validation}`,e);}}}if(
|
|
141
|
+
${C.validation}`,e);}}}if(ue.length>0){let s=`from dataclasses import dataclass
|
|
138
142
|
from typing import List
|
|
139
143
|
|
|
140
144
|
@dataclass
|
|
@@ -146,27 +150,27 @@ class Endpoint:
|
|
|
146
150
|
|
|
147
151
|
|
|
148
152
|
|
|
149
|
-
`,a=V__default.default.join(
|
|
150
|
-
`),a=V__default.default.join(
|
|
153
|
+
`,a=V__default.default.join(Ce,f,`endpoints.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(a),{recursive:true}),yield xe(a,d?`${s}${ue}`:ue,e);}if(Object.values(le).length>0){let s=Object.values(le).join(`
|
|
154
|
+
`),a=V__default.default.join(Ce,f,e!=null&&e.folderSplit?"":"types",`shared.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(a),{recursive:true}),yield xe(a,(d?`from __future__ import annotations
|
|
151
155
|
from dataclasses import dataclass
|
|
152
|
-
${
|
|
153
|
-
`:"")+s,e);}if(
|
|
156
|
+
${M(s)}
|
|
157
|
+
`:"")+s,e);}if(ge.length>0){let s=V__default.default.join(Ce,f,"types",`index.${y}`);yield ce__default.default.promises.mkdir(V__default.default.dirname(s),{recursive:true}),yield xe(s,(Object.values(le).length>0?d?`from __future__ import annotations
|
|
154
158
|
from dataclasses import dataclass
|
|
155
159
|
from . import shared as Shared
|
|
156
|
-
${
|
|
160
|
+
${M(ge)}
|
|
157
161
|
`:`import * as Shared from "./shared";
|
|
158
162
|
|
|
159
|
-
`:"")+
|
|
163
|
+
`:"")+ge,e);}if(((gn=e==null?void 0:e.validations)==null?void 0:gn.disable)!==true&&!(e!=null&&e.folderSplit)&&!d){let s=((hn=e.validations)==null?void 0:hn.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(Ce,f,"validations.ts");yield ce__default.default.promises.mkdir(V__default.default.dirname(b),{recursive:true}),yield xe(b,`${a}
|
|
160
164
|
|
|
161
|
-
${C}`,e);}}return
|
|
165
|
+
${C}`,e);}}return At(p,ke),console.info(`\u2705 Successfully synced ${p}`),{success:true}}),en=Pt;});var jt,nn,Te,tn,rn,sn,qt=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
166
|
`;n+=`// This file was auto-generated. Add custom code in the marked sections.
|
|
163
167
|
|
|
164
168
|
`,n+=`import type {
|
|
165
|
-
`;let u=new Set;return r.forEach(
|
|
169
|
+
`;let u=new Set;return r.forEach(d=>{d.queryType&&u.add(d.queryType),d.dtoType&&u.add(d.dtoType),d.responseType&&u.add(d.responseType);}),u.forEach(d=>{n+=` ${d},
|
|
166
170
|
`;}),n+=`} from '../types';
|
|
167
171
|
|
|
168
172
|
`,n+=`import {
|
|
169
|
-
`,r.forEach(
|
|
173
|
+
`,r.forEach(d=>{n+=` ${d.name} as ${d.name}_endpoint,
|
|
170
174
|
`;}),n+=`} from '../endpoints';
|
|
171
175
|
|
|
172
176
|
`,n+=`export interface ApiConfig {
|
|
@@ -219,30 +223,30 @@ ${C}`,e);}}return wt(p,we),console.info(`\u2705 Successfully synced ${p}`),{succ
|
|
|
219
223
|
`,n+=` return response.json();
|
|
220
224
|
`,n+=`}
|
|
221
225
|
|
|
222
|
-
`,r.forEach(
|
|
223
|
-
`,
|
|
224
|
-
`),n+=` * @method ${
|
|
225
|
-
`,n+=` * @path ${
|
|
226
|
-
`,
|
|
226
|
+
`,r.forEach(d=>{var B,P;let y=d.name,A=((B=d.parameters)==null?void 0:B.filter(E=>E.in==="path"))||[],F=((P=d.parameters)==null?void 0:P.filter(E=>E.in==="query"))||[],q=A.length>0,O=F.length>0,U=!!d.requestBody,L=d.responseType||"any";if(n+=`/**
|
|
227
|
+
`,d.summary&&(n+=` * ${d.summary}
|
|
228
|
+
`),n+=` * @method ${d.method.toUpperCase()}
|
|
229
|
+
`,n+=` * @path ${d.path}
|
|
230
|
+
`,d.tags&&d.tags.length>0&&(n+=` * @tags ${d.tags.join(", ")}
|
|
227
231
|
`),n+=` */
|
|
228
232
|
`,n+=`export async function ${y}(`,(q||O||U)&&(n+=`params: {
|
|
229
233
|
`,q&&(n+=` url: {
|
|
230
|
-
`,A.forEach(
|
|
234
|
+
`,A.forEach(E=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[E.type||"string"]||"any",W=E.required?"":"?";n+=` ${E.name}${W}: ${M};
|
|
231
235
|
`;}),n+=` };
|
|
232
|
-
`),O&&(n+=` query: ${
|
|
233
|
-
`),U&&(n+=` data: ${
|
|
236
|
+
`),O&&(n+=` query: ${d.queryType||"Record<string, any>"};
|
|
237
|
+
`),U&&(n+=` data: ${d.dtoType||"any"};
|
|
234
238
|
`),n+=`}
|
|
235
|
-
`),n+=`): Promise<${
|
|
236
|
-
`,q||O||U){let
|
|
237
|
-
`;}let R;if(q){let
|
|
238
|
-
`,
|
|
239
|
-
`:(n+=` if (query.${
|
|
240
|
-
`,n+=` queryParams.append('${
|
|
239
|
+
`),n+=`): Promise<${L}> {
|
|
240
|
+
`,q||O||U){let E=[];q&&E.push("url"),O&&E.push("query"),U&&E.push("data"),n+=` const { ${E.join(", ")} } = params;
|
|
241
|
+
`;}let R;if(q){let E=A.map(ee=>`url.${ee.name}`).join(", ");R=`${d.name}_endpoint(${E})`;}else R=`${d.name}_endpoint`;O?(n+=` const queryParams = new URLSearchParams();
|
|
242
|
+
`,F.forEach(E=>{E.required?n+=` queryParams.append('${E.name}', String(query.${E.name}));
|
|
243
|
+
`:(n+=` if (query.${E.name} !== undefined) {
|
|
244
|
+
`,n+=` queryParams.append('${E.name}', String(query.${E.name}));
|
|
241
245
|
`,n+=` }
|
|
242
246
|
`);}),n+=` const _url = \`\${${R}}?\${queryParams.toString()}\`;
|
|
243
247
|
`):n+=` const _url = ${R};
|
|
244
|
-
`,n+=` return fetchAPI<${
|
|
245
|
-
`,n+=` method: '${
|
|
248
|
+
`,n+=` return fetchAPI<${L}>(_url, {
|
|
249
|
+
`,n+=` method: '${d.method.toUpperCase()}',
|
|
246
250
|
`,U&&(n+=` body: JSON.stringify(data),
|
|
247
251
|
`),n+=` });
|
|
248
252
|
`,n+=`}
|
|
@@ -250,21 +254,21 @@ ${C}`,e);}}return wt(p,we),console.info(`\u2705 Successfully synced ${p}`),{succ
|
|
|
250
254
|
`;}),p&&(n+=`// Export all functions as a default object
|
|
251
255
|
`,n+=`const apiClient = {
|
|
252
256
|
`,n+=` setApiConfig,
|
|
253
|
-
`,r.forEach(
|
|
257
|
+
`,r.forEach(d=>{n+=` ${d.name},
|
|
254
258
|
`;}),n+=`};
|
|
255
259
|
|
|
256
260
|
`,n+=`export default apiClient;
|
|
257
|
-
`),n},
|
|
261
|
+
`),n},Te=(r,o,p=false)=>{var t,f;let e=o.baseURL||"";o.auth;let n=`// Generated Axios API Client
|
|
258
262
|
`;n+=`// This file was auto-generated. Add custom code in the marked sections.
|
|
259
263
|
|
|
260
264
|
`,n+=`import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
261
265
|
|
|
262
266
|
`,n+=`import type {
|
|
263
|
-
`;let u=new Set;return r.forEach(
|
|
267
|
+
`;let u=new Set;return r.forEach(d=>{d.queryType&&u.add(d.queryType),d.dtoType&&u.add(d.dtoType),d.responseType&&u.add(d.responseType);}),u.forEach(d=>{n+=` ${d},
|
|
264
268
|
`;}),n+=`} from '../types';
|
|
265
269
|
|
|
266
270
|
`,n+=`import {
|
|
267
|
-
`,r.forEach(
|
|
271
|
+
`,r.forEach(d=>{n+=` ${d.name},
|
|
268
272
|
`;}),n+=`} from '../endpoints';
|
|
269
273
|
|
|
270
274
|
`,n+=`export interface ApiConfig {
|
|
@@ -313,25 +317,25 @@ ${C}`,e);}}return wt(p,we),console.info(`\u2705 Successfully synced ${p}`),{succ
|
|
|
313
317
|
`,n+=` Object.assign(this.client.defaults, config);
|
|
314
318
|
`,n+=` }
|
|
315
319
|
|
|
316
|
-
`,r.forEach(
|
|
317
|
-
`,
|
|
318
|
-
`),n+=` * @method ${
|
|
319
|
-
`,n+=` * @path ${
|
|
320
|
-
`,
|
|
320
|
+
`,r.forEach(d=>{var R,B;let y=d.name,A=((R=d.parameters)==null?void 0:R.filter(P=>P.in==="path"))||[],F=((B=d.parameters)==null?void 0:B.filter(P=>P.in==="query"))||[],q=A.length>0,O=F.length>0,U=!!d.requestBody,L=d.responseType||"any";if(n+=` /**
|
|
321
|
+
`,d.summary&&(n+=` * ${d.summary}
|
|
322
|
+
`),n+=` * @method ${d.method.toUpperCase()}
|
|
323
|
+
`,n+=` * @path ${d.path}
|
|
324
|
+
`,d.tags&&d.tags.length>0&&(n+=` * @tags ${d.tags.join(", ")}
|
|
321
325
|
`),n+=` */
|
|
322
326
|
`,n+=` async ${y}(`,(q||O||U)&&(n+=`params: {
|
|
323
327
|
`,q&&(n+=` url: {
|
|
324
328
|
`,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
329
|
`;}),n+=` };
|
|
326
|
-
`),O&&(n+=` query: ${
|
|
327
|
-
`),U&&(n+=` data: ${
|
|
328
|
-
`),n+=" }"),n+=`): Promise<${
|
|
330
|
+
`),O&&(n+=` query: ${d.queryType||"Record<string, any>"};
|
|
331
|
+
`),U&&(n+=` data: ${d.dtoType||"any"};
|
|
332
|
+
`),n+=" }"),n+=`): Promise<${L}> {
|
|
329
333
|
`,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(
|
|
331
|
-
`;}else n+=` const _url = ${
|
|
334
|
+
`;}if(q){let P=A.map(E=>`url.${E.name}`).join(", ");n+=` const _url = ${d.name}(${P});
|
|
335
|
+
`;}else n+=` const _url = ${d.name};
|
|
332
336
|
`;n+=` const config: AxiosRequestConfig = {};
|
|
333
337
|
`,O&&(n+=` config.params = { ...query };
|
|
334
|
-
`),n+=` const response = await this.client.${
|
|
338
|
+
`),n+=` const response = await this.client.${d.method.toLowerCase()}<${L}>(
|
|
335
339
|
`,n+=` _url,
|
|
336
340
|
`,U?n+=` data,
|
|
337
341
|
config
|
|
@@ -345,7 +349,7 @@ ${C}`,e);}}return wt(p,we),console.info(`\u2705 Successfully synced ${p}`),{succ
|
|
|
345
349
|
`,p?n+=`export default ApiClient;
|
|
346
350
|
`:(n+=`export const apiClient = new ApiClient();
|
|
347
351
|
`,n+=`export default apiClient;
|
|
348
|
-
`),n},tn=(r,o)=>{var f,
|
|
352
|
+
`),n},tn=(r,o)=>{var f,d;let p=((f=o.reactQuery)==null?void 0:f.version)||5,e=((d=o.reactQuery)==null?void 0:d.mutations)!==false,i=!!(o.reactQuery&&o.reactQuery.infiniteQueries&&!o.reactQuery.infiniteQueries.disable),n=`// Generated React Query Hooks
|
|
349
353
|
`;n+=`// This file was auto-generated. Add custom code in the marked sections.
|
|
350
354
|
|
|
351
355
|
`;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';
|
|
@@ -362,16 +366,16 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
362
366
|
`;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
367
|
`;}),n+=`} from '../types';
|
|
364
368
|
|
|
365
|
-
`,r.forEach(y=>{var
|
|
369
|
+
`,r.forEach(y=>{var E,ee;let A=y.method.toUpperCase(),F=A==="GET",q=["POST","PUT","PATCH","DELETE"].includes(A),O=((E=y.parameters)==null?void 0:E.filter(M=>M.in==="path"))||[],U=((ee=y.parameters)==null?void 0:ee.filter(M=>M.in==="query"))||[],L=O.length>0,R=U.length>0,B=!!y.requestBody,P=y.responseType||"any";if(F){let M=U.map(ae=>ae.name.toLowerCase()),ye=(M.includes("page")||M.includes("cursor")||M.includes("cursorid")||M.includes("after")||M.includes("before"))&&i,oe=`use${y.name.charAt(0).toUpperCase()+y.name.slice(1)}`;if(n+=`/**
|
|
366
370
|
`,y.summary&&(n+=` * ${y.summary}
|
|
367
371
|
`),n+=` * @method ${A}
|
|
368
372
|
`,n+=` * @path ${y.path}
|
|
369
373
|
`,y.tags&&y.tags.length>0&&(n+=` * @tags ${y.tags.join(", ")}
|
|
370
374
|
`),n+=` */
|
|
371
|
-
`,
|
|
375
|
+
`,L||R?(n+=`export function ${oe}(
|
|
372
376
|
`,n+=` params: {
|
|
373
|
-
`,
|
|
374
|
-
`,O.forEach(
|
|
377
|
+
`,L&&(n+=` url: {
|
|
378
|
+
`,O.forEach(ae=>{let ge={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ae.type||"string"]||"any",le=ae.required?"":"?";n+=` ${ae.name}${le}: ${ge};
|
|
375
379
|
`;}),n+=` };
|
|
376
380
|
`),R&&(n+=` query: ${y.queryType||"Record<string, any>"};
|
|
377
381
|
`),n+=` },
|
|
@@ -384,7 +388,7 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
384
388
|
`,n+=` });
|
|
385
389
|
`,n+=`}
|
|
386
390
|
|
|
387
|
-
`):(n+=`export function ${
|
|
391
|
+
`):(n+=`export function ${oe}(
|
|
388
392
|
`,n+=` options?: Omit<UseQueryOptions<${P}>, 'queryKey' | 'queryFn'>
|
|
389
393
|
`,n+=`) {
|
|
390
394
|
`,n+=` return useQuery({
|
|
@@ -394,10 +398,10 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
394
398
|
`,n+=` });
|
|
395
399
|
`,n+=`}
|
|
396
400
|
|
|
397
|
-
`),
|
|
401
|
+
`),ye){let ae=`${oe}Infinite`;L||R?(n+=`export function ${ae}(
|
|
398
402
|
`,n+=` params: {
|
|
399
|
-
`,
|
|
400
|
-
`,O.forEach(
|
|
403
|
+
`,L&&(n+=` url: {
|
|
404
|
+
`,O.forEach(ue=>{let le={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ue.type||"string"]||"any",ke=ue.required?"":"?";n+=` ${ue.name}${ke}: ${le};
|
|
401
405
|
`;}),n+=` };
|
|
402
406
|
`),R&&(n+=` query: ${y.queryType||"Record<string, any>"};
|
|
403
407
|
`),n+=` },
|
|
@@ -411,7 +415,7 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
411
415
|
`,n+=` });
|
|
412
416
|
`,n+=`}
|
|
413
417
|
|
|
414
|
-
`):(n+=`export function ${
|
|
418
|
+
`):(n+=`export function ${ae}(
|
|
415
419
|
`,n+=` options?: Omit<UseInfiniteQueryOptions<${P}, Error, ${P}>, 'queryKey' | 'queryFn'>
|
|
416
420
|
`,n+=`) {
|
|
417
421
|
`,n+=` return useInfiniteQuery({
|
|
@@ -428,18 +432,18 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
428
432
|
`,n+=` * @path ${y.path}
|
|
429
433
|
`,y.tags&&y.tags.length>0&&(n+=` * @tags ${y.tags.join(", ")}
|
|
430
434
|
`),n+=` */
|
|
431
|
-
`;let
|
|
432
|
-
`,
|
|
433
|
-
`,O.forEach(
|
|
434
|
-
`;}),
|
|
435
|
-
`),R&&(
|
|
436
|
-
`),B&&(
|
|
437
|
-
`),
|
|
438
|
-
`,n+=` options?: Omit<UseMutationOptions<${P}, Error, ${
|
|
435
|
+
`;let W="void";(L||R||B)&&(W=`{
|
|
436
|
+
`,L&&(W+=` url: {
|
|
437
|
+
`,O.forEach(ye=>{let ae={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[ye.type||"string"]||"any",ue=ye.required?"":"?";W+=` ${ye.name}${ue}: ${ae};
|
|
438
|
+
`;}),W+=` };
|
|
439
|
+
`),R&&(W+=` query: ${y.queryType||"Record<string, any>"};
|
|
440
|
+
`),B&&(W+=` data: ${y.dtoType||"any"};
|
|
441
|
+
`),W+=" }"),n+=`export function ${M}(
|
|
442
|
+
`,n+=` options?: Omit<UseMutationOptions<${P}, Error, ${W}>, 'mutationFn'>
|
|
439
443
|
`,n+=`) {
|
|
440
444
|
`,n+=` return useMutation({
|
|
441
|
-
`,n+=" mutationFn: (",
|
|
442
|
-
`,n+=` return apiClient.${y.name}(${
|
|
445
|
+
`,n+=" mutationFn: (",W!=="void"&&(n+=`variables: ${W}`),n+=`) => {
|
|
446
|
+
`,n+=` return apiClient.${y.name}(${W!=="void"?"variables":""});
|
|
443
447
|
`,n+=` },
|
|
444
448
|
`,n+=` ...options,
|
|
445
449
|
`,n+=` });
|
|
@@ -647,7 +651,7 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
647
651
|
`;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},
|
|
648
652
|
`;}),e+=`} from '../types';
|
|
649
653
|
|
|
650
|
-
`,r.forEach(t=>{var R,B;let f=t.method.toUpperCase(),
|
|
654
|
+
`,r.forEach(t=>{var R,B;let f=t.method.toUpperCase(),d=f==="GET",y=["POST","PUT","PATCH","DELETE"].includes(f),A=((R=t.parameters)==null?void 0:R.filter(P=>P.in==="path"))||[],F=((B=t.parameters)==null?void 0:B.filter(P=>P.in==="query"))||[],q=A.length>0,O=F.length>0,U=!!t.requestBody,L=t.responseType||"any";if(d){let P=`use${t.name.charAt(0).toUpperCase()+t.name.slice(1)}`;e+=`/**
|
|
651
655
|
`,t.summary&&(e+=` * ${t.summary}
|
|
652
656
|
`),e+=` * @method ${f}
|
|
653
657
|
`,e+=` * @path ${t.path}
|
|
@@ -656,11 +660,11 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
656
660
|
`,q||O?(e+=`export function ${P}(
|
|
657
661
|
`,e+=` params: {
|
|
658
662
|
`,q&&(e+=` url: {
|
|
659
|
-
`,A.forEach(
|
|
663
|
+
`,A.forEach(E=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[E.type||"string"]||"any",W=E.required?"":"?";e+=` ${E.name}${W}: ${M};
|
|
660
664
|
`;}),e+=` };
|
|
661
665
|
`),O&&(e+=` query: ${t.queryType||"Record<string, any>"};
|
|
662
666
|
`),e+=` },
|
|
663
|
-
`,e+=` config?: SWRConfiguration<${
|
|
667
|
+
`,e+=` config?: SWRConfiguration<${L}>
|
|
664
668
|
`,e+=`) {
|
|
665
669
|
`,e+=` return useSWR(
|
|
666
670
|
`,e+=` ['${t.name}', params],
|
|
@@ -668,7 +672,7 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
668
672
|
`,e+=` config
|
|
669
673
|
`,e+=` );
|
|
670
674
|
`):(e+=`export function ${P}(
|
|
671
|
-
`,e+=` config?: SWRConfiguration<${
|
|
675
|
+
`,e+=` config?: SWRConfiguration<${L}>
|
|
672
676
|
`,e+=`) {
|
|
673
677
|
`,e+=` return useSWR(
|
|
674
678
|
`,e+=` '${t.name}',
|
|
@@ -683,19 +687,19 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
683
687
|
`,e+=` * @path ${t.path}
|
|
684
688
|
`,t.tags&&t.tags.length>0&&(e+=` * @tags ${t.tags.join(", ")}
|
|
685
689
|
`),e+=` */
|
|
686
|
-
`;let
|
|
687
|
-
`,q&&(
|
|
688
|
-
`,A.forEach(M=>{let
|
|
689
|
-
`;}),
|
|
690
|
-
`),O&&(
|
|
691
|
-
`),U&&(
|
|
692
|
-
`),
|
|
693
|
-
`,e+=` config?: SWRMutationConfiguration<${
|
|
690
|
+
`;let E="void",ee="void";(q||O||U)&&(E=`{
|
|
691
|
+
`,q&&(E+=` url: {
|
|
692
|
+
`,A.forEach(M=>{let ye={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[M.type||"string"]||"any",oe=M.required?"":"?";E+=` ${M.name}${oe}: ${ye};
|
|
693
|
+
`;}),E+=` };
|
|
694
|
+
`),O&&(E+=` query: ${t.queryType||"Record<string, any>"};
|
|
695
|
+
`),U&&(E+=` data: ${t.dtoType||"any"};
|
|
696
|
+
`),E+=" }",ee=`{ arg: ${E} }`),e+=`export function ${P}(
|
|
697
|
+
`,e+=` config?: SWRMutationConfiguration<${L}, Error, string, ${E}>
|
|
694
698
|
`,e+=`) {
|
|
695
699
|
`,e+=` return useSWRMutation(
|
|
696
700
|
`,e+=` '${t.name}',
|
|
697
|
-
`,e+=" async (_, ",
|
|
698
|
-
`,e+=` return apiClient.${t.name}(${
|
|
701
|
+
`,e+=" async (_, ",E!=="void"&&(e+=`{ arg }: ${ee}`),e+=`) => {
|
|
702
|
+
`,e+=` return apiClient.${t.name}(${E!=="void"?"arg":""});
|
|
699
703
|
`,e+=` },
|
|
700
704
|
`,e+=` config
|
|
701
705
|
`,e+=` );
|
|
@@ -729,22 +733,22 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
729
733
|
`),i+=` }),
|
|
730
734
|
`,i+=` tagTypes: [${[...new Set(r.flatMap(t=>t.tags||[]))].map(t=>`'${t}'`).join(", ")}],
|
|
731
735
|
`,i+=` endpoints: (builder) => ({
|
|
732
|
-
`,r.forEach((t,f)=>{var B,P;let
|
|
733
|
-
`,i+=` ${
|
|
736
|
+
`,r.forEach((t,f)=>{var B,P;let d=t.method.toUpperCase(),y=d==="GET",A=((B=t.parameters)==null?void 0:B.filter(E=>E.in==="path"))||[],F=((P=t.parameters)==null?void 0:P.filter(E=>E.in==="query"))||[],q=A.length>0,O=F.length>0,U=!!t.requestBody,L=t.responseType||"any";i+=` ${t.name}: builder.${y?"query":"mutation"}<
|
|
737
|
+
`,i+=` ${L},
|
|
734
738
|
`;let R="void";if((q||O||U)&&(R=`{
|
|
735
739
|
`,q&&(R+=` url: {
|
|
736
|
-
`,A.forEach(
|
|
740
|
+
`,A.forEach(E=>{let M={string:"string",number:"number",integer:"number",boolean:"boolean",array:"any[]",object:"any"}[E.type||"string"]||"any",W=E.required?"":"?";R+=` ${E.name}${W}: ${M};
|
|
737
741
|
`;}),R+=` };
|
|
738
742
|
`),O&&(R+=` query: ${t.queryType||"Record<string, any>"};
|
|
739
743
|
`),U&&(R+=` data: ${t.dtoType||"any"};
|
|
740
744
|
`),R+=" }"),i+=` ${R}
|
|
741
745
|
`,i+=` >({
|
|
742
746
|
`,i+=" query: (",R!=="void"&&(i+="arg"),i+=`) => {
|
|
743
|
-
`,q){let
|
|
747
|
+
`,q){let E=A.map(ee=>`arg.url.${ee.name}`).join(", ");i+=` const url = ${t.name}(${E});
|
|
744
748
|
`;}else i+=` const url = ${t.name};
|
|
745
749
|
`;i+=` return {
|
|
746
750
|
`,i+=` url,
|
|
747
|
-
`,i+=` method: '${
|
|
751
|
+
`,i+=` method: '${d}',
|
|
748
752
|
`,O&&(i+=` params: arg.query,
|
|
749
753
|
`),U&&(i+=` body: arg.data,
|
|
750
754
|
`),i+=` };
|
|
@@ -757,7 +761,7 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
757
761
|
|
|
758
762
|
`,i+=`export default ${p}Api;
|
|
759
763
|
|
|
760
|
-
`,i};});var
|
|
764
|
+
`,i};});var ir,Rt,te,ar,lr,kt=de(()=>{qt();Ne();ir=(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"},Rt=(r,o,p,e,i)=>se(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=ir(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 ar(O,o,p,U,u,q,true);}let F=V__default.default.join(i,e);yield lr(F,A,u,o);return}let d=V__default.default.join(i,e);switch(yield ce__default.default.promises.mkdir(d,{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(d,"clients.ts"),y,o);break;case "axios":let A=Te(n,p,false);A=A.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(d,"clients.ts"),A,o);break;case "react-query":let F=Te(n,p,false);F=F.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(d,"clients.ts"),F,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(d,"hooks.ts"),q,o);break;case "swr":let O=Te(n,p,false);O=O.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(d,"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(d,"hooks.ts"),U,o);break;case "rtk-query":let L=sn(n,p);L=L.replace("} from '../types';","} from './types';").replace("} from '../endpoints';","} from './endpoints';"),yield te(V__default.default.join(d,"api.ts"),L,o);break;default:throw new Error(`Unknown client type: ${u}`)}}),te=(r,o,p)=>se(null,null,function*(){var u,t,f,d;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:(d=p==null?void 0:p.customCode)==null?void 0:d.includeInstructions});yield ce__default.default.promises.writeFile(r,n);}),ar=(r,o,p,e,i,n,u=false)=>se(null,null,function*(){let t="",f="",d=u?"./types":"../types",y=u?"./endpoints":"../endpoints";switch(i){case "fetch":t=nn(r,p,u),t=t.replace("} from '../types';",`} from '${d}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o);break;case "axios":t=Te(r,p,u),t=t.replace("} from '../types';",`} from '${d}';`).replace("} from '../endpoints';",`} from '${y}';`),yield te(V__default.default.join(e,"client.ts"),t,o);break;case "react-query":if(t=Te(r,p,u),t=t.replace("} from '../types';",`} from '${d}';`).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 '${d}';`).replace("} from '../endpoints';",`} from '${y}';`),u){let F=n.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${F}Client as apiClient } from '../clients';`);}yield te(V__default.default.join(e,"hooks.ts"),f,o);break;case "swr":if(t=Te(r,p,u),t=t.replace("} from '../types';",`} from '${d}';`).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 '${d}';`).replace("} from '../endpoints';",`} from '${y}';`),u){let F=n.replace(/-/g,"_");f=f.replace("import apiClient from './client';",`import { ${F}Client as apiClient } from '../clients';`);}yield te(V__default.default.join(e,"hooks.ts"),f,o);break;case "rtk-query":let A=u?ie(X({},p),{rtkQuery:ie(X({},p.rtkQuery),{apiName:n.replace(/-/g,"_")})}):p;f=sn(r,A),f=f.replace("} from '../types';",`} from '${d}';`).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}`)}}),lr=(r,o,p,e)=>se(null,null,function*(){var n;if(p==="rtk-query"){let u=`// Generated RTK Query APIs
|
|
761
765
|
`;u+=`// This file was auto-generated.
|
|
762
766
|
`,u+=`// Aggregates all API slices for easy Redux store setup
|
|
763
767
|
|
|
@@ -851,15 +855,15 @@ import { useInfiniteQuery, UseInfiniteQueryOptions } from 'react-query';
|
|
|
851
855
|
`;}),u+=`
|
|
852
856
|
// Example usage:
|
|
853
857
|
`,u+=`// import { useGetSomething } from './hooks';
|
|
854
|
-
`,yield te(V__default.default.join(r,"hooks.ts"),u,e);}});});var
|
|
858
|
+
`,yield te(V__default.default.join(r,"hooks.ts"),u,e);}});});var Ut=de(()=>{});var Lt={};$t(Lt,{interactiveInit:()=>pr});function pr(){return se(this,null,function*(){try{let r=yield Nt__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 d=process.cwd();if(!t.startsWith(d))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";
|
|
855
859
|
|
|
856
860
|
const config: IConfig = ${JSON.stringify(o,null,2)};
|
|
857
861
|
|
|
858
862
|
export default config;
|
|
859
863
|
`):(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
|
|
864
|
+
`);let i=V__default.default.join(process.cwd(),e);if(ce__default.default.existsSync(i)&&!(yield Nt__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,`
|
|
861
865
|
# OpenAPI Sync generated files
|
|
862
866
|
${r.outputFolder}
|
|
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(()=>(
|
|
867
|
+
`)),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(()=>(Mt(),Gt));yield t({refetchInterval:r.refetchInterval}),r.generateClient&&r.clientType&&(yield f({type:r.clientType,apiName:r.apiName}));}catch(t){console.error(`
|
|
864
868
|
\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
|
|
869
|
+
\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 Gt={};$t(Gt,{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:()=>Zt,isJson:()=>exports.isJson,isYamlString:()=>exports.isYamlString,mergeCustomCode:()=>exports.mergeCustomCode,renderTypeRefMD:()=>exports.renderTypeRefMD,variableName:()=>exports.variableName,variableNameChar:()=>exports.variableNameChar,yamlStringToJson:()=>exports.yamlStringToJson});var Me,Qt;exports.Init=void 0;exports.GenerateClient=void 0;exports.InteractiveInit=void 0;var Mt=de(()=>{St();Ye();Ze();kt();Ut();Ne();ze();Me=process.cwd(),Qt=()=>{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=>se(null,null,function*(){let o=Qt(),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=>se(null,null,function*(){let o=Qt(),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=Ot(i);if(n.length===0){continue}`${n.length}${i}`;let u=X(X(X(X(ie(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 Rt(n,o,u,i,V__default.default.join(Me,e));}}),exports.InteractiveInit=()=>se(null,null,function*(){let{interactiveInit:r}=yield Promise.resolve().then(()=>(Ft(),Lt));yield r();});});Mt();exports.getNestedValue=Zt;
|